On 2019/08/21 17:59, Charlene Wendling wrote:
> ping.

the bump in clementine isn't needed (it's a LIB_DEPENDS not a RUN_DEPENDS
in that case, so the library version bump will already trigger an update),
but doesn't hurt.

rest looks good, OK with me.

> On Wed, 14 Aug 2019 15:02:54 +0200
> Charlene Wendling wrote:
> 
> > Hi,
> > 
> > Here is an update for chromaprint that fixes build issues on ppc/arm.
> > 
> > Upstream didn't pin a 1.4.4 release [1], but this is what you get with
> > that diff.
> > 
> > What's new upstream (see [0]):
> > 
> > - move to github
> > - C++11 is required, chromaprint doesn't use boost anymore
> > - use newer ffmpeg api
> > 
> > What's new in the port:
> > 
> > - reorder the Makefile according to Makefile.template. It doesn't
> >   impact a lot the diff readability given the amount of changes.
> > - major bump SHARED_LIBS. check_sym reports deletions.
> > - s/sed/SUBST_CMD
> > - remove hardcoded path when finding gtest, it also required to add
> >   linking instructions for cmake to allow the use of devel/gtest
> > - add "1.4.4" fixes that make test endian neutral
> > 
> > Testing (macppc/amd64):
> > 
> > - 'make test' passes with all tests enabled
> > - All consumers build and run without issue. Clementine auto-tagging
> >   doesn't work with chromaprint-1.1 as well.
> > 
> > 
> > Comments/feedback are welcome :) 
> > 
> > Charlène.
> > 
> > 
> > [0]
> > https://github.com/acoustid/chromaprint/blob/master/NEWS.txt
> > [1] https://github.com/acoustid/chromaprint/issues/59
> 
> 
> Index: chromaprint/Makefile
> ===================================================================
> RCS file: /cvs/ports/audio/chromaprint/Makefile,v
> retrieving revision 1.12
> diff -u -p -r1.12 Makefile
> --- chromaprint/Makefile      12 Jul 2019 20:43:32 -0000      1.12
> +++ chromaprint/Makefile      13 Aug 2019 21:18:50 -0000
> @@ -2,37 +2,39 @@
>  
>  COMMENT =            audio fingerprint extraction library
>  
> -DISTNAME =           chromaprint-1.1
> +GH_ACCOUNT =         acoustid
> +GH_PROJECT =         chromaprint
> +GH_TAGNAME =         v1.4.3
> +
> +SHARED_LIBS =                chromaprint               2.0 # 1.4.3
> +
>  CATEGORIES =         audio devel
> -HOMEPAGE =           https://acoustid.org/chromaprint
> -MASTER_SITES =               
> https://bitbucket.org/acoustid/chromaprint/downloads/
> -REVISION =           3
>  
> -SHARED_LIBS =                chromaprint               1.0 # 0.1
> +HOMEPAGE =           https://acoustid.org/chromaprint
>  
> -# LGPL2.1+
> +# MIT with LGPL2.1+ parts
>  PERMIT_PACKAGE =     Yes
>  
> -WANTLIB += avcodec avformat avutil c m pthread ${COMPILER_LIBCXX} swresample
> +WANTLIB += ${COMPILER_LIBCXX} avcodec avformat avutil c m swresample
>  
> -COMPILER =           base-clang ports-gcc base-gcc
> +# C++11
> +COMPILER =           base-clang ports-gcc
>  
>  MODULES =            devel/cmake
>  
> -BUILD_DEPENDS =              audio/taglib \
> -                     devel/boost
> +BUILD_DEPENDS =              audio/taglib
> +# gtest presence is checked in configure stage, so this cannot be
> +# in TEST_DEPENDS
> +BUILD_DEPENDS +=     devel/gtest
>  
>  LIB_DEPENDS =                graphics/ffmpeg
>  
> -# gtest presence is checked in configure stage, so this cannot be in 
> TEST_DEPENDS
> -BUILD_DEPENDS +=     devel/gtest
> -CONFIGURE_ARGS =     -DBUILD_TESTS:Bool=Yes -DBUILD_EXAMPLES=ON
> +CONFIGURE_ARGS =     -DBUILD_TOOLS=ON \
> +                     -DBUILD_TESTS=ON
>  
> -post-patch:
> -     sed -i 's,/usr/local,${LOCALBASE},' \
> -             ${WRKSRC}/cmake/modules/FindGTest.cmake
> +TEST_TARGET =                check
>  
> -do-test:
> -     cd ${WRKBUILD}/tests && ./all_tests
> +pre-configure:
> +     ${SUBST_CMD} ${WRKSRC}/cmake/modules/FindGTest.cmake
>  
>  .include <bsd.port.mk>
> Index: chromaprint/distinfo
> ===================================================================
> RCS file: /cvs/ports/audio/chromaprint/distinfo,v
> retrieving revision 1.2
> diff -u -p -r1.2 distinfo
> --- chromaprint/distinfo      9 May 2014 09:00:19 -0000       1.2
> +++ chromaprint/distinfo      13 Aug 2019 21:18:50 -0000
> @@ -1,2 +1,2 @@
> -SHA256 (chromaprint-1.1.tar.gz) = 
> axTX6klkWBtzvT+AOMiFfAHkRkIcGumcu/ZN4mtHzRI=
> -SIZE (chromaprint-1.1.tar.gz) = 542360
> +SHA256 (chromaprint-1.4.3.tar.gz) = 
> 1K5llig6rXoBWlsERQEgVMY0pLkynssjAAzTVLQKKDs=
> +SIZE (chromaprint-1.4.3.tar.gz) = 613718
> Index: chromaprint/patches/patch-cmake_modules_FindGTest_cmake
> ===================================================================
> RCS file: 
> /cvs/ports/audio/chromaprint/patches/patch-cmake_modules_FindGTest_cmake,v
> retrieving revision 1.1
> diff -u -p -r1.1 patch-cmake_modules_FindGTest_cmake
> --- chromaprint/patches/patch-cmake_modules_FindGTest_cmake   9 May 2014 
> 09:00:19 -0000       1.1
> +++ chromaprint/patches/patch-cmake_modules_FindGTest_cmake   13 Aug 2019 
> 21:18:50 -0000
> @@ -1,6 +1,10 @@
>  $OpenBSD: patch-cmake_modules_FindGTest_cmake,v 1.1 2014/05/09 09:00:19 
> sthen Exp $
> ---- cmake/modules/FindGTest.cmake.orig       Sat Nov 23 16:43:42 2013
> -+++ cmake/modules/FindGTest.cmake    Wed May  7 16:29:15 2014
> +
> +Find gtest from devel/gtest.
> +
> +Index: cmake/modules/FindGTest.cmake
> +--- cmake/modules/FindGTest.cmake.orig
> ++++ cmake/modules/FindGTest.cmake
>  @@ -71,12 +71,24 @@ find_path(GTEST_INCLUDE_DIR
>   )
>   mark_as_advanced(GTEST_INCLUDE_DIR)
> @@ -10,7 +14,7 @@ $OpenBSD: patch-cmake_modules_FindGTest_
>  +    FIND_LIBRARY(${varname}
>  +        NAMES ${shortname}
>  +        PATHS
> -+        /usr/local/lib
> ++    ${LOCALBASE}/lib
>  +            NO_DEFAULT_PATH
>  +        DOC "Location of GTEST Libraries"
>  +    )
> @@ -22,9 +26,10 @@ $OpenBSD: patch-cmake_modules_FindGTest_
>  +find_package_handle_standard_args(GTest DEFAULT_MSG GTEST_INCLUDE_DIR)
>   
>   if(GTEST_FOUND)
> -     set(GTEST_INCLUDE_DIRS ${GTEST_INCLUDE_DIR})
> +-    set(GTEST_INCLUDE_DIRS ${GTEST_INCLUDE_DIR})
>  -    set(GTEST_LIBRARIES gtest)
>  -    set(GTEST_MAIN_LIBRARIES gtest_main)
> ++    set(GTEST_INCLUDE_DIRS ${GTEST_INCLUDE_DIR})
>  +    GTEST_FIND(GTEST_LIBRARIES gtest)
>  +    GTEST_FIND(GTEST_MAIN_LIBRARIES gtest_main)
>       set(GTEST_BOTH_LIBRARIES ${GTEST_LIBRARIES} ${GTEST_MAIN_LIBRARIES})
> Index: chromaprint/patches/patch-examples_fpcalc_c
> ===================================================================
> RCS file: chromaprint/patches/patch-examples_fpcalc_c
> diff -N chromaprint/patches/patch-examples_fpcalc_c
> --- chromaprint/patches/patch-examples_fpcalc_c       18 Feb 2019 10:05:39 
> -0000      1.1
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,34 +0,0 @@
> -$OpenBSD: patch-examples_fpcalc_c,v 1.1 2019/02/18 10:05:39 ajacoutot Exp $
> -
> -Update for newer FFmpeg API.
> -
> -Index: examples/fpcalc.c
> ---- examples/fpcalc.c.orig
> -+++ examples/fpcalc.c
> -@@ -126,7 +126,7 @@ int decode_audio_file(ChromaprintContext *chromaprint_
> -     remaining = max_length * codec_ctx->channels * codec_ctx->sample_rate;
> -     chromaprint_start(chromaprint_ctx, codec_ctx->sample_rate, 
> codec_ctx->channels);
> - 
> --    frame = avcodec_alloc_frame();
> -+    frame = av_frame_alloc();
> - 
> -     while (1) {
> -             if (av_read_frame(format_ctx, &packet) < 0) {
> -@@ -134,7 +134,7 @@ int decode_audio_file(ChromaprintContext *chromaprint_
> -             }
> - 
> -             if (packet.stream_index == stream_index) {
> --                    avcodec_get_frame_defaults(frame);
> -+                    av_frame_unref(frame);
> - 
> -                     got_frame = 0;
> -                     consumed = avcodec_decode_audio4(codec_ctx, frame, 
> &got_frame, &packet);
> -@@ -190,7 +190,7 @@ finish:
> - 
> - done:
> -     if (frame) {
> --            avcodec_free_frame(&frame);
> -+            av_frame_free(&frame);
> -     }
> -     if (dst_data[0]) {
> -             av_freep(&dst_data[0]);
> Index: chromaprint/patches/patch-tests_CMakeLists_txt
> ===================================================================
> RCS file: /cvs/ports/audio/chromaprint/patches/patch-tests_CMakeLists_txt,v
> retrieving revision 1.2
> diff -u -p -r1.2 patch-tests_CMakeLists_txt
> --- chromaprint/patches/patch-tests_CMakeLists_txt    13 Aug 2019 18:10:11 
> -0000      1.2
> +++ chromaprint/patches/patch-tests_CMakeLists_txt    13 Aug 2019 21:18:50 
> -0000
> @@ -1,24 +1,29 @@
>  $OpenBSD: patch-tests_CMakeLists_txt,v 1.2 2019/08/13 18:10:11 phessler Exp $
>  
> -test-bit_string_*.cpp depends on signed char, failing on aarch64
> +Using devel/gtest instead of using a third party one that we
> +would need to download and extract.
>  
>  Index: tests/CMakeLists.txt
>  --- tests/CMakeLists.txt.orig
>  +++ tests/CMakeLists.txt
> -@@ -3,7 +3,6 @@ include_directories(
> -     ${Boost_INCLUDE_DIRS}
> -     ${CMAKE_CURRENT_SOURCE_DIR}/../src
> +@@ -3,11 +3,9 @@ find_package(GTest REQUIRED)
> + include_directories(
> +     ${CMAKE_CURRENT_SOURCE_DIR}
> +     ${GTEST_INCLUDE_DIRS}
> +-    ${GTEST_SOURCE_DIR}
>   )
> --add_subdirectory(${GTEST_SOURCE_DIR} 
> ${CMAKE_CURRENT_BINARY_DIR}/gtest_build)
>   
> - set(tests_SOURCES
> + set(SRCS
> +-    ${GTEST_SOURCE_DIR}/src/gtest-all.cc
>       main.cpp
> -@@ -15,8 +14,6 @@ set(tests_SOURCES
> -     test_integral_image.cpp
> -     test_lloyds.cpp
> -     test_audio_processor.cpp
> --    test_bit_string_reader.cpp
> --    test_bit_string_writer.cpp
> -     test_chromaprint.cpp
> -     test_chroma.cpp
> -     test_chroma_filter.cpp
> +     test_api.cpp
> +     test_utils.cpp
> +@@ -37,6 +35,8 @@ if(BUILD_TOOLS)
> +     set(SRCS ${SRCS} ../src/audio/ffmpeg_audio_reader_test.cpp)
> +     link_libraries(fpcalc_libs)
> + endif()
> ++
> ++link_libraries(gtest)
> + 
> + add_executable(all_tests ${SRCS} $<TARGET_OBJECTS:chromaprint_objs>)
> + target_link_libraries(all_tests PRIVATE chromaprint 
> ${CMAKE_THREAD_LIBS_INIT})
> Index: chromaprint/patches/patch-tests_test_utils_cpp
> ===================================================================
> RCS file: chromaprint/patches/patch-tests_test_utils_cpp
> diff -N chromaprint/patches/patch-tests_test_utils_cpp
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ chromaprint/patches/patch-tests_test_utils_cpp    13 Aug 2019 21:18:50 
> -0000
> @@ -0,0 +1,29 @@
> +$OpenBSD$
> +
> +Make tests endian neutral. Can be removed with chromaprint>=1.4.4:
> +https://github.com/acoustid/chromaprint/commit/8d5f2ca81db8fae6b59b6b9b8bda91526507dbd1
> +
> +Index: tests/test_utils.cpp
> +--- tests/test_utils.cpp.orig
> ++++ tests/test_utils.cpp
> +@@ -2,6 +2,7 @@
> + #include <algorithm>
> + #include <limits>
> + #include "utils.h"
> ++#include "test_utils.h"
> + 
> + using namespace chromaprint;
> + 
> +@@ -91,4 +92,12 @@ TEST(Utils, CountSetBits64) {
> +     EXPECT_EQ(56, CountSetBits(0xFFFFFFFFFFFFFFU));
> +     EXPECT_EQ(64, CountSetBits(0xFFFFFFFFFFFFFFFFU));
> +     EXPECT_EQ(8, CountSetBits(0x0101010101010101U));
> ++}
> ++
> ++TEST(Utils, LoadAudioFile) {
> ++    std::vector<short> data = LoadAudioFile("data/test_mono_44100.raw");
> ++    ASSERT_EQ(data.size(), 176400/2);
> ++    EXPECT_EQ(data[1000], 0);
> ++    EXPECT_EQ(data[2000], 107);
> ++    EXPECT_EQ(data[3000], 128);
> + }
> Index: chromaprint/patches/patch-tests_test_utils_h
> ===================================================================
> RCS file: chromaprint/patches/patch-tests_test_utils_h
> diff -N chromaprint/patches/patch-tests_test_utils_h
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ chromaprint/patches/patch-tests_test_utils_h      13 Aug 2019 21:18:50 
> -0000
> @@ -0,0 +1,29 @@
> +$OpenBSD$
> +
> +Make tests endian neutral. Can be removed with chromaprint>=1.4.4:
> +https://github.com/acoustid/chromaprint/commit/8d5f2ca81db8fae6b59b6b9b8bda91526507dbd1
> +
> +Index: tests/test_utils.h
> +--- tests/test_utils.h.orig
> ++++ tests/test_utils.h
> +@@ -31,11 +31,15 @@ inline std::vector<short> LoadAudioFile(const std::str
> + {
> +     std::string path = TESTS_DIR + file_name;
> +     std::ifstream file(path.c_str(), std::ifstream::in | 
> std::ifstream::binary);
> +-    file.seekg(0, std::ios::end);
> +-    int length = file.tellg();
> +-    file.seekg(0, std::ios::beg);
> +-    std::vector<short> data(length / 2);
> +-    file.read((char *)&data[0], length);
> ++    uint8_t buf[4096];
> ++    std::vector<int16_t> data;
> ++    while (!file.eof()) {
> ++            file.read((char *) buf, 4096);
> ++            size_t nread = file.gcount();
> ++            for (size_t i = 0; i < nread - 1; i += 2) {
> ++                    data.push_back((int16_t) (((uint16_t) buf[i+1] << 8) | 
> ((uint16_t) buf[i])));
> ++            }
> ++    }
> +     file.close();
> +     return data;
> + }
> Index: chromaprint/pkg/DESCR
> ===================================================================
> RCS file: /cvs/ports/audio/chromaprint/pkg/DESCR,v
> retrieving revision 1.2
> diff -u -p -r1.2 DESCR
> --- chromaprint/pkg/DESCR     9 May 2014 09:00:19 -0000       1.2
> +++ chromaprint/pkg/DESCR     13 Aug 2019 21:18:50 -0000
> @@ -4,4 +4,4 @@ fingerprints from any audio source.
>  
>  Overview of the fingerprint extraction process can be found in the blog
>  post "How does Chromaprint work?":
> -http://oxygene.sk/lukas/2011/01/how-does-chromaprint-work/
> +https://oxygene.sk/lukas/2011/01/how-does-chromaprint-work/
> Index: picard/Makefile
> ===================================================================
> RCS file: /cvs/ports/audio/picard/Makefile,v
> retrieving revision 1.29
> diff -u -p -r1.29 Makefile
> --- picard/Makefile   26 Jul 2019 02:54:23 -0000      1.29
> +++ picard/Makefile   13 Aug 2019 21:18:50 -0000
> @@ -4,7 +4,7 @@ COMMENT =     automatic audio files tagger u
>  
>  MODPY_EGG_VERSION =  2.1.3
>  DISTNAME =           picard-${MODPY_EGG_VERSION}
> -REVISION =           0
> +REVISION =           1
>  
>  CATEGORIES =         audio
>  
> Index: py-acoustid/Makefile
> ===================================================================
> RCS file: /cvs/ports/audio/py-acoustid/Makefile,v
> retrieving revision 1.10
> diff -u -p -r1.10 Makefile
> --- py-acoustid/Makefile      12 Jul 2019 20:43:39 -0000      1.10
> +++ py-acoustid/Makefile      13 Aug 2019 21:18:50 -0000
> @@ -5,6 +5,7 @@ COMMENT =     python bindings for Chromaprin
>  MODPY_EGG_VERSION =  1.1.6
>  DISTNAME =   pyacoustid-${MODPY_EGG_VERSION}
>  PKGNAME =    py-acoustid-${MODPY_EGG_VERSION}
> +REVISION =   0
>  
>  CATEGORIES = audio
>  
> Index: clementine/Makefile
> ===================================================================
> RCS file: /cvs/ports/audio/clementine/Makefile,v
> retrieving revision 1.40
> diff -u -p -r1.40 Makefile
> --- clementine/Makefile       13 Aug 2019 14:50:12 -0000      1.40
> +++ clementine/Makefile       13 Aug 2019 21:18:50 -0000
> @@ -6,7 +6,7 @@ GH_ACCOUNT =  clementine-player
>  GH_PROJECT = Clementine
>  GH_TAGNAME = 1.2.3
>  CATEGORIES = audio x11
> -REVISION =   16
> +REVISION =   17
>  
>  HOMEPAGE =   https://clementine-player.org/
>  
> 

Reply via email to