aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Golubev <fatzer2@gmail.com>2024-11-09 15:16:30 +0300
committerAlexander Golubev <fatzer2@gmail.com>2024-11-09 15:19:34 +0300
commitdd6462a68efbe7ad525a90070738cf7edf2c7148 (patch)
tree22731126e030fb87d57d9275574dae89acacbbfa /media-gfx
parentmedia-libs/blend2d: new package, add 0.11.4, 9999 (diff)
downloadguru-dd6462a68efbe7ad525a90070738cf7edf2c7148.tar.gz
guru-dd6462a68efbe7ad525a90070738cf7edf2c7148.tar.bz2
guru-dd6462a68efbe7ad525a90070738cf7edf2c7148.zip
media-gfx/pdf4qt: new package, add 1.4.0.0, 9999
Signed-off-by: Alexander Golubev <fatzer2@gmail.com>
Diffstat (limited to 'media-gfx')
-rw-r--r--media-gfx/pdf4qt/Manifest1
-rw-r--r--media-gfx/pdf4qt/files/pdf4qt-1.4.0-Minimal-cmake-fixes.patch47
-rw-r--r--media-gfx/pdf4qt/files/pdf4qt-1.4.0-fix-build-failure-on-resetMatrix.patch55
-rw-r--r--media-gfx/pdf4qt/files/pdf4qt-1.4.0-minor-fix-remove-extention-from-Icon-endtry-in-a-des.patch26
-rw-r--r--media-gfx/pdf4qt/files/pdf4qt-1.4.9999-Support-build-against-Qt-6.7.patch125
-rw-r--r--media-gfx/pdf4qt/metadata.xml11
-rw-r--r--media-gfx/pdf4qt/pdf4qt-1.4.0.0.ebuild55
-rw-r--r--media-gfx/pdf4qt/pdf4qt-9999.ebuild53
8 files changed, 373 insertions, 0 deletions
diff --git a/media-gfx/pdf4qt/Manifest b/media-gfx/pdf4qt/Manifest
new file mode 100644
index 000000000..dc748637f
--- /dev/null
+++ b/media-gfx/pdf4qt/Manifest
@@ -0,0 +1 @@
+DIST PDF4QT-1.4.0.0.tar.gz 4088081 BLAKE2B 85073f8821401e4160846dc13bf8170e12c3a06d19efdb0d7c2d7b541818b93dbaae9cea90a2dbc341e0129aba9300ef55e41a68d91c13159118394a9ac7cb0e SHA512 870ce6cb2a6d870c1fa7539a47556de86726a4897e181edc35ec7307a01ff2c0b3bd45b653a9e3a41aae7458cfe94545df6414314dfb5bb34226b7043a4d3a67
diff --git a/media-gfx/pdf4qt/files/pdf4qt-1.4.0-Minimal-cmake-fixes.patch b/media-gfx/pdf4qt/files/pdf4qt-1.4.0-Minimal-cmake-fixes.patch
new file mode 100644
index 000000000..fbc5fae86
--- /dev/null
+++ b/media-gfx/pdf4qt/files/pdf4qt-1.4.0-Minimal-cmake-fixes.patch
@@ -0,0 +1,47 @@
+From 4cc5cf70d017030c9e016587e1182060f64429f2 Mon Sep 17 00:00:00 2001
+From: Alexander Golubev <fatzer2@gmail.com>
+Date: Fri, 8 Nov 2024 23:07:36 +0300
+Subject: [PATCH 2/2] Minimal cmake fixes
+
+---
+ CMakeLists.txt | 3 +--
+ Pdf4QtLibCore/CMakeLists.txt | 2 +-
+ 2 files changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index ea5518d..cb8219c 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -55,7 +55,6 @@ endif()
+ qt_standard_project_setup()
+
+ find_package(OpenSSL REQUIRED)
+-find_package(lcms REQUIRED)
+ find_package(ZLIB REQUIRED)
+ find_package(Freetype REQUIRED)
+ find_package(OpenJPEG CONFIG REQUIRED)
+@@ -92,7 +91,7 @@ endif()
+ option(PDF4QT_INSTALL_TO_USR "Install to usr directory" ON)
+
+ if(PDF4QT_LINUX)
+- set(PDF4QT_INSTALL_LIB_DIR_IMPL lib)
++ set(PDF4QT_INSTALL_LIB_DIR_IMPL ${CMAKE_INSTALL_LIBDIR})
+ set(PDF4QT_INSTALL_BIN_DIR_IMPL bin)
+
+ # Check if VCPKG_OVERLAY_PORTS is set as an environment variable or a CMake argument
+diff --git a/Pdf4QtLibCore/CMakeLists.txt b/Pdf4QtLibCore/CMakeLists.txt
+index e930b23..2c46c96 100644
+--- a/Pdf4QtLibCore/CMakeLists.txt
++++ b/Pdf4QtLibCore/CMakeLists.txt
+@@ -162,7 +162,7 @@ GENERATE_EXPORT_HEADER(Pdf4QtLibCore
+ EXPORT_FILE_NAME "${CMAKE_BINARY_DIR}/${INSTALL_INCLUDEDIR}/pdf4qtlibcore_export.h")
+
+ target_link_libraries(Pdf4QtLibCore PRIVATE Qt6::Core Qt6::Gui Qt6::Xml Qt6::Svg)
+-target_link_libraries(Pdf4QtLibCore PRIVATE lcms2::lcms2)
++target_link_libraries(Pdf4QtLibCore PRIVATE lcms2)
+ target_link_libraries(Pdf4QtLibCore PRIVATE OpenSSL::SSL OpenSSL::Crypto)
+ target_link_libraries(Pdf4QtLibCore PRIVATE ZLIB::ZLIB)
+ target_link_libraries(Pdf4QtLibCore PRIVATE Freetype::Freetype)
+--
+2.45.2
+
diff --git a/media-gfx/pdf4qt/files/pdf4qt-1.4.0-fix-build-failure-on-resetMatrix.patch b/media-gfx/pdf4qt/files/pdf4qt-1.4.0-fix-build-failure-on-resetMatrix.patch
new file mode 100644
index 000000000..1a5ce8bbc
--- /dev/null
+++ b/media-gfx/pdf4qt/files/pdf4qt-1.4.0-fix-build-failure-on-resetMatrix.patch
@@ -0,0 +1,55 @@
+From 2a93ca5a1f40ee8178f07ac1590889c3d2623d6c Mon Sep 17 00:00:00 2001
+From: Jakub Melka <Mgr.Jakub.Melka@gmail.com>
+Date: Wed, 10 Jul 2024 20:19:06 +0200
+Subject: [PATCH 01/11] Issue #185: Latest git fails to build in linux
+
+---
+ Pdf4QtLibCore/sources/pdfblpainter.cpp | 12 ++++++------
+ RELEASES.txt | 1 +
+ 2 files changed, 7 insertions(+), 6 deletions(-)
+
+diff --git a/Pdf4QtLibCore/sources/pdfblpainter.cpp b/Pdf4QtLibCore/sources/pdfblpainter.cpp
+index a8b3e85..007c39b 100644
+--- a/Pdf4QtLibCore/sources/pdfblpainter.cpp
++++ b/Pdf4QtLibCore/sources/pdfblpainter.cpp
+@@ -302,7 +302,7 @@ void PDFBLPaintEngine::updateState(const QPaintEngineState& updatedState)
+ if (updatedState.state().testFlag(QPaintEngine::DirtyTransform))
+ {
+ m_currentTransform = updatedState.transform();
+- m_blContext->setMatrix(getBLMatrix(updatedState.transform()));
++ m_blContext->setTransform(getBLMatrix(updatedState.transform()));
+ }
+
+ if (updatedState.state().testFlag(QPaintEngine::DirtyFont))
+@@ -580,7 +580,7 @@ void PDFBLPaintEngine::drawPathImpl(const QPainterPath& path, bool enableStroke,
+ if (!fillPath.isEmpty())
+ {
+ m_blContext->save();
+- m_blContext->resetMatrix();
++ m_blContext->resetTransform();
+ m_blContext->fillPath(getBLPath(fillPath));
+ m_blContext->restore();
+ }
+@@ -596,7 +596,7 @@ void PDFBLPaintEngine::drawPathImpl(const QPainterPath& path, bool enableStroke,
+ if (!finalTransformedStrokedPath.isEmpty())
+ {
+ m_blContext->save();
+- m_blContext->resetMatrix();
++ m_blContext->resetTransform();
+ setBLBrush(m_blContext.value(), m_currentPen.brush());
+ m_blContext->fillPath(getBLPath(finalTransformedStrokedPath));
+ m_blContext->restore();
+@@ -1183,10 +1183,10 @@ void PDFBLPaintEngine::updateClipping(std::optional<QRegion> clipRegion,
+
+ if (m_clipSingleRect)
+ {
+- BLMatrix2D matrix = m_blContext->userMatrix();
+- m_blContext->resetMatrix();
++ BLMatrix2D matrix = m_blContext->userTransform();
++ m_blContext->resetTransform();
+ m_blContext->clipToRect(getBLRect(m_finalClipPath->boundingRect()));
+- m_blContext->setMatrix(matrix);
++ m_blContext->setTransform(matrix);
+ }
+ else
+ {
diff --git a/media-gfx/pdf4qt/files/pdf4qt-1.4.0-minor-fix-remove-extention-from-Icon-endtry-in-a-des.patch b/media-gfx/pdf4qt/files/pdf4qt-1.4.0-minor-fix-remove-extention-from-Icon-endtry-in-a-des.patch
new file mode 100644
index 000000000..d70da88e3
--- /dev/null
+++ b/media-gfx/pdf4qt/files/pdf4qt-1.4.0-minor-fix-remove-extention-from-Icon-endtry-in-a-des.patch
@@ -0,0 +1,26 @@
+From 18b4543b2a5d294c220e5dc4b558c52d2a36eeb0 Mon Sep 17 00:00:00 2001
+From: Golubev Alexander <fatzer2@gmail.com>
+Date: Sat, 9 Nov 2024 00:36:30 +0300
+Subject: [PATCH] minor fix: remove extention from Icon endtry in a desktop
+ file
+
+---
+ Desktop/io.github.JakubMelka.Pdf4qt.Pdf4QtEditor.desktop | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Desktop/io.github.JakubMelka.Pdf4qt.Pdf4QtEditor.desktop b/Desktop/io.github.JakubMelka.Pdf4qt.Pdf4QtEditor.desktop
+index 62009ba..f604504 100644
+--- a/Desktop/io.github.JakubMelka.Pdf4qt.Pdf4QtEditor.desktop
++++ b/Desktop/io.github.JakubMelka.Pdf4qt.Pdf4QtEditor.desktop
+@@ -4,7 +4,7 @@ Type=Application
+ Name=PDF4QT Editor
+ Comment=Edit and modify PDF files
+ Exec=Pdf4QtEditor
+-Icon=io.github.JakubMelka.Pdf4qt.Pdf4QtEditor.svg
++Icon=io.github.JakubMelka.Pdf4qt.Pdf4QtEditor
+ Terminal=false
+ Categories=Office;
+ MimeType=application/pdf;
+--
+2.45.2
+
diff --git a/media-gfx/pdf4qt/files/pdf4qt-1.4.9999-Support-build-against-Qt-6.7.patch b/media-gfx/pdf4qt/files/pdf4qt-1.4.9999-Support-build-against-Qt-6.7.patch
new file mode 100644
index 000000000..e068e386a
--- /dev/null
+++ b/media-gfx/pdf4qt/files/pdf4qt-1.4.9999-Support-build-against-Qt-6.7.patch
@@ -0,0 +1,125 @@
+From d324d980f9be0f7056286c9b251edcbb4b48b920 Mon Sep 17 00:00:00 2001
+From: Alexander Golubev <fatzer2@gmail.com>
+Date: Fri, 8 Nov 2024 22:48:12 +0300
+Subject: [PATCH 1/2] Support build against Qt-6.7
+
+---
+ Pdf4QtEditor/main.cpp | 6 ++++++
+ Pdf4QtLibWidgets/sources/pdfwidgetutils.cpp | 2 ++
+ Pdf4QtLibWidgets/sources/pdfwidgetutils.h | 2 ++
+ Pdf4QtViewer/main.cpp | 6 ++++++
+ 4 files changed, 16 insertions(+)
+
+diff --git a/Pdf4QtEditor/main.cpp b/Pdf4QtEditor/main.cpp
+index 9825250..e21c440 100644
+--- a/Pdf4QtEditor/main.cpp
++++ b/Pdf4QtEditor/main.cpp
+@@ -40,14 +40,18 @@ int main(int argc, char *argv[])
+ QApplication::setApplicationDisplayName(QApplication::translate("Application", "PDF4QT Editor"));
+
+ QCommandLineOption noDrm("no-drm", "Disable DRM settings of documents.");
++#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0)
+ QCommandLineOption lightGui("theme-light", "Use a light theme for the GUI.");
+ QCommandLineOption darkGui("theme-dark", "Use a dark theme for the GUI.");
++#endif
+
+ QCommandLineParser parser;
+ parser.setApplicationDescription(QCoreApplication::applicationName());
+ parser.addOption(noDrm);
++#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0)
+ parser.addOption(lightGui);
+ parser.addOption(darkGui);
++#endif
+ parser.addHelpOption();
+ parser.addVersionOption();
+ parser.addPositionalArgument("file", "The PDF file to open.");
+@@ -58,6 +62,7 @@ int main(int argc, char *argv[])
+ pdf::PDFSecurityHandler::setNoDRMMode();
+ }
+
++#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0)
+ if (parser.isSet(lightGui))
+ {
+ pdf::PDFWidgetUtils::setDarkTheme(false);
+@@ -67,6 +72,7 @@ int main(int argc, char *argv[])
+ {
+ pdf::PDFWidgetUtils::setDarkTheme(true);
+ }
++#endif
+
+ QIcon appIcon(":/app-icon.svg");
+ QApplication::setWindowIcon(appIcon);
+diff --git a/Pdf4QtLibWidgets/sources/pdfwidgetutils.cpp b/Pdf4QtLibWidgets/sources/pdfwidgetutils.cpp
+index 67f15d7..2a39184 100644
+--- a/Pdf4QtLibWidgets/sources/pdfwidgetutils.cpp
++++ b/Pdf4QtLibWidgets/sources/pdfwidgetutils.cpp
+@@ -174,10 +174,12 @@ void PDFWidgetUtils::style(QWidget* widget)
+ }
+ }
+
++#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0)
+ void PDFWidgetUtils::setDarkTheme(bool isDarkTheme)
+ {
+ QApplication::styleHints()->setColorScheme(isDarkTheme ? Qt::ColorScheme::Dark : Qt::ColorScheme::Light);
+ }
++#endif
+
+ bool PDFWidgetUtils::isDarkTheme()
+ {
+diff --git a/Pdf4QtLibWidgets/sources/pdfwidgetutils.h b/Pdf4QtLibWidgets/sources/pdfwidgetutils.h
+index bfa296e..7ac120c 100644
+--- a/Pdf4QtLibWidgets/sources/pdfwidgetutils.h
++++ b/Pdf4QtLibWidgets/sources/pdfwidgetutils.h
+@@ -60,8 +60,10 @@ public:
+ /// Apply style to the widget
+ static void style(QWidget* widget);
+
++#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0)
+ /// Overrides automatically detected dark theme / light theme settings
+ static void setDarkTheme(bool isDarkTheme);
++#endif
+
+ /// Returns true if the dark theme is currently set for the application.
+ static bool isDarkTheme();
+diff --git a/Pdf4QtViewer/main.cpp b/Pdf4QtViewer/main.cpp
+index a22ef72..1050d8b 100644
+--- a/Pdf4QtViewer/main.cpp
++++ b/Pdf4QtViewer/main.cpp
+@@ -34,14 +34,18 @@ int main(int argc, char *argv[])
+ QApplication::setApplicationDisplayName(QApplication::translate("Application", "PDF4QT Viewer"));
+
+ QCommandLineOption noDrm("no-drm", "Disable DRM settings of documents.");
++#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0)
+ QCommandLineOption lightGui("theme-light", "Use a light theme for the GUI.");
+ QCommandLineOption darkGui("theme-dark", "Use a dark theme for the GUI.");
++#endif
+
+ QCommandLineParser parser;
+ parser.setApplicationDescription(QCoreApplication::applicationName());
+ parser.addOption(noDrm);
++#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0)
+ parser.addOption(lightGui);
+ parser.addOption(darkGui);
++#endif
+ parser.addHelpOption();
+ parser.addVersionOption();
+ parser.addPositionalArgument("file", "The PDF file to open.");
+@@ -52,6 +56,7 @@ int main(int argc, char *argv[])
+ pdf::PDFSecurityHandler::setNoDRMMode();
+ }
+
++#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0)
+ if (parser.isSet(lightGui))
+ {
+ pdf::PDFWidgetUtils::setDarkTheme(false);
+@@ -61,6 +66,7 @@ int main(int argc, char *argv[])
+ {
+ pdf::PDFWidgetUtils::setDarkTheme(true);
+ }
++#endif
+
+ QIcon appIcon(":/app-icon.svg");
+ QApplication::setWindowIcon(appIcon);
+--
+2.45.2
+
diff --git a/media-gfx/pdf4qt/metadata.xml b/media-gfx/pdf4qt/metadata.xml
new file mode 100644
index 000000000..2624e7039
--- /dev/null
+++ b/media-gfx/pdf4qt/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>fatzer2@gmail.com</email>
+ <name>Alexander Golubev</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">JakubMelka/PDF4QT</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/media-gfx/pdf4qt/pdf4qt-1.4.0.0.ebuild b/media-gfx/pdf4qt/pdf4qt-1.4.0.0.ebuild
new file mode 100644
index 000000000..cbe3c0cd3
--- /dev/null
+++ b/media-gfx/pdf4qt/pdf4qt-1.4.0.0.ebuild
@@ -0,0 +1,55 @@
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+inherit cmake
+
+DESCRIPTION="Open source PDF WYSIWYG editor based on Qt"
+HOMEPAGE="https://jakubmelka.github.io/"
+MY_PN="${PN^^}"
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/JakubMelka/${MY_PN}"
+else
+ MY_P="${MY_PN}-${PV}"
+ SRC_URI="https://github.com/JakubMelka/${MY_PN}/archive/refs/tags/v${PV}.tar.gz
+ -> ${MY_P}.tar.gz"
+ KEYWORDS="~amd64"
+ S=${WORKDIR}/${MY_P}
+fi
+
+LICENSE="LGPL-3+"
+SLOT="0"
+
+RDEPEND="
+ dev-cpp/tbb:=
+ dev-libs/openssl
+ dev-qt/qtbase:6[gui,widgets,xml]
+ dev-qt/qtspeech:6
+ dev-qt/qtsvg:6
+ media-libs/blend2d
+ media-libs/freetype
+ media-libs/lcms
+ media-libs/libjpeg-turbo
+ media-libs/openjpeg
+ sys-libs/zlib
+"
+DEPEND="$RDEPEND
+ dev-qt/qtbase:6[test]
+"
+
+DOCS=( NOTES.txt README.md RELEASES.txt )
+PATCHES=(
+ "${FILESDIR}/pdf4qt-1.4.0-fix-build-failure-on-resetMatrix.patch"
+ "${FILESDIR}/pdf4qt-1.4.0-minor-fix-remove-extention-from-Icon-endtry-in-a-des.patch"
+ "${FILESDIR}/pdf4qt-1.4.0-Minimal-cmake-fixes.patch"
+)
+
+src_configure() {
+ local mycmakeargs=(
+ -DPDF4QT_INSTALL_DEPENDENCIES=OFF
+ -DPDF4QT_INSTALL_TO_USR=OFF
+ -DVCPKG_OVERLAY_PORTS="" # suppress a warning
+ )
+ cmake_src_configure
+}
diff --git a/media-gfx/pdf4qt/pdf4qt-9999.ebuild b/media-gfx/pdf4qt/pdf4qt-9999.ebuild
new file mode 100644
index 000000000..b514388e5
--- /dev/null
+++ b/media-gfx/pdf4qt/pdf4qt-9999.ebuild
@@ -0,0 +1,53 @@
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+inherit cmake
+
+DESCRIPTION="Open source PDF WYSIWYG editor based on Qt"
+HOMEPAGE="https://jakubmelka.github.io/"
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/JakubMelka/${PN^^}"
+else
+ SRC_URI="https://github.com/JakubMelka/${PN^^}/archive/refs/tags/v${PV}.tar.gz
+ -> ${P}.tar.gz"
+ KEYWORDS="~amd64"
+fi
+
+LICENSE="LGPL-3+"
+SLOT="0"
+
+RDEPEND="
+ dev-cpp/tbb:=
+ dev-libs/openssl
+ dev-qt/qtbase:6[gui,widgets,xml]
+ dev-qt/qtspeech:6
+ dev-qt/qtsvg:6
+ media-libs/blend2d
+ media-libs/freetype
+ media-libs/lcms
+ media-libs/libjpeg-turbo
+ media-libs/openjpeg
+ sys-libs/zlib
+"
+DEPEND="$RDEPEND
+ dev-qt/qtbase:6[test]
+"
+
+DOCS=( NOTES.txt README.md RELEASES.txt )
+PATCHES=(
+ "${FILESDIR}/pdf4qt-1.4.0-minor-fix-remove-extention-from-Icon-endtry-in-a-des.patch"
+ "${FILESDIR}/pdf4qt-1.4.0-Minimal-cmake-fixes.patch"
+ # remove when Qt6.8 is stable
+ "${FILESDIR}/pdf4qt-1.4.9999-Support-build-against-Qt-6.7.patch"
+)
+
+src_configure() {
+ local mycmakeargs=(
+ -DPDF4QT_INSTALL_DEPENDENCIES=OFF
+ -DPDF4QT_INSTALL_TO_USR=OFF
+ -DVCPKG_OVERLAY_PORTS="" # suppress a warning
+ )
+ cmake_src_configure
+}