diff --git a/srcpkgs/libextractor/patches/exiv2-0.28.patch b/srcpkgs/libextractor/patches/exiv2-0.28.patch deleted file mode 100644 index de1b3cee5de..00000000000 --- a/srcpkgs/libextractor/patches/exiv2-0.28.patch +++ /dev/null @@ -1,303 +0,0 @@ -Patch based on https://gitlab.archlinux.org/archlinux/packaging/packages/libextractor/-/blob/main/exiv2-0.28.patch, -with an additional minor change to fix build on 32-bit platforms. ---- a/src/plugins/exiv2_extractor.cc 2023-11-18 14:03:36.454439185 +0000 -+++ b/src/plugins/exiv2_extractor.cc 2023-11-18 14:03:40.462453936 +0000 -@@ -90,7 +90,11 @@ - * @param rcount number of bytes to read - * @return buffer with data read, empty buffer (!) on failure (!) - */ -+#if EXIV2_TEST_VERSION (0,28,0) -+virtual Exiv2::DataBuf read (size_t rcount); -+#else - virtual Exiv2::DataBuf read (long rcount); -+#endif - - /** - * Read up to 'rcount' bytes into 'buf'. -@@ -99,8 +103,17 @@ - * @param rcount size of 'buf' - * @return number of bytes read successfully, 0 on failure (!) - */ -+#if EXIV2_TEST_VERSION (0,28,0) -+virtual size_t read (Exiv2::byte *buf, -+ size_t rcount); -+#else - virtual long read (Exiv2::byte *buf, - long rcount); -+#endif -+ -+#if EXIV2_TEST_VERSION (0,28,0) -+virtual void populateFakeData(); -+#endif - - /** - * Read a single character. -@@ -117,8 +130,13 @@ - * @param wcount how many bytes to write - * @return -1 (always fails) - */ -+#if EXIV2_TEST_VERSION(0,28,0) -+virtual size_t write (const Exiv2::byte *data, -+ size_t wcount); -+#else - virtual long write (const Exiv2::byte *data, - long wcount); -+#endif - - /** - * Write to stream. -@@ -126,7 +144,11 @@ - * @param src stream to copy - * @return -1 (always fails) - */ -+#if EXIV2_TEST_VERSION(0,28,0) -+virtual size_t write (Exiv2::BasicIo &src); -+#else - virtual long write (Exiv2::BasicIo &src); -+#endif - - /** - * Write a single byte. -@@ -150,7 +172,7 @@ - * @parma pos offset is relative to where? - * @return -1 on failure, 0 on success - */ --virtual int seek (long offset, -+virtual int seek (int64_t offset, - Exiv2::BasicIo::Position pos); - - /** -@@ -172,7 +194,11 @@ - * - * @return -1 on error - */ -+#if EXIV2_TEST_VERSION(0,28,0) -+virtual size_t tell (void) const; -+#else - virtual long int tell (void) const; -+#endif - - /** - * Return overall size of the file. -@@ -213,7 +239,11 @@ - * - * @throws error - */ -+#if EXIV2_TEST_VERSION(0,28,0) -+virtual const std::string& path () const noexcept; -+#else - virtual std::string path () const; -+#endif - - #ifdef EXV_UNICODE_PATH - /** -@@ -230,7 +260,11 @@ - * - * @throws error - */ -+#if EXIV2_TEST_VERSION(0,28,0) -+virtual Exiv2::BasicIo::UniquePtr temporary () const; -+#else - virtual Exiv2::BasicIo::AutoPtr temporary () const; -+#endif - - }; - -@@ -266,7 +300,11 @@ - * @return buffer with data read, empty buffer (!) on failure (!) - */ - Exiv2::DataBuf -+#if EXIV2_TEST_VERSION (0,28,0) -+ExtractorIO::read (size_t rcount) -+#else - ExtractorIO::read (long rcount) -+#endif - { - void *data; - ssize_t ret; -@@ -284,9 +322,15 @@ - * @param rcount size of 'buf' - * @return number of bytes read successfully, 0 on failure (!) - */ -+#if EXIV2_TEST_VERSION (0,28,0) -+size_t -+ExtractorIO::read (Exiv2::byte *buf, -+ size_t rcount) -+#else - long - ExtractorIO::read (Exiv2::byte *buf, - long rcount) -+#endif - { - void *data; - ssize_t ret; -@@ -305,6 +349,12 @@ - return got; - } - -+#if EXIV2_TEST_VERSION (0,28,0) -+void ExtractorIO::populateFakeData() -+{ -+ return; -+} -+#endif - - /** - * Read a single character. -@@ -319,7 +369,9 @@ - const unsigned char *r; - - if (1 != ec->read (ec->cls, &data, 1)) --#if EXIV2_TEST_VERSION (0,27,0) -+#if EXIV2_TEST_VERSION(0,28,0) -+ throw Exiv2::Error (Exiv2::ErrorCode::kerDecodeLangAltQualifierFailed); -+#elif EXIV2_TEST_VERSION (0,27,0) - throw Exiv2::BasicError (Exiv2::kerDecodeLangAltQualifierFailed); - #else - throw Exiv2::BasicError (42 /* error code */); -@@ -336,9 +388,15 @@ - * @param wcount how many bytes to write - * @return -1 (always fails) - */ -+#if EXIV2_TEST_VERSION(0,28,0) -+size_t -+ExtractorIO::write (const Exiv2::byte *data, -+ size_t wcount) -+#else - long - ExtractorIO::write (const Exiv2::byte *data, - long wcount) -+#endif - { - return -1; - } -@@ -350,7 +408,11 @@ - * @param src stream to copy - * @return -1 (always fails) - */ -+#if EXIV2_TEST_VERSION(0,28,0) -+size_t -+#else - long -+#endif - ExtractorIO::write (Exiv2::BasicIo &src) - { - return -1; -@@ -378,7 +440,9 @@ - void - ExtractorIO::transfer (Exiv2::BasicIo& src) - { --#if EXIV2_TEST_VERSION (0,27,0) -+#if EXIV2_TEST_VERSION(0,28,0) -+ throw Exiv2::Error (Exiv2::ErrorCode::kerDecodeLangAltQualifierFailed); -+#elif EXIV2_TEST_VERSION (0,27,0) - throw Exiv2::BasicError (Exiv2::kerDecodeLangAltQualifierFailed); - #else - throw Exiv2::BasicError (42 /* error code */); -@@ -394,7 +458,7 @@ - * @return -1 on failure, 0 on success - */ - int --ExtractorIO::seek (long offset, -+ExtractorIO::seek (int64_t offset, - Exiv2::BasicIo::Position pos) - { - int rel; -@@ -427,7 +491,9 @@ - Exiv2::byte * - ExtractorIO::mmap (bool isWritable) - { --#if EXIV2_TEST_VERSION (0,27,0) -+#if EXIV2_TEST_VERSION (0,28,0) -+ throw Exiv2::Error (Exiv2::ErrorCode::kerDecodeLangAltQualifierFailed); -+#elif EXIV2_TEST_VERSION (0,27,0) - throw Exiv2::BasicError (Exiv2::kerDecodeLangAltQualifierFailed); - #else - throw Exiv2::BasicError (42 /* error code */); -@@ -452,7 +518,11 @@ - * - * @return -1 on error - */ -+#if EXIV2_TEST_VERSION(0,28,0) -+size_t -+#else - long int -+#endif - ExtractorIO::tell (void) const - { - return (long) ec->seek (ec->cls, 0, SEEK_CUR); -@@ -516,10 +586,17 @@ - * - * @throws error - */ -+#if EXIV2_TEST_VERSION (0,28,0) -+const std::string& -+ExtractorIO::path () const noexcept -+#else - std::string - ExtractorIO::path () const -+#endif - { --#if EXIV2_TEST_VERSION (0,27,0) -+#if EXIV2_TEST_VERSION (0,28,0) -+ throw Exiv2::Error (Exiv2::ErrorCode::kerDecodeLangAltQualifierFailed); -+#elif EXIV2_TEST_VERSION (0,27,0) - throw Exiv2::BasicError (Exiv2::kerDecodeLangAltQualifierFailed); - #else - throw Exiv2::BasicError (42 /* error code */); -@@ -536,7 +613,9 @@ - std::wstring - ExtractorIO::wpath () const - { --#if EXIV2_TEST_VERSION (0,27,0) -+#if EXIV2_TEST_VERSION (0,28,0) -+ throw Exiv2::Error (Exiv2::ErrorCode::kerDecodeLangAltQualifierFailed); -+#elif EXIV2_TEST_VERSION (0,27,0) - throw Exiv2::BasicError (Exiv2::kerDecodeLangAltQualifierFailed); - #else - throw Exiv2::BasicError (42 /* error code */); -@@ -552,11 +631,17 @@ - * - * @throws error - */ -+#if EXIV2_TEST_VERSION(0,28,0) -+Exiv2::BasicIo::UniquePtr -+#else - Exiv2::BasicIo::AutoPtr -+#endif - ExtractorIO::temporary () const - { - fprintf (stderr, "throwing temporary error\n"); --#if EXIV2_TEST_VERSION (0,27,0) -+#if EXIV2_TEST_VERSION(0,28,0) -+ throw Exiv2::Error (Exiv2::ErrorCode::kerDecodeLangAltQualifierFailed); -+#elif EXIV2_TEST_VERSION (0,27,0) - throw Exiv2::BasicError (Exiv2::kerDecodeLangAltQualifierFailed); - #else - throw Exiv2::BasicError (42 /* error code */); -@@ -737,8 +822,13 @@ - #if ! EXIV2_TEST_VERSION (0,24,0) - Exiv2::LogMsg::setLevel (Exiv2::LogMsg::mute); - #endif -+#if EXIV2_TEST_VERSION(0,28,0) -+ std::unique_ptr eio (new ExtractorIO (ec)); -+ Exiv2::Image::UniquePtr image = Exiv2::ImageFactory::open (std::move(eio)); -+#else - std::auto_ptr eio (new ExtractorIO (ec)); - Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open (eio); -+#endif - if (0 == image.get ()) - return; - image->readMetadata (); -@@ -822,7 +912,11 @@ - ADDXMP ("Xmp.lr.hierarchicalSubject", EXTRACTOR_METATYPE_SUBJECT); - } - } -+#if EXIV2_TEST_VERSION (0,28,0) -+ catch (const Exiv2::Error& e) -+#else - catch (const Exiv2::AnyError& e) -+#endif - { - #if DEBUG - std::cerr << "Caught Exiv2 exception '" << e << "'\n"; diff --git a/srcpkgs/libextractor/patches/noexcept-must-not-throw.patch b/srcpkgs/libextractor/patches/noexcept-must-not-throw.patch new file mode 100644 index 00000000000..298cd543b7d --- /dev/null +++ b/srcpkgs/libextractor/patches/noexcept-must-not-throw.patch @@ -0,0 +1,19 @@ +Author: sgn@voidlinux +Reason: noexcept function must not throw +--- a/src/plugins/exiv2_extractor.cc ++++ b/src/plugins/exiv2_extractor.cc +@@ -601,13 +601,7 @@ std::string + ExtractorIO::path () const + #endif + { +-#if EXIV2_TEST_VERSION (0,28,0) +- throw Exiv2::Error (Exiv2::ErrorCode::kerDecodeLangAltQualifierFailed); +-#elif EXIV2_TEST_VERSION (0,27,0) +- throw Exiv2::BasicError (Exiv2::kerDecodeLangAltQualifierFailed); +-#else +- throw Exiv2::BasicError (42 /* error code */); +-#endif ++ return ""; + } + + diff --git a/srcpkgs/libextractor/template b/srcpkgs/libextractor/template index 044c663a3a0..59e26c09172 100644 --- a/srcpkgs/libextractor/template +++ b/srcpkgs/libextractor/template @@ -1,19 +1,20 @@ # Template file for 'libextractor' pkgname=libextractor -version=1.11 -revision=4 +version=1.13 +revision=1 build_style=gnu-configure configure_args="--disable-static" hostmakedepends="pkg-config" makedepends="zlib-devel bzip2-devel exiv2-devel tiff-devel libpng-devel libjpeg-turbo-devel libvorbis-devel libflac-devel giflib-devel libmpeg2-devel - ffmpeg-devel gtk+3-devel libltdl-devel libarchive-devel file-devel libgsf-devel" + gtk+3-devel libltdl-devel libarchive-devel file-devel libgsf-devel + gstreamer1-devel gst-plugins-base1-devel" short_desc="Library used to extract meta data from files" maintainer="Martin Riese " license="GPL-3.0-or-later" homepage="https://www.gnu.org/software/libextractor/" distfiles="${GNU_SITE}/${pkgname}/${pkgname}-${version}.tar.gz" -checksum=16f633ab8746a38547c4a1da3f4591192b0825ad83c4336f0575b85843d8bd8f +checksum=bb8f312c51d202572243f113c6b62d8210301ab30cbaee604f9837d878cdf755 post_install() { sed -i "s|\(-specs=.*hardened-ld\)||g" ${DESTDIR}/usr/lib/pkgconfig/libextractor.pc