diff options
author | Andreas Sturmlechner <asturm@gentoo.org> | 2023-08-20 19:02:30 +0200 |
---|---|---|
committer | Andreas Sturmlechner <asturm@gentoo.org> | 2023-08-20 19:07:09 +0200 |
commit | 40c5fd9857ca17b583abc7627acfa9547f2f4283 (patch) | |
tree | ff41b053faf91df089da2f77f6e6e0fbb94d477a /sci-geosciences | |
parent | dev-python/pyopencl: add 2023.1.2 (diff) | |
download | gentoo-40c5fd9857ca17b583abc7627acfa9547f2f4283.tar.gz gentoo-40c5fd9857ca17b583abc7627acfa9547f2f4283.tar.bz2 gentoo-40c5fd9857ca17b583abc7627acfa9547f2f4283.zip |
sci-geosciences/gpscorrelate: Fix build with >=exiv2-0.28
Closes: https://bugs.gentoo.org/906498
Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
Diffstat (limited to 'sci-geosciences')
-rw-r--r-- | sci-geosciences/gpscorrelate/files/gpscorrelate-2.0-exiv2-0.28.patch | 135 | ||||
-rw-r--r-- | sci-geosciences/gpscorrelate/gpscorrelate-2.0.ebuild | 1 |
2 files changed, 136 insertions, 0 deletions
diff --git a/sci-geosciences/gpscorrelate/files/gpscorrelate-2.0-exiv2-0.28.patch b/sci-geosciences/gpscorrelate/files/gpscorrelate-2.0-exiv2-0.28.patch new file mode 100644 index 000000000000..f15032fd7c77 --- /dev/null +++ b/sci-geosciences/gpscorrelate/files/gpscorrelate-2.0-exiv2-0.28.patch @@ -0,0 +1,135 @@ +From 7c945a5c9116325dad795dbe9682c2c4a4dea2d9 Mon Sep 17 00:00:00 2001 +From: Andreas Sturmlechner <asturm@gentoo.org> +Date: Sun, 20 Aug 2023 18:57:43 +0200 +Subject: [PATCH] Fix build with >=exiv2-0.28 + +Fixes https://github.com/dfandrich/gpscorrelate/issues/22 + +Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org> +--- + exif-gps.cpp | 37 +++++++++++++++++++++++++++++++++++++ + 1 file changed, 37 insertions(+) + +diff --git a/exif-gps.cpp b/exif-gps.cpp +index d464d62..71b46ef 100644 +--- a/exif-gps.cpp ++++ b/exif-gps.cpp +@@ -44,6 +44,7 @@ + #include "exiv2/image.hpp" + #include "exiv2/exif.hpp" + #include "exiv2/error.hpp" ++#include "exiv2/version.hpp" + + #include "gpsstructure.h" + #include "exif-gps.h" +@@ -97,7 +98,11 @@ int main(int argc, char* argv[]) + char* ReadExifDate(const char* File, int* IncludesGPS) + { + // Open and read the file. ++#if EXIV2_TEST_VERSION(0, 28, 0) ++ Exiv2::Image::UniquePtr Image; ++#else + Exiv2::Image::AutoPtr Image; ++#endif + + try { + Image = Exiv2::ImageFactory::open(File); +@@ -154,7 +159,11 @@ char* ReadExifData(const char* File, double* Lat, double* Long, double* Elev, in + // much more data than the last, specifically + // for display purposes. For the GUI version. + // Open and read the file. ++#if EXIV2_TEST_VERSION(0, 28, 0) ++ Exiv2::Image::UniquePtr Image; ++#else + Exiv2::Image::AutoPtr Image; ++#endif + + try { + Image = Exiv2::ImageFactory::open(File); +@@ -273,7 +282,11 @@ char* ReadExifData(const char* File, double* Lat, double* Long, double* Elev, in + + // Is the altitude below sea level? If so, negate the value. + GPSData = ExifRead["Exif.GPSInfo.GPSAltitudeRef"]; ++#if EXIV2_TEST_VERSION(0, 28, 0) ++ if (GPSData.count() >= 1 && GPSData.toUint32() == 1) ++#else + if (GPSData.count() >= 1 && GPSData.toLong() == 1) ++#endif + { + // Negate the elevation. + *Elev = -*Elev; +@@ -292,7 +305,11 @@ char* ReadGPSTimestamp(const char* File, char* DateStamp, char* TimeStamp, int* + // much more data than the last, specifically + // for display purposes. For the GUI version. + // Open and read the file. ++#if EXIV2_TEST_VERSION(0, 28, 0) ++ Exiv2::Image::UniquePtr Image; ++#else + Exiv2::Image::AutoPtr Image; ++#endif + + try { + Image = Exiv2::ImageFactory::open(File); +@@ -463,7 +480,11 @@ int WriteGPSData(const char* File, const struct GPSPoint* Point, + struct utimbuf utb; + if (NoChangeMtime) + stat(File, &statbuf); ++#if EXIV2_TEST_VERSION(0, 28, 0) ++ Exiv2::Image::UniquePtr Image; ++#else + Exiv2::Image::AutoPtr Image; ++#endif + + try { + Image = Exiv2::ImageFactory::open(File); +@@ -493,7 +514,11 @@ int WriteGPSData(const char* File, const struct GPSPoint* Point, + // Do all the easy constant ones first. + // GPSVersionID tag: standard says it should be four bytes: 02 02 00 00 + // (and, must be present). ++#if EXIV2_TEST_VERSION(0, 28, 0) ++ Exiv2::Value::UniquePtr Value = Exiv2::Value::create(Exiv2::unsignedByte); ++#else + Exiv2::Value::AutoPtr Value = Exiv2::Value::create(Exiv2::unsignedByte); ++#endif + Value->read("2 2 0 0"); + replace(ExifToWrite, Exiv2::ExifKey("Exif.GPSInfo.GPSVersionID"), Value.get()); + // Datum: the datum of the measured data. The default is WGS-84. +@@ -643,7 +668,11 @@ int WriteFixedDatestamp(const char* File, time_t Time) + struct utimbuf utb; + stat(File, &statbuf); + ++#if EXIV2_TEST_VERSION(0, 28, 0) ++ Exiv2::Image::UniquePtr Image; ++#else + Exiv2::Image::AutoPtr Image; ++#endif + + try { + Image = Exiv2::ImageFactory::open(File); +@@ -672,7 +701,11 @@ int WriteFixedDatestamp(const char* File, time_t Time) + ExifToWrite.erase(ExifToWrite.findKey(Exiv2::ExifKey("Exif.GPSInfo.GPSDateStamp"))); + ExifToWrite["Exif.GPSInfo.GPSDateStamp"] = ScratchBuf; + ++#if EXIV2_TEST_VERSION(0, 28, 0) ++ Exiv2::Value::UniquePtr Value = Exiv2::Value::create(Exiv2::unsignedRational); ++#else + Exiv2::Value::AutoPtr Value = Exiv2::Value::create(Exiv2::unsignedRational); ++#endif + snprintf(ScratchBuf, sizeof(ScratchBuf), "%d/1 %d/1 %d/1", + TimeStamp.tm_hour, TimeStamp.tm_min, + TimeStamp.tm_sec); +@@ -705,7 +738,11 @@ int RemoveGPSExif(const char* File, int NoChangeMtime, int NoWriteExif) + stat(File, &statbuf); + + // Open the file and start reading. ++#if EXIV2_TEST_VERSION(0, 28, 0) ++ Exiv2::Image::UniquePtr Image; ++#else + Exiv2::Image::AutoPtr Image; ++#endif + + try { + Image = Exiv2::ImageFactory::open(File); +-- +2.41.0 + diff --git a/sci-geosciences/gpscorrelate/gpscorrelate-2.0.ebuild b/sci-geosciences/gpscorrelate/gpscorrelate-2.0.ebuild index 982684d854bb..f2d065010f21 100644 --- a/sci-geosciences/gpscorrelate/gpscorrelate-2.0.ebuild +++ b/sci-geosciences/gpscorrelate/gpscorrelate-2.0.ebuild @@ -29,6 +29,7 @@ RDEPEND="${DEPEND}" PATCHES=( "${FILESDIR}/${P}-desktop-pass-validation.patch" "${FILESDIR}/${P}-respect-users-flags.patch" + "${FILESDIR}/${P}-exiv2-0.28.patch" # bug 906498 ) src_compile() { |