diff options
author | nate | 2023-07-11 14:17:00 -0500 |
---|---|---|
committer | nate | 2023-07-11 14:17:00 -0500 |
commit | 664a717409098c8104472d094044cc2208209031 (patch) | |
tree | 59b0e07f00ea95f174577023a07831f66c030ec2 | |
parent | a9bc9c93a57b8e773dd7ce904e04b5af045f27c1 (diff) | |
download | aur-664a717409098c8104472d094044cc2208209031.tar.gz |
add exiv 0.28 patch
-rw-r--r-- | .SRCINFO | 4 | ||||
-rw-r--r-- | 0001-exiv-0.28.patch | 375 | ||||
-rw-r--r-- | PKGBUILD | 12 |
3 files changed, 387 insertions, 4 deletions
@@ -1,6 +1,6 @@ pkgbase = pix-git pkgdesc = Image viewer and browser based on gthumb. X-Apps Project (git version). - pkgver = 3.0.0.r0.g2d78023 + pkgver = 3.0.2.r0.g855a547 pkgrel = 1 url = https://github.com/linuxmint/pix arch = i686 @@ -34,6 +34,8 @@ pkgbase = pix-git provides = pix conflicts = pix source = pix-git::git+https://github.com/linuxmint/pix.git + source = 0001-exiv-0.28.patch md5sums = SKIP + md5sums = 9c20e12ed62c5d023c9dd81fe6e4e3ab pkgname = pix-git diff --git a/0001-exiv-0.28.patch b/0001-exiv-0.28.patch new file mode 100644 index 000000000000..b0ea9556f4aa --- /dev/null +++ b/0001-exiv-0.28.patch @@ -0,0 +1,375 @@ +From e28dcda26b3eb3cbd8905b616d1ec583ea37d45e Mon Sep 17 00:00:00 2001 +From: nate <njsimon10@gmail.com> +Date: Fri, 7 Jul 2023 14:43:34 -0500 +Subject: [PATCH] patch to build with exiv 0.28 + +--- + extensions/exiv2_tools/exiv2-utils.cpp | 141 +++++++++++++++++++++++++ + 1 file changed, 141 insertions(+) + +diff --git a/extensions/exiv2_tools/exiv2-utils.cpp b/extensions/exiv2_tools/exiv2-utils.cpp +index fb2b292..fa997e2 100644 +--- a/extensions/exiv2_tools/exiv2-utils.cpp ++++ b/extensions/exiv2_tools/exiv2-utils.cpp +@@ -740,7 +740,11 @@ get_exif_default_category (const Exiv2::Exifdatum &md) + + + static void ++#if EXIV2_TEST_VERSION(0,28,0) ++exiv2_read_metadata (Exiv2::Image::UniquePtr image, ++#else + exiv2_read_metadata (Exiv2::Image::AutoPtr image, ++#endif + GFileInfo *info, + gboolean update_general_attributes) + { +@@ -882,7 +886,11 @@ exiv2_read_metadata_from_file (GFile *file, + return FALSE; + } + ++#if EXIV2_TEST_VERSION(0,28,0) ++ Exiv2::Image::UniquePtr image = Exiv2::ImageFactory::open(path); ++#else + Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open(path); ++#endif + g_free (path); + + if (image.get() == 0) { +@@ -892,9 +900,17 @@ exiv2_read_metadata_from_file (GFile *file, + } + // Set the log level to only show errors (and suppress warnings, informational and debug messages) + Exiv2::LogMsg::setLevel(Exiv2::LogMsg::error); ++#if EXIV2_TEST_VERSION(0,28,0) ++ exiv2_read_metadata (std::move(image), info, update_general_attributes); ++#else + exiv2_read_metadata (image, info, update_general_attributes); ++#endif + } ++#if EXIV2_TEST_VERSION(0,28,0) ++ catch (Exiv2::Error& e) { ++#else + catch (Exiv2::AnyError& e) { ++#endif + if (error != NULL) + *error = g_error_new_literal (G_IO_ERROR, G_IO_ERROR_FAILED, e.what()); + return FALSE; +@@ -913,7 +929,11 @@ exiv2_read_metadata_from_buffer (void *buffer, + GError **error) + { + try { ++#if EXIV2_TEST_VERSION(0,28,0) ++ Exiv2::Image::UniquePtr image = Exiv2::ImageFactory::open ((Exiv2::byte*) buffer, buffer_size); ++#else + Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open ((Exiv2::byte*) buffer, buffer_size); ++#endif + + if (image.get() == 0) { + if (error != NULL) +@@ -921,9 +941,17 @@ exiv2_read_metadata_from_buffer (void *buffer, + return FALSE; + } + ++#if EXIV2_TEST_VERSION(0,28,0) ++ exiv2_read_metadata (std::move(image), info, update_general_attributes); ++#else + exiv2_read_metadata (image, info, update_general_attributes); ++#endif + } ++#if EXIV2_TEST_VERSION(0,28,0) ++ catch (Exiv2::Error& e) { ++#else + catch (Exiv2::AnyError& e) { ++#endif + if (error != NULL) + *error = g_error_new_literal (G_IO_ERROR, G_IO_ERROR_FAILED, e.what()); + return FALSE; +@@ -972,7 +1000,11 @@ exiv2_read_sidecar (GFile *file, + g_free (path); + + std::string xmpPacket; ++#if EXIV2_TEST_VERSION(0,28,0) ++ xmpPacket.assign(reinterpret_cast<char*>(buf.data()), buf.size()); ++#else + xmpPacket.assign(reinterpret_cast<char*>(buf.pData_), buf.size_); ++#endif + Exiv2::XmpData xmpData; + + if (0 != Exiv2::XmpParser::decode(xmpData, xmpPacket)) +@@ -1018,7 +1050,11 @@ exiv2_read_sidecar (GFile *file, + + set_attributes_from_tagsets (info, update_general_attributes); + } ++#if EXIV2_TEST_VERSION(0,28,0) ++ catch (Exiv2::Error& e) { ++#else + catch (Exiv2::AnyError& e) { ++#endif + std::cerr << "Caught Exiv2 exception '" << e << "'\n"; + return FALSE; + } +@@ -1118,7 +1154,11 @@ dump_exif_data (Exiv2::ExifData &exifData, + + + static Exiv2::DataBuf ++#if EXIV2_TEST_VERSION(0,28,0) ++exiv2_write_metadata_private (Exiv2::Image::UniquePtr image, ++#else + exiv2_write_metadata_private (Exiv2::Image::AutoPtr image, ++#endif + GFileInfo *info, + GthImage *image_data) + { +@@ -1155,13 +1195,21 @@ exiv2_write_metadata_private (Exiv2::Image::AutoPtr image, + const char *value_type = gth_main_get_metadata_type (metadatum, attributes[i]); + + if ((raw_value != NULL) && (strcmp (raw_value, "") != 0) && (value_type != NULL)) { ++#if EXIV2_TEST_VERSION(0,28,0) ++ Exiv2::Value::UniquePtr value = Exiv2::Value::create (Exiv2::TypeInfo::typeId (value_type)); ++#else + Exiv2::Value::AutoPtr value = Exiv2::Value::create (Exiv2::TypeInfo::typeId (value_type)); ++#endif + value->read (raw_value); + Exiv2::ExifKey exif_key(key); + ed.add (exif_key, value.get()); + } + } ++#if EXIV2_TEST_VERSION(0,28,0) ++ catch (Exiv2::Error& e) { ++#else + catch (Exiv2::AnyError& e) { ++#endif + /* we don't care about invalid key errors */ + g_warning ("%s", e.what()); + } +@@ -1277,7 +1325,11 @@ exiv2_write_metadata_private (Exiv2::Image::AutoPtr image, + value_type = gth_main_get_metadata_type (metadatum, attributes[i]); + if (value_type != NULL) { + /* See the exif data code above for an explanation. */ ++#if EXIV2_TEST_VERSION(0,28,0) ++ Exiv2::Value::UniquePtr value = Exiv2::Value::create (Exiv2::TypeInfo::typeId (value_type)); ++#else + Exiv2::Value::AutoPtr value = Exiv2::Value::create (Exiv2::TypeInfo::typeId (value_type)); ++#endif + Exiv2::IptcKey iptc_key(key); + + const char *raw_value; +@@ -1303,7 +1355,11 @@ exiv2_write_metadata_private (Exiv2::Image::AutoPtr image, + } + } + } ++#if EXIV2_TEST_VERSION(0,28,0) ++ catch (Exiv2::Error& e) { ++#else + catch (Exiv2::AnyError& e) { ++#endif + /* we don't care about invalid key errors */ + g_warning ("%s", e.what()); + } +@@ -1327,7 +1383,11 @@ exiv2_write_metadata_private (Exiv2::Image::AutoPtr image, + value_type = gth_main_get_metadata_type (metadatum, attributes[i]); + if (value_type != NULL) { + /* See the exif data code above for an explanation. */ ++#if EXIV2_TEST_VERSION(0,28,0) ++ Exiv2::Value::UniquePtr value = Exiv2::Value::create (Exiv2::TypeInfo::typeId (value_type)); ++#else + Exiv2::Value::AutoPtr value = Exiv2::Value::create (Exiv2::TypeInfo::typeId (value_type)); ++#endif + Exiv2::XmpKey xmp_key(key); + + const char *raw_value; +@@ -1353,7 +1413,11 @@ exiv2_write_metadata_private (Exiv2::Image::AutoPtr image, + } + } + } ++#if EXIV2_TEST_VERSION(0,28,0) ++ catch (Exiv2::Error& e) { ++#else + catch (Exiv2::AnyError& e) { ++#endif + /* we don't care about invalid key errors */ + g_warning ("%s", e.what()); + } +@@ -1369,7 +1433,11 @@ exiv2_write_metadata_private (Exiv2::Image::AutoPtr image, + image->setXmpData(xd); + image->writeMetadata(); + } ++#if EXIV2_TEST_VERSION(0,28,0) ++ catch (Exiv2::Error& e) { ++#else + catch (Exiv2::AnyError& e) { ++#endif + g_warning ("%s", e.what()); + } + +@@ -1396,16 +1464,33 @@ exiv2_write_metadata (GthImageSaveData *data) + { + if (exiv2_supports_writes (data->mime_type) && (data->file_data != NULL)) { + try { ++#if EXIV2_TEST_VERSION(0,28,0) ++ Exiv2::Image::UniquePtr image = Exiv2::ImageFactory::open ((Exiv2::byte*) data->buffer, data->buffer_size); ++#else + Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open ((Exiv2::byte*) data->buffer, data->buffer_size); ++#endif + g_assert (image.get() != 0); + ++#if EXIV2_TEST_VERSION(0,28,0) ++ Exiv2::DataBuf buf = exiv2_write_metadata_private (std::move(image), data->file_data->info, data->image); ++#else + Exiv2::DataBuf buf = exiv2_write_metadata_private (image, data->file_data->info, data->image); ++#endif + + g_free (data->buffer); ++#if EXIV2_TEST_VERSION(0,28,0) ++ data->buffer = g_memdup (buf.data(), buf.size()); ++ data->buffer_size = buf.size(); ++#else + data->buffer = g_memdup (buf.pData_, buf.size_); + data->buffer_size = buf.size_; ++#endif + } ++#if EXIV2_TEST_VERSION(0,28,0) ++ catch (Exiv2::Error& e) { ++#else + catch (Exiv2::AnyError& e) { ++#endif + if (data->error != NULL) + *data->error = g_error_new_literal (G_IO_ERROR, G_IO_ERROR_FAILED, e.what()); + g_warning ("%s\n", e.what()); +@@ -1426,16 +1511,33 @@ exiv2_write_metadata_to_buffer (void **buffer, + GError **error) + { + try { ++#if EXIV2_TEST_VERSION(0,28,0) ++ Exiv2::Image::UniquePtr image = Exiv2::ImageFactory::open ((Exiv2::byte*) *buffer, *buffer_size); ++#else + Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open ((Exiv2::byte*) *buffer, *buffer_size); ++#endif + g_assert (image.get() != 0); + ++#if EXIV2_TEST_VERSION(0,28,0) ++ Exiv2::DataBuf buf = exiv2_write_metadata_private (std::move(image), info, image_data); ++#else + Exiv2::DataBuf buf = exiv2_write_metadata_private (image, info, image_data); ++#endif + + g_free (*buffer); ++#if EXIV2_TEST_VERSION(0,28,0) ++ *buffer = g_memdup (buf.data(), buf.size()); ++ *buffer_size = buf.size(); ++#else + *buffer = g_memdup (buf.pData_, buf.size_); + *buffer_size = buf.size_; ++#endif + } ++#if EXIV2_TEST_VERSION(0,28,0) ++ catch (Exiv2::Error& e) { ++#else + catch (Exiv2::AnyError& e) { ++#endif + if (error != NULL) + *error = g_error_new_literal (G_IO_ERROR, G_IO_ERROR_FAILED, e.what()); + return FALSE; +@@ -1452,7 +1554,11 @@ exiv2_clear_metadata (void **buffer, + GError **error) + { + try { ++#if EXIV2_TEST_VERSION(0,28,0) ++ Exiv2::Image::UniquePtr image = Exiv2::ImageFactory::open ((Exiv2::byte*) *buffer, *buffer_size); ++#else + Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open ((Exiv2::byte*) *buffer, *buffer_size); ++#endif + + if (image.get() == 0) { + if (error != NULL) +@@ -1464,7 +1570,11 @@ exiv2_clear_metadata (void **buffer, + image->clearMetadata(); + image->writeMetadata(); + } ++#if EXIV2_TEST_VERSION(0,28,0) ++ catch (Exiv2::Error& e) { ++#else + catch (Exiv2::AnyError& e) { ++#endif + g_warning ("%s", e.what()); + } + +@@ -1473,10 +1583,19 @@ exiv2_clear_metadata (void **buffer, + Exiv2::DataBuf buf = io.read(io.size()); + + g_free (*buffer); ++#if EXIV2_TEST_VERSION(0,28,0) ++ *buffer = g_memdup (buf.data(), buf.size()); ++ *buffer_size = buf.size(); ++#else + *buffer = g_memdup (buf.pData_, buf.size_); + *buffer_size = buf.size_; ++#endif + } ++#if EXIV2_TEST_VERSION(0,28,0) ++ catch (Exiv2::Error& e) { ++#else + catch (Exiv2::AnyError& e) { ++#endif + if (error != NULL) + *error = g_error_new_literal (G_IO_ERROR, G_IO_ERROR_FAILED, e.what()); + return FALSE; +@@ -1509,26 +1628,44 @@ exiv2_generate_thumbnail (const char *uri, + if (path == NULL) + return NULL; + ++#if EXIV2_TEST_VERSION(0,28,0) ++ Exiv2::Image::UniquePtr image = Exiv2::ImageFactory::open (path); ++#else + Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open (path); ++#endif + image->readMetadata (); + Exiv2::ExifThumbC exifThumb (image->exifData ()); + Exiv2::DataBuf thumb = exifThumb.copy (); + + g_free (path); + ++#if EXIV2_TEST_VERSION(0,28,0) ++ if (thumb.data() == NULL) ++#else + if (thumb.pData_ == NULL) ++#endif + return NULL; + + Exiv2::ExifData &ed = image->exifData(); + ++#if EXIV2_TEST_VERSION(0,28,0) ++ long orientation = (ed["Exif.Image.Orientation"].count() > 0) ? ed["Exif.Image.Orientation"].toUint32() : 1; ++ long image_width = (ed["Exif.Photo.PixelXDimension"].count() > 0) ? ed["Exif.Photo.PixelXDimension"].toUint32() : -1; ++ long image_height = (ed["Exif.Photo.PixelYDimension"].count() > 0) ? ed["Exif.Photo.PixelYDimension"].toUint32() : -1; ++#else + long orientation = (ed["Exif.Image.Orientation"].count() > 0) ? ed["Exif.Image.Orientation"].toLong() : 1; + long image_width = (ed["Exif.Photo.PixelXDimension"].count() > 0) ? ed["Exif.Photo.PixelXDimension"].toLong() : -1; + long image_height = (ed["Exif.Photo.PixelYDimension"].count() > 0) ? ed["Exif.Photo.PixelYDimension"].toLong() : -1; ++#endif + + if ((orientation != 1) || (image_width <= 0) || (image_height <= 0)) + return NULL; + ++#if EXIV2_TEST_VERSION(0,28,0) ++ GInputStream *stream = g_memory_input_stream_new_from_data (thumb.data(), thumb.size(), NULL); ++#else + GInputStream *stream = g_memory_input_stream_new_from_data (thumb.pData_, thumb.size_, NULL); ++#endif + pixbuf = gdk_pixbuf_new_from_stream (stream, NULL, NULL); + g_object_unref (stream); + +@@ -1582,7 +1719,11 @@ exiv2_generate_thumbnail (const char *uri, + gdk_pixbuf_set_option (pixbuf, "orientation", orientation_s); + g_free (orientation_s); + } ++#if EXIV2_TEST_VERSION(0,28,0) ++ catch (Exiv2::Error& e) { ++#else + catch (Exiv2::AnyError& e) { ++#endif + } + + return pixbuf; +-- +2.41.0 + @@ -2,7 +2,7 @@ pkgname=pix-git _pkgbasename=pix -pkgver=3.0.0.r0.g2d78023 +pkgver=3.0.2.r0.g855a547 pkgrel=1 pkgdesc="Image viewer and browser based on gthumb. X-Apps Project (git version)." arch=('i686' 'x86_64' 'armv7h') @@ -40,8 +40,14 @@ provides=($pkgname $_pkgbasename) conflicts=(${_pkgbasename}) url='https://github.com/linuxmint/pix' -source=("${pkgname}::git+https://github.com/linuxmint/${_pkgbasename}.git") -md5sums=('SKIP') +source=("${pkgname}::git+https://github.com/linuxmint/${_pkgbasename}.git" +'0001-exiv-0.28.patch') +md5sums=('SKIP' '9c20e12ed62c5d023c9dd81fe6e4e3ab') + +prepare() { + cd "${srcdir}"/${pkgname} + patch --forward --strip=1 --input="${srcdir}"/0001-exiv-0.28.patch +} pkgver() { cd ${srcdir}/${pkgname} |