diff options
Diffstat (limited to 'media-gfx/nomacs')
-rw-r--r-- | media-gfx/nomacs/files/nomacs-3.16.224-DkMath-ostream.patch | 24 | ||||
-rw-r--r-- | media-gfx/nomacs/files/nomacs-3.16.224-exiv2-0.28.patch | 241 | ||||
-rw-r--r-- | media-gfx/nomacs/files/nomacs-3.16.224-libdir-plugins.patch | 23 | ||||
-rw-r--r-- | media-gfx/nomacs/files/nomacs-3.16.224-libdir.patch | 30 | ||||
-rw-r--r-- | media-gfx/nomacs/metadata.xml | 7 | ||||
-rw-r--r-- | media-gfx/nomacs/nomacs-3.16.224-r6.ebuild (renamed from media-gfx/nomacs/nomacs-3.16.224-r2.ebuild) | 52 |
6 files changed, 346 insertions, 31 deletions
diff --git a/media-gfx/nomacs/files/nomacs-3.16.224-DkMath-ostream.patch b/media-gfx/nomacs/files/nomacs-3.16.224-DkMath-ostream.patch new file mode 100644 index 000000000000..318953f7896a --- /dev/null +++ b/media-gfx/nomacs/files/nomacs-3.16.224-DkMath-ostream.patch @@ -0,0 +1,24 @@ +From aca8443079ff926be873a77e3077b249a12487dd Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann <sultan@gentoo.org> +Date: Sun, 23 Jan 2022 18:51:56 +0100 +Subject: [PATCH] IWYU: add missing ostream in DkMath + +--- + src/DkCore/DkMath.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/DkCore/DkMath.h b/src/DkCore/DkMath.h +index c37ef23..2c3a5be 100644 +--- a/src/DkCore/DkMath.h ++++ b/src/DkCore/DkMath.h +@@ -30,6 +30,7 @@ + #pragma warning(push, 0) // no warnings from includes - begin
+ #include <cmath>
+ #include <float.h>
++#include <ostream>
+ #include <QDebug>
+ #include <QPointF>
+ #include <QPolygonF>
+-- +2.34.1 + diff --git a/media-gfx/nomacs/files/nomacs-3.16.224-exiv2-0.28.patch b/media-gfx/nomacs/files/nomacs-3.16.224-exiv2-0.28.patch new file mode 100644 index 000000000000..280d7ec59e8b --- /dev/null +++ b/media-gfx/nomacs/files/nomacs-3.16.224-exiv2-0.28.patch @@ -0,0 +1,241 @@ +From 6785f15d9ed05ebc66ee200b3c94451c6c633646 Mon Sep 17 00:00:00 2001 +From: Andreas Sturmlechner <asturm@gentoo.org> +Date: Sun, 3 Sep 2023 13:30:43 +0200 +Subject: [PATCH] Fix 3.16.224 build with exiv2-0.28 + +Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org> +--- + ImageLounge/src/DkCore/DkMetaData.cpp | 59 ++++++++++++++++++--------- + ImageLounge/src/DkCore/DkMetaData.h | 4 +- + 2 files changed, 41 insertions(+), 22 deletions(-) + +diff --git a/ImageLounge/src/DkCore/DkMetaData.cpp b/ImageLounge/src/DkCore/DkMetaData.cpp +index bf1d111e..5eaeebf4 100644 +--- a/ImageLounge/src/DkCore/DkMetaData.cpp ++++ b/ImageLounge/src/DkCore/DkMetaData.cpp +@@ -73,8 +73,12 @@ void DkMetaDataT::readMetaData(const QString& filePath, QSharedPointer<QByteArra + mExifImg = Exiv2::ImageFactory::open(strFilePath); + } + else { ++#if EXIV2_TEST_VERSION(0, 28, 0) ++ mExifImg = Exiv2::ImageFactory::open((const byte *)ba->constData(), ba->size()); ++#else + Exiv2::BasicIo::AutoPtr exifBuffer(new Exiv2::MemIo((const byte*)ba->constData(), ba->size())); + mExifImg = Exiv2::ImageFactory::open(exifBuffer); ++#endif + } + } + catch (...) { +@@ -155,14 +159,18 @@ bool DkMetaDataT::saveMetaData(QSharedPointer<QByteArray>& ba, bool force) { + Exiv2::ExifData &exifData = mExifImg->exifData(); + Exiv2::XmpData &xmpData = mExifImg->xmpData(); + Exiv2::IptcData &iptcData = mExifImg->iptcData(); +- +- Exiv2::Image::AutoPtr exifImgN; ++ std::unique_ptr<Exiv2::Image> exifImgN; ++#if !EXIV2_TEST_VERSION(0, 28, 0) + Exiv2::MemIo::AutoPtr exifMem; ++#endif + + try { +- ++#if EXIV2_TEST_VERSION(0, 28, 0) ++ exifImgN = Exiv2::ImageFactory::open((byte *)ba->data(), ba->size()); ++#else + exifMem = Exiv2::MemIo::AutoPtr(new Exiv2::MemIo((byte*)ba->data(), ba->size())); + exifImgN = Exiv2::ImageFactory::open(exifMem); ++#endif + } + catch (...) { + +@@ -186,8 +194,13 @@ bool DkMetaDataT::saveMetaData(QSharedPointer<QByteArray>& ba, bool force) { + + // now get the data again + Exiv2::DataBuf exifBuf = exifImgN->io().read((long)exifImgN->io().size()); ++#if EXIV2_TEST_VERSION(0, 28, 0) ++ if (!exifBuf.empty()) { ++ QSharedPointer<QByteArray> tmp = QSharedPointer<QByteArray>(new QByteArray((const char *)exifBuf.c_data(), exifBuf.size())); ++#else + if (exifBuf.pData_) { + QSharedPointer<QByteArray> tmp = QSharedPointer<QByteArray>(new QByteArray((const char*)exifBuf.pData_, exifBuf.size_)); ++#endif + + if (tmp->size() > qRound(ba->size()*0.5f)) + ba = tmp; +@@ -197,7 +210,7 @@ bool DkMetaDataT::saveMetaData(QSharedPointer<QByteArray>& ba, bool force) { + else + return false; + +- mExifImg = exifImgN; ++ mExifImg.swap(exifImgN); + mExifState = loaded; + + return true; +@@ -250,7 +263,7 @@ int DkMetaDataT::getOrientationDegree() const { + + if (pos != exifData.end() && pos->count() != 0) { + +- Exiv2::Value::AutoPtr v = pos->getValue(); ++ std::unique_ptr<Exiv2::Value> v = pos->getValue(); + orientation = (int)pos->toFloat(); + + switch (orientation) { +@@ -315,7 +328,7 @@ int DkMetaDataT::getRating() const { + Exiv2::ExifData::iterator pos = exifData.findKey(key); + + if (pos != exifData.end() && pos->count() != 0) { +- Exiv2::Value::AutoPtr v = pos->getValue(); ++ std::unique_ptr<Exiv2::Value> v = pos->getValue(); + exifRating = v->toFloat(); + } + } +@@ -327,7 +340,7 @@ int DkMetaDataT::getRating() const { + + //xmp Rating tag + if (pos != xmpData.end() && pos->count() != 0) { +- Exiv2::Value::AutoPtr v = pos->getValue(); ++ std::unique_ptr<Exiv2::Value> v = pos->getValue(); + xmpRating = v->toFloat(); + } + +@@ -336,7 +349,7 @@ int DkMetaDataT::getRating() const { + key = Exiv2::XmpKey("Xmp.MicrosoftPhoto.Rating"); + pos = xmpData.findKey(key); + if (pos != xmpData.end() && pos->count() != 0) { +- Exiv2::Value::AutoPtr v = pos->getValue(); ++ std::unique_ptr<Exiv2::Value> v = pos->getValue(); + xmpRating = v->toFloat(); + } + } +@@ -399,7 +412,7 @@ QString DkMetaDataT::getNativeExifValue(const QString& key) const { + if (pos->count () < 2000) { // diem: this is about performance - adobe obviously embeds whole images into tiff exiv data + + //qDebug() << "pos count: " << pos->count(); +- //Exiv2::Value::AutoPtr v = pos->getValue(); ++ //std::unique_ptr<Exiv2::Value> v = pos->getValue(); + info = exiv2ToQString(pos->toString()); + + } +@@ -436,7 +449,7 @@ QString DkMetaDataT::getXmpValue(const QString& key) const { + } + + if (pos != xmpData.end() && pos->count() != 0) { +- Exiv2::Value::AutoPtr v = pos->getValue(); ++ std::unique_ptr<Exiv2::Value> v = pos->getValue(); + info = exiv2ToQString(pos->toString()); + } + } +@@ -478,7 +491,7 @@ QString DkMetaDataT::getExifValue(const QString& key) const { + } + + if (pos != exifData.end() && pos->count() != 0) { +- //Exiv2::Value::AutoPtr v = pos->getValue(); ++ //std::unique_ptr<Exiv2::Value> v = pos->getValue(); + info = exiv2ToQString(pos->toString()); + } + } +@@ -508,7 +521,7 @@ QString DkMetaDataT::getIptcValue(const QString& key) const { + } + + if (pos != iptcData.end() && pos->count() != 0) { +- Exiv2::Value::AutoPtr v = pos->getValue(); ++ std::unique_ptr<Exiv2::Value> v = pos->getValue(); + info = exiv2ToQString(pos->toString()); + } + } +@@ -653,8 +666,11 @@ QImage DkMetaDataT::getThumbnail() const { + try { + Exiv2::ExifThumb thumb(exifData); + Exiv2::DataBuf buffer = thumb.copy(); +- ++#if EXIV2_TEST_VERSION(0, 28, 0) ++ QByteArray ba = QByteArray((char *)buffer.c_data(), buffer.size()); ++#else + QByteArray ba = QByteArray((char*)buffer.pData_, buffer.size_); ++#endif + qThumb.loadFromData(ba); + } + catch (...) { +@@ -931,9 +947,12 @@ void DkMetaDataT::setThumbnail(QImage thumb) { + + try { + // whipe all exif data of the thumbnail ++#if EXIV2_TEST_VERSION(0, 28, 0) ++ Exiv2::Image::UniquePtr exifImgThumb = Exiv2::ImageFactory::open((const byte *)ba.constData(), ba.size()); ++#else + Exiv2::MemIo::AutoPtr exifBufferThumb(new Exiv2::MemIo((const byte*)ba.constData(), ba.size())); + Exiv2::Image::AutoPtr exifImgThumb = Exiv2::ImageFactory::open(exifBufferThumb); +- ++#endif + if (exifImgThumb.get() != 0 && exifImgThumb->good()) + exifImgThumb->clearExifData(); + } +@@ -1045,11 +1064,11 @@ void DkMetaDataT::setOrientation(int o) { + pos = exifData.findKey(key); + } + +- Exiv2::Value::AutoPtr v = pos->getValue(); ++ std::unique_ptr<Exiv2::Value> v = pos->getValue(); + Exiv2::UShortValue* prv = dynamic_cast<Exiv2::UShortValue*>(v.release()); + if (!prv) return; + +- Exiv2::UShortValue::AutoPtr rv = Exiv2::UShortValue::AutoPtr(prv); ++ std::unique_ptr<Exiv2::UShortValue> rv = std::unique_ptr<Exiv2::UShortValue>(prv); + if (rv->value_.empty()) return; + + orientation = (int) rv->value_[0]; +@@ -1110,7 +1129,7 @@ void DkMetaDataT::setRating(int r) { + exifData["Exif.Image.Rating"] = uint16_t(r); + exifData["Exif.Image.RatingPercent"] = uint16_t(r); + +- Exiv2::Value::AutoPtr v = Exiv2::Value::create(Exiv2::xmpText); ++ std::unique_ptr<Exiv2::Value> v = Exiv2::Value::create(Exiv2::xmpText); + v->read(sRating); + xmpData.add(Exiv2::XmpKey("Xmp.xmp.Rating"), v.get()); + v->read(sRatingPercent); +@@ -1354,9 +1373,9 @@ DkRotatingRect DkMetaDataT::getXMPRect(const QSize& size) const { + return DkRotatingRect(rr); + } + +-Exiv2::Image::AutoPtr DkMetaDataT::loadSidecar(const QString& filePath) const { ++std::unique_ptr<Exiv2::Image> DkMetaDataT::loadSidecar(const QString& filePath) const { + +- Exiv2::Image::AutoPtr xmpImg; ++ std::unique_ptr<Exiv2::Image> xmpImg; + + //TODO: check if the file type supports xmp + +@@ -1409,7 +1428,7 @@ bool DkMetaDataT::setXMPValue(Exiv2::XmpData& xmpData, QString xmpKey, QString x + setXMPValueSuccessful = true; + } + else { +- Exiv2::Value::AutoPtr v = Exiv2::Value::create(Exiv2::xmpText); ++ std::unique_ptr<Exiv2::Value> v = Exiv2::Value::create(Exiv2::xmpText); + if (!v->read(xmpValue.toStdString())) { + if (!xmpData.add(Exiv2::XmpKey(key), v.get())) + setXMPValueSuccessful = true; +diff --git a/ImageLounge/src/DkCore/DkMetaData.h b/ImageLounge/src/DkCore/DkMetaData.h +index c1f73c93..183a906a 100644 +--- a/ImageLounge/src/DkCore/DkMetaData.h ++++ b/ImageLounge/src/DkCore/DkMetaData.h +@@ -148,7 +148,7 @@ public: + + protected: + +- Exiv2::Image::AutoPtr loadSidecar(const QString& filePath) const; ++ std::unique_ptr<Exiv2::Image> loadSidecar(const QString& filePath) const; + + enum { + not_loaded, +@@ -157,7 +157,7 @@ protected: + dirty, + }; + +- Exiv2::Image::AutoPtr mExifImg; ++ std::unique_ptr<Exiv2::Image> mExifImg; + QString mFilePath; + QStringList mQtKeys; + QStringList mQtValues; +-- +2.42.0 + diff --git a/media-gfx/nomacs/files/nomacs-3.16.224-libdir-plugins.patch b/media-gfx/nomacs/files/nomacs-3.16.224-libdir-plugins.patch new file mode 100644 index 000000000000..0c613929add0 --- /dev/null +++ b/media-gfx/nomacs/files/nomacs-3.16.224-libdir-plugins.patch @@ -0,0 +1,23 @@ +From e1d32cd424462b2ac414d3a4ea3e1285d5ca2aef Mon Sep 17 00:00:00 2001 +From: Markus Diem <diemmarkus@gmail.com> +Date: Mon, 27 Jul 2020 13:11:31 +0200 +Subject: [PATCH] patches wrong plugin installation path + +- thanks to @tieugene +--- + ImageLounge/plugins/cmake/Utils.cmake | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/cmake/Utils.cmake b/cmake/Utils.cmake +index f2d1b62..5578aa7 100644 +--- a/ImageLounge/plugins/cmake/Utils.cmake ++++ b/ImageLounge/plugins/cmake/Utils.cmake +@@ -139,7 +139,7 @@ macro(NMC_CREATE_TARGETS) + + elseif(UNIX) + set_target_properties(${PROJECT_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${NOMACS_BUILD_DIRECTORY}/plugins) +- install(TARGETS ${PROJECT_NAME} RUNTIME LIBRARY DESTINATION lib/nomacs-plugins) ++ install(TARGETS ${PROJECT_NAME} RUNTIME LIBRARY DESTINATION lib${LIB_SUFFIX}/nomacs-plugins) + set_property(TARGET ${PROJECT_NAME} PROPERTY VERSION ${NOMACS_VERSION_MAJOR}.${NOMACS_VERSION_MINOR}.${NOMACS_VERSION_PATCH}) + set_property(TARGET ${PROJECT_NAME} PROPERTY SOVERSION ${NOMACS_VERSION_MAJOR}) + endif(MSVC) diff --git a/media-gfx/nomacs/files/nomacs-3.16.224-libdir.patch b/media-gfx/nomacs/files/nomacs-3.16.224-libdir.patch new file mode 100644 index 000000000000..50b73028f303 --- /dev/null +++ b/media-gfx/nomacs/files/nomacs-3.16.224-libdir.patch @@ -0,0 +1,30 @@ +From c8f6c325c5f5170bb473c41ee716b781d37bdd41 Mon Sep 17 00:00:00 2001 +From: Markus Diem <diemmarkus@gmail.com> +Date: Mon, 27 Jul 2020 13:19:01 +0200 +Subject: [PATCH] fixes plugin path for fedora + +- thanks @tieugene +- beta version: 3.17 +--- + ImageLounge/src/DkCore/DkPluginManager.cpp | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/ImageLounge/src/DkCore/DkPluginManager.cpp ++++ b/ImageLounge/src/DkCore/DkPluginManager.cpp +@@ -62,6 +62,7 @@ + #include <QAction> + #include <QMenu> + #include <QJsonValue> ++#include <QLibraryInfo> + #pragma warning(pop) // no warnings from includes - end + + #ifdef QT_NO_DEBUG_OUTPUT +@@ -1309,7 +1310,7 @@ void DkPluginManager::createPluginsPath() { + #ifdef Q_OS_WIN + QDir pluginsDir = QCoreApplication::applicationDirPath() + "/plugins"; + #else +- QDir pluginsDir = QCoreApplication::applicationDirPath() + "/../lib/nomacs-plugins/"; ++ QDir pluginsDir = QLibraryInfo::location(QLibraryInfo::LibrariesPath) + "/nomacs-plugins/"; + #endif // Q_OS_WIN + + if (!pluginsDir.exists()) diff --git a/media-gfx/nomacs/metadata.xml b/media-gfx/nomacs/metadata.xml index 4962c2c5f92d..45360b811a6c 100644 --- a/media-gfx/nomacs/metadata.xml +++ b/media-gfx/nomacs/metadata.xml @@ -1,10 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> - <maintainer type="project"> - <email>qt@gentoo.org</email> - <name>Gentoo Qt Project</name> - </maintainer> + <!-- maintainer-needed --> <upstream> <bugs-to>https://nomacs.org/redmine/projects/nomacs</bugs-to> <remote-id type="github">nomacs/nomacs</remote-id> diff --git a/media-gfx/nomacs/nomacs-3.16.224-r2.ebuild b/media-gfx/nomacs/nomacs-3.16.224-r6.ebuild index 9c6f50df1606..d174453289b1 100644 --- a/media-gfx/nomacs/nomacs-3.16.224-r2.ebuild +++ b/media-gfx/nomacs/nomacs-3.16.224-r6.ebuild @@ -1,20 +1,22 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 +CMAKE_BUILD_TYPE="Release" # buildsys: what a mess PLUGIN_PKG="${PN}-plugins-$(ver_cut 1-2)" -inherit cmake xdg-utils +inherit cmake xdg DESCRIPTION="Qt-based image viewer" HOMEPAGE="https://nomacs.org/" SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz plugins? ( https://github.com/${PN}/${PN}-plugins/archive/$(ver_cut 1-2).tar.gz -> ${PLUGIN_PKG}.tar.gz )" +CMAKE_USE_DIR="${S}/ImageLounge" LICENSE="GPL-3+" SLOT="0" -KEYWORDS="amd64 ~arm64 x86 ~amd64-linux" -IUSE="+jpeg +opencv plugins raw +tiff zip" +KEYWORDS="amd64 ~arm64 ~riscv x86 ~amd64-linux" +IUSE="+opencv plugins raw +tiff zip" REQUIRED_USE=" raw? ( opencv ) @@ -24,7 +26,7 @@ REQUIRED_USE=" RDEPEND=" dev-qt/qtconcurrent:5 dev-qt/qtcore:5 - dev-qt/qtgui:5[jpeg?] + dev-qt/qtgui:5[jpeg] dev-qt/qtnetwork:5 dev-qt/qtprintsupport:5 dev-qt/qtsvg:5 @@ -34,9 +36,9 @@ RDEPEND=" raw? ( media-libs/libraw:= ) tiff? ( dev-qt/qtimageformats:5 - media-libs/tiff + media-libs/tiff:= ) - zip? ( dev-libs/quazip:0= ) + zip? ( dev-libs/quazip:0=[qt5(+)] ) " DEPEND="${RDEPEND}" BDEPEND=" @@ -44,27 +46,33 @@ BDEPEND=" virtual/pkgconfig " -S="${WORKDIR}/${P}/ImageLounge" - DOCS=( src/changelog.txt ) -PATCHES=( "${FILESDIR}"/${P}-quazip1.patch ) +PATCHES=( + "${FILESDIR}"/${P}-libdir.patch + "${FILESDIR}"/${P}-exiv2-0.28.patch # bug 906488 +) src_prepare() { if use plugins ; then - rmdir plugins || die - mv -v ../../${PLUGIN_PKG} plugins || die - # Fix nomacs-plugins installation and search library directory - sed -e "s:lib/nomacs-plugins:$(get_libdir)/nomacs-plugins:" \ - -i plugins/cmake/Utils.cmake || die - sed -e "s:lib/nomacs-plugins:$(get_libdir)/nomacs-plugins:" \ - -i src/DkCore/DkPluginManager.cpp || die + rmdir ImageLounge/plugins || die + mv -v ../${PLUGIN_PKG} ImageLounge/plugins || die fi + + # from git master # reuse existing patches w/o paths adjusted + pushd "ImageLounge" > /dev/null || die + eapply "${FILESDIR}"/${P}-quazip1.patch + eapply "${FILESDIR}"/${P}-DkMath-ostream.patch + popd > /dev/null || die + + use plugins && eapply "${FILESDIR}"/${P}-libdir-plugins.patch + cmake_src_prepare } src_configure() { local mycmakeargs=( + -DQT_QMAKE_EXECUTABLE=qmake5 # bug 847112 -DENABLE_CODE_COV=OFF -DUSE_SYSTEM_QUAZIP=ON -DENABLE_TRANSLATIONS=ON @@ -76,11 +84,3 @@ src_configure() { ) cmake_src_configure } - -pkg_postinst() { - xdg_desktop_database_update -} - -pkg_postrm() { - xdg_desktop_database_update -} |