diff --git a/SOURCES/185d60944ea767075d27247c3162b3bc-unowinreg.dll b/SOURCES/185d60944ea767075d27247c3162b3bc-unowinreg.dll new file mode 100644 index 0000000..1189dba Binary files /dev/null and b/SOURCES/185d60944ea767075d27247c3162b3bc-unowinreg.dll differ diff --git a/SOURCES/86abb6fd8a8f680f9fc5ff1db775845c9f4e254b.patch b/SOURCES/86abb6fd8a8f680f9fc5ff1db775845c9f4e254b.patch new file mode 100644 index 0000000..69a581a --- /dev/null +++ b/SOURCES/86abb6fd8a8f680f9fc5ff1db775845c9f4e254b.patch @@ -0,0 +1,58 @@ +From 86abb6fd8a8f680f9fc5ff1db775845c9f4e254b Mon Sep 17 00:00:00 2001 +From: Michael Weghorn +Date: Wed, 13 Mar 2024 12:27:12 +0100 +Subject: [PATCH] tdf#159915 qt: Force + Qt::HighDpiScaleFactorRoundingPolicy::Round + +For now, force `Qt::HighDpiScaleFactorRoundingPolicy::Round` +for the HighDPI-scale factor rounding policy [1], which is the default +for Qt 5, while Qt 6 defaults to `Qt::HighDpiScaleFactorRoundingPolicy::PassThrough` +(see [2]), which resulted in broken rendering (e.g. "Help" -> "About" +dialog not showing the whole content) when fractional display scaling like 150 % +is configured in the KDE Plasma display settings (in contrast to manually setting the +`QT_SCALE_FACTOR=1.5` env variable to apply scaling, which was working +fine). + +Quoting from [3]: + +> The two principal options are whether fractional scale factors should be +> rounded to an integer or not. Keeping the scale factor as-is will make +> the user interface size match the OS setting exactly, but may cause +> painting errors, for example with the Windows style. + +Manually setting the env variable `QT_SCALE_FACTOR_ROUNDING_POLICY="Round"` +has the same effect (and can be used with LO versions not yet +containing this fix). + +(There might be a way to adjust the way that scaling happens +to make other policies work, but for now, just hard-code to +the policy that is known to work.) + +[1] https://doc.qt.io/qt-6/qt.html#HighDpiScaleFactorRoundingPolicy-enum +[2] https://doc.qt.io/qt-6/highdpi.html#environment-variable-reference +[3] https://doc.qt.io/qt-6/qguiapplication.html#setHighDpiScaleFactorRoundingPolicy + +Change-Id: I8eb6911d4dd5faf00912b8f15a58e0bdace1995a +Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164768 +Tested-by: Jenkins +Reviewed-by: Michael Weghorn +--- + vcl/qt5/QtInstance.cxx | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/vcl/qt5/QtInstance.cxx b/vcl/qt5/QtInstance.cxx +index 6b3bd0cc301ae..2801601115ecd 100644 +--- a/vcl/qt5/QtInstance.cxx ++++ b/vcl/qt5/QtInstance.cxx +@@ -740,6 +740,11 @@ std::unique_ptr QtInstance::CreateQApplication(int& nArgc, char** + // for scaled icons in the native menus + QApplication::setAttribute(Qt::AA_UseHighDpiPixmaps); + #endif ++ // force Qt::HighDpiScaleFactorRoundingPolicy::Round, which is the Qt 5 default ++ // policy and prevents incorrect rendering with the Qt 6 default policy ++ // Qt::HighDpiScaleFactorRoundingPolicy::PassThrough (tdf#159915) ++ QGuiApplication::setHighDpiScaleFactorRoundingPolicy( ++ Qt::HighDpiScaleFactorRoundingPolicy::Round); + + FreeableCStr session_manager; + if (getenv("SESSION_MANAGER") != nullptr) diff --git a/SOURCES/f543e6e2d7275557a839a164941c0a86e5f2c3f2a0042bfc434c88c6dde9e140-opens___.ttf b/SOURCES/f543e6e2d7275557a839a164941c0a86e5f2c3f2a0042bfc434c88c6dde9e140-opens___.ttf new file mode 100644 index 0000000..7217222 Binary files /dev/null and b/SOURCES/f543e6e2d7275557a839a164941c0a86e5f2c3f2a0042bfc434c88c6dde9e140-opens___.ttf differ diff --git a/SOURCES/libreoffice-7.5.8.2-icu-74-compatibility.patch b/SOURCES/libreoffice-7.5.8.2-icu-74-compatibility.patch new file mode 100644 index 0000000..6ac57a4 --- /dev/null +++ b/SOURCES/libreoffice-7.5.8.2-icu-74-compatibility.patch @@ -0,0 +1,218 @@ +https://bugs.gentoo.org/917618 +https://bugs.documentfoundation.org/show_bug.cgi?id=158108 + +From bcd5d851ebe91fc22edd3ea92be4a674bd13acba Mon Sep 17 00:00:00 2001 +From: Alfred Wingate +Date: Mon, 20 Nov 2023 14:47:28 +0200 +Subject: [PATCH] Remove use of the now removed LBCMNoChain options + +* This change removes its use and explicitly prevents chaining where + the rule would have applied. + +https://github.com/unicode-org/icu/commit/84e47620692be90950d090f2f4722494b020ad96 +https://github.com/unicode-org/icu/commit/9d9256f3b792100cda697c7bcf52bacfbc3bca87 + +Signed-off-by: Alfred Wingate +--- a/i18npool/source/breakiterator/data/line.txt ++++ b/i18npool/source/breakiterator/data/line.txt +@@ -14,7 +14,6 @@ + # + + !!chain; +-!!LBCMNoChain; + + + !!lookAheadHardBreak; +@@ -206,13 +205,13 @@ $CR $LF {100}; + # + $LB4NonBreaks? $LB4Breaks {100}; # LB 5 do not break before hard breaks. + $CAN_CM $CM* $LB4Breaks {100}; +-$CM+ $LB4Breaks {100}; ++^$CM+ $LB4Breaks {100}; + + # LB 7 x SP + # x ZW + $LB4NonBreaks [$SP $ZW]; + $CAN_CM $CM* [$SP $ZW]; +-$CM+ [$SP $ZW]; ++^$CM+ [$SP $ZW]; + + # + # LB 8 Break after zero width space +@@ -226,14 +225,14 @@ $LB8NonBreaks = [[$LB4NonBreaks] - [$ZW]]; + # See definition of $CAN_CM. + + $CAN_CM $CM+; # Stick together any combining sequences that don't match other rules. +-$CM+; ++^$CM+; + + # + # LB 11 Do not break before or after WORD JOINER & related characters. + # + $CAN_CM $CM* $WJcm; + $LB8NonBreaks $WJcm; +-$CM+ $WJcm; ++^$CM+ $WJcm; + + $WJcm [^$CAN_CM]; + $WJcm $CAN_CM $CM*; +@@ -243,7 +242,7 @@ $WJcm $CAN_CM $CM*; + # + # (!SP) x GL + [$LB8NonBreaks-$SP] $CM* $GLcm; +-$CM+ $GLcm; ++^$CM+ $GLcm; + + # GL x + $GLcm ($LB8Breaks | $SP); +@@ -260,19 +259,19 @@ $GLcm [$LB8NonBreaks-$SP] $CM*; # Don't let a combining mark go onto $CR, $B + # + $LB8NonBreaks $CL; + $CAN_CM $CM* $CL; +-$CM+ $CL; # by rule 10, stand-alone CM behaves as AL ++^$CM+ $CL; # by rule 10, stand-alone CM behaves as AL + + $LB8NonBreaks $EX; + $CAN_CM $CM* $EX; +-$CM+ $EX; # by rule 10, stand-alone CM behaves as AL ++^$CM+ $EX; # by rule 10, stand-alone CM behaves as AL + + $LB8NonBreaks $IS; + $CAN_CM $CM* $IS; +-$CM+ $IS; # by rule 10, stand-alone CM behaves as AL ++^$CM+ $IS; # by rule 10, stand-alone CM behaves as AL + + $LB8NonBreaks $SY; + $CAN_CM $CM* $SY; +-$CM+ $SY; # by rule 10, stand-alone CM behaves as AL ++^$CM+ $SY; # by rule 10, stand-alone CM behaves as AL + + + # +@@ -302,7 +301,7 @@ $LB18Breaks = [$LB8Breaks $SP]; + # LB 19 + # x QU + $LB18NonBreaks $CM* $QUcm; +-$CM+ $QUcm; ++^$CM+ $QUcm; + + # QU x + $QUcm .?; +@@ -331,7 +330,7 @@ $HLcm ($HYcm | $BAcm) [^$CB]?; + + # LB 22 + ($ALcm | $HLcm) $INcm; +-$CM+ $INcm; # by rule 10, any otherwise unattached CM behaves as AL ++^$CM+ $INcm; # by rule 10, any otherwise unattached CM behaves as AL + $IDcm $INcm; + $INcm $INcm; + $NUcm $INcm; +@@ -341,7 +340,7 @@ $NUcm $INcm; + $IDcm $POcm; + $ALcm $NUcm; # includes $LB19 + $HLcm $NUcm; +-$CM+ $NUcm; # Rule 10, any otherwise unattached CM behaves as AL ++^$CM+ $NUcm; # Rule 10, any otherwise unattached CM behaves as AL + $NUcm $ALcm; + $NUcm $HLcm; + +@@ -373,7 +372,7 @@ $PRcm ($JLcm | $JVcm | $JTcm | $H2cm | $H3cm); + # LB 28 Do not break between alphabetics + # + ($ALcm | $HLcm) ($ALcm | $HLcm); +-$CM+ ($ALcm | $HLcm); # The $CM+ is from rule 10, an unattached CM is treated as AL ++^$CM+ ($ALcm | $HLcm); # The $CM+ is from rule 10, an unattached CM is treated as AL + + # LB 29 + $IScm ($ALcm | $NUcm); +@@ -383,7 +382,7 @@ $IScm ($ALcm | $NUcm); + # and opening or closing punctuation + # + ($ALcm | $HLcm | $NUcm) $OPcm; +-$CM+ $OPcm; ++^$CM+ $OPcm; + $CLcm ($ALcm | $HLcm | $NUcm); + + # +@@ -393,32 +392,32 @@ $CLcm ($ALcm | $HLcm | $NUcm); + + !!reverse; + +-$CM+ $ALPlus; +-$CM+ $BA; +-$CM+ $BB; +-$CM+ $B2; +-$CM+ $CL; +-$CM+ $EX; +-$CM+ $GL; +-$CM+ $HL; +-$CM+ $HY; +-$CM+ $H2; +-$CM+ $H3; +-$CM+ $ID; +-$CM+ $IN; +-$CM+ $IS; +-$CM+ $JL; +-$CM+ $JV; +-$CM+ $JT; +-$CM+ $NS; +-$CM+ $NU; +-$CM+ $OP; +-$CM+ $PO; +-$CM+ $PR; +-$CM+ $QU; +-$CM+ $SY; +-$CM+ $WJ; +-$CM+; ++^$CM+ $ALPlus; ++^$CM+ $BA; ++^$CM+ $BB; ++^$CM+ $B2; ++^$CM+ $CL; ++^$CM+ $EX; ++^$CM+ $GL; ++^$CM+ $HL; ++^$CM+ $HY; ++^$CM+ $H2; ++^$CM+ $H3; ++^$CM+ $ID; ++^$CM+ $IN; ++^$CM+ $IS; ++^$CM+ $JL; ++^$CM+ $JV; ++^$CM+ $JT; ++^$CM+ $NS; ++^$CM+ $NU; ++^$CM+ $OP; ++^$CM+ $PO; ++^$CM+ $PR; ++^$CM+ $QU; ++^$CM+ $SY; ++^$CM+ $WJ; ++^$CM+; + + + # +@@ -468,7 +467,7 @@ $LF $CR; + # X $CM needs to behave like X, where X is not $SP or controls. + # $CM not covered by the above needs to behave like $AL + # Stick together any combining sequences that don't match other rules. +-$CM+ $CAN_CM; ++^$CM+ $CAN_CM; + + + # LB 11 +@@ -606,8 +605,8 @@ $CM* ($ALPlus | $HL | $NU) $CM* ($CL | $SY)+ [^$SP]; + !!safe_reverse; + + # LB 7 +-$CM+ [^$CM $BK $CR $LF $NL $ZW $SP]; +-$CM+ $SP / .; ++^$CM+ [^$CM $BK $CR $LF $NL $ZW $SP]; ++^$CM+ $SP / .; + + # LB 9 + $SP+ $CM* $OP; +-- +2.42.1 + diff --git a/SOURCES/libreoffice-base-symbolic.svg b/SOURCES/libreoffice-base-symbolic.svg new file mode 100644 index 0000000..16f3cef --- /dev/null +++ b/SOURCES/libreoffice-base-symbolic.svg @@ -0,0 +1,27 @@ + + + + + + + + image/svg+xml + + Gnome Symbolic Icon Theme + + + + + + + Gnome Symbolic Icon Theme + + + + + + + + + + diff --git a/SOURCES/libreoffice-calc-symbolic.svg b/SOURCES/libreoffice-calc-symbolic.svg new file mode 100644 index 0000000..bf56588 --- /dev/null +++ b/SOURCES/libreoffice-calc-symbolic.svg @@ -0,0 +1,27 @@ + + + + + + + + image/svg+xml + + Gnome Symbolic Icon Theme + + + + + + + Gnome Symbolic Icon Theme + + + + + + + + + + diff --git a/SOURCES/libreoffice-draw-symbolic.svg b/SOURCES/libreoffice-draw-symbolic.svg new file mode 100644 index 0000000..7ca94ee --- /dev/null +++ b/SOURCES/libreoffice-draw-symbolic.svg @@ -0,0 +1,26 @@ + + + + + + + + image/svg+xml + + Gnome Symbolic Icon Theme + + + + + + + Gnome Symbolic Icon Theme + + + + + + + + + diff --git a/SOURCES/libreoffice-impress-symbolic.svg b/SOURCES/libreoffice-impress-symbolic.svg new file mode 100644 index 0000000..9a16f76 --- /dev/null +++ b/SOURCES/libreoffice-impress-symbolic.svg @@ -0,0 +1,25 @@ + + + + + + + + image/svg+xml + + Gnome Symbolic Icon Theme + + + + + + + Gnome Symbolic Icon Theme + + + + + + + + diff --git a/SOURCES/libreoffice-main-symbolic.svg b/SOURCES/libreoffice-main-symbolic.svg new file mode 100644 index 0000000..6bd3103 --- /dev/null +++ b/SOURCES/libreoffice-main-symbolic.svg @@ -0,0 +1,24 @@ + + + + + + + + image/svg+xml + + Gnome Symbolic Icon Theme + + + + + + + Gnome Symbolic Icon Theme + + + + + + + diff --git a/SOURCES/libreoffice-math-symbolic.svg b/SOURCES/libreoffice-math-symbolic.svg new file mode 100644 index 0000000..66cd9e7 --- /dev/null +++ b/SOURCES/libreoffice-math-symbolic.svg @@ -0,0 +1,25 @@ + + + + + + + + image/svg+xml + + Gnome Symbolic Icon Theme + + + + + + + Gnome Symbolic Icon Theme + + + + + + + + diff --git a/SOURCES/libreoffice-writer-symbolic.svg b/SOURCES/libreoffice-writer-symbolic.svg new file mode 100644 index 0000000..e97b545 --- /dev/null +++ b/SOURCES/libreoffice-writer-symbolic.svg @@ -0,0 +1,28 @@ + + + + + + + + image/svg+xml + + Gnome Symbolic Icon Theme + + + + + + + Gnome Symbolic Icon Theme + + + + + + + + + + + diff --git a/SOURCES/py313.patch b/SOURCES/py313.patch new file mode 100644 index 0000000..aa94173 --- /dev/null +++ b/SOURCES/py313.patch @@ -0,0 +1,47 @@ +diff --git a/pyuno/source/loader/pyuno_loader.cxx b/pyuno/source/loader/pyuno_loader.cxx +index 05a03fe72c4d..44fc885a3dc0 100644 +--- a/pyuno/source/loader/pyuno_loader.cxx ++++ b/pyuno/source/loader/pyuno_loader.cxx +@@ -105,7 +105,7 @@ static PyRef getObjectFromLoaderModule( const char * func ) + return object; + } + +-static void setPythonHome ( const OUString & pythonHome ) ++static void setPythonHome ( const OUString & pythonHome, PyConfig * config ) + { + OUString systemPythonHome; + osl_getSystemPathFromFileURL( pythonHome.pData, &(systemPythonHome.pData) ); +@@ -129,9 +129,7 @@ static void setPythonHome ( const OUString & pythonHome ) + PyErr_SetString(PyExc_SystemError, "python home path is too long"); + return; + } +-SAL_WNODEPRECATED_DECLARATIONS_PUSH +- Py_SetPythonHome(wide); // deprecated since python 3.11 +-SAL_WNODEPRECATED_DECLARATIONS_POP ++ config->home = wide; + } + + static void prependPythonPath( std::u16string_view pythonPathBootstrap ) +@@ -183,11 +181,13 @@ void pythonInit() { + if ( Py_IsInitialized()) // may be inited by getComponentContext() already + return; + ++ PyConfig config; + OUString pythonPath; + OUString pythonHome; + OUString path( "$BRAND_BASE_DIR/" LIBO_ETC_FOLDER "/" SAL_CONFIGFILE("pythonloader.uno" )); + rtl::Bootstrap::expandMacros(path); //TODO: detect failure + rtl::Bootstrap bootstrap(path); ++ PyConfig_InitPythonConfig( &config ); + + // look for pythonhome + bootstrap.getFrom( "PYUNO_LOADER_PYTHONHOME", pythonHome ); +@@ -196,7 +196,7 @@ void pythonInit() { + // pythonhome+pythonpath must be set before Py_Initialize(), otherwise there appear warning on the console + // sadly, there is no api for setting the pythonpath, we have to use the environment variable + if( !pythonHome.isEmpty() ) +- setPythonHome( pythonHome ); ++ setPythonHome( pythonHome, &config ); + + if( !pythonPath.isEmpty() ) + prependPythonPath( pythonPath ); diff --git a/SPECS/libreoffice.spec b/SPECS/libreoffice.spec index d056302..3c975b6 100644 --- a/SPECS/libreoffice.spec +++ b/SPECS/libreoffice.spec @@ -1,15 +1,15 @@ ## START: Set by rpmautospec -## (rpmautospec version 0.3.5) +## (rpmautospec version 0.6.1) ## RPMAUTOSPEC: autorelease, autochangelog %define autorelease(e:s:pb:n) %{?-p:0.}%{lua: - release_number = 1; + release_number = 2; base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}")); print(release_number + base_release_number - 1); }%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}} ## END: Set by rpmautospec # download path contains version without the last (fourth) digit -%global libo_version 7.6.4 +%global libo_version 24.2.2 # Should contain .alphaX / .betaX, if this is pre-release (actually # pre-RC) version. The pre-release string is part of tarball file names, # so we need a way to define it easily at one place. @@ -17,7 +17,12 @@ # Should contain any suffix of release tarball name, e.g., -buildfix1. %global libo_buildfix %{nil} # rhbz#715152 state vendor -%global vendoroption --with-vendor="PowerEL" +%if 0%{?rhel} +%global vendoroption --with-vendor="Red Hat, Inc." +%endif +%if 0%{?fedora} +%global vendoroption --with-vendor="The Fedora Project" +%endif %global libo_python python3 %global libo_python_executable %{__python3} %global libo_python_sitearch %{python3_sitearch} @@ -41,7 +46,39 @@ # 'serverconfig' is tuned for non-interactive installs # defaults off except on rhel for s390[x] and aarch64 +%if 0%{?rhel} +%ifarch s390 s390x aarch64 +%bcond_without serverconfig +%else %bcond_with serverconfig +%endif +%else +%bcond_with serverconfig +%endif + +# Disable firebird for RHEL +%if 0%{?rhel} +%bcond_with firebird +%else +%bcond_without firebird +%endif + +# Handle KDE/Qt integration for Fedora and RHEL/EPEL +%if 0%{?rhel} && 0%{?rhel} < 10 +%bcond_with kf5 +%bcond_with kf6 +%endif + +# KDE Plasma 5 integration only for Fedora +%if 0%{?fedora} +%bcond_without kf5 +%endif + +# KDE Plasma 6 integration for Fedora and RHEL/EPEL 10+ +%if 0%{?fedora} || 0%{?rhel} >= 10 +%bcond_without kf6 +%endif + # generated by %%langpack definitions %global langpack_langs %{nil} @@ -70,7 +107,7 @@ Release: %autorelease # writerperfect/source/common/DirectoryStream.cxx: MPLv2 or LGPLv2+ # extras/source/autocorr/lang/hr/license.md: GPL 2.0 or LGPL2 or MPLv1.1 # odk/examples/java/...: 3 clause BSD -License: MPL-2.0 AND Apache-2.0 AND LGPL-3.0-only AND LGPL-3.0-or-later AND CC0-1.0 AND BSD-3-Clause AND (LGPL-2.1-only OR SISSL) AND (MPL-2.0 OR LGPL-3.0-or-later) AND (MPL-2.0 OR LGPL-2.1-or-later) AND (MPL-1.1 OR GPL-2.0-only OR LGPL-2.1-only) +License: MPL-2.0 AND Apache-2.0 AND LGPL-3.0-only AND LGPL-3.0-or-later AND CC0-1.0 AND BSD-3-Clause AND (LGPL-2.1-only OR SISSL) AND (MPL-2.0 OR LGPL-3.0-or-later) AND (MPL-2.0 OR LGPL-2.1-or-later) AND (MPL-1.1 OR GPL-2.0-only OR LGPL-2.1-only) AND MIT URL: http://www.libreoffice.org/ Source0: %{source_url}/libreoffice-%{version}%{?libo_prerelease}%{?libo_buildfix}.tar.xz @@ -92,6 +129,7 @@ Source11: %{external_url}/a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zi # with system provided hsqldb without major hacking. Source12: %{external_url}/17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip Source13: %{external_url}/../extern/f543e6e2d7275557a839a164941c0a86e5f2c3f2a0042bfc434c88c6dde9e140-opens___.ttf +Source14: %{external_url}/Java-WebSocket-1.5.4.tar.gz %global bundling_options %{?bundling_options} --without-system-hsqldb Provides: bundled(hsqldb) = 1.8.0 @@ -144,7 +182,7 @@ BuildRequires: boost-devel BuildRequires: cups-devel BuildRequires: dragonbox-static BuildRequires: fontpackages-devel -%if 0%{?fedora} +%if %{with firebird} BuildRequires: firebird-devel %endif BuildRequires: glm-devel @@ -169,6 +207,7 @@ BuildRequires: pkgconfig(ice) BuildRequires: pkgconfig(icu-i18n) BuildRequires: pkgconfig(lcms2) BuildRequires: pkgconfig(libabw-0.1) +BuildRequires: pkgconfig(libargon2) BuildRequires: pkgconfig(libcdr-0.1) BuildRequires: pkgconfig(libclucene-core) BuildRequires: pkgconfig(libcmis-0.6) @@ -208,9 +247,15 @@ BuildRequires: pkgconfig(zlib) BuildRequires: unixODBC-devel BuildRequires: %{libo_python_executable} +# Uncomment for backtraces +#BuildRequires: gdb + # libs / headers - conditional -%if 0%{?fedora} +%if 0%{?fedora} || 0%{?rhel} >= 10 BuildRequires: pkgconfig(libe-book-0.1) +%endif + +%if %{with kf5} BuildRequires: qt5-qtbase-devel BuildRequires: qt5-qtx11extras-devel BuildRequires: kf5-kconfig-devel @@ -221,6 +266,15 @@ BuildRequires: kf5-kio-devel BuildRequires: kf5-kwindowsystem-devel %endif +%if %{with kf6} +BuildRequires: qt6-qtbase-devel +BuildRequires: kf6-kconfig-devel +BuildRequires: kf6-kcoreaddons-devel +BuildRequires: kf6-ki18n-devel +BuildRequires: kf6-kio-devel +BuildRequires: kf6-kwindowsystem-devel +%endif + BuildRequires: gpgmepp-devel BuildRequires: pkgconfig(cppunit) >= 1.14.0 BuildRequires: pkgconfig(graphite2) @@ -233,6 +287,7 @@ BuildRequires: pkgconfig(mdds-2.1) BuildRequires: pkgconfig(zxing) BuildRequires: libnumbertext-devel BuildRequires: frozen-static +BuildRequires: zxcvbn-c-devel %ifarch %{java_arches} # java stuff @@ -275,14 +330,17 @@ Patch2: 0001-Resolves-rhbz-1432468-disable-opencl-by-default.patch # backported Patch3: 0001-default-to-sifr-for-gnome-light-mode.patch # backported -Patch4: 0001-Only-pass-I.-arguments-to-g-ir-scanner-by-using-pkg-.patch -Patch5: limit-tests-giving-dubious-results-to-x86_64.patch -Patch6: pdfdoc.patch -Patch7: 0001-tdf-158302-fix-build-against-system-libxml-2.12.patch +Patch4: py313.patch # not upstreamed # fix FTB in ppc64le from sharkcz # https://lists.freedesktop.org/archives/libreoffice/2023-August/090870.html Patch11: lo-7.6-ppc64le-tests.patch +# icu 74 compatibility patch, from gentoo, via arch linux +# https://bugs.gentoo.org/917618 +# https://bugs.documentfoundation.org/show_bug.cgi?id=158108 +Patch12: libreoffice-7.5.8.2-icu-74-compatibility.patch +# Patch for kf6 scaling. +Patch13: 86abb6fd8a8f680f9fc5ff1db775845c9f4e254b.patch Patch500: 0001-disable-libe-book-support.patch # https://lists.freedesktop.org/archives/libreoffice/2023-September/090948.html Patch501: kahansum_test_fix_for_aarc64_s390x.patch @@ -368,7 +426,7 @@ to be written in python. %package base Summary: Database front-end for LibreOffice -%if 0%{?fedora} +%if %{with firebird} Requires: firebird %endif %ifarch %{java_arches} @@ -490,6 +548,7 @@ The LibreOffice Spreadsheet application. Summary: LibreOffice Drawing Application Requires: %{name}-core%{?_isa} = %{epoch}:%{version}-%{release} Requires: %{name}-data = %{epoch}:%{version}-%{release} +Requires: %{name}-ogltrans%{?_isa} = %{epoch}:%{version}-%{release} Requires: %{name}-pdfimport%{?_isa} = %{epoch}:%{version}-%{release} Requires: %{name}-pyuno%{?_isa} = %{epoch}:%{version}-%{release} Requires: %{name}-graphicfilter%{?_isa} = %{epoch}:%{version}-%{release} @@ -650,7 +709,7 @@ Supplements: (%{name}-core%{?_isa} and gtk4%{?_isa}) %description gtk4 An experimental plug-in for LibreOffice that enables integration into GTK+ 4 environment. -%if 0%{?fedora} +%if %{with kf5} %package kf5 Summary: LibreOffice KDE Frameworks 5 integration plug-in @@ -662,13 +721,34 @@ Obsoletes: libreoffice-kde4 < 1:6.3.0.0 Obsoletes: libreoffice-kde5 < 1:6.4.7.3 Obsoletes: libreoffice-kde4-debuginfo < 1:6.3.0.0 Obsoletes: libreoffice-kde5-debuginfo < 1:6.4.7.3 +%if (0%{?fedora} && 0%{?fedora} < 40) Supplements: (%{name}-core%{?_isa} and plasma-workspace) +%endif %description kf5 A plug-in for LibreOffice that enables integration into the KDE Frameworks 5. %endif +%if %{with kf6} + +%package kf6 +Summary: LibreOffice KDE Frameworks 6 integration plug-in +Requires: %{name}-core%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-ure%{?_isa} = %{epoch}:%{version}-%{release} +Provides: %{name}-plugin = %{epoch}:%{version}-%{release} +Provides: %{name}-plugin%{?_isa} = %{epoch}:%{version}-%{release} +Obsoletes: libreoffice-kde4 < 1:6.3.0.0 +Obsoletes: libreoffice-kde5 < 1:6.4.7.3 +Obsoletes: libreoffice-kde4-debuginfo < 1:6.3.0.0 +Obsoletes: libreoffice-kde5-debuginfo < 1:6.4.7.3 +Supplements: (%{name}-core%{?_isa} and plasma-workspace) + +%description kf6 +A plug-in for LibreOffice that enables integration into the KDE Frameworks 6. + +%endif + %package -n libreofficekit Summary: A library providing access to LibreOffice functionality License: MPLv2.0 @@ -982,6 +1062,7 @@ Rules for auto-correcting common %{langname} typing errors. \ %autocorr -l sl -n Slovenian %autocorr -l sr -n Serbian %autocorr -l sv -n Swedish +%autocorr -l th -n Thai %autocorr -l tr -n Turkish %autocorr -l vi -n Vietnamese %autocorr -l vro -n Võro @@ -1020,16 +1101,18 @@ mv -f redhat.soc extras/source/palettes/standard.soc # apply patches %autopatch -p1 -M 99 %if 0%{?rhel} -%patch500 -p1 +%patch -P 500 -p1 %endif %ifarch aarch64 s390x ppc64le -%patch501 -p1 +%patch -P 501 -p1 %endif # Temporarily disable failing tests %ifarch ppc64le sed -i -e s/CppunitTest_dbaccess_RowSetClones// dbaccess/Module_dbaccess.mk +# the following actually succeeded as of 2024-02-23, remove if it succeeds again. +#sed -i -e s/CppunitTest_dbaccess_hsqldb_test// dbaccess/Module_dbaccess.mk %endif %ifarch aarch64 # Nothing to do @@ -1044,6 +1127,12 @@ sed -i -e s/CppunitTest_basic_macros// basic/Module_basic.mk # Other test exclusions pointed out by sharkcz sed -i -e /CppunitTest_vcl_svm_test/d vcl/Module_vcl.mk sed -i -e /CppunitTest_sw_core_layout/d sw/Module_sw.mk +# https://bugs.documentfoundation.org/show_bug.cgi?id=158722 +sed -i -e /CppunitTest_desktop_lib/d desktop/Module_desktop.mk +# https://bugs.documentfoundation.org/show_bug.cgi?id=159184 +sed -i -e /CppunitTest_vcl_png_test/d vcl/Module_vcl.mk +# https://bugs.documentfoundation.org/show_bug.cgi?id=159211 +sed -i -e /CppunitTest_sd_png_export_tests/d sd/Module_sd.mk %endif #see rhbz#2072615 @@ -1065,15 +1154,11 @@ done ARCH_FLAGS="$ARCH_FLAGS -g1" %endif export ARCH_FLAGS -export CFLAGS=$ARCH_FLAGS -export CXXFLAGS=$ARCH_FLAGS +export CFLAGS="$ARCH_FLAGS -I%{_includedir}/zxcvbn -I%{_includedir}/KF6/KConfig/" +export CXXFLAGS="$ARCH_FLAGS -I%{_includedir}/zxcvbn -I%{_includedir}/KF6/KConfig/" -%if 0%{?rhel} -%define distrooptions --disable-eot --disable-firebird-sdbc -%else -# fedora -%define distrooptions --enable-eot --enable-kf5 -%endif +# Distro build options +%define distrooptions --enable-eot %{!?with_firebird:--disable-firebird-sdbc} %{?with_kf5:--enable-kf5} %{?with_kf6:--enable-kf6} %ifarch %{java_arches} %define javaoptions --with-java --enable-ext-nlpsolver --enable-ext-wiki-publisher @@ -1132,7 +1217,8 @@ touch autogen.lastrun %{distrooptions} \ %{?bundling_options} \ %{?archoptions} \ - %{?flatpakoptions} + %{?flatpakoptions} \ + --with-system-zxcvbn if ! %make_build; then echo "build attempt 1 failed" @@ -1547,7 +1633,6 @@ rm -f %{buildroot}%{baseinstdir}/program/classes/smoketest.jar %{baseinstdir}/program/libdeployment.so %{baseinstdir}/program/libdeploymentgui.so %{baseinstdir}/program/libdlgprovlo.so -#%%{baseinstdir}/program/libexpwraplo.so %{baseinstdir}/program/libfps_officelo.so %{baseinstdir}/program/gdbtrace %{baseinstdir}/program/gengal @@ -1571,7 +1656,6 @@ rm -f %{buildroot}%{baseinstdir}/program/classes/smoketest.jar %{baseinstdir}/program/libdbahsqllo.so %{baseinstdir}/program/libdbaselo.so %{baseinstdir}/program/libdbaxmllo.so -#{baseinstdir}/program/libdbmmlo.so %{baseinstdir}/program/libdbpool2.so %{baseinstdir}/program/libdbtoolslo.so %{baseinstdir}/program/libdbulo.so @@ -1644,7 +1728,6 @@ rm -f %{buildroot}%{baseinstdir}/program/classes/smoketest.jar %{baseinstdir}/program/libucbhelper.so %{baseinstdir}/program/libucpchelp1.so %{baseinstdir}/program/libucpdav1.so -%{baseinstdir}/program/libucpftp1.so %{baseinstdir}/program/libucphier1.so %{baseinstdir}/program/libucppkg1.so %{baseinstdir}/program/libunordflo.so @@ -1738,7 +1821,6 @@ rm -f %{buildroot}%{baseinstdir}/program/classes/smoketest.jar %{baseinstdir}/share/config/soffice.cfg/modules %{baseinstdir}/share/config/soffice.cfg/*/ui %{baseinstdir}/share/palette -%{baseinstdir}/share/config/webcast %{baseinstdir}/share/config/wizard %dir %{baseinstdir}/share/dtd %{baseinstdir}/share/dtd/officedocument @@ -1767,7 +1849,7 @@ rm -f %{buildroot}%{baseinstdir}/program/classes/smoketest.jar %{baseinstdir}/share/template/common/presnt %{baseinstdir}/share/template/common/styles %{baseinstdir}/share/template/common/wizard -%dir %{baseinstdir}/share/template/common/l10n +%{baseinstdir}/share/template/common/l10n/ %{baseinstdir}/share/template/wizard %dir %{baseinstdir}/share/wordbook %{baseinstdir}/share/wordbook/en-GB.dic @@ -1861,7 +1943,7 @@ rm -f %{buildroot}%{baseinstdir}/program/classes/smoketest.jar %endif %{baseinstdir}/program/libabplo.so %{baseinstdir}/program/libdbplo.so -%if 0%{?fedora} +%if %{with firebird} %{baseinstdir}/program/libfirebird_sdbclo.so %endif %ifarch %{java_arches} @@ -2021,7 +2103,6 @@ rm -f %{buildroot}%{baseinstdir}/program/classes/smoketest.jar %{baseinstdir}/program/impress.abignore %endif %{baseinstdir}/program/libPresentationMinimizerlo.so -#%%{baseinstdir}/program/libPresenterScreenlo.so %{baseinstdir}/program/libwpftimpresslo.so %dir %{baseinstdir}/share/config/soffice.cfg/simpress %{baseinstdir}/share/config/soffice.cfg/simpress/effects.xml @@ -2086,6 +2167,7 @@ rm -f %{buildroot}%{baseinstdir}/program/classes/smoketest.jar %{baseinstdir}/program/classes/libreoffice.jar %{baseinstdir}/program/classes/ridl.jar %{baseinstdir}/program/classes/unoloader.jar +%{baseinstdir}/program/classes/java_websocket.jar %{baseinstdir}/program/javaldx %{baseinstdir}/program/javavendors.xml %{baseinstdir}/program/jvmfwk3rc @@ -2181,7 +2263,6 @@ rm -f %{buildroot}%{baseinstdir}/program/classes/smoketest.jar %{libo_python_sitearch}/__pycache__/uno.cpython-* %{libo_python_sitearch}/__pycache__/unohelper.cpython-* %{libo_python_sitearch}/__pycache__/officehelper.cpython-* -%{baseinstdir}/share/registry/pyuno.xcd %files librelogo %{baseinstdir}/share/registry/librelogo.xcd @@ -2238,8 +2319,7 @@ gtk-update-icon-cache -q %{_datadir}/icons/hicolor &>/dev/null || : %endif %{baseinstdir}/program/libvclplug_gtk4lo.so -%if 0%{?fedora} - +%if %{with kf5} %files kf5 %{baseinstdir}/program/kf5.abignore %{baseinstdir}/program/libkf5be1lo.so @@ -2248,6 +2328,14 @@ gtk-update-icon-cache -q %{_datadir}/icons/hicolor &>/dev/null || : %endif +%if %{with kf6} + +%files kf6 +%{baseinstdir}/program/libvclplug_kf6lo.so +%{baseinstdir}/program/libvclplug_qt6lo.so + +%endif + %files -n libreofficekit %{baseinstdir}/share/libreofficekit %{_libdir}/girepository-1.0/LOKDocView-%{girapiversion}.typelib @@ -2261,6 +2349,62 @@ gtk-update-icon-cache -q %{_datadir}/icons/hicolor &>/dev/null || : %{_includedir}/LibreOfficeKit %changelog +## START: Generated by rpmautospec +* Mon Mar 18 2024 Gwyn Ciesla - 1:24.2.2.1-2 +- Patch for kf6 scaling + +* Wed Mar 13 2024 Gwyn Ciesla - 1:24.2.2.1-1 +- 24.2.2.1 + +* Fri Mar 08 2024 Neal Gompa - 1:24.2.1.2-2 +- Rework build conditionals for firebird+kf5+kf6 and fix supplements for + kf5 + +* Mon Mar 04 2024 Gwyn Ciesla - 1:24.2.1.2-1 +- 24.2.1.2, enable kf6 + +* Tue Feb 27 2024 Jiri Vanek - 1:24.2.1.1-7 +- Rebuilt for java-21-openjdk as system jdk + +* Fri Feb 23 2024 Gwyn Ciesla - 1:24.2.1.1-6 +- Re-enable test + +* Fri Feb 23 2024 Gwyn Ciesla - 1:24.2.1.1-5 +- Disable test on ppc64le + +* Wed Feb 21 2024 Gwyn Ciesla - 1:24.2.1.1-4 +- Draw requires oglrans + +* Mon Feb 19 2024 Gwyn Ciesla - 1:24.2.1.1-3 +- Re-enable LTO on s390x + +* Mon Feb 19 2024 Gwyn Ciesla - 1:24.2.1.1-2 +- Re-enable LTO on s390x + +* Tue Feb 13 2024 Gwyn Ciesla - 1:24.2.1.1-1 +- 24.2.1.1 + +* Fri Feb 02 2024 Gwyn Ciesla - 1:24.2.0.3-3 +- Poppler rebuild + +* Wed Jan 31 2024 Pete Walter - 1:24.2.0.3-2 +- Fix FTBFS with icu 74 + +* Tue Jan 30 2024 Gwyn Ciesla - 1:24.2.0.3-1 +- 24.2.0.3 + +* Thu Jan 25 2024 Fedora Release Engineering - 1:24.2.0.2-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Thu Jan 18 2024 Gwyn Ciesla - 1:24.2.0.2-3 +- Re-enable LTO for non-s390x arches + +* Wed Jan 17 2024 Gwyn Ciesla - 1:24.2.0.2-2 +- Temporarily disable LTO due to gcc14 bug + +* Wed Jan 17 2024 Gwyn Ciesla - 1:24.2.0.2-1 +- 24.2.0.2 + * Fri Dec 08 2023 Gwyn Ciesla - 1:7.6.4.1-1 - 7.6.4.1 @@ -5037,3 +5181,4 @@ gtk-update-icon-cache -q %{_datadir}/icons/hicolor &>/dev/null || : * Wed Sep 29 2010 Caolán McNamara 3.2.99.1-1 - initial import of the leviathan +## END: Generated by rpmautospec