aboutsummaryrefslogtreecommitdiff
path: root/tools/depends/target
diff options
context:
space:
mode:
authorenen92 <92enen@gmail.com>2024-07-08 11:34:59 +0100
committerenen92 <92enen@gmail.com>2024-07-10 09:27:18 +0100
commitcc1869c6414a0a18077601f3a237ec759b1b1cad (patch)
tree1acc01126c995991f4328853f8016332a35b5bf7 /tools/depends/target
parentd7876de3e6d9045941cc12eb4150248e01c1ea64 (diff)
[depends] Bump exiv2 to v0.28.3
Diffstat (limited to 'tools/depends/target')
-rw-r--r--tools/depends/target/exiv2/0001-Add-EXIV2_ENABLE_FILESYSTEM_ACCESS-option.patch564
-rw-r--r--tools/depends/target/exiv2/0001-WIN-lib-postfix.patch (renamed from tools/depends/target/exiv2/0004-WIN-lib-postfix.patch)0
-rw-r--r--tools/depends/target/exiv2/0002-Set-conditional-HTTP-depending-on-EXIV2_ENABLE_WEBRE.patch169
-rw-r--r--tools/depends/target/exiv2/0003-UWP-Disable-getLoadedLibraries.patch45
-rw-r--r--tools/depends/target/exiv2/0005-GCC13-cstdint.patch10
-rw-r--r--tools/depends/target/exiv2/EXIV2-VERSION4
-rw-r--r--tools/depends/target/exiv2/Makefile12
7 files changed, 4 insertions, 800 deletions
diff --git a/tools/depends/target/exiv2/0001-Add-EXIV2_ENABLE_FILESYSTEM_ACCESS-option.patch b/tools/depends/target/exiv2/0001-Add-EXIV2_ENABLE_FILESYSTEM_ACCESS-option.patch
deleted file mode 100644
index 85983690f1..0000000000
--- a/tools/depends/target/exiv2/0001-Add-EXIV2_ENABLE_FILESYSTEM_ACCESS-option.patch
+++ /dev/null
@@ -1,564 +0,0 @@
-From 64acd1a9b4a83ae9fb093660245bb1206cf3817b Mon Sep 17 00:00:00 2001
-From: Miguel Borges de Freitas <92enen@gmail.com>
-Date: Fri, 17 Nov 2023 17:08:29 +0000
-Subject: [PATCH 1/2] Add EXIV2_ENABLE_FILESYSTEM_ACCESS option
-
----
- CMakeLists.txt | 3 ++-
- README.md | 1 +
- cmake/config.h.cmake | 3 +++
- cmake/findDependencies.cmake | 4 +++-
- cmake/generateConfigFile.cmake | 9 +++++----
- cmake/printSummary.cmake | 1 +
- include/exiv2/basicio.hpp | 4 +++-
- include/exiv2/exif.hpp | 6 ++++++
- include/exiv2/preview.hpp | 2 ++
- meson.build | 1 +
- src/basicio.cpp | 32 +++++++++++++++++---------------
- src/exif.cpp | 6 ++++++
- src/futils.cpp | 10 ++++++++++
- src/image.cpp | 14 +++++++++++++-
- src/makernote_int.cpp | 8 +++++++-
- src/preview.cpp | 2 ++
- src/tiffcomposite_int.cpp | 2 +-
- 17 files changed, 83 insertions(+), 25 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index e9f14f722..36266d41a 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -36,7 +36,7 @@ option( EXIV2_ENABLE_BMFF "Build with BMFF support"
- option( EXIV2_ENABLE_BROTLI "Use Brotli for JPEG XL compressed boxes (BMFF)" ON )
- option( EXIV2_ENABLE_VIDEO "Build with video support" ON )
- option( EXIV2_ENABLE_INIH "Use inih library" ON )
--
-+option( EXIV2_ENABLE_FILESYSTEM_ACCESS "Build with filesystem access" ON )
- option( EXIV2_BUILD_SAMPLES "Build sample applications" OFF )
- option( EXIV2_BUILD_EXIV2_COMMAND "Build exiv2 command-line executable" ON )
- option( EXIV2_BUILD_UNIT_TESTS "Build unit tests" OFF )
-@@ -106,6 +106,7 @@ if(EXIV2_BUILD_EXIV2_COMMAND)
-
- if( EXIV2_BUILD_SAMPLES )
- add_subdirectory( samples )
-+ set(EXIV2_ENABLE_FILESYSTEM_ACCESS ON)
- get_directory_property(SAMPLES DIRECTORY samples DEFINITION APPLICATIONS)
-
- if (Python3_Interpreter_FOUND)
-diff --git a/README.md b/README.md
-index 63c9a1c4f..331065363 100644
---- a/README.md
-+++ b/README.md
-@@ -254,6 +254,7 @@ option( EXIV2_ENABLE_PNG "Build with png support (requires libz)"
- ...
- option( EXIV2_ENABLE_BMFF "Build with BMFF support (brotli recommended)" ON )
- option( EXIV2_ENABLE_BROTLI "Use Brotli for JPEG XL compressed boxes (BMFF)" ON )
-+option( EXIV2_ENABLE_FILESYSTEM_ACCESS "Build with filesystem access" ON )
- 577 rmills@rmillsmm:~/gnu/github/exiv2/exiv2 $
- ```
-
-diff --git a/cmake/config.h.cmake b/cmake/config.h.cmake
-index a817d2d1b..f24cd4a63 100644
---- a/cmake/config.h.cmake
-+++ b/cmake/config.h.cmake
-@@ -6,6 +6,9 @@
- // Define to 1 if you want to use libcurl in httpIO.
- #cmakedefine EXV_USE_CURL
-
-+// Define to 1 if you want to enable filesystem access
-+#cmakedefine EXV_ENABLE_FILESYSTEM
-+
- // Define if you require webready support.
- #cmakedefine EXV_ENABLE_WEBREADY
-
-diff --git a/cmake/findDependencies.cmake b/cmake/findDependencies.cmake
-index 5ee481d1c..5159cb0b7 100644
---- a/cmake/findDependencies.cmake
-+++ b/cmake/findDependencies.cmake
-@@ -35,7 +35,9 @@ if (NOT Python3_Interpreter_FOUND)
- message(WARNING "Python3 was not found. Python tests under the 'tests' folder will not be executed")
- endif()
-
--find_package(Filesystem COMPONENTS Experimental Final REQUIRED)
-+if(EXIV2_ENABLE_FILESYSTEM_ACCESS)
-+ find_package(Filesystem COMPONENTS Experimental Final REQUIRED)
-+endif()
-
- # don't use Frameworks on the Mac (#966)
- if (APPLE)
-diff --git a/cmake/generateConfigFile.cmake b/cmake/generateConfigFile.cmake
-index 49c9a10f6..20e331c04 100644
---- a/cmake/generateConfigFile.cmake
-+++ b/cmake/generateConfigFile.cmake
-@@ -6,10 +6,11 @@ include(CheckCXXSymbolExists)
- if (${EXIV2_ENABLE_WEBREADY})
- set(EXV_USE_CURL ${EXIV2_ENABLE_CURL})
- endif()
--set(EXV_ENABLE_BMFF ${EXIV2_ENABLE_BMFF})
--set(EXV_ENABLE_WEBREADY ${EXIV2_ENABLE_WEBREADY})
--set(EXV_HAVE_LENSDATA ${EXIV2_ENABLE_LENSDATA})
--set(EXV_ENABLE_INIH ${EXIV2_ENABLE_INIH})
-+set(EXV_ENABLE_BMFF ${EXIV2_ENABLE_BMFF})
-+set(EXV_ENABLE_WEBREADY ${EXIV2_ENABLE_WEBREADY})
-+set(EXV_HAVE_LENSDATA ${EXIV2_ENABLE_LENSDATA})
-+set(EXV_ENABLE_INIH ${EXIV2_ENABLE_INIH})
-+set(EXV_ENABLE_FILESYSTEM ${EXIV2_ENABLE_FILESYSTEM_ACCESS})
-
- set(EXV_PACKAGE_NAME ${PROJECT_NAME})
- set(EXV_PACKAGE_VERSION ${PROJECT_VERSION})
-diff --git a/cmake/printSummary.cmake b/cmake/printSummary.cmake
-index 854323ba0..06b2745a2 100644
---- a/cmake/printSummary.cmake
-+++ b/cmake/printSummary.cmake
-@@ -69,4 +69,5 @@ OptionOutput( "Building unit tests: " EXIV2_BUILD_UNIT_TESTS
- OptionOutput( "Building fuzz tests: " EXIV2_BUILD_FUZZ_TESTS )
- OptionOutput( "Building doc: " EXIV2_BUILD_DOC )
- OptionOutput( "Building with coverage flags: " BUILD_WITH_COVERAGE )
-+OptionOutput( "Building with filesystem access " EXIV2_ENABLE_FILESYSTEM_ACCESS )
- OptionOutput( "Using ccache: " BUILD_WITH_CCACHE )
-diff --git a/include/exiv2/basicio.hpp b/include/exiv2/basicio.hpp
-index 179220464..71155136d 100644
---- a/include/exiv2/basicio.hpp
-+++ b/include/exiv2/basicio.hpp
-@@ -276,6 +276,7 @@ class EXIV2API IoCloser {
- IoCloser& operator=(const IoCloser&) = delete;
- }; // class IoCloser
-
-+#ifdef EXV_ENABLE_FILESYSTEM
- /*!
- @brief Provides binary file IO by implementing the BasicIo
- interface.
-@@ -479,6 +480,7 @@ class EXIV2API FileIo : public BasicIo {
- std::unique_ptr<Impl> p_;
-
- }; // class FileIo
-+#endif
-
- /*!
- @brief Provides binary IO on blocks of memory by implementing the BasicIo
-@@ -686,7 +688,7 @@ class EXIV2API XPathIo : public MemIo {
- */
- void ReadDataUri(const std::string& path);
- }; // class XPathIo
--#else
-+#elif defined(EXV_ENABLE_FILESYSTEM)
- class EXIV2API XPathIo : public FileIo {
- public:
- /*!
-diff --git a/include/exiv2/exif.hpp b/include/exiv2/exif.hpp
-index 8b1d3d6a4..1228b5dd4 100644
---- a/include/exiv2/exif.hpp
-+++ b/include/exiv2/exif.hpp
-@@ -229,6 +229,7 @@ class EXIV2API ExifThumbC {
- data buffer and %DataBuf ensures that it will be deleted.
- */
- [[nodiscard]] DataBuf copy() const;
-+#ifdef EXV_ENABLE_FILESYSTEM
- /*!
- @brief Write the thumbnail image to a file.
-
-@@ -240,6 +241,7 @@ class EXIV2API ExifThumbC {
- @return The number of bytes written.
- */
- [[nodiscard]] size_t writeFile(const std::string& path) const;
-+#endif
- /*!
- @brief Return the MIME type of the thumbnail, either \c "image/tiff"
- or \c "image/jpeg".
-@@ -279,6 +281,7 @@ class EXIV2API ExifThumb : public ExifThumbC {
-
- //! @name Manipulators
- //@{
-+#ifdef EXV_ENABLE_FILESYSTEM
- /*!
- @brief Set the Exif thumbnail to the JPEG image \em path. Set
- XResolution, YResolution and ResolutionUnit to \em xres,
-@@ -297,6 +300,7 @@ class EXIV2API ExifThumb : public ExifThumbC {
- application that comes with OS X for one.) - David Harvey.
- */
- void setJpegThumbnail(const std::string& path, URational xres, URational yres, uint16_t unit);
-+#endif
- /*!
- @brief Set the Exif thumbnail to the JPEG image pointed to by \em buf,
- and size \em size. Set XResolution, YResolution and
-@@ -315,6 +319,7 @@ class EXIV2API ExifThumb : public ExifThumbC {
- application that comes with OS X for one.) - David Harvey.
- */
- void setJpegThumbnail(const byte* buf, size_t size, URational xres, URational yres, uint16_t unit);
-+#ifdef EXV_ENABLE_FILESYSTEM
- /*!
- @brief Set the Exif thumbnail to the JPEG image \em path.
-
-@@ -329,6 +334,7 @@ class EXIV2API ExifThumb : public ExifThumbC {
- @note Additional existing Exif thumbnail tags are not modified.
- */
- void setJpegThumbnail(const std::string& path);
-+#endif
- /*!
- @brief Set the Exif thumbnail to the JPEG image pointed to by \em buf,
- and size \em size.
-diff --git a/include/exiv2/preview.hpp b/include/exiv2/preview.hpp
-index 295c35b5c..db069ec8c 100644
---- a/include/exiv2/preview.hpp
-+++ b/include/exiv2/preview.hpp
-@@ -68,6 +68,7 @@ class EXIV2API PreviewImage {
- @brief Return the size of the preview image in bytes.
- */
- [[nodiscard]] uint32_t size() const;
-+#ifdef EXV_ENABLE_FILESYSTEM
- /*!
- @brief Write the thumbnail image to a file.
-
-@@ -79,6 +80,7 @@ class EXIV2API PreviewImage {
- @return The number of bytes written.
- */
- [[nodiscard]] size_t writeFile(const std::string& path) const;
-+#endif
- /*!
- @brief Return the MIME type of the preview image, usually either
- \c "image/tiff" or \c "image/jpeg".
-diff --git a/meson.build b/meson.build
-index 5c205d845..1b141d5cf 100644
---- a/meson.build
-+++ b/meson.build
-@@ -116,6 +116,7 @@ cdata.set('EXV_HAVE_LIBZ', zlib_dep.found())
- cdata.set('EXV_USE_CURL', curl_dep.found())
- cdata.set('EXV_ENABLE_NLS', intl_dep.found())
- cdata.set('EXV_ENABLE_WEBREADY', curl_dep.found())
-+cdata.set('EXV_ENABLE_FILESYSTEM', true)
-
- cfile = configure_file(
- input: 'cmake/config.h.cmake',
-diff --git a/src/basicio.cpp b/src/basicio.cpp
-index 1986622b3..36509b16b 100644
---- a/src/basicio.cpp
-+++ b/src/basicio.cpp
-@@ -36,6 +36,7 @@
- #include <curl/curl.h>
- #endif
-
-+#ifdef EXV_ENABLE_FILESYSTEM
- #ifdef _WIN32
- using mode_t = unsigned short;
- #include <io.h>
-@@ -49,19 +50,7 @@ namespace fs = std::filesystem;
- #include <experimental/filesystem>
- namespace fs = std::experimental::filesystem;
- #endif
--
--// *****************************************************************************
--// class member definitions
--namespace {
--/// @brief replace each substring of the subject that matches the given search string with the given replacement.
--void ReplaceStringInPlace(std::string& subject, std::string_view search, std::string_view replace) {
-- auto pos = subject.find(search);
-- while (pos != std::string::npos) {
-- subject.replace(pos, search.length(), replace);
-- pos += subject.find(search, pos + replace.length());
-- }
--}
--} // namespace
-+#endif
-
- namespace Exiv2 {
- void BasicIo::readOrThrow(byte* buf, size_t rcount, ErrorCode err) {
-@@ -75,6 +64,7 @@ void BasicIo::seekOrThrow(int64_t offset, Position pos, ErrorCode err) {
- Internal::enforce(r == 0, err);
- }
-
-+#ifdef EXV_ENABLE_FILESYSTEM
- //! Internal Pimpl structure of class FileIo.
- class FileIo::Impl {
- public:
-@@ -570,6 +560,7 @@ const std::string& FileIo::path() const noexcept {
-
- void FileIo::populateFakeData() {
- }
-+#endif
-
- //! Internal Pimpl structure of class MemIo.
- class MemIo::Impl final {
-@@ -918,7 +909,7 @@ void XPathIo::ReadDataUri(const std::string& path) {
- delete[] decodeData;
- }
-
--#else
-+#elif defined(EXV_ENABLE_FILESYSTEM)
- XPathIo::XPathIo(const std::string& orgPath) : FileIo(XPathIo::writeDataToFile(orgPath)), tempFilePath_(path()) {
- }
-
-@@ -933,6 +924,16 @@ void XPathIo::transfer(BasicIo& src) {
- if (isTemp_) {
- // replace temp path to gent path.
- auto currentPath = path();
-+
-+ // replace each substring of the subject that matches the given search string with the given replacement.
-+ auto ReplaceStringInPlace = [](std::string& subject, std::string_view search, std::string_view replace) {
-+ auto pos = subject.find(search);
-+ while (pos != std::string::npos) {
-+ subject.replace(pos, search.length(), replace);
-+ pos += subject.find(search, pos + replace.length());
-+ }
-+ };
-+
- ReplaceStringInPlace(currentPath, XPathIo::TEMP_FILE_EXT, XPathIo::GEN_FILE_EXT);
- setPath(currentPath);
-
-@@ -1726,7 +1727,7 @@ CurlIo::CurlIo(const std::string& url, size_t blockSize) {
-
- // *************************************************************************
- // free functions
--
-+#ifdef EXV_ENABLE_FILESYSTEM
- DataBuf readFile(const std::string& path) {
- FileIo file(path);
- if (file.open("rb") != 0) {
-@@ -1750,6 +1751,7 @@ size_t writeFile(const DataBuf& buf, const std::string& path) {
- }
- return file.write(buf.c_data(), buf.size());
- }
-+#endif
-
- #ifdef EXV_USE_CURL
- size_t curlWriter(char* data, size_t size, size_t nmemb, std::string* writerData) {
-diff --git a/src/exif.cpp b/src/exif.cpp
-index 4f61b074c..9c300e531 100644
---- a/src/exif.cpp
-+++ b/src/exif.cpp
-@@ -375,6 +375,7 @@ DataBuf ExifThumbC::copy() const {
- return thumbnail->copy(exifData_);
- }
-
-+#ifdef EXV_ENABLE_FILESYSTEM
- size_t ExifThumbC::writeFile(const std::string& path) const {
- auto thumbnail = Thumbnail::create(exifData_);
- if (!thumbnail)
-@@ -387,6 +388,7 @@ size_t ExifThumbC::writeFile(const std::string& path) const {
-
- return Exiv2::writeFile(buf, name);
- }
-+#endif
-
- const char* ExifThumbC::mimeType() const {
- auto thumbnail = Thumbnail::create(exifData_);
-@@ -405,10 +407,12 @@ const char* ExifThumbC::extension() const {
- ExifThumb::ExifThumb(ExifData& exifData) : ExifThumbC(exifData), exifData_(exifData) {
- }
-
-+#ifdef EXV_ENABLE_FILESYSTEM
- void ExifThumb::setJpegThumbnail(const std::string& path, URational xres, URational yres, uint16_t unit) {
- DataBuf thumb = readFile(path); // may throw
- setJpegThumbnail(thumb.c_data(), thumb.size(), xres, yres, unit);
- }
-+#endif
-
- void ExifThumb::setJpegThumbnail(const byte* buf, size_t size, URational xres, URational yres, uint16_t unit) {
- setJpegThumbnail(buf, size);
-@@ -417,10 +421,12 @@ void ExifThumb::setJpegThumbnail(const byte* buf, size_t size, URational xres, U
- exifData_["Exif.Thumbnail.ResolutionUnit"] = unit;
- }
-
-+#ifdef EXV_ENABLE_FILESYSTEM
- void ExifThumb::setJpegThumbnail(const std::string& path) {
- DataBuf thumb = readFile(path); // may throw
- setJpegThumbnail(thumb.c_data(), thumb.size());
- }
-+#endif
-
- void ExifThumb::setJpegThumbnail(const byte* buf, size_t size) {
- exifData_["Exif.Thumbnail.Compression"] = static_cast<uint16_t>(6);
-diff --git a/src/futils.cpp b/src/futils.cpp
-index c746838d5..0fd5024d4 100644
---- a/src/futils.cpp
-+++ b/src/futils.cpp
-@@ -15,6 +15,7 @@
- #include <sstream>
- #include <stdexcept>
-
-+#ifdef EXV_ENABLE_FILESYSTEM
- #if __has_include(<filesystem>)
- #include <filesystem>
- namespace fs = std::filesystem;
-@@ -22,6 +23,7 @@ namespace fs = std::filesystem;
- #include <experimental/filesystem>
- namespace fs = std::experimental::filesystem;
- #endif
-+#endif
-
- #if defined(_WIN32)
- // clang-format off
-@@ -230,7 +232,11 @@ bool fileExists(const std::string& path) {
- if (fileProtocol(path) != pFile) {
- return true;
- }
-+#ifdef EXV_ENABLE_FILESYSTEM
- return fs::exists(path);
-+#else
-+ return false;
-+#endif
- }
-
- std::string strError() {
-@@ -340,6 +346,7 @@ Uri Uri::Parse(const std::string& uri) {
- }
-
- std::string getProcessPath() {
-+#ifdef EXV_ENABLE_FILESYSTEM
- #if defined(__FreeBSD__)
- std::string ret("unknown");
- unsigned int n;
-@@ -381,5 +388,8 @@ std::string getProcessPath() {
- return "unknown";
- }
- #endif
-+#else
-+ return "unknown";
-+#endif
- }
- } // namespace Exiv2
-diff --git a/src/image.cpp b/src/image.cpp
-index 05d8345f9..9bbe1f272 100644
---- a/src/image.cpp
-+++ b/src/image.cpp
-@@ -116,11 +116,13 @@ constexpr Registry registry[] = {
- #endif // EXV_ENABLE_BMFF
- };
-
-+#ifdef EXV_ENABLE_FILESYSTEM
- std::string pathOfFileUrl(const std::string& url) {
- std::string path = url.substr(7);
- size_t found = path.find('/');
- return (found == std::string::npos) ? path : path.substr(found);
- }
-+#endif
-
- } // namespace
-
-@@ -748,9 +750,13 @@ bool ImageFactory::checkType(ImageType type, BasicIo& io, bool advance) {
- return false;
- }
-
--ImageType ImageFactory::getType(const std::string& path) {
-+ImageType ImageFactory::getType([[maybe_unused]] const std::string& path) {
-+#ifdef EXV_ENABLE_FILESYSTEM
- FileIo fileIo(path);
- return getType(fileIo);
-+#else
-+ return ImageType::none;
-+#endif
- }
-
- ImageType ImageFactory::getType(const byte* data, size_t size) {
-@@ -781,12 +787,16 @@ BasicIo::UniquePtr ImageFactory::createIo(const std::string& path, bool useCurl)
-
- if (fProt == pHttp)
- return std::make_unique<HttpIo>(path); // may throw
-+#ifdef EXV_ENABLE_FILESYSTEM
- if (fProt == pFileUri)
- return std::make_unique<FileIo>(pathOfFileUrl(path));
- if (fProt == pStdin || fProt == pDataUri)
- return std::make_unique<XPathIo>(path); // may throw
-
- return std::make_unique<FileIo>(path);
-+#else
-+ return nullptr;
-+#endif
-
- (void)(useCurl);
- } // ImageFactory::createIo
-@@ -817,6 +827,7 @@ Image::UniquePtr ImageFactory::open(BasicIo::UniquePtr io) {
- return nullptr;
- }
-
-+#ifdef EXV_ENABLE_FILESYSTEM
- Image::UniquePtr ImageFactory::create(ImageType type, const std::string& path) {
- auto fileIo = std::make_unique<FileIo>(path);
- // Create or overwrite the file, then close it
-@@ -831,6 +842,7 @@ Image::UniquePtr ImageFactory::create(ImageType type, const std::string& path) {
- throw Error(ErrorCode::kerUnsupportedImageType, static_cast<int>(type));
- return image;
- }
-+#endif
-
- Image::UniquePtr ImageFactory::create(ImageType type) {
- auto image = create(type, std::make_unique<MemIo>());
-diff --git a/src/makernote_int.cpp b/src/makernote_int.cpp
-index 0d2e0443f..0579d2596 100644
---- a/src/makernote_int.cpp
-+++ b/src/makernote_int.cpp
-@@ -18,6 +18,7 @@
- #include <array>
- #include <iostream>
-
-+#ifdef EXV_ENABLE_FILESYSTEM
- #if __has_include(<filesystem>)
- #include <filesystem>
- namespace fs = std::filesystem;
-@@ -25,6 +26,7 @@ namespace fs = std::filesystem;
- #include <experimental/filesystem>
- namespace fs = std::experimental::filesystem;
- #endif
-+#endif
-
- #if !defined(_WIN32)
- #include <pwd.h>
-@@ -62,6 +64,7 @@ namespace Exiv2::Internal {
- // If not found in cwd, we return the default path
- // which is the user profile path on win and the home dir on linux
- std::string getExiv2ConfigPath() {
-+#ifdef EXV_ENABLE_FILESYSTEM
- #ifdef _WIN32
- std::string inifile("exiv2.ini");
- #else
-@@ -83,13 +86,16 @@ std::string getExiv2ConfigPath() {
- currentPath = std::string(pw ? pw->pw_dir : "");
- #endif
- return (currentPath / inifile).string();
-+#else
-+ return "";
-+#endif
- }
-
- std::string readExiv2Config([[maybe_unused]] const std::string& section, [[maybe_unused]] const std::string& value,
- const std::string& def) {
- std::string result = def;
-
--#ifdef EXV_ENABLE_INIH
-+#if defined(EXV_ENABLE_INIH) && defined(EXV_ENABLE_FILESYSTEM)
- INIReader reader(Exiv2::Internal::getExiv2ConfigPath());
- if (reader.ParseError() == 0) {
- result = reader.Get(section, value, def);
-diff --git a/src/preview.cpp b/src/preview.cpp
-index 18fe6122b..993c3b749 100644
---- a/src/preview.cpp
-+++ b/src/preview.cpp
-@@ -966,12 +966,14 @@ PreviewImage& PreviewImage::operator=(const PreviewImage& rhs) {
- return *this;
- }
-
-+#ifdef EXV_ENABLE_FILESYSTEM
- size_t PreviewImage::writeFile(const std::string& path) const {
- std::string name = path + extension();
- // Todo: Creating a DataBuf here unnecessarily copies the memory
- DataBuf buf(pData(), size());
- return Exiv2::writeFile(buf, name);
- }
-+#endif
-
- DataBuf PreviewImage::copy() const {
- return {pData(), size()};
-diff --git a/src/tiffcomposite_int.cpp b/src/tiffcomposite_int.cpp
-index 33967b427..95ce450c7 100644
---- a/src/tiffcomposite_int.cpp
-+++ b/src/tiffcomposite_int.cpp
-@@ -1095,7 +1095,7 @@ size_t TiffBinaryArray::doWrite(IoWrapper& ioWrapper, ByteOrder byteOrder, size_
- }
- DataBuf buf = cryptFct(tag(), mio.mmap(), mio.size(), pRoot_);
- if (!buf.empty()) {
-- mio.seek(0, Exiv2::FileIo::beg);
-+ mio.seek(0, Exiv2::BasicIo::beg);
- mio.write(buf.c_data(), buf.size());
- }
- }
---
-2.39.3 (Apple Git-146)
-
diff --git a/tools/depends/target/exiv2/0004-WIN-lib-postfix.patch b/tools/depends/target/exiv2/0001-WIN-lib-postfix.patch
index a78dacec9f..a78dacec9f 100644
--- a/tools/depends/target/exiv2/0004-WIN-lib-postfix.patch
+++ b/tools/depends/target/exiv2/0001-WIN-lib-postfix.patch
diff --git a/tools/depends/target/exiv2/0002-Set-conditional-HTTP-depending-on-EXIV2_ENABLE_WEBRE.patch b/tools/depends/target/exiv2/0002-Set-conditional-HTTP-depending-on-EXIV2_ENABLE_WEBRE.patch
deleted file mode 100644
index 46cbb7079f..0000000000
--- a/tools/depends/target/exiv2/0002-Set-conditional-HTTP-depending-on-EXIV2_ENABLE_WEBRE.patch
+++ /dev/null
@@ -1,169 +0,0 @@
-From 0a626d3e54d5db1193e42b505db5cac9e65967af Mon Sep 17 00:00:00 2001
-From: Miguel Borges de Freitas <92enen@gmail.com>
-Date: Fri, 24 Nov 2023 11:56:11 +0000
-Subject: [PATCH 2/2] Set conditional HTTP depending on EXIV2_ENABLE_WEBREADY
-
----
- include/exiv2/exiv2.hpp | 2 ++
- include/meson.build | 5 ++++-
- meson.build | 8 +++++++-
- meson_options.txt | 5 +++++
- src/CMakeLists.txt | 6 ++++--
- src/basicio.cpp | 2 ++
- src/image.cpp | 4 +++-
- 7 files changed, 27 insertions(+), 5 deletions(-)
-
-diff --git a/include/exiv2/exiv2.hpp b/include/exiv2/exiv2.hpp
-index bae5614d2..35bdb1ab9 100644
---- a/include/exiv2/exiv2.hpp
-+++ b/include/exiv2/exiv2.hpp
-@@ -19,7 +19,9 @@
- #include "exiv2/exif.hpp"
- #include "exiv2/futils.hpp"
- #include "exiv2/gifimage.hpp"
-+#ifdef EXV_ENABLE_WEBREADY
- #include "exiv2/http.hpp"
-+#endif
- #include "exiv2/image.hpp"
- #include "exiv2/iptc.hpp"
- #include "exiv2/jp2image.hpp"
-diff --git a/include/meson.build b/include/meson.build
-index 7bbb3800f..abcb4a4d6 100644
---- a/include/meson.build
-+++ b/include/meson.build
-@@ -14,7 +14,6 @@ headers = files(
- 'exiv2/exiv2.hpp',
- 'exiv2/futils.hpp',
- 'exiv2/gifimage.hpp',
-- 'exiv2/http.hpp',
- 'exiv2/image.hpp',
- 'exiv2/image_types.hpp',
- 'exiv2/iptc.hpp',
-@@ -47,6 +46,10 @@ if get_option('video')
- headers += files('exiv2/asfvideo.hpp', 'exiv2/matroskavideo.hpp', 'exiv2/quicktimevideo.hpp', 'exiv2/riffvideo.hpp')
- endif
-
-+if get_option('webready')
-+ headers += files('exiv2/http.hpp')
-+endif
-+
- if zlib_dep.found()
- headers += files('exiv2/pngimage.hpp')
- endif
-diff --git a/meson.build b/meson.build
-index 1b141d5cf..b69fada34 100644
---- a/meson.build
-+++ b/meson.build
-@@ -67,7 +67,12 @@ if brotli_dep.found()
- deps += brotli_dep
- endif
-
--curl_dep = dependency('libcurl', disabler: true, required: get_option('curl'))
-+if get_option('webready')
-+ curl_dep = dependency('libcurl', disabler: true, required: get_option('curl'))
-+else
-+ curl_dep = dependency('', disabler: true, required: false)
-+endif
-+
- if curl_dep.found()
- deps += curl_dep
- endif
-@@ -113,6 +118,7 @@ cdata.set('EXV_HAVE_XMP_TOOLKIT', expat_dep.found())
- cdata.set('EXV_HAVE_BROTLI', brotli_dep.found())
- cdata.set('EXV_HAVE_ICONV', iconv_dep.found())
- cdata.set('EXV_HAVE_LIBZ', zlib_dep.found())
-+cdata.set('EXV_ENABLE_WEBREADY', get_option('webready'))
- cdata.set('EXV_USE_CURL', curl_dep.found())
- cdata.set('EXV_ENABLE_NLS', intl_dep.found())
- cdata.set('EXV_ENABLE_WEBREADY', curl_dep.found())
-diff --git a/meson_options.txt b/meson_options.txt
-index f80430a70..ca03706ea 100644
---- a/meson_options.txt
-+++ b/meson_options.txt
-@@ -44,3 +44,8 @@ option('xmp', type : 'feature',
- option('unitTests', type : 'feature',
- description : 'Build and run unit tests',
- )
-+
-+option('webready', type : 'boolean',
-+ value: true,
-+ description : 'Build with support for webready',
-+)
-diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index f1b27b861..348a0bfb1 100644
---- a/src/CMakeLists.txt
-+++ b/src/CMakeLists.txt
-@@ -48,7 +48,6 @@ set(PUBLIC_HEADERS
- ../include/exiv2/exiv2.hpp
- ../include/exiv2/futils.hpp
- ../include/exiv2/gifimage.hpp
-- ../include/exiv2/http.hpp
- ../include/exiv2/image.hpp
- ../include/exiv2/image_types.hpp
- ../include/exiv2/iptc.hpp
-@@ -92,7 +91,6 @@ add_library( exiv2lib
- futils.cpp
- fff.h
- gifimage.cpp
-- http.cpp
- image.cpp
- iptc.cpp
- jp2image.cpp
-@@ -129,6 +127,10 @@ generate_export_header(exiv2lib
-
- # Conditional addition of sources to library targets
- # ---------------------------------------------------------
-+if(EXIV2_ENABLE_WEBREADY)
-+ set(PUBLIC_HEADERS ${PUBLIC_HEADERS} ../include/exiv2/http.hpp)
-+ target_sources(exiv2lib PRIVATE http.cpp ../include/exiv2/http.hpp)
-+endif()
-
- if( EXIV2_ENABLE_PNG )
- set(PUBLIC_HEADERS ${PUBLIC_HEADERS} ../include/exiv2/pngimage.hpp)
-diff --git a/src/basicio.cpp b/src/basicio.cpp
-index 36509b16b..5f3a9abb3 100644
---- a/src/basicio.cpp
-+++ b/src/basicio.cpp
-@@ -1386,6 +1386,7 @@ void RemoteIo::populateFakeData() {
- }
- }
-
-+#ifdef EXV_ENABLE_WEBREADY
- //! Internal Pimpl structure of class HttpIo.
- class HttpIo::HttpImpl : public Impl {
- public:
-@@ -1525,6 +1526,7 @@ void HttpIo::HttpImpl::writeRemote(const byte* data, size_t size, size_t from, s
- HttpIo::HttpIo(const std::string& url, size_t blockSize) {
- p_ = std::make_unique<HttpImpl>(url, blockSize);
- }
-+#endif
-
- #ifdef EXV_USE_CURL
- //! Internal Pimpl structure of class RemoteIo.
-diff --git a/src/image.cpp b/src/image.cpp
-index 9bbe1f272..e65ec7464 100644
---- a/src/image.cpp
-+++ b/src/image.cpp
-@@ -777,7 +777,7 @@ ImageType ImageFactory::getType(BasicIo& io) {
- }
-
- BasicIo::UniquePtr ImageFactory::createIo(const std::string& path, bool useCurl) {
-- Protocol fProt = fileProtocol(path);
-+ [[maybe_unused]] Protocol fProt = fileProtocol(path);
-
- #ifdef EXV_USE_CURL
- if (useCurl && (fProt == pHttp || fProt == pHttps || fProt == pFtp)) {
-@@ -785,8 +785,10 @@ BasicIo::UniquePtr ImageFactory::createIo(const std::string& path, bool useCurl)
- }
- #endif
-
-+#ifdef EXV_ENABLE_WEBREADY
- if (fProt == pHttp)
- return std::make_unique<HttpIo>(path); // may throw
-+#endif
- #ifdef EXV_ENABLE_FILESYSTEM
- if (fProt == pFileUri)
- return std::make_unique<FileIo>(pathOfFileUrl(path));
---
-2.39.3 (Apple Git-146)
-
diff --git a/tools/depends/target/exiv2/0003-UWP-Disable-getLoadedLibraries.patch b/tools/depends/target/exiv2/0003-UWP-Disable-getLoadedLibraries.patch
deleted file mode 100644
index 41047f7056..0000000000
--- a/tools/depends/target/exiv2/0003-UWP-Disable-getLoadedLibraries.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 8affb24ed2c704462cf49f8069954acdfe1f8f79 Mon Sep 17 00:00:00 2001
-From: Miguel Borges de Freitas <92enen@gmail.com>
-Date: Mon, 17 Jun 2024 13:29:29 +0100
-Subject: [PATCH] [UWP] Disable getLoadedLibraries
-
----
- src/version.cpp | 21 ++++++++++++---------
- 1 file changed, 12 insertions(+), 9 deletions(-)
-
-diff --git a/src/version.cpp b/src/version.cpp
-index 7e8c0b98a..8dcc11ece 100644
---- a/src/version.cpp
-+++ b/src/version.cpp
-@@ -122,16 +122,19 @@ static std::vector<std::string> getLoadedLibraries() {
- std::string path;
-
- #if defined(_WIN32) || defined(__CYGWIN__)
-- // enumerate loaded libraries and determine path to executable
-- HMODULE handles[200];
-- DWORD cbNeeded;
-- if (EnumProcessModules(GetCurrentProcess(), handles, static_cast<DWORD>(std::size(handles)), &cbNeeded)) {
-- char szFilename[_MAX_PATH];
-- for (DWORD h = 0; h < cbNeeded / sizeof(handles[0]); h++) {
-- GetModuleFileNameA(handles[h], szFilename, static_cast<DWORD>(std::size(szFilename)));
-- pushPath(szFilename, libs, paths);
-- }
-+ #include <winapifamily.h>
-+ #if defined(WINAPI_FAMILY) && (WINAPI_FAMILY != WINAPI_FAMILY_APP)
-+ // enumerate loaded libraries and determine path to executable
-+ HMODULE handles[200];
-+ DWORD cbNeeded;
-+ if (EnumProcessModules(GetCurrentProcess(), handles, static_cast<DWORD>(std::size(handles)), &cbNeeded)) {
-+ char szFilename[_MAX_PATH];
-+ for (DWORD h = 0; h < cbNeeded / sizeof(handles[0]); h++) {
-+ GetModuleFileNameA(handles[h], szFilename, static_cast<DWORD>(std::size(szFilename)));
-+ pushPath(szFilename, libs, paths);
-+ }
- }
-+ #endif
- #elif defined(__APPLE__)
- // man 3 dyld
- uint32_t count = _dyld_image_count();
---
-2.39.3 (Apple Git-146)
-
diff --git a/tools/depends/target/exiv2/0005-GCC13-cstdint.patch b/tools/depends/target/exiv2/0005-GCC13-cstdint.patch
deleted file mode 100644
index 72746e0605..0000000000
--- a/tools/depends/target/exiv2/0005-GCC13-cstdint.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/src/futils.cpp
-+++ b/src/futils.cpp
-@@ -11,6 +11,7 @@
- // + standard includes
- #include <algorithm>
- #include <array>
-+#include <cstdint>
- #include <cstring>
- #include <sstream>
- #include <stdexcept>
diff --git a/tools/depends/target/exiv2/EXIV2-VERSION b/tools/depends/target/exiv2/EXIV2-VERSION
index c07af28a90..3f4bcd18ce 100644
--- a/tools/depends/target/exiv2/EXIV2-VERSION
+++ b/tools/depends/target/exiv2/EXIV2-VERSION
@@ -1,6 +1,6 @@
LIBNAME=exiv2
-VERSION=0.28.2
+VERSION=0.28.3
ARCHIVE=$(LIBNAME)-$(VERSION).tar.gz
-SHA512=197cc607c0271b5731714713283756250031cef81ba7ed5d9c3e222b4c2397966cc2bbdbceaae706598329dde6f8a9729597d0ae4c36ac264c76546942e4e37b
+SHA512=c8338a118feefa104d73932890c732247c884ab9ce1d170c43a22ab5884517a0e2a7fd1febde7705b8290fbbbc29e64738610404816e4db2b56a70fc444ca049
BYPRODUCT=libexiv2.a
BYPRODUCT_WIN=exiv2.lib
diff --git a/tools/depends/target/exiv2/Makefile b/tools/depends/target/exiv2/Makefile
index b289e02eb3..d0a9595462 100644
--- a/tools/depends/target/exiv2/Makefile
+++ b/tools/depends/target/exiv2/Makefile
@@ -1,10 +1,6 @@
include ../../Makefile.include EXIV2-VERSION ../../download-files.include
DEPS = ../../Makefile.include Makefile EXIV2-VERSION ../../download-files.include \
- 0001-Add-EXIV2_ENABLE_FILESYSTEM_ACCESS-option.patch \
- 0002-Set-conditional-HTTP-depending-on-EXIV2_ENABLE_WEBRE.patch \
- 0003-UWP-Disable-getLoadedLibraries.patch \
- 0004-WIN-lib-postfix.patch \
- 0005-GCC13-cstdint.patch
+ 0001-WIN-lib-postfix.patch
# configuration settings
CMAKE_OPTIONS=-DCMAKE_INSTALL_PREFIX=$(PREFIX) \
@@ -29,11 +25,7 @@ all: .installed-$(PLATFORM)
$(PLATFORM): $(DEPS) | $(TARBALLS_LOCATION)/$(ARCHIVE).$(HASH_TYPE)
rm -rf $(PLATFORM); mkdir -p $(PLATFORM)/build
cd $(PLATFORM); $(ARCHIVE_TOOL) $(ARCHIVE_TOOL_FLAGS) $(TARBALLS_LOCATION)/$(ARCHIVE)
- cd $(PLATFORM); patch -p1 -i ../0001-Add-EXIV2_ENABLE_FILESYSTEM_ACCESS-option.patch
- cd $(PLATFORM); patch -p1 -i ../0002-Set-conditional-HTTP-depending-on-EXIV2_ENABLE_WEBRE.patch
- cd $(PLATFORM); patch -p1 -i ../0003-UWP-Disable-getLoadedLibraries.patch
- cd $(PLATFORM); patch -p1 -i ../0004-WIN-lib-postfix.patch
- cd $(PLATFORM); patch -p1 -i ../0005-GCC13-cstdint.patch
+ cd $(PLATFORM); patch -p1 -i ../0001-WIN-lib-postfix.patch
cd $(PLATFORM)/build; $(CMAKE) $(CMAKE_OPTIONS) ..
$(LIBDYLIB): $(PLATFORM)