diff --git a/libmusicbrainz5/.SRCINFO b/libmusicbrainz5/.SRCINFO new file mode 100644 index 0000000000..12f31e9330 --- /dev/null +++ b/libmusicbrainz5/.SRCINFO @@ -0,0 +1,29 @@ +pkgbase = libmusicbrainz5 + pkgdesc = Library That Provides Access to the MusicBrainz Server + pkgver = 5.1.0 + pkgrel = 7 + url = https://musicbrainz.org/doc/libmusicbrainz + arch = x86_64 + arch = powerpc64le + arch = powerpc64 + arch = powerpc + arch = riscv64 + license = LGPL-2.1-or-later + makedepends = cmake + makedepends = doxygen + makedepends = ninja + depends = gcc-libs + depends = glibc + depends = neon + depends = libxml2 + provides = libmusicbrainz5.so + source = https://github.com/metabrainz/libmusicbrainz/releases/download/release-5.1.0/libmusicbrainz-5.1.0.tar.gz + source = libmusicbrainz5-5.patch + source = libmusicbrainz5-16.patch + source = libmusicbrainz5-19.patch + sha256sums = 6749259e89bbb273f3f5ad7acdffb7c47a2cf8fcaeab4c4695484cef5f4c6b46 + sha256sums = 1e412f8e89183f1a70be530809b34ce3f3cb880ce731d8c7253f6bfe9cc8b7b6 + sha256sums = 5ad7e45b191cceca3bb71c92adb6c767ae8079bf2814354341fae829d4328ae9 + sha256sums = c8defc41681b1ba7c93af93f73207bf1666c78e98d22a1a5f16c9e20b947f787 + +pkgname = libmusicbrainz5 diff --git a/libmusicbrainz5/PKGBUILD b/libmusicbrainz5/PKGBUILD index ea3bb10932..48bf724c91 100644 --- a/libmusicbrainz5/PKGBUILD +++ b/libmusicbrainz5/PKGBUILD @@ -1,26 +1,35 @@ # POWER Maintainer: Alexander Baldeck +# Maintainer: Brett Cornwall # Contributor: Andrea Scarpino pkgname=libmusicbrainz5 pkgver=5.1.0 -pkgrel=5 +pkgrel=7 pkgdesc="Library That Provides Access to the MusicBrainz Server" url='https://musicbrainz.org/doc/libmusicbrainz' arch=(x86_64 powerpc64le powerpc64 powerpc riscv64) -license=(LGPL2.1) -depends=(neon libxml2) -makedepends=(cmake ninja) +license=(LGPL-2.1-or-later) +depends=(gcc-libs glibc neon libxml2) +makedepends=(cmake doxygen ninja) provides=(libmusicbrainz5.so) source=("https://github.com/metabrainz/libmusicbrainz/releases/download/release-${pkgver}/libmusicbrainz-$pkgver.tar.gz" - 16.patch) + libmusicbrainz5-5.patch + libmusicbrainz5-16.patch + libmusicbrainz5-19.patch) sha256sums=('6749259e89bbb273f3f5ad7acdffb7c47a2cf8fcaeab4c4695484cef5f4c6b46' - '5ad7e45b191cceca3bb71c92adb6c767ae8079bf2814354341fae829d4328ae9') + '1e412f8e89183f1a70be530809b34ce3f3cb880ce731d8c7253f6bfe9cc8b7b6' + '5ad7e45b191cceca3bb71c92adb6c767ae8079bf2814354341fae829d4328ae9' + 'c8defc41681b1ba7c93af93f73207bf1666c78e98d22a1a5f16c9e20b947f787') prepare() { cd libmusicbrainz-$pkgver + # https://github.com/metabrainz/libmusicbrainz/pull/5 + patch -Np1 -i ../libmusicbrainz5-5.patch # https://github.com/metabrainz/libmusicbrainz/pull/16 - patch -Np1 -i ../16.patch + patch -Np1 -i ../libmusicbrainz5-16.patch + # https://github.com/metabrainz/libmusicbrainz/pull/19 + patch -Np1 -i ../libmusicbrainz5-19.patch } build() { @@ -28,8 +37,12 @@ build() { -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_BUILD_TYPE=None cmake --build build + cmake --build build --target docs } package() { DESTDIR="$pkgdir" cmake --install build + + mkdir -p "$pkgdir/usr/share/doc/$pkgname" + cp -r build/docs "$pkgdir/usr/share/doc/$pkgname/html" } diff --git a/libmusicbrainz5/libmusicbrainz5-16.patch b/libmusicbrainz5/libmusicbrainz5-16.patch new file mode 100644 index 0000000000..b14d17e745 --- /dev/null +++ b/libmusicbrainz5/libmusicbrainz5-16.patch @@ -0,0 +1,24 @@ +From 36262d60fe92fe7a2c9bfb40e736bfcd29a6c3bd Mon Sep 17 00:00:00 2001 +From: Abderrahim Kitouni +Date: Fri, 13 Apr 2018 09:56:57 +0100 +Subject: [PATCH] src/CMakelists.txt: do not use wildcards for dependencies + +This is discouraged by cmake's documentation and doesn't work with the ninja generator. +--- + src/CMakeLists.txt | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 68c04e3..f7439d3 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -37,7 +37,8 @@ ADD_CUSTOM_COMMAND( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/mb5_c.cc ${CMAKE_CURRENT_BINARY_DIR}/mb5_c.h ${CMAKE_CURRENT_BINARY_DIR}/../include/musicbrainz5/mb5_c.h + COMMAND make-c-interface ${CMAKE_CURRENT_SOURCE_DIR} cinterface.xml ${CMAKE_CURRENT_BINARY_DIR} mb5_c.cc mb5_c.h + COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_BINARY_DIR}/mb5_c.h ${CMAKE_CURRENT_BINARY_DIR}/../include/musicbrainz5/mb5_c.h +- DEPENDS make-c-interface cinterface.xml *.inc ++ DEPENDS make-c-interface cinterface.xml c-int-medium-defines.inc c-int-query-source.inc c-int-source-funcs.inc ++ c-int-medium-source.inc c-int-release-defines.inc c-int-query-defines.inc c-int-release-source.inc + ) + + ADD_CUSTOM_TARGET(src_gen DEPENDS mb5_c.h) diff --git a/libmusicbrainz5/libmusicbrainz5-19.patch b/libmusicbrainz5/libmusicbrainz5-19.patch new file mode 100644 index 0000000000..5ca9147c88 --- /dev/null +++ b/libmusicbrainz5/libmusicbrainz5-19.patch @@ -0,0 +1,64 @@ +From 9ba00067a15479a52262a5126bcb6889da5884b7 Mon Sep 17 00:00:00 2001 +From: Christopher Degawa +Date: Sun, 8 Oct 2023 11:41:30 -0500 +Subject: [PATCH 1/2] libxml: include parser.h + +libxml2 removed the inclusion of global.h in a few of its include files, +so we can no longer rely on transitive includes. + +This applies to functions like xmlParseFile. + +Signed-off-by: Christopher Degawa +--- + src/xmlParser.cc | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/xmlParser.cc b/src/xmlParser.cc +index e63df55..53dec25 100644 +--- a/src/xmlParser.cc ++++ b/src/xmlParser.cc +@@ -30,6 +30,7 @@ + + #include + #include ++#include + + XMLResults::XMLResults() + : line(0), + +From 558c9ba0e6d702d5c877f75be98176f57abf1b02 Mon Sep 17 00:00:00 2001 +From: Christopher Degawa +Date: Sun, 8 Oct 2023 11:42:55 -0500 +Subject: [PATCH 2/2] libxml: constify the storage of xmlGetLastError() + +libxml2 recently made it a const return. +Since nothing is being modified of it, this should have no real effect +past satisfying the compiler. + +Signed-off-by: Christopher Degawa +--- + src/xmlParser.cc | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/xmlParser.cc b/src/xmlParser.cc +index 53dec25..fee684c 100644 +--- a/src/xmlParser.cc ++++ b/src/xmlParser.cc +@@ -57,7 +57,7 @@ XMLNode *XMLRootNode::parseFile(const std::string &filename, XMLResults* results + + doc = xmlParseFile(filename.c_str()); + if ((doc == NULL) && (results != NULL)) { +- xmlErrorPtr error = xmlGetLastError(); ++ const xmlError *error = xmlGetLastError(); + results->message = error->message; + results->line = error->line; + results->code = error->code; +@@ -72,7 +72,7 @@ XMLNode *XMLRootNode::parseString(const std::string &xml, XMLResults* results) + + doc = xmlParseMemory(xml.c_str(), xml.length()); + if ((doc == NULL) && (results != NULL)) { +- xmlErrorPtr error = xmlGetLastError(); ++ const xmlError *error = xmlGetLastError(); + results->message = error->message; + results->line = error->line; + results->code = error->code; diff --git a/libmusicbrainz5/libmusicbrainz5-5.patch b/libmusicbrainz5/libmusicbrainz5-5.patch new file mode 100644 index 0000000000..afb846ed27 --- /dev/null +++ b/libmusicbrainz5/libmusicbrainz5-5.patch @@ -0,0 +1,47 @@ +From 3c8d945c20a6fd6eabe9fc3ef24809b88cb50301 Mon Sep 17 00:00:00 2001 +From: Sebastian Ramacher +Date: Thu, 20 Nov 2014 18:54:17 +0100 +Subject: [PATCH 1/2] Allow doxygen out-of-tree builds + +Signed-off-by: Sebastian Ramacher +--- + CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 384cb65..83c5b23 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -29,7 +29,7 @@ SET(LIB_INSTALL_DIR ${EXEC_INSTALL_PREFIX}/lib${LIB_SUFFIX} CACHE PATH "Install + SET(INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/include CACHE PATH "Installation prefix for C header files" FORCE) + + CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libmusicbrainz5.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/libmusicbrainz5.pc) +-CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.cmake ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile) ++CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.cmake ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile) + CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake ${CMAKE_CURRENT_SOURCE_DIR}/config.h) + + FILE(GLOB headers ${CMAKE_CURRENT_SOURCE_DIR}/include/musicbrainz5/*.h) + +From 3407ac7df846b141b05d5bd747a1f001e9fc08b5 Mon Sep 17 00:00:00 2001 +From: Sebastian Ramacher +Date: Thu, 20 Nov 2014 19:07:36 +0100 +Subject: [PATCH 2/2] Also move generated config.h to CMAKE_BINARY_DIR + +Signed-off-by: Sebastian Ramacher +--- + CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 83c5b23..e8d68c0 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -30,7 +30,7 @@ SET(INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/include CACHE PATH "Installation + + CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libmusicbrainz5.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/libmusicbrainz5.pc) + CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.cmake ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile) +-CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake ${CMAKE_CURRENT_SOURCE_DIR}/config.h) ++CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/include/config.h) + + FILE(GLOB headers ${CMAKE_CURRENT_SOURCE_DIR}/include/musicbrainz5/*.h) + INSTALL(FILES ${headers} ${CMAKE_CURRENT_BINARY_DIR}/include/musicbrainz5/mb5_c.h DESTINATION ${INCLUDE_INSTALL_DIR}/musicbrainz5)