commit: 5e3a8540c79c272331e3e08fb4be637dd98217a4 Author: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org> AuthorDate: Sat Oct 18 22:02:26 2025 +0000 Commit: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org> CommitDate: Sat Oct 18 22:36:45 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5e3a8540
app-office/calligra: add 25.08.2, build w/ eigen-5, cmake-4, poppler-25.10 Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org> app-office/calligra/Manifest | 1 + app-office/calligra/calligra-25.08.2.ebuild | 144 ++++++++++++++++ .../calligra/files/calligra-25.08.2-cmake4.patch | 29 ++++ .../files/calligra-25.08.2-poppler-25.10.patch | 183 +++++++++++++++++++++ 4 files changed, 357 insertions(+) diff --git a/app-office/calligra/Manifest b/app-office/calligra/Manifest index 5b44bb8add3e..fd09a57ea050 100644 --- a/app-office/calligra/Manifest +++ b/app-office/calligra/Manifest @@ -1,2 +1,3 @@ DIST calligra-25.04.2.tar.xz 58079932 BLAKE2B e35ca854d61cb5996c6b50bdc74d580786b43b1bcb5ab87c2c2504279b176f34a801798b8e077f93d2f466595f7ac7979f3aa227fa26a8f17514935d5ff11a0e SHA512 0cc253cdcc0d89f84ff103b43933ffd4c9562f840feaad52bff0c4d32e8454063277dc28c1edda9889257a818a6a84a1355f8b9742683dcc16f94bf03946a7be +DIST calligra-25.08.2.tar.xz 58039844 BLAKE2B 7bde4531c7631ff98ce4245150e881827dcb319d19dc7493d102d9887f6366dcd5121dc03f27f831daf52c667f6b468e0c7f975287b65c1dc41f9f58fa1ce5c1 SHA512 968c582ebe379bce9e80b54c06e33daadaaa30c2237285bbdf8bd656145cde03544f2c0bdbdb6767f9d5aa37c910c5f6af09027d5f8764ae4914c1a8b14d8460 DIST calligra-3.2.1-patchset-1.tar.xz 11924 BLAKE2B 5a71a7960a6d2a4d5e55129f4812fb13a2fb56613283d4582266e1836f107b711be43cb158e29c440fbda6992c03a3f4907f0600d21522fd9ab07c66354234a9 SHA512 26ec818f2415c43b116b716557710361621e1e4446087fe123e29107f82400ec82f19ab3a76dde9b749ed4b9f15da9c05c3fa6137fc814241c48ffc12f5628fc diff --git a/app-office/calligra/calligra-25.08.2.ebuild b/app-office/calligra/calligra-25.08.2.ebuild new file mode 100644 index 000000000000..5af68fa89f02 --- /dev/null +++ b/app-office/calligra/calligra-25.08.2.ebuild @@ -0,0 +1,144 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +CHECKREQS_DISK_BUILD="4G" +ECM_HANDBOOK="forceoptional" +ECM_TEST="forceoptional" +KFMIN=6.16.0 +QTMIN=6.9.1 +inherit check-reqs ecm gear.kde.org xdg + +DESCRIPTION="KDE Office Suite" +HOMEPAGE="https://calligra.org/" +PATCHSET="${PN}-3.2.1-patchset-1" +SRC_URI+=" https://dev.gentoo.org/~asturm/distfiles/${PATCHSET}.tar.xz" + +LICENSE="GPL-2" +SLOT="0" +if [[ ${KDE_BUILD_TYPE} == release ]]; then + KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86" +fi +CAL_FTS=( karbon sheets stage words ) +IUSE="+charts +fontconfig gsl +import-filter +lcms okular +pdf phonon + +truetype webengine X $(printf 'calligra_features_%s ' ${CAL_FTS[@]})" + +RESTRICT="test" + +# TODO: Not packaged: Cauchy (https://bitbucket.org/cyrille/cauchy) +# Required for the matlab/octave formula tool +COMMON_DEPEND=" + dev-lang/perl + dev-libs/openssl:= + >=dev-libs/qtkeychain-0.14.2:=[qt6(+)] + >=dev-qt/qtbase-${QTMIN}:6[dbus,gui,network,widgets,xml] + >=dev-qt/qtdeclarative-${QTMIN}:6[widgets] + >=dev-qt/qtsvg-${QTMIN}:6 + >=dev-qt/qttools-${QTMIN}:6[designer] + >=kde-frameworks/karchive-${KFMIN}:6 + >=kde-frameworks/kcmutils-${KFMIN}:6 + >=kde-frameworks/kcompletion-${KFMIN}:6 + >=kde-frameworks/kconfig-${KFMIN}:6 + >=kde-frameworks/kconfigwidgets-${KFMIN}:6 + >=kde-frameworks/kcoreaddons-${KFMIN}:6 + >=kde-frameworks/kcrash-${KFMIN}:6 + >=kde-frameworks/kdbusaddons-${KFMIN}:6 + >=kde-frameworks/kguiaddons-${KFMIN}:6 + >=kde-frameworks/ki18n-${KFMIN}:6 + >=kde-frameworks/kiconthemes-${KFMIN}:6 + >=kde-frameworks/kio-${KFMIN}:6 + >=kde-frameworks/kirigami-${KFMIN}:6 + >=kde-frameworks/kitemviews-${KFMIN}:6 + >=kde-frameworks/kjobwidgets-${KFMIN}:6 + >=kde-frameworks/knotifications-${KFMIN}:6 + >=kde-frameworks/knotifyconfig-${KFMIN}:6 + >=kde-frameworks/ktextwidgets-${KFMIN}:6 + >=kde-frameworks/kwidgetsaddons-${KFMIN}:6 + >=kde-frameworks/kwindowsystem-${KFMIN}:6 + >=kde-frameworks/kxmlgui-${KFMIN}:6 + >=kde-frameworks/sonnet-${KFMIN}:6 + sys-libs/zlib + virtual/libiconv + charts? ( dev-libs/kdiagram:6 ) + fontconfig? ( media-libs/fontconfig ) + gsl? ( sci-libs/gsl:= ) + import-filter? ( + app-text/libetonyek + app-text/libodfgen + app-text/libwpd:* + app-text/libwpg:* + >=app-text/libwps-0.4 + dev-libs/librevenge + media-libs/libvisio + ) + lcms? ( media-libs/lcms:2 ) + okular? ( kde-apps/okular:6 ) + pdf? ( >=app-text/poppler-25.02.0:=[qt6] ) + phonon? ( >=media-libs/phonon-4.12.0[qt6(+)] ) + truetype? ( media-libs/freetype:2 ) + webengine? ( >=dev-qt/qtwebengine-${QTMIN}:6[widgets] ) + calligra_features_sheets? ( dev-cpp/eigen:3 ) + calligra_features_words? ( dev-libs/libxslt ) +" +DEPEND="${COMMON_DEPEND} + dev-libs/boost + lcms? ( dev-libs/imath:3 ) + test? ( >=kde-frameworks/threadweaver-${KFMIN}:6 ) +" +RDEPEND="${COMMON_DEPEND} + !${CATEGORY}/${PN}:5 + calligra_features_karbon? ( media-gfx/pstoedit[plotutils] ) +" +BDEPEND=" + sys-devel/gettext + virtual/pkgconfig +" + +PATCHES=( + "${WORKDIR}"/${PATCHSET}/${PN}-3.1.89-no-arch-detection.patch # downstream + "${FILESDIR}"/${P}-cmake4.patch # pending MR + "${FILESDIR}"/${P}-poppler-25.10.patch # git master +) + +src_configure() { + local cal_ft myproducts + + # applications + for cal_ft in ${CAL_FTS[@]}; do + use calligra_features_${cal_ft} && myproducts+=( "${cal_ft^^}" ) + done + + use lcms && myproducts+=( PLUGIN_COLORENGINES ) + use okular && myproducts+=( OKULAR ) + + local mycmakeargs=( + -DPACKAGERS_BUILD=OFF + -DRELEASE_BUILD=ON + -DWITH_Iconv=ON + -DWITH_Imath=ON # w/ LCMS: 16 bit floating point Grayscale colorspace + -DCMAKE_DISABLE_FIND_PACKAGE_Cauchy=ON + -DPRODUCTSET="${myproducts[*]}" + $(cmake_use_find_package charts KChart6) + -DWITH_Fontconfig=$(usex fontconfig) + -DWITH_GSL=$(usex gsl) + -DWITH_LibEtonyek=$(usex import-filter) + -DWITH_LibOdfGen=$(usex import-filter) + -DWITH_LibRevenge=$(usex import-filter) + -DWITH_LibVisio=$(usex import-filter) + -DWITH_LibWpd=$(usex import-filter) + -DWITH_LibWpg=$(usex import-filter) + -DWITH_LibWps=$(usex import-filter) + $(cmake_use_find_package phonon Phonon4Qt6) + -DWITH_LCMS2=$(usex lcms) + -DWITH_Okular6=$(usex okular) + -DWITH_Poppler=$(usex pdf) + -DWITH_PopplerXPDFHeaders=$(usex pdf) + -DWITH_Eigen3=$(usex calligra_features_sheets) + -DBUILD_UNMAINTAINED=$(usex calligra_features_stage) + -DWITH_Freetype=$(usex truetype) + $(cmake_use_find_package webengine Qt6WebEngineWidgets) + ) + + ecm_src_configure +} diff --git a/app-office/calligra/files/calligra-25.08.2-cmake4.patch b/app-office/calligra/files/calligra-25.08.2-cmake4.patch new file mode 100644 index 000000000000..7551ccbaa814 --- /dev/null +++ b/app-office/calligra/files/calligra-25.08.2-cmake4.patch @@ -0,0 +1,29 @@ +Source: https://invent.kde.org/office/calligra/-/merge_requests/161 + +From 1cd552847b4d936dd494159ba1fb8f8a9b83d065 Mon Sep 17 00:00:00 2001 +From: Andreas Sturmlechner <[email protected]> +Date: Sun, 19 Oct 2025 00:11:16 +0200 +Subject: [PATCH] Align words generator CMake minimum version w/ root + CMakeLists.txt + +CMake 4 dropped support for versions below 3.5. + +Signed-off-by: Andreas Sturmlechner <[email protected]> +--- + filters/words/msword-odf/wv2/src/generator/CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/filters/words/msword-odf/wv2/src/generator/CMakeLists.txt b/filters/words/msword-odf/wv2/src/generator/CMakeLists.txt +index 10d1c022e9e..df964873b0e 100644 +--- a/filters/words/msword-odf/wv2/src/generator/CMakeLists.txt ++++ b/filters/words/msword-odf/wv2/src/generator/CMakeLists.txt +@@ -1,5 +1,5 @@ + # Generate parsers for some Word structures. +-cmake_minimum_required(VERSION 3.2.0) ++cmake_minimum_required(VERSION 3.16) + + set( scanner_word95 + ${CMAKE_CURRENT_BINARY_DIR}/word95_generated.h +-- +2.51.1 + diff --git a/app-office/calligra/files/calligra-25.08.2-poppler-25.10.patch b/app-office/calligra/files/calligra-25.08.2-poppler-25.10.patch new file mode 100644 index 000000000000..3c0b8246b126 --- /dev/null +++ b/app-office/calligra/files/calligra-25.08.2-poppler-25.10.patch @@ -0,0 +1,183 @@ +From 45e8b302bce1d318f310ea13599d7ce84acc477e Mon Sep 17 00:00:00 2001 +From: Carl Schwan <[email protected]> +Date: Sun, 5 Oct 2025 14:21:49 +0200 +Subject: [PATCH] Bump poppler to 25.02.0 + +--- + CMakeLists.txt | 2 +- + filters/karbon/pdf/Pdf2OdgImport.cpp | 18 +++++------------- + filters/karbon/pdf/PdfImport.cpp | 27 +++++++++------------------ + filters/karbon/pdf/SvgOutputDev.cpp | 18 ++++++++++++------ + 4 files changed, 27 insertions(+), 38 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 237308baa5d..878caf74af4 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -618,7 +618,7 @@ set_package_properties(LibEtonyek PROPERTIES + ## + ## Test for qt-poppler + ## +-macro_optional_find_package(Poppler "22.02.0" COMPONENTS Qt6) ++macro_optional_find_package(Poppler "25.02.0" COMPONENTS Qt6) + set_package_properties(Poppler PROPERTIES + PURPOSE "Required by the Karbon PDF import filter and CSTester PDF feature" + TYPE RECOMMENDED +diff --git a/filters/karbon/pdf/Pdf2OdgImport.cpp b/filters/karbon/pdf/Pdf2OdgImport.cpp +index 22124b5bc03..be9db2db942 100644 +--- a/filters/karbon/pdf/Pdf2OdgImport.cpp ++++ b/filters/karbon/pdf/Pdf2OdgImport.cpp +@@ -31,8 +31,6 @@ + + #include <KPluginFactory> + +-#include <poppler-version.h> +- + // Don't show this warning: it's an issue in poppler + #ifdef __GNUC__ + #pragma GCC diagnostic ignored "-Wunused-parameter" +@@ -42,8 +40,6 @@ + #include <GlobalParams.h> + #include <PDFDoc.h> + +-#define POPPLER_VERSION_MACRO ((POPPLER_VERSION_MAJOR << 16) | (POPPLER_VERSION_MINOR << 8) | (POPPLER_VERSION_MICRO)) +- + K_PLUGIN_FACTORY_WITH_JSON(Pdf2OdgImportFactory, "calligra_filter_pdf2odg.json", registerPlugin<Pdf2OdgImport>();) + + Pdf2OdgImport::Pdf2OdgImport(QObject *parent, const QVariantList &) +@@ -70,17 +66,13 @@ KoFilter::ConversionStatus Pdf2OdgImport::convert(const QByteArray &from, const + Q_ASSERT(m_document->pages().isEmpty()); + + // read config file +- globalParams = std::unique_ptr<GlobalParams>(new GlobalParams); +- if (!globalParams) ++ globalParams = std::make_unique<GlobalParams>(); ++ if (!globalParams) { + return KoFilter::NotImplemented; ++ } + +-#if POPPLER_VERSION_MACRO < QT_VERSION_CHECK(22, 03, 0) +- GooString *fname = new GooString(QFile::encodeName(m_chain->inputFile()).data()); +- PDFDoc *pdfDoc = new PDFDoc(fname, 0, 0, 0); +-#else + std::unique_ptr<GooString> fname = std::make_unique<GooString>(QFile::encodeName(m_chain->inputFile()).data()); +- PDFDoc *pdfDoc = new PDFDoc(std::move(fname)); +-#endif ++ auto pdfDoc = new PDFDoc(std::move(fname)); + if (!pdfDoc) { + globalParams.reset(); + return KoFilter::StupidError; +@@ -109,7 +101,7 @@ KoFilter::ConversionStatus Pdf2OdgImport::convert(const QByteArray &from, const + } + tmpFile.close(); + debugPdf << "tmpFile:" << tmpFile.fileName(); +- SvgOutputDev *dev = new SvgOutputDev(tmpFile.fileName()); ++ auto dev = new SvgOutputDev(tmpFile.fileName()); + if (dev->isOk()) { + int rotate = 0; + bool useMediaBox = true; +diff --git a/filters/karbon/pdf/PdfImport.cpp b/filters/karbon/pdf/PdfImport.cpp +index d41eb163250..511962cc0b6 100644 +--- a/filters/karbon/pdf/PdfImport.cpp ++++ b/filters/karbon/pdf/PdfImport.cpp +@@ -17,10 +17,6 @@ + + #include <KPluginFactory> + +-#include <poppler-version.h> +- +-#define POPPLER_VERSION_MACRO ((POPPLER_VERSION_MAJOR << 16) | (POPPLER_VERSION_MINOR << 8) | (POPPLER_VERSION_MICRO)) +- + // Don't show this warning: it's an issue in poppler + #ifdef __GNUC__ + #pragma GCC diagnostic ignored "-Wunused-parameter" +@@ -51,17 +47,13 @@ KoFilter::ConversionStatus PdfImport::convert(const QByteArray &from, const QByt + } + + // read config file +- globalParams = std::unique_ptr<GlobalParams>(new GlobalParams); +- if (!globalParams) ++ globalParams = std::make_unique<GlobalParams>(); ++ if (!globalParams) { + return KoFilter::NotImplemented; ++ } + +-#if POPPLER_VERSION_MACRO < QT_VERSION_CHECK(22, 03, 0) +- GooString *fname = new GooString(QFile::encodeName(m_chain->inputFile()).data()); +- PDFDoc *pdfDoc = new PDFDoc(fname, 0, 0, 0); +-#else +- std::unique_ptr<GooString> fname = std::make_unique<GooString>(QFile::encodeName(m_chain->inputFile()).data()); +- PDFDoc *pdfDoc = new PDFDoc(std::move(fname)); +-#endif ++ auto fname = std::make_unique<GooString>(QFile::encodeName(m_chain->inputFile()).data()); ++ auto pdfDoc = new PDFDoc(std::move(fname)); + if (!pdfDoc) { + globalParams.reset(); + return KoFilter::StupidError; +@@ -81,19 +73,18 @@ KoFilter::ConversionStatus PdfImport::convert(const QByteArray &from, const QByt + + debugPdf << "converting pages" << firstPage << "-" << lastPage; + +- SvgOutputDev *dev = new SvgOutputDev(m_chain->outputFile()); +- if (dev->isOk()) { ++ SvgOutputDev dev(m_chain->outputFile()); ++ if (dev.isOk()) { + int rotate = 0; + bool useMediaBox = true; + bool crop = false; + bool printing = false; +- pdfDoc->displayPages(dev, firstPage, lastPage, hDPI, vDPI, rotate, useMediaBox, crop, printing); +- dev->dumpContent(); ++ pdfDoc->displayPages(&dev, firstPage, lastPage, hDPI, vDPI, rotate, useMediaBox, crop, printing); ++ dev.dumpContent(); + } + + debugPdf << "wrote file to" << m_chain->outputFile(); + +- delete dev; + delete pdfDoc; + globalParams.reset(); + +diff --git a/filters/karbon/pdf/SvgOutputDev.cpp b/filters/karbon/pdf/SvgOutputDev.cpp +index 1e553ab391e..436243da7bd 100644 +--- a/filters/karbon/pdf/SvgOutputDev.cpp ++++ b/filters/karbon/pdf/SvgOutputDev.cpp +@@ -386,23 +386,29 @@ void SvgOutputDev::drawString(GfxState *state, const GooString *s) + { + int render = state->getRender(); + // check for invisible text -- this is used by Acrobat Capture +- if (render == 3) ++ if (render == 3) { + return; ++ } + + // ignore empty strings +- if (s->getLength() == 0) ++#if POPPLER_VERSION_MACRO < QT_VERSION_CHECK(25, 10, 0) ++ if (s->getLength() == 0) { ++#else ++ if (s->size() == 0) { ++#endif + return; ++ } + +-#if POPPLER_VERSION_MACRO < QT_VERSION_CHECK(22, 04, 0) +- GfxFont *font = state->getFont(); +-#else + std::shared_ptr<GfxFont> font = state->getFont(); +-#endif + + QString str; + + const char *p = s->c_str(); ++#if POPPLER_VERSION_MACRO < QT_VERSION_CHECK(25, 10, 0) + int len = s->getLength(); ++#else ++ int len = s->size(); ++#endif + CharCode code; + const Unicode *u = nullptr; + int uLen; +-- +GitLab +
