diff options
author | Nirbheek Chauhan <nirbheek@centricular.com> | 2024-02-11 19:04:30 +0530 |
---|---|---|
committer | GStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org> | 2024-02-11 15:24:25 +0000 |
commit | f210eb88576193af99de228958dd694152e22127 (patch) | |
tree | 01179ef5289cf54daff1a035dc3ad43889766c92 | |
parent | 0982f029f973de78f4a536fddb765d186e83345c (diff) |
taglib: Bump to 1.13.1
Co-authored-by: Tim-Philipp Müller <tim@centricular.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1132>
4 files changed, 9 insertions, 287 deletions
diff --git a/recipes/taglib.recipe b/recipes/taglib.recipe index 78c3fd9d..ab21d82a 100644 --- a/recipes/taglib.recipe +++ b/recipes/taglib.recipe @@ -5,12 +5,10 @@ from cerbero.tools.libtool import LibtoolLibrary class Recipe(recipe.Recipe): name = 'taglib' - version = '1.11.1' + version = '1.13.1' stype = SourceType.TARBALL - # This uses a github certificate, hence fails TLS check - #url = 'https://taglib.org/releases/taglib-%(version)s.tar.gz' - url = 'https://github.com/taglib/taglib/releases/download/v1.11.1/taglib-%(version)s.tar.gz' - tarball_checksum = 'b6d1a5a610aae6ff39d93de5efd0fdc787aa9e9dc1e7026fa4c961b26563526b' + url = 'https://github.com/taglib/taglib/releases/download/v1.13.1/taglib-%(version)s.tar.gz' + tarball_checksum = 'c8da2b10f1bfec2cd7dbfcd33f4a2338db0765d851a50583d410bacf055cfd0b' # either LGPLv2.1 or MPLv1.1 licenses = [License.LGPLv2_1Plus, License.MPLv1_1] @@ -25,10 +23,6 @@ class Recipe(recipe.Recipe): patches = [ 'taglib/0002-Build-a-static-and-non-static-version.patch', - # https://github.com/taglib/taglib/pull/1071 - 'taglib/0003-cmake-generate-pc-file-with-the-use-of-prefix-in-lib.patch', - # Upstream did this change once and then reverted it, so keep it private - 'taglib/0001-Don-t-use-deprecated-OSAtomic-on-macOS-10.12-and-new.patch', ] files_libs = ['libtag'] @@ -40,7 +34,7 @@ class Recipe(recipe.Recipe): if self.config.target_platform == Platform.ANDROID: # configure for android self.configure_options += ' -DANDROID_NDK=1 ' - self.append_env('CXXFLAGS', '-frtti') + self.append_env('CXXFLAGS', '-frtti', '-fexceptions') self.configure_options += ' -DZLIB_ROOT=%s ' % self.config.prefix async def install(self): diff --git a/recipes/taglib/0001-Don-t-use-deprecated-OSAtomic-on-macOS-10.12-and-new.patch b/recipes/taglib/0001-Don-t-use-deprecated-OSAtomic-on-macOS-10.12-and-new.patch deleted file mode 100644 index c0d6c8e8..00000000 --- a/recipes/taglib/0001-Don-t-use-deprecated-OSAtomic-on-macOS-10.12-and-new.patch +++ /dev/null @@ -1,195 +0,0 @@ -From 2f4766817a2b67b523b247e045049c6d434cab46 Mon Sep 17 00:00:00 2001 -From: Nirbheek Chauhan <nirbheek@centricular.com> -Date: Thu, 8 Jun 2023 00:43:37 +0530 -Subject: [PATCH] Don't use deprecated OSAtomic on macOS 10.12 and newer - -Fixes deprecation warnings: - -``` -include/taglib/trefcounter.h:84:29: error: 'OSAtomicDecrement32Barrier' is deprecated: first deprecated in macOS 10.12 - Use std::atomic_fetch_sub() from <atomic> instead [-Werror,-Wdeprecated-declarations] - bool deref() { return ! OSAtomicDecrement32Barrier(const_cast<int32_t*>(&refCount)); } - ^ -/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.0.sdk/usr/include/libkern/OSAtomicDeprecated.h:202:9: note: 'OSAtomicDecrement32Barrier' has been explicitly marked deprecated here -int32_t OSAtomicDecrement32Barrier( volatile int32_t *__theValue ); - ^ -2 errors generated. -``` ---- - ConfigureChecks.cmake | 14 ++----- - taglib/toolkit/trefcounter.cpp | 38 ----------------- - taglib/toolkit/trefcounter.h | 76 ++++++++++++++++------------------ - 3 files changed, 39 insertions(+), 89 deletions(-) - -diff --git a/ConfigureChecks.cmake b/ConfigureChecks.cmake -index ee4fdc2..70bcd5d 100644 ---- a/ConfigureChecks.cmake -+++ b/ConfigureChecks.cmake -@@ -72,17 +72,9 @@ if(NOT HAVE_STD_ATOMIC) - " HAVE_GCC_ATOMIC) - - if(NOT HAVE_GCC_ATOMIC) -- check_cxx_source_compiles(" -- #include <libkern/OSAtomic.h> -- int main() { -- volatile int32_t x; -- OSAtomicIncrement32Barrier(&x); -- int32_t y = OSAtomicDecrement32Barrier(&x); -- return 0; -- } -- " HAVE_MAC_ATOMIC) -- -- if(NOT HAVE_MAC_ATOMIC) -+ if (APPLE) -+ set(HAVE_MAC_ATOMIC TRUE) -+ else() - check_cxx_source_compiles(" - #include <windows.h> - int main() { -diff --git a/taglib/toolkit/trefcounter.cpp b/taglib/toolkit/trefcounter.cpp -index 27d17b8..b8221a6 100644 ---- a/taglib/toolkit/trefcounter.cpp -+++ b/taglib/toolkit/trefcounter.cpp -@@ -29,44 +29,6 @@ - - #include "trefcounter.h" - --#if defined(HAVE_STD_ATOMIC) --# include <atomic> --# define ATOMIC_INT std::atomic<unsigned int> --# define ATOMIC_INC(x) x.fetch_add(1) --# define ATOMIC_DEC(x) (x.fetch_sub(1) - 1) --#elif defined(HAVE_BOOST_ATOMIC) --# include <boost/atomic.hpp> --# define ATOMIC_INT boost::atomic<unsigned int> --# define ATOMIC_INC(x) x.fetch_add(1) --# define ATOMIC_DEC(x) (x.fetch_sub(1) - 1) --#elif defined(HAVE_GCC_ATOMIC) --# define ATOMIC_INT int --# define ATOMIC_INC(x) __sync_add_and_fetch(&x, 1) --# define ATOMIC_DEC(x) __sync_sub_and_fetch(&x, 1) --#elif defined(HAVE_WIN_ATOMIC) --# if !defined(NOMINMAX) --# define NOMINMAX --# endif --# include <windows.h> --# define ATOMIC_INT long --# define ATOMIC_INC(x) InterlockedIncrement(&x) --# define ATOMIC_DEC(x) InterlockedDecrement(&x) --#elif defined(HAVE_MAC_ATOMIC) --# include <libkern/OSAtomic.h> --# define ATOMIC_INT int32_t --# define ATOMIC_INC(x) OSAtomicIncrement32Barrier(&x) --# define ATOMIC_DEC(x) OSAtomicDecrement32Barrier(&x) --#elif defined(HAVE_IA64_ATOMIC) --# include <ia64intrin.h> --# define ATOMIC_INT int --# define ATOMIC_INC(x) __sync_add_and_fetch(&x, 1) --# define ATOMIC_DEC(x) __sync_sub_and_fetch(&x, 1) --#else --# define ATOMIC_INT int --# define ATOMIC_INC(x) (++x) --# define ATOMIC_DEC(x) (--x) --#endif -- - namespace TagLib - { - -diff --git a/taglib/toolkit/trefcounter.h b/taglib/toolkit/trefcounter.h -index bc3cdd9..0848f69 100644 ---- a/taglib/toolkit/trefcounter.h -+++ b/taglib/toolkit/trefcounter.h -@@ -29,23 +29,39 @@ - #include "taglib_export.h" - #include "taglib.h" - --#ifdef __APPLE__ --# include <libkern/OSAtomic.h> --# define TAGLIB_ATOMIC_MAC --#elif defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) --# ifndef NOMINMAX --# define NOMINMAX --# endif --# include <windows.h> --# define TAGLIB_ATOMIC_WIN --#elif defined (__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 401) \ -- && (defined(__i386__) || defined(__i486__) || defined(__i586__) || \ -- defined(__i686__) || defined(__x86_64) || defined(__ia64)) \ -- && !defined(__INTEL_COMPILER) --# define TAGLIB_ATOMIC_GCC --#elif defined(__ia64) && defined(__INTEL_COMPILER) --# include <ia64intrin.h> --# define TAGLIB_ATOMIC_GCC -+#if defined(HAVE_GCC_ATOMIC) -+# define ATOMIC_INT int -+# define ATOMIC_INC(x) __sync_add_and_fetch(&(x), 1) -+# define ATOMIC_DEC(x) __sync_sub_and_fetch(&(x), 1) -+#elif defined(HAVE_WIN_ATOMIC) -+# if !defined(NOMINMAX) -+# define NOMINMAX -+# endif -+# include <windows.h> -+# define ATOMIC_INT long -+# define ATOMIC_INC(x) InterlockedIncrement(&x) -+# define ATOMIC_DEC(x) InterlockedDecrement(&x) -+#elif defined(HAVE_MAC_ATOMIC) -+# if defined(MAC_OS_VERSION_10_12) && MAC_OS_X_VERSION_MIN_ALLOWED >= MAC_OS_VERSION_10_12 -+# include <stdatomic.h> -+# define ATOMIC_INT atomic_int -+# define ATOMIC_INC(x) std::atomic_fetch_add(&x, 1) -+# define ATOMIC_DEC(x) std::atomic_fetch_sub(&x, 1) -+# else -+# include <libkern/OSAtomic.h> -+# define ATOMIC_INT int32_t -+# define ATOMIC_INC(x) OSAtomicIncrement32Barrier(&x) -+# define ATOMIC_DEC(x) OSAtomicDecrement32Barrier(&x) -+# endif -+#elif defined(HAVE_IA64_ATOMIC) -+# include <ia64intrin.h> -+# define ATOMIC_INT int -+# define ATOMIC_INC(x) __sync_add_and_fetch(&x, 1) -+# define ATOMIC_DEC(x) __sync_sub_and_fetch(&x, 1) -+#else -+# define ATOMIC_INT unsigned int -+# define ATOMIC_INC(x) (++x) -+# define ATOMIC_DEC(x) (--x) - #endif - - #ifndef DO_NOT_DOCUMENT // Tell Doxygen to skip this class. -@@ -79,31 +95,11 @@ namespace TagLib - public: - RefCounterOld() : refCount(1) {} - --#ifdef TAGLIB_ATOMIC_MAC -- void ref() { OSAtomicIncrement32Barrier(const_cast<int32_t*>(&refCount)); } -- bool deref() { return ! OSAtomicDecrement32Barrier(const_cast<int32_t*>(&refCount)); } -+ void ref() { ATOMIC_INC(refCount); } -+ bool deref() { return ATOMIC_DEC(refCount); } - int32_t count() { return refCount; } - private: -- volatile int32_t refCount; --#elif defined(TAGLIB_ATOMIC_WIN) -- void ref() { InterlockedIncrement(&refCount); } -- bool deref() { return ! InterlockedDecrement(&refCount); } -- long count() { return refCount; } -- private: -- volatile long refCount; --#elif defined(TAGLIB_ATOMIC_GCC) -- void ref() { __sync_add_and_fetch(&refCount, 1); } -- bool deref() { return ! __sync_sub_and_fetch(&refCount, 1); } -- int count() { return refCount; } -- private: -- volatile int refCount; --#else -- void ref() { refCount++; } -- bool deref() { return ! --refCount; } -- int count() { return refCount; } -- private: -- unsigned int refCount; --#endif -+ volatile ATOMIC_INT refCount; - }; - - } --- -2.39.2 - diff --git a/recipes/taglib/0002-Build-a-static-and-non-static-version.patch b/recipes/taglib/0002-Build-a-static-and-non-static-version.patch index 872880c8..dacbdd98 100644 --- a/recipes/taglib/0002-Build-a-static-and-non-static-version.patch +++ b/recipes/taglib/0002-Build-a-static-and-non-static-version.patch @@ -19,18 +19,18 @@ index 4f8c876..5f894db 100644 +add_library(tag SHARED ${tag_LIB_SRCS} ${tag_HDRS}) +add_library(tag_static STATIC ${tag_LIB_SRCS} ${tag_HDRS}) +set_target_properties(tag_static PROPERTIES COMPILE_DEFINITIONS TAGLIB_STATIC) + set_property(TARGET tag PROPERTY CXX_STANDARD 98) - if(ZLIB_FOUND) - target_link_libraries(tag ${ZLIB_LIBRARIES}) + if(HAVE_ZLIB AND NOT HAVE_ZLIB_SOURCE) @@ -372,7 +374,7 @@ if(BUILD_FRAMEWORK) - set_target_properties(tag PROPERTIES FRAMEWORK TRUE) + ) endif() -install(TARGETS tag +install(TARGETS tag tag_static FRAMEWORK DESTINATION ${FRAMEWORK_INSTALL_DIR} - LIBRARY DESTINATION ${LIB_INSTALL_DIR} - RUNTIME DESTINATION ${BIN_INSTALL_DIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} -- 2.11.0 diff --git a/recipes/taglib/0003-cmake-generate-pc-file-with-the-use-of-prefix-in-lib.patch b/recipes/taglib/0003-cmake-generate-pc-file-with-the-use-of-prefix-in-lib.patch deleted file mode 100644 index fae0ac94..00000000 --- a/recipes/taglib/0003-cmake-generate-pc-file-with-the-use-of-prefix-in-lib.patch +++ /dev/null @@ -1,77 +0,0 @@ -From 99e261065152d92eeab7648f157c75287774911f Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?St=C3=A9phane=20Cerveau?= <scerveau@igalia.com> -Date: Mon, 14 Nov 2022 11:55:08 +0100 -Subject: [PATCH] cmake: pc file with the use of prefix in lib and include - ---- - CMakeLists.txt | 4 ++++ - bindings/c/CMakeLists.txt | 4 ++++ - bindings/c/taglib_c.pc.cmake | 8 ++++---- - taglib.pc.cmake | 8 ++++---- - 4 files changed, 16 insertions(+), 8 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 0dd8e6e..353c759 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -118,6 +118,10 @@ if(WIN32) - endif() - - if(NOT BUILD_FRAMEWORK) -+ set (prefix ${CMAKE_INSTALL_PREFIX}) -+ set (exec_prefix "\${prefix}") -+ set (libdir "\${prefix}/${CMAKE_INSTALL_LIBDIR}") -+ set (includedir "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}") - configure_file("${CMAKE_CURRENT_SOURCE_DIR}/taglib.pc.cmake" "${CMAKE_CURRENT_BINARY_DIR}/taglib.pc" @ONLY) - install(FILES "${CMAKE_CURRENT_BINARY_DIR}/taglib.pc" DESTINATION "${LIB_INSTALL_DIR}/pkgconfig") - endif() -diff --git a/bindings/c/CMakeLists.txt b/bindings/c/CMakeLists.txt -index c4aafc6..2c102e1 100644 ---- a/bindings/c/CMakeLists.txt -+++ b/bindings/c/CMakeLists.txt -@@ -62,6 +62,10 @@ install(TARGETS tag_c - ) - - if(NOT BUILD_FRAMEWORK) -+ set (prefix ${CMAKE_INSTALL_PREFIX}) -+ set (exec_prefix "\${prefix}") -+ set (libdir "\${prefix}/${CMAKE_INSTALL_LIBDIR}") -+ set (includedir "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}") - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/taglib_c.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/taglib_c.pc) - install(FILES ${CMAKE_CURRENT_BINARY_DIR}/taglib_c.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig) - endif() -diff --git a/bindings/c/taglib_c.pc.cmake b/bindings/c/taglib_c.pc.cmake -index 232f4f7..b09af83 100644 ---- a/bindings/c/taglib_c.pc.cmake -+++ b/bindings/c/taglib_c.pc.cmake -@@ -1,7 +1,7 @@ --prefix=${CMAKE_INSTALL_PREFIX} --exec_prefix=${CMAKE_INSTALL_PREFIX} --libdir=${LIB_INSTALL_DIR} --includedir=${INCLUDE_INSTALL_DIR} -+prefix=@prefix@ -+exec_prefix=@exec_prefix@ -+libdir=@libdir@ -+includedir=@includedir@ - - - Name: TagLib C Bindings -diff --git a/taglib.pc.cmake b/taglib.pc.cmake -index 5f42e0b..3a720a9 100644 ---- a/taglib.pc.cmake -+++ b/taglib.pc.cmake -@@ -1,7 +1,7 @@ --prefix=@CMAKE_INSTALL_PREFIX@ --exec_prefix=@CMAKE_INSTALL_PREFIX@ --libdir=@LIB_INSTALL_DIR@ --includedir=@INCLUDE_INSTALL_DIR@ -+prefix=@prefix@ -+exec_prefix=@exec_prefix@ -+libdir=@libdir@ -+includedir=@includedir@ - - Name: TagLib - Description: Audio meta-data library --- -2.34.1 - |