ping. 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/