From 154a2e2359f88d54406cbd863bdd0239498046dd Mon Sep 17 00:00:00 2001 From: Schrijvers Luc Date: Sun, 28 Jul 2024 08:55:10 +0200 Subject: [PATCH] poppler, add poppler 24.07.0 (#10757) --- .../poppler/patches/poppler-24.07.0.patchset | 23 ++ app-text/poppler/poppler24-24.07.0.recipe | 361 ++++++++++++++++++ 2 files changed, 384 insertions(+) create mode 100644 app-text/poppler/patches/poppler-24.07.0.patchset create mode 100644 app-text/poppler/poppler24-24.07.0.recipe diff --git a/app-text/poppler/patches/poppler-24.07.0.patchset b/app-text/poppler/patches/poppler-24.07.0.patchset new file mode 100644 index 000000000..078c793d1 --- /dev/null +++ b/app-text/poppler/patches/poppler-24.07.0.patchset @@ -0,0 +1,23 @@ +From ee932aca2def1315d70e06445b6aa57d52c2ccba Mon Sep 17 00:00:00 2001 +From: Begasus +Date: Thu, 24 Aug 2023 13:40:34 +0200 +Subject: Turn off POSITION_INDEPENDENT_CODE + + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index ceff736..49f6a9a 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -19,6 +19,9 @@ set(CMAKE_TRY_COMPILE_CONFIGURATION "${_CMAKE_BUILD_TYPE_UPPER}") + + include(MacroOptionalFindPackage) + find_package(PkgConfig) ++ ++set(CMAKE_POSITION_INDEPENDENT_CODE OFF) ++ + include(TestBigEndian) + test_big_endian(WORDS_BIGENDIAN) + include(CheckFileOffsetBits) +-- +2.45.2 + diff --git a/app-text/poppler/poppler24-24.07.0.recipe b/app-text/poppler/poppler24-24.07.0.recipe new file mode 100644 index 000000000..ead996359 --- /dev/null +++ b/app-text/poppler/poppler24-24.07.0.recipe @@ -0,0 +1,361 @@ +SUMMARY="A PDF rendering library" +DESCRIPTION="Poppler is a PDF rendering library based on the xpdf-3.0 code \ +base." +HOMEPAGE="https://poppler.freedesktop.org/" +# instead of listing all copyright holder names in here, grab the latest list from Debian +# https://metadata.ftp-master.debian.org/changelogs//main/p/poppler/ +COPYRIGHT="1996-present xpdf3 and poppler contributors" +LICENSE="Apache v2 + GNU GPL v2 + GNU GPL v3 + poppler_24.06.0-2_copyright" +REVISION="2" +SOURCE_URI="https://poppler.freedesktop.org/poppler-$portVersion.tar.xz" +CHECKSUM_SHA256="19eb4f49198e4ae3fd9e5a6cf24d0fc7e674e8802046a7de14baab1e40cc2f1d" +SOURCE_DIR="poppler-$portVersion" +srcGitRev_2="ff3133cdb6cb496ee1d2c3231bfa35006a5e8410" +SOURCE_URI_2="https://gitlab.freedesktop.org/poppler/test/-/archive/$srcGitRev_2.tar.gz" +CHECKSUM_SHA256_2="98a06e7dd7619fe20bfd99505a31993dbe40517678d81278e6395a30a40f03bf" +PATCHES="poppler-$portVersion.patchset" + +ARCHITECTURES="all !x86_gcc2" +SECONDARY_ARCHITECTURES="x86" + +libVersion="139.0.0" +libCppVersion="1.0.0" +libGlibVersion="8.26.0" +libQt5Version="1.35.0" +libQt6Version="3.6.0" +libVersionCompat="$libVersion compat >= ${libVersion%%.*}" +libCppVersionCompat="$libCppVersion compat >= ${libCppVersion%%.*}" +libGlibVersionCompat="$libGlibVersion compat >= ${libGlibVersion%%.*}" +libQt5VersionCompat="$libQt5Version compat >= ${libQt5Version%%.*}" +libQt6VersionCompat="$libQt6Version compat >= ${libQt6Version%%.*}" + +PROVIDES=" + poppler24$secondaryArchSuffix = $portVersion + lib:libpoppler$secondaryArchSuffix = $libVersionCompat + lib:libpoppler_cpp$secondaryArchSuffix = $libCppVersionCompat + " +REQUIRES=" + haiku$secondaryArchSuffix + poppler_data >= 0.4.12 + lib:libcairo$secondaryArchSuffix + lib:libcurl$secondaryArchSuffix + lib:libfontconfig$secondaryArchSuffix + lib:libfreetype$secondaryArchSuffix +# lib:libgpgmepp$secondaryArchSuffix + lib:libiconv$secondaryArchSuffix + lib:libintl$secondaryArchSuffix + lib:libjpeg$secondaryArchSuffix + lib:liblcms2$secondaryArchSuffix +# lib:libnspr4$secondaryArchSuffix +# lib:libnss3$secondaryArchSuffix +# lib:libnssutil3$secondaryArchSuffix + lib:libopenjp2$secondaryArchSuffix +# lib:libplc4$secondaryArchSuffix + lib:libpng16$secondaryArchSuffix +# lib:libsmime3$secondaryArchSuffix + lib:libtiff$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " + +PROVIDES_devel=" + poppler24${secondaryArchSuffix}_devel = $portVersion + devel:libpoppler$secondaryArchSuffix = $libVersionCompat + devel:libpoppler_cpp$secondaryArchSuffix = $libCppVersionCompat + " +REQUIRES_devel=" + poppler24$secondaryArchSuffix == $portVersion base + " +CONFLICTS_devel=" + poppler${secondaryArchSuffix}_devel + poppler23${secondaryArchSuffix}_devel + " + +# GLIB +SUMMARY_glib="$SUMMARY (glib bindings)" +DESCRIPTION_glib="$DESCRIPTION (glib bindings)" + +PROVIDES_glib=" + poppler24${secondaryArchSuffix}_glib = $portVersion + lib:libpoppler_glib$secondaryArchSuffix = $libGlibVersionCompat + " +REQUIRES_glib=" + haiku$secondaryArchSuffix + poppler24$secondaryArchSuffix == $portVersion base + lib:libcairo$secondaryArchSuffix + lib:libcurl$secondaryArchSuffix + lib:libfontconfig$secondaryArchSuffix + lib:libfreetype$secondaryArchSuffix + lib:libgio_2.0$secondaryArchSuffix + lib:libglib_2.0$secondaryArchSuffix + lib:libgobject_2.0$secondaryArchSuffix + lib:libintl$secondaryArchSuffix + lib:libjpeg$secondaryArchSuffix + lib:liblcms2$secondaryArchSuffix + lib:libopenjp2$secondaryArchSuffix + lib:libpng16$secondaryArchSuffix + lib:libtiff$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " +CONFLICTS_glib=" + poppler${secondaryArchSuffix}_glib + poppler23${secondaryArchSuffix}_glib + " +PROVIDES_glib_devel=" + poppler24${secondaryArchSuffix}_glib_devel = $portVersion + devel:libpoppler_glib$secondaryArchSuffix = $libGlibVersionCompat + " +REQUIRES_glib_devel=" + poppler24${secondaryArchSuffix}_devel == $portVersion + poppler24${secondaryArchSuffix}_glib == $portVersion + devel:libcairo$secondaryArchSuffix + devel:libglib_2.0$secondaryArchSuffix + devel:libgobject_2.0$secondaryArchSuffix + " + +# QT5 +SUMMARY_qt5="$SUMMARY (Qt5 bindings)" +DESCRIPTION_qt5="$DESCRIPTION (Qt5 bindings)" + +PROVIDES_qt5=" + poppler24${secondaryArchSuffix}_qt5 = $portVersion + lib:libpoppler_qt5$secondaryArchSuffix = $libQt5VersionCompat + " +REQUIRES_qt5=" + haiku$secondaryArchSuffix + poppler24$secondaryArchSuffix == $portVersion base + lib:libcurl$secondaryArchSuffix + lib:libfontconfig$secondaryArchSuffix + lib:libfreetype$secondaryArchSuffix + lib:libjpeg$secondaryArchSuffix + lib:liblcms2$secondaryArchSuffix + lib:libopenjp2$secondaryArchSuffix + lib:libpng16$secondaryArchSuffix + lib:libQt5Core$secondaryArchSuffix + lib:libQt5Gui$secondaryArchSuffix + lib:libQt5Widgets$secondaryArchSuffix + lib:libQt5Xml$secondaryArchSuffix + lib:libtiff$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " +CONFLICTS_qt5=" + poppler${secondaryArchSuffix}_qt5 + poppler23${secondaryArchSuffix}_qt5 + " +PROVIDES_qt5_devel=" + poppler24${secondaryArchSuffix}_qt5_devel = $portVersion + devel:libpoppler_qt5$secondaryArchSuffix = $libQt5VersionCompat + " +REQUIRES_qt5_devel=" + poppler24${secondaryArchSuffix}_devel == $portVersion + poppler24${secondaryArchSuffix}_qt5 == $portVersion + " + +# QT6 +SUMMARY_qt6="$SUMMARY (Qt6 bindings)" +DESCRIPTION_qt6="$DESCRIPTION (Qt6 bindings)" + +PROVIDES_qt6=" + poppler24${secondaryArchSuffix}_qt6 = $portVersion + lib:libpoppler_qt6$secondaryArchSuffix = $libQt6VersionCompat + " +REQUIRES_qt6=" + haiku$secondaryArchSuffix + poppler24$secondaryArchSuffix == $portVersion base + lib:libcurl$secondaryArchSuffix + lib:libfontconfig$secondaryArchSuffix + lib:libfreetype$secondaryArchSuffix + lib:libjpeg$secondaryArchSuffix + lib:liblcms2$secondaryArchSuffix + lib:libopenjp2$secondaryArchSuffix + lib:libpng16$secondaryArchSuffix + lib:libQt6Core$secondaryArchSuffix + lib:libQt6Gui$secondaryArchSuffix + lib:libQt6Widgets$secondaryArchSuffix + lib:libQt6Xml$secondaryArchSuffix + lib:libtiff$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " +CONFLICTS_qt6=" + poppler${secondaryArchSuffix}_qt6 + poppler23${secondaryArchSuffix}_qt6 + " +PROVIDES_qt6_devel=" + poppler24${secondaryArchSuffix}_qt6_devel = $portVersion + devel:libpoppler_qt6$secondaryArchSuffix = $libQt6VersionCompat + " +REQUIRES_qt6_devel=" + poppler24${secondaryArchSuffix}_devel == $portVersion + poppler24${secondaryArchSuffix}_qt6 == $portVersion + " + +SUMMARY_tools="Binaries for the poppler package" +PROVIDES_tools=" + poppler24${secondaryArchSuffix}_tools + cmd:pdfattach + cmd:pdfdetach + cmd:pdffonts + cmd:pdfimages + cmd:pdfinfo + cmd:pdfseparate + cmd:pdfsig + cmd:pdftocairo + cmd:pdftohtml + cmd:pdftoppm + cmd:pdftops + cmd:pdftotext + cmd:pdfunite + " +REQUIRES_tools=" + poppler24$secondaryArchSuffix == $portVersion base + haiku$secondaryArchSuffix + lib:libcairo$secondaryArchSuffix + lib:libfreetype$secondaryArchSuffix + lib:libintl$secondaryArchSuffix + lib:liblcms2$secondaryArchSuffix + " +CONFLICTS_tools=" + poppler${secondaryArchSuffix}_tools + poppler23${secondaryArchSuffix}_tools + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + poppler_data >= 0.4.12 + devel:libboost_system$secondaryArchSuffix >= 1.83.0 + devel:libcairo$secondaryArchSuffix + devel:libcurl$secondaryArchSuffix + devel:libfontconfig$secondaryArchSuffix + devel:libfreetype$secondaryArchSuffix + devel:libgio_2.0$secondaryArchSuffix + devel:libglib_2.0$secondaryArchSuffix + devel:libgobject_2.0$secondaryArchSuffix +# devel:libgpgmepp$secondaryArchSuffix + devel:libiconv$secondaryArchSuffix + devel:libintl$secondaryArchSuffix + devel:libjpeg$secondaryArchSuffix + devel:liblcms2$secondaryArchSuffix +# devel:libnspr4$secondaryArchSuffix +# devel:libnss3$secondaryArchSuffix + devel:libopenjp2$secondaryArchSuffix + devel:libpng16$secondaryArchSuffix + devel:libQt5Core$secondaryArchSuffix + devel:libQt5Gui$secondaryArchSuffix + devel:libQt5Widgets$secondaryArchSuffix + devel:libQt5Xml$secondaryArchSuffix + devel:libQt6Core$secondaryArchSuffix + devel:libQt6Gui$secondaryArchSuffix + devel:libQt6Widgets$secondaryArchSuffix + devel:libQt6Xml$secondaryArchSuffix + devel:libtiff$secondaryArchSuffix + devel:libz$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + cmd:cmake + cmd:gawk + cmd:grep + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + cmd:perl + cmd:pkg_config$secondaryArchSuffix + " + +defineDebugInfoPackage poppler24$secondaryArchSuffix \ + "$(getPackagePrefix tools)"/bin/pdfdetach \ + "$(getPackagePrefix tools)"/bin/pdffonts \ + "$(getPackagePrefix tools)"/bin/pdfimages \ + "$(getPackagePrefix tools)"/bin/pdfinfo \ + "$(getPackagePrefix tools)"/bin/pdfseparate \ + "$(getPackagePrefix tools)"/bin/pdftocairo \ + "$(getPackagePrefix tools)"/bin/pdftohtml \ + "$(getPackagePrefix tools)"/bin/pdftoppm \ + "$(getPackagePrefix tools)"/bin/pdftops \ + "$(getPackagePrefix tools)"/bin/pdftotext \ + "$(getPackagePrefix tools)"/bin/pdfunite \ + "$libDir"/libpoppler.so.$libVersion \ + "$libDir"/libpoppler-cpp.so.$libCppVersion \ + "$(getPackagePrefix glib)/$relativeLibDir"/libpoppler-glib.so.$libGlibVersion \ + "$(getPackagePrefix qt5)/$relativeLibDir"/libpoppler-qt5.so.$libQt5Version \ + "$(getPackagePrefix qt6)/$relativeLibDir"/libpoppler-qt6.so.$libQt6Version + +BUILD() +{ + mkdir -p $sourceDir/../test + cp -R $sourceDir2/test-$srcGitRev_2/* $sourceDir/../test + + cmake -B build -S. $cmakeDirArgs \ + -DCMAKE_CXX_FLAGS="-D_BSD_SOURCE" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_SKIP_RPATH=ON \ + -DENABLE_UNSTABLE_API_ABI_HEADERS=ON \ + -DENABLE_GPGME=OFF \ + -DENABLE_NSS3=OFF \ + -DBUILD_QT5_TESTS=OFF \ + -DBUILD_QT6_TESTS=OFF \ + -DBUILD_CPP_TESTS=OFF \ + -DBUILD_MANUAL_TESTS=OFF + make -C build $jobArgs +} + +INSTALL() +{ + make -C build install + + # install poppler documentation + mkdir -p $docDir + cp $sourceDir/{COPYING*,README*} $docDir + + prepareInstalledDevelLibs libpoppler \ + libpoppler-cpp \ + libpoppler-glib \ + libpoppler-qt5 \ + libpoppler-qt6 + fixPkgconfig + + mkdir -p $(dirname $includeDir) + mv $prefix/include $includeDir + rm -rf $prefix/share + + # GLIB + packageEntries "glib" \ + $libDir/*glib* + packageEntries "glib_devel" \ + $developLibDir/*glib* \ + $developLibDir/pkgconfig/poppler-glib.pc \ + $includeDir/poppler/glib + + # QT5 + packageEntries "qt5" \ + $libDir/*qt5* + packageEntries "qt5_devel" \ + $developLibDir/*qt5* \ + $developLibDir/pkgconfig/poppler-qt5.pc \ + $includeDir/poppler/qt5 + + # QT6 + packageEntries "qt6" \ + $libDir/*qt6* + packageEntries "qt6_devel" \ + $developLibDir/*qt6* \ + $developLibDir/pkgconfig/poppler-qt6.pc \ + $includeDir/poppler/qt6 + + # Tools + packageEntries tools \ + $prefix/bin \ + $manDir + + # DEVEL + packageEntries devel \ + $developDir +} + +TEST() +{ + # with gpgme enabled there is one crash related to that + export LIBRARY_PATH="$sourceDir/build:$sourceDir/build/qt5/src:$sourceDir/build/qt6/src:$LIBRARY_PATH" + ctest --test-dir build --output-on-failure +}