commit dd733dcceefb5c8c0a79410a334bbb431a8aa333 Author: Toshaan Bharvani Date: Tue Dec 26 21:19:03 2023 +0100 initial package creation Signed-off-by: Toshaan Bharvani diff --git a/SOURCES/0001-CVE-2021-25636.patch b/SOURCES/0001-CVE-2021-25636.patch new file mode 100644 index 0000000..9ec1f6a --- /dev/null +++ b/SOURCES/0001-CVE-2021-25636.patch @@ -0,0 +1,69 @@ +From 26c9da40d44f1469df97398362667c74553be7d2 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= +Date: Mon, 20 Dec 2021 17:05:44 +0000 +Subject: [PATCH] only use X509Data + +Change-Id: I52e6588f5fac04bb26d77c1f3af470db73e41f72 +Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127193 +Tested-by: Jenkins +Reviewed-by: Miklos Vajna +(cherry picked from commit be446d81e07b5499152efeca6ca23034e51ea5ff) +Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127178 +Reviewed-by: Adolfo Jayme Barrientos +(cherry picked from commit b0404f80577de9ff69e58390c6f6ef949fdb0139) +--- + .../source/xmlsec/mscrypt/xmlsignature_mscryptimpl.cxx | 6 ++++++ + xmlsecurity/source/xmlsec/nss/xmlsignature_nssimpl.cxx | 6 ++++++ + 2 files changed, 12 insertions(+) + +diff --git a/xmlsecurity/source/xmlsec/mscrypt/xmlsignature_mscryptimpl.cxx b/xmlsecurity/source/xmlsec/mscrypt/xmlsignature_mscryptimpl.cxx +index c699c950f351..9f816479f9dd 100644 +--- a/xmlsecurity/source/xmlsec/mscrypt/xmlsignature_mscryptimpl.cxx ++++ b/xmlsecurity/source/xmlsec/mscrypt/xmlsignature_mscryptimpl.cxx +@@ -22,6 +22,8 @@ + #include + #include + ++#include ++ + #include + #include + +@@ -233,6 +235,10 @@ SAL_CALL XMLSignature_MSCryptImpl::validate( + // We do certificate verification ourselves. + pDsigCtx->keyInfoReadCtx.flags |= XMLSEC_KEYINFO_FLAGS_X509DATA_DONT_VERIFY_CERTS; + ++ // limit possible key data to valid X509 certificates only, no KeyValues ++ if (xmlSecPtrListAdd(&(pDsigCtx->keyInfoReadCtx.enabledKeyData), BAD_CAST xmlSecMSCngKeyDataX509GetKlass()) < 0) ++ throw RuntimeException("failed to limit allowed key data"); ++ + //Verify signature + //The documentation says that the signature is only valid if the return value is 0 (that is, not < 0) + //AND pDsigCtx->status == xmlSecDSigStatusSucceeded. That is, we must not make any assumptions, if +diff --git a/xmlsecurity/source/xmlsec/nss/xmlsignature_nssimpl.cxx b/xmlsecurity/source/xmlsec/nss/xmlsignature_nssimpl.cxx +index b41d754f7407..975c17272dc7 100644 +--- a/xmlsecurity/source/xmlsec/nss/xmlsignature_nssimpl.cxx ++++ b/xmlsecurity/source/xmlsec/nss/xmlsignature_nssimpl.cxx +@@ -20,6 +20,8 @@ + #include + #include + ++#include ++ + #include + #include + #include +@@ -247,6 +249,10 @@ SAL_CALL XMLSignature_NssImpl::validate( + // We do certificate verification ourselves. + pDsigCtx->keyInfoReadCtx.flags |= XMLSEC_KEYINFO_FLAGS_X509DATA_DONT_VERIFY_CERTS; + ++ // limit possible key data to valid X509 certificates only, no KeyValues ++ if (xmlSecPtrListAdd(&(pDsigCtx->keyInfoReadCtx.enabledKeyData), BAD_CAST xmlSecNssKeyDataX509GetKlass()) < 0) ++ throw RuntimeException("failed to limit allowed key data"); ++ + //Verify signature + int rs = xmlSecDSigCtxVerify( pDsigCtx.get() , pNode ); + +-- +2.35.1 + diff --git a/SOURCES/0001-EditTextObjectImpl-copy-ctor-doesn-t-exactly-copy-Ed.patch b/SOURCES/0001-EditTextObjectImpl-copy-ctor-doesn-t-exactly-copy-Ed.patch new file mode 100644 index 0000000..c4b0fff --- /dev/null +++ b/SOURCES/0001-EditTextObjectImpl-copy-ctor-doesn-t-exactly-copy-Ed.patch @@ -0,0 +1,53 @@ +From 3925cf39742ebee935498b14571f13f3e8b64b49 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= +Date: Sat, 19 Feb 2022 20:43:33 +0000 +Subject: [PATCH] EditTextObjectImpl copy ctor doesn't exactly copy + EditTextObjectImpl +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +and this is apparently relied on, so eliding the copy gives unexpected +results. + +EditTextObjectImpl::Clone returns a copy of *this, but the +EditTextObjectImpl copy ctor explicitly does not copy the "PortionInfo" +member, so in: + +commit fb8973f31f111229be5184f4e4223e963ced2c7b +Author: Caolán McNamara +Date: Sat Oct 10 19:21:38 2020 +0100 + + ofz#23492 the only user of this ctor throws away the original of the clone + + so we can take ownership of the original instead + +where the copy was optimized away we want from a state where there was a +new EditTextObjectImpl with an empty PortionInfo member to one where the +PortionInfo of the EditTextObjectImpl was retained. + +So explicitly clear this unwanted info. + +It's very hard to make rational judgements about code if a copy behaves +differently than the orignal :-( + +Change-Id: I642d60841d6bdccbf830f8a2ccdbd9f542a8aa18 +--- + editeng/source/outliner/outliner.cxx | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/editeng/source/outliner/outliner.cxx b/editeng/source/outliner/outliner.cxx +index 9c474131352c..d48e4a542723 100644 +--- a/editeng/source/outliner/outliner.cxx ++++ b/editeng/source/outliner/outliner.cxx +@@ -383,6 +383,7 @@ std::unique_ptr Outliner::CreateParaObject( sal_Int32 nStart + aParagraphDataVector[nPara-nStartPara] = *GetParagraph(nPara); + } + ++ xText->ClearPortionInfo(); // tdf#147166 the PortionInfo is unwanted here + std::unique_ptr pPObj(new OutlinerParaObject(std::move(xText), aParagraphDataVector, bIsEditDoc)); + pPObj->SetOutlinerMode(GetMode()); + +-- +2.35.1 + diff --git a/SOURCES/0001-Get-rid-of-apache-commons-logging.patch b/SOURCES/0001-Get-rid-of-apache-commons-logging.patch new file mode 100644 index 0000000..ca31754 --- /dev/null +++ b/SOURCES/0001-Get-rid-of-apache-commons-logging.patch @@ -0,0 +1,1309 @@ +From 4fd868fdfca690e9b0f159b2beadde5920897ab4 Mon Sep 17 00:00:00 2001 +From: Stephan Bergmann +Date: Sun, 11 Apr 2021 09:20:13 +0200 +Subject: [PATCH] Get rid of apache-commons-logging + +...using Java 1.4 java.util.logging.Logger instead also for the last remaining +uses in reportbuilder. + +(The mention in swext/mediawiki/src/THIRDPARTYLICENSEREADME.html was presumably +a leftover from 4b6ceed4a4a9b152905a8b1712ffb9bd61373c16 "swext: Wiki Publisher +does not use those apache-commons libraries".) + +Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113939 +Tested-by: Jenkins +Reviewed-by: Stephan Bergmann +(cherry picked from commit 6de0b1710adfba82c96b75a5da6f52633a54c692) +Conflicts: + readlicense_oo/license/NOTICE + swext/mediawiki/src/THIRDPARTYLICENSEREADME.html + +Change-Id: Ia0bc598fe5844ced11cae497548ec7d09453a99d +--- + Makefile.fetch | 1 - + RepositoryExternal.mk | 26 ---------- + config_host.mk.in | 3 -- + configure.ac | 40 --------------- + distro-configs/LibreOfficeFlatpak.conf | 1 - + download.lst | 2 - + external/Module_external.mk | 1 - + .../ExternalPackage_apache_commons_logging.mk | 16 ------ + .../ExternalProject_apache_commons_logging.mk | 32 ------------ + external/apache-commons/Makefile | 7 --- + .../apache-commons/Module_apache-commons.mk | 18 ------- + external/apache-commons/README | 1 - + .../UnpackedTarball_apache_commons_logging.mk | 22 --------- + external/apache-commons/patches/logging.patch | 46 ----------------- + readlicense_oo/license/NOTICE | 8 --- + readlicense_oo/license/license.xml | 6 --- + reportbuilder/Jar_reportbuilder.mk | 1 - + .../report/SDBCReportDataFactory.java | 7 +-- + .../libreoffice/report/StorageRepository.java | 48 +++++++++--------- + .../libreoffice/report/pentaho/Manifest.mf | 2 +- + .../report/pentaho/PentahoReportJob.java | 10 ++-- + .../report/pentaho/SOReportJobFactory.java | 9 ++-- + .../layoutprocessor/FormatValueUtility.java | 2 +- + .../FormattedTextLayoutController.java | 7 ++- + .../ImageElementLayoutController.java | 19 ++++--- + .../report/pentaho/output/ImageProducer.java | 23 ++++----- + .../output/OfficeDocumentReportTarget.java | 23 ++++----- + .../report/pentaho/output/OleProducer.java | 12 ++--- + .../report/pentaho/output/StyleUtilities.java | 10 ++-- + .../SpreadsheetRawReportTarget.java | 2 +- + .../office/DocumentContentReadHandler.java | 13 +++-- + solenv/flatpak-manifest.in | 6 --- + .../src/THIRDPARTYLICENSEREADME.html | 49 ------------------- + 33 files changed, 82 insertions(+), 391 deletions(-) + delete mode 100644 external/apache-commons/ExternalPackage_apache_commons_logging.mk + delete mode 100644 external/apache-commons/ExternalProject_apache_commons_logging.mk + delete mode 100644 external/apache-commons/Makefile + delete mode 100644 external/apache-commons/Module_apache-commons.mk + delete mode 100644 external/apache-commons/README + delete mode 100644 external/apache-commons/UnpackedTarball_apache_commons_logging.mk + delete mode 100644 external/apache-commons/patches/logging.patch + +diff --git a/Makefile.fetch b/Makefile.fetch +index 0a6202a4b3c7..924927bb4fb5 100644 +--- a/Makefile.fetch ++++ b/Makefile.fetch +@@ -101,7 +101,6 @@ $(WORKDIR)/download: $(BUILDDIR)/config_$(gb_Side).mk $(SRCDIR)/download.lst $(S + @date >> $(fetch_LOGFILE) + $(foreach item, \ + $(call fetch_Optional,ABW,ABW_TARBALL) \ +- $(call fetch_Optional,APACHE_COMMONS,APACHE_COMMONS_LOGGING_TARBALL) \ + $(call fetch_Optional,APR,APR_TARBALL) \ + $(call fetch_Optional,APR,APR_UTIL_TARBALL) \ + $(call fetch_Optional,BOOST,BOOST_TARBALL) \ +diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk +index ad3febbae41b..d2fe7e044dfb 100644 +--- a/RepositoryExternal.mk ++++ b/RepositoryExternal.mk +@@ -3723,32 +3723,6 @@ endif # SYSTEM_RHINO + + endif + +-ifneq ($(SYSTEM_APACHE_COMMONS),) +- +-define gb_Jar__use_commons-logging +-$(call gb_Jar_use_system_jar,$(1),$(COMMONS_LOGGING_JAR)) +-endef +-gb_ExternalProject__use_commons-logging := +- +-else # !SYSTEM_APACHE_COMMONS +- +-ifeq ($(ENABLE_JAVA),TRUE) +-$(eval $(call gb_Helper_register_jars_for_install,OOO,reportbuilder,\ +- commons-logging-$(COMMONS_LOGGING_VERSION) \ +-)) +-endif +- +-define gb_Jar__use_commons-logging +-$(call gb_Jar_use_external_project,$(1),apache_commons_logging) +-$(call gb_Jar_use_jar,$(1),commons-logging-$(COMMONS_LOGGING_VERSION)) +-endef +-define gb_ExternalProject__use_commons-logging +-$(call gb_ExternalProject_use_external_project,$(1),apache_commons_logging) +-endef +- +-endif # SYSTEM_APACHE_COMMONS +- +- + ifneq ($(SYSTEM_JFREEREPORT),) + + define gb_Jar__use_flow-engine +diff --git a/config_host.mk.in b/config_host.mk.in +index 42f4511a62e8..c9b3aa015123 100644 +--- a/config_host.mk.in ++++ b/config_host.mk.in +@@ -77,8 +77,6 @@ export CLUCENE_LIBS=$(gb_SPACE)@CLUCENE_LIBS@ + export LIBCMIS_CFLAGS=$(gb_SPACE)@LIBCMIS_CFLAGS@ + export LIBCMIS_LIBS=$(gb_SPACE)@LIBCMIS_LIBS@ + export COM=@COM@ +-export COMMONS_LOGGING_JAR=@COMMONS_LOGGING_JAR@ +-export COMMONS_LOGGING_VERSION=@COMMONS_LOGGING_VERSION@ + export COMPATH=@COMPATH@ + export COMPILER_PLUGINS=@COMPILER_PLUGINS@ + export COMPILER_PLUGINS_ANALYZER_PCH=@COMPILER_PLUGINS_ANALYZER_PCH@ +@@ -546,7 +544,6 @@ export STRIP=@STRIP@ + export STRIP_COMPONENTS=@STRIP_COMPONENTS@ + export SYSBASE=@SYSBASE@ + export SYSTEM_ABW=@SYSTEM_ABW@ +-export SYSTEM_APACHE_COMMONS=@SYSTEM_APACHE_COMMONS@ + export SYSTEM_APR=@SYSTEM_APR@ + export SYSTEM_BLUEZ=@SYSTEM_BLUEZ@ + export SYSTEM_BOOST=@SYSTEM_BOOST@ +diff --git a/configure.ac b/configure.ac +index 11d93b7ba6eb..1cb0a61ad9c2 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -2076,11 +2076,6 @@ AC_ARG_WITH(system-gpgmepp, + [Use gpgmepp already on system]),, + [with_system_gpgmepp="$with_system_libs"]) + +-AC_ARG_WITH(system-apache-commons, +- AS_HELP_STRING([--with-system-apache-commons], +- [Use Apache commons libraries already on system.]),, +- [with_system_apache_commons="$with_system_jars"]) +- + AC_ARG_WITH(system-mariadb, + AS_HELP_STRING([--with-system-mariadb], + [Use MariaDB/MySQL libraries already on system.]),, +@@ -2158,11 +2153,6 @@ AC_ARG_WITH(rhino-jar, + [Specify path to jarfile manually.]), + RHINO_JAR=$withval) + +-AC_ARG_WITH(commons-logging-jar, +- AS_HELP_STRING([--with-commons-logging-jar=JARFILE], +- [Specify path to jarfile manually.]), +- COMMONS_LOGGING_JAR=$withval) +- + AC_ARG_WITH(system-jfreereport, + AS_HELP_STRING([--with-system-jfreereport], + [Use JFreeReport already on system.]),, +@@ -12298,36 +12288,6 @@ AC_SUBST(LIBREPOSITORY_JAR) + AC_SUBST(LIBFONTS_JAR) + AC_SUBST(LIBSERIALIZER_JAR) + +-# this has to be here because both the Wiki Publisher and the SRB use +-# commons-logging +-COMMONS_LOGGING_VERSION=1.2 +-if test "$ENABLE_REPORTBUILDER" = "TRUE"; then +- AC_MSG_CHECKING([which Apache commons-* libs to use]) +- if test "$with_system_apache_commons" = "yes"; then +- SYSTEM_APACHE_COMMONS=TRUE +- AC_MSG_RESULT([external]) +- if test -z $COMMONS_LOGGING_JAR; then +- if test -f /usr/share/java/commons-logging-${COMMONS_LOGGING_VERSION}.jar; then +- COMMONS_LOGGING_JAR=/usr/share/java/commons-logging-${COMMONS_LOGGING_VERSION}.jar +- elif test -f /usr/share/java/commons-logging.jar; then +- COMMONS_LOGGING_JAR=/usr/share/java/commons-logging.jar +- else +- AC_MSG_ERROR(commons-logging.jar replacement not found.) +- fi +- elif ! test -f $COMMONS_LOGGING_JAR; then +- AC_MSG_ERROR(commons-logging.jar not found.) +- fi +- else +- AC_MSG_RESULT([internal]) +- SYSTEM_APACHE_COMMONS= +- BUILD_TYPE="$BUILD_TYPE APACHE_COMMONS" +- NEED_ANT=TRUE +- fi +-fi +-AC_SUBST(SYSTEM_APACHE_COMMONS) +-AC_SUBST(COMMONS_LOGGING_JAR) +-AC_SUBST(COMMONS_LOGGING_VERSION) +- + # scripting provider for BeanShell? + AC_MSG_CHECKING([whether to build support for scripts in BeanShell]) + if test "${enable_scripting_beanshell}" != "no" -a "x$with_java" != "xno"; then +diff --git a/distro-configs/LibreOfficeFlatpak.conf b/distro-configs/LibreOfficeFlatpak.conf +index 81604de9f1f7..97bfaba200fc 100644 +--- a/distro-configs/LibreOfficeFlatpak.conf ++++ b/distro-configs/LibreOfficeFlatpak.conf +@@ -10,7 +10,6 @@ + --without-export-validation + --without-junit + --without-lxml +---without-system-apache-commons + --without-system-beanshell + --without-system-bluez + --without-system-boost +diff --git a/download.lst b/download.lst +index c474e9f60208..f74d49e8dfcb 100644 +--- a/download.lst ++++ b/download.lst +@@ -5,8 +5,6 @@ + + export ABW_SHA256SUM := e763a9dc21c3d2667402d66e202e3f8ef4db51b34b79ef41f56cacb86dcd6eed + export ABW_TARBALL := libabw-0.1.3.tar.xz +-export APACHE_COMMONS_LOGGING_SHA256SUM := 49665da5a60d033e6dff40fe0a7f9173e886ae859ce6096c1afe34c48b677c81 +-export APACHE_COMMONS_LOGGING_TARBALL := commons-logging-1.2-src.tar.gz + export APR_SHA256SUM := 1af06e1720a58851d90694a984af18355b65bb0d047be03ec7d659c746d6dbdb + export APR_TARBALL := apr-1.5.2.tar.gz + export APR_UTIL_SHA256SUM := 976a12a59bc286d634a21d7be0841cc74289ea9077aa1af46be19d1a6e844c19 +diff --git a/external/Module_external.mk b/external/Module_external.mk +index 1c722a325c2d..185974271b93 100644 +--- a/external/Module_external.mk ++++ b/external/Module_external.mk +@@ -16,7 +16,6 @@ endif + $(eval $(call gb_Module_add_moduledirs,external,\ + $(call gb_Helper_optional,XMLSEC,xmlsec) \ + $(call gb_Helper_optional,ABW,libabw) \ +- $(call gb_Helper_optional,APACHE_COMMONS,apache-commons) \ + $(call gb_Helper_optional,APR,apr) \ + $(call gb_Helper_optional,BOOST,boost) \ + $(call gb_Helper_optional,BOX2D,box2d) \ +diff --git a/external/apache-commons/ExternalPackage_apache_commons_logging.mk b/external/apache-commons/ExternalPackage_apache_commons_logging.mk +deleted file mode 100644 +index 2bff13b93c66..000000000000 +--- a/external/apache-commons/ExternalPackage_apache_commons_logging.mk ++++ /dev/null +@@ -1,16 +0,0 @@ +-# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- +-# +-# This file is part of the LibreOffice project. +-# +-# This Source Code Form is subject to the terms of the Mozilla Public +-# License, v. 2.0. If a copy of the MPL was not distributed with this +-# file, You can obtain one at http://mozilla.org/MPL/2.0/. +-# +- +-$(eval $(call gb_ExternalPackage_ExternalPackage,apache_commons_logging,apache_commons_logging)) +- +-$(eval $(call gb_ExternalPackage_use_external_project,apache_commons_logging,apache_commons_logging)) +- +-$(eval $(call gb_ExternalPackage_add_file,apache_commons_logging,$(LIBO_SHARE_JAVA_FOLDER)/commons-logging-$(COMMONS_LOGGING_VERSION).jar,target/commons-logging-$(COMMONS_LOGGING_VERSION).jar)) +- +-# vim: set noet sw=4 ts=4: +diff --git a/external/apache-commons/ExternalProject_apache_commons_logging.mk b/external/apache-commons/ExternalProject_apache_commons_logging.mk +deleted file mode 100644 +index 7c689d18c443..000000000000 +--- a/external/apache-commons/ExternalProject_apache_commons_logging.mk ++++ /dev/null +@@ -1,32 +0,0 @@ +-# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- +-# +-# This file is part of the LibreOffice project. +-# +-# This Source Code Form is subject to the terms of the Mozilla Public +-# License, v. 2.0. If a copy of the MPL was not distributed with this +-# file, You can obtain one at http://mozilla.org/MPL/2.0/. +-# +- +-$(eval $(call gb_ExternalProject_ExternalProject,apache_commons_logging)) +- +-$(eval $(call gb_ExternalProject_register_targets,apache_commons_logging,\ +- build \ +-)) +- +-$(call gb_ExternalProject_get_state_target,apache_commons_logging,build) : +- $(call gb_Trace_StartRange,apache_commons_logging,EXTERNAL) +- $(call gb_ExternalProject_run,build,\ +- JAVA_HOME=$(JAVA_HOME_FOR_BUILD) \ +- ANT_OPTS="$$ANT_OPTS -Dfile.encoding=ISO-8859-1" \ +- $(ICECREAM_RUN) "$(ANT)" \ +- $(if $(verbose),-v,-q) \ +- -f build.xml \ +- -Dbuild.label="build-$(LIBO_VERSION_MAJOR).$(LIBO_VERSION_MINOR).$(LIBO_VERSION_MICRO).$(LIBO_VERSION_PATCH)" \ +- -Dant.build.javac.source=$(JAVA_SOURCE_VER) \ +- -Dant.build.javac.target=$(JAVA_TARGET_VER) \ +- $(if $(debug),-Dcompile.debug="true",-Dcompile.debug="false") \ +- compile build-jar \ +- ) +- $(call gb_Trace_EndRange,apache_commons_logging,EXTERNAL) +- +-# vim: set noet sw=4 ts=4: +diff --git a/external/apache-commons/Makefile b/external/apache-commons/Makefile +deleted file mode 100644 +index e4968cf85fb6..000000000000 +--- a/external/apache-commons/Makefile ++++ /dev/null +@@ -1,7 +0,0 @@ +-# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- +- +-module_directory:=$(dir $(realpath $(firstword $(MAKEFILE_LIST)))) +- +-include $(module_directory)/../../solenv/gbuild/partial_build.mk +- +-# vim: set noet sw=4 ts=4: +diff --git a/external/apache-commons/Module_apache-commons.mk b/external/apache-commons/Module_apache-commons.mk +deleted file mode 100644 +index 45aabe229b03..000000000000 +--- a/external/apache-commons/Module_apache-commons.mk ++++ /dev/null +@@ -1,18 +0,0 @@ +-# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- +-# +-# This file is part of the LibreOffice project. +-# +-# This Source Code Form is subject to the terms of the Mozilla Public +-# License, v. 2.0. If a copy of the MPL was not distributed with this +-# file, You can obtain one at http://mozilla.org/MPL/2.0/. +-# +- +-$(eval $(call gb_Module_Module,apache-commons)) +- +-$(eval $(call gb_Module_add_targets,apache-commons,\ +- ExternalPackage_apache_commons_logging \ +- ExternalProject_apache_commons_logging \ +- UnpackedTarball_apache_commons_logging \ +-)) +- +-# vim: set noet sw=4 ts=4: +diff --git a/external/apache-commons/README b/external/apache-commons/README +deleted file mode 100644 +index 18944aca4af7..000000000000 +--- a/external/apache-commons/README ++++ /dev/null +@@ -1 +0,0 @@ +-Java library; used for logging in Extensions, from [http://commons.apache.org/] +diff --git a/external/apache-commons/UnpackedTarball_apache_commons_logging.mk b/external/apache-commons/UnpackedTarball_apache_commons_logging.mk +deleted file mode 100644 +index 1d5ad3dc2d9d..000000000000 +--- a/external/apache-commons/UnpackedTarball_apache_commons_logging.mk ++++ /dev/null +@@ -1,22 +0,0 @@ +-# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- +-# +-# This file is part of the LibreOffice project. +-# +-# This Source Code Form is subject to the terms of the Mozilla Public +-# License, v. 2.0. If a copy of the MPL was not distributed with this +-# file, You can obtain one at http://mozilla.org/MPL/2.0/. +-# +- +-$(eval $(call gb_UnpackedTarball_UnpackedTarball,apache_commons_logging)) +- +-$(eval $(call gb_UnpackedTarball_set_tarball,apache_commons_logging,$(APACHE_COMMONS_LOGGING_TARBALL),,apache-commons)) +- +-$(eval $(call gb_UnpackedTarball_fix_end_of_line,apache_commons_logging,\ +- build.xml \ +-)) +- +-$(eval $(call gb_UnpackedTarball_add_patches,apache_commons_logging,\ +- external/apache-commons/patches/logging.patch \ +-)) +- +-# vim: set noet sw=4 ts=4: +diff --git a/external/apache-commons/patches/logging.patch b/external/apache-commons/patches/logging.patch +deleted file mode 100644 +index c225e5a30338..000000000000 +--- a/external/apache-commons/patches/logging.patch ++++ /dev/null +@@ -1,46 +0,0 @@ +---- misc/commons-logging-1.1.1-src/build.xml 2007-11-22 00:27:52.000000000 +0100 +-+++ misc/build/commons-logging-1.1.1-src/build.xml 2008-06-24 14:23:56.316301736 +0200 +-@@ -129,12 +129,6 @@ +- +- +- +-- +-- +-- +-- +-- +-- +- +- +- +-@@ -283,6 +277,10 @@ +- classpathref="compile.classpath" +- classname="org.apache.avalon.framework.logger.Logger"/> +- +-+ +-+ +- +- +- +-@@ -362,8 +360,8 @@ +- debug="${compile.debug}" +- deprecation="${compile.deprecation}" +- optimize="${compile.optimize}" +-- source="${source.version}" +-- target="${target.version}"> +-+ source="${ant.build.javac.source}" +-+ target="${ant.build.javac.target}"> +- +- +- +-@@ -373,6 +371,8 @@ +- unless="logkit.present"/> +- +-+ +- +- +- +diff --git a/readlicense_oo/license/NOTICE b/readlicense_oo/license/NOTICE +index 46b7fccaf737..0cecc2dbfa50 100644 +--- a/readlicense_oo/license/NOTICE ++++ b/readlicense_oo/license/NOTICE +@@ -25,7 +25,6 @@ Apache projects: + - Apache Lucene + - Apache Portable Runtime + - Apache Portable Runtime Utility Library +-- Apache Commons - used by MediaWiki Publisher extension + - Apache Jakarta HttpClient - used by MediaWiki Publisher extension + - Apache Tomcat - used by MediaWiki Publisher extension + +@@ -106,13 +105,6 @@ This product includes software from the Spring Framework, + under the Apache License 2.0 (see: StringUtils.containsWhitespace()) + + +-Apache Commons Logging +-Copyright 2003-2007 The Apache Software Foundation +- +-This product includes software developed by +-The Apache Software Foundation (http://www.apache.org/). +- +- + Apache Tomcat + Copyright 1999-2012 The Apache Software Foundation + +diff --git a/readlicense_oo/license/license.xml b/readlicense_oo/license/license.xml +index 2c45a12fd202..2bd6b943096f 100644 +--- a/readlicense_oo/license/license.xml ++++ b/readlicense_oo/license/license.xml +@@ -52,12 +52,6 @@ +

Third Party Code Additional Copyright + Notices and License Terms

+

Libraries

+-
+-

Apache Commons

+-

The following software may be included in this product: Apache Commons (codec, httpclient, lang, logging). +- Use of any of this software is governed by the terms of the license below:

+-

Jump to Apache License Version 2.0

+-
+
+

Apache Portable Runtime (APR)

+

The following software may be included in this product: Apache Portable Runtime (APR). +diff --git a/reportbuilder/Jar_reportbuilder.mk b/reportbuilder/Jar_reportbuilder.mk +index 101ebc9330b7..7abcf796a0d0 100644 +--- a/reportbuilder/Jar_reportbuilder.mk ++++ b/reportbuilder/Jar_reportbuilder.mk +@@ -15,7 +15,6 @@ $(eval $(call gb_Jar_use_jars,reportbuilder,\ + )) + + $(eval $(call gb_Jar_use_externals,reportbuilder,\ +- commons-logging \ + flow-engine \ + flute \ + libbase \ +diff --git a/reportbuilder/java/org/libreoffice/report/SDBCReportDataFactory.java b/reportbuilder/java/org/libreoffice/report/SDBCReportDataFactory.java +index 463addc63e71..b3c4508666ca 100644 +--- a/reportbuilder/java/org/libreoffice/report/SDBCReportDataFactory.java ++++ b/reportbuilder/java/org/libreoffice/report/SDBCReportDataFactory.java +@@ -58,9 +58,6 @@ import java.util.Map; + import java.util.logging.Level; + import java.util.logging.Logger; + +-import org.apache.commons.logging.Log; +-import org.apache.commons.logging.LogFactory; +- + + /** + * Very primitive implementation, just to show how this could be used ... +@@ -142,7 +139,7 @@ public class SDBCReportDataFactory implements DataSourceFactory + private int parameterCount = 0; + private final ArrayList parameterIndex = new ArrayList(); + } +- private static final Log LOGGER = LogFactory.getLog(SDBCReportDataFactory.class); ++ private static final Logger LOGGER = Logger.getLogger(SDBCReportDataFactory.class.getName()); + public static final String COMMAND_TYPE = "command-type"; + public static final String ESCAPE_PROCESSING = "escape-processing"; + public static final String SORT_EXPRESSIONS = "sort-expressions"; +@@ -259,7 +256,7 @@ public class SDBCReportDataFactory implements DataSourceFactory + } + catch (SQLException ex) + { +- LOGGER.error("ReportProcessing failed / getOrderStatement could not get quote character", ex); ++ LOGGER.severe("ReportProcessing failed / getOrderStatement could not get quote character: " + ex); + // fall back to the SQL standard + quote=""; + } +diff --git a/reportbuilder/java/org/libreoffice/report/StorageRepository.java b/reportbuilder/java/org/libreoffice/report/StorageRepository.java +index 8b6d08c458a2..a338ee5dedb5 100644 +--- a/reportbuilder/java/org/libreoffice/report/StorageRepository.java ++++ b/reportbuilder/java/org/libreoffice/report/StorageRepository.java +@@ -37,9 +37,7 @@ import java.io.BufferedOutputStream; + import java.io.IOException; + import java.io.InputStream; + import java.io.OutputStream; +- +-import org.apache.commons.logging.Log; +-import org.apache.commons.logging.LogFactory; ++import java.util.logging.Logger; + + /** + * A directory holds all the contents here. +@@ -49,8 +47,8 @@ import org.apache.commons.logging.LogFactory; + public class StorageRepository implements InputRepository, OutputRepository + { + +- private static final Log LOGGER = LogFactory.getLog(StorageRepository.class); +- private static final String REPORT_PROCESSING_FAILED = "ReportProcessing failed"; ++ private static final Logger LOGGER = Logger.getLogger(StorageRepository.class.getName()); ++ private static final String REPORT_PROCESSING_FAILED = "ReportProcessing failed: "; + private XStorage input; + private XStorage output; + private final String rootURL; +@@ -134,11 +132,11 @@ public class StorageRepository implements InputRepository, OutputRepository + } + catch (InvalidStorageException ex) + { +- LOGGER.error(REPORT_PROCESSING_FAILED, ex); ++ LOGGER.severe(REPORT_PROCESSING_FAILED + ex); + } + catch (com.sun.star.lang.IllegalArgumentException ex) + { +- LOGGER.error(REPORT_PROCESSING_FAILED, ex); ++ LOGGER.severe(REPORT_PROCESSING_FAILED + ex); + } + catch (NoSuchElementException e) + { +@@ -168,15 +166,15 @@ public class StorageRepository implements InputRepository, OutputRepository + } + catch (InvalidStorageException ex) + { +- LOGGER.error(REPORT_PROCESSING_FAILED, ex); ++ LOGGER.severe(REPORT_PROCESSING_FAILED + ex); + } + catch (com.sun.star.lang.IllegalArgumentException ex) + { +- LOGGER.error(REPORT_PROCESSING_FAILED, ex); ++ LOGGER.severe(REPORT_PROCESSING_FAILED + ex); + } + catch (NoSuchElementException ex) + { +- LOGGER.error(REPORT_PROCESSING_FAILED, ex); ++ LOGGER.severe(REPORT_PROCESSING_FAILED + ex); + } + return false; + } +@@ -195,23 +193,23 @@ public class StorageRepository implements InputRepository, OutputRepository + } + catch (NoSuchElementException ex) + { +- LOGGER.error(REPORT_PROCESSING_FAILED, ex); ++ LOGGER.severe(REPORT_PROCESSING_FAILED + ex); + } + catch (WrappedTargetException ex) + { +- LOGGER.error(REPORT_PROCESSING_FAILED, ex); ++ LOGGER.severe(REPORT_PROCESSING_FAILED + ex); + } + catch (InvalidStorageException ex) + { +- LOGGER.error(REPORT_PROCESSING_FAILED, ex); ++ LOGGER.severe(REPORT_PROCESSING_FAILED + ex); + } + catch (IllegalArgumentException ex) + { +- LOGGER.error(REPORT_PROCESSING_FAILED, ex); ++ LOGGER.severe(REPORT_PROCESSING_FAILED + ex); + } + catch (com.sun.star.io.IOException ex) + { +- LOGGER.error(REPORT_PROCESSING_FAILED, ex); ++ LOGGER.severe(REPORT_PROCESSING_FAILED + ex); + } + throw new IOException(); + } +@@ -245,27 +243,27 @@ public class StorageRepository implements InputRepository, OutputRepository + } + catch (UnknownPropertyException ex) + { +- LOGGER.error(REPORT_PROCESSING_FAILED, ex); ++ LOGGER.severe(REPORT_PROCESSING_FAILED + ex); + } + catch (PropertyVetoException ex) + { +- LOGGER.error(REPORT_PROCESSING_FAILED, ex); ++ LOGGER.severe(REPORT_PROCESSING_FAILED + ex); + } + catch (IllegalArgumentException ex) + { +- LOGGER.error(REPORT_PROCESSING_FAILED, ex); ++ LOGGER.severe(REPORT_PROCESSING_FAILED + ex); + } + catch (WrappedTargetException ex) + { +- LOGGER.error(REPORT_PROCESSING_FAILED, ex); ++ LOGGER.severe(REPORT_PROCESSING_FAILED + ex); + } + catch (InvalidStorageException ex) + { +- LOGGER.error(REPORT_PROCESSING_FAILED, ex); ++ LOGGER.severe(REPORT_PROCESSING_FAILED + ex); + } + catch (com.sun.star.io.IOException ex) + { +- LOGGER.error(REPORT_PROCESSING_FAILED, ex); ++ LOGGER.severe(REPORT_PROCESSING_FAILED + ex); + } + + throw new IOException(); +@@ -293,11 +291,11 @@ public class StorageRepository implements InputRepository, OutputRepository + } + catch (com.sun.star.io.IOException ex) + { +- LOGGER.error(REPORT_PROCESSING_FAILED, ex); ++ LOGGER.severe(REPORT_PROCESSING_FAILED + ex); + } + catch (WrappedTargetException ex) + { +- LOGGER.error(REPORT_PROCESSING_FAILED, ex); ++ LOGGER.severe(REPORT_PROCESSING_FAILED + ex); + } + output.dispose(); + } +@@ -312,11 +310,11 @@ public class StorageRepository implements InputRepository, OutputRepository + } + catch (InvalidStorageException ex) + { +- LOGGER.error(REPORT_PROCESSING_FAILED, ex); ++ LOGGER.severe(REPORT_PROCESSING_FAILED + ex); + } + catch (com.sun.star.lang.IllegalArgumentException ex) + { +- LOGGER.error(REPORT_PROCESSING_FAILED, ex); ++ LOGGER.severe(REPORT_PROCESSING_FAILED + ex); + } + catch (NoSuchElementException ex) + { +diff --git a/reportbuilder/java/org/libreoffice/report/pentaho/Manifest.mf b/reportbuilder/java/org/libreoffice/report/pentaho/Manifest.mf +index 23731b104054..2a56b2fbb9fa 100644 +--- a/reportbuilder/java/org/libreoffice/report/pentaho/Manifest.mf ++++ b/reportbuilder/java/org/libreoffice/report/pentaho/Manifest.mf +@@ -3,5 +3,5 @@ Class-Path: reportbuilderwizard.jar + flute-1.1.6.jar libserializer-1.1.6.jar libbase-1.1.6.jar + libfonts-1.1.6.jar libformula-1.1.7.jar liblayout.jar + libloader-1.1.6.jar librepository-1.1.6.jar libxml-1.1.7.jar +- flow-engine.jar sac.jar commons-logging-1.2.jar ++ flow-engine.jar sac.jar + UNO-Type-Path: +diff --git a/reportbuilder/java/org/libreoffice/report/pentaho/PentahoReportJob.java b/reportbuilder/java/org/libreoffice/report/pentaho/PentahoReportJob.java +index 480bca548e7e..efb4261ce127 100644 +--- a/reportbuilder/java/org/libreoffice/report/pentaho/PentahoReportJob.java ++++ b/reportbuilder/java/org/libreoffice/report/pentaho/PentahoReportJob.java +@@ -42,9 +42,7 @@ import java.io.IOException; + + import java.util.ArrayList; + import java.util.List; +- +-import org.apache.commons.logging.Log; +-import org.apache.commons.logging.LogFactory; ++import java.util.logging.Logger; + + import org.jfree.report.expressions.Expression; + import org.jfree.report.expressions.FormulaExpression; +@@ -72,7 +70,7 @@ import org.pentaho.reporting.libraries.resourceloader.ResourceManager; + public class PentahoReportJob implements ReportJob + { + +- private static final Log LOGGER = LogFactory.getLog(PentahoReportJob.class); ++ private static final Logger LOGGER = Logger.getLogger(PentahoReportJob.class.getName()); + private final DataSourceFactory dataSourceFactory; + private final OutputRepository outputRepository; + private final JobProperties jobProperties; +@@ -235,7 +233,7 @@ public class PentahoReportJob implements ReportJob + } + catch (ParseException ex) + { +- LOGGER.error("ReportProcessing failed", ex); ++ LOGGER.severe("ReportProcessing failed: " + ex); + } + } + else if (node instanceof OfficeDetailSection) +@@ -338,7 +336,7 @@ public class PentahoReportJob implements ReportJob + rp.processReport(job); + job.close(); + final long endTime = System.currentTimeMillis(); +- LOGGER.debug("Report processing time: " + (endTime - startTime)); ++ LOGGER.config("Report processing time: " + (endTime - startTime)); + } + catch (final Exception e) + { +diff --git a/reportbuilder/java/org/libreoffice/report/pentaho/SOReportJobFactory.java b/reportbuilder/java/org/libreoffice/report/pentaho/SOReportJobFactory.java +index 54694fd619ab..3c52473e3d3c 100644 +--- a/reportbuilder/java/org/libreoffice/report/pentaho/SOReportJobFactory.java ++++ b/reportbuilder/java/org/libreoffice/report/pentaho/SOReportJobFactory.java +@@ -68,9 +68,6 @@ import java.io.Writer; + import java.io.PrintWriter; + import java.io.StringWriter; + +-import org.apache.commons.logging.Log; +-import org.apache.commons.logging.LogFactory; +- + /** + * This class capsulates the class, that implements the minimal component, a factory for creating the service + * (__getComponentFactory) and a method, that writes the information into the given registry key +@@ -86,7 +83,7 @@ public class SOReportJobFactory + public static class _SOReportJobFactory extends WeakBase implements XInitialization, XServiceInfo, XJob, XPropertySet, ReportJobFactory + { + +- private static final Log LOGGER = LogFactory.getLog(_SOReportJobFactory.class); ++ private static final Logger LOGGER = Logger.getLogger(_SOReportJobFactory.class.getName()); + /** + * The service name, that must be used to get an instance of this service. + */ +@@ -242,7 +239,7 @@ public class SOReportJobFactory + } + catch (java.lang.Exception e) + { +- LOGGER.error("ReportProcessing failed", e); ++ LOGGER.severe("ReportProcessing failed: " + e); + Writer result = new StringWriter(); + PrintWriter printWriter = new PrintWriter(result); + e.printStackTrace(printWriter); +@@ -254,7 +251,7 @@ public class SOReportJobFactory + } + catch (java.lang.IncompatibleClassChangeError e) + { +- LOGGER.error("Detected an IncompatibleClassChangeError"); ++ LOGGER.severe("Detected an IncompatibleClassChangeError"); + Writer result = new StringWriter(); + PrintWriter printWriter = new PrintWriter(result); + e.printStackTrace(printWriter); +diff --git a/reportbuilder/java/org/libreoffice/report/pentaho/layoutprocessor/FormatValueUtility.java b/reportbuilder/java/org/libreoffice/report/pentaho/layoutprocessor/FormatValueUtility.java +index 6a1bd00736ee..eab7c512284d 100644 +--- a/reportbuilder/java/org/libreoffice/report/pentaho/layoutprocessor/FormatValueUtility.java ++++ b/reportbuilder/java/org/libreoffice/report/pentaho/layoutprocessor/FormatValueUtility.java +@@ -208,7 +208,7 @@ public class FormatValueUtility + if (result == null) + { + // ignore it. Ignoring it is much better than printing 'null'. +- // LOGGER.debug("Formula '" + formulaExpression.getFormula() + "' evaluated to null."); ++ // LOGGER.config("Formula '" + formulaExpression.getFormula() + "' evaluated to null."); + return null; + } + else if (result instanceof DataFlags) +diff --git a/reportbuilder/java/org/libreoffice/report/pentaho/layoutprocessor/FormattedTextLayoutController.java b/reportbuilder/java/org/libreoffice/report/pentaho/layoutprocessor/FormattedTextLayoutController.java +index 7f1470edc866..7959b5857408 100644 +--- a/reportbuilder/java/org/libreoffice/report/pentaho/layoutprocessor/FormattedTextLayoutController.java ++++ b/reportbuilder/java/org/libreoffice/report/pentaho/layoutprocessor/FormattedTextLayoutController.java +@@ -20,8 +20,7 @@ package org.libreoffice.report.pentaho.layoutprocessor; + + import org.libreoffice.report.pentaho.OfficeNamespaces; + import org.libreoffice.report.pentaho.model.FormattedTextElement; +-import org.apache.commons.logging.Log; +-import org.apache.commons.logging.LogFactory; ++import java.util.logging.Logger; + + import org.jfree.report.DataFlags; + import org.jfree.report.DataSourceException; +@@ -45,7 +44,7 @@ public class FormattedTextLayoutController + extends AbstractReportElementLayoutController + { + +- private static final Log LOGGER = LogFactory.getLog(FormattedTextLayoutController.class); ++ private static final Logger LOGGER = Logger.getLogger(FormattedTextLayoutController.class.getName()); + + @Override + public boolean isValueChanged() +@@ -62,7 +61,7 @@ public class FormattedTextLayoutController + } + catch (final ParseException e) + { +- LOGGER.debug("Parse Exception", e); ++ LOGGER.config("Parse Exception: " + e); + return false; + } + } +diff --git a/reportbuilder/java/org/libreoffice/report/pentaho/layoutprocessor/ImageElementLayoutController.java b/reportbuilder/java/org/libreoffice/report/pentaho/layoutprocessor/ImageElementLayoutController.java +index 0bf40b9dcd28..6fc68e816f7c 100644 +--- a/reportbuilder/java/org/libreoffice/report/pentaho/layoutprocessor/ImageElementLayoutController.java ++++ b/reportbuilder/java/org/libreoffice/report/pentaho/layoutprocessor/ImageElementLayoutController.java +@@ -22,8 +22,7 @@ import org.libreoffice.report.OfficeToken; + import org.libreoffice.report.pentaho.OfficeNamespaces; + import org.libreoffice.report.pentaho.model.ImageElement; + +-import org.apache.commons.logging.Log; +-import org.apache.commons.logging.LogFactory; ++import java.util.logging.Logger; + + import org.jfree.layouting.util.AttributeMap; + import org.jfree.report.DataSourceException; +@@ -59,7 +58,7 @@ public class ImageElementLayoutController + extends AbstractReportElementLayoutController + { + +- private static final Log LOGGER = LogFactory.getLog(ImageElementLayoutController.class); ++ private static final Logger LOGGER = Logger.getLogger(ImageElementLayoutController.class.getName()); + private ImageElementContext context; + + @Override +@@ -116,7 +115,7 @@ public class ImageElementLayoutController + final LayoutController cellController = findParentCell(); + if (cellController == null) + { +- LOGGER.warn("Image is not contained in a table. Unable to calculate the image-size."); ++ LOGGER.warning("Image is not contained in a table. Unable to calculate the image-size."); + return null; + } + final Element tableCell = (Element) cellController.getNode(); +@@ -124,14 +123,14 @@ public class ImageElementLayoutController + final int colSpan = TextUtilities.parseInt((String) tableCell.getAttribute(OfficeNamespaces.TABLE_NS, "number-columns-spanned"), 1); + if (rowSpan < 1 || colSpan < 1) + { +- LOGGER.warn("Rowspan or colspan for image-size calculation was invalid."); ++ LOGGER.warning("Rowspan or colspan for image-size calculation was invalid."); + return null; + } + + final LayoutController rowController = cellController.getParent(); + if (rowController == null) + { +- LOGGER.warn("Table-Cell has no parent. Unable to calculate the image-size."); ++ LOGGER.warning("Table-Cell has no parent. Unable to calculate the image-size."); + return null; + } + final Section tableRow = (Section) rowController.getNode(); +@@ -141,14 +140,14 @@ public class ImageElementLayoutController + final int columnPos = findNodeInSection(tableRow, tableCell, OfficeToken.COVERED_TABLE_CELL); + if (columnPos == -1) + { +- LOGGER.warn("Table-Cell is not a direct child of the table-row. Unable to calculate the image-size."); ++ LOGGER.warning("Table-Cell is not a direct child of the table-row. Unable to calculate the image-size."); + return null; + } + + final LayoutController tableController = rowController.getParent(); + if (tableController == null) + { +- LOGGER.warn("Table-Row has no Table. Unable to calculate the image-size."); ++ LOGGER.warning("Table-Row has no Table. Unable to calculate the image-size."); + return null; + } + +@@ -158,7 +157,7 @@ public class ImageElementLayoutController + if (columns.getNodeCount() <= columnPos + colSpan) + { + // the colspan is too large. The table definition is therefore invalid. We do not try to fix this. +- LOGGER.warn( ++ LOGGER.warning( + "The Table's defined columns do not match the col-span or col-position. Unable to calculate the image-size."); + return null; + } +@@ -169,7 +168,7 @@ public class ImageElementLayoutController + final int rowPos = findNodeInSection(table, tableRow, null); + if (rowPos == -1) + { +- LOGGER.warn("Table-Cell is not a direct child of the table-row. Unable to calculate the image-size."); ++ LOGGER.warning("Table-Cell is not a direct child of the table-row. Unable to calculate the image-size."); + return null; + } + +diff --git a/reportbuilder/java/org/libreoffice/report/pentaho/output/ImageProducer.java b/reportbuilder/java/org/libreoffice/report/pentaho/output/ImageProducer.java +index ae1a8273bfb7..69995d7aa1c5 100644 +--- a/reportbuilder/java/org/libreoffice/report/pentaho/output/ImageProducer.java ++++ b/reportbuilder/java/org/libreoffice/report/pentaho/output/ImageProducer.java +@@ -48,9 +48,6 @@ import java.util.Map; + import java.util.logging.Level; + import java.util.logging.Logger; + +-import org.apache.commons.logging.Log; +-import org.apache.commons.logging.LogFactory; +- + import org.jfree.layouting.input.style.values.CSSNumericType; + import org.jfree.layouting.input.style.values.CSSNumericValue; + +@@ -67,7 +64,7 @@ import org.pentaho.reporting.libraries.base.util.WaitingImageObserver; + public class ImageProducer + { + +- private static final Log LOGGER = LogFactory.getLog(ImageProducer.class); ++ private static final Logger LOGGER = Logger.getLogger(ImageProducer.class.getName()); + + public static class OfficeImage + { +@@ -188,7 +185,7 @@ public class ImageProducer + final boolean preserveIRI) + { + +- LOGGER.debug("Want to produce image " + imageData); ++ LOGGER.config("Want to produce image " + imageData); + if (imageData instanceof String) + { + return produceFromString((String) imageData, preserveIRI); +@@ -247,11 +244,11 @@ public class ImageProducer + } + catch (IOException e) + { +- LOGGER.warn("Failed to produce image from Blob", e); ++ LOGGER.warning("Failed to produce image from Blob: " + e); + } + catch (SQLException e) + { +- LOGGER.warn("Failed to produce image from Blob", e); ++ LOGGER.warning("Failed to produce image from Blob: " + e); + } + return null; + } +@@ -295,11 +292,11 @@ public class ImageProducer + } + catch (IOException e) + { +- LOGGER.warn("Failed to load image from local input-repository", e); ++ LOGGER.warning("Failed to load image from local input-repository: " + e); + } + catch (ReportExecutionException e) + { +- LOGGER.warn("Failed to create image from local input-repository", e); ++ LOGGER.warning("Failed to create image from local input-repository: " + e); + } + return null; + } +@@ -353,11 +350,11 @@ public class ImageProducer + } + catch (IOException e) + { +- LOGGER.warn("Failed to load image from local input-repository", e); ++ LOGGER.warning("Failed to load image from local input-repository: " + e); + } + catch (ReportExecutionException e) + { +- LOGGER.warn("Failed to create image from local input-repository", e); ++ LOGGER.warning("Failed to create image from local input-repository: " + e); + } + } + else +@@ -435,11 +432,11 @@ public class ImageProducer + } + catch (IOException e) + { +- LOGGER.warn("Failed to load image from local input-repository", e); ++ LOGGER.warning("Failed to load image from local input-repository: " + e); + } + catch (ReportExecutionException e) + { +- LOGGER.warn("Failed to create image from local input-repository", e); ++ LOGGER.warning("Failed to create image from local input-repository: " + e); + } + + if (!preserveIRI) +diff --git a/reportbuilder/java/org/libreoffice/report/pentaho/output/OfficeDocumentReportTarget.java b/reportbuilder/java/org/libreoffice/report/pentaho/output/OfficeDocumentReportTarget.java +index a5c3be135a65..b73b5781b3a3 100644 +--- a/reportbuilder/java/org/libreoffice/report/pentaho/output/OfficeDocumentReportTarget.java ++++ b/reportbuilder/java/org/libreoffice/report/pentaho/output/OfficeDocumentReportTarget.java +@@ -65,9 +65,6 @@ import java.util.Map; + import java.util.zip.DeflaterOutputStream; + import java.util.zip.InflaterInputStream; + +-import org.apache.commons.logging.Log; +-import org.apache.commons.logging.LogFactory; +- + import org.jfree.layouting.input.style.parser.CSSValueFactory; + import org.jfree.layouting.input.style.parser.StyleSheetParserUtil; + import org.jfree.layouting.input.style.values.CSSNumericType; +@@ -112,7 +109,7 @@ import org.w3c.css.sac.LexicalUnit; + public abstract class OfficeDocumentReportTarget extends AbstractReportTarget + { + +- protected static final Log LOGGER = LogFactory.getLog(OfficeDocumentReportTarget.class); ++ protected static final Logger LOGGER = Logger.getLogger(OfficeDocumentReportTarget.class.getName()); + public static final String HORIZONTAL_POS = "horizontal-pos"; + public static final String TAG_DEF_PREFIX = "org.libreoffice.report.pentaho.output."; + private static final int ROLE_NONE = 0; +@@ -517,7 +514,7 @@ public abstract class OfficeDocumentReportTarget extends AbstractReportTarget + // todo + if (DEBUG_ELEMENTS) + { +- LOGGER.debug("Starting " + getCurrentState() + '/' + states.size() + ' ' + ReportTargetUtil.getNamespaceFromAttribute(attrs) + " -> " + ReportTargetUtil.getElemenTypeFromAttribute(attrs)); ++ LOGGER.config("Starting " + getCurrentState() + '/' + states.size() + ' ' + ReportTargetUtil.getNamespaceFromAttribute(attrs) + " -> " + ReportTargetUtil.getElemenTypeFromAttribute(attrs)); + } + try + { +@@ -713,7 +710,7 @@ public abstract class OfficeDocumentReportTarget extends AbstractReportTarget + } + catch (IOException ioe) + { +- LOGGER.error("ReportProcessing failed", ioe); ++ LOGGER.severe("ReportProcessing failed: " + ioe); + throw new ReportProcessingException("Failed to write content", ioe); + } + } +@@ -762,7 +759,7 @@ public abstract class OfficeDocumentReportTarget extends AbstractReportTarget + if (styleMapper.isListOfStyles(elementNamespace, elementName, attrNamespace, attrName)) + { + // ignored for now. +- LOGGER.warn("List of styles is not yet implemented."); ++ LOGGER.warning("List of styles is not yet implemented."); + continue; + } + +@@ -970,7 +967,7 @@ public abstract class OfficeDocumentReportTarget extends AbstractReportTarget + + if (DEBUG_ELEMENTS) + { +- LOGGER.debug("Finished " + getCurrentState() + "/" + states.size() + " " + ReportTargetUtil.getNamespaceFromAttribute(attrs) + ":" + ReportTargetUtil.getElemenTypeFromAttribute(attrs)); ++ LOGGER.config("Finished " + getCurrentState() + "/" + states.size() + " " + ReportTargetUtil.getNamespaceFromAttribute(attrs) + ":" + ReportTargetUtil.getElemenTypeFromAttribute(attrs)); + } + + } +@@ -1153,7 +1150,7 @@ public abstract class OfficeDocumentReportTarget extends AbstractReportTarget + } + catch (IOException e) + { +- LOGGER.error("ReportProcessing failed", e); ++ LOGGER.severe("ReportProcessing failed: " + e); + } + return state; + } +@@ -1294,7 +1291,7 @@ public abstract class OfficeDocumentReportTarget extends AbstractReportTarget + + final CSSNumericValue height = image.getHeight(); // always in 100th of a mm + +- LOGGER.debug("Image " + imageData + " Width: " + width + ", Height: " + height); ++ LOGGER.config("Image " + imageData + " Width: " + width + ", Height: " + height); + if (width == null || height == null) + { + return; +@@ -1313,7 +1310,7 @@ public abstract class OfficeDocumentReportTarget extends AbstractReportTarget + + if (imageAreaWidthVal == null || imageAreaHeightVal == null) + { +- LOGGER.debug("Image data returned from context is invalid. Maybe this is not an image?"); ++ LOGGER.config("Image data returned from context is invalid. Maybe this is not an image?"); + return; + } + else +@@ -1410,7 +1407,7 @@ public abstract class OfficeDocumentReportTarget extends AbstractReportTarget + } + else + { +- LOGGER.debug("There is no image-context, so we have to rely on the image's natural bounds. " + "This may go awfully wrong."); ++ LOGGER.config("There is no image-context, so we have to rely on the image's natural bounds. " + "This may go awfully wrong."); + imageAreaWidthVal = image.getWidth(); + imageAreaHeightVal = image.getHeight(); + } +@@ -1427,7 +1424,7 @@ public abstract class OfficeDocumentReportTarget extends AbstractReportTarget + frameList.setAttribute(OfficeNamespaces.SVG_NS, "y", posY.getValue() + posY.getType().getType()); + + +- LOGGER.debug("Image " + imageData + " A-Width: " + imageAreaWidthVal + ", A-Height: " + imageAreaHeightVal); ++ LOGGER.config("Image " + imageData + " A-Width: " + imageAreaWidthVal + ", A-Height: " + imageAreaHeightVal); + + if (imageAreaWidthVal != null) + { +diff --git a/reportbuilder/java/org/libreoffice/report/pentaho/output/OleProducer.java b/reportbuilder/java/org/libreoffice/report/pentaho/output/OleProducer.java +index 2010a189be1d..27f3c25a4b4b 100644 +--- a/reportbuilder/java/org/libreoffice/report/pentaho/output/OleProducer.java ++++ b/reportbuilder/java/org/libreoffice/report/pentaho/output/OleProducer.java +@@ -32,14 +32,12 @@ import org.libreoffice.report.pentaho.PentahoReportEngineMetaData; + import java.io.IOException; + + import java.util.List; +- +-import org.apache.commons.logging.Log; +-import org.apache.commons.logging.LogFactory; ++import java.util.logging.Logger; + + public class OleProducer + { + +- private static final Log LOGGER = LogFactory.getLog(OleProducer.class); ++ private static final Logger LOGGER = Logger.getLogger(OleProducer.class.getName()); + private final InputRepository inputRepository; + private final OutputRepository outputRepository; + private final DefaultNameGenerator nameGenerator; +@@ -100,16 +98,16 @@ public class OleProducer + } + catch (ReportExecutionException ex) + { +- LOGGER.error("ReportProcessing failed", ex); ++ LOGGER.severe("ReportProcessing failed: " + ex); + } + catch (IOException ex) + { +- LOGGER.error("ReportProcessing failed", ex); ++ LOGGER.severe("ReportProcessing failed: " + ex); + } + } + catch (IOException ex) + { +- LOGGER.error("ReportProcessing failed", ex); ++ LOGGER.severe("ReportProcessing failed: " + ex); + } finally + { + if (subInputRepository != null) +diff --git a/reportbuilder/java/org/libreoffice/report/pentaho/output/StyleUtilities.java b/reportbuilder/java/org/libreoffice/report/pentaho/output/StyleUtilities.java +index 2b204a4bf502..98af0c3fa076 100644 +--- a/reportbuilder/java/org/libreoffice/report/pentaho/output/StyleUtilities.java ++++ b/reportbuilder/java/org/libreoffice/report/pentaho/output/StyleUtilities.java +@@ -28,9 +28,7 @@ import org.libreoffice.report.pentaho.model.OfficeStylesCollection; + import java.util.ArrayList; + import java.util.HashSet; + import java.util.Set; +- +-import org.apache.commons.logging.Log; +-import org.apache.commons.logging.LogFactory; ++import java.util.logging.Logger; + + import org.jfree.report.ReportProcessingException; + import org.jfree.report.structure.Element; +@@ -46,7 +44,7 @@ import org.jfree.report.util.AttributeNameGenerator; + public class StyleUtilities + { + +- private static final Log LOGGER = LogFactory.getLog(StyleUtilities.class); ++ private static final Logger LOGGER = Logger.getLogger(StyleUtilities.class.getName()); + private static final String STYLE = "style"; + + private StyleUtilities() +@@ -180,7 +178,7 @@ public class StyleUtilities + } + else if (styleParent != null) + { +- LOGGER.warn("Inconsistent styles: " + styleFamily + ":" + styleParent + " does not exist."); ++ LOGGER.warning("Inconsistent styles: " + styleFamily + ":" + styleParent + " does not exist."); + } + return preStyle; + } +@@ -301,7 +299,7 @@ public class StyleUtilities + } + else + { +- LOGGER.warn("Dangling data style: " + styleName); ++ LOGGER.warning("Dangling data style: " + styleName); + derivedStyle = null; + } + } +diff --git a/reportbuilder/java/org/libreoffice/report/pentaho/output/spreadsheet/SpreadsheetRawReportTarget.java b/reportbuilder/java/org/libreoffice/report/pentaho/output/spreadsheet/SpreadsheetRawReportTarget.java +index e6c234503c22..b1d979e7b788 100644 +--- a/reportbuilder/java/org/libreoffice/report/pentaho/output/spreadsheet/SpreadsheetRawReportTarget.java ++++ b/reportbuilder/java/org/libreoffice/report/pentaho/output/spreadsheet/SpreadsheetRawReportTarget.java +@@ -305,7 +305,7 @@ public class SpreadsheetRawReportTarget extends OfficeDocumentReportTarget + } + catch (IOException ex) + { +- LOGGER.error("ReportProcessing failed", ex); ++ LOGGER.severe("ReportProcessing failed: " + ex); + } + } + } +diff --git a/reportbuilder/java/org/libreoffice/report/pentaho/parser/office/DocumentContentReadHandler.java b/reportbuilder/java/org/libreoffice/report/pentaho/parser/office/DocumentContentReadHandler.java +index 6d36eb6f9ea5..65a48252e69f 100644 +--- a/reportbuilder/java/org/libreoffice/report/pentaho/parser/office/DocumentContentReadHandler.java ++++ b/reportbuilder/java/org/libreoffice/report/pentaho/parser/office/DocumentContentReadHandler.java +@@ -22,8 +22,7 @@ import org.libreoffice.report.pentaho.model.OfficeDocument; + import org.libreoffice.report.pentaho.model.OfficeStylesCollection; + import org.libreoffice.report.pentaho.parser.style.OfficeStylesReadHandler; + +-import org.apache.commons.logging.Log; +-import org.apache.commons.logging.LogFactory; ++import java.util.logging.Logger; + + import org.jfree.report.JFreeReport; + +@@ -49,7 +48,7 @@ import org.xml.sax.SAXException; + public class DocumentContentReadHandler extends AbstractXmlReadHandler + { + +- private static final Log LOGGER = LogFactory.getLog(DocumentContentReadHandler.class); ++ private static final Logger LOGGER = Logger.getLogger(DocumentContentReadHandler.class.getName()); + private OfficeDocument report; + private FontFaceDeclsReadHandler fontFaceReadHandler; + private BodyReadHandler bodyReadHandler; +@@ -98,12 +97,12 @@ public class DocumentContentReadHandler extends AbstractXmlReadHandler + catch (ResourceKeyCreationException e) + { + // ignore .. +- LOGGER.debug("Failed to create resource-key for 'styles.xml'. Ignoring.", e); ++ LOGGER.config("Failed to create resource-key for 'styles.xml'. Ignoring: " + e); + } + catch (ResourceException e) + { + // ignore .. +- LOGGER.debug("Failed to parse resource for 'styles.xml'. Ignoring.", e); ++ LOGGER.config("Failed to parse resource for 'styles.xml'. Ignoring: " + e); + } + + return new OfficeStylesCollection(); +@@ -135,12 +134,12 @@ public class DocumentContentReadHandler extends AbstractXmlReadHandler + catch (ResourceKeyCreationException e) + { + // ignore .. +- LOGGER.debug("Failed to create resource-key for 'content.xml'. Ignoring."); ++ LOGGER.config("Failed to create resource-key for 'content.xml'. Ignoring."); + } + catch (ResourceException e) + { + // ignore .. +- LOGGER.debug("Failed to parse resource for 'content.xml'. Ignoring."); ++ LOGGER.config("Failed to parse resource for 'content.xml'. Ignoring."); + } + return new OfficeDocument(); + +diff --git a/solenv/flatpak-manifest.in b/solenv/flatpak-manifest.in +index d5699baefb90..8610fa05d6f5 100644 +--- a/solenv/flatpak-manifest.in ++++ b/solenv/flatpak-manifest.in +@@ -543,13 +543,6 @@ + "dest": "external/tarballs", + "dest-filename": "beeca87be45ec87d241ddd0e1bad80c1-bsh-2.0b6-src.zip" + }, +- { +- "url": "https://dev-www.libreoffice.org/src/commons-logging-1.2-src.tar.gz", +- "sha256": "49665da5a60d033e6dff40fe0a7f9173e886ae859ce6096c1afe34c48b677c81", +- "type": "file", +- "dest": "external/tarballs", +- "dest-filename": "commons-logging-1.2-src.tar.gz" +- }, + { + "url": "https://dev-www.libreoffice.org/src/ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip", + "sha256": "233f66e8d25c5dd971716d4200203a612a407649686ef3b52075d04b4c9df0dd", +diff --git a/swext/mediawiki/src/THIRDPARTYLICENSEREADME.html b/swext/mediawiki/src/THIRDPARTYLICENSEREADME.html +index fbd8b0bfdca0..877661330b6b 100644 +--- a/swext/mediawiki/src/THIRDPARTYLICENSEREADME.html ++++ b/swext/mediawiki/src/THIRDPARTYLICENSEREADME.html +@@ -10,27 +10,6 @@ DO NOT TRANSLATE OR LOCALIZE THIS DOCUMENT
+
+

    + +-
  • The Apache Software Foundation +- +- +-
  • +-
  • The Apache Software Foundation +- +- +-
  • +-
  • The Apache Software Foundation +- +- +-
  • +
  • The Apache Software Foundation + +
      +@@ -51,34 +30,6 @@ Foundation +
      The following software may be + included in this product: Jakarta Commons Codec; Use of any of this + software is governed by the terms of the license below:
      +-

      The Apache Software +-Foundation
      +-

      +-

      Commons Codec
      +-

      +-
                                       Apache License
      Version 2.0, January 2004
      http://www.apache.org/licenses/

      TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

      1. Definitions.

      "License" shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.

      "Licensor" shall mean the copyright owner or entity authorized by
      the copyright owner that is granting the License.

      "Legal Entity" shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      "control" means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.

      "You" (or "Your") shall mean an individual or Legal Entity
      exercising permissions granted by this License.

      "Source" form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.

      "Object" form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.

      "Work" shall mean the work of authorship, whether in Source or
      Object form, made available under the License, as indicated by a
      copyright notice that is included in or attached to the work
      (an example is provided in the Appendix below).

      "Derivative Works" shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.

      "Contribution" shall mean any work of authorship, including
      the original version of the Work and any modifications or additions
      to that Work or Derivative Works thereof, that is intentionally
      submitted to Licensor for inclusion in the Work by the copyright owner
      or by an individual or Legal Entity authorized to submit on behalf of
      the copyright owner. For the purposes of this definition, "submitted"
      means any form of electronic, verbal, or written communication sent
      to the Licensor or its representatives, including but not limited to
      communication on electronic mailing lists, source code control systems,
      and issue tracking systems that are managed by, or on behalf of, the
      Licensor for the purpose of discussing and improving the Work, but
      excluding communication that is conspicuously marked or otherwise
      designated in writing by the copyright owner as "Not a Contribution."

      "Contributor" shall mean Licensor and any individual or Legal Entity
      on behalf of whom a Contribution has been received by Licensor and
      subsequently incorporated within the Work.

      2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.

      3. Grant of Patent License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      (except as stated in this section) patent license to make, have made,
      use, offer to sell, sell, import, and otherwise transfer the Work,
      where such license applies only to those patent claims licensable
      by such Contributor that are necessarily infringed by their
      Contribution(s) alone or by combination of their Contribution(s)
      with the Work to which such Contribution(s) was submitted. If You
      institute patent litigation against any entity (including a
      cross-claim or counterclaim in a lawsuit) alleging that the Work
      or a Contribution incorporated within the Work constitutes direct
      or contributory patent infringement, then any patent licenses
      granted to You under this License for that Work shall terminate
      as of the date such litigation is filed.

      4. Redistribution. You may reproduce and distribute copies of the
      Work or Derivative Works thereof in any medium, with or without
      modifications, and in Source or Object form, provided that You
      meet the following conditions:

      (a) You must give any other recipients of the Work or
      Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices
      stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works
      that You distribute, all copyright, patent, trademark, and
      attribution notices from the Source form of the Work,
      excluding those notices that do not pertain to any part of
      the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its
      distribution, then any Derivative Works that You distribute must
      include a readable copy of the attribution notices contained
      within such NOTICE file, excluding those notices that do not
      pertain to any part of the Derivative Works, in at least one
      of the following places: within a NOTICE text file distributed
      as part of the Derivative Works; within the Source form or
      documentation, if provided along with the Derivative Works; or,
      within a display generated by the Derivative Works, if and
      wherever such third-party notices normally appear. The contents
      of the NOTICE file are for informational purposes only and
      do not modify the License. You may add Your own attribution
      notices within Derivative Works that You distribute, alongside
      or as an addendum to the NOTICE text from the Work, provided
      that such additional attribution notices cannot be construed
      as modifying the License.

      You may add Your own copyright statement to Your modifications and
      may provide additional or different license terms and conditions
      for use, reproduction, or distribution of Your modifications, or
      for any such Derivative Works as a whole, provided Your use,
      reproduction, and distribution of the Work otherwise complies with
      the conditions stated in this License.

      5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.

      6. Trademarks. This License does not grant permission to use the trade
      names, trademarks, service marks, or product names of the Licensor,
      except as required for reasonable and customary use in describing the
      origin of the Work and reproducing the content of the NOTICE file.

      7. Disclaimer of Warranty. Unless required by applicable law or
      agreed to in writing, Licensor provides the Work (and each
      Contributor provides its Contributions) on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      implied, including, without limitation, any warranties or conditions
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
      PARTICULAR PURPOSE. You are solely responsible for determining the
      appropriateness of using or redistributing the Work and assume any
      risks associated with Your exercise of permissions under this License.

      8. Limitation of Liability. In no event and under no legal theory,
      whether in tort (including negligence), contract, or otherwise,
      unless required by applicable law (such as deliberate and grossly
      negligent acts) or agreed to in writing, shall any Contributor be
      liable to You for damages, including any direct, indirect, special,
      incidental, or consequential damages of any character arising as a
      result of this License or out of the use or inability to use the
      Work (including but not limited to damages for loss of goodwill,
      work stoppage, computer failure or malfunction, or any and all
      other commercial damages or losses), even if such Contributor
      has been advised of the possibility of such damages.

      9. Accepting Warranty or Additional Liability. While redistributing
      the Work or Derivative Works thereof, You may choose to offer,
      and charge a fee for, acceptance of support, warranty, indemnity,
      or other liability obligations and/or rights consistent with this
      License. However, in accepting such obligations, You may act only
      on Your own behalf and on Your sole responsibility, not on behalf
      of any other Contributor, and only if You agree to indemnify,
      defend, and hold each Contributor harmless for any liability
      incurred by, or claims asserted against, such Contributor by reason
      of your accepting any such warranty or additional liability.

      END OF TERMS AND CONDITIONS

      APPENDIX: How to apply the Apache License to your work.

      To apply the Apache License to your work, attach the following
      boilerplate notice, with the fields enclosed by brackets "[]"
      replaced with your own identifying information. (Don't include
      the brackets!) The text should be enclosed in the appropriate
      comment syntax for the file format. We also recommend that a
      file or class name and description of purpose be included on the
      same "printed page" as the copyright notice for easier
      identification within third-party archives.

      Copyright [yyyy] [name of copyright owner]

      Licensed under the Apache License, Version 2.0 (the "License");
      you may not use this file except in compliance with the License.
      You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

      Unless required by applicable law or agreed to in writing, software
      distributed under the License is distributed on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      See the License for the specific language governing permissions and
      limitations under the License.

      +-
      The following software may be +-included in this product: Jakarta Commons HTTP Client 2; Use of any of +-this +-software is governed by the terms of the license below:
      +-

      The Apache Software +-Foundation
      +-

      +-

      Commons HTTP Client
      +-

      +-
                                       Apache License
      Version 2.0, January 2004
      http://www.apache.org/licenses/

      TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

      1. Definitions.

      "License" shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.

      "Licensor" shall mean the copyright owner or entity authorized by
      the copyright owner that is granting the License.

      "Legal Entity" shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      "control" means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.

      "You" (or "Your") shall mean an individual or Legal Entity
      exercising permissions granted by this License.

      "Source" form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.

      "Object" form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.

      "Work" shall mean the work of authorship, whether in Source or
      Object form, made available under the License, as indicated by a
      copyright notice that is included in or attached to the work
      (an example is provided in the Appendix below).

      "Derivative Works" shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.

      "Contribution" shall mean any work of authorship, including
      the original version of the Work and any modifications or additions
      to that Work or Derivative Works thereof, that is intentionally
      submitted to Licensor for inclusion in the Work by the copyright owner
      or by an individual or Legal Entity authorized to submit on behalf of
      the copyright owner. For the purposes of this definition, "submitted"
      means any form of electronic, verbal, or written communication sent
      to the Licensor or its representatives, including but not limited to
      communication on electronic mailing lists, source code control systems,
      and issue tracking systems that are managed by, or on behalf of, the
      Licensor for the purpose of discussing and improving the Work, but
      excluding communication that is conspicuously marked or otherwise
      designated in writing by the copyright owner as "Not a Contribution."

      "Contributor" shall mean Licensor and any individual or Legal Entity
      on behalf of whom a Contribution has been received by Licensor and
      subsequently incorporated within the Work.

      2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.

      3. Grant of Patent License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      (except as stated in this section) patent license to make, have made,
      use, offer to sell, sell, import, and otherwise transfer the Work,
      where such license applies only to those patent claims licensable
      by such Contributor that are necessarily infringed by their
      Contribution(s) alone or by combination of their Contribution(s)
      with the Work to which such Contribution(s) was submitted. If You
      institute patent litigation against any entity (including a
      cross-claim or counterclaim in a lawsuit) alleging that the Work
      or a Contribution incorporated within the Work constitutes direct
      or contributory patent infringement, then any patent licenses
      granted to You under this License for that Work shall terminate
      as of the date such litigation is filed.

      4. Redistribution. You may reproduce and distribute copies of the
      Work or Derivative Works thereof in any medium, with or without
      modifications, and in Source or Object form, provided that You
      meet the following conditions:

      (a) You must give any other recipients of the Work or
      Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices
      stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works
      that You distribute, all copyright, patent, trademark, and
      attribution notices from the Source form of the Work,
      excluding those notices that do not pertain to any part of
      the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its
      distribution, then any Derivative Works that You distribute must
      include a readable copy of the attribution notices contained
      within such NOTICE file, excluding those notices that do not
      pertain to any part of the Derivative Works, in at least one
      of the following places: within a NOTICE text file distributed
      as part of the Derivative Works; within the Source form or
      documentation, if provided along with the Derivative Works; or,
      within a display generated by the Derivative Works, if and
      wherever such third-party notices normally appear. The contents
      of the NOTICE file are for informational purposes only and
      do not modify the License. You may add Your own attribution
      notices within Derivative Works that You distribute, alongside
      or as an addendum to the NOTICE text from the Work, provided
      that such additional attribution notices cannot be construed
      as modifying the License.

      You may add Your own copyright statement to Your modifications and
      may provide additional or different license terms and conditions
      for use, reproduction, or distribution of Your modifications, or
      for any such Derivative Works as a whole, provided Your use,
      reproduction, and distribution of the Work otherwise complies with
      the conditions stated in this License.

      5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.

      6. Trademarks. This License does not grant permission to use the trade
      names, trademarks, service marks, or product names of the Licensor,
      except as required for reasonable and customary use in describing the
      origin of the Work and reproducing the content of the NOTICE file.

      7. Disclaimer of Warranty. Unless required by applicable law or
      agreed to in writing, Licensor provides the Work (and each
      Contributor provides its Contributions) on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      implied, including, without limitation, any warranties or conditions
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
      PARTICULAR PURPOSE. You are solely responsible for determining the
      appropriateness of using or redistributing the Work and assume any
      risks associated with Your exercise of permissions under this License.

      8. Limitation of Liability. In no event and under no legal theory,
      whether in tort (including negligence), contract, or otherwise,
      unless required by applicable law (such as deliberate and grossly
      negligent acts) or agreed to in writing, shall any Contributor be
      liable to You for damages, including any direct, indirect, special,
      incidental, or consequential damages of any character arising as a
      result of this License or out of the use or inability to use the
      Work (including but not limited to damages for loss of goodwill,
      work stoppage, computer failure or malfunction, or any and all
      other commercial damages or losses), even if such Contributor
      has been advised of the possibility of such damages.

      9. Accepting Warranty or Additional Liability. While redistributing
      the Work or Derivative Works thereof, You may choose to offer,
      and charge a fee for, acceptance of support, warranty, indemnity,
      or other liability obligations and/or rights consistent with this
      License. However, in accepting such obligations, You may act only
      on Your own behalf and on Your sole responsibility, not on behalf
      of any other Contributor, and only if You agree to indemnify,
      defend, and hold each Contributor harmless for any liability
      incurred by, or claims asserted against, such Contributor by reason
      of your accepting any such warranty or additional liability.

      END OF TERMS AND CONDITIONS

      APPENDIX: How to apply the Apache License to your work.

      To apply the Apache License to your work, attach the following
      boilerplate notice, with the fields enclosed by brackets "[]"
      replaced with your own identifying information. (Don't include
      the brackets!) The text should be enclosed in the appropriate
      comment syntax for the file format. We also recommend that a
      file or class name and description of purpose be included on the
      same "printed page" as the copyright notice for easier
      identification within third-party archives.

      Copyright [yyyy] [name of copyright owner]

      Licensed under the Apache License, Version 2.0 (the "License");
      you may not use this file except in compliance with the License.
      You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

      Unless required by applicable law or agreed to in writing, software
      distributed under the License is distributed on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      See the License for the specific language governing permissions and
      limitations under the License.

      +-
      The following software may be +-included in this product: Jakarta Commons Lang 2.1; Use of any of this +-software is governed by the terms of the license below:
      +-

      The Apache Software +-Foundation
      +-

      +-

      Commons Lang
      +-

      +-
                                       Apache License
      Version 2.0, January 2004
      http://www.apache.org/licenses/

      TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

      1. Definitions.

      "License" shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.

      "Licensor" shall mean the copyright owner or entity authorized by
      the copyright owner that is granting the License.

      "Legal Entity" shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      "control" means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.

      "You" (or "Your") shall mean an individual or Legal Entity
      exercising permissions granted by this License.

      "Source" form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.

      "Object" form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.

      "Work" shall mean the work of authorship, whether in Source or
      Object form, made available under the License, as indicated by a
      copyright notice that is included in or attached to the work
      (an example is provided in the Appendix below).

      "Derivative Works" shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.

      "Contribution" shall mean any work of authorship, including
      the original version of the Work and any modifications or additions
      to that Work or Derivative Works thereof, that is intentionally
      submitted to Licensor for inclusion in the Work by the copyright owner
      or by an individual or Legal Entity authorized to submit on behalf of
      the copyright owner. For the purposes of this definition, "submitted"
      means any form of electronic, verbal, or written communication sent
      to the Licensor or its representatives, including but not limited to
      communication on electronic mailing lists, source code control systems,
      and issue tracking systems that are managed by, or on behalf of, the
      Licensor for the purpose of discussing and improving the Work, but
      excluding communication that is conspicuously marked or otherwise
      designated in writing by the copyright owner as "Not a Contribution."

      "Contributor" shall mean Licensor and any individual or Legal Entity
      on behalf of whom a Contribution has been received by Licensor and
      subsequently incorporated within the Work.

      2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.

      3. Grant of Patent License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      (except as stated in this section) patent license to make, have made,
      use, offer to sell, sell, import, and otherwise transfer the Work,
      where such license applies only to those patent claims licensable
      by such Contributor that are necessarily infringed by their
      Contribution(s) alone or by combination of their Contribution(s)
      with the Work to which such Contribution(s) was submitted. If You
      institute patent litigation against any entity (including a
      cross-claim or counterclaim in a lawsuit) alleging that the Work
      or a Contribution incorporated within the Work constitutes direct
      or contributory patent infringement, then any patent licenses
      granted to You under this License for that Work shall terminate
      as of the date such litigation is filed.

      4. Redistribution. You may reproduce and distribute copies of the
      Work or Derivative Works thereof in any medium, with or without
      modifications, and in Source or Object form, provided that You
      meet the following conditions:

      (a) You must give any other recipients of the Work or
      Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices
      stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works
      that You distribute, all copyright, patent, trademark, and
      attribution notices from the Source form of the Work,
      excluding those notices that do not pertain to any part of
      the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its
      distribution, then any Derivative Works that You distribute must
      include a readable copy of the attribution notices contained
      within such NOTICE file, excluding those notices that do not
      pertain to any part of the Derivative Works, in at least one
      of the following places: within a NOTICE text file distributed
      as part of the Derivative Works; within the Source form or
      documentation, if provided along with the Derivative Works; or,
      within a display generated by the Derivative Works, if and
      wherever such third-party notices normally appear. The contents
      of the NOTICE file are for informational purposes only and
      do not modify the License. You may add Your own attribution
      notices within Derivative Works that You distribute, alongside
      or as an addendum to the NOTICE text from the Work, provided
      that such additional attribution notices cannot be construed
      as modifying the License.

      You may add Your own copyright statement to Your modifications and
      may provide additional or different license terms and conditions
      for use, reproduction, or distribution of Your modifications, or
      for any such Derivative Works as a whole, provided Your use,
      reproduction, and distribution of the Work otherwise complies with
      the conditions stated in this License.

      5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.

      6. Trademarks. This License does not grant permission to use the trade
      names, trademarks, service marks, or product names of the Licensor,
      except as required for reasonable and customary use in describing the
      origin of the Work and reproducing the content of the NOTICE file.

      7. Disclaimer of Warranty. Unless required by applicable law or
      agreed to in writing, Licensor provides the Work (and each
      Contributor provides its Contributions) on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      implied, including, without limitation, any warranties or conditions
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
      PARTICULAR PURPOSE. You are solely responsible for determining the
      appropriateness of using or redistributing the Work and assume any
      risks associated with Your exercise of permissions under this License.

      8. Limitation of Liability. In no event and under no legal theory,
      whether in tort (including negligence), contract, or otherwise,
      unless required by applicable law (such as deliberate and grossly
      negligent acts) or agreed to in writing, shall any Contributor be
      liable to You for damages, including any direct, indirect, special,
      incidental, or consequential damages of any character arising as a
      result of this License or out of the use or inability to use the
      Work (including but not limited to damages for loss of goodwill,
      work stoppage, computer failure or malfunction, or any and all
      other commercial damages or losses), even if such Contributor
      has been advised of the possibility of such damages.

      9. Accepting Warranty or Additional Liability. While redistributing
      the Work or Derivative Works thereof, You may choose to offer,
      and charge a fee for, acceptance of support, warranty, indemnity,
      or other liability obligations and/or rights consistent with this
      License. However, in accepting such obligations, You may act only
      on Your own behalf and on Your sole responsibility, not on behalf
      of any other Contributor, and only if You agree to indemnify,
      defend, and hold each Contributor harmless for any liability
      incurred by, or claims asserted against, such Contributor by reason
      of your accepting any such warranty or additional liability.

      END OF TERMS AND CONDITIONS

      APPENDIX: How to apply the Apache License to your work.

      To apply the Apache License to your work, attach the following
      boilerplate notice, with the fields enclosed by brackets "[]"
      replaced with your own identifying information. (Don't include
      the brackets!) The text should be enclosed in the appropriate
      comment syntax for the file format. We also recommend that a
      file or class name and description of purpose be included on the
      same "printed page" as the copyright notice for easier
      identification within third-party archives.

      Copyright [yyyy] [name of copyright owner]

      Licensed under the Apache License, Version 2.0 (the "License");
      you may not use this file except in compliance with the License.
      You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

      Unless required by applicable law or agreed to in writing, software
      distributed under the License is distributed on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      See the License for the specific language governing permissions and
      limitations under the License.

      +-
      The following software may be +-included in this product: Jakarta Commons Codec; Use of any of this +-software is governed by the terms of the license below:
      +

      The Apache Software + Foundation
      +

      +-- +2.30.2 + diff --git a/SOURCES/0001-Only-pass-I.-arguments-to-g-ir-scanner-by-using-pkg-.patch b/SOURCES/0001-Only-pass-I.-arguments-to-g-ir-scanner-by-using-pkg-.patch new file mode 100644 index 0000000..917dd6a --- /dev/null +++ b/SOURCES/0001-Only-pass-I.-arguments-to-g-ir-scanner-by-using-pkg-.patch @@ -0,0 +1,36 @@ +From caddaaa6afd2709f72dfb6160a485d405ac03966 Mon Sep 17 00:00:00 2001 +From: Rico Tzschichholz +Date: Tue, 11 Jul 2023 20:21:15 +0200 +Subject: [PATCH] Only pass -I... arguments to g-ir-scanner by using + pkg-config's --cflags-only-I +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Otherwise it is possible that e.g. -Wl,--export-dynamic is passed which is fatal. + +Change-Id: I1735641e3149c86456e1164b67509a719e09d446 +Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154340 +Reviewed-by: René Engelhard +Tested-by: Caolán McNamara +Reviewed-by: Caolán McNamara +--- + sysui/CustomTarget_share.mk | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/sysui/CustomTarget_share.mk b/sysui/CustomTarget_share.mk +index b86521a3a80f..912048b2ad66 100644 +--- a/sysui/CustomTarget_share.mk ++++ b/sysui/CustomTarget_share.mk +@@ -167,7 +167,7 @@ $(share_WORKDIR)/%/LOKDocView-0.1.gir: \ + mkdir -p $(dir $@) + PYTHONWARNINGS=default g-ir-scanner "${SRCDIR}/include/LibreOfficeKit/LibreOfficeKitGtk.h" \ + "${SRCDIR}/libreofficekit/source/gtk/lokdocview.cxx" \ +- `${PKG_CONFIG} --cflags gobject-introspection-1.0 gtk+-3.0` \ ++ `${PKG_CONFIG} --cflags-only-I gobject-introspection-1.0 gtk+-3.0` \ + -I"${SRCDIR}/include/" \ + --include=GLib-2.0 --include=GObject-2.0 --include=Gio-2.0 \ + --library=libreofficekitgtk --library-path="${INSTDIR}/program" \ +-- +2.41.0 + diff --git a/SOURCES/0001-Replace-inet_ntoa-with-inet_ntop.patch b/SOURCES/0001-Replace-inet_ntoa-with-inet_ntop.patch new file mode 100644 index 0000000..ed8ab7e --- /dev/null +++ b/SOURCES/0001-Replace-inet_ntoa-with-inet_ntop.patch @@ -0,0 +1,162 @@ +From 366e9237399a948d2ef616b758d390bd7d0978a5 Mon Sep 17 00:00:00 2001 +From: Stephan Bergmann +Date: Mon, 31 May 2021 09:36:28 +0200 +Subject: [PATCH] Replace inet_ntoa with inet_ntop + +...as inet_ntoa is potentially not thread-safe; and add a test + +Change-Id: I9df945b006ba7194c3b1444c4886101c08339ad0 +Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116425 +Tested-by: Jenkins +Reviewed-by: Stephan Bergmann +(cherry picked from commit 33bf4f0bcf941ee4609f558442035514f54cbc8a) + +and + +Replace inet_addr with inet_pton + +...as inet_addr is deprecated (it does not allow to distinguish successful +return for "255.255.255.255" from -1 error return); and update tests + +Change-Id: I605cb2ba18fe9bd11d2d68c8f1c94271c4503509 +Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116441 +Tested-by: Jenkins +Reviewed-by: Stephan Bergmann +(cherry picked from commit 1fef071c01caf6c293dd941ee7c8340e6894afc3) + +fix leak in SocketTest + +Change-Id: I8c5e2d4c4687beab08876fe3e945d19a1629bc36 +Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116514 +Tested-by: Jenkins +Reviewed-by: Noel Grandin +(cherry picked from commit 313eaf979ea2d69e4ffa88a5e87cc09ffe0ff088) +--- + sal/CppunitTest_sal_osl.mk | 1 + + sal/osl/unx/socket.cxx | 16 +++++++---- + sal/qa/osl/socket.cxx | 58 ++++++++++++++++++++++++++++++++++++++ + 3 files changed, 70 insertions(+), 5 deletions(-) + create mode 100644 sal/qa/osl/socket.cxx + +diff --git a/sal/CppunitTest_sal_osl.mk b/sal/CppunitTest_sal_osl.mk +index 2e4b77509f56..d8c2627d9e0f 100644 +--- a/sal/CppunitTest_sal_osl.mk ++++ b/sal/CppunitTest_sal_osl.mk +@@ -23,6 +23,7 @@ $(eval $(call gb_CppunitTest_add_exception_objects,sal_osl,\ + sal/qa/osl/process/osl_Thread \ + sal/qa/osl/profile/osl_old_testprofile \ + sal/qa/osl/setthreadname/test-setthreadname \ ++ sal/qa/osl/socket \ + )) + + $(eval $(call gb_CppunitTest_use_libraries,sal_osl,\ +diff --git a/sal/osl/unx/socket.cxx b/sal/osl/unx/socket.cxx +index 56a8f6cd63ac..9fafc6d1db81 100644 +--- a/sal/osl/unx/socket.cxx ++++ b/sal/osl/unx/socket.cxx +@@ -437,7 +437,10 @@ oslSocketAddr SAL_CALL osl_createInetBroadcastAddr ( + &pDottedAddr, strDottedAddr->buffer, strDottedAddr->length, + RTL_TEXTENCODING_UTF8, OUSTRING_TO_OSTRING_CVTFLAGS); + +- nAddr = inet_addr (pDottedAddr->buffer); ++ in_addr buf; ++ if (inet_pton (AF_INET, pDottedAddr->buffer, &buf) == 1) { ++ nAddr = buf.s_addr; ++ } + rtl_string_release (pDottedAddr); + } + +@@ -505,11 +508,11 @@ oslSocketAddr osl_psz_createInetSocketAddr ( + sal_Int32 Port) + { + oslSocketAddr pAddr = nullptr; +- sal_Int32 Addr = inet_addr(pszDottedAddr); +- if(Addr != -1) ++ in_addr buf; ++ if(inet_pton(AF_INET, pszDottedAddr, &buf) == 1) + { + /* valid dotted addr */ +- pAddr = createSocketAddrWithFamily( osl_Socket_FamilyInet, htons(Port) , Addr ); ++ pAddr = createSocketAddrWithFamily( osl_Socket_FamilyInet, htons(Port) , buf.s_addr ); + } + return pAddr; + } +@@ -1090,7 +1093,10 @@ oslSocketResult SAL_CALL osl_getDottedInetAddrOfSocketAddr(oslSocketAddr Addr, r + return osl_Socket_Error; + } + +- rtl_uString_newFromAscii(ustrDottedInetAddr,inet_ntoa(pSystemInetAddr->sin_addr)); ++ char buf[INET_ADDRSTRLEN]; ++ auto const text = inet_ntop(AF_INET, &pSystemInetAddr->sin_addr, buf, INET_ADDRSTRLEN); ++ assert(text != nullptr); ++ rtl_uString_newFromAscii(ustrDottedInetAddr,text); + + return osl_Socket_Ok; + +diff --git a/sal/qa/osl/socket.cxx b/sal/qa/osl/socket.cxx +new file mode 100644 +index 000000000000..ed31c9ede7ae +--- /dev/null ++++ b/sal/qa/osl/socket.cxx +@@ -0,0 +1,58 @@ ++/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ ++/* ++ * This file is part of the LibreOffice project. ++ * ++ * This Source Code Form is subject to the terms of the Mozilla Public ++ * License, v. 2.0. If a copy of the MPL was not distributed with this ++ * file, You can obtain one at http://mozilla.org/MPL/2.0/. ++ */ ++ ++#include ++#include ++#include ++ ++#include ++#include ++ ++namespace ++{ ++class SocketTest : public CppUnit::TestFixture ++{ ++ CPPUNIT_TEST_SUITE(SocketTest); ++ CPPUNIT_TEST(test_createInetSocketAddr); ++ CPPUNIT_TEST(test_createInetBroadcastAddr); ++ CPPUNIT_TEST_SUITE_END(); ++ ++ void test_createInetSocketAddr() ++ { ++ OUString const in("123.4.56.78"); ++ auto const addr = osl_createInetSocketAddr(in.pData, 100); ++ CPPUNIT_ASSERT(addr != nullptr); ++ CPPUNIT_ASSERT_EQUAL(osl_Socket_FamilyInet, osl_getFamilyOfSocketAddr(addr)); ++ OUString out; ++ auto const res = osl_getDottedInetAddrOfSocketAddr(addr, &out.pData); ++ CPPUNIT_ASSERT_EQUAL(osl_Socket_Ok, res); ++ CPPUNIT_ASSERT_EQUAL(in, out); ++ CPPUNIT_ASSERT_EQUAL(sal_Int32(100), osl_getInetPortOfSocketAddr(addr)); ++ osl_destroySocketAddr(addr); ++ } ++ ++ void test_createInetBroadcastAddr() ++ { ++ OUString const in("123.4.56.78"); ++ auto const addr = osl_createInetBroadcastAddr(in.pData, 100); ++ CPPUNIT_ASSERT(addr != nullptr); ++ CPPUNIT_ASSERT_EQUAL(osl_Socket_FamilyInet, osl_getFamilyOfSocketAddr(addr)); ++ OUString out; ++ auto const res = osl_getDottedInetAddrOfSocketAddr(addr, &out.pData); ++ CPPUNIT_ASSERT_EQUAL(osl_Socket_Ok, res); ++ CPPUNIT_ASSERT_EQUAL(OUString("123.255.255.255"), out); ++ CPPUNIT_ASSERT_EQUAL(sal_Int32(100), osl_getInetPortOfSocketAddr(addr)); ++ osl_destroySocketAddr(addr); ++ } ++}; ++ ++CPPUNIT_TEST_SUITE_REGISTRATION(SocketTest); ++} ++ ++/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ +-- +2.31.1 + diff --git a/SOURCES/0001-Resolves-rhbz-1432468-disable-opencl-by-default.patch b/SOURCES/0001-Resolves-rhbz-1432468-disable-opencl-by-default.patch new file mode 100644 index 0000000..a974295 --- /dev/null +++ b/SOURCES/0001-Resolves-rhbz-1432468-disable-opencl-by-default.patch @@ -0,0 +1,26 @@ +From 87b90b6fbf010effd44ef0e2bd3d75b27562a82b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= +Date: Mon, 27 Mar 2017 11:47:01 +0100 +Subject: [PATCH] Resolves: rhbz#1432468 disable opencl by default + +Change-Id: Ie037fcabdd219f195425979dd721501fb5527573 +--- + officecfg/registry/schema/org/openoffice/Office/Common.xcs | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/officecfg/registry/schema/org/openoffice/Office/Common.xcs b/officecfg/registry/schema/org/openoffice/Office/Common.xcs +index 99b4104f6499..ef7ada84c2f3 100644 +--- a/officecfg/registry/schema/org/openoffice/Office/Common.xcs ++++ b/officecfg/registry/schema/org/openoffice/Office/Common.xcs +@@ -5652,7 +5652,7 @@ + Determines whether OpenCL can be used, when available, to speed up + some operations. + +- true ++ false + + + +-- +2.29.2 + diff --git a/SOURCES/0001-Resolves-tdf-140250-don-t-share-adjustments-between-.patch b/SOURCES/0001-Resolves-tdf-140250-don-t-share-adjustments-between-.patch new file mode 100644 index 0000000..97e4abe --- /dev/null +++ b/SOURCES/0001-Resolves-tdf-140250-don-t-share-adjustments-between-.patch @@ -0,0 +1,123 @@ +From 197efb35e6f9661ecbeac2897d36a25bc2f6433e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= +Date: Sun, 14 Nov 2021 14:59:38 +0000 +Subject: [PATCH] Resolves: tdf#140250 don't share adjustments between + differerent spinbuttons + +Change-Id: Ib684c746ff3176cf45ea9364efc12f2d6dde1f70 +--- + cui/uiconfig/ui/breaknumberoption.ui | 18 ++++++++++++++++-- + cui/uiconfig/ui/calloutpage.ui | 14 ++++++++++++-- + svx/uiconfig/ui/sidebareffect.ui | 7 ++++++- + 3 files changed, 34 insertions(+), 5 deletions(-) + +diff --git a/cui/uiconfig/ui/breaknumberoption.ui b/cui/uiconfig/ui/breaknumberoption.ui +index 2641babeeb5d..23fe294ec702 100644 +--- a/cui/uiconfig/ui/breaknumberoption.ui ++++ b/cui/uiconfig/ui/breaknumberoption.ui +@@ -9,6 +9,20 @@ + 1 + 10 + ++ ++ 2 ++ 9 ++ 1 ++ 1 ++ 10 ++ ++ ++ 2 ++ 9 ++ 1 ++ 1 ++ 10 ++ + + False + 6 +@@ -134,7 +148,7 @@ + True + start + True +- adjustment1 ++ adjustment2 + True + + +@@ -179,7 +193,7 @@ + True + start + True +- adjustment1 ++ adjustment3 + True + + +diff --git a/cui/uiconfig/ui/calloutpage.ui b/cui/uiconfig/ui/calloutpage.ui +index 87d4eff64eb4..00898dc3390c 100644 +--- a/cui/uiconfig/ui/calloutpage.ui ++++ b/cui/uiconfig/ui/calloutpage.ui +@@ -7,6 +7,16 @@ + 0.5 + 10 + ++ ++ 2400 ++ 0.5 ++ 10 ++ ++ ++ 2400 ++ 0.5 ++ 10 ++ + + True + False +@@ -231,7 +241,7 @@ + True + True + 0.00 +- adjustment1 ++ adjustment2 + 2 + True + +@@ -277,7 +287,7 @@ + True + True + 0.00 +- adjustment1 ++ adjustment3 + 2 + True + +diff --git a/svx/uiconfig/ui/sidebareffect.ui b/svx/uiconfig/ui/sidebareffect.ui +index 0e633242cd5c..1e041a2a8726 100644 +--- a/svx/uiconfig/ui/sidebareffect.ui ++++ b/svx/uiconfig/ui/sidebareffect.ui +@@ -12,6 +12,11 @@ + 1 + 10 + ++ ++ 150 ++ 1 ++ 10 ++ + + + True +@@ -195,7 +200,7 @@ + True + True + True +- adjustment1 ++ adjustment3 + + + 1 +-- +2.33.1 + diff --git a/SOURCES/0001-Resolves-tdf-145567-restore-focus-to-the-usual-frame.patch b/SOURCES/0001-Resolves-tdf-145567-restore-focus-to-the-usual-frame.patch new file mode 100644 index 0000000..cced1b7 --- /dev/null +++ b/SOURCES/0001-Resolves-tdf-145567-restore-focus-to-the-usual-frame.patch @@ -0,0 +1,63 @@ +From ea6cfca48017b76bfeb8898e6d9e47b3011a3add Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= +Date: Sat, 6 Nov 2021 21:32:21 +0000 +Subject: [PATCH] Resolves: tdf#145567 restore focus to the usual frame focus + widget + +when tearing down the start center. Don't leave the focus in an +arbitrary widget. + +Change-Id: I82c30c94121dc43b2ea1b4fbc66a0a3e79f7e664 +--- + vcl/unx/gtk3/gtk3gtkinst.cxx | 28 ++++++++++++++++++++++++++++ + 1 file changed, 28 insertions(+) + +diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx +index a5d233e2f95e..0fddb27aaa2d 100644 +--- a/vcl/unx/gtk3/gtk3gtkinst.cxx ++++ b/vcl/unx/gtk3/gtk3gtkinst.cxx +@@ -1899,6 +1899,26 @@ GdkDragAction VclToGdk(sal_Int8 dragOperation) + return eRet; + } + ++GtkWindow* get_active_window() ++{ ++ GtkWindow* pFocus = nullptr; ++ ++ GList* pList = gtk_window_list_toplevels(); ++ ++ for (GList* pEntry = pList; pEntry; pEntry = pEntry->next) ++ { ++ if (gtk_window_has_toplevel_focus(GTK_WINDOW(pEntry->data))) ++ { ++ pFocus = GTK_WINDOW(pEntry->data); ++ break; ++ } ++ } ++ ++ g_list_free(pList); ++ ++ return pFocus; ++} ++ + class GtkInstanceWidget : public virtual weld::Widget + { + protected: +@@ -16635,6 +16655,14 @@ private: + // rehook handler and let vcl cycle its own way through this widget's + // children + pFrame->AllowCycleFocusOut(); ++ ++ // tdf#145567 if the focus is in this hierarchy then, now that we are tearing down, ++ // move focus to the usual focus candidate for the frame ++ GtkWindow* pFocusWin = get_active_window(); ++ GtkWidget* pFocus = pFocusWin ? gtk_window_get_focus(pFocusWin) : nullptr; ++ bool bHasFocus = pFocus && gtk_widget_is_ancestor(pFocus, pTopLevel); ++ if (bHasFocus) ++ pFrame->GrabFocus(); + } + + static void signalUnmap(GtkWidget*, gpointer user_data) +-- +2.33.1 + diff --git a/SOURCES/0001-Revert-tdf-101630-gdrive-support-w-oAuth-and-Drive-A.patch b/SOURCES/0001-Revert-tdf-101630-gdrive-support-w-oAuth-and-Drive-A.patch new file mode 100644 index 0000000..2399026 --- /dev/null +++ b/SOURCES/0001-Revert-tdf-101630-gdrive-support-w-oAuth-and-Drive-A.patch @@ -0,0 +1,1262 @@ +From 12f14a6c9d2b5034df53646bbc57774c0c83ecaa Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= +Date: Fri, 3 Sep 2021 09:13:03 +0100 +Subject: [PATCH] Revert "tdf#101630 - gdrive support w/oAuth and Drive API v3" + +This reverts commit 854c03ebc94aae205b85d0c9d342048baf93e9a9. +--- + Repository.mk | 2 +- + config_host/config_oauth2.h.in | 8 +- + external/libcmis/UnpackedTarball_libcmis.mk | 2 - + external/libcmis/libcmis_gdrive.patch.1 | 702 ------------------ + .../libcmis_oauth_pw_as_refreshtoken.patch.1 | 185 ----- + .../data/org/openoffice/Office/Common.xcu | 2 +- + ucb/source/ucp/cmis/auth_provider.cxx | 130 +--- + ucb/source/ucp/cmis/auth_provider.hxx | 8 +- + ucb/source/ucp/cmis/cmis_content.cxx | 21 +- + ucb/source/ucp/cmis/cmis_repo_content.cxx | 4 +- + 10 files changed, 56 insertions(+), 1008 deletions(-) + delete mode 100644 external/libcmis/libcmis_gdrive.patch.1 + delete mode 100644 external/libcmis/libcmis_oauth_pw_as_refreshtoken.patch.1 + +diff --git a/Repository.mk b/Repository.mk +index 23c268775fcf..c887d9b4297d 100644 +--- a/Repository.mk ++++ b/Repository.mk +@@ -432,7 +432,7 @@ $(eval $(call gb_Helper_register_libraries_for_install,OOOLIBS,ooo, \ + ucpexpand1 \ + ucpext \ + ucpimage \ +- $(if $(ENABLE_LIBCMIS),ucpcmis1) \ ++ ucpcmis1 \ + ucptdoc1 \ + unordf \ + unoxml \ +diff --git a/config_host/config_oauth2.h.in b/config_host/config_oauth2.h.in +index 9945dda3dda5..a95015b41f3e 100644 +--- a/config_host/config_oauth2.h.in ++++ b/config_host/config_oauth2.h.in +@@ -15,13 +15,13 @@ + + + /* Google Drive settings */ +-#define GDRIVE_BASE_URL "https://www.googleapis.com/drive/v3" ++#define GDRIVE_BASE_URL "https://www.googleapis.com/drive/v2" + #define GDRIVE_CLIENT_ID "" + #define GDRIVE_CLIENT_SECRET "" +-#define GDRIVE_AUTH_URL "https://accounts.google.com/o/oauth2/v2/auth" +-#define GDRIVE_TOKEN_URL "https://oauth2.googleapis.com/token" ++#define GDRIVE_AUTH_URL "https://accounts.google.com/o/oauth2/auth" ++#define GDRIVE_TOKEN_URL "https://accounts.google.com/o/oauth2/token" + #define GDRIVE_REDIRECT_URI "urn:ietf:wg:oauth:2.0:oob" +-#define GDRIVE_SCOPE "https://www.googleapis.com/auth/drive.file" ++#define GDRIVE_SCOPE "https://www.googleapis.com/auth/drive" + + + /* Alfresco Cloud */ +diff --git a/external/libcmis/UnpackedTarball_libcmis.mk b/external/libcmis/UnpackedTarball_libcmis.mk +index 8398853e4511..a5be3078c95a 100644 +--- a/external/libcmis/UnpackedTarball_libcmis.mk ++++ b/external/libcmis/UnpackedTarball_libcmis.mk +@@ -17,8 +17,6 @@ $(eval $(call gb_UnpackedTarball_add_patches,libcmis, \ + external/libcmis/libcmis-libxml2_compatibility.patch \ + external/libcmis/0001-rename-class-GetObject-to-avoid-name-clash-on-Window.patch \ + external/libcmis/libcmis_onedrive.patch \ +- external/libcmis/libcmis_oauth_pw_as_refreshtoken.patch.1 \ +- external/libcmis/libcmis_gdrive.patch.1 \ + )) + + # vim: set noet sw=4 ts=4: +diff --git a/external/libcmis/libcmis_gdrive.patch.1 b/external/libcmis/libcmis_gdrive.patch.1 +deleted file mode 100644 +index 24ff65d1ef15..000000000000 +--- a/external/libcmis/libcmis_gdrive.patch.1 ++++ /dev/null +@@ -1,702 +0,0 @@ +-diff -ur libcmis.org/src/libcmis/gdrive-document.cxx libcmis/src/libcmis/gdrive-document.cxx +---- libcmis.org/src/libcmis/gdrive-document.cxx 2021-07-27 19:11:02.679247008 +0200 +-+++ libcmis/src/libcmis/gdrive-document.cxx 2021-07-27 19:11:18.873246420 +0200 +-@@ -145,23 +145,17 @@ +- { +- if ( !os.get( ) ) +- throw libcmis::Exception( "Missing stream" ); +-- if ( !isImmutable( ) ) +-- throw libcmis::Exception( string ( "Document " + getId( )+ +-- " is not editable" ) ); +-- string putUrl = getUploadUrl( ) + getId( ); +-- putUrl += "?uploadType=media"; +-- +-- // If it's a Google document, convert it +-- if ( isGoogleDoc( ) ) +-- putUrl += "&convert=true"; +-+ +-+ string putUrl = GDRIVE_UPLOAD_LINK + getId( ) + "?uploadType=media"; +- +- // Upload stream +- boost::shared_ptr< istream> is ( new istream ( os->rdbuf( ) ) ); +- vector headers; +- headers.push_back( string( "Content-Type: " ) + contentType ); +-+ string res; +- try +- { +-- getSession()->httpPutRequest( putUrl, *is, headers ); +-+ res = getSession()->httpPatchRequest( putUrl, *is, headers )->getStream()->str(); +- } +- catch ( const CurlException& e ) +- { +-@@ -181,35 +175,10 @@ +- { +- if ( !os.get( ) ) +- throw libcmis::Exception( "Missing stream" ); +-- +-- if ( !isImmutable( ) ) +-- throw libcmis::Exception( string ( "Document " + getId( )+ +-- " is not editable" ) ); +-- string metaUrl = getUrl( ); +-- +-- // If it's a Google document, convert it +-- if ( isGoogleDoc( ) ) +-- metaUrl += "?convert=true"; +-- +-- // Update file name meta information +-- if ( !fileName.empty( ) && fileName != getContentFilename( ) ) +-- { +-- Json metaJson; +-- Json fileJson( fileName.c_str( ) ); +-- metaJson.add("title", fileJson ); +-- +-- std::istringstream is( metaJson.toString( ) ); +-- vector headers; +-- headers.push_back( "Content-Type: application/json" ); +-- try +-- { +-- getSession()->httpPutRequest( metaUrl, is, headers ); +-- } +-- catch ( const CurlException& e ) +-- { +-- throw e.getCmisException( ); +-- } +-- } +-+ +-+ // TODO: when would the filename need an update? +-+ if (!fileName.empty() && fileName != getContentFilename()) +-+ std::cout << "filename change is not implemented in setContentStream" << std::endl; +- +- // Upload stream +- uploadStream( os, contentType ); +-@@ -251,7 +220,7 @@ +- vector< libcmis::DocumentPtr > GDriveDocument::getAllVersions( ) +- { +- vector< libcmis::DocumentPtr > revisions; +-- string versionUrl = getUrl( ) + "/revisions"; +-+ string versionUrl = GDRIVE_METADATA_LINK + getId( ) + "/revisions"; +- // Run the http request to get the properties definition +- string res; +- try +-@@ -263,7 +232,7 @@ +- throw e.getCmisException( ); +- } +- Json jsonRes = Json::parse( res ); +-- Json::JsonVector objs = jsonRes["items"].getList( ); +-+ Json::JsonVector objs = jsonRes["revisions"].getList( ); +- +- string parentId = getStringProperty( "cmis:parentId" ); +- +-diff -ur libcmis.org/src/libcmis/gdrive-folder.cxx libcmis/src/libcmis/gdrive-folder.cxx +---- libcmis.org/src/libcmis/gdrive-folder.cxx 2021-07-27 19:11:02.678247008 +0200 +-+++ libcmis/src/libcmis/gdrive-folder.cxx 2021-07-27 19:11:18.874246420 +0200 +-@@ -62,8 +62,8 @@ +- // Instead of sending multiple queries for children, +- // we send a single query to search for objects where parents +- // include the folderID. +-- string query = getSession( )->getBindingUrl( ) + +-- "/files?q=\"" + getId( ) + "\"+in+parents+and+trashed+=+false"; +-+ string query = GDRIVE_METADATA_LINK + "?q=\"" + getId( ) + "\"+in+parents+and+trashed+=+false" + +-+ "&fields=files(kind,id,name,parents,mimeType,createdTime,modifiedTime,thumbnailLink,size)"; +- +- string res; +- try +-@@ -76,7 +76,7 @@ +- } +- +- Json jsonRes = Json::parse( res ); +-- Json::JsonVector objs = jsonRes["items"].getList( ); +-+ Json::JsonVector objs = jsonRes["files"].getList( ); +- +- // Create children objects from Json objects +- for(unsigned int i = 0; i < objs.size(); i++) +-@@ -95,7 +95,7 @@ +- string GDriveFolder::uploadProperties( Json properties ) +- { +- // URL for uploading meta data +-- string metaUrl = getSession()->getBindingUrl() + "/files/"; +-+ string metaUrl = GDRIVE_METADATA_LINK + "?fields=kind,id,name,parents,mimeType,createdTime,modifiedTime"; +- +- // add parents to the properties +- properties.add( "parents", GdriveUtils::createJsonFromParentId( getId( ) ) ); +-@@ -147,9 +147,15 @@ +- +- Json propsJson = GdriveUtils::toGdriveJson( properties ); +- +-- // Add filename to properties +-- Json jsonFilename( fileName.c_str( ) ); +-- propsJson.add( "title", jsonFilename ); +-+ if(!fileName.empty()) { +-+ // use provided filename +-+ Json jsonFilename( fileName.c_str( ) ); +-+ +-+ propsJson.add( "name", jsonFilename ); +-+ } +-+ if(!contentType.empty()) { +-+ propsJson.add( "mimeType", Json(contentType.c_str())); +-+ } +- +- // Upload meta-datas +- string res = uploadProperties( propsJson); +-@@ -171,12 +177,9 @@ +- libcmis::UnfileObjects::Type /*unfile*/, +- bool /*continueOnError*/ ) +- { +-- // Object remove doesn't work with folder +-- // Using trash instead +- try +- { +-- istringstream is( "" ); +-- getSession( )->httpPostRequest( getUrl( ) + "/trash", is, "" ); +-+ getSession( )->httpDeleteRequest( GDRIVE_METADATA_LINK + getId( ) ); +- } +- catch ( const CurlException& e ) +- { +-diff -ur libcmis.org/src/libcmis/gdrive-object.cxx libcmis/src/libcmis/gdrive-object.cxx +---- libcmis.org/src/libcmis/gdrive-object.cxx 2021-07-27 19:11:02.675247009 +0200 +-+++ libcmis/src/libcmis/gdrive-object.cxx 2021-07-27 19:11:18.874246420 +0200 +-@@ -89,8 +89,8 @@ +- property.reset( new GDriveProperty( it->first, it->second ) ); +- m_properties[ property->getPropertyType( )->getId()] = property; +- +-- // we map "title" to both "cmis:name" and "cmis:getContentStreamFileName" +-- if ( it->first == "title" ) +-+ // we map "name" to both "cmis:name" and "cmis:getContentStreamFileName" +-+ if ( it->first == "name" ) +- { +- property.reset( new GDriveProperty( "cmis:name", it->second) ); +- m_properties[ property->getPropertyType( )->getId()] = property; +-@@ -142,16 +142,13 @@ +- { +- if ( m_renditions.empty( ) ) +- { +-- string downloadUrl = getStringProperty( "downloadUrl" ); +-- if ( !downloadUrl.empty( ) ) +-- { +-- string mimeType = getStringProperty( "cmis:contentStreamMimeType" ); +-- if ( !mimeType.empty( ) ) +-- { +-- RenditionPtr rendition( +-- new Rendition( mimeType, mimeType, mimeType, downloadUrl )); +-- m_renditions.push_back( rendition ); +-- } +-+ string downloadUrl = GDRIVE_METADATA_LINK + getId( ) + "?alt=media"; +-+ string mimeType = getStringProperty( "cmis:contentStreamMimeType" ); +-+ if ( !mimeType.empty( ) ) +-+ { +-+ RenditionPtr rendition( +-+ new Rendition( mimeType, mimeType, mimeType, downloadUrl )); +-+ m_renditions.push_back( rendition ); +- } +- +- vector< string > exportLinks = getMultiStringProperty( "exportLinks" ); +-@@ -192,7 +189,7 @@ +- { +- vector< string > headers; +- headers.push_back( "Content-Type: application/json" ); +-- response = getSession( )->httpPutRequest( getUrl( ), is, headers ); +-+ response = getSession( )->httpPatchRequest( getUrl( ), is, headers ); +- } +- catch ( const CurlException& e ) +- { +-@@ -228,7 +225,7 @@ +- { +- try +- { +-- getSession( )->httpDeleteRequest( getUrl( ) ); +-+ getSession( )->httpDeleteRequest( GDRIVE_METADATA_LINK + getId( ) ); +- } +- catch ( const CurlException& e ) +- { +-@@ -239,8 +236,8 @@ +- void GDriveObject::move( FolderPtr /*source*/, FolderPtr destination ) +- { +- Json parentsJson; +-- Json parentsValue = GdriveUtils::createJsonFromParentId( destination->getId( ) ); +-- parentsJson.add( "parents", parentsValue ); +-+ parentsJson.add( "addParents", Json(destination->getId( ).c_str()) ); +-+ parentsJson.add( "removeParents", Json(getStringProperty( "cmis:parentId" ).c_str()) ); +- +- istringstream is( parentsJson.toString( ) ); +- libcmis::HttpResponsePtr response; +-@@ -248,7 +245,7 @@ +- { +- vector< string > headers; +- headers.push_back( "Content-Type: application/json" ); +-- response = getSession( )->httpPutRequest( getUrl( ), is, headers ); +-+ response = getSession( )->httpPatchRequest( getUrl( ), is, headers ); +- } +- catch ( const CurlException& e ) +- { +-@@ -262,12 +259,10 @@ +- +- string GDriveObject::getUrl( ) +- { +-- return getSession( )->getBindingUrl( ) + "/files/" + getId( ); +--} +-- +--string GDriveObject::getUploadUrl( ) +--{ +-- return GDRIVE_UPLOAD_LINKS; +-+ // thumbnailLink causes some operations to fail with internal server error, +-+ // see https://issuetracker.google.com/issues/36760667 +-+ return GDRIVE_METADATA_LINK + getId( ) + +-+ "?fields=kind,id,name,parents,mimeType,createdTime,modifiedTime,size"; +- } +- +- vector< string> GDriveObject::getMultiStringProperty( const string& propertyName ) +-diff -ur libcmis.org/src/libcmis/gdrive-repository.cxx libcmis/src/libcmis/gdrive-repository.cxx +---- libcmis.org/src/libcmis/gdrive-repository.cxx 2021-07-27 19:11:02.676247009 +0200 +-+++ libcmis/src/libcmis/gdrive-repository.cxx 2021-07-27 19:11:18.874246420 +0200 +-@@ -35,7 +35,7 @@ +- m_name = "Google Drive"; +- m_description = "Google Drive repository"; +- m_productName = "Google Drive"; +-- m_productVersion = "v2"; +-+ m_productVersion = "v3"; +- m_rootId = "root"; +- +- m_capabilities[ ACL ] = "discover"; +-diff -ur libcmis.org/src/libcmis/gdrive-session.cxx libcmis/src/libcmis/gdrive-session.cxx +---- libcmis.org/src/libcmis/gdrive-session.cxx 2021-07-27 19:11:02.675247009 +0200 +-+++ libcmis/src/libcmis/gdrive-session.cxx 2021-07-27 19:11:18.874246420 +0200 +-@@ -124,9 +124,13 @@ +- +- libcmis::ObjectPtr GDriveSession::getObject( string objectId ) +- { +-+ if(objectId == "root") { +-+ return getRootFolder(); +-+ } +- // Run the http request to get the properties definition +- string res; +-- string objectLink = m_bindingUrl + "/files/" + objectId; +-+ string objectLink = GDRIVE_METADATA_LINK + objectId + +-+ "?fields=kind,id,name,parents,mimeType,createdTime,modifiedTime,thumbnailLink,size"; +- try +- { +- res = httpGetRequest( objectLink )->getStream()->str(); +-@@ -188,9 +192,10 @@ +- { +- // Normal child case +- // Ask for the ID of the child if there is any +-- string childIdUrl = m_bindingUrl + "/files/" + objectId + +-- "/children/?q=title+=+'" + segment + +-- "'&fields=items:id"; +-+ // somewhat flawed as names are not necessarily unique in GDrive... +-+ string query = libcmis::escape("'" + objectId + "' in parents and trashed = false and name='" + segment + "'"); +-+ +-+ string childIdUrl = m_bindingUrl + "/files/?q=" + query + "&fields=files(id)"; +- +- string res; +- try +-@@ -204,7 +209,7 @@ +- Json jsonRes = Json::parse( res ); +- +- // Did we get an id? +-- Json::JsonVector items = jsonRes["items"].getList(); +-+ Json::JsonVector items = jsonRes["files"].getList(); +- if ( items.empty( ) ) +- throw libcmis::Exception( "Object not found: " + path, "objectNotFound" ); +- +-@@ -219,6 +224,27 @@ +- return getObject( objectId ); +- } +- +-+libcmis::FolderPtr GDriveSession::getRootFolder() +-+{ +-+ // permissions/scope with just drive.file don't allow to get it with the "root" alias/by its actual object-ID +-+ Json propsJson; +-+ +-+ // GDrive folder is a file with a different mime type. +-+ string mimeType = GDRIVE_FOLDER_MIME_TYPE; +-+ +-+ // Add mimetype to the propsJson +-+ Json jsonMimeType( mimeType.c_str( ) ); +-+ propsJson.add( "mimeType", jsonMimeType ); +-+ propsJson.add( "id", "root" ); +-+ +-+ // Upload meta-datas +-+ propsJson.add("cmis:name", "VirtualRoot"); +-+ +-+ libcmis::FolderPtr folderPtr( new GDriveFolder( this, propsJson ) ); +-+ +-+ return folderPtr; +-+} +-+ +- libcmis::ObjectTypePtr GDriveSession::getType( string id ) +- { +- libcmis::ObjectTypePtr type( new GdriveObjectType( id ) ); +-diff -ur libcmis.org/src/libcmis/gdrive-session.hxx libcmis/src/libcmis/gdrive-session.hxx +---- libcmis.org/src/libcmis/gdrive-session.hxx 2021-07-27 19:11:02.675247009 +0200 +-+++ libcmis/src/libcmis/gdrive-session.hxx 2021-07-27 19:11:18.875246420 +0200 +-@@ -57,6 +57,8 @@ +- +- virtual std::vector< libcmis::ObjectTypePtr > getBaseTypes( ); +- +-+ virtual libcmis::FolderPtr getRootFolder(); +-+ +- virtual std::string getRefreshToken(); +- +- private: +-diff -ur libcmis.org/src/libcmis/gdrive-utils.cxx libcmis/src/libcmis/gdrive-utils.cxx +---- libcmis.org/src/libcmis/gdrive-utils.cxx 2021-07-27 19:11:02.677247008 +0200 +-+++ libcmis/src/libcmis/gdrive-utils.cxx 2021-07-27 19:11:18.875246420 +0200 +-@@ -44,17 +44,17 @@ +- convertedKey = "cmis:createdBy"; +- else if ( key == "description" ) +- convertedKey = "cmis:description"; +-- else if ( key == "createdDate" ) +-+ else if ( key == "createdTime" ) +- convertedKey = "cmis:creationDate"; +- else if ( key == "lastModifyingUserName" ) +- convertedKey = "cmis:lastModifiedBy"; +-- else if ( key == "modifiedDate" ) +-+ else if ( key == "modifiedTime" ) +- convertedKey = "cmis:lastModificationDate"; +-- else if ( key == "title" ) +-+ else if ( key == "name" ) +- convertedKey = "cmis:contentStreamFileName"; +- else if ( key == "mimeType" ) +- convertedKey = "cmis:contentStreamMimeType"; +-- else if ( key == "fileSize" ) +-+ else if ( key == "size" ) +- convertedKey = "cmis:contentStreamLength"; +- else if ( key == "editable" ) +- convertedKey = "cmis:isImmutable"; +-@@ -72,21 +72,21 @@ +- else if ( key == "cmis:createdBy" ) +- convertedKey = "ownerNames"; +- else if ( key == "cmis:creationDate" ) +-- convertedKey = "createdDate"; +-+ convertedKey = "createdTime"; +- else if ( key == "cmis:description" ) +- convertedKey = "description"; +- else if ( key == "cmis:lastModifiedBy" ) +- convertedKey = "lastModifyingUserName"; +- else if ( key == "cmis:lastModificationDate" ) +-- convertedKey = "modifiedDate"; +-+ convertedKey = "modifiedTime"; +- else if ( key == "cmis:contentStreamFileName" ) +-- convertedKey = "title"; +-+ convertedKey = "name"; +- else if ( key == "cmis:name" ) +-- convertedKey = "title"; +-+ convertedKey = "name"; +- else if ( key == "cmis:contentStreamMimeType" ) +- convertedKey = "mimeType"; +- else if ( key == "cmis:contentStreamLength" ) +-- convertedKey = "fileSize"; +-+ convertedKey = "size"; +- else if ( key == "cmis:isImmutable" ) +- convertedKey = "editable"; +- else if ( key == "cmis:parentId" ) +-@@ -124,9 +124,9 @@ +- bool GdriveUtils::checkUpdatable( const string& key ) +- { +- // taken from https://developers.google.com/drive/v2/reference/files +-- bool updatable = ( key == "title" || +-+ bool updatable = ( key == "name" || +- key == "description" || +-- key == "modifiedDate" || +-+ key == "modifiedTime" || +- key == "lastViewedByMeDate" ); +- return updatable; +- } +-@@ -143,18 +143,11 @@ +- +- Json GdriveUtils::createJsonFromParentId( const string& parentId ) +- { +-- Json parentValue( parentId.c_str( ) ); +-- +- // parents is a Json array +- Json firstParent; +-- firstParent.add( "id", parentValue ); +-- +-- Json::JsonVector parents; +-- parents.insert( parents.begin( ), firstParent ); +-+ firstParent.add( Json( parentId.c_str() ) ); +- +-- Json parentsValue( parents ); +-- +-- return parentsValue; +-+ return firstParent; +- } +- +- vector< string > GdriveUtils::parseGdriveProperty( string key, Json json ) +-diff -ur libcmis.org/src/libcmis/gdrive-utils.hxx libcmis/src/libcmis/gdrive-utils.hxx +---- libcmis.org/src/libcmis/gdrive-utils.hxx 2021-07-27 19:11:02.677247008 +0200 +-+++ libcmis/src/libcmis/gdrive-utils.hxx 2021-07-27 19:11:18.875246420 +0200 +-@@ -35,7 +35,8 @@ +- #include "json-utils.hxx" +- +- static const std::string GDRIVE_FOLDER_MIME_TYPE = "application/vnd.google-apps.folder" ; +--static const std::string GDRIVE_UPLOAD_LINKS = "https://www.googleapis.com/upload/drive/v2/files/"; +-+static const std::string GDRIVE_UPLOAD_LINK = "https://www.googleapis.com/upload/drive/v3/files/"; +-+static const std::string GDRIVE_METADATA_LINK = "https://www.googleapis.com/drive/v3/files/"; +- +- class GdriveUtils +- { +-diff -ur libcmis.org/src/libcmis/oauth2-handler.cxx libcmis/src/libcmis/oauth2-handler.cxx +---- libcmis.org/src/libcmis/oauth2-handler.cxx 2021-07-27 19:11:02.676247009 +0200 +-+++ libcmis/src/libcmis/oauth2-handler.cxx 2021-07-27 19:11:18.875246420 +0200 +-@@ -92,8 +92,11 @@ +- "code=" + authCode + +- "&client_id=" + m_data->getClientId() + +- "&redirect_uri=" + m_data->getRedirectUri() + +-- "&scope=" + libcmis::escape( m_data->getScope() ) + +- "&grant_type=authorization_code" ; +-+ if(boost::starts_with(m_data->getTokenUrl(), "https://oauth2.googleapis.com/")) +-+ post += "&client_secret=" + m_data->getClientSecret(); +-+ else +-+ post += "&scope=" + libcmis::escape( m_data->getScope() ); +- +- istringstream is( post ); +- +-@@ -104,7 +107,7 @@ +- resp = m_session->httpPostRequest ( m_data->getTokenUrl(), is, +- "application/x-www-form-urlencoded" ); +- } +-- catch ( const CurlException& ) +-+ catch ( const CurlException& e) +- { +- throw libcmis::Exception( +- "Couldn't get tokens from the authorization code "); +-@@ -122,6 +125,8 @@ +- "refresh_token=" + m_refresh + +- "&client_id=" + m_data->getClientId() + +- "&grant_type=refresh_token" ; +-+ if(boost::starts_with(m_data->getTokenUrl(), "https://oauth2.googleapis.com/")) +-+ post += "&client_secret=" + m_data->getClientSecret(); +- +- istringstream is( post ); +- libcmis::HttpResponsePtr resp; +-@@ -130,7 +135,7 @@ +- resp = m_session->httpPostRequest( m_data->getTokenUrl( ), is, +- "application/x-www-form-urlencoded" ); +- } +-- catch (const CurlException& ) +-+ catch (const CurlException& e ) +- { +- throw libcmis::Exception( "Couldn't refresh token "); +- } +-diff -ur libcmis.org/src/libcmis/oauth2-providers.cxx libcmis/src/libcmis/oauth2-providers.cxx +---- libcmis.org/src/libcmis/oauth2-providers.cxx 2021-07-27 19:11:02.679247008 +0200 +-+++ libcmis/src/libcmis/oauth2-providers.cxx 2021-07-27 19:11:18.886246420 +0200 +-@@ -80,172 +80,8 @@ +- +- } +- +--string OAuth2Providers::OAuth2Gdrive( HttpSession* session, const string& authUrl, +-- const string& username, const string& password ) +--{ +-- /* This member function implements 'Google OAuth 2.0' +-- * +-- * The interaction is carried out by libcmis, with no web browser involved. +-- * +-- * Normal sequence (without 2FA) is: +-- * 1) a get to activate login page +-- * receive first login page, html format +-- * 2) subsequent post to sent email +-- * receive html page for password input +-- * 3) subsequent post to send password +-- * receive html page for application consent +-- * 4) subsequent post to send a consent for the application +-- * receive a single-use authorization code +-- * this code is returned as a string +-- * +-- * Sequence with 2FA is: +-- * 1) a get to activate login page +-- * receive first login page, html format +-- * 2) subsequent post to sent email +-- * receive html page for password input +-- * 3) subsequent post to send password +-- * receive html page for pin input +-- * 3b) subsequent post to send pin number +-- * receive html page for application consent +-- * 4) subsequent post to send a consent for the application +-- * receive a single-use authorization code +-- * this code is returned as a string +-- */ +-- +-- static const string CONTENT_TYPE( "application/x-www-form-urlencoded" ); +-- // STEP 1: get login page +-- string res; +-- try +-- { +-- // send the first get, receive the html login page +-- res = session->httpGetRequest( authUrl )->getStream( )->str( ); +-- } +-- catch ( const CurlException& ) +-- { +-- return string( ); +-- } +-- +-- // STEP 2: send email +-- +-- string loginEmailPost, loginEmailLink; +-- if ( !parseResponse( res.c_str( ), loginEmailPost, loginEmailLink ) ) +-- return string( ); +-- +-- loginEmailPost += "Email="; +-- loginEmailPost += escapeForm( username ); +-- +-- istringstream loginEmailIs( loginEmailPost ); +-- string loginEmailRes; +-- try +-- { +-- // send a post with user email, receive the html page for password input +-- loginEmailRes = session->httpPostRequest ( loginEmailLink, loginEmailIs, CONTENT_TYPE ) +-- ->getStream( )->str( ); +-- } +-- catch ( const CurlException& ) +-- { +-- return string( ); +-- } +-- +-- // STEP 3: password page +-- +-- string loginPasswdPost, loginPasswdLink; +-- if ( !parseResponse( loginEmailRes.c_str( ), loginPasswdPost, loginPasswdLink ) ) +-- return string( ); +-- +-- loginPasswdPost += "Passwd="; +-- loginPasswdPost += escapeForm( password ); +-- +-- istringstream loginPasswdIs( loginPasswdPost ); +-- string loginPasswdRes; +-- try +-- { +-- // send a post with user password, receive the application consent page +-- loginPasswdRes = session->httpPostRequest ( loginPasswdLink, loginPasswdIs, CONTENT_TYPE ) +-- ->getStream( )->str( ); +-- } +-- catch ( const CurlException& ) +-- { +-- return string( ); +-- } +-- +-- string approvalPost, approvalLink; +-- if ( !parseResponse( loginPasswdRes. c_str( ), approvalPost, approvalLink) ) +-- return string( ); +-- +-- // when 2FA is enabled, link doesn't start with 'http' +-- if ( approvalLink.compare(0, 4, "http") != 0 ) +-- { +-- // STEP 3b: 2 Factor Authentication, pin code request +-- +-- string loginChallengePost( approvalPost ); +-- string loginChallengeLink( approvalLink ); +-- +-- libcmis::OAuth2AuthCodeProvider fallbackProvider = libcmis::SessionFactory::getOAuth2AuthCodeProvider( ); +-- unique_ptr< char, void (*)( void * ) > pin{ fallbackProvider( "", "", "" ), free }; +-- +-- if( !pin ) +-- { +-- // unset OAuth2AuthCode Provider to avoid showing pin request again in the HttpSession::oauth2Authenticate +-- libcmis::SessionFactory::setOAuth2AuthCodeProvider( NULL ); +-- return string( ); +-- } +-- +-- loginChallengeLink = "https://accounts.google.com" + loginChallengeLink; +-- loginChallengePost += string( PIN_INPUT_NAME ) + "="; +-- loginChallengePost += string( pin.get() ); +-- +-- istringstream loginChallengeIs( loginChallengePost ); +-- string loginChallengeRes; +-- try +-- { +-- // send a post with pin, receive the application consent page +-- loginChallengeRes = session->httpPostRequest ( loginChallengeLink, loginChallengeIs, CONTENT_TYPE ) +-- ->getStream( )->str( ); +-- } +-- catch ( const CurlException& ) +-- { +-- return string( ); +-- } +-- +-- approvalPost = string(); +-- approvalLink = string(); +-- +-- if ( !parseResponse( loginChallengeRes. c_str( ), approvalPost, approvalLink) ) +-- return string( ); +-- } +-- else if( approvalLink.compare( "https://accounts.google.com/ServiceLoginAuth" ) == 0 ) +-- { +-- // wrong password, +-- // unset OAuth2AuthCode Provider to avoid showing pin request again in the HttpSession::oauth2Authenticate +-- libcmis::SessionFactory::setOAuth2AuthCodeProvider( NULL ); +-- return string( ); +-- } +-- +-- // STEP 4: allow libcmis to access google drive +-- approvalPost += "submit_access=true"; +-- +-- istringstream approvalIs( approvalPost ); +-- string approvalRes; +-- try +-- { +-- // send a post with application consent +-- approvalRes = session->httpPostRequest ( approvalLink, approvalIs, +-- CONTENT_TYPE) ->getStream( )->str( ); +-- } +-- catch ( const CurlException& e ) +-- { +-- throw e.getCmisException( ); +-- } +-- +-- // Take the authentication code from the text bar +-- string code = parseCode( approvalRes.c_str( ) ); +-- +-- return code; +--} +-- +--string OAuth2Providers::OAuth2Onedrive( HttpSession* /*session*/, const string& /*authUrl*/, +-- const string& /*username*/, const string& /*password*/ ) +-+string OAuth2Providers::OAuth2Dummy( HttpSession* /*session*/, const string& /*authUrl*/, +-+ const string& /*username*/, const string& /*password*/ ) +- { +- return string( ); +- } +-@@ -314,12 +150,8 @@ +- // For Alfresco in the cloud, only match the hostname as there can be several +- // binding URLs created with it. +- return OAuth2Alfresco; +-- else if ( boost::starts_with( url, "https://www.googleapis.com/drive/v2" ) ) +-- return OAuth2Gdrive; +-- else if ( boost::starts_with( url, "https://graph.microsoft.com/v1.0" ) ) +-- return OAuth2Onedrive; +- +-- return OAuth2Gdrive; +-+ return OAuth2Dummy; +- } +- +- int OAuth2Providers::parseResponse ( const char* response, string& post, string& link ) +-diff -ur libcmis.org/src/libcmis/oauth2-providers.hxx libcmis/src/libcmis/oauth2-providers.hxx +---- libcmis.org/src/libcmis/oauth2-providers.hxx 2021-07-27 19:11:02.678247008 +0200 +-+++ libcmis/src/libcmis/oauth2-providers.hxx 2021-07-27 19:11:18.886246420 +0200 +-@@ -39,12 +39,8 @@ +- class OAuth2Providers +- { +- public : +-- static std::string OAuth2Gdrive( HttpSession* session, const std::string& authUrl, +-+ static std::string OAuth2Dummy( HttpSession* session, const std::string& authUrl, +- const std::string& username, const std::string& password ); +-- +-- static std::string OAuth2Onedrive( HttpSession* session, const std::string& authUrl, +-- const std::string& username, const std::string& password ); +-- +- static std::string OAuth2Alfresco( HttpSession* session, const std::string& authUrl, +- const std::string& username, const std::string& password ); +- +-diff -ur libcmis.org/src/libcmis/session-factory.cxx libcmis/src/libcmis/session-factory.cxx +---- libcmis.org/src/libcmis/session-factory.cxx 2021-07-27 19:11:02.679247008 +0200 +-+++ libcmis/src/libcmis/session-factory.cxx 2021-07-27 19:11:18.886246420 +0200 +-@@ -66,7 +66,7 @@ +- if ( !bindingUrl.empty( ) ) +- { +- // Try the special cases based on the binding URL +-- if ( bindingUrl == "https://www.googleapis.com/drive/v2" ) +-+ if ( bindingUrl == "https://www.googleapis.com/drive/v3" ) +- { +- session = new GDriveSession( bindingUrl, username, password, +- oauth2, verbose ); +diff --git a/external/libcmis/libcmis_oauth_pw_as_refreshtoken.patch.1 b/external/libcmis/libcmis_oauth_pw_as_refreshtoken.patch.1 +deleted file mode 100644 +index a8cb06509421..000000000000 +--- a/external/libcmis/libcmis_oauth_pw_as_refreshtoken.patch.1 ++++ /dev/null +@@ -1,185 +0,0 @@ +-diff -ur libcmis.org/inc/libcmis/session.hxx libcmis/inc/libcmis/session.hxx +---- libcmis.org/inc/libcmis/session.hxx 2021-07-27 19:09:42.580249917 +0200 +-+++ libcmis/inc/libcmis/session.hxx 2021-07-27 19:10:02.368249199 +0200 +-@@ -95,6 +95,8 @@ +- certificate exception feature available on common web browser. +- */ +- virtual void setNoSSLCertificateCheck( bool noCheck ) = 0; +-+ +-+ virtual std::string getRefreshToken() { return ""; }; +- }; +- } +- +-diff -ur libcmis.org/src/libcmis/gdrive-session.cxx libcmis/src/libcmis/gdrive-session.cxx +---- libcmis.org/src/libcmis/gdrive-session.cxx 2021-07-27 19:09:42.581249917 +0200 +-+++ libcmis/src/libcmis/gdrive-session.cxx 2021-07-27 19:10:02.369249198 +0200 +-@@ -70,6 +70,46 @@ +- { +- } +- +-+ +-+void GDriveSession::setOAuth2Data( libcmis::OAuth2DataPtr oauth2 ) +-+{ +-+ m_oauth2Handler = new OAuth2Handler( this, oauth2 ); +-+ m_oauth2Handler->setOAuth2Parser( OAuth2Providers::getOAuth2Parser( getBindingUrl( ) ) ); +-+ +-+ oauth2Authenticate( ); +-+} +-+ +-+void GDriveSession::oauth2Authenticate() +-+{ +-+ // treat the supplied password as refresh token +-+ if (!m_password.empty()) +-+ { +-+ try +-+ { +-+ m_inOAuth2Authentication = true; +-+ +-+ m_oauth2Handler->setRefreshToken(m_password); +-+ // Try to get new access tokens using the stored refreshtoken +-+ m_oauth2Handler->refresh(); +-+ m_inOAuth2Authentication = false; +-+ } +-+ catch (const CurlException &e) +-+ { +-+ m_inOAuth2Authentication = false; +-+ // refresh token expired or invalid, trigger initial auth (that in turn will hit the fallback with copy'n'paste method) +-+ BaseSession::oauth2Authenticate(); +-+ } +-+ } +-+ else +-+ { +-+ BaseSession::oauth2Authenticate(); +-+ } +-+} +-+ +-+string GDriveSession::getRefreshToken() { +-+ return HttpSession::getRefreshToken(); +-+} +-+ +- libcmis::RepositoryPtr GDriveSession::getRepository( ) +- { +- // Return a dummy repository since GDrive doesn't have that notion +-diff -ur libcmis.org/src/libcmis/gdrive-session.hxx libcmis/src/libcmis/gdrive-session.hxx +---- libcmis.org/src/libcmis/gdrive-session.hxx 2021-07-27 19:09:42.583249917 +0200 +-+++ libcmis/src/libcmis/gdrive-session.hxx 2021-07-27 19:10:02.369249198 +0200 +-@@ -57,8 +57,14 @@ +- +- virtual std::vector< libcmis::ObjectTypePtr > getBaseTypes( ); +- +-+ virtual std::string getRefreshToken(); +-+ +- private: +- GDriveSession( ); +-+ +-+ virtual void setOAuth2Data( libcmis::OAuth2DataPtr oauth2 ); +-+ +-+ void oauth2Authenticate( ); +- }; +- +- #endif /* _GDRIVE_SESSION_HXX_ */ +-diff -ur libcmis.org/src/libcmis/http-session.hxx libcmis/src/libcmis/http-session.hxx +---- libcmis.org/src/libcmis/http-session.hxx 2021-07-27 19:09:42.582249917 +0200 +-+++ libcmis/src/libcmis/http-session.hxx 2021-07-27 19:10:02.369249198 +0200 +-@@ -148,7 +148,7 @@ +- +- void setNoSSLCertificateCheck( bool noCheck ); +- +-- std::string getRefreshToken( ); +-+ virtual std::string getRefreshToken( ); +- +- protected: +- HttpSession( ); +-diff -ur libcmis.org/src/libcmis/oauth2-handler.cxx libcmis/src/libcmis/oauth2-handler.cxx +---- libcmis.org/src/libcmis/oauth2-handler.cxx 2021-07-27 19:09:42.582249917 +0200 +-+++ libcmis/src/libcmis/oauth2-handler.cxx 2021-07-27 19:10:02.369249198 +0200 +-@@ -158,6 +158,11 @@ +- return m_refresh; +- } +- +-+void OAuth2Handler::setRefreshToken( string refreshToken ) +-+{ +-+ m_refresh = refreshToken; +-+} +-+ +- string OAuth2Handler::getHttpHeader( ) +- { +- string header; +-diff -ur libcmis.org/src/libcmis/oauth2-handler.hxx libcmis/src/libcmis/oauth2-handler.hxx +---- libcmis.org/src/libcmis/oauth2-handler.hxx 2021-07-27 19:09:42.582249917 +0200 +-+++ libcmis/src/libcmis/oauth2-handler.hxx 2021-07-27 19:10:02.370249198 +0200 +-@@ -61,6 +61,7 @@ +- +- std::string getAccessToken( ) ; +- std::string getRefreshToken( ) ; +-+ void setRefreshToken( std::string refreshToken ) ; +- +- // adding HTTP auth header +- std::string getHttpHeader( ) ; +-diff -ur libcmis.org/src/libcmis/onedrive-session.cxx libcmis/src/libcmis/onedrive-session.cxx +---- libcmis.org/src/libcmis/onedrive-session.cxx 2021-07-27 19:09:42.583249917 +0200 +-+++ libcmis/src/libcmis/onedrive-session.cxx 2021-07-27 19:10:02.370249198 +0200 +-@@ -68,6 +68,45 @@ +- { +- } +- +-+void OneDriveSession::setOAuth2Data( libcmis::OAuth2DataPtr oauth2 ) +-+{ +-+ m_oauth2Handler = new OAuth2Handler( this, oauth2 ); +-+ m_oauth2Handler->setOAuth2Parser( OAuth2Providers::getOAuth2Parser( getBindingUrl( ) ) ); +-+ +-+ oauth2Authenticate( ); +-+} +-+ +-+void OneDriveSession::oauth2Authenticate() +-+{ +-+ // treat the supplied password as refresh token +-+ if (!m_password.empty()) +-+ { +-+ try +-+ { +-+ m_inOAuth2Authentication = true; +-+ +-+ m_oauth2Handler->setRefreshToken(m_password); +-+ // Try to get new access tokens using the stored refreshtoken +-+ m_oauth2Handler->refresh(); +-+ m_inOAuth2Authentication = false; +-+ } +-+ catch (const CurlException &e) +-+ { +-+ m_inOAuth2Authentication = false; +-+ // refresh token expired or invalid, trigger initial auth (that in turn will hit the fallback with copy'n'paste method) +-+ BaseSession::oauth2Authenticate(); +-+ } +-+ } +-+ else +-+ { +-+ BaseSession::oauth2Authenticate(); +-+ } +-+} +-+ +-+string OneDriveSession::getRefreshToken() { +-+ return HttpSession::getRefreshToken(); +-+} +-+ +- libcmis::RepositoryPtr OneDriveSession::getRepository( ) +- { +- // Return a dummy repository since OneDrive doesn't have that notion +-diff -ur libcmis.org/src/libcmis/onedrive-session.hxx libcmis/src/libcmis/onedrive-session.hxx +---- libcmis.org/src/libcmis/onedrive-session.hxx 2021-07-27 19:09:42.583249917 +0200 +-+++ libcmis/src/libcmis/onedrive-session.hxx 2021-07-27 19:10:02.370249198 +0200 +-@@ -62,8 +62,14 @@ +- +- bool isAPathMatch( Json objectJson, std::string path ); +- +-+ virtual std::string getRefreshToken(); +-+ +- private: +- OneDriveSession( ); +-+ +-+ virtual void setOAuth2Data( libcmis::OAuth2DataPtr oauth2 ); +-+ +-+ void oauth2Authenticate( ); +- }; +- +- #endif /* _ONEDRIVE_SESSION_HXX_ */ +diff --git a/officecfg/registry/data/org/openoffice/Office/Common.xcu b/officecfg/registry/data/org/openoffice/Office/Common.xcu +index fde7c90f9b26..816d22bc993c 100644 +--- a/officecfg/registry/data/org/openoffice/Office/Common.xcu ++++ b/officecfg/registry/data/org/openoffice/Office/Common.xcu +@@ -433,7 +433,7 @@ + + + +- https://www.googleapis.com/drive/v3 ++ https://www.googleapis.com/drive/v2 + https://graph.microsoft.com/v1.0 + https://api.alfresco.com/cmis/versions/1.0/atom/ + +diff --git a/ucb/source/ucp/cmis/auth_provider.cxx b/ucb/source/ucp/cmis/auth_provider.cxx +index c4407f47cc3f..dd7b4f9f1e3c 100644 +--- a/ucb/source/ucp/cmis/auth_provider.cxx ++++ b/ucb/source/ucp/cmis/auth_provider.cxx +@@ -11,10 +11,7 @@ + #define STD_TO_OUSTR( str ) OUString( str.c_str(), str.length( ), RTL_TEXTENCODING_UTF8 ) + + #include +-#include +-#include + +-#include + #include + #include + +@@ -67,91 +64,6 @@ namespace cmis + return false; + } + +- string AuthProvider::getRefreshToken(string& rUsername) +- { +- string refreshToken; +- const css::uno::Reference xEnv = getXEnv(); +- if (xEnv.is()) +- { +- uno::Reference xIH = xEnv->getInteractionHandler(); +- +- if (rUsername.empty()) +- { +- rtl::Reference xRequest +- = new ucbhelper::SimpleAuthenticationRequest( +- m_sUrl, m_sBindingUrl, +- ucbhelper::SimpleAuthenticationRequest::EntityType::ENTITY_NA, OUString(), +- ucbhelper::SimpleAuthenticationRequest::EntityType::ENTITY_MODIFY, +- STD_TO_OUSTR(rUsername), +- ucbhelper::SimpleAuthenticationRequest::EntityType::ENTITY_NA, OUString()); +- xIH->handle(xRequest.get()); +- +- rtl::Reference xSelection +- = xRequest->getSelection(); +- +- if (xSelection.is()) +- { +- // Handler handled the request. +- uno::Reference xAbort(xSelection.get(), +- uno::UNO_QUERY); +- if (!xAbort.is()) +- { +- const rtl::Reference& xSupp +- = xRequest->getAuthenticationSupplier(); +- +- rUsername = OUSTR_TO_STDSTR(xSupp->getUserName()); +- } +- } +- } +- +- uno::Reference xContext +- = ::comphelper::getProcessComponentContext(); +- uno::Reference xMasterPasswd +- = task::PasswordContainer::create(xContext); +- if (xMasterPasswd->hasMasterPassword()) +- { +- xMasterPasswd->authorizateWithMasterPassword(xIH); +- } +- if (xMasterPasswd->isPersistentStoringAllowed()) +- { +- task::UrlRecord aRec +- = xMasterPasswd->findForName(m_sBindingUrl, STD_TO_OUSTR(rUsername), xIH); +- if (aRec.UserList.hasElements() && aRec.UserList[0].Passwords.hasElements()) +- refreshToken = OUSTR_TO_STDSTR(aRec.UserList[0].Passwords[0]); +- } +- } +- return refreshToken; +- } +- +- bool AuthProvider::storeRefreshToken(const string& username, const string& password, +- const string& refreshToken) +- { +- if (refreshToken.empty()) +- return false; +- if (password == refreshToken) +- return true; +- const css::uno::Reference xEnv = getXEnv(); +- if (xEnv.is()) +- { +- uno::Reference xIH = xEnv->getInteractionHandler(); +- uno::Reference xContext +- = ::comphelper::getProcessComponentContext(); +- uno::Reference xMasterPasswd +- = task::PasswordContainer::create(xContext); +- uno::Sequence aPasswd{ STD_TO_OUSTR(refreshToken) }; +- if (xMasterPasswd->isPersistentStoringAllowed()) +- { +- if (xMasterPasswd->hasMasterPassword()) +- { +- xMasterPasswd->authorizateWithMasterPassword(xIH); +- } +- xMasterPasswd->addPersistent(m_sBindingUrl, STD_TO_OUSTR(username), aPasswd, xIH); +- return true; +- } +- } +- return false; +- } +- + css::uno::WeakReference< css::ucb::XCommandEnvironment> AuthProvider::sm_xEnv; + + void AuthProvider::setXEnv(const css::uno::Reference< css::ucb::XCommandEnvironment>& xEnv ) +@@ -164,7 +76,7 @@ namespace cmis + return sm_xEnv; + } + +- char* AuthProvider::copyWebAuthCodeFallback( const char* url, ++ char* AuthProvider::onedriveAuthCodeFallback( const char* url, + const char* /*username*/, + const char* /*password*/ ) + { +@@ -208,6 +120,46 @@ namespace cmis + + return strdup( "" ); + } ++ ++ char* AuthProvider::gdriveAuthCodeFallback( const char* /*url*/, ++ const char* /*username*/, ++ const char* /*password*/ ) ++ { ++ const css::uno::Reference< ++ css::ucb::XCommandEnvironment> xEnv = getXEnv( ); ++ ++ if ( xEnv.is() ) ++ { ++ uno::Reference< task::XInteractionHandler > xIH ++ = xEnv->getInteractionHandler(); ++ ++ if ( xIH.is() ) ++ { ++ rtl::Reference< ucbhelper::AuthenticationFallbackRequest > xRequest ++ = new ucbhelper::AuthenticationFallbackRequest ( ++ "PIN:", "" ); ++ ++ xIH->handle( xRequest.get() ); ++ ++ rtl::Reference< ucbhelper::InteractionContinuation > xSelection ++ = xRequest->getSelection(); ++ ++ if ( xSelection.is() ) ++ { ++ // Handler handled the request. ++ const rtl::Reference< ucbhelper::InteractionAuthFallback >& ++ xAuthFallback = xRequest->getAuthFallbackInter( ); ++ if ( xAuthFallback.is() ) ++ { ++ OUString code = xAuthFallback->getCode( ); ++ return strdup( OUSTR_TO_STDSTR( code ).c_str( ) ); ++ } ++ } ++ } ++ } ++ ++ return strdup( "" ); ++ } + } + + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ +diff --git a/ucb/source/ucp/cmis/auth_provider.hxx b/ucb/source/ucp/cmis/auth_provider.hxx +index 462f7edba54d..24430401d278 100644 +--- a/ucb/source/ucp/cmis/auth_provider.hxx ++++ b/ucb/source/ucp/cmis/auth_provider.hxx +@@ -39,11 +39,11 @@ namespace cmis + + bool authenticationQuery( std::string& username, std::string& password ) override; + +- std::string getRefreshToken( std::string& username ); +- bool storeRefreshToken(const std::string& username, const std::string& password, +- const std::string& refreshToken); ++ static char* onedriveAuthCodeFallback( const char* url, ++ const char* /*username*/, ++ const char* /*password*/ ); + +- static char* copyWebAuthCodeFallback( const char* url, ++ static char* gdriveAuthCodeFallback( const char* /*url*/, + const char* /*username*/, + const char* /*password*/ ); + +diff --git a/ucb/source/ucp/cmis/cmis_content.cxx b/ucb/source/ucp/cmis/cmis_content.cxx +index edb13ddf2457..355575d185d1 100644 +--- a/ucb/source/ucp/cmis/cmis_content.cxx ++++ b/ucb/source/ucp/cmis/cmis_content.cxx +@@ -347,15 +347,12 @@ namespace cmis + string rPassword = OUSTR_TO_STDSTR( m_aURL.getPassword( ) ); + + bool bSkipInitialPWAuth = false; +- if (m_aURL.getBindingUrl() == ONEDRIVE_BASE_URL +- || m_aURL.getBindingUrl() == GDRIVE_BASE_URL) +- { ++ if ( m_aURL.getBindingUrl( ) == ONEDRIVE_BASE_URL ) { + // skip the initial username and pw-auth prompt, the only supported method is the + // auth-code-fallback one (login with your browser, copy code into the dialog) + // TODO: if LO were to listen on localhost for the request, it would be much nicer + // user experience + bSkipInitialPWAuth = true; +- rPassword = aAuthProvider.getRefreshToken(rUsername); + } + + bool bIsDone = false; +@@ -368,9 +365,7 @@ namespace cmis + libcmis::OAuth2DataPtr oauth2Data; + if ( m_aURL.getBindingUrl( ) == GDRIVE_BASE_URL ) + { +- // reset the skip, so user gets a chance to cancel +- bSkipInitialPWAuth = false; +- libcmis::SessionFactory::setOAuth2AuthCodeProvider(AuthProvider::copyWebAuthCodeFallback); ++ libcmis::SessionFactory::setOAuth2AuthCodeProvider(AuthProvider::gdriveAuthCodeFallback); + oauth2Data.reset( new libcmis::OAuth2Data( + GDRIVE_AUTH_URL, GDRIVE_TOKEN_URL, + GDRIVE_SCOPE, GDRIVE_REDIRECT_URI, +@@ -385,7 +380,7 @@ namespace cmis + { + // reset the skip, so user gets a chance to cancel + bSkipInitialPWAuth = false; +- libcmis::SessionFactory::setOAuth2AuthCodeProvider(AuthProvider::copyWebAuthCodeFallback); ++ libcmis::SessionFactory::setOAuth2AuthCodeProvider(AuthProvider::onedriveAuthCodeFallback); + oauth2Data.reset( new libcmis::OAuth2Data( + ONEDRIVE_AUTH_URL, ONEDRIVE_TOKEN_URL, + ONEDRIVE_SCOPE, ONEDRIVE_REDIRECT_URI, +@@ -417,12 +412,6 @@ namespace cmis + else + { + m_pProvider->registerSession(sSessionId, m_aURL.getUsername( ), m_pSession); +- if (m_aURL.getBindingUrl() == ONEDRIVE_BASE_URL +- || m_aURL.getBindingUrl() == GDRIVE_BASE_URL) +- { +- aAuthProvider.storeRefreshToken(rUsername, rPassword, +- m_pSession->getRefreshToken()); +- } + } + + bIsDone = true; +@@ -430,10 +419,7 @@ namespace cmis + catch( const libcmis::Exception & e ) + { + if ( e.getType() != "permissionDenied" ) +- { +- SAL_INFO("ucb.ucp.cmis", "Unexpected libcmis exception: " << e.what()); + throw; +- } + } + } + else +@@ -525,7 +511,6 @@ namespace cmis + } + catch ( const libcmis::Exception& ) + { +- SAL_INFO( "ucb.ucp.cmis", "object: " << OUSTR_TO_STDSTR(m_sObjectId)); + throw libcmis::Exception( "Object not found" ); + } + } +diff --git a/ucb/source/ucp/cmis/cmis_repo_content.cxx b/ucb/source/ucp/cmis/cmis_repo_content.cxx +index 1bec3152b3b6..d98da53d5e2d 100644 +--- a/ucb/source/ucp/cmis/cmis_repo_content.cxx ++++ b/ucb/source/ucp/cmis/cmis_repo_content.cxx +@@ -165,7 +165,7 @@ namespace cmis + libcmis::OAuth2DataPtr oauth2Data; + if ( m_aURL.getBindingUrl( ) == GDRIVE_BASE_URL ) + { +- libcmis::SessionFactory::setOAuth2AuthCodeProvider( AuthProvider::copyWebAuthCodeFallback ); ++ libcmis::SessionFactory::setOAuth2AuthCodeProvider( AuthProvider::gdriveAuthCodeFallback ); + oauth2Data.reset( new libcmis::OAuth2Data( + GDRIVE_AUTH_URL, GDRIVE_TOKEN_URL, + GDRIVE_SCOPE, GDRIVE_REDIRECT_URI, +@@ -178,7 +178,7 @@ namespace cmis + ALFRESCO_CLOUD_CLIENT_ID, ALFRESCO_CLOUD_CLIENT_SECRET ) ); + if ( m_aURL.getBindingUrl( ) == ONEDRIVE_BASE_URL ) + { +- libcmis::SessionFactory::setOAuth2AuthCodeProvider( AuthProvider::copyWebAuthCodeFallback ); ++ libcmis::SessionFactory::setOAuth2AuthCodeProvider( AuthProvider::onedriveAuthCodeFallback ); + oauth2Data.reset( new libcmis::OAuth2Data( + ONEDRIVE_AUTH_URL, ONEDRIVE_TOKEN_URL, + ONEDRIVE_SCOPE, ONEDRIVE_REDIRECT_URI, +-- +2.31.1 + diff --git a/SOURCES/0001-Simplify-construction-of-a-hardcoded-IPv4-address.patch b/SOURCES/0001-Simplify-construction-of-a-hardcoded-IPv4-address.patch new file mode 100644 index 0000000..fcfa651 --- /dev/null +++ b/SOURCES/0001-Simplify-construction-of-a-hardcoded-IPv4-address.patch @@ -0,0 +1,39 @@ +From 68a6c70f25762374f7aed0d4d755345c6f37c78d Mon Sep 17 00:00:00 2001 +From: Stephan Bergmann +Date: Mon, 31 May 2021 10:56:38 +0200 +Subject: [PATCH] Simplify construction of a hardcoded IPv4 address + +Change-Id: I822313ee708935dd4ecb636c13a961fdd054d660 +Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116434 +Tested-by: Jenkins +Reviewed-by: Stephan Bergmann +--- + sd/source/ui/remotecontrol/DiscoveryService.cxx | 12 +----------- + 1 file changed, 1 insertion(+), 11 deletions(-) + +diff --git a/sd/source/ui/remotecontrol/DiscoveryService.cxx b/sd/source/ui/remotecontrol/DiscoveryService.cxx +index 9ed2ae727761..cf0043387403 100644 +--- a/sd/source/ui/remotecontrol/DiscoveryService.cxx ++++ b/sd/source/ui/remotecontrol/DiscoveryService.cxx +@@ -119,17 +119,7 @@ void DiscoveryService::setupSockets() + + struct ip_mreq multicastRequest; + +-// the Win32 SDK 8.1 deprecates inet_addr() +-#if defined(_WIN32) +- IN_ADDR addr; +- INT ret = InetPtonW(AF_INET, L"239.0.0.1", & addr); +- if (1 == ret) +- { +- multicastRequest.imr_multiaddr.s_addr = addr.S_un.S_addr; +- } +-#else +- multicastRequest.imr_multiaddr.s_addr = inet_addr( "239.0.0.1" ); +-#endif ++ multicastRequest.imr_multiaddr.s_addr = htonl((239U << 24) | 1U); // 239.0.0.1 + multicastRequest.imr_interface.s_addr = htonl(INADDR_ANY); + + rc = setsockopt( mSocket, IPPROTO_IP, IP_ADD_MEMBERSHIP, +-- +2.31.1 + diff --git a/SOURCES/0001-annocheck-warning-about-missing-.note.gnu.property-s.patch b/SOURCES/0001-annocheck-warning-about-missing-.note.gnu.property-s.patch new file mode 100644 index 0000000..aabe104 --- /dev/null +++ b/SOURCES/0001-annocheck-warning-about-missing-.note.gnu.property-s.patch @@ -0,0 +1,143 @@ +From 6de192ad5ffe9ec04328bfd178050cb8a33e1cbb Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= +Date: Wed, 15 Dec 2021 12:46:24 +0000 +Subject: [PATCH] annocheck warning about missing .note.gnu.property section +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +copy and paste recommendation from: +https://sourceware.org/annobin/annobin.html/Test-cf-protection.html + +and adapt like: +https://github.com/openssl/openssl/commit/51994e505dbb1cd0dd76869ec962e2948b77b585 +where https://bugs.ruby-lang.org/attachments/8962 is similar + +Intel docs have "The ENDBR32 and ENDBR64 (collectively ENDBRANCH) are +two new instructions that are used to mark valid indirect CALL/JMP +target locations in the program." + +Change-Id: Ie867c263a888763db4478720ba189c9ec6cc974d +Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126859 +Tested-by: Jenkins +Tested-by: Caolán McNamara +Reviewed-by: Caolán McNamara +(cherry picked from commit af55dc3891f7950d392175004b2090cb0e54828e) +--- + .../source/cpp_uno/gcc3_linux_intel/call.s | 16 ++++++++++++++++ + .../source/cpp_uno/gcc3_linux_x86-64/call.s | 19 +++++++++++++++++++ + config_host.mk.in | 1 + + configure.ac | 14 ++++++++++++++ + solenv/gbuild/platform/com_GCC_class.mk | 1 + + 5 files changed, 51 insertions(+) + +diff --git a/bridges/source/cpp_uno/gcc3_linux_intel/call.s b/bridges/source/cpp_uno/gcc3_linux_intel/call.s +index 6be583247733..0a5870defcf3 100644 +--- a/bridges/source/cpp_uno/gcc3_linux_intel/call.s ++++ b/bridges/source/cpp_uno/gcc3_linux_intel/call.s +@@ -290,3 +290,19 @@ privateSnippetExecutorClass: + .align 4 + .LEFDEc: + .section .note.GNU-stack,"",@progbits ++ .section .note.gnu.property,"a" ++ .p2align 2 ++ .long 1f - 0f ++ .long 4f - 1f ++ .long 5 ++0: ++ .string "GNU" ++1: ++ .p2align 2 ++ .long 0xc0000002 ++ .long 3f - 2f ++2: ++ .long 0x3 ++3: ++ .p2align 2 ++4: +diff --git a/bridges/source/cpp_uno/gcc3_linux_x86-64/call.s b/bridges/source/cpp_uno/gcc3_linux_x86-64/call.s +index 447ac0cecfdd..2e9346dff8a0 100644 +--- a/bridges/source/cpp_uno/gcc3_linux_x86-64/call.s ++++ b/bridges/source/cpp_uno/gcc3_linux_x86-64/call.s +@@ -22,6 +22,9 @@ + .type privateSnippetExecutor, @function + privateSnippetExecutor: + .LFB3: ++#if defined(END_BRANCH_INS_SUPPORT) ++ endbr64 ++#endif + pushq %rbp + .LCFI0: + movq %rsp, %rbp +@@ -115,3 +118,19 @@ privateSnippetExecutor: + .align 8 + .LEFDE1: + .section .note.GNU-stack,"",@progbits ++ .section .note.gnu.property,"a" ++ .p2align 3 ++ .long 1f - 0f ++ .long 4f - 1f ++ .long 5 ++0: ++ .string "GNU" ++1: ++ .p2align 3 ++ .long 0xc0000002 ++ .long 3f - 2f ++2: ++ .long 0x3 ++3: ++ .p2align 3 ++4: +diff --git a/config_host.mk.in b/config_host.mk.in +index d6edba704b21..6ac2a90695e2 100644 +--- a/config_host.mk.in ++++ b/config_host.mk.in +@@ -260,6 +260,7 @@ export GTK3_CFLAGS=$(gb_SPACE)@GTK3_CFLAGS@ + export GTK3_LIBS=$(gb_SPACE)@GTK3_LIBS@ + export USING_X11=@USING_X11@ + export HAMCREST_JAR=@HAMCREST_JAR@ ++export HAVE_ASM_END_BRANCH_INS_SUPPORT=@HAVE_ASM_END_BRANCH_INS_SUPPORT@ + export HAVE_BROKEN_GCC_WMAYBE_UNINITIALIZED=@HAVE_BROKEN_GCC_WMAYBE_UNINITIALIZED@ + export HAVE_CLANG_DEBUG_INFO_KIND_CONSTRUCTOR=@HAVE_CLANG_DEBUG_INFO_KIND_CONSTRUCTOR@ + export HAVE_LO_CLANG_DLLEXPORTINLINES=@HAVE_LO_CLANG_DLLEXPORTINLINES@ +diff --git a/configure.ac b/configure.ac +index bd28bc6eb38e..ef03408e8e98 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -7730,6 +7730,20 @@ _ACEOF + + CPPFLAGS="$save_CPPFLAGS" + ++ AC_MSG_CHECKING([if CET endbranch is recognized]) ++cat > endbr.s <<_ACEOF ++endbr32 ++_ACEOF ++ HAVE_ASM_END_BRANCH_INS_SUPPORT= ++ if $CXX -c endbr.s -o endbr.o >/dev/null 2>&5; then ++ AC_MSG_RESULT([yes]) ++ HAVE_ASM_END_BRANCH_INS_SUPPORT=TRUE ++ else ++ AC_MSG_RESULT([no]) ++ fi ++ rm -f endbr.s endbr.o ++ AC_SUBST(HAVE_ASM_END_BRANCH_INS_SUPPORT) ++ + AC_LANG_POP([C++]) + fi + +diff --git a/solenv/gbuild/platform/com_GCC_class.mk b/solenv/gbuild/platform/com_GCC_class.mk +index c29e2a979fd9..e2056abf9682 100644 +--- a/solenv/gbuild/platform/com_GCC_class.mk ++++ b/solenv/gbuild/platform/com_GCC_class.mk +@@ -44,6 +44,7 @@ $(call gb_Helper_abbreviate_dirs,\ + -x assembler-with-cpp \ + $(gb_LTOFLAGS) \ + $(gb_AFLAGS) \ ++ $(if $(HAVE_ASM_END_BRANCH_INS_SUPPORT),-DEND_BRANCH_INS_SUPPORT) \ + -c $(3) \ + -o $(1)) \ + $(INCLUDE) && \ +-- +2.33.1 + diff --git a/SOURCES/0001-default-to-sifr-for-gnome-light-mode.patch b/SOURCES/0001-default-to-sifr-for-gnome-light-mode.patch new file mode 100644 index 0000000..01617ff --- /dev/null +++ b/SOURCES/0001-default-to-sifr-for-gnome-light-mode.patch @@ -0,0 +1,58 @@ +From ffceb48dd576ababe346c9548b12ca18f31d3293 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= +Date: Fri, 10 Mar 2023 11:41:45 +0000 +Subject: [PATCH] default to sifr for gnome light mode + +https://pagure.io/fedora-workstation/issue/361 + +"Fedora Workstation currently uses the rather outdated-looking +Elementary icon theme for LibreOffice, instead of the Sifr icon theme +which was designed to fit in with GNOME's icons. The Sifr theme saw a +nice update with LibreOffice 7.5, the version being shipped in Fedora +Linux 38, which makes the icons fit better with the current GNOME design +language." + +Change-Id: Ic37bbe8e7ad754ab070ead06dc0b006c6ccf3adb +--- + vcl/qa/cppunit/app/test_IconThemeSelector.cxx | 4 ++-- + vcl/source/app/IconThemeSelector.cxx | 2 +- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/vcl/qa/cppunit/app/test_IconThemeSelector.cxx b/vcl/qa/cppunit/app/test_IconThemeSelector.cxx +index 72ee344b1437..8d1aea0c3889 100644 +--- a/vcl/qa/cppunit/app/test_IconThemeSelector.cxx ++++ b/vcl/qa/cppunit/app/test_IconThemeSelector.cxx +@@ -85,7 +85,7 @@ IconThemeSelectorTest::ElementaryIsReturnedForGnomeDesktop() + std::vector themes = GetFakeInstalledThemes(); + vcl::IconThemeSelector s; + OUString r = s.SelectIconThemeForDesktopEnvironment(themes, "gnome"); +- CPPUNIT_ASSERT_EQUAL_MESSAGE("'elementary' theme is returned for gnome desktop", OUString("elementary"), r); ++ CPPUNIT_ASSERT_EQUAL_MESSAGE("'sifr' theme is returned for gnome desktop", OUString("sifr"), r); + } + + void +@@ -96,7 +96,7 @@ IconThemeSelectorTest::ThemeIsOverriddenByPreferredTheme() + s.SetPreferredIconTheme(preferred, false); + std::vector themes = GetFakeInstalledThemes(); + OUString selected = s.SelectIconThemeForDesktopEnvironment(themes, "gnome"); +- CPPUNIT_ASSERT_EQUAL_MESSAGE("'elementary' theme is overridden by breeze", preferred, selected); ++ CPPUNIT_ASSERT_EQUAL_MESSAGE("'sifr' theme is overridden by breeze", preferred, selected); + } + + void +diff --git a/vcl/source/app/IconThemeSelector.cxx b/vcl/source/app/IconThemeSelector.cxx +index 6b8dfc0f42c7..ee30e577f3f5 100644 +--- a/vcl/source/app/IconThemeSelector.cxx ++++ b/vcl/source/app/IconThemeSelector.cxx +@@ -86,7 +86,7 @@ IconThemeSelector::GetIconThemeForDesktopEnvironment(const OUString& desktopEnvi + desktopEnvironment.equalsIgnoreAsciiCase("mate") || + desktopEnvironment.equalsIgnoreAsciiCase("unity") ) { + if (!bPreferDarkIconTheme) +- r = "elementary"; ++ r = "sifr"; + else + r = "sifr_dark"; + } else +-- +2.40.1 + diff --git a/SOURCES/0001-disable-libe-book-support.patch b/SOURCES/0001-disable-libe-book-support.patch new file mode 100644 index 0000000..2142734 --- /dev/null +++ b/SOURCES/0001-disable-libe-book-support.patch @@ -0,0 +1,145 @@ +From 0b613b941c3ffbe432934269f8865bc1f9e59cde Mon Sep 17 00:00:00 2001 +From: rpm-build +Date: Tue, 27 Sep 2022 15:13:59 -0700 +Subject: [PATCH] disable libe-book support + +--- + configure.ac | 3 --- + external/Module_external.mk | 1 - + filter/Configuration_filter.mk | 8 -------- + writerperfect/Library_wpftwriter.mk | 2 -- + writerperfect/qa/unit/WpftFilterFixture.hxx | 4 ---- + writerperfect/qa/unit/WpftWriterFilterTest.cxx | 5 ----- + writerperfect/source/writer/wpftwriter.component | 6 ------ + 7 files changed, 29 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 8babc85..e7733de 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -9606,9 +9606,6 @@ libo_PKG_VERSION([ETONYEK], [libetonyek-0.1], [0.1.10]) + + libo_CHECK_SYSTEM_MODULE([libfreehand],[FREEHAND],[libfreehand-0.1]) + +-libo_CHECK_SYSTEM_MODULE([libebook],[EBOOK],[libe-book-0.1]) +-libo_PKG_VERSION([EBOOK], [libe-book-0.1], [0.1.2]) +- + libo_CHECK_SYSTEM_MODULE([libabw],[ABW],[libabw-0.1]) + + libo_CHECK_SYSTEM_MODULE([libpagemaker],[PAGEMAKER],[libpagemaker-0.0]) +diff --git a/external/Module_external.mk b/external/Module_external.mk +index 366fff2..bc987d1 100644 +--- a/external/Module_external.mk ++++ b/external/Module_external.mk +@@ -31,7 +31,6 @@ $(eval $(call gb_Module_add_moduledirs,external,\ + $(call gb_Helper_optional,CURL,curl) \ + $(call gb_Helper_optional,DRAGONBOX,dragonbox) \ + dtoa \ +- $(call gb_Helper_optional,EBOOK,libebook) \ + $(call gb_Helper_optional,EPM,epm) \ + $(call gb_Helper_optional,EPOXY,epoxy) \ + $(call gb_Helper_optional,EPUBGEN,libepubgen) \ +diff --git a/filter/Configuration_filter.mk b/filter/Configuration_filter.mk +index a58b839..526b447 100644 +--- a/filter/Configuration_filter.mk ++++ b/filter/Configuration_filter.mk +@@ -359,10 +359,6 @@ $(eval $(call filter_Configuration_add_types,fcfg_langpack,fcfg_writer_types.xcu + writer_OOXML_Template \ + writer_layout_dump_xml \ + writer_indexing_export_xml \ +- writer_BroadBand_eBook \ +- writer_FictionBook_2 \ +- writer_PalmDoc \ +- writer_Plucker_eBook \ + writer_ApplePages \ + MWAW_Text_Document \ + Palm_Text_Document \ +@@ -409,10 +405,6 @@ $(eval $(call filter_Configuration_add_filters,fcfg_langpack,fcfg_writer_filters + OOXML_Text_Template \ + writer_layout_dump \ + writer_indexing_export \ +- BroadBand_eBook \ +- FictionBook_2 \ +- PalmDoc \ +- Plucker_eBook \ + ApplePages \ + MWAW_Text_Document \ + Palm_Text_Document \ +diff --git a/writerperfect/Library_wpftwriter.mk b/writerperfect/Library_wpftwriter.mk +index 840a86f..70a8933 100644 +--- a/writerperfect/Library_wpftwriter.mk ++++ b/writerperfect/Library_wpftwriter.mk +@@ -64,7 +64,6 @@ endif + $(eval $(call gb_Library_use_externals,wpftwriter,\ + abw \ + boost_headers \ +- ebook \ + $(if $(ENABLE_WASM_STRIP_SWEXPORTS),,etonyek) \ + icu_headers \ + icui18n \ +@@ -93,7 +92,6 @@ endif + ifneq ($(ENABLE_WASM_STRIP_SWEXPORTS),TRUE) + $(eval $(call gb_Library_add_exception_objects,wpftwriter,\ + writerperfect/source/writer/AbiWordImportFilter \ +- writerperfect/source/writer/EBookImportFilter \ + writerperfect/source/writer/MSWorksImportFilter \ + writerperfect/source/writer/MWAWImportFilter \ + writerperfect/source/writer/PagesImportFilter \ +diff --git a/writerperfect/qa/unit/WpftFilterFixture.hxx b/writerperfect/qa/unit/WpftFilterFixture.hxx +index 2fdd6a2..dbdd672 100644 +--- a/writerperfect/qa/unit/WpftFilterFixture.hxx ++++ b/writerperfect/qa/unit/WpftFilterFixture.hxx +@@ -25,10 +25,6 @@ + || ((major) == (req_major) \ + && ((minor) > (req_minor) || ((minor) == (req_minor) && ((micro) >= (req_micro))))) + +-#define REQUIRE_EBOOK_VERSION(major, minor, micro) \ +- REQUIRE_VERSION(EBOOK_VERSION_MAJOR, EBOOK_VERSION_MINOR, EBOOK_VERSION_MICRO, major, minor, \ +- micro) +- + #define REQUIRE_ETONYEK_VERSION(major, minor, micro) \ + REQUIRE_VERSION(ETONYEK_VERSION_MAJOR, ETONYEK_VERSION_MINOR, ETONYEK_VERSION_MICRO, major, \ + minor, micro) +diff --git a/writerperfect/qa/unit/WpftWriterFilterTest.cxx b/writerperfect/qa/unit/WpftWriterFilterTest.cxx +index 78d24dc..39924f9 100644 +--- a/writerperfect/qa/unit/WpftWriterFilterTest.cxx ++++ b/writerperfect/qa/unit/WpftWriterFilterTest.cxx +@@ -30,9 +30,6 @@ WpftWriterFilterTest::WpftWriterFilterTest() + + void WpftWriterFilterTest::test() + { +- const writerperfect::test::WpftOptionalMap_t aEBookOptional{ +- { "FictionBook2.fb2.zip", REQUIRE_EBOOK_VERSION(0, 1, 1) }, +- }; + const writerperfect::test::WpftOptionalMap_t aEtonyekOptional{ + { "Pages_4.pages", REQUIRE_ETONYEK_VERSION(0, 1, 2) }, + { "Pages_5.pages", REQUIRE_ETONYEK_VERSION(0, 1, 8) }, +@@ -59,8 +56,6 @@ void WpftWriterFilterTest::test() + + doTest("com.sun.star.comp.Writer.AbiWordImportFilter", + u"/writerperfect/qa/unit/data/writer/libabw/"); +- doTest("org.libreoffice.comp.Writer.EBookImportFilter", +- u"/writerperfect/qa/unit/data/writer/libe-book/", aEBookOptional); + doTest("com.sun.star.comp.Writer.MSWorksImportFilter", + u"/writerperfect/qa/unit/data/writer/libwps/", aWpsOptional); + doTest("com.sun.star.comp.Writer.MWAWImportFilter", +diff --git a/writerperfect/source/writer/wpftwriter.component b/writerperfect/source/writer/wpftwriter.component +index 176d487..0c89217 100644 +--- a/writerperfect/source/writer/wpftwriter.component ++++ b/writerperfect/source/writer/wpftwriter.component +@@ -42,12 +42,6 @@ + + + +- +- +- +- +- + + +-- +2.31.1 + diff --git a/SOURCES/0001-disble-tip-of-the-day-dialog-by-default.patch b/SOURCES/0001-disble-tip-of-the-day-dialog-by-default.patch new file mode 100644 index 0000000..7233a4e --- /dev/null +++ b/SOURCES/0001-disble-tip-of-the-day-dialog-by-default.patch @@ -0,0 +1,26 @@ +From d6e2cdb0023e422546e3ece5bf9915f7c490ced8 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= +Date: Fri, 20 Mar 2020 14:24:05 +0000 +Subject: [PATCH] disble tip-of-the-day dialog by default + +Change-Id: Ie7f0e3fe3dda12c2ec88c376d2b57419253ae5cf +--- + officecfg/registry/schema/org/openoffice/Office/Common.xcs | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/officecfg/registry/schema/org/openoffice/Office/Common.xcs b/officecfg/registry/schema/org/openoffice/Office/Common.xcs +index e7c339e2e22e..9aa88ef1aa02 100644 +--- a/officecfg/registry/schema/org/openoffice/Office/Common.xcs ++++ b/officecfg/registry/schema/org/openoffice/Office/Common.xcs +@@ -5570,7 +5570,7 @@ + + Determines whether the Tip-of-the-Day dialog is shown on startup. + +- true ++ false + + + +-- +2.24.1 + diff --git a/SOURCES/0001-document-new-shouldn-t-get-prefixed-to-become-libreo.patch b/SOURCES/0001-document-new-shouldn-t-get-prefixed-to-become-libreo.patch new file mode 100644 index 0000000..1579192 --- /dev/null +++ b/SOURCES/0001-document-new-shouldn-t-get-prefixed-to-become-libreo.patch @@ -0,0 +1,45 @@ +From ce37356f6bcaaef62a80814d7d54d3aa6d53167d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= +Date: Tue, 12 Oct 2021 09:52:53 +0100 +Subject: [PATCH] document-new shouldn't get prefixed to become + libreoffice-document-new + +seen by rpminspect as .desktop "references icon libreoffice-document-new +but no subpackages contain libreoffice-document-new" + +introduced by: + +commit f767d5e2b017c0d0cfd23ff3318cb30901847722 +Date: Sun Sep 1 11:30:12 2019 +0200 + + Add icons to New Document desktop file actions + +in the [Desktop Action NewDocument] section + +Change-Id: I64ce5e2dbaca32083b2f76e960c33a815f8a3773 +--- + sysui/desktop/share/brand.pl | 8 +++++--- + 1 file changed, 5 insertions(+), 3 deletions(-) + +diff --git a/sysui/desktop/share/brand.pl b/sysui/desktop/share/brand.pl +index 9d73e619c495..b17a7374fd62 100644 +--- a/sysui/desktop/share/brand.pl ++++ b/sysui/desktop/share/brand.pl +@@ -81,9 +81,11 @@ while ($arg = shift) { + # remove possible Windows line-ends + chomp; + +- # patch all occurrences of openoffice in ICON line with +- # $prefix +- s/Icon=/Icon=$iconprefix/; ++ # patch all icons in ICON line with $prefix ++ if (! /Icon=document-new/ ) { # except for Icon=document-new which ++ # is a stock icon, not one of ours ++ s/Icon=/Icon=$iconprefix/; ++ } + + # patch all occurrences of openoffice in icon_filename + # line with $prefix +-- +2.32.0 + diff --git a/SOURCES/0001-don-t-suppress-crashes.patch b/SOURCES/0001-don-t-suppress-crashes.patch new file mode 100644 index 0000000..596534d --- /dev/null +++ b/SOURCES/0001-don-t-suppress-crashes.patch @@ -0,0 +1,37 @@ +From a6f2cba43d79347b6975b3b8069b423c94a7dba6 Mon Sep 17 00:00:00 2001 +From: David Tardon +Date: Tue, 8 Nov 2016 11:50:06 +0100 +Subject: [PATCH] don't suppress crashes + +An automatic restart after a crash makes the crash invisible to abrt. + +Change-Id: I3854e619356049b144b08575879d289a3c12e4c9 +--- + desktop/source/app/app.cxx | 4 +--- + 1 file changed, 1 insertion(+), 3 deletions(-) + +diff --git a/desktop/source/app/app.cxx b/desktop/source/app/app.cxx +index c54aea9dd4f7..a613fe12cef2 100644 +--- a/desktop/source/app/app.cxx ++++ b/desktop/source/app/app.cxx +@@ -1165,8 +1165,6 @@ + if( bRestart ) + { + RequestHandler::Disable(); +- if( pSignalHandler ) +- osl_removeSignalHandler( pSignalHandler ); + + restartOnMac(false); + #if !ENABLE_WASM_STRIP_SPLASH +@@ -1174,7 +1172,7 @@ + m_rSplashScreen->reset(); + #endif + +- _exit( EXITHELPER_CRASH_WITH_RESTART ); ++ return; + } + else + { +-- +2.29.2 + diff --git a/SOURCES/0001-fix-comparison-when-searching-cache.patch b/SOURCES/0001-fix-comparison-when-searching-cache.patch new file mode 100644 index 0000000..2928de1 --- /dev/null +++ b/SOURCES/0001-fix-comparison-when-searching-cache.patch @@ -0,0 +1,40 @@ +From a94b58277c7aeaa83ce14347cd0b8f7137969d03 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Lubo=C5=A1=20Lu=C5=88=C3=A1k?= +Date: Fri, 29 Oct 2021 14:20:57 +0200 +Subject: [PATCH] fix comparison when searching cache +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This made the cache always fail and re-cache, making CJK text layout +slower over time. A mistake from ef513fd4b049b214a03fbe6e that +converted !strcmp() to != instead of ==. + +Change-Id: Ib70579cd36d7b1df062e4d067e03f5c65e34b142 +Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124432 +Reviewed-by: Noel Grandin +Reviewed-by: Luboš Luňák +Tested-by: Luboš Luňák +(cherry picked from commit 5b38b5744af1e896892df708c16b83e1b551d2c7) +Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124206 +Tested-by: Jenkins +--- + i18npool/source/breakiterator/xdictionary.cxx | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/i18npool/source/breakiterator/xdictionary.cxx b/i18npool/source/breakiterator/xdictionary.cxx +index 947a23c5073b..6b57433370c7 100644 +--- a/i18npool/source/breakiterator/xdictionary.cxx ++++ b/i18npool/source/breakiterator/xdictionary.cxx +@@ -152,7 +152,7 @@ void xdictionary::initDictionaryData(const char *pLang) + osl::MutexGuard aGuard( osl::Mutex::getGlobalMutex() ); + for(const datacache & i : aLoadedCache) + { +- if( i.maLang != pLang ) ++ if( i.maLang == pLang ) + { + data = i.maData; + return; +-- +2.33.1 + diff --git a/SOURCES/0001-fix-detecting-qrcodegen.patch b/SOURCES/0001-fix-detecting-qrcodegen.patch new file mode 100644 index 0000000..f439510 --- /dev/null +++ b/SOURCES/0001-fix-detecting-qrcodegen.patch @@ -0,0 +1,40 @@ +From 2f11e4247b6332b06a5b23c33207fa10767244a6 Mon Sep 17 00:00:00 2001 +From: Thierry Vignaud +Date: Thu, 30 Jan 2020 11:19:20 +0000 +Subject: [PATCH] fix detecting qrcodegen + +Change-Id: Ib945b57420083489273cefc5655eb50932b5a3f8 +--- + configure.ac | 2 +- + cui/source/dialogs/QrCodeGenDialog.cxx | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 5a14369..ebd1b55 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -10250,7 +10250,7 @@ else + AC_MSG_RESULT([external]) + SYSTEM_QRCODEGEN=TRUE + AC_LANG_PUSH([C++]) +- AC_CHECK_HEADER(qrcodegen/QrCode.hpp, [], ++ AC_CHECK_HEADER(qrcodegencpp/QrCode.hpp, [], + [AC_MSG_ERROR(qrcodegen headers not found.)], [#include ]) + AC_CHECK_LIB([qrcodegencpp], [main], [:], + [ AC_MSG_ERROR(qrcodegen C++ library not found.) ], []) +diff --git a/cui/source/dialogs/QrCodeGenDialog.cxx b/cui/source/dialogs/QrCodeGenDialog.cxx +index 7f3f6a8..b79a356 100644 +--- a/cui/source/dialogs/QrCodeGenDialog.cxx ++++ b/cui/source/dialogs/QrCodeGenDialog.cxx +@@ -19,7 +19,7 @@ + + #if ENABLE_QRCODEGEN + #if defined(SYSTEM_QRCODEGEN) +-#include ++#include + #else + #include + #endif +-- +2.26.2 + diff --git a/SOURCES/0001-gtk3-workaround-missing-gdk_threads_enter-calls-in-e.patch b/SOURCES/0001-gtk3-workaround-missing-gdk_threads_enter-calls-in-e.patch new file mode 100644 index 0000000..c260e2d --- /dev/null +++ b/SOURCES/0001-gtk3-workaround-missing-gdk_threads_enter-calls-in-e.patch @@ -0,0 +1,118 @@ +From b06e5e2b9761d242d9269b091da9a98ec705d2b1 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= +Date: Tue, 1 Jun 2021 13:20:43 +0100 +Subject: [PATCH] gtk3: workaround missing gdk_threads_enter calls in external + code +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +with gtk3 file dialog. file, open, +other locations, +type davs://somewhere + return + + #0 0x00007ffff7a6e2a2 in raise () at /lib64/libc.so.6 + #1 0x00007ffff7a578a4 in abort () at /lib64/libc.so.6 + #2 0x00007ffff7a57789 in _nl_load_domain.cold () at /lib64/libc.so.6 + #3 0x00007ffff7a66a16 in () at /lib64/libc.so.6 + #4 0x00007fffd9be7672 in GtkYieldMutex::ThreadsLeave() (this=0x513480) at vcl/unx/gtk3/gtkinst.cxx:354 + #5 0x00007fffd9be6a53 in GdkThreadsLeave() () at vcl/unx/gtk3/gtkinst.cxx:116 + #6 0x00007fffd947ac2d in gtk_dialog_run (dialog=0xa984310) at /usr/src/debug/gtk3-3.24.29-1.fc34.x86_64/gtk/gtkdialog.c:1397 + ^^^ this also (see #30) calls gdk_threads_leave before g_main_loop_run, but no gdk_threads_enter has been called, presumably emit_show_error_message should have called it (?) ^^^ + #7 0x00007fffd94a6dc6 in error_message_with_parent (detail=0xa97f9b0 "HTTP Error: Error resolving “nowhere”: Name or service not known", msg=, parent=) + at /usr/src/debug/gtk3-3.24.29-1.fc34.x86_64/gtk/gtkfilechooserwidget.c:763 + #8 error_message (impl=, msg=, detail=0xa97f9b0 "HTTP Error: Error resolving “nowhere”: Name or service not known") at /usr/src/debug/gtk3-3.24.29-1.fc34.x86_64/gtk/gtkfilechooserwidget.c:786 + #9 0x00007fffe996ec2f in g_closure_invoke () at /lib64/libgobject-2.0.so.0 + #10 0x00007fffe998aea6 in signal_emit_unlocked_R () at /lib64/libgobject-2.0.so.0 + #11 0x00007fffe998c76a in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0 + #12 0x00007fffe998c983 in g_signal_emit () at /lib64/libgobject-2.0.so.0 + #13 0x00007fffd9561fc7 in emit_show_error_message (secondary_message=0x7fffbc0566f0 "HTTP Error: Error resolving “nowhere”: Name or service not known", primary_message=, view=0x900a240) + at /usr/src/debug/gtk3-3.24.29-1.fc34.x86_64/gtk/gtkplacesview.c:171 + #14 server_mount_ready_cb (source_file=0x7fffbc05b4c0, res=, user_data=0x900a240) at /usr/src/debug/gtk3-3.24.29-1.fc34.x86_64/gtk/gtkplacesview.c:1232 + #15 0x00007fffe9a64a7a in g_task_return_now () at /lib64/libgio-2.0.so.0 + #16 0x00007fffe9a64c7b in g_task_return () at /lib64/libgio-2.0.so.0 + #17 0x00007fffd80653b8 in mount_reply () at /usr/lib64/gio/modules/libgvfsdbus.so + #18 0x00007fffe9a64a7a in g_task_return_now () at /lib64/libgio-2.0.so.0 + #19 0x00007fffe9a64c7b in g_task_return () at /lib64/libgio-2.0.so.0 + #20 0x00007fffe9acd2dd in reply_cb () at /lib64/libgio-2.0.so.0 + #21 0x00007fffe9a64a7a in g_task_return_now () at /lib64/libgio-2.0.so.0 + #22 0x00007fffe9a64c7b in g_task_return () at /lib64/libgio-2.0.so.0 + #23 0x00007fffe9ac4c34 in g_dbus_connection_call_done () at /lib64/libgio-2.0.so.0 + #24 0x00007fffe9a64a7a in g_task_return_now () at /lib64/libgio-2.0.so.0 + #25 0x00007fffe9a64abd in complete_in_idle_cb () at /lib64/libgio-2.0.so.0 + #26 0x00007fffe987074b in g_idle_dispatch () at /lib64/libglib-2.0.so.0 + #27 0x00007fffe98744cf in g_main_context_dispatch () at /lib64/libglib-2.0.so.0 + #28 0x00007fffe98c84e8 in g_main_context_iterate.constprop () at /lib64/libglib-2.0.so.0 + #29 0x00007fffe9873a93 in g_main_loop_run () at /lib64/libglib-2.0.so.0 + #30 0x00007fffd947ac37 in gtk_dialog_run (dialog=0x1604460) at /usr/src/debug/gtk3-3.24.29-1.fc34.x86_64/gtk/gtkdialog.c:1398 + ^^^ this will call gdk_threads_leave before g_main_loop_run, (gdk_threads_enter has been called earlier, and gdk_threads_enter will be called after g_main_loop_run) ^^^ + #31 0x00007fffd9bdbd96 in RunDialog::run() (this=0x9134f00) at vcl/unx/gtk3/fpicker/SalGtkPicker.cxx:199 + #32 0x00007fffd9bbf23f in SalGtkFilePicker::execute() (this=0x9004690) at vcl/unx/gtk3/fpicker/SalGtkFilePicker.cxx:953 + #33 0x00007ffff474741a in sfx2::FileDialogHelper_Impl::implDoExecute() (this=0x1667470) at sfx2/source/dialog/filedlghelper.cxx:1279 + + #14 presumably server_mount_ready_cb of gtkplacesview.c should protect its gtk + calls with gdk_threads_enter/gdk_threads_leave like enclosing_volume_mount_cb + of gtkfilesystem.c does. + +Seeing as gdk_threads_leave/gdk_threads_enter is gone in gtk4 I doubt +there's any point looking for a fix in gtk3 and we should just try and +survive the problem. + +Change-Id: I007be4dee4f615d4431e27034dcf7f3d446c3e9a +Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116559 +Tested-by: Jenkins +Reviewed-by: Caolán McNamara +(cherry picked from commit 08b7529f628eda1d209cf27f9bbe52ee336fef62) +--- + vcl/unx/gtk3/gtk3gtkinst.cxx | 30 ++++++++++++++++++++++-------- + 1 file changed, 22 insertions(+), 8 deletions(-) + +diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx +index 2d4dc36ce5fe..bba4e07f3003 100644 +--- a/vcl/unx/gtk3/gtk3gtkinst.cxx ++++ b/vcl/unx/gtk3/gtk3gtkinst.cxx +@@ -314,20 +314,34 @@ thread_local std::stack GtkYieldMutex::yieldCounts; + void GtkYieldMutex::ThreadsEnter() + { + acquire(); +- if (!yieldCounts.empty()) { +- auto n = yieldCounts.top(); +- yieldCounts.pop(); +- assert(n > 0); +- n--; +- if (n > 0) +- acquire(n); ++ if (yieldCounts.empty()) ++ return; ++ auto n = yieldCounts.top(); ++ yieldCounts.pop(); ++ ++ const bool bUndoingLeaveWithoutEnter = n == 0; ++ // if the ThreadsLeave bLeaveWithoutEnter of true condition occurred to ++ // create this entry then return early undoing the initial acquire of the ++ // function ++ if G_UNLIKELY(bUndoingLeaveWithoutEnter) ++ { ++ release(); ++ return; + } ++ ++ assert(n > 0); ++ n--; ++ if (n > 0) ++ acquire(n); + } + + void GtkYieldMutex::ThreadsLeave() + { +- assert(m_nCount != 0); ++ const bool bLeaveWithoutEnter = m_nCount == 0; ++ SAL_WARN_IF(bLeaveWithoutEnter, "vcl.gtk", "gdk_threads_leave without matching gdk_threads_enter"); + yieldCounts.push(m_nCount); ++ if G_UNLIKELY(bLeaveWithoutEnter) // this ideally shouldn't happen, but can due to the gtk3 file dialog ++ return; + release(true); + } + +-- +2.31.1 + diff --git a/SOURCES/0001-make-with-idlc-cpp-cpp-work-for-gcc-cpp-as-a-ucpp-re.patch b/SOURCES/0001-make-with-idlc-cpp-cpp-work-for-gcc-cpp-as-a-ucpp-re.patch new file mode 100644 index 0000000..9d4ed5c --- /dev/null +++ b/SOURCES/0001-make-with-idlc-cpp-cpp-work-for-gcc-cpp-as-a-ucpp-re.patch @@ -0,0 +1,111 @@ +From 748a9fd3a8e90e52a126190dbe0d97da6e0941ff Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= +Date: Wed, 11 Aug 2021 20:55:14 +0100 +Subject: [PATCH] make --with-idlc-cpp=cpp work for gcc cpp as a ucpp + replacement + +e.g. the example of +https://bugs.launchpad.net/ubuntu/+source/libreoffice/+bug/1524638 +has the same output .urd using cpp with these flags as ucpp created + +Change-Id: Iadfd2deba7d365c66c3260fd6736c031987e107c +--- + config_host.mk.in | 1 + + configure.ac | 14 ++++++++++++++ + idlc/Executable_idlc.mk | 8 ++++++++ + idlc/source/idlccompile.cxx | 8 ++++++++ + 4 files changed, 31 insertions(+) + +diff --git a/config_host.mk.in b/config_host.mk.in +index 58ca1d1c14fb..6810660067b0 100644 +--- a/config_host.mk.in ++++ b/config_host.mk.in +@@ -635,6 +635,7 @@ export SYSTEM_RHINO=@SYSTEM_RHINO@ + export SYSTEM_SERF=@SYSTEM_SERF@ + export SYSTEM_STAROFFICE=@SYSTEM_STAROFFICE@ + export SYSTEM_UCPP=@SYSTEM_UCPP@ ++export SYSTEM_UCPP_IS_GCC=@SYSTEM_UCPP_IS_GCC@ + export SYSTEM_VISIO=@SYSTEM_VISIO@ + export SYSTEM_WPD=@SYSTEM_WPD@ + export SYSTEM_WPG=@SYSTEM_WPG@ +diff --git a/configure.ac b/configure.ac +index 3d2bf7e24555..ac226fd46ace 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -8807,9 +8807,22 @@ dnl =================================================================== + dnl Check for C preprocessor to use + dnl =================================================================== + AC_MSG_CHECKING([which C preprocessor to use in idlc]) ++SYSTEM_UCPP_IS_GCC= + if test -n "$with_idlc_cpp"; then + AC_MSG_RESULT([$with_idlc_cpp]) + AC_PATH_PROG(SYSTEM_UCPP, $with_idlc_cpp) ++ AC_MSG_CHECKING([if $with_idlc_cpp is GCC CPP]) ++ # ucpp will accept -v (to output version), warn about the others as unknown ++ # and return 1 (due to -v) ++ # gcc will accept -v (as verbose), --version (to output version) and -nostdinc ++ # and return 0 (due to --version ) if all options are supported ++ $SYSTEM_UCPP -v --version -nostdinc >/dev/null 2>/dev/null ++ if test $? -eq 0; then ++ SYSTEM_UCPP_IS_GCC=TRUE ++ AC_MSG_RESULT([yes]) ++ else ++ AC_MSG_RESULT([no]) ++ fi + else + AC_MSG_RESULT([ucpp]) + AC_MSG_CHECKING([which ucpp tp use]) +@@ -8822,6 +8835,7 @@ else + fi + fi + AC_SUBST(SYSTEM_UCPP) ++AC_SUBST(SYSTEM_UCPP_IS_GCC) + + dnl =================================================================== + dnl Check for epm (not needed for Windows) +diff --git a/idlc/Executable_idlc.mk b/idlc/Executable_idlc.mk +index e194e9049c77..f2f79dcb8911 100644 +--- a/idlc/Executable_idlc.mk ++++ b/idlc/Executable_idlc.mk +@@ -35,10 +35,18 @@ $(eval $(call gb_Executable_add_scanners,idlc,\ + )) + + ifneq (,$(SYSTEM_UCPP)) ++ + $(eval $(call gb_Executable_add_defs,idlc,\ + -DSYSTEM_UCPP \ + -DUCPP=\"file://$(SYSTEM_UCPP)\" \ + )) ++ ++ifneq ($(SYSTEM_UCPP_IS_GCC),) ++$(eval $(call gb_Executable_add_defs,idlc,\ ++ -DSYSTEM_UCPP_IS_GCC \ ++)) ++endif ++ + endif + + $(eval $(call gb_Executable_add_exception_objects,idlc,\ +diff --git a/idlc/source/idlccompile.cxx b/idlc/source/idlccompile.cxx +index bf3325d6821a..1902d63e0cad 100644 +--- a/idlc/source/idlccompile.cxx ++++ b/idlc/source/idlccompile.cxx +@@ -237,7 +237,15 @@ sal_Int32 compileFile(const OString * pathname) + ::std::vector< OUString> lCppArgs; + lCppArgs.emplace_back("-DIDL"); + lCppArgs.emplace_back("-C"); ++#ifdef SYSTEM_UCPP_IS_GCC ++ // -nostdinc Do not search the standard system directories for header files ++ lCppArgs.emplace_back("-nostdinc"); ++ // with gcc cpp, even when not explicitly including anything, /usr/include/stdc-predef.h ++ // gets inserted without -nostdinc ++#else ++ // -zI Do not use the standard (compile-time) include path. + lCppArgs.emplace_back("-zI"); ++#endif + + Options* pOptions = idlc()->getOptions(); + +-- +2.31.1 + diff --git a/SOURCES/0001-math.desktop-include-Spreadsheet-category.patch b/SOURCES/0001-math.desktop-include-Spreadsheet-category.patch new file mode 100644 index 0000000..2969ea8 --- /dev/null +++ b/SOURCES/0001-math.desktop-include-Spreadsheet-category.patch @@ -0,0 +1,39 @@ +From f586051919d047e2b67d32637817c3d96a898494 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= +Date: Wed, 9 Jun 2021 09:13:23 +0100 +Subject: [PATCH] math.desktop include "Spreadsheet" category + +but it's not a spreadsheet + +since... + +commit dad7fe7227fb80a32d3c2c777584dc9d74b9e929 +Date: Thu Jan 2 16:16:55 2014 +0100 + + Fix math categories to make SUSE rpm check happy + +Change-Id: I0397ea12cd7f29f4b0c1f0e0ad76a3429b55c455 +Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116884 +Tested-by: Jenkins +Reviewed-by: Adolfo Jayme Barrientos +(cherry picked from commit 2df2ce1b51d13bc9e203fab1b7eb3c88c906588c) +--- + sysui/desktop/menus/math.desktop | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/sysui/desktop/menus/math.desktop b/sysui/desktop/menus/math.desktop +index d2391be5c234..5a8192ae4abc 100644 +--- a/sysui/desktop/menus/math.desktop ++++ b/sysui/desktop/menus/math.desktop +@@ -21,7 +21,7 @@ Terminal=false + NoDisplay=false + Icon=math + Type=Application +-Categories=Office;Spreadsheet;Education;Science;Math;X-Red-Hat-Base;X-MandrivaLinux-Office-Other; ++Categories=Office;Education;Science;Math;X-Red-Hat-Base;X-MandrivaLinux-Office-Other; + Exec=${UNIXBASISROOTNAME} --math %%FILE%% + MimeType=application/vnd.oasis.opendocument.formula;application/vnd.sun.xml.math;application/vnd.oasis.opendocument.formula-template;text/mathml;application/mathml+xml; + Name=%PRODUCTNAME Math +-- +2.31.1 + diff --git a/SOURCES/0001-rhbz-1918152-fix-FTBFS.patch b/SOURCES/0001-rhbz-1918152-fix-FTBFS.patch new file mode 100644 index 0000000..b2502d1 --- /dev/null +++ b/SOURCES/0001-rhbz-1918152-fix-FTBFS.patch @@ -0,0 +1,26 @@ +From 8b8a49e14c1010c5ab325b64fc3b65524a6a6049 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= +Date: Wed, 20 Jan 2021 09:19:25 +0000 +Subject: [PATCH] rhbz#1918152 fix FTBFS + +Change-Id: I5c03c810d3b2572b0e58c62293add49bd7025e70 +--- + vcl/source/gdi/bitmap3.cxx | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/vcl/source/gdi/bitmap3.cxx b/vcl/source/gdi/bitmap3.cxx +index ec80b03c6008..8ea5c31bee3e 100644 +--- a/vcl/source/gdi/bitmap3.cxx ++++ b/vcl/source/gdi/bitmap3.cxx +@@ -17,8 +17,6 @@ + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +-#include +- + #include + #include + #include +-- +2.28.0 + diff --git a/SOURCES/0001-rhbz-1980800-allow-convert-to-csv-to-write-each-shee.patch b/SOURCES/0001-rhbz-1980800-allow-convert-to-csv-to-write-each-shee.patch new file mode 100644 index 0000000..b1224ac --- /dev/null +++ b/SOURCES/0001-rhbz-1980800-allow-convert-to-csv-to-write-each-shee.patch @@ -0,0 +1,428 @@ +From aec3e189e6e9aa1eb2fe91cbb1c46f308b074cd5 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= +Date: Tue, 13 Jul 2021 12:38:07 +0100 +Subject: [PATCH] rhbz#1980800 allow --convert-to csv to write each sheet to a + separate file + +Related: tdf#135762 except only currently implemented for command line use + +sample usage: +soffice --convert-to csv:"Text - txt - csv (StarCalc)":44,34,UTF8,1,,0,false,true,false,false,false,-1 sample.ods +where the new (11th!) final token ("-1") enables writing each sheet to a +new file based on the suggested target name so output in this example +is files sample-Sheet1.csv and sample-Sheet2.csv + +Only -1 for 'all sheets' vs 0 for existing 'current sheet only' (which +is always sheet 0 from the command line) are currently options but the +token could be expanded in the future to select specific sheets to +export. + +Change-Id: Ib99a120f1a2c8d1008a7a3c59a6b39f572fb346e +Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118850 +Tested-by: Jenkins +Reviewed-by: Eike Rathke +(cherry picked from commit b8903bc106dad036acb3d117e5c4fc955697fe02) + +Related: tdf#135762 Allow --convert-to csv to specify 1-based sheet number + +Same multifile mechanism as for -1 all sheets is used, so + +soffice --convert-to csv:"Text - txt - csv (StarCalc)":44,34,UTF8,1,,0,false,true,false,false,false,2 sample.ods + +writes a file sample-Sheet2.csv + +Change-Id: Ib9248c9561e4e340c88458ac5dfd159e443a4cfd +Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118971 +Reviewed-by: Eike Rathke +Tested-by: Jenkins +(cherry picked from commit fda91f8be16ba760e360940ebafd6244c648cb8c) + +Related: tdf#135762 Suppress cout if not command line + +Change-Id: I9431221aadf97739bb197871f25fa151ef4c391c +Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119294 +Reviewed-by: Eike Rathke +Tested-by: Jenkins +(cherry picked from commit 0cda081c9aa3b3dcb363f97bac60c845ce9a13e0) +--- + desktop/source/app/dispatchwatcher.cxx | 50 +++++++-- + sc/source/ui/dbgui/imoptdlg.cxx | 16 ++- + sc/source/ui/docshell/docsh.cxx | 141 +++++++++++++++++++++---- + sc/source/ui/inc/docsh.hxx | 2 +- + sc/source/ui/inc/imoptdlg.hxx | 6 +- + 5 files changed, 179 insertions(+), 36 deletions(-) + +diff --git a/desktop/source/app/dispatchwatcher.cxx b/desktop/source/app/dispatchwatcher.cxx +index 50b92ecb7834..3df4f34ccf83 100644 +--- a/desktop/source/app/dispatchwatcher.cxx ++++ b/desktop/source/app/dispatchwatcher.cxx +@@ -30,6 +30,7 @@ + #include "officeipcthread.hxx" + #include + #include ++#include + #include + #include + #include +@@ -598,6 +599,8 @@ bool DispatchWatcher::executeDispatchRequests( const std::vector conversionProperties( nProps ); +- conversionProperties[0].Name = "Overwrite"; +- conversionProperties[0].Value <<= true; ++ conversionProperties[0].Name = "ConversionRequestOrigin"; ++ conversionProperties[0].Value <<= OUString("CommandLine"); ++ conversionProperties[1].Name = "Overwrite"; ++ conversionProperties[1].Value <<= true; + +- conversionProperties[1].Name = "FilterName"; ++ conversionProperties[2].Name = "FilterName"; + if( 0 < nFilterOptionsIndex ) + { +- conversionProperties[1].Value <<= aFilter.copy(0, nFilterOptionsIndex); ++ OUString sFilterName = aFilter.copy(0, nFilterOptionsIndex); ++ OUString sFilterOptions = aFilter.copy(nFilterOptionsIndex + 1); ++ ++ if (sFilterName == "Text - txt - csv (StarCalc)") ++ { ++ sal_Int32 nIdx(0); ++ // If the 11th token is '-1' then we export a file ++ // per sheet where the file name is based on the suggested ++ // output filename concatenated with the sheet name, so adjust ++ // the output and overwrite messages ++ // If the 11th token is not present or numeric 0 then the ++ // default sheet is exported with the output filename. If it ++ // is numeric >0 then that sheet (1-based) with the output ++ // filename concatenated with the sheet name. So even if ++ // that is a single file, the multi file target mechanism is ++ // used. ++ const OUString aTok(sFilterOptions.getToken(11, ',', nIdx)); ++ // Actual validity is checked in Calc, here just check for ++ // presence of numeric value at start. ++ bMultiFileTarget = (!aTok.isEmpty() && aTok.toInt32() != 0); ++ } ++ ++ conversionProperties[2].Value <<= sFilterName; + +- conversionProperties[2].Name = "FilterOptions"; +- conversionProperties[2].Value <<= aFilter.copy(nFilterOptionsIndex + 1); ++ conversionProperties[3].Name = "FilterOptions"; ++ conversionProperties[3].Value <<= sFilterOptions; + } + else + { +- conversionProperties[1].Value <<= aFilter; ++ conversionProperties[2].Value <<= aFilter; + } + + if ( !aImgOut.isEmpty() ) + { ++ assert(conversionProperties[nProps-1].Name.isEmpty()); + conversionProperties[nProps-1].Name = "ImageFilter"; + conversionProperties[nProps-1].Value <<= aImgOut; + } +@@ -639,9 +667,11 @@ bool DispatchWatcher::executeDispatchRequests( const std::vector " << aTargetURL8; ++ std::cout << "convert " << aSource8; ++ if (!bMultiFileTarget) ++ std::cout << " -> " << aTargetURL8; + std::cout << " using filter : " << OUStringToOString(aFilter, osl_getThreadTextEncoding()) << std::endl; +- if (FStatHelper::IsDocument(aOutFile)) ++ if (!bMultiFileTarget && FStatHelper::IsDocument(aOutFile)) + std::cout << "Overwriting: " << OUStringToOString(aTempName, osl_getThreadTextEncoding()) << std::endl ; + } + try +diff --git a/sc/source/ui/dbgui/imoptdlg.cxx b/sc/source/ui/dbgui/imoptdlg.cxx +index 071f1b0257bc..a362e4df0ee7 100644 +--- a/sc/source/ui/dbgui/imoptdlg.cxx ++++ b/sc/source/ui/dbgui/imoptdlg.cxx +@@ -20,6 +20,7 @@ + #include + #include + #include ++#include + #include + #include + +@@ -43,6 +44,7 @@ ScImportOptions::ScImportOptions( const OUString& rStr ) + bSaveNumberAsSuch = true; + bSaveFormulas = false; + bRemoveSpace = false; ++ nSheetToExport = 0; + sal_Int32 nTokenCount = comphelper::string::getTokenCount(rStr, ','); + if ( nTokenCount < 3 ) + return; +@@ -77,6 +79,16 @@ ScImportOptions::ScImportOptions( const OUString& rStr ) + bSaveFormulas = rStr.getToken(0, ',', nIdx) == "true"; + if ( nTokenCount >= 11 ) + bRemoveSpace = rStr.getToken(0, ',', nIdx) == "true"; ++ if ( nTokenCount >= 12 ) ++ { ++ const OUString aTok(rStr.getToken(0, ',', nIdx)); ++ if (aTok == "-1") ++ nSheetToExport = -1; // all ++ else if (aTok.isEmpty() || CharClass::isAsciiNumeric(aTok)) ++ nSheetToExport = aTok.toInt32(); ++ else ++ nSheetToExport = -23; // invalid, force error ++ } + } + } + +@@ -99,7 +111,9 @@ OUString ScImportOptions::BuildString() const + "," + + OUString::boolean( bSaveFormulas ) + // "save formulas": not in ScAsciiOptions + "," + +- OUString::boolean( bRemoveSpace ); // same as "Remove space" in ScAsciiOptions ++ OUString::boolean( bRemoveSpace ) + // same as "Remove space" in ScAsciiOptions ++ "," + ++ OUString::number(nSheetToExport) ; // Only available for command line --convert-to + + return aResult; + } +diff --git a/sc/source/ui/docshell/docsh.cxx b/sc/source/ui/docshell/docsh.cxx +index 91020db0b2e0..5fdfddd0c89b 100644 +--- a/sc/source/ui/docshell/docsh.cxx ++++ b/sc/source/ui/docshell/docsh.cxx +@@ -44,6 +44,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -119,6 +120,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -1925,7 +1927,7 @@ void escapeTextSep(sal_Int32 nPos, const StrT& rStrDelim, StrT& rStr) + + } + +-void ScDocShell::AsciiSave( SvStream& rStream, const ScImportOptions& rAsciiOpt ) ++void ScDocShell::AsciiSave( SvStream& rStream, const ScImportOptions& rAsciiOpt, SCTAB nTab ) + { + sal_Unicode cDelim = rAsciiOpt.nFieldSepCode; + sal_Unicode cStrDelim = rAsciiOpt.nTextSepCode; +@@ -1971,7 +1973,6 @@ void ScDocShell::AsciiSave( SvStream& rStream, const ScImportOptions& rAsciiOpt + + SCCOL nStartCol = 0; + SCROW nStartRow = 0; +- SCTAB nTab = GetSaveTab(); + SCCOL nEndCol; + SCROW nEndRow; + m_aDocument.GetCellArea( nTab, nEndCol, nEndRow ); +@@ -2389,35 +2390,129 @@ bool ScDocShell::ConvertTo( SfxMedium &rMed ) + } + else if (aFltName == pFilterAscii) + { +- SvStream* pStream = rMed.GetOutStream(); +- if (pStream) ++ OUString sItStr; ++ SfxItemSet* pSet = rMed.GetItemSet(); ++ const SfxPoolItem* pItem; ++ if ( pSet && SfxItemState::SET == ++ pSet->GetItemState( SID_FILE_FILTEROPTIONS, true, &pItem ) ) + { +- OUString sItStr; +- SfxItemSet* pSet = rMed.GetItemSet(); +- const SfxPoolItem* pItem; +- if ( pSet && SfxItemState::SET == +- pSet->GetItemState( SID_FILE_FILTEROPTIONS, true, &pItem ) ) ++ sItStr = static_cast(pItem)->GetValue(); ++ } ++ ++ if ( sItStr.isEmpty() ) ++ { ++ // default for ascii export (from API without options): ++ // ISO8859-1/MS_1252 encoding, comma, double quotes ++ ++ ScImportOptions aDefOptions( ',', '"', RTL_TEXTENCODING_MS_1252 ); ++ sItStr = aDefOptions.BuildString(); ++ } ++ ++ weld::WaitObject aWait( GetActiveDialogParent() ); ++ ScImportOptions aOptions( sItStr ); ++ ++ if (aOptions.nSheetToExport) ++ { ++ // Only from command line --convert-to ++ bRet = true; ++ ++ // Verbose only from command line, not UI (in case we actually ++ // implement that) nor macro filter options. ++ bool bVerbose = false; ++ const css::uno::Sequence & rArgs = rMed.GetArgs(); ++ const auto pProp = std::find_if( rArgs.begin(), rArgs.end(), ++ [](const css::beans::PropertyValue& rProp) { return rProp.Name == "ConversionRequestOrigin"; }); ++ if (pProp != rArgs.end()) + { +- sItStr = static_cast(pItem)->GetValue(); ++ OUString aOrigin; ++ pProp->Value >>= aOrigin; ++ bVerbose = (aOrigin == "CommandLine"); + } + +- if ( sItStr.isEmpty() ) ++ SCTAB nStartTab; ++ SCTAB nCount = m_aDocument.GetTableCount(); ++ if (aOptions.nSheetToExport == -1) + { +- // default for ascii export (from API without options): +- // ISO8859-1/MS_1252 encoding, comma, double quotes +- +- ScImportOptions aDefOptions( ',', '"', RTL_TEXTENCODING_MS_1252 ); +- sItStr = aDefOptions.BuildString(); ++ // All sheets. ++ nStartTab = 0; ++ } ++ else if (0 < aOptions.nSheetToExport && aOptions.nSheetToExport <= nCount) ++ { ++ // One sheet, 1-based. ++ nCount = aOptions.nSheetToExport; ++ nStartTab = nCount - 1; ++ } ++ else ++ { ++ // Usage error, no export but log. ++ if (bVerbose) ++ { ++ if (aOptions.nSheetToExport < 0) ++ std::cout << "Bad sheet number string given." << std::endl; ++ else ++ std::cout << "No sheet number " << aOptions.nSheetToExport ++ << ", number of sheets is " << nCount << std::endl; ++ } ++ nStartTab = 0; ++ nCount = 0; ++ SetError(SCERR_EXPORT_DATA); ++ bRet = false; + } + +- weld::WaitObject aWait( GetActiveDialogParent() ); +- ScImportOptions aOptions( sItStr ); +- AsciiSave( *pStream, aOptions ); +- bRet = true; ++ INetURLObject aURLObject(rMed.GetURLObject()); ++ OUString sExt = aURLObject.CutExtension(); ++ OUString sBaseName = aURLObject.GetLastName(); ++ aURLObject.CutLastName(); + +- if (m_aDocument.GetTableCount() > 1) +- if (!rMed.GetError()) +- rMed.SetError(SCWARN_EXPORT_ASCII); ++ for (SCTAB i = nStartTab; i < nCount; ++i) ++ { ++ OUString sTabName; ++ if (!m_aDocument.GetName(i, sTabName)) ++ sTabName = OUString::number(i); ++ INetURLObject aSheetURLObject(aURLObject); ++ OUString sFileName = sBaseName + "-" + sTabName; ++ if (!sExt.isEmpty()) ++ sFileName = sFileName + "." + sExt; ++ aSheetURLObject.Append(sFileName); ++ ++ // log similar to DispatchWatcher::executeDispatchRequests ++ OUString aOutFile = aSheetURLObject.GetMainURL(INetURLObject::DecodeMechanism::NONE); ++ if (bVerbose) ++ { ++ OUString aDisplayedName; ++ if (osl::FileBase::E_None != osl::FileBase::getSystemPathFromFileURL(aOutFile, aDisplayedName)) ++ aDisplayedName = aOutFile; ++ std::cout << "Writing sheet " << OUStringToOString(sTabName, osl_getThreadTextEncoding()) << " -> " ++ << OUStringToOString(aDisplayedName, osl_getThreadTextEncoding()) ++ << std::endl; ++ ++ if (FStatHelper::IsDocument(aOutFile)) ++ std::cout << "Overwriting: " << OUStringToOString(aDisplayedName, osl_getThreadTextEncoding()) ++ << std::endl ; ++ } ++ ++ std::unique_ptr xStm = ::utl::UcbStreamHelper::CreateStream(aOutFile, StreamMode::TRUNC | StreamMode::WRITE); ++ if (!xStm) ++ { ++ SetError(ERRCODE_IO_CANTCREATE); ++ bRet = false; ++ break; ++ } ++ AsciiSave(*xStm, aOptions, i); ++ } ++ } ++ else ++ { ++ SvStream* pStream = rMed.GetOutStream(); ++ if (pStream) ++ { ++ AsciiSave(*pStream, aOptions, GetSaveTab()); ++ bRet = true; ++ ++ if (m_aDocument.GetTableCount() > 1) ++ if (!rMed.GetError()) ++ rMed.SetError(SCWARN_EXPORT_ASCII); ++ } + } + } + else if (aFltName == pFilterDBase) +diff --git a/sc/source/ui/inc/docsh.hxx b/sc/source/ui/inc/docsh.hxx +index 41c0b30a42a8..3aa5f6caf311 100644 +--- a/sc/source/ui/inc/docsh.hxx ++++ b/sc/source/ui/inc/docsh.hxx +@@ -227,7 +227,7 @@ public: + + ScDrawLayer* MakeDrawLayer(); + +- void AsciiSave( SvStream& rStream, const ScImportOptions& rOpt ); ++ void AsciiSave( SvStream& rStream, const ScImportOptions& rOpt, SCTAB nTab ); + + void Execute( SfxRequest& rReq ); + void GetState( SfxItemSet &rSet ); +diff --git a/sc/source/ui/inc/imoptdlg.hxx b/sc/source/ui/inc/imoptdlg.hxx +index bac941c2a377..382067d67813 100644 +--- a/sc/source/ui/inc/imoptdlg.hxx ++++ b/sc/source/ui/inc/imoptdlg.hxx +@@ -32,7 +32,8 @@ public: + ScImportOptions( sal_Unicode nFieldSep, sal_Unicode nTextSep, rtl_TextEncoding nEnc ) + : nFieldSepCode(nFieldSep), nTextSepCode(nTextSep), + bFixedWidth(false), bSaveAsShown(false), bQuoteAllText(false), +- bSaveNumberAsSuch(true), bSaveFormulas(false), bRemoveSpace(false) ++ bSaveNumberAsSuch(true), bSaveFormulas(false), bRemoveSpace(false), ++ nSheetToExport(0) + { SetTextEncoding( nEnc ); } + + ScImportOptions& operator=( const ScImportOptions& rCpy ) = default; +@@ -51,6 +52,9 @@ public: + bool bSaveNumberAsSuch; + bool bSaveFormulas; + bool bRemoveSpace; ++ // "0" for 'current sheet', "-1" for all sheets (each to a separate file), ++ // or 1-based specific sheet number (to a separate file). ++ sal_Int32 nSheetToExport; + }; + + #endif // INCLUDED_SC_SOURCE_UI_INC_IMOPTDLG_HXX +-- +2.31.1 + diff --git a/SOURCES/0001-tdf-121546-sw-don-t-use-undo-array-s-m_pOutlineNodes.patch b/SOURCES/0001-tdf-121546-sw-don-t-use-undo-array-s-m_pOutlineNodes.patch new file mode 100644 index 0000000..8840208 --- /dev/null +++ b/SOURCES/0001-tdf-121546-sw-don-t-use-undo-array-s-m_pOutlineNodes.patch @@ -0,0 +1,72 @@ +From bced744fea67d50242701ed55271d40e803ac14e Mon Sep 17 00:00:00 2001 +From: Michael Stahl +Date: Mon, 15 Nov 2021 17:29:59 +0100 +Subject: [PATCH] tdf#121546 sw: don't use undo array's m_pOutlineNodes + +It's pointless. + +Change-Id: I304c123bffc16e6133d2953bc9a4f7a3afad14ef +--- + sw/source/core/docnode/ndnum.cxx | 2 ++ + sw/source/core/docnode/nodes.cxx | 18 ++++++++++++------ + 2 files changed, 14 insertions(+), 6 deletions(-) + +diff --git a/sw/source/core/docnode/ndnum.cxx b/sw/source/core/docnode/ndnum.cxx +index b3d66affa66e..a7b898ee5f0a 100644 +--- a/sw/source/core/docnode/ndnum.cxx ++++ b/sw/source/core/docnode/ndnum.cxx +@@ -38,6 +38,8 @@ bool SwOutlineNodes::Seek_Entry(SwNode* rP, size_type* pnPos) const + + void SwNodes::UpdateOutlineNode(SwNode & rNd) + { ++ assert(IsDocNodes()); // no point in m_pOutlineNodes for undo nodes ++ + SwTextNode * pTextNd = rNd.GetTextNode(); + + if (!(pTextNd && pTextNd->IsOutlineStateChanged())) +diff --git a/sw/source/core/docnode/nodes.cxx b/sw/source/core/docnode/nodes.cxx +index a7a2078b2091..ab3eb62ac9f2 100644 +--- a/sw/source/core/docnode/nodes.cxx ++++ b/sw/source/core/docnode/nodes.cxx +@@ -109,6 +109,16 @@ SwNodes::~SwNodes() + m_pEndOfContent.reset(); + } + ++static bool IsInsertOutline(SwNodes const& rNodes, sal_uLong const nIndex) ++{ ++ if (!rNodes.IsDocNodes()) ++ { ++ return false; ++ } ++ return nIndex < rNodes.GetEndOfRedlines().StartOfSectionNode()->GetIndex() ++ || rNodes.GetEndOfRedlines().GetIndex() < nIndex; ++} ++ + void SwNodes::ChgNode( SwNodeIndex const & rDelPos, sal_uLong nSz, + SwNodeIndex& rInsPos, bool bNewFrames ) + { +@@ -124,9 +134,7 @@ void SwNodes::ChgNode( SwNodeIndex const & rDelPos, sal_uLong nSz, + + // NEVER include nodes from the RedLineArea + sal_uLong nNd = rInsPos.GetIndex(); +- bool bInsOutlineIdx = ( +- rNds.GetEndOfRedlines().StartOfSectionNode()->GetIndex() >= nNd || +- nNd >= rNds.GetEndOfRedlines().GetIndex() ); ++ bool const bInsOutlineIdx = IsInsertOutline(rNds, nNd); + + if( &rNds == this ) // if in the same node array -> move + { +@@ -478,9 +486,7 @@ bool SwNodes::MoveNodes( const SwNodeRange& aRange, SwNodes & rNodes, + + // NEVER include nodes from the RedLineArea + sal_uLong nNd = aIdx.GetIndex(); +- bool bInsOutlineIdx = ( rNodes.GetEndOfRedlines(). +- StartOfSectionNode()->GetIndex() >= nNd || +- nNd >= rNodes.GetEndOfRedlines().GetIndex() ); ++ bool const bInsOutlineIdx = IsInsertOutline(rNodes, nNd); + + if( bNewFrames ) + // delete all frames +-- +2.33.1 + diff --git a/SOURCES/0001-tdf-158302-fix-build-against-system-libxml-2.12.patch b/SOURCES/0001-tdf-158302-fix-build-against-system-libxml-2.12.patch new file mode 100644 index 0000000..b59552a --- /dev/null +++ b/SOURCES/0001-tdf-158302-fix-build-against-system-libxml-2.12.patch @@ -0,0 +1,301 @@ +From c8f7408db73d2f2ccacb25a2b4fef8dfebdfc6cb Mon Sep 17 00:00:00 2001 +From: Miklos Vajna +Date: Mon, 27 Nov 2023 08:02:59 +0100 +Subject: [PATCH] tdf#158302 fix build against system-libxml-2.12 + +Seen in a fedora:40 container, using --with-system-libcmis, +--with-system-liblangtag and --with-system-xmlsec. + +Change-Id: I9d748d3dc0b70dbfdfcb6b99c9ce8440bda6f326 +Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159980 +Tested-by: Jenkins +Reviewed-by: Miklos Vajna +--- + drawinglayer/source/tools/primitive2dxmldump.cxx | 1 + + filter/source/xsltfilter/LibXSLTTransformer.cxx | 2 +- + helpcompiler/source/HelpLinker.cxx | 4 ++++ + include/xmloff/xmltoken.hxx | 2 +- + sax/source/fastparser/fastparser.cxx | 2 +- + sc/source/core/tool/interpr7.cxx | 1 + + sc/source/filter/xml/XMLExportDataPilot.cxx | 2 +- + sc/source/filter/xml/XMLExportDatabaseRanges.cxx | 2 +- + sc/source/filter/xml/xmlfilti.cxx | 6 +++--- + unoxml/source/dom/attr.cxx | 1 + + unoxml/source/dom/document.cxx | 1 + + unoxml/source/dom/documentbuilder.cxx | 1 + + unoxml/source/dom/entity.cxx | 1 + + unoxml/source/xpath/xpathapi.cxx | 7 ++++++- + xmloff/source/core/xmltoken.cxx | 2 +- + xmloff/source/style/PageMasterStyleMap.cxx | 2 +- + xmlsecurity/inc/xmlsec-wrapper.h | 1 + + xmlsecurity/inc/xmlsec/saxhelper.hxx | 1 + + 18 files changed, 28 insertions(+), 11 deletions(-) + +diff --git a/drawinglayer/source/tools/primitive2dxmldump.cxx b/drawinglayer/source/tools/primitive2dxmldump.cxx +index 76aefec902ea..f3b9ef1bc919 100644 +--- a/drawinglayer/source/tools/primitive2dxmldump.cxx ++++ b/drawinglayer/source/tools/primitive2dxmldump.cxx +@@ -15,6 +15,7 @@ + + #include + #include ++#include + #include + + #include +diff --git a/filter/source/xsltfilter/LibXSLTTransformer.cxx b/filter/source/xsltfilter/LibXSLTTransformer.cxx +index 1a7c34805f1b..5e9a7c4bcd35 100644 +--- a/filter/source/xsltfilter/LibXSLTTransformer.cxx ++++ b/filter/source/xsltfilter/LibXSLTTransformer.cxx +@@ -333,7 +333,7 @@ namespace XSLT + } + else + { +- xmlErrorPtr lastErr = xmlGetLastError(); ++ const xmlError* lastErr = xmlGetLastError(); + OUString msg; + if (lastErr) + msg = OStringToOUString(lastErr->message, RTL_TEXTENCODING_UTF8); +diff --git a/helpcompiler/source/HelpLinker.cxx b/helpcompiler/source/HelpLinker.cxx +index 3d52834dbe6b..898a8b26392a 100644 +--- a/helpcompiler/source/HelpLinker.cxx ++++ b/helpcompiler/source/HelpLinker.cxx +@@ -815,7 +815,11 @@ static const HelpProcessingException* GpXMLParsingException = nullptr; + + extern "C" { + ++#if LIBXML_VERSION >= 21200 ++static void StructuredXMLErrorFunction(SAL_UNUSED_PARAMETER void *, const xmlError* error) ++#else + static void StructuredXMLErrorFunction(SAL_UNUSED_PARAMETER void *, xmlErrorPtr error) ++#endif + { + std::string aErrorMsg = error->message; + std::string aXMLParsingFile; +diff --git a/include/xmloff/xmltoken.hxx b/include/xmloff/xmltoken.hxx +index 4e6441841774..ba42fae4d035 100644 +--- a/include/xmloff/xmltoken.hxx ++++ b/include/xmloff/xmltoken.hxx +@@ -744,7 +744,7 @@ namespace xmloff::token { + XML_EMBEDDED_VISIBLE_AREA, + XML_EMBOSSED, + XML_EMISSIVE_COLOR, +- XML_EMPTY, ++ XML_TOKEN_EMPTY, + XML_EMPTY_LINE_REFRESH, + XML_ENABLE_NUMBERING, + XML_ENABLED, +diff --git a/sax/source/fastparser/fastparser.cxx b/sax/source/fastparser/fastparser.cxx +index ec8065016a12..e0338e053cf0 100644 +--- a/sax/source/fastparser/fastparser.cxx ++++ b/sax/source/fastparser/fastparser.cxx +@@ -578,7 +578,7 @@ Event& Entity::getEvent( CallbackType aType ) + OUString lclGetErrorMessage( xmlParserCtxtPtr ctxt, std::u16string_view sSystemId, sal_Int32 nLine ) + { + const char* pMessage; +- xmlErrorPtr error = xmlCtxtGetLastError( ctxt ); ++ const xmlError* error = xmlCtxtGetLastError( ctxt ); + if( error && error->message ) + pMessage = error->message; + else +diff --git a/sc/source/core/tool/interpr7.cxx b/sc/source/core/tool/interpr7.cxx +index 352c7cf70e45..ecb4ea346396 100644 +--- a/sc/source/core/tool/interpr7.cxx ++++ b/sc/source/core/tool/interpr7.cxx +@@ -31,6 +31,7 @@ + #include + #include + #include ++#include + + using namespace com::sun::star; + +diff --git a/sc/source/filter/xml/XMLExportDataPilot.cxx b/sc/source/filter/xml/XMLExportDataPilot.cxx +index da65bec0dab7..bd5f16d828ff 100644 +--- a/sc/source/filter/xml/XMLExportDataPilot.cxx ++++ b/sc/source/filter/xml/XMLExportDataPilot.cxx +@@ -123,7 +123,7 @@ void ScXMLExportDataPilot::WriteDPCondition(const ScQueryEntry& aQueryEntry, boo + + if (aQueryEntry.IsQueryByEmpty()) + { +- rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_OPERATOR, GetXMLToken(XML_EMPTY)); ++ rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_OPERATOR, GetXMLToken(XML_TOKEN_EMPTY)); + } + else if (aQueryEntry.IsQueryByNonEmpty()) + { +diff --git a/sc/source/filter/xml/XMLExportDatabaseRanges.cxx b/sc/source/filter/xml/XMLExportDatabaseRanges.cxx +index 6905e02d651b..e4307065bd92 100644 +--- a/sc/source/filter/xml/XMLExportDatabaseRanges.cxx ++++ b/sc/source/filter/xml/XMLExportDatabaseRanges.cxx +@@ -376,7 +376,7 @@ private: + case SC_EQUAL: + { + if (rEntry.IsQueryByEmpty()) +- return GetXMLToken(XML_EMPTY); ++ return GetXMLToken(XML_TOKEN_EMPTY); + else if (rEntry.IsQueryByNonEmpty()) + return GetXMLToken(XML_NOEMPTY); + +diff --git a/sc/source/filter/xml/xmlfilti.cxx b/sc/source/filter/xml/xmlfilti.cxx +index 7585ce0c50fa..61f7cfe4a349 100644 +--- a/sc/source/filter/xml/xmlfilti.cxx ++++ b/sc/source/filter/xml/xmlfilti.cxx +@@ -370,7 +370,7 @@ void ScXMLConditionContext::GetOperator( + rEntry.eOp = SC_BOTPERC; + else if (IsXMLToken(aOpStr, XML_BOTTOM_VALUES)) + rEntry.eOp = SC_BOTVAL; +- else if (IsXMLToken(aOpStr, XML_EMPTY)) ++ else if (IsXMLToken(aOpStr, XML_TOKEN_EMPTY)) + rEntry.SetQueryByEmpty(); + else if (aOpStr == u">") + rEntry.eOp = SC_GREATER; +@@ -422,7 +422,7 @@ void SAL_CALL ScXMLConditionContext::endFastElement( sal_Int32 /*nElement*/ ) + if (maQueryItems.empty()) + { + ScQueryEntry::Item& rItem = rEntry.GetQueryItem(); +- if (IsXMLToken(sOperator, XML_EMPTY)) ++ if (IsXMLToken(sOperator, XML_TOKEN_EMPTY)) + return; + if (IsXMLToken(sDataType, XML_NUMBER)) + { +@@ -753,7 +753,7 @@ void SAL_CALL ScXMLDPConditionContext::endFastElement( sal_Int32 /*nElement*/ ) + else + aFilterField.eConnect = SC_AND; + pFilterContext->SetIsCaseSensitive(bIsCaseSensitive); +- if (IsXMLToken(sOperator, XML_EMPTY)) ++ if (IsXMLToken(sOperator, XML_TOKEN_EMPTY)) + aFilterField.SetQueryByEmpty(); + else if (IsXMLToken(sOperator, XML_NOEMPTY)) + aFilterField.SetQueryByNonEmpty(); +diff --git a/unoxml/source/dom/attr.cxx b/unoxml/source/dom/attr.cxx +index dd974d910edb..d8d873cdf055 100644 +--- a/unoxml/source/dom/attr.cxx ++++ b/unoxml/source/dom/attr.cxx +@@ -22,6 +22,7 @@ + #include + + #include ++#include + + #include + #include +diff --git a/unoxml/source/dom/document.cxx b/unoxml/source/dom/document.cxx +index cb48bd1635f8..0825fc2cd7ed 100644 +--- a/unoxml/source/dom/document.cxx ++++ b/unoxml/source/dom/document.cxx +@@ -41,6 +41,7 @@ + #include + + #include ++#include + + #include + +diff --git a/unoxml/source/dom/documentbuilder.cxx b/unoxml/source/dom/documentbuilder.cxx +index c3cd7663d2fc..3898d58e4be4 100644 +--- a/unoxml/source/dom/documentbuilder.cxx ++++ b/unoxml/source/dom/documentbuilder.cxx +@@ -22,6 +22,7 @@ + #include + + #include ++#include + + #include + +diff --git a/unoxml/source/dom/entity.cxx b/unoxml/source/dom/entity.cxx +index ccc8a0872499..98909dfe8f12 100644 +--- a/unoxml/source/dom/entity.cxx ++++ b/unoxml/source/dom/entity.cxx +@@ -22,6 +22,7 @@ + #include + + #include ++#include + + using namespace css::uno; + using namespace css::xml::dom; +diff --git a/unoxml/source/xpath/xpathapi.cxx b/unoxml/source/xpath/xpathapi.cxx +index a60083983882..c2b753783176 100644 +--- a/unoxml/source/xpath/xpathapi.cxx ++++ b/unoxml/source/xpath/xpathapi.cxx +@@ -26,6 +26,7 @@ + #include + #include + #include ++#include + + #include + +@@ -217,7 +218,7 @@ namespace XPath + return selectSingleNode(contextNode, expr); + } + +- static OUString make_error_message(xmlErrorPtr pError) ++ static OUString make_error_message(const xmlError* pError) + { + OUStringBuffer buf; + if (pError) { +@@ -259,7 +260,11 @@ namespace XPath + SAL_WARN("unoxml", "libxml2 error: " << str); + } + ++#if LIBXML_VERSION >= 21200 ++ static void structured_error_func(void *, const xmlError* error) ++#else + static void structured_error_func(void *, xmlErrorPtr error) ++#endif + { + SAL_WARN("unoxml", "libxml2 error: " << make_error_message(error)); + } +diff --git a/xmloff/source/core/xmltoken.cxx b/xmloff/source/core/xmltoken.cxx +index 6879f37db295..e11dc0d16111 100644 +--- a/xmloff/source/core/xmltoken.cxx ++++ b/xmloff/source/core/xmltoken.cxx +@@ -756,7 +756,7 @@ namespace xmloff::token { + TOKEN( "embedded-visible-area", XML_EMBEDDED_VISIBLE_AREA ), + TOKEN( "embossed", XML_EMBOSSED ), + TOKEN( "emissive-color", XML_EMISSIVE_COLOR ), +- TOKEN( "empty", XML_EMPTY ), ++ TOKEN( "empty", XML_TOKEN_EMPTY ), + TOKEN( "empty-line-refresh", XML_EMPTY_LINE_REFRESH ), + TOKEN( "enable-numbering", XML_ENABLE_NUMBERING ), + TOKEN( "enabled", XML_ENABLED ), +diff --git a/xmloff/source/style/PageMasterStyleMap.cxx b/xmloff/source/style/PageMasterStyleMap.cxx +index 7b2cab4751aa..6f631289672b 100644 +--- a/xmloff/source/style/PageMasterStyleMap.cxx ++++ b/xmloff/source/style/PageMasterStyleMap.cxx +@@ -157,7 +157,7 @@ const XMLPropertyMapEntry aXMLPageMasterStyleMap[] = + PLMAP( PROP_FootnoteLineRelativeWidth, XML_NAMESPACE_STYLE, XML__EMPTY, XML_TYPE_PERCENT8|MID_FLAG_SPECIAL_ITEM, CTF_PM_FTN_LINE_WIDTH ), + PLMAP( PROP_FootnoteLineTextDistance, XML_NAMESPACE_STYLE, XML__EMPTY, XML_TYPE_MEASURE|MID_FLAG_SPECIAL_ITEM, CTF_PM_FTN_LINE_DISTANCE ), + PLMAP( PROP_FootnoteLineWeight, XML_NAMESPACE_STYLE, XML_FOOTNOTE_SEP, XML_TYPE_MEASURE16|MID_FLAG_ELEMENT_ITEM, CTF_PM_FTN_LINE_WEIGHT ), +- PLMAP( PROP_FootnoteLineStyle, XML_NAMESPACE_STYLE, XML_EMPTY, XML_TYPE_STRING|MID_FLAG_ELEMENT_ITEM, CTF_PM_FTN_LINE_STYLE ), ++ PLMAP( PROP_FootnoteLineStyle, XML_NAMESPACE_STYLE, XML_TOKEN_EMPTY, XML_TYPE_STRING|MID_FLAG_ELEMENT_ITEM, CTF_PM_FTN_LINE_STYLE ), + PLMAP_EXT(PROP_GutterMargin, XML_NAMESPACE_LO_EXT, XML_MARGIN_GUTTER, XML_TYPE_MEASURE, CTF_PM_MARGINGUTTER), + + ////////////////////////////////////////////////////////////////////////// +diff --git a/xmlsecurity/inc/xmlsec/saxhelper.hxx b/xmlsecurity/inc/xmlsec/saxhelper.hxx +index a49ccef1894c..a5863ffd0e2a 100644 +--- a/xmlsecurity/inc/xmlsec/saxhelper.hxx ++++ b/xmlsecurity/inc/xmlsec/saxhelper.hxx +@@ -23,6 +23,7 @@ + + #include + ++#include + #include + + #include +-- +2.42.0 + +--- libreoffice-7.6.3.2/xmlsecurity/inc/xmlsec-wrapper.h~ 2023-11-16 17:06:03.000000000 -0600 ++++ libreoffice-7.6.3.2/xmlsecurity/inc/xmlsec-wrapper.h 2023-11-27 10:23:27.919378638 -0600 +@@ -28,6 +28,7 @@ + #define XMLSEC_NO_SIZE_T + #endif + ++#include + #include + #include + #include diff --git a/SOURCES/gpgkey-C2839ECAD9408FBE9531C3E9F434A1EFAFEEAEA3.gpg.asc b/SOURCES/gpgkey-C2839ECAD9408FBE9531C3E9F434A1EFAFEEAEA3.gpg.asc new file mode 100644 index 0000000..5f4f64d --- /dev/null +++ b/SOURCES/gpgkey-C2839ECAD9408FBE9531C3E9F434A1EFAFEEAEA3.gpg.asc @@ -0,0 +1,51 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mQINBEyzEr0BEADT441wUITsTwDA2nM3kmUhGrzTdxZB5xv/E1ZJCw63qWdmdTdW +NZDfNDuLs4r2VjlEoA3xGK6jgnQvyAoNj0yiEbW/JedHHgOiVdXDlkgkY58myafT +FXqDLzTXVrsNnay0GS8XrNjptZJPhEPBvNUdkqpA9B7RTkfaXj779Pf/AeFMZVLl +UAci5RA0NNF910GHwoXT6SEv2PGoawsphnfmMVdKh9wz7asbtKXEmotCwX3k045x +LsIVK5ANOi+BI9C3LkrrFJWw2XHqDW2ulwCJ0L5QNSjOuY/v8REODwIXamvvdZOz +XBKSIzDOalJqFCHls3YlGyFw1knr6BAOmVOm32YtNTCLbVA/iK55fZWnUCjD3a4G +xz4qpQYWfpxhOmlHpk5JkraSNHzCc7SB43DwcHF5ecXHttMhO8MoN/bAZBgCuLGF +EwNvwFbDwIWo07mlv7wD8i1rtUCvLywJc5YL2PbjCLfB1Q4YzDX1EWnjKdnAsxxK +ftrx1DFlxzUF+TaHbLTPttUcsWQaL8wITznoWIwdIWlo2woPgWIpUXMOYwYV31Oo +fgmroHa3V4NOvkke09uhaZawg5yZCoRFohhfKPqT1ZrJ9SnRbW/WR3VTVY76ht5k +RuV3eb2VWBmPU9zn56Tbe6dvFkBuzHH1JdECAqy1BzFcmQQFBebFzf1XAQARAQAB +tEhMaWJyZU9mZmljZSBCdWlsZCBUZWFtIChDT0RFIFNJR05JTkcgS0VZKSA8YnVp +bGRAZG9jdW1lbnRmb3VuZGF0aW9uLm9yZz6JAjcEEwEKACEFAkyzEr0CGwMFCwkI +BwMFFQoJCAsFFgIDAQACHgECF4AACgkQ9DSh76/urqOc4w//X+74QlyRalcuLNw3 +oJKB1+1z6xxhhpwg1kw5cMMrGu0w0YoPvLDKaiS02DdkIaXDECcQTOoEh7/bYbZq +6OtE1WyxqHYYOPK5yul5FRwZ5k5HZ7pDFcKCQ72UgWhz+QznRhgZ0jwEWl5Ln3rw +JpSynIvTXHmQogId0xmcrNQPyckzzugGx4qZFinSOmDGwTgG14NU3vat2iek37Ph +BLh5V8ohlEoccwwPejtKEWQudg0Q8K7uBuqLUhnJoZodEytqpOvtysuPtGxGXnmD +7oXtBVEF3X6eFRXDIp81cx2isHK4Krf4z4T9KUimNLHjWRa+ZQtp2pZLHQlblfsn +CUf6TYZ0Yi909EhcM/hxAgBZXellOCQ/8U2cJsTUyN5Dp1wbf6X0uK4uaed1/037 +EGLAO6PP6WQz6jWd1/hhsQ5oAmdjkzlMFEfKNeIIDuKMOjXcTvM8/KRXhufwICvS +FBlSIveHfDFWCvOVgq0VjAY7NFMFKRUnRHB58qBamtyhOyscRIvT5QH8HYfUA/YN +l9FguczYUIQi3t+H1hoHIywdtmRuhYx5WlIUe8FO9QD5RMPbBjVbkCYgdHdxgnJD +KCoRGsoKlLB7UZc4Ak9j6plZbYtFRonm2MjU4zxblCFNuEqVQ0V/y6/OIGpBYF9Y +aEAtTgEJd9OmmDCM3d8O0zZHYma5Ag0ETLMSvQEQAMDp0HxSDWd+2Od/aJutCMFe +8tfw7+nP9gfHOCUqesb88QvRMJgVY6z1aNdMllxTKlsxUiuA6uNcrUAkzDp/qRWR +58rWIO642PLifng3urJ1cDbSKC+K4RHpQC+hXllMKLqq8dwNy1LO4fPo9SdtUF4B +ev6enKmo4yCiOGv2tvztPh9gMGYoDncaOsS0t2UPr2MMQIVUmmIzfJBkdOxbZiWO +doeNbWsYJHQaO+Ahal6SjPHKzhdjeXhZzHl1vqeDkV4MXHprrOwXNXwPiEpkZe2O +dc7yaMkQc0k8WRrfKHApbnwDx6Mi8HYaf+LvRq7P0eMO9osD1q44wQQvVzk199zp +MMHS5/kAv7RBNmDOSJQIZ4zT4lzRDODjMf01Ljn02zon12GfJo0WbbpmLulta7uj +HgMrUU54by8WPFGW0fljXiDX0EpkHhxUsUsfaNfBsFnE+sRxQjNF/ljvofkyApI2 +1OjtEa9krwvgDqaXsL+a2076OsoFpORlTZ30REb0eRS6rEt8M+7s4xTaA7GFxlY/ +N+bnaM8m+ItygfFHHW4H0wLbbgajDeooSTgaheVNF5V9HS0EkN4MNVvtJH7J6drd +iR1QVhX87n7+JtQzTtCOyfeKjaB+kcbAm/2VOFOeHdig5+BygpXt3IixVq72xmGz +h0jhY565MjXrqg5O3pvLABEBAAGJAh8EGAEKAAkFAkyzEr0CGwwACgkQ9DSh76/u +rqPaeg//avI2/a94XlSYtSZb2hVdW3qa9AEypQurqtVrKJfEKFV+ZQBPXbPRy8Mz +5LMEH1sfD6B4SVGIGJ8opSyieJkcKIke+GMekTWvSqDpFOgY2rw7eHNn/33ZJs3O +zQOyWz8smE/AIM/5lyiVGuSlU7RjYncf1V9bIBc91q9Edqk4IYUo/7W+yafC0VW/ +8oHUFYjHNaujiOsEoLiXsh9Y0R/6Jxs6fvE4XbCANV/ecN5UX+9BBrNZNN/9GbNr +6CYGZ57M2f1Pgywy/XvOnEPnJ8aWXUyGLqq34KvMPFPSOeAmFbkFEsB4mdDMFaDw +rzziiZE/zS8/nKiH4X2JgmLgFsadEihdfYxeDcGbhREK/qA1f3bGnr1j05V07yko +2FFZdiOr4OgiT5ymgwVUXQ2Aiz+J/C8URjfpcPxetmuDQT9AYfgmMKPNVXPFWuNQ +dzN5GZbI+E1/cb5+uLNknvjngw2G4PR/4uPHX1HCSftlNawBqWzyun1k+B7/u3Oe +FebWXcdqSmZuLQ7l0Pkuz/Nlp6M6cKpceL+9zCgaiR5+v9h94VvtXKd/mw9ZLACc +VcOANiwCtsJP3lt7jRSHtkuUe6vUm5tLS582RfXxoI1BlPjNtG9xAQ3JKBHIXbal +T18pAFO3t74cxg3h0iI1G51F3oL0DwILP2MBBmardVEp5CMnB/M= +=1iQB +-----END PGP PUBLIC KEY BLOCK----- diff --git a/SOURCES/kahansum_test_fix_for_aarc64_s390x.patch b/SOURCES/kahansum_test_fix_for_aarc64_s390x.patch new file mode 100644 index 0000000..e0110c0 --- /dev/null +++ b/SOURCES/kahansum_test_fix_for_aarc64_s390x.patch @@ -0,0 +1,16 @@ +diff -U 3 -dHrN a/sc/inc/arraysumfunctor.hxx b/sc/inc/arraysumfunctor.hxx +--- a/sc/inc/arraysumfunctor.hxx 2023-09-22 21:07:01.000000000 +0200 ++++ b/sc/inc/arraysumfunctor.hxx 2023-10-01 09:13:03.523493665 +0200 +@@ -85,8 +85,12 @@ + inline KahanSum sumArray(const double* pArray, size_t nSize) + { + size_t i = 0; ++#if 0 + const double* pCurrent = pArray; + KahanSum fSum = executeFast(i, nSize, pCurrent); ++#else ++ KahanSum fSum = 0.0; ++#endif + + // sum rest of the array + for (; i < nSize; ++i) diff --git a/SOURCES/libreoffice-multiliblauncher.sh b/SOURCES/libreoffice-multiliblauncher.sh new file mode 100644 index 0000000..05c9d3f --- /dev/null +++ b/SOURCES/libreoffice-multiliblauncher.sh @@ -0,0 +1,16 @@ +#!/bin/sh +OOO_ARCH=$(uname -m) +case $OOO_ARCH in + x86_64 | s390x | sparc64 | aarch64) + OOO_LIB_DIR="/usr/lib64" + SECONDARY_LIB_DIR="/usr/lib" + ;; + * ) + OOO_LIB_DIR="/usr/lib" + SECONDARY_LIB_DIR="/usr/lib64" + ;; +esac +if [ ! -x $OOO_LIB_DIR/BRAND/program/LAUNCHER ]; then + OOO_LIB_DIR="$SECONDARY_LIB_DIR" +fi +exec $OOO_LIB_DIR/BRAND/program/LAUNCHER "$@" diff --git a/SOURCES/limit-tests-giving-dubious-results-to-x86_64.patch b/SOURCES/limit-tests-giving-dubious-results-to-x86_64.patch new file mode 100644 index 0000000..f68ecad --- /dev/null +++ b/SOURCES/limit-tests-giving-dubious-results-to-x86_64.patch @@ -0,0 +1,32 @@ +From 3426c96d0e32e0c83e4ce5fdb3405787a0c81e6c Mon Sep 17 00:00:00 2001 +From: Dan Horák +Date: Fri, 01 Sep 2023 18:45:42 +0200 +Subject: [PATCH] limit tests giving dubious results to x86_64 + +We have confirmed that ArrayFunctionsTest::testDubiousArrayFormulasFODS +gives different results depending on the -ffp-contract setting on +ppc64le and likely also on s390x in addition to aarch64. Thus limit the +check only to x86_64 where it's known to give consistent results. + +Change-Id: Iedb63fb4340cfe9a88e374c7498d97574bcdfcc7 +Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156453 +Tested-by: Jenkins +Reviewed-by: Stephan Bergmann +--- + +diff --git a/sc/qa/unit/functions_array.cxx b/sc/qa/unit/functions_array.cxx +index 7584c4e..2053c44 100644 +--- a/sc/qa/unit/functions_array.cxx ++++ b/sc/qa/unit/functions_array.cxx +@@ -27,8 +27,9 @@ + { + //TODO: sc/qa/unit/data/functions/array/dubious/fods/linest.fods produces widely different + // values when built with -ffp-contract enabled (-ffp-contract=on default on Clang 14, +- // -ffp-contract=fast default when building with optimizations on GCC) on at least aarch64: +-#if !((defined __clang__ || defined __GNUC__) && defined __aarch64__) ++ // -ffp-contract=fast default when building with optimizations on GCC) on at least aarch64 ++ // and ppc64le. Thus limit the check only to platforms with consistent results. ++#if defined X86_64 + OUString aDirectoryURL + = m_directories.getURLFromSrc(u"/sc/qa/unit/data/functions/array/dubious/fods/"); + recursiveScan(test::pass, "OpenDocument Spreadsheet Flat XML", aDirectoryURL, diff --git a/SOURCES/lo-7.6-ppc64le-tests.patch b/SOURCES/lo-7.6-ppc64le-tests.patch new file mode 100644 index 0000000..4732451 --- /dev/null +++ b/SOURCES/lo-7.6-ppc64le-tests.patch @@ -0,0 +1,19 @@ +diff -up libreoffice-7.6.0.3/testtools/source/bridgetest/bridgetest.cxx.orig libreoffice-7.6.0.3/testtools/source/bridgetest/bridgetest.cxx +--- libreoffice-7.6.0.3/testtools/source/bridgetest/bridgetest.cxx.orig 2023-08-21 13:15:31.738062821 +0200 ++++ libreoffice-7.6.0.3/testtools/source/bridgetest/bridgetest.cxx 2023-08-21 13:15:56.607246816 +0200 +@@ -469,6 +469,7 @@ static bool performTest( + equals(aData, aSV2ret) && equals(aData, aRet2), + "getValues2 test"); + } ++#if 0 + { + TwoFloats aIn(1.1f, 2.2f); + TwoFloats aOut = xLBT->echoTwoFloats(aIn); +@@ -479,6 +480,7 @@ static bool performTest( + FourFloats aOut = xLBT->echoFourFloats(aIn); + bRet = check( memcmp(&aIn, &aOut, sizeof(FourFloats)) == 0, "four floats struct test" ) && bRet; + } ++#endif + { + MixedFloatAndInteger aIn(7.7f, 8); + MixedFloatAndInteger aOut = xLBT->echoMixedFloatAndInteger(aIn); diff --git a/SOURCES/pdfdoc.patch b/SOURCES/pdfdoc.patch new file mode 100644 index 0000000..43c814f --- /dev/null +++ b/SOURCES/pdfdoc.patch @@ -0,0 +1,22 @@ +--- libreoffice-7.6.3.1/sw/qa/core/text/itrform2.cxx 2023-11-02 16:37:04.000000000 -0500 ++++ core/sw/qa/core/text/itrform2.cxx 2023-11-07 10:31:14.018505043 -0600 +@@ -124,6 +124,10 @@ + + // Then make sure all the expected text is there on page 2: + std::unique_ptr pPdfDocument = parsePDFExport(); ++ if (!pPdfDocument) ++ { ++ return; ++ } + std::unique_ptr pPage2 = pPdfDocument->openPage(1); + int nTextCount = 0; + for (int i = 0; i < pPage2->getObjectCount(); ++i) +@@ -143,7 +147,7 @@ + + CPPUNIT_TEST_FIXTURE(Test, testSplitFlyAnchorLeftMargin) + { +- // Given a document with a floating table, anchor para is followed by an other para with a left ++ // Given a document with a floating table, anchor para is followed by another para with a left + // margin: + createSwDoc("floattable-anchor-left-margin.docx"); + diff --git a/SPECS/libreoffice.spec b/SPECS/libreoffice.spec new file mode 100644 index 0000000..d056302 --- /dev/null +++ b/SPECS/libreoffice.spec @@ -0,0 +1,5039 @@ +## START: Set by rpmautospec +## (rpmautospec version 0.3.5) +## RPMAUTOSPEC: autorelease, autochangelog +%define autorelease(e:s:pb:n) %{?-p:0.}%{lua: + release_number = 1; + 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 +# 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. +%global libo_prerelease %{nil} +# Should contain any suffix of release tarball name, e.g., -buildfix1. +%global libo_buildfix %{nil} +# rhbz#715152 state vendor +%global vendoroption --with-vendor="PowerEL" +%global libo_python python3 +%global libo_python_executable %{__python3} +%global libo_python_sitearch %{python3_sitearch} +# rhbz#465664 jar-repacking breaks help by reordering META-INF/MANIFEST.MF +%global __jar_repack %{nil} +# make it easier to download sources from pre-release site +%if 0%{?prerelease} +%global source_url http://dev-builds.libreoffice.org/pre-releases/src +%else +%global source_url http://download.documentfoundation.org/libreoffice/src/%{libo_version} +%endif +# URL for external projects' tarballs +%global external_url http://dev-www.libreoffice.org/src +%global girapiversion 0.1 + +# get english only and no-langpacks for a faster smoketest build +# fedpkg compile/install/local/mockbuild does not handle --without ATM, +# so it is necessary to change this to bcond_with to achieve the same +# effect +%bcond_without langpacks + +# 'serverconfig' is tuned for non-interactive installs +# defaults off except on rhel for s390[x] and aarch64 +%bcond_with serverconfig + +# generated by %%langpack definitions +%global langpack_langs %{nil} + +%global bundling_options %{nil} + +# https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval +ExcludeArch: %{ix86} + +Summary: Free Software Productivity Suite +Name: libreoffice +Epoch: 1 +Version: %{libo_version}.1 +%if 0%{?libo_prerelease} +Release: %autorelease -e %{?libo_prerelease} +%else +Release: %autorelease +%endif +# default new files are: MPLv2 +# older files are typically: MPLv2 incorporating work under ASLv2 +# nlpsolver is: LGPLv3 +# icon-themes/karasa_jaga/COPYING: LGPLv3+ +# icon-themes/colibre/COPYING-ICONS: CC0 +# lotuswordpro is: Either LGPL 2.1 or SISSL 1.1 +# wizards/source/access2base: Either MPLv2 or LGPLv3+ +# 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) +URL: http://www.libreoffice.org/ + +Source0: %{source_url}/libreoffice-%{version}%{?libo_prerelease}%{?libo_buildfix}.tar.xz +Source1: %{source_url}/libreoffice-%{version}%{?libo_prerelease}%{?libo_buildfix}.tar.xz.asc +Source2: %{source_url}/libreoffice-help-%{version}%{?libo_prerelease}%{?libo_buildfix}.tar.xz +Source3: %{source_url}/libreoffice-help-%{version}%{?libo_prerelease}%{?libo_buildfix}.tar.xz.asc +Source4: %{source_url}/libreoffice-translations-%{version}%{?libo_prerelease}%{?libo_buildfix}.tar.xz +Source5: %{source_url}/libreoffice-translations-%{version}%{?libo_prerelease}%{?libo_buildfix}.tar.xz.asc +Source6: gpgkey-C2839ECAD9408FBE9531C3E9F434A1EFAFEEAEA3.gpg.asc +Source7: http://dev-www.libreoffice.org/extern/185d60944ea767075d27247c3162b3bc-unowinreg.dll +Source8: libreoffice-multiliblauncher.sh + +Source9: %{external_url}/dtoa-20180411.tgz +Source11: %{external_url}/a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip + +# Unfortunately later versions of hsqldb changed the file format, so if we use a later version we lose +# backwards compatability. +# LibreOffice is also pinned to use hsqldb really old version 1.8.0 so there's currently no way building +# with system provided hsqldb without major hacking. +Source12: %{external_url}/17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip +Source13: %{external_url}/../extern/f543e6e2d7275557a839a164941c0a86e5f2c3f2a0042bfc434c88c6dde9e140-opens___.ttf +%global bundling_options %{?bundling_options} --without-system-hsqldb + +Provides: bundled(hsqldb) = 1.8.0 +Provides: bundled(xsltml) = 2.1.2 + +# symbolic icons +Source42: https://raw.githubusercontent.com/gnome-design-team/gnome-icons/master/apps-symbolic/Adwaita/scalable/apps/libreoffice-base-symbolic.svg +Source43: https://raw.githubusercontent.com/gnome-design-team/gnome-icons/master/apps-symbolic/Adwaita/scalable/apps/libreoffice-calc-symbolic.svg +Source44: https://raw.githubusercontent.com/gnome-design-team/gnome-icons/master/apps-symbolic/Adwaita/scalable/apps/libreoffice-draw-symbolic.svg +Source45: https://raw.githubusercontent.com/gnome-design-team/gnome-icons/master/apps-symbolic/Adwaita/scalable/apps/libreoffice-impress-symbolic.svg +Source46: https://raw.githubusercontent.com/gnome-design-team/gnome-icons/master/apps-symbolic/Adwaita/scalable/apps/libreoffice-main-symbolic.svg +Source47: https://raw.githubusercontent.com/gnome-design-team/gnome-icons/master/apps-symbolic/Adwaita/scalable/apps/libreoffice-math-symbolic.svg +Source48: https://raw.githubusercontent.com/gnome-design-team/gnome-icons/master/apps-symbolic/Adwaita/scalable/apps/libreoffice-writer-symbolic.svg + +# build tools +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: bc +BuildRequires: binutils +BuildRequires: bison +BuildRequires: desktop-file-utils +BuildRequires: doxygen +BuildRequires: findutils +BuildRequires: flex +BuildRequires: gcc-c++ +BuildRequires: gettext +BuildRequires: gnupg2 +BuildRequires: gperf +BuildRequires: hunspell-en-US +BuildRequires: icu +BuildRequires: libtool-ltdl-devel +BuildRequires: make +BuildRequires: mariadb-connector-c-devel +BuildRequires: patch +BuildRequires: perl(Digest::MD5) +BuildRequires: perl(FindBin) +BuildRequires: perl(base) +BuildRequires: perl(lib) +%if 0%{?fedora} +BuildRequires: glibc-all-langpacks +BuildRequires: libappstream-glib +%endif +BuildRequires: zip + +# libs / headers - common +BuildRequires: %{libo_python}-devel +BuildRequires: %{libo_python}-setuptools +BuildRequires: Box2D-devel +BuildRequires: boost-devel +BuildRequires: cups-devel +BuildRequires: dragonbox-static +BuildRequires: fontpackages-devel +%if 0%{?fedora} +BuildRequires: firebird-devel +%endif +BuildRequires: glm-devel +BuildRequires: hyphen-devel +BuildRequires: libjpeg-turbo-devel +BuildRequires: lpsolve-devel +BuildRequires: openldap-devel +BuildRequires: pam-devel +BuildRequires: pkgconfig(bluez) +BuildRequires: pkgconfig(dconf) +BuildRequires: pkgconfig(epoxy) +BuildRequires: pkgconfig(evolution-data-server-1.2) +BuildRequires: pkgconfig(expat) +BuildRequires: pkgconfig(freetype2) +BuildRequires: pkgconfig(gobject-introspection-1.0) +BuildRequires: pkgconfig(gstreamer-1.0) +BuildRequires: pkgconfig(gstreamer-plugins-base-1.0) +BuildRequires: pkgconfig(gtk+-3.0) +BuildRequires: pkgconfig(gtk4) +BuildRequires: pkgconfig(hunspell) +BuildRequires: pkgconfig(ice) +BuildRequires: pkgconfig(icu-i18n) +BuildRequires: pkgconfig(lcms2) +BuildRequires: pkgconfig(libabw-0.1) +BuildRequires: pkgconfig(libcdr-0.1) +BuildRequires: pkgconfig(libclucene-core) +BuildRequires: pkgconfig(libcmis-0.6) +BuildRequires: pkgconfig(libcurl) +BuildRequires: pkgconfig(libetonyek-0.1) +BuildRequires: pkgconfig(libexttextcat) +BuildRequires: pkgconfig(libfreehand-0.1) +BuildRequires: pkgconfig(liblangtag) +BuildRequires: pkgconfig(libmspub-0.1) +BuildRequires: pkgconfig(libmwaw-0.3) +BuildRequires: pkgconfig(libodfgen-0.1) +BuildRequires: pkgconfig(libpagemaker-0.0) +BuildRequires: pkgconfig(libpq) +BuildRequires: pkgconfig(librevenge-0.0) +BuildRequires: pkgconfig(libstaroffice-0.0) +BuildRequires: pkgconfig(libtiff-4) +BuildRequires: pkgconfig(libvisio-0.1) +BuildRequires: pkgconfig(libwebp) +BuildRequires: pkgconfig(libwpd-0.10) +BuildRequires: pkgconfig(libwpg-0.3) +BuildRequires: pkgconfig(libwps-0.4) +BuildRequires: pkgconfig(libxml-2.0) +BuildRequires: pkgconfig(libxslt) +BuildRequires: pkgconfig(libzmf-0.0) +BuildRequires: pkgconfig(mythes) +BuildRequires: pkgconfig(neon) +BuildRequires: pkgconfig(nss) +BuildRequires: pkgconfig(poppler) +BuildRequires: pkgconfig(poppler-cpp) +BuildRequires: pkgconfig(redland) +BuildRequires: pkgconfig(sane-backends) +BuildRequires: pkgconfig(xext) +BuildRequires: pkgconfig(xinerama) +BuildRequires: pkgconfig(xmlsec1-nss) +BuildRequires: pkgconfig(xt) +BuildRequires: pkgconfig(zlib) +BuildRequires: unixODBC-devel +BuildRequires: %{libo_python_executable} + +# libs / headers - conditional +%if 0%{?fedora} +BuildRequires: pkgconfig(libe-book-0.1) +BuildRequires: qt5-qtbase-devel +BuildRequires: qt5-qtx11extras-devel +BuildRequires: kf5-kconfig-devel +BuildRequires: kf5-kcoreaddons-devel +BuildRequires: kf5-kdelibs4support-devel +BuildRequires: kf5-ki18n-devel +BuildRequires: kf5-kio-devel +BuildRequires: kf5-kwindowsystem-devel +%endif + +BuildRequires: gpgmepp-devel +BuildRequires: pkgconfig(cppunit) >= 1.14.0 +BuildRequires: pkgconfig(graphite2) +BuildRequires: pkgconfig(harfbuzz) +BuildRequires: pkgconfig(libeot) +BuildRequires: pkgconfig(libepubgen-0.1) +BuildRequires: pkgconfig(libqxp-0.0) +BuildRequires: pkgconfig(liborcus-0.18) +BuildRequires: pkgconfig(mdds-2.1) +BuildRequires: pkgconfig(zxing) +BuildRequires: libnumbertext-devel +BuildRequires: frozen-static + +%ifarch %{java_arches} +# java stuff +BuildRequires: ant +BuildRequires: java-devel +BuildRequires: junit +BuildRequires: pentaho-reporting-flow-engine +%endif + +# fonts needed for tests +BuildRequires: dejavu-sans-fonts +BuildRequires: dejavu-serif-fonts +BuildRequires: google-carlito-fonts +BuildRequires: google-rubik-fonts +BuildRequires: google-crosextra-caladea-fonts +# Amiri used in vcl/qa/cppunit tests +BuildRequires: amiri-fonts +BuildRequires: amiri-quran-fonts +BuildRequires: liberation-mono-fonts +BuildRequires: liberation-narrow-fonts +BuildRequires: liberation-sans-fonts +BuildRequires: liberation-serif-fonts +BuildRequires: linux-libertine-fonts + +Requires: %{name}-writer%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-calc%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-impress%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-draw%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-math%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-base%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-emailmerge%{?_isa} = %{epoch}:%{version}-%{release} + +# not upstreamed: upstream wants an automatic restart after a crash; we +# want a nice abrt report +Patch0: 0001-don-t-suppress-crashes.patch +# disable tip-of-the-day dialog by default +Patch1: 0001-disble-tip-of-the-day-dialog-by-default.patch +# rhbz#1736810 disable opencl by default again +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 +# 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 +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 + +%global instdir %{_libdir} +%global baseinstdir %{instdir}/libreoffice +%global sdkinstdir %{baseinstdir}/sdk +%global datadir %{_datadir}/%{name} +%global fontname opensymbol +# HACK: Get the data dir for -data subpackage. I haven't found any better +# way to do this... +%global oldname %{name} +%global name %{name}-data +%global lodatadocdir %{_pkgdocdir} +%global name %{oldname} + +%if 0%{?__isa_bits} == 64 +%global mark64 ()(64bit) +%endif + +%description +LibreOffice is an Open Source, community-developed, office productivity suite. +It includes the key desktop applications, such as a word processor, +spreadsheet, presentation manager, formula editor and drawing program, with a +user interface and feature set similar to other office suites. Sophisticated +and flexible, LibreOffice also works transparently with a variety of file +formats, including Microsoft Office File Formats. + +%package filters +Summary: All import / export filters +Requires: %{name}-core%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-ure%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-calc%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-graphicfilter%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-impress%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-writer%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-xsltfilter%{?_isa} = %{epoch}:%{version}-%{release} + +%description filters +Metapackage to pull in all subpackages that contain import or export +filters. + +%package core +Summary: Core modules for LibreOffice +Requires: %{name}-%{fontname}-fonts = %{epoch}:%{version}-%{release} +Requires: %{name}-ure%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-data = %{epoch}:%{version}-%{release} +%if ! %{with serverconfig} +Requires: %{name}-plugin%{?_isa} = %{epoch}:%{version}-%{release} +%endif +Requires: liberation-sans-fonts, liberation-serif-fonts, liberation-mono-fonts +Requires: google-crosextra-caladea-fonts, google-crosextra-carlito-fonts +Requires: %{name}-langpack-en = %{epoch}:%{version}-%{release} +%ifarch %{java_arches} +# rhbz#949106 libreoffice-core drags in both openjdk 1.7.0 and 1.8.0 +Recommends: java-headless >= 1:1.6 +%else +Obsoletes: libreoffice-nlpsolver < 1:7.4.0.0 +Obsoletes: libreoffice-officebean < 1:7.4.0.0 +Obsoletes: libreoffice-officebean-common < 1:7.4.0.0 +Obsoletes: libreoffice-wiki-publisher < 1:7.4.0.0 +%endif +Obsoletes: libreoffice-headless < 1:4.4.0.0 +Obsoletes: libreoffice-math-debuginfo < 1:6.4.7.2 +Provides: libreoffice-headless = %{epoch}:%{version}-%{release} +Provides: libreoffice-headless%{?_isa} = %{epoch}:%{version}-%{release} +Obsoletes: libreoffice-bsh < 1:7.3.0.4 +Obsoletes: libreoffice-rhino < 1:7.3.0.4 + +%description core +The shared core libraries and support files for LibreOffice. + +%package pyuno +Summary: Python support for LibreOffice +Requires: %{name}-core%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-ure%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{libo_python_executable} + +%description pyuno +Python bindings for the LibreOffice UNO component model. Allows scripts both +external to LibreOffice and within the internal LibreOffice scripting framework +to be written in python. + +%package base +Summary: Database front-end for LibreOffice +%if 0%{?fedora} +Requires: firebird +%endif +%ifarch %{java_arches} +Requires: java-headless >= 1:1.6 +%endif +Requires: pentaho-reporting-flow-engine +Requires: postgresql-jdbc +Requires: %{name}-core%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-calc%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-data = %{epoch}:%{version}-%{release} +Requires: %{name}-pyuno%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-ure%{?_isa} = %{epoch}:%{version}-%{release} + +%description base +GUI database front-end for LibreOffice. Allows creation and management of +databases through a GUI. + +%ifarch %{java_arches} + +%package officebean +Summary: JavaBean for LibreOffice Components +Requires: %{name}-core%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-officebean-common = %{epoch}:%{version}-%{release} + +%description officebean +Allows embedding of LibreOffice documents within the Java environment. It +provides a Java AWT window into which the backend LibreOffice process draws +its visual representation + +%package officebean-common +Summary: Common JavaBean for LibreOffice Components +Requires: %{name}-data = %{epoch}:%{version}-%{release} +BuildArch: noarch + +%description officebean-common +Arch-independent part of %{name}-officebean. + +%package wiki-publisher +Summary: Create Wiki articles on MediaWiki servers with LibreOffice +Requires: %{name}-writer%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-core%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-ure%{?_isa} = %{epoch}:%{version}-%{release} + +%description wiki-publisher +The Wiki Publisher enables you to create Wiki articles on MediaWiki servers +without having to know the syntax of the MediaWiki markup language. Publish +your new and existing documents transparently with writer to a wiki page. + +%package nlpsolver +Summary: Non-linear solver engine for LibreOffice Calc +Requires: %{name}-core%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-calc%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-ure%{?_isa} = %{epoch}:%{version}-%{release} + +%description nlpsolver +A non-linear solver engine for Calc as an alternative to the default linear +programming model when more complex, nonlinear programming is required. + +%endif + +%package ogltrans +Summary: 3D OpenGL slide transitions for LibreOffice +Requires: %{name}-core%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-ure%{?_isa} = %{epoch}:%{version}-%{release} + +%description ogltrans +OpenGL Transitions enable 3D slide transitions to be used in LibreOffice. +Requires good quality 3D support for your graphics card for best experience. + +%package pdfimport +Summary: PDF Importer for LibreOffice Draw +Requires: %{name}-core%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-ure%{?_isa} = %{epoch}:%{version}-%{release} + +%description pdfimport +The PDF Importer imports PDF into drawing documents to preserve layout +and enable basic editing of PDF documents. + +%package %{fontname}-fonts +Summary: LibreOffice dingbats font +Requires: fontpackages-filesystem +BuildArch: noarch + +%description %{fontname}-fonts +A dingbats font, OpenSymbol, suitable for use by LibreOffice for bullets and +mathematical symbols. + +%package writer +Summary: LibreOffice Word Processor Application +Requires: %{name}-core%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-data = %{epoch}:%{version}-%{release} +Requires: %{name}-pdfimport%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-pyuno%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-ure%{?_isa} = %{epoch}:%{version}-%{release} + +%description writer +The LibreOffice Word Processor application. + +%package emailmerge +Summary: Email mail-merge component for LibreOffice +Requires: %{name}-writer%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-pyuno%{?_isa} = %{epoch}:%{version}-%{release} + +%description emailmerge +Enables the LibreOffice writer module to mail-merge to email. + +%package calc +Summary: LibreOffice Spreadsheet Application +Requires: %{name}-core%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-data = %{epoch}:%{version}-%{release} +Requires: %{name}-pdfimport%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-pyuno%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-ure%{?_isa} = %{epoch}:%{version}-%{release} + +%description calc +The LibreOffice Spreadsheet application. + +%package draw +Summary: LibreOffice Drawing Application +Requires: %{name}-core%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-data = %{epoch}:%{version}-%{release} +Requires: %{name}-pdfimport%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-pyuno%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-graphicfilter%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-ure%{?_isa} = %{epoch}:%{version}-%{release} + +%description draw +The LibreOffice Drawing Application. + +%package impress +Summary: LibreOffice Presentation 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} +Requires: %{name}-ure%{?_isa} = %{epoch}:%{version}-%{release} + +%description impress +The LibreOffice Presentation Application. + +%package math +Summary: LibreOffice Equation Editor Application +Requires: %{name}-core%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-pdfimport%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-pyuno%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-ure%{?_isa} = %{epoch}:%{version}-%{release} + +%description math +The LibreOffice Equation Editor Application. + +%package graphicfilter +Summary: LibreOffice Extra Graphic filters +Requires: %{name}-core%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-data = %{epoch}:%{version}-%{release} +Requires: %{name}-ure%{?_isa} = %{epoch}:%{version}-%{release} + +%description graphicfilter +The graphicfilter module for LibreOffice provides graphic filters, e.g. svg. + +%package xsltfilter +Summary: Optional xsltfilter module for LibreOffice +Requires: %{name}-core%{?_isa} = %{epoch}:%{version}-%{release} + +%description xsltfilter +The xsltfilter module for LibreOffice, provides additional docbook and +xhtml export transforms. Install this to enable docbook export. + +%package postgresql +Summary: PostgreSQL connector for LibreOffice +Requires: %{name}-base%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-core%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-ure%{?_isa} = %{epoch}:%{version}-%{release} + +%description postgresql +A PostgreSQL connector for the database front-end for LibreOffice. Allows +creation and management of PostgreSQL databases through a GUI. + +%package ure +Summary: UNO Runtime Environment +Requires: %{name}-ure-common = %{epoch}:%{version}-%{release} +Requires: unzip%{?_isa} +%ifarch %{java_arches} +#rhbz#1164551 we want to ensure that a libjvm.so of this arch is available +Requires: libjvm.so%{?mark64} +%endif + +%description ure +UNO is the component model of LibreOffice. UNO offers interoperability between +programming languages, other components models and hardware architectures, +either in process or over process boundaries, in the Intranet as well as in the +Internet. UNO components may be implemented in and accessed from any +programming language for which a UNO implementation (AKA language binding) and +an appropriate bridge or adapter exists + +%package ure-common +Summary: Common UNO Runtime Environment + +%description ure-common +Arch-independent part of %{name}-ure. + +%package sdk +Summary: Software Development Kit for LibreOffice +Requires: %{name}-core%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-ure%{?_isa} = %{epoch}:%{version}-%{release} +Requires: unzip%{?_isa} +%ifarch %{java_arches} +Requires: java-devel +%endif + +%description sdk +The LibreOffice SDK is an add-on for the LibreOffice office suite. It provides +the necessary tools for programming using the LibreOffice APIs and for creating +extensions (UNO components) for LibreOffice. To set the build environment for +building against the sdk use %{sdkinstdir}/setsdkenv_unix.sh. + +%package sdk-doc +Summary: Software Development Kit documentation for LibreOffice + +%description sdk-doc +This provides documentation for programming using the LibreOffice APIs +and examples of creating extensions (UNO components) for LibreOffice. + +%package glade +Summary: Support for creating LibreOffice dialogs in glade +Requires: %{name}-core%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-ure%{?_isa} = %{epoch}:%{version}-%{release} + +%description glade +%{name}-glade contains a catalog of LibreOffice-specific widgets for +glade tool to check the visual appearance of dialogs. + +%package librelogo +Summary: LibreLogo scripting language +Requires: %{name}-writer%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-pyuno%{?_isa} = %{epoch}:%{version}-%{release} + +%description librelogo +Enables LibreLogo scripting in Writer. LibreLogo is a Logo-like +programming language with interactive vectorgraphics for education and +DTP. + +%package data +Summary: LibreOffice data files + +%description data +%{name}-data contains platform-independent data files. + +%package x11 +Summary: LibreOffice generic X11 support 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} +Supplements: (%{name}-core%{?_isa} and Xserver) + +%description x11 +A plug-in for LibreOffice that enables generic X11 support. + +%package gtk3 +Summary: LibreOffice GTK+ 3 integration plug-in +Requires: %{name}-core%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-ure%{?_isa} = %{epoch}:%{version}-%{release} +Requires: gstreamer1(element-gtksink)%{?mark64} +Obsoletes: libreoffice-gtk2 < 1:6.2.0.0 +Obsoletes: libreoffice-gtk2-debuginfo < 1:6.2.0.0 +Supplements: (%{name}-core%{?_isa} and gtk3%{?_isa}) + +%description gtk3 +A plug-in for LibreOffice that enables integration into GTK+ 3 environment. + +%package gtk4 +Summary: LibreOffice GTK+ 4 experimental integration plug-in +Requires: %{name}-core%{?_isa} = %{epoch}:%{version}-%{release} +Requires: %{name}-ure%{?_isa} = %{epoch}:%{version}-%{release} +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} + +%package kf5 +Summary: LibreOffice KDE Frameworks 5 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 kf5 +A plug-in for LibreOffice that enables integration into the KDE Frameworks 5. + +%endif + +%package -n libreofficekit +Summary: A library providing access to LibreOffice functionality +License: MPLv2.0 + +%description -n libreofficekit +LibreOfficeKit can be used to access LibreOffice functionality +through C/C++, without any need to use UNO. + +For now it only offers document conversion (in addition to an +experimental tiled rendering API). + +%package -n libreofficekit-devel +Summary: Development files for libreofficekit +Requires: libreofficekit%{?_isa} = %{epoch}:%{version}-%{release} +License: MPLv2.0 + +%description -n libreofficekit-devel +The libreofficekit-devel package contains libraries and header files for +developing applications that use libreofficekit. + +%if 0%{?_enable_debug_packages} + +%package gdb-debug-support +Summary: Additional support for debugging with gdb +Requires: gdb%{?_isa} +Requires: %{libo_python}-six +Requires: libreoffice-core%{?_isa} = %{epoch}:%{version}-%{release} +Supplements: libreoffice-debuginfo%{?_isa} + +%description gdb-debug-support +This package provides gdb pretty printers for package %{name}. + +%files gdb-debug-support +%{_datadir}/gdb/auto-load%{baseinstdir} +%{_datadir}/libreoffice/gdb + +%endif + +%define _langpack_common(Eg:j:l:) \ +%{!-E: \ +%{baseinstdir}/program/resource/%{-g:%{-g*}}%{!-g:%{-l*}}/LC_MESSAGES/*.mo \ +%{baseinstdir}/share/registry/res/registry_%{-l*}.xcd \ +} \ +%{baseinstdir}/share/template/%{-l*} \ +%{baseinstdir}/share/registry/Langpack-%{-l*}.xcd \ +%{baseinstdir}/share/registry/res/fcfg_langpack_%{-l*}.xcd \ +%{baseinstdir}/share/wizards/resources_%{-j:%{-j*}}%{!-j:%{-l*}}.properties \ +%{nil} + +# Defines a language pack subpackage. +# +# It's necessary to define language code (-l) and language name (-n). +# Additionally, it's possible +# * to require autocorr, hunspell, hyphen or mythes package or font for +# given language, +# * to provide libreoffice-langpack-loc package, where loc is glibc +# locale--this is necessary for yum to pick it automatically, +# * to require other, unrelated, packages, +# * to specify file serving as file list. +# For these, lower case character argument takes an argument specifying +# language, upper case character argument uses language from -l. +# +# All remaining arguments are considered to be files and added to the file +# list. +# +# Aa: autocorr dependency +# c: additional config file (just the name stem) +# E: base (US English) langpack +# Ff: font language dependency +# g: glibc/java locale +# Hh: hunspell dependency +# i: additional language added to this package +# j: java locale for the additional language +# k: glibc locale for the additional language +# L: internal (LibreOffice) language code, used in file names +# l: language code, e.g., cs +# Mm: mythes dependency +# n: language name, e.g., Czech +# p: Provides: of libreoffice-langpack +# r: comma-separated list of additional requires +# S:s: script classification (cjk, ctl). -S is only a marker, as it does +# not add any .xcd into the package (the file does not exist for at +# least one CTL-using locale, si) +# T has help files +# Xx: has autotext definitions +# Yy: hyphen dependency +# +# Example: +# libreoffice-langpack-cs: langpack for Czech lang. requiring hyphen-cs, +# autocorr-cs, mythes-cs-CZ and suitable font: +# %%langpack -l cs -n Czech -H -A -m cs-CZ +# b de q tu z BCD G IJK N PQR U Z0123456789 +%define langpack(Aa:c:EFf:g:Hh:i:j:k:L:l:Mm:n:p:r:S:s:TXx:Yy:) \ +%define lang %{-l:%{-l*}}%{!-l:%{error:Language code not defined}} \ +%define _langpack_lang %{-L:%{-L*}}%{!-L:%{lang}} \ +%define pkgname langpack-%{lang} \ +%define langname %{-n:%{-n*}}%{!-n:%{error:Language name not defined}} \ +\ +%global langpack_langs %{langpack_langs} %{_langpack_lang} %{-i:%{-i*}} \ +\ +%package %{pkgname} \ +Summary: %{langname} language pack for LibreOffice \ +Requires: %{name}-core%{?_isa} = %{epoch}:%{version}-%{release} \ +%{-a:Requires: autocorr-%{-a*}}%{!-a:%{-A:Requires: autocorr-%{lang}}} \ +%{-f:Recommends: langpacks-%{-f*}}%{!-f:%{-F:Recommends: langpacks-%{lang}}} \ +%{-h:Requires: hunspell-%{-h*}}%{!-h:%{-H:Requires: hunspell-%{lang}}} \ +%{-m:Requires: mythes-%{-m*}}%{!-m:%{-M:Requires: mythes-%{lang}}} \ +%{-y:Requires: hyphen-%{-y*}}%{!-y:%{-Y:Requires: hyphen-%{lang}}} \ +%{-r:Requires: %{-r*}} \ +%{-p:Provides: %{name}-langpack-%{-p*} = %{epoch}:%{version}-%{release}} \ +%{-p:Provides: %{name}-langpack-%{-p*}%{?_isa} = %{epoch}:%{version}-%{release}} \ +%{-p:Supplements: (%{name}-core%{?_isa} and langpacks-%{-p*})} \ +%{!-p:Supplements: (%{name}-core%{?_isa} and langpacks-%{lang})} \ +%if 0%{?rhel} \ +%{-T:Requires: %{name}-help-%{lang}} \ +%else \ +%{-T:Recommends: %{name}-help-%{lang}} \ +%endif \ +\ +%description %{pkgname} \ +Provides additional %{langname} translations and resources for LibreOffice. \ +\ +%{-T: \ +%package help-%{lang} \ +Summary: %{langname} help for LibreOffice \ +Requires: %{name}-core%{?_isa} = %{epoch}:%{version}-%{release} \ +\ +%description help-%{lang} \ +Provides %{langname} help for LibreOffice. \ +\ +%files help-%{lang} \ +%docdir %{baseinstdir}/help/%{_langpack_lang} \ +%{baseinstdir}/help/%{_langpack_lang} \ +} \ +\ +%files %{pkgname} \ +%{expand:%%_langpack_common %{-E} -l %{_langpack_lang} %{-g:-g %{-g*} -j %{-g*}}} \ +%{-x:%{baseinstdir}/share/autotext/%{-x*}}%{!-x:%{-X:%{baseinstdir}/share/autotext/%{_langpack_lang}}} \ +%{-c:%{baseinstdir}/share/registry/%{-c*}.xcd} \ +%{-s:%{baseinstdir}/share/registry/%{-s*}_%{_langpack_lang}.xcd} \ +%{-i:%{expand:%%_langpack_common %{-E} -l %{-i*} %{-k:-g %{-k*}} %{-j:-j %{-j*}}}} \ +%{nil} + +# Defines an auto-correction subpackage. +# +# i: add autocorrections from additional language +# l: language code +# n: language name +# L the filename does not contain country code +# +# All remaining arguments are considered to be files and added to the file +# list. +%define autocorr(i:Ll:n:) \ +%define lang %{-l:%{-l*}}%{!-l:%{error:Language code not defined}} \ +%define pkgname autocorr-%{lang} \ +%define langname %{-n:%{-n*}}%{!-n:%{error:Language name not defined}} \ +\ +%package -n %{pkgname} \ +Summary: %{langname} auto-correction rules \ +BuildArch: noarch \ +\ +%description -n %{pkgname} \ +Rules for auto-correcting common %{langname} typing errors. \ +\ +%files -n %{pkgname} \ +%doc instdir/LICENSE \ +%dir %{_datadir}/autocorr \ +%{-L:%{_datadir}/autocorr/acor_%{lang}.dat} \ +%{!-L:%{_datadir}/autocorr/acor_%{lang}-*.dat} \ +%{nil} + +%langpack -l en -n English -F -h en-US -Y -M -A -E -L en-US -T -X -g en_US + +%if %{with langpacks} + +%langpack -l af -n Afrikaans -F -H -Y -A -X +%langpack -l ar -n Arabic -F -H -s ctl -T -X +%langpack -l as -n Assamese -F -H -Y -X +%langpack -l bg -n Bulgarian -F -H -Y -M -A -T -X +%langpack -l bn -n Bengali -F -H -Y -T -X +%langpack -l br -n Breton -F -H -X +%langpack -l ca -n Catalan -F -H -Y -M -A -T -X +%langpack -l cs -n Czech -F -H -Y -M -A -T -X +%langpack -l cy -n Welsh -F -H -Y -X +%langpack -l da -n Danish -F -H -Y -M -A -T -X +%langpack -l de -n German -F -H -Y -M -A -T -X +%langpack -l dz -n Dzongkha -F -s ctl -T -X +%langpack -l el -n Greek -F -H -Y -M -A -T -X +%langpack -l eo -n Esperanto -F -H -M -T -X +%langpack -l es -n Spanish -F -H -Y -M -A -T -X +%langpack -l et -n Estonian -F -H -Y -T -X +%langpack -l eu -n Basque -F -H -Y -T -X +%langpack -l fa -n Farsi -A -H -Y -s ctl -X +%langpack -l fi -n Finnish -F -r libreoffice-voikko -A -T -X +%langpack -l fr -n French -F -H -Y -M -A -T -X +%langpack -l fy -n Frisian -F -H -X +%langpack -l ga -n Irish -F -H -Y -M -A -X +%langpack -l gl -n Galician -F -H -Y -T -X +%langpack -l gu -n Gujarati -F -H -Y -s ctl -T -X +%langpack -l he -n Hebrew -F -H -s ctl -T -X +%langpack -l hi -n Hindi -F -H -Y -s ctl -T -X +%langpack -l hr -n Croatian -F -H -Y -A -T -X +%langpack -l hu -n Hungarian -F -H -Y -M -A -T -X +%{baseinstdir}/share/wordbook/hu_AkH11.dic +%langpack -l id -n Indonesian -F -H -Y -T -X +%langpack -l it -n Italian -F -H -Y -M -A -T -X +%langpack -l ja -n Japanese -F -A -s cjk -T -X +%langpack -l kk -n Kazakh -F -H -X +%langpack -l kn -n Kannada -F -H -Y -X +%langpack -l ko -n Korean -F -H -A -s cjk -T -X +%langpack -l lt -n Lithuanian -F -H -Y -A -T -X +%langpack -l lv -n Latvian -F -H -Y -M -T -X +%langpack -l mai -n Maithili -F -X +%langpack -l ml -n Malayalam -F -H -Y -X +%langpack -l mr -n Marathi -F -H -Y -X +%langpack -l nb -n Bokmal -F -H -Y -M -T -X +%langpack -l nl -n Dutch -F -H -Y -M -A -T -X -X +%langpack -l nn -n Nynorsk -F -H -Y -M -T +%define langpack_lang Southern Ndebele +%langpack -l nr -n %{langpack_lang} -F -H -X +%define langpack_lang Northern Sotho +%langpack -l nso -n %{langpack_lang} -F -H -X +%langpack -l or -n Odia -F -H -Y -s ctl -X +%langpack -l pa -n Punjabi -F -H -Y -s ctl -L pa-IN -g pa_IN -X +%langpack -l pl -n Polish -F -H -Y -M -A -T -X + +%if 0%{?rhel} > 9 + +%define langpack_lang Brazilian Portuguese +%langpack -l pt-BR -n %{langpack_lang} -f pt_BR -H -Y -m pt -a pt -p pt_BR -T -X -g pt_BR + +%else + +%define langpack_lang Brazilian Portuguese +%langpack -l pt-BR -n %{langpack_lang} -f pt_BR -h pt -y pt -m pt -a pt -p pt_BR -T -X -g pt_BR + +%endif + +%langpack -l pt-PT -n Portuguese -f pt -h pt -y pt -m pt -a pt -p pt_PT -T -L pt -x pt +%langpack -l ro -n Romanian -A -F -H -Y -M -T -X +%langpack -l ru -n Russian -F -H -Y -M -A -T -X +%langpack -l si -n Sinhalese -F -H -S ctl -T -X +%langpack -l sk -n Slovak -F -H -Y -M -A -T -X +%langpack -l sl -n Slovenian -F -H -Y -M -A -T -X +%{baseinstdir}/share/wordbook/sl.dic + +#rhbz#452379 clump serbian translations together +%langpack -l sr -n Serbian -F -H -Y -A -i sr-Latn -k sr@latin -j sr_Latn -x sr* +%langpack -l ss -n Swati -F -H -X +%define langpack_lang Southern Sotho +# note that langpacks-st seems to be missing as of the time of writing, so no -F here +%langpack -l st -n %{langpack_lang} -H -X +%langpack -l sv -n Swedish -F -H -Y -M -A -T -X +%langpack -l ta -n Tamil -F -H -Y -s ctl -T -X +%langpack -l te -n Telugu -F -H -Y -X +%langpack -l th -n Thai -F -H -s ctl -c ctlseqcheck_th -X +%langpack -l tn -n Tswana -F -H -X +%langpack -l tr -n Turkish -F -A -T -X +%langpack -l ts -n Tsonga -F -H -X +%langpack -l uk -n Ukrainian -F -H -Y -M -T -X +%langpack -l ve -n Venda -F -H -X +%langpack -l xh -n Xhosa -F -H -X + +%define langpack_lang Simplified Chinese +%langpack -l zh-Hans -n %{langpack_lang} -f zh_CN -a zh -p zh_CN -s cjk -T -L zh-CN -x zh-CN -g zh_CN +%{baseinstdir}/share/template/common/l10n/zh_CN_ott_normal.ott + +%define langpack_lang Traditional Chinese +%langpack -l zh-Hant -n %{langpack_lang} -f zh_TW -a zh -p zh_TW -s cjk -T -L zh-TW -x zh-TW -g zh_TW + +%langpack -l zu -n Zulu -F -H -Y -X +%undefine langpack_lang + +%endif + +%autocorr -l en -n English + +%if %{with langpacks} + +%autocorr -l af -n Afrikaans +%autocorr -l bg -n Bulgarian +%autocorr -l ca -n Catalan +%autocorr -l cs -n Czech +%autocorr -l da -n Danish +%autocorr -l de -n German -L +%define autocorr_lang Lower Sorbian +%autocorr -l dsb -n %{autocorr_lang} -L +%autocorr -l el -n Greek +%autocorr -l es -n Spanish -L +%autocorr -l fa -n Farsi +%autocorr -l fi -n Finnish +%autocorr -l fr -n French -L +%autocorr -l ga -n Irish +%autocorr -l hr -n Croatian +%define autocorr_lang Upper Sorbian +%autocorr -l hsb -n %{autocorr_lang} -L +%autocorr -l hu -n Hungarian +%autocorr -l is -n Icelandic +%autocorr -l it -n Italian -L +%autocorr -l ja -n Japanese +%autocorr -l ko -n Korean +%autocorr -l lb -n Luxembourgish +%autocorr -l lt -n Lithuanian +%autocorr -l mn -n Mongolian +%autocorr -l nl -n Dutch +%autocorr -l pl -n Polish +%autocorr -l pt -n Portuguese +%autocorr -l ro -n Romanian +%autocorr -l ru -n Russian +%autocorr -l sk -n Slovak +%autocorr -l sl -n Slovenian +%autocorr -l sr -n Serbian +%autocorr -l sv -n Swedish +%autocorr -l tr -n Turkish +%autocorr -l vi -n Vietnamese +%autocorr -l vro -n Võro +%autocorr -l zh -n Chinese + +%endif + +%define make_autocorr_aliases(l:) \ +%{?-l: \ +for lang in %{*}; do \ + ln -sf acor_%{-l*}.dat acor_$lang.dat \ +done \ +} \ +%{!?-l:%{error:-l must be present}} + +%prep +# verify tarballs +gpg2 --dearmor < %{SOURCE6} > keyring.gpg +gpgv2 --keyring ./keyring.gpg %{SOURCE1} %{SOURCE0} +gpgv2 --keyring ./keyring.gpg %{SOURCE3} %{SOURCE2} +gpgv2 --keyring ./keyring.gpg %{SOURCE5} %{SOURCE4} + +%setup -q -n %{name}-%{version}%{?libo_prerelease} -b 2 -b 4 +rm -rf git-hooks */git-hooks + +#Customize Palette to add Red Hat colours +(head -n -1 extras/source/palettes/standard.soc && \ + echo -e ' + + + + ' && \ + tail -n 1 extras/source/palettes/standard.soc) > redhat.soc +mv -f redhat.soc extras/source/palettes/standard.soc + +# apply patches +%autopatch -p1 -M 99 +%if 0%{?rhel} +%patch500 -p1 +%endif + +%ifarch aarch64 s390x ppc64le +%patch501 -p1 +%endif + +# Temporarily disable failing tests +%ifarch ppc64le +sed -i -e s/CppunitTest_dbaccess_RowSetClones// dbaccess/Module_dbaccess.mk +%endif +%ifarch aarch64 +# Nothing to do +%endif +%ifarch s390x +# SwMacrosTest::testVba fails +sed -i -e s/CppunitTest_sw_macros_test// sw/Module_sw.mk +# https://bugs.documentfoundation.org/show_bug.cgi?id=125978 +sed -i -e s/CustomTarget_uno_test// testtools/Module_testtools.mk +# failing testTdf149402_vba +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 +%endif + +#see rhbz#2072615 +rm -f vcl/qa/cppunit/graphicfilter/data/tiff/fail/CVE-2017-9936-1.tiff + +%build +# path to external tarballs +EXTSRCDIR=`dirname %{SOURCE0}` + +#use the RPM_OPT_FLAGS but remove the LibreOffice overridden ones +for i in $RPM_OPT_FLAGS; do + case "$i" in + -pipe|-Wall|-Werror*|-fexceptions) continue;; + esac + ARCH_FLAGS="$ARCH_FLAGS $i" +done +%ifarch s390 s390x %{arm} +# these builders typically do not have enough memory to link the big libs with -g2 +ARCH_FLAGS="$ARCH_FLAGS -g1" +%endif +export ARCH_FLAGS +export CFLAGS=$ARCH_FLAGS +export CXXFLAGS=$ARCH_FLAGS + +%if 0%{?rhel} +%define distrooptions --disable-eot --disable-firebird-sdbc +%else +# fedora +%define distrooptions --enable-eot --enable-kf5 +%endif + +%ifarch %{java_arches} +%define javaoptions --with-java --enable-ext-nlpsolver --enable-ext-wiki-publisher +%else +%define javaoptions --without-java +%endif + +%if %{with langpacks} +%define with_lang --with-lang='%{langpack_langs}' +%endif + +aclocal -I m4 +autoconf + +SMP_MFLAGS=%{?_smp_mflags} +SMP_MFLAGS=$[${SMP_MFLAGS/-j/}] + +%if 0%{?flatpak} +%define flatpakoptions --with-beanshell-jar=/app/share/java/bsh.jar --with-boost-libdir=%{_libdir} --with-external-dict-dir=/app/share/hunspell --with-external-hyph-dir=/app/share/hyphen --with-external-thes-dir=/app/share/mythes --with-flute-jar=/app/share/java/flute.jar --with-jdk-home=/app/lib/jvm/java --with-jfreereport-jar=/app/share/java/flow-engine.jar --with-libbase-jar=/app/share/java/libbase.jar --with-libfonts-jar=/app/share/java/libfonts.jar --with-libformula-jar=/app/share/java/libformula.jar --with-liblayout-jar=/app/share/java/liblayout.jar --with-libloader-jar=/app/share/java/libloader.jar --with-librepository-jar=/app/share/java/librepository.jar --with-libserializer-jar=/app/share/java/libserializer.jar --with-libxml-jar=/app/share/java/libxml.jar --with-sac-jar=/app/share/java/sac.jar FIREBIRDCONFIG=%{_libdir}/fb_config QT4INC=%{_includedir} +%endif + +# TODO: enable coinmp? +# avoid running autogen.sh on make +touch autogen.lastrun +%configure \ + %vendoroption \ + %{?with_lang} \ + --with-parallelism=$SMP_MFLAGS \ + --disable-coinmp \ + --disable-community-flavor \ + --disable-fetch-external \ + --disable-openssl \ + --disable-pdfium \ + --disable-skia \ + --enable-dconf \ + --enable-evolution2 \ + --enable-introspection \ + --enable-odk \ + --enable-release-build \ + --enable-symbols \ + --with-build-version="%{version}-%{release}" \ + --with-external-dict-dir=/usr/share/hunspell \ + --with-external-tar="$EXTSRCDIR" \ + --with-help \ + --with-system-dicts \ + --with-system-libs \ + --without-export-validation \ + --without-fonts \ + --without-lxml \ + --without-system-libfixmath \ + --enable-python=system \ + --with-idlc-cpp=cpp \ + --disable-scripting-beanshell --disable-scripting-javascript \ + --enable-gtk4 \ + %{javaoptions} \ + %{distrooptions} \ + %{?bundling_options} \ + %{?archoptions} \ + %{?flatpakoptions} + +if ! %make_build; then + echo "build attempt 1 failed" + make verbose=true build +fi + +#generate the icons and mime type stuff +export DESTDIR=../output +export KDEMAINDIR=/usr +export GNOMEDIR=/usr +export GNOME_MIME_THEME=hicolor +export PREFIXDIR=/usr +# TODO use empty variables? Should make the renaming hacks in %%install +# unnecessary. +. ./bin/get_config_variables PRODUCTVERSIONSHORT PRODUCTVERSION SRCDIR WORKDIR PKG_CONFIG INSTDIR +pushd $WORKDIR/CustomTarget/sysui/share/libreoffice +./create_tree.sh +popd +mkdir $WORKDIR/os-integration +cp -pr $WORKDIR/CustomTarget/sysui/share/output/usr/share/* $WORKDIR/os-integration +cp -pr $WORKDIR/CustomTarget/sysui/share/libreoffice/LOKDocView-%{girapiversion}.* $WORKDIR/os-integration + +%install +# remove workdir before install, to allow build on space-constrained machines +# remove the biggest offenders +rm -rf $WORKDIR/CxxObject $WORKDIR/GenCxxObject $WORKDIR/HelpTarget $WORKDIR/LinkTarget + +# TODO investigate use of make distro-pack-install +#figure out the icon version +. ./bin/get_config_variables PRODUCTVERSIONSHORT PRODUCTVERSION SRCDIR WORKDIR +export PRODUCTVERSIONSHORT PRODUCTVERSION + +# installation + +install -m 0755 -d %{buildroot}%{instdir} +if ! make instsetoo_native PKGFORMAT=installed DISABLE_STRIP=1 EPM=not-used-but-must-be-set; then + echo - ---dump log start--- + cat $WORKDIR/installation/LibreOffice/installed/logging/en-US/log_*_en-US.log + echo - ---dump log end--- + echo - ---dump log start -- SDK--- + cat $WORKDIR/installation/LibreOffice_SDK/installed/logging/en-US/log_*_en-US.log + echo - ---dump log end -- SDK--- + echo - ---dump log start -- languagepacks--- + cat $WORKDIR/installation/LibreOffice_languagepack/installed/logging/en-US/log_*_en-US.log + echo - ---dump log end -- languagepacks--- + exit 1 +fi +install -m 0755 -d %{buildroot}%{baseinstdir} +mv $WORKDIR/installation/LibreOffice/installed/install/en-US/* %{buildroot}%{baseinstdir} +%if %{with langpacks} +for langpack in $WORKDIR/installation/LibreOffice_languagepack/installed/install/*; do + [ `basename $langpack` = log ] && continue + cp -rp $langpack/* %{buildroot}%{baseinstdir} + rm -rf $langpack +done +%endif +mv $WORKDIR/installation/LibreOffice_SDK/installed/install/en-US/sdk %{buildroot}%{sdkinstdir} +chmod -R +w %{buildroot}%{baseinstdir} + +# postprocessing and tweaks + +# The installer currently sets UserInstallation to +# $ORIGIN/../libreoffice/4, which is of course total nonsense. Because I +# have no inclination to crawl through mountains of perl code to figure out +# where it comes from, I am just going to replace it by a sensible +# value here. +sed -i -e '/UserInstallation/s@\$ORIGIN/..@$SYSUSERCONFIG@' %{buildroot}%{baseinstdir}/program/bootstraprc + +#configure sdk +pushd %{buildroot}%{sdkinstdir} + sed -e "s,@OO_SDK_NAME@,sdk," \ + -e "s,@OO_SDK_HOME@,%{sdkinstdir}," \ + -e "s,@OFFICE_HOME@,%{baseinstdir}," \ + -e "s,@OO_SDK_MAKE_HOME@,/usr/bin," \ + -e "s,@OO_SDK_ZIP_HOME@,/usr/bin," \ + -e "s,@OO_SDK_CPP_HOME@,/usr/bin," \ + -e "s,@OO_SDK_CAT_HOME@,/usr/bin," \ + -e "s,@OO_SDK_SED_HOME@,/usr/bin," \ + -e "s,@OO_SDK_CC_55_OR_HIGHER@,," \ + -e "s,@OO_SDK_JAVA_HOME@,$JAVA_HOME," \ + -e "s,@OO_SDK_OUTPUT_DIR@,\$HOME," \ + -e "s,@SDK_AUTO_DEPLOYMENT@,NO," \ + setsdkenv_unix.sh.in > setsdkenv_unix.sh + # ensure no unexpanded vars sneaked in + grep '@[A_Z0-9_]\+@' setsdkenv_unix.sh && exit 1 + chmod 755 setsdkenv_unix.sh + # we don't want to install the input file + rm -f setsdkenv_unix.sh.in +# TODO: is this still necessary? +#fix permissions + find examples -type f -exec chmod -x {} \; +popd + +#ensure a template dir for each lang +pushd %{buildroot}%{baseinstdir}/share/template +for I in %{langpack_langs}; do + mkdir -p $I +done +popd + +#Set some aliases to canonical autocorrect language files for locales with matching languages +pushd %{buildroot}%{baseinstdir}/share/autocorr + +%make_autocorr_aliases -l en-GB en-AG en-AU en-BS en-BW en-BZ en-CA en-DK en-GH en-HK en-IE en-IN en-JM en-NG en-NZ en-SG en-TT +%make_autocorr_aliases -l en-US en-PH +#en-ZA exists and has a good autocorrect file with two or three extras that make sense for +#neighbouring english speaking territories +%make_autocorr_aliases -l en-ZA en-NA en-ZW +%if %{with langpacks} +%make_autocorr_aliases -l af-ZA af-NA +%make_autocorr_aliases -l nl-NL nl-AW +%make_autocorr_aliases -l sv-SE sv-FI +%else +rm -f acor_[a-df-z]*.dat acor_e[lsu]*.dat +%endif +popd +#rhbz#484055 make these shared across multiple applications +install -m 0755 -d %{buildroot}%{_datadir} +mv -f %{buildroot}%{baseinstdir}/share/autocorr %{buildroot}%{_datadir}/autocorr +chmod 755 %{buildroot}%{_datadir}/autocorr +ln -s %{_datadir}/autocorr %{buildroot}%{baseinstdir}/share/autocorr + +#remove it in case we didn't build with gcj +rm -f %{buildroot}%{baseinstdir}/program/classes/sandbox.jar +# we don't need this in the install +rm -f %{buildroot}%{baseinstdir}/program/classes/smoketest.jar + +#remove dummy .dat files +rm -f %{buildroot}%{baseinstdir}/program/root?.dat + +#set standard permissions for rpmlint +find %{buildroot}%{baseinstdir} -exec chmod +w {} \; +find %{buildroot}%{baseinstdir} -type d -exec chmod 0755 {} \; + +# move python bits into site-packages +install -m 0755 -d %{buildroot}%{libo_python_sitearch} +pushd %{buildroot}%{libo_python_sitearch} +echo "import sys, os" > uno.py +echo "sys.path.append('%{baseinstdir}/program')" >> uno.py +echo "os.putenv('URE_BOOTSTRAP', 'vnd.sun.star.pathname:%{baseinstdir}/program/fundamentalrc')" >> uno.py +cat %{buildroot}%{baseinstdir}/program/uno.py >> uno.py +rm -f %{buildroot}%{baseinstdir}/program/uno.py* +mv -f %{buildroot}%{baseinstdir}/program/unohelper.py* . +mv -f %{buildroot}%{baseinstdir}/program/officehelper.py* . +popd + +#https://fedoraproject.org/wiki/Changes/No_more_automagic_Python_bytecompilation_phase_3 +%py_byte_compile %{libo_python_executable} %{buildroot}%{baseinstdir}/program +rm -rf %{buildroot}%{baseinstdir}/program/__pycache__ + +# rhbz#477435 package opensymbol separately +pushd %{buildroot}%{baseinstdir}/program/resource/common/fonts +install -d -m 0755 %{buildroot}%{_fontdir} +install -p -m 0644 *.ttf %{buildroot}%{_fontdir} +popd +rm -rf %{buildroot}%{baseinstdir}/program/resource/common/fonts/*ttf +rm -rf %{buildroot}%{baseinstdir}/share/fonts/truetype/*.ttf + +# move platform-independent data into shared dir +install -m 0755 -d %{buildroot}%{datadir} +rm -f %{buildroot}%{baseinstdir}/CREDITS.fodt %{buildroot}%{baseinstdir}/LICENSE* %{buildroot}%{baseinstdir}/NOTICE +# rhbz#1473749 ensure display of files in license/about dialogs works +ln -sr %{buildroot}%{lodatadocdir}/CREDITS.fodt %{buildroot}%{baseinstdir}/CREDITS.fodt +ln -sr %{buildroot}%{lodatadocdir}/LICENSE.html %{buildroot}%{baseinstdir}/LICENSE.html + +#ensure that no sneaky un-prelinkable, un-fpic or non executable shared libs +#have snuck through +pic=0 +executable=0 +for foo in `find %{buildroot}%{instdir} -name "*" -exec file {} \;| grep ": ELF" | cut -d: -f 1` ; do + chmod +wx $foo + ls -asl $foo + result=`readelf -d $foo | grep TEXTREL` || true + if [ "$result" != "" ]; then + echo "TEXTREL Warning: $foo is b0rked (-fpic missing)" + pic=1 + fi + result=`readelf -l $foo | grep GNU_STACK | grep RWE` || true + if [ "$result" != "" ]; then + echo "GNU_STACK Warning: $foo is b0rked (-noexecstack missing)" + executable=1 + fi +done +if [ $pic == 1 ]; then false; fi +if [ $executable == 1 ]; then false; fi + +#make up some /usr/bin scripts +install -m 0755 -d %{buildroot}%{_bindir} + +pushd %{buildroot}%{_bindir} +echo \#\!/bin/sh > ooffice +echo exec libreoffice \"\$@\" >> ooffice +chmod a+x ooffice + +echo \#\!/bin/sh > ooviewdoc +echo exec libreoffice --view \"\$@\" >> ooviewdoc +chmod a+x ooviewdoc + +for app in base calc draw impress math writer; do + echo \#\!/bin/sh > oo$app + echo exec libreoffice --$app \"\$@\" >> oo$app + chmod a+x oo$app +done + +sed -e s/LAUNCHER/unopkg/g -e s/BRAND/libreoffice/g %{SOURCE8} > unopkg +chmod a+x unopkg + +sed -e s/LAUNCHER/soffice/g -e s/BRAND/libreoffice/g %{SOURCE8} > libreoffice +chmod a+x libreoffice + +%if 0%{?flatpak} +sed -i -e 's|/usr/lib|/app/lib|g' unopkg libreoffice +%endif + +# rhbz#499474 provide a /usr/bin/soffice for .recently-used.xbel +ln -s %{baseinstdir}/program/soffice soffice +# rhbz#499474 provide a /usr/bin/openoffice.org for backwards compat +ln -s libreoffice openoffice.org +popd + +pushd %{buildroot}%{baseinstdir}/share/xdg/ +chmod u+w *.desktop +ICONVERSION=`echo $PRODUCTVERSION | sed -e 's/\.//'` +for file in *.desktop; do + # rhbz#156677 remove the version from Name= + # rhbz#156067 don't version the icons + sed -i -e "s/ *$PRODUCTVERSION//g" \ + -e "s/$ICONVERSION//g" \ + -e "s/$PRODUCTVERSIONSHORT//g" \ + $file +done +# rhbz#186515 do not show startcenter +desktop-file-edit --set-key=NoDisplay --set-value=true startcenter.desktop +%if %{with serverconfig} +for app in base calc draw impress math startcenter writer xsltfilter; do + desktop-file-edit --set-key=NoDisplay --set-value=true $app.desktop +done +%endif +# relocate the .desktop and icon files +install -m 0755 -d %{buildroot}%{_datadir}/applications +for app in base calc draw impress math startcenter writer xsltfilter; do + sed -i -e 's/\${UNIXBASISROOTNAME}/%{name}/' $app.desktop + desktop-file-validate $app.desktop + install -m 0644 -p $app.desktop %{buildroot}%{_datadir}/applications/libreoffice-$app.desktop +done +popd +%if 0%{?flatpak} +# Transform the libreoffice-*.desktop files into +# org.libreoffice.LibreOffice.*.desktop ones: +solenv/bin/assemble-flatpak-desktop.sh %{buildroot}%{_datadir}/applications/ \ + %{buildroot}%{_datadir}/applications/ +rm %{buildroot}%{_datadir}/applications/libreoffice-*.desktop +%endif + +pushd $WORKDIR/os-integration +#get rid of the gnome icons and other unneeded files +rm -rf icons/gnome applications application-registry + +#relocate the rest of them +# rhbz#901346 512x512 icons are not used by anything +for icon in `find icons -path '*/512x512' -prune -o -type f -print`; do + install -m 0755 -d %{buildroot}%{_datadir}/`dirname $icon` + install -m 0644 -p $icon %{buildroot}%{_datadir}/`echo $icon | sed -e s@libreoffice$ICONVERSION-@libreoffice-@ | sed -e s@libreoffice$PRODUCTVERSION-@libreoffice-@` +done +#add our mime-types, e.g. for .oxt extensions +install -m 0755 -d %{buildroot}%{_datadir}/mime/packages +install -m 0644 -p mime/packages/libreoffice$PRODUCTVERSION.xml %{buildroot}%{_datadir}/mime/packages/libreoffice.xml + +%if 0%{?fedora} +# restrict abipkgdiff to shared objects that actually have a stable ABI +for pkg in core base officebean ogltrans pdfimport calc writer impress graphicfilter postgresql ure pyuno x11 gtk3 gtk4 kf5 libreofficekit; do + cat > %{buildroot}%{baseinstdir}/program/${pkg}.abignore << _EOF +[suppress_file] +file_name_not_regexp=.*\.so\.[0-9]+ +_EOF +done +%endif + +# install LibreOfficeKit +install -m 0755 -d %{buildroot}%{_libdir}/girepository-1.0 +install -m 0644 -p LOKDocView-%{girapiversion}.typelib %{buildroot}%{_libdir}/girepository-1.0/LOKDocView-%{girapiversion}.typelib +install -m 0755 -d %{buildroot}%{_libdir}/gir-1.0 +install -m 0644 -p LOKDocView-%{girapiversion}.gir %{buildroot}%{_libdir}/gir-1.0/LOKDocView-%{girapiversion}.gir +mv %{buildroot}%{baseinstdir}/program/liblibreofficekitgtk.so %{buildroot}%{_libdir} +popd + +# install LibreOfficeKit headers +install -m 0755 -d %{buildroot}%{_includedir}/LibreOfficeKit +install -m 0644 -p include/LibreOfficeKit/* %{buildroot}%{_includedir}/LibreOfficeKit + +rm -rf %{buildroot}%{baseinstdir}/readmes +rm -rf %{buildroot}%{baseinstdir}/licenses +rm -rf %{buildroot}%{baseinstdir}/share/theme_definitions + +# to-do, remove this in libreoffice 4.4 when --without-ppds is gone, it'll do the right thing on its own then +install -m 0755 -d %{buildroot}%{baseinstdir}/share/psprint/driver +install -m 0644 -p vcl/unx/generic/printer/configuration/ppds/SGENPRT.PS %{buildroot}%{baseinstdir}/share/psprint/driver/SGENPRT.PS + +# rhbz#452385 to auto have postgres in classpath if subsequently installed +sed -i -e "s#URE_MORE_JAVA_CLASSPATH_URLS.*#& file:///usr/share/java/postgresql-jdbc.jar#" %{buildroot}%{baseinstdir}/program/fundamentalrc + +# move glade catalog to system glade dir +install -m 0755 -d %{buildroot}%{_datadir}/glade/catalogs +mv %{buildroot}%{baseinstdir}/share/glade/libreoffice-catalog.xml %{buildroot}%{_datadir}/glade/catalogs +install -m 0755 -d %{buildroot}%{_datadir}/glade3/catalogs +ln -sr %{buildroot}%{_datadir}/glade/catalogs/libreoffice-catalog.xml %{buildroot}%{_datadir}/glade3/catalogs + +# rhbz#1049543 install appdata +install -m 0755 -d %{buildroot}%{_datadir}/metainfo +install -m 0644 -p sysui/desktop/appstream-appdata/*.appdata.xml %{buildroot}%{_datadir}/metainfo + +# rhbz#1215800 install symbolic icons +install -m 0755 -d %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps +install -m 0644 -p %{SOURCE42} %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps +install -m 0644 -p %{SOURCE43} %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps +install -m 0644 -p %{SOURCE44} %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps +install -m 0644 -p %{SOURCE45} %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps +install -m 0644 -p %{SOURCE46} %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps +install -m 0644 -p %{SOURCE47} %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps +install -m 0644 -p %{SOURCE48} %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps + +%if 0%{?flatpak} +# Duplicate icons/*/*/apps/libreoffice-* as +# icons/*/*/apps/org.libreoffice.LibreOffice.* (so they end up "with both their +# original libreoffice-* name as well as the org.libreoffice name needed by +# Flatpak, which fixes the window icons", see +# "clean up desktop integration"): +for i in %{buildroot}%{_datadir}/icons/*/*/apps/libreoffice-*; do + cp -a "$i" \ + "$(dirname "$i")"/org.libreoffice.LibreOffice."${i##*/apps/libreoffice-}" +done +%endif + +# install man pages +install -m 0755 -d %{buildroot}%{_mandir}/man1 +install -m 0644 -p sysui/desktop/man/*.1 %{buildroot}%{_mandir}/man1 +for app in oobase oocalc oodraw ooffice ooimpress oomath ooviewdoc oowriter openoffice.org soffice; do + echo '.so man1/libreoffice.1' > $app.1 + install -m 0644 -p $app.1 %{buildroot}%{_mandir}/man1 +done + +export DESTDIR=%{buildroot} +./solenv/bin/install-gdb-printers -a %{_datadir}/gdb/auto-load%{baseinstdir} -c -i %{baseinstdir} -p %{_datadir}/libreoffice/gdb + +%if 0%{?flatpak} +# Assemble the libreoffice-*.appdata.xml files into a single +# org.libreoffice.LibreOffice.appdata.xml: +solenv/bin/assemble-flatpak-appdata.sh \ + %{buildroot}%{_datadir}/metainfo/ 0 +rm %{buildroot}%{_datadir}/metainfo/libreoffice-*.appdata.xml +%endif + +%ifarch %{java_arches} +# rhbz#1247399 - move stable API jars to noarch java location +install -m 0755 -d %{buildroot}%{_javadir}/%{name} +for jar in %{buildroot}%{baseinstdir}/program/classes/*.jar; do + j=`basename $jar` + case ${j%.jar} in + juh|jurt|libreoffice|ridl|unoloader|unoil|officebean) + mv $jar %{buildroot}%{_javadir}/%{name} + ln -sr %{buildroot}%{_javadir}/%{name}/$j $jar + ;; + esac +done +%else +# make sure something creates this dir +install -m 0755 -d %{buildroot}%{baseinstdir}/share/extensions +# and remove this +rm -f %{buildroot}%{baseinstdir}/program/officebean.abignore +%endif + +%check +make unitcheck slowcheck +# we don't need this anymore +rm -f %{buildroot}%{baseinstdir}/program/classes/smoketest.jar + +%files + +%files filters + +%files core +%dir %{baseinstdir} +%{baseinstdir}/CREDITS.fodt +%{baseinstdir}/LICENSE.html +%dir %{baseinstdir}/help +%{baseinstdir}/help/idxcaption.xsl +%{baseinstdir}/help/idxcontent.xsl +%{baseinstdir}/help/main_transform.xsl +%{baseinstdir}/presets +%dir %{baseinstdir}/program +%if 0%{?fedora} +%{baseinstdir}/program/core.abignore +%endif +%{baseinstdir}/program/libbasprovlo.so +%{baseinstdir}/program/libcairocanvaslo.so +%{baseinstdir}/program/libcanvasfactorylo.so +%ifarch %{java_arches} +%dir %{baseinstdir}/program/classes +%{baseinstdir}/program/classes/commonwizards.jar +%{baseinstdir}/program/classes/form.jar +%{baseinstdir}/program/classes/query.jar +%{baseinstdir}/program/classes/report.jar +%{baseinstdir}/program/classes/ScriptFramework.jar +%{baseinstdir}/program/classes/ScriptProviderForJava.jar +%{baseinstdir}/program/classes/table.jar +%{baseinstdir}/program/classes/unoil.jar +%{baseinstdir}/program/classes/XMergeBridge.jar +%{baseinstdir}/program/classes/xmerge.jar +%endif +%{baseinstdir}/program/libcmdmaillo.so +%{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 +%{baseinstdir}/program/gengal.bin +%{baseinstdir}/program/libi18nsearchlo.so +%{baseinstdir}/program/libldapbe2lo.so +%{baseinstdir}/program/libacclo.so +%{baseinstdir}/program/libanimcorelo.so +%{baseinstdir}/program/libavmedia*.so +%{baseinstdir}/program/libbasctllo.so +%{baseinstdir}/program/libbiblo.so +%{baseinstdir}/program/libcached1.so +%{baseinstdir}/program/libcanvastoolslo.so +%{baseinstdir}/program/libchart*lo.so +%{baseinstdir}/program/libclewlo.so +%{baseinstdir}/program/libcollator_data.so +%{baseinstdir}/program/libcppcanvaslo.so +%{baseinstdir}/program/libctllo.so +%{baseinstdir}/program/libcuilo.so +%{baseinstdir}/program/libdbalo.so +%{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 +%{baseinstdir}/program/libdeploymentmisclo.so +%{baseinstdir}/program/libdesktop_detectorlo.so +%{baseinstdir}/program/libdict_ja.so +%{baseinstdir}/program/libdict_zh.so +%{baseinstdir}/program/libdocmodello.so +%{baseinstdir}/program/libdrawinglayerlo.so +%{baseinstdir}/program/libdrawinglayercorelo.so +%{baseinstdir}/program/libeditenglo.so +%{baseinstdir}/program/libembobj.so +%{baseinstdir}/program/libemboleobj.so +%{baseinstdir}/program/libemfiolo.so +%{baseinstdir}/program/libevoab*.so +%{baseinstdir}/program/libevtattlo.so +%{baseinstdir}/program/libicglo.so +%{baseinstdir}/program/libindex_data.so +%{baseinstdir}/program/libfilelo.so +%{baseinstdir}/program/libfilterconfiglo.so +%{baseinstdir}/program/libflatlo.so +%{baseinstdir}/program/libfrmlo.so +%{baseinstdir}/program/libguesslanglo.so +%{baseinstdir}/program/libhelplinkerlo.so +%{baseinstdir}/program/libhyphenlo.so +%ifarch %{java_arches} +%{baseinstdir}/program/libjdbclo.so +%endif +%{baseinstdir}/program/libLanguageToollo.so +%{baseinstdir}/program/liblnglo.so +%{baseinstdir}/program/libloglo.so +%{baseinstdir}/program/liblocaledata_en.so +%{baseinstdir}/program/liblocaledata_es.so +%{baseinstdir}/program/liblocaledata_euro.so +%{baseinstdir}/program/liblocaledata_others.so +%{baseinstdir}/program/libmozbootstraplo.so +%{baseinstdir}/program/libmsfilterlo.so +%{baseinstdir}/program/libmtfrendererlo.so +%{baseinstdir}/program/libmysql_jdbclo.so +%{baseinstdir}/program/libmysqlclo.so +%{baseinstdir}/program/libodbclo.so +%{baseinstdir}/program/liboglcanvaslo.so +%{baseinstdir}/program/liboffacclo.so +%{baseinstdir}/program/libooxlo.so +%{baseinstdir}/program/libopencllo.so +%{baseinstdir}/program/libpcrlo.so +%{baseinstdir}/program/libpdffilterlo.so +%{baseinstdir}/program/libprotocolhandlerlo.so +%{baseinstdir}/program/libsaxlo.so +%{baseinstdir}/program/libscnlo.so +%{baseinstdir}/program/libscriptframe.so +%{baseinstdir}/program/libsdlo.so +%{baseinstdir}/program/libsdbc2.so +%{baseinstdir}/program/libsdbtlo.so +%{baseinstdir}/program/libsddlo.so +%{baseinstdir}/program/libsduilo.so +%{baseinstdir}/program/libspelllo.so +%{baseinstdir}/program/libsrtrs1.so +%{baseinstdir}/program/libstoragefdlo.so +%{baseinstdir}/program/libsvgiolo.so +%{baseinstdir}/program/libsvxlo.so +%{baseinstdir}/program/libsvxcorelo.so +%{baseinstdir}/program/libswdlo.so +%{baseinstdir}/program/libswlo.so +%{baseinstdir}/program/libtextconv_dict.so +%{baseinstdir}/program/libtextconversiondlgslo.so +%{baseinstdir}/program/libtextfdlo.so +%{baseinstdir}/program/libodfflatxmllo.so +# TODO: shouldn't it have lo suffix? +%{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 +%{baseinstdir}/program/libunopkgapp.so +%{baseinstdir}/program/libunoxmllo.so +%{baseinstdir}/program/libuuilo.so +%{baseinstdir}/program/libvbahelperlo.so +%{baseinstdir}/program/libxmlfalo.so +%{baseinstdir}/program/libxmlfdlo.so +%{baseinstdir}/program/libxoflo.so +%{baseinstdir}/program/libxsec_xmlsec.so +%{baseinstdir}/program/libxsltdlglo.so +%{baseinstdir}/program/libxsltfilterlo.so +%{baseinstdir}/program/libxstor.so +# TODO how useful this is in Fedora? +%{baseinstdir}/program/liblosessioninstalllo.so +%{baseinstdir}/program/libmigrationoo2lo.so +%{baseinstdir}/program/libmigrationoo3lo.so +%{baseinstdir}/program/libmsformslo.so +%{baseinstdir}/program/opencl +%dir %{baseinstdir}/program/opengl +%{baseinstdir}/program/opengl/*.glsl +%{baseinstdir}/program/types/offapi.rdb +%{baseinstdir}/program/libpasswordcontainerlo.so +%{baseinstdir}/program/pagein-common +%dir %{baseinstdir}/program/resource +%dir %{baseinstdir}/program/resource/common +%dir %{baseinstdir}/program/resource/common/fonts +%{baseinstdir}/program/senddoc +%dir %{baseinstdir}/program/services +%{baseinstdir}/program/services/services.rdb +%{baseinstdir}/program/libsimplecanvaslo.so +%{baseinstdir}/program/libslideshowlo.so +%{baseinstdir}/program/libsmlo.so +%{baseinstdir}/program/libsmdlo.so +%{baseinstdir}/program/libsofficeapp.so +%{baseinstdir}/program/libstringresourcelo.so +%{baseinstdir}/program/libsysshlo.so +%{baseinstdir}/program/libucpcmis1lo.so +%{baseinstdir}/program/libucpexpand1lo.so +%{baseinstdir}/program/libucpextlo.so +%{baseinstdir}/program/libucpimagelo.so +%{baseinstdir}/program/libucptdoc1lo.so +%{baseinstdir}/program/lounorc +%{baseinstdir}/program/libupdatefeedlo.so +%{baseinstdir}/program/uri-encode +%{baseinstdir}/program/libvbaeventslo.so +%{baseinstdir}/program/libvclcanvaslo.so +%{baseinstdir}/program/versionrc +%dir %{baseinstdir}/share +%dir %{baseinstdir}/share/classification +%{baseinstdir}/share/classification/example*.xml +%dir %{baseinstdir}/share/fonts +%dir %{baseinstdir}/share/fonts/truetype +%{baseinstdir}/share/fonts/truetype/fc_local.conf +%dir %{baseinstdir}/share/Scripts +%ifarch %{java_arches} +%{baseinstdir}/share/Scripts/java +%endif +%dir %{baseinstdir}/share/autotext +%dir %{_datadir}/autocorr +%{baseinstdir}/share/autocorr +%{baseinstdir}/share/basic +%dir %{baseinstdir}/share/config +%{baseinstdir}/share/config/images_breeze.zip +%{baseinstdir}/share/config/images_breeze_svg.zip +%{baseinstdir}/share/config/images_breeze_dark.zip +%{baseinstdir}/share/config/images_breeze_dark_svg.zip +%{baseinstdir}/share/config/images_colibre.zip +%{baseinstdir}/share/config/images_colibre_svg.zip +%{baseinstdir}/share/config/images_colibre_dark.zip +%{baseinstdir}/share/config/images_colibre_dark_svg.zip +%{baseinstdir}/share/config/images_elementary.zip +%{baseinstdir}/share/config/images_elementary_svg.zip +%{baseinstdir}/share/config/images_helpimg.zip +%{baseinstdir}/share/config/images_karasa_jaga.zip +%{baseinstdir}/share/config/images_karasa_jaga_svg.zip +%{baseinstdir}/share/config/images_sifr.zip +%{baseinstdir}/share/config/images_sifr_dark.zip +%{baseinstdir}/share/config/images_sifr_dark_svg.zip +%{baseinstdir}/share/config/images_sifr_svg.zip +%{baseinstdir}/share/config/images_sukapura.zip +%{baseinstdir}/share/config/images_sukapura_svg.zip +%{baseinstdir}/share/config/images_sukapura_dark.zip +%{baseinstdir}/share/config/images_sukapura_dark_svg.zip +%dir %{baseinstdir}/share/tipoftheday +%{baseinstdir}/share/tipoftheday/* +%dir %{baseinstdir}/share/toolbarmode +%{baseinstdir}/share/toolbarmode/* +%dir %{baseinstdir}/share/config/soffice.cfg +%{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 +%{baseinstdir}/share/gallery +%dir %{baseinstdir}/share/labels +%{baseinstdir}/share/labels/labels.xml +%dir %{baseinstdir}/share/psprint +%config %{baseinstdir}/share/psprint/psprint.conf +%{baseinstdir}/share/psprint/driver +%dir %{baseinstdir}/share/registry +%{baseinstdir}/share/registry/draw.xcd +%{baseinstdir}/share/registry/gnome.xcd +%{baseinstdir}/share/registry/lingucomponent.xcd +%{baseinstdir}/share/registry/main.xcd +%{baseinstdir}/share/registry/math.xcd +%{baseinstdir}/share/registry/oo-ad-ldap.xcd.sample +%{baseinstdir}/share/registry/oo-ldap.xcd.sample +%dir %{baseinstdir}/share/registry/res +%dir %{baseinstdir}/share/template +%dir %{baseinstdir}/share/template/common +%{baseinstdir}/share/template/common/draw +%{baseinstdir}/share/template/common/internal +%{baseinstdir}/share/template/common/officorr +%{baseinstdir}/share/template/common/offimisc +%{baseinstdir}/share/template/common/personal +%{baseinstdir}/share/template/common/presnt +%{baseinstdir}/share/template/common/styles +%{baseinstdir}/share/template/common/wizard +%dir %{baseinstdir}/share/template/common/l10n +%{baseinstdir}/share/template/wizard +%dir %{baseinstdir}/share/wordbook +%{baseinstdir}/share/wordbook/en-GB.dic +%{baseinstdir}/share/wordbook/en-US.dic +%{baseinstdir}/share/wordbook/technical.dic +%{baseinstdir}/program/liblnthlo.so +%{_bindir}/unopkg +%{_mandir}/man1/unopkg.1* +%{baseinstdir}/program/libxmlsecurity.so +%{baseinstdir}/program/libconfigmgrlo.so +%{baseinstdir}/program/libdesktopbe1lo.so +%{baseinstdir}/program/libfsstoragelo.so +%{baseinstdir}/program/libi18npoollo.so +%{baseinstdir}/program/libbasegfxlo.so +# TODO: shouldn't it have lo suffix? +%{baseinstdir}/program/libcomphelper.so +%{baseinstdir}/program/libfwklo.so +# TODO: shouldn't it have lo suffix? +%{baseinstdir}/program/libi18nutil.so +%{baseinstdir}/program/libpackage2.so +%{baseinstdir}/program/libsblo.so +%{baseinstdir}/program/libsfxlo.so +%{baseinstdir}/program/libsotlo.so +%{baseinstdir}/program/libspllo.so +%{baseinstdir}/program/libsvllo.so +%{baseinstdir}/program/libsvtlo.so +%{baseinstdir}/program/libtklo.so +%{baseinstdir}/program/libtllo.so +%{baseinstdir}/program/libucb1.so +%{baseinstdir}/program/libucpfile1.so +%{baseinstdir}/program/libutllo.so +%{baseinstdir}/program/libvcllo.so +%{baseinstdir}/program/libwriterperfectlo.so +%{baseinstdir}/program/libxmlscriptlo.so +%{baseinstdir}/program/libxolo.so +%{baseinstdir}/program/liblocalebe1lo.so +%{baseinstdir}/program/libucpgio1lo.so +%{baseinstdir}/program/types/oovbaapi.rdb +#share unopkg +%dir %{baseinstdir}/share/extensions +%{baseinstdir}/program/unopkg +%{baseinstdir}/program/unopkg.bin +%{baseinstdir}/program/bootstraprc +%{baseinstdir}/program/fundamentalrc +%{baseinstdir}/program/setuprc +%{baseinstdir}/program/intro.png +%{baseinstdir}/program/intro-highres.png +%{baseinstdir}/program/opencltest +%{baseinstdir}/program/soffice +%{baseinstdir}/program/soffice.bin +%{baseinstdir}/program/sofficerc +%{baseinstdir}/program/unoinfo +%{baseinstdir}/program/oosplash +%{baseinstdir}/program/shell/ +%dir %{baseinstdir}/share/filter +%{baseinstdir}/share/filter/oox-drawingml-adj-names +%{baseinstdir}/share/filter/oox-drawingml-cs-presets +%{baseinstdir}/share/filter/signature-line.svg +%{baseinstdir}/share/filter/signature-line-draw.svg +%{baseinstdir}/share/filter/vml-shape-types +%{baseinstdir}/share/xdg/ +%{baseinstdir}/program/redirectrc +%if 0%{?flatpak} +%{_datadir}/metainfo/org.libreoffice.LibreOffice.appdata.xml +%{_datadir}/applications/org.libreoffice.LibreOffice.desktop +%else +%{_datadir}/applications/libreoffice-startcenter.desktop +%endif +#launchers +%{_bindir}/libreoffice +%{_bindir}/openoffice.org +%{_bindir}/soffice +%{_bindir}/ooffice +%{_bindir}/ooviewdoc +%{_mandir}/man1/libreoffice.1* +%{_mandir}/man1/openoffice.org.1* +%{_mandir}/man1/soffice.1* +%{_mandir}/man1/ooffice.1* +%{_mandir}/man1/ooviewdoc.1* + +%files base +%ifarch %{java_arches} +%{baseinstdir}/program/classes/hsqldb.jar +%{baseinstdir}/program/classes/reportbuilder.jar +%{baseinstdir}/program/classes/reportbuilderwizard.jar +%{baseinstdir}/program/classes/sdbc_hsqldb.jar +%endif +%{baseinstdir}/program/access2base.py +%if 0%{?fedora} +%{baseinstdir}/program/base.abignore +%endif +%{baseinstdir}/program/libabplo.so +%{baseinstdir}/program/libdbplo.so +%if 0%{?fedora} +%{baseinstdir}/program/libfirebird_sdbclo.so +%endif +%ifarch %{java_arches} +%{baseinstdir}/program/libhsqldb.so +%{baseinstdir}/program/librptlo.so +%{baseinstdir}/program/librptuilo.so +%{baseinstdir}/program/librptxmllo.so +%endif +%{baseinstdir}/share/registry/base.xcd +%ifarch %{java_arches} +%{baseinstdir}/share/registry/reportbuilder.xcd +%endif +%{baseinstdir}/program/sbase +%if 0%{?flatpak} +%{_datadir}/applications/org.libreoffice.LibreOffice.base.desktop +%else +%{_datadir}/metainfo/libreoffice-base.appdata.xml +%{_datadir}/applications/libreoffice-base.desktop +%endif +%{_bindir}/oobase +%{_mandir}/man1/oobase.1* + +%ifarch %{java_arches} + +%files wiki-publisher +%docdir %{baseinstdir}/share/extensions/wiki-publisher/license +%{baseinstdir}/share/extensions/wiki-publisher + +%files nlpsolver +%docdir %{baseinstdir}/share/extensions/nlpsolver/help +%{baseinstdir}/share/extensions/nlpsolver + +%files officebean +%{baseinstdir}/program/classes/officebean.jar +%if 0%{?fedora} +%{baseinstdir}/program/officebean.abignore +%endif +%{baseinstdir}/program/libofficebean.so + +%files officebean-common +%{_javadir}/%{name}/officebean.jar + +%endif + +%files ogltrans +%if 0%{?fedora} +%{baseinstdir}/program/ogltrans.abignore +%endif +%{baseinstdir}/program/libOGLTranslo.so +%{baseinstdir}/program/opengl/basicFragmentShader.glsl +%{baseinstdir}/program/opengl/basicVertexShader.glsl +%{baseinstdir}/program/opengl/dissolveFragmentShader.glsl +%{baseinstdir}/program/opengl/fadeBlackFragmentShader.glsl +%{baseinstdir}/program/opengl/fadeFragmentShader.glsl +%{baseinstdir}/program/opengl/glitterFragmentShader.glsl +%{baseinstdir}/program/opengl/glitterVertexShader.glsl +%{baseinstdir}/program/opengl/honeycombFragmentShader.glsl +%{baseinstdir}/program/opengl/honeycombGeometryShader.glsl +%{baseinstdir}/program/opengl/honeycombVertexShader.glsl +%{baseinstdir}/program/opengl/rippleFragmentShader.glsl +%{baseinstdir}/program/opengl/reflectionFragmentShader.glsl +%{baseinstdir}/program/opengl/reflectionVertexShader.glsl +%{baseinstdir}/program/opengl/staticFragmentShader.glsl +%{baseinstdir}/program/opengl/vortexFragmentShader.glsl +%{baseinstdir}/program/opengl/vortexGeometryShader.glsl +%{baseinstdir}/program/opengl/vortexVertexShader.glsl +%{baseinstdir}/share/config/soffice.cfg/simpress/transitions-ogl.xml +%{baseinstdir}/share/registry/ogltrans.xcd + +%files pdfimport +%if 0%{?fedora} +%{baseinstdir}/program/pdfimport.abignore +%endif +%{baseinstdir}/program/libpdfimportlo.so +%{baseinstdir}/program/xpdfimport +%{baseinstdir}/share/registry/pdfimport.xcd +%dir %{baseinstdir}/share/xpdfimport +%{baseinstdir}/share/xpdfimport/xpdfimport_err.pdf + +%_font_pkg -n %{fontname} opens___.ttf +%doc instdir/LICENSE + +%files calc +%if 0%{?fedora} +%{baseinstdir}/program/calc.abignore +%endif +%{baseinstdir}/program/libanalysislo.so +%{baseinstdir}/program/libcalclo.so +%{baseinstdir}/program/libdatelo.so +%{baseinstdir}/program/libforlo.so +%{baseinstdir}/program/libforuilo.so +%{baseinstdir}/program/libnumbertextlo.so +%{baseinstdir}/program/libpricinglo.so +%{baseinstdir}/program/libsclo.so +%{baseinstdir}/program/libscdlo.so +%{baseinstdir}/program/libscfiltlo.so +%{baseinstdir}/program/libscuilo.so +%{baseinstdir}/program/libsolverlo.so +%{baseinstdir}/program/libwpftcalclo.so +%{baseinstdir}/program/libvbaobjlo.so +%{baseinstdir}/share/calc/styles.xml +%{baseinstdir}/share/registry/calc.xcd +%{baseinstdir}/program/pagein-calc +%{baseinstdir}/program/scalc +%if 0%{?flatpak} +%{_datadir}/applications/org.libreoffice.LibreOffice.calc.desktop +%else +%{_datadir}/metainfo/libreoffice-calc.appdata.xml +%{_datadir}/applications/libreoffice-calc.desktop +%endif +%{_bindir}/oocalc +%{_mandir}/man1/oocalc.1* + +%files draw +%{baseinstdir}/program/pagein-draw +%{baseinstdir}/program/sdraw +%if 0%{?flatpak} +%{_datadir}/applications/org.libreoffice.LibreOffice.draw.desktop +%else +%{_datadir}/metainfo/libreoffice-draw.appdata.xml +%{_datadir}/applications/libreoffice-draw.desktop +%endif +%{_bindir}/oodraw +%{_mandir}/man1/oodraw.1* + +%files emailmerge +%{baseinstdir}/program/mailmerge.py* +%{baseinstdir}/program/msgbox.py* + +%files writer +%if 0%{?fedora} +%{baseinstdir}/program/writer.abignore +%endif +%{baseinstdir}/program/libhwplo.so +%{baseinstdir}/program/liblwpftlo.so +%{baseinstdir}/program/libmswordlo.so +%{baseinstdir}/program/libswuilo.so +%{baseinstdir}/program/libt602filterlo.so +%{baseinstdir}/program/libwpftwriterlo.so +%{baseinstdir}/program/libwriterfilterlo.so +%{baseinstdir}/program/libwriterlo.so +%{baseinstdir}/program/libvbaswobjlo.so +%{baseinstdir}/share/registry/writer.xcd +%{baseinstdir}/program/pagein-writer +%{baseinstdir}/program/swriter +%if 0%{?flatpak} +%{_datadir}/applications/org.libreoffice.LibreOffice.writer.desktop +%else +%{_datadir}/metainfo/libreoffice-writer.appdata.xml +%{_datadir}/applications/libreoffice-writer.desktop +%endif +%{_bindir}/oowriter +%{_mandir}/man1/oowriter.1* + +%files impress +%if 0%{?fedora} +%{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 +%{baseinstdir}/share/config/soffice.cfg/simpress/layoutlist.xml +%{baseinstdir}/share/config/soffice.cfg/simpress/objectlist.xml +%{baseinstdir}/share/config/soffice.cfg/simpress/styles.xml +%{baseinstdir}/share/config/soffice.cfg/simpress/transitions.xml +%{baseinstdir}/share/registry/impress.xcd +%{baseinstdir}/program/pagein-impress +%{baseinstdir}/program/simpress +%if 0%{?flatpak} +%{_datadir}/applications/org.libreoffice.LibreOffice.impress.desktop +%else +%{_datadir}/metainfo/libreoffice-impress.appdata.xml +%{_datadir}/applications/libreoffice-impress.desktop +%endif +%{_bindir}/ooimpress +%{_mandir}/man1/ooimpress.1* + +%files math +%{baseinstdir}/program/smath +%if 0%{?flatpak} +%{_datadir}/applications/org.libreoffice.LibreOffice.math.desktop +%else +%{_datadir}/applications/libreoffice-math.desktop +%endif +%{_bindir}/oomath +%{_mandir}/man1/oomath.1* + +%files graphicfilter +%if 0%{?fedora} +%{baseinstdir}/program/graphicfilter.abignore +%endif +%{baseinstdir}/program/libgraphicfilterlo.so +%{baseinstdir}/program/libsvgfilterlo.so +%{baseinstdir}/program/libwpftdrawlo.so +%{baseinstdir}/share/registry/graphicfilter.xcd + +%files xsltfilter +%{baseinstdir}/share/xslt +%{baseinstdir}/share/registry/xsltfilter.xcd +%if 0%{?flatpak} +%{_datadir}/applications/org.libreoffice.LibreOffice.xsltfilter.desktop +%else +%{_datadir}/applications/libreoffice-xsltfilter.desktop +%endif + +%files postgresql +%if 0%{?fedora} +%{baseinstdir}/program/postgresql.abignore +%endif +%{baseinstdir}/program/libpostgresql-sdbclo.so +%{baseinstdir}/program/libpostgresql-sdbc-impllo.so +%{baseinstdir}/program/services/postgresql-sdbc.rdb +%{baseinstdir}/share/registry/postgresql.xcd + +%files ure +%ifarch %{java_arches} +%{baseinstdir}/program/classes/java_uno.jar +%{baseinstdir}/program/classes/juh.jar +%{baseinstdir}/program/classes/jurt.jar +%{baseinstdir}/program/classes/libreoffice.jar +%{baseinstdir}/program/classes/ridl.jar +%{baseinstdir}/program/classes/unoloader.jar +%{baseinstdir}/program/javaldx +%{baseinstdir}/program/javavendors.xml +%{baseinstdir}/program/jvmfwk3rc +%{baseinstdir}/program/JREProperties.class +%endif +%if 0%{?fedora} +%{baseinstdir}/program/ure.abignore +%endif +%{baseinstdir}/program/libaffine_uno_uno.so +%{baseinstdir}/program/libbinaryurplo.so +%{baseinstdir}/program/libbootstraplo.so +%{baseinstdir}/program/libgcc3_uno.so +%{baseinstdir}/program/libi18nlangtag.so +%{baseinstdir}/program/libintrospectionlo.so +%{baseinstdir}/program/libinvocadaptlo.so +%{baseinstdir}/program/libinvocationlo.so +%{baseinstdir}/program/libiolo.so +%ifarch %{java_arches} +%{baseinstdir}/program/libjava_uno.so +%{baseinstdir}/program/libjavaloaderlo.so +%{baseinstdir}/program/libjavavmlo.so +%{baseinstdir}/program/libjpipe.so +%{baseinstdir}/program/libjuh.so +%{baseinstdir}/program/libjuhx.so +%{baseinstdir}/program/libjvmaccesslo.so +%{baseinstdir}/program/libjvmfwklo.so +%endif +%{baseinstdir}/program/liblog_uno_uno.so +%{baseinstdir}/program/libnamingservicelo.so +%{baseinstdir}/program/libproxyfaclo.so +%{baseinstdir}/program/libreflectionlo.so +%{baseinstdir}/program/libreglo.so +%{baseinstdir}/program/libsal_textenclo.so +%{baseinstdir}/program/libstocserviceslo.so +%{baseinstdir}/program/libstorelo.so +%{baseinstdir}/program/libuno_cppu.so.3 +%{baseinstdir}/program/libuno_cppuhelpergcc3.so.3 +%{baseinstdir}/program/libuno_purpenvhelpergcc3.so.3 +%{baseinstdir}/program/libuno_sal.so.3 +%{baseinstdir}/program/libuno_salhelpergcc3.so.3 +%{baseinstdir}/program/libunoidllo.so +%{baseinstdir}/program/libunsafe_uno_uno.so +%{baseinstdir}/program/libuuresolverlo.so +%{baseinstdir}/program/libxmlreaderlo.so +%{baseinstdir}/program/regview +%{baseinstdir}/program/services.rdb +%{baseinstdir}/program/types.rdb +%{baseinstdir}/program/uno +%{baseinstdir}/program/uno.bin +%{baseinstdir}/program/unorc + +%files ure-common +%ifarch %{java_arches} +%dir %{_javadir}/%{name} +%{_javadir}/%{name}/juh.jar +%{_javadir}/%{name}/jurt.jar +%{_javadir}/%{name}/libreoffice.jar +%{_javadir}/%{name}/ridl.jar +%{_javadir}/%{name}/unoloader.jar +%endif +%license instdir/LICENSE + +%files sdk +%{sdkinstdir}/ +%exclude %{sdkinstdir}/docs/ +%exclude %{sdkinstdir}/examples/ + +%files sdk-doc +%docdir %{sdkinstdir}/docs +%license instdir/LICENSE +%{sdkinstdir}/docs/ +%{sdkinstdir}/examples/ + +%files pyuno +%if 0%{?fedora} +%{baseinstdir}/program/pyuno.abignore +%endif +%{baseinstdir}/program/libpyuno.so +%{baseinstdir}/program/pythonloader.py* +%{baseinstdir}/program/libpythonloaderlo.so +%{baseinstdir}/program/pythonloader.unorc +%{baseinstdir}/program/pythonscript.py* +%{baseinstdir}/program/pyuno.so +%{baseinstdir}/program/scriptforge.py* +%{baseinstdir}/program/services/pyuno.rdb +%{baseinstdir}/program/services/scriptproviderforpython.rdb +%{baseinstdir}/program/wizards +%{baseinstdir}/share/Scripts/python +%exclude %{baseinstdir}/share/Scripts/python/LibreLogo +%{libo_python_sitearch}/uno.py* +%{libo_python_sitearch}/unohelper.py* +%{libo_python_sitearch}/officehelper.py* +%{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 +%{baseinstdir}/share/Scripts/python/LibreLogo + +%files glade +%{_datadir}/glade +%{_datadir}/glade3 + +%files data +%{_datadir}/icons/hicolor/*/*/libreoffice* +%if 0%{?flatpak} +%{_datadir}/icons/hicolor/*/*/org.libreoffice.LibreOffice.* +%endif +%{_datadir}/mime/packages/libreoffice.xml +%ifarch %{java_arches} +%dir %{_javadir}/%{name} +%{_javadir}/%{name}/unoil.jar +%endif +%dir %{datadir} +%doc instdir/CREDITS.fodt +%doc instdir/LICENSE.html +%doc instdir/LICENSE +%doc instdir/NOTICE +%license instdir/LICENSE + +%post data +touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : + +%postun data +if [ $1 -eq 0 ] ; then + touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : + gtk-update-icon-cache -q %{_datadir}/icons/hicolor &>/dev/null || : +fi + +%posttrans data +gtk-update-icon-cache -q %{_datadir}/icons/hicolor &>/dev/null || : + +%files x11 +%if 0%{?fedora} +%{baseinstdir}/program/x11.abignore +%endif +%{baseinstdir}/program/libvclplug_genlo.so + +%files gtk3 +%if 0%{?fedora} +%{baseinstdir}/program/gtk3.abignore +%endif +%{baseinstdir}/program/libvclplug_gtk3lo.so + +%files gtk4 +%if 0%{?fedora} +%{baseinstdir}/program/gtk4.abignore +%endif +%{baseinstdir}/program/libvclplug_gtk4lo.so + +%if 0%{?fedora} + +%files kf5 +%{baseinstdir}/program/kf5.abignore +%{baseinstdir}/program/libkf5be1lo.so +%{baseinstdir}/program/libvclplug_kf5lo.so +%{baseinstdir}/program/libvclplug_qt5lo.so + +%endif + +%files -n libreofficekit +%{baseinstdir}/share/libreofficekit +%{_libdir}/girepository-1.0/LOKDocView-%{girapiversion}.typelib +%if 0%{?fedora} +%{baseinstdir}/program/libreofficekit.abignore +%endif +%{_libdir}/liblibreofficekitgtk.so + +%files -n libreofficekit-devel +%{_libdir}/gir-1.0/LOKDocView-%{girapiversion}.gir +%{_includedir}/LibreOfficeKit + +%changelog +* Fri Dec 08 2023 Gwyn Ciesla - 1:7.6.4.1-1 +- 7.6.4.1 + +* Wed Nov 15 2023 Gwyn Ciesla - 1:7.6.3.1-3 +- libcmis rebuild. + +* Tue Nov 14 2023 Gwyn Ciesla - 1:7.6.3.1-2 +- libcmis rebuild + +* Wed Nov 08 2023 Gwyn Ciesla - 1:7.6.3.1-1 +- 7.6.3.1 + +* Sun Oct 15 2023 Mattia Verga - 1:7.6.2.1-6 +- re-enable a bunch of tests that were previously failing + +* Thu Oct 12 2023 Gwyn Ciesla - 1:7.6.2.1-5 +- libcmis rebuild + +* Sun Oct 01 2023 Mattia Verga - 1:7.6.2.1-2 +- Add patch 501 for failing tests on aarc64 and s390x + +* Sat Sep 30 2023 Mattia Verga - 1:7.6.2.1-1 +- 7.6.2.1 + +* Fri Sep 08 2023 Gwyn Ciesla - 1:7.6.1.2-1 +- 7.6.1.2 + +* Mon Sep 04 2023 Mattia Verga - 1:7.6.1.1-2 +- Unbundle dragonbox + +* Mon Aug 28 2023 Gwyn Ciesla - 1:7.6.1.1-1 +- 7.6.1.1 + +* Sun Aug 27 2023 Mattia Verga - 1:7.6.0.3-4 +- Remove test exclusions from aarch64 +- Link aarch64 executable with standard -g level + +* Wed Aug 23 2023 Mattia Verga - 1:7.6.0.3-3 +- Disable other failing tests under s390x +- Add patch to fix FTB under ppc64le + +* Tue Aug 15 2023 Mattia Verga - 1:7.6.0.3-2 +- Disable unreliable test under s390x +- Try verbose make if first build attempt fails + +* Sun Aug 13 2023 Mattia Verga - 1:7.6.0.3-1 +- 7.6.0.3 + +* Wed Aug 02 2023 Gwyn Ciesla - 1:7.5.5.2-2 +- Poppler rebuild. + +* Mon Jul 31 2023 Gwyn Ciesla - 1:7.5.5.2-1 +- 7.5.5.2 + +* Thu Jul 20 2023 Fedora Release Engineering - 1:7.5.4.2-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Tue Jul 11 2023 František Zatloukal - 1:7.5.4.2-4 +- Rebuilt for ICU 73.2 + +* Fri Jun 30 2023 Vitaly Zaitsev - 1:7.5.4.2-3 +- Make Java optional. Fixes rhbz#2084071. + +* Mon Jun 19 2023 Mamoru TASAKA - 1:7.5.4.2-2 +- Backport upstream fix for testSignDocument_PEM_PDF test failure +- Enable test again + +* Fri Jun 16 2023 Gwyn Ciesla - 1:7.5.4.2-1 +- 7.5.4.2 +- Drop 0001-tdf-155161-Always-embed-fonts-with-CFF2-table-as-PDF.patch, upstreamed. + +* Thu Jun 15 2023 Gwyn Ciesla - 1:7.5.3.2-4 +- Disable tests temporarily to resolve FTBFS. + +* Thu Jun 15 2023 Python Maint - 1:7.5.3.2-3 +- Rebuilt for Python 3.12 + +* Tue May 09 2023 Caolán McNamara - 1:7.5.3.2-2 +- rhbz#2192915 Japanese font not printed + +* Thu May 04 2023 Caolán McNamara - 1:7.5.3.2-1 +- latest version + +* Fri Mar 31 2023 Caolán McNamara - 1:7.5.2.2-1 +- latest version + +* Wed Mar 22 2023 Stephan Bergmann - 1:7.5.1.2-4 +- Resolves: rhbz#2171265 Failure to start with junk in program/services/ + +* Fri Mar 10 2023 Caolán McNamara - 1:7.5.1.2-3 +- Use sifr/sifr_dark for gnome, + https://pagure.io/fedora-workstation/issue/361 + +* Thu Mar 09 2023 Caolán McNamara - 1:7.5.1.2-2 +- fix gray background in kf5 print preview + +* Thu Mar 02 2023 Caolán McNamara - 1:7.5.1.2-1 +- latest version + +* Fri Feb 24 2023 Caolán McNamara - 1:7.5.0.3-4 +- Rebuild for zxing-cpp 2.0.0 + +* Mon Feb 20 2023 Jonathan Wakely - 1:7.5.0.3-3 +- Rebuilt for Boost 1.81 + +* Mon Feb 06 2023 Marek Kasik - 1:7.5.0.3-2 +- Rebuild for poppler-23.02.0 + +* Thu Feb 02 2023 Caolán McNamara - 1:7.5.0.3-1 +- 7.5.0 release + +* Fri Jan 20 2023 Caolán McNamara - 1:7.5.0.2-1 +- 7.5.0 beta + +* Thu Jan 19 2023 Fedora Release Engineering - 1:7.4.4.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Thu Jan 12 2023 Caolán McNamara - 1:7.4.4.2-1 +- 7.4.4 release + +* Sat Dec 31 2022 Pete Walter - 1:7.4.3.2-4 +- Rebuild for ICU 72 + +* Fri Dec 16 2022 Caolán McNamara - 1:7.4.3.2-3 +- fix License syntax "and/or" -> "AND/OR" + +* Tue Dec 06 2022 Caolán McNamara - 1:7.4.3.2-2 +- add BuildRequires on hunspell-en-US for testTdf124603 + +* Thu Nov 17 2022 Caolán McNamara - 1:7.4.3.2-1 +- 7.4.3 release + +* Thu Nov 17 2022 Caolán McNamara - 1:7.4.2.3-2 +- Resolves: rhbz#2143431 fix autofilter missing search entry + +* Thu Oct 13 2022 Caolán McNamara - 1:7.4.2.3-1 +- 7.4.2 release + +* Fri Sep 16 2022 Caolán McNamara - 1:7.4.1.2-1 +- 7.4.1 release + +* Thu Aug 18 2022 Caolán McNamara - 1:7.4.0.3-1 +- 7.4.0 release + +* Tue Aug 09 2022 Caolán McNamara - 1:7.4.0.2-1 +- 7.4rc2 + +* Wed Aug 03 2022 Caolán McNamara - 1:7.3.5.2-3 +- Rebuilt for poppler 22.08.0 + +* Tue Aug 02 2022 Frantisek Zatloukal - 1:7.3.5.2-2 +- Rebuilt for ICU 71.1 + +* Thu Jul 21 2022 Caolán McNamara - 1:7.3.5.2-1 +- latest version + +* Tue Jul 19 2022 Caolán McNamara - 1:7.3.4.2-5 +- rhbz#2104072 build on i686 without java support + +* Mon Jul 11 2022 Stephan Bergmann - 1:7.3.4.2-4 +- Resolves: rhbz#2104545 Avoid call to utl::IsYounger if possible + +* Thu Jun 23 2022 Parag Nemade - 1:7.3.4.2-3 +- Fix Requires: hunspell-pt-BR and hyphen-pt-BR for libreoffice-langpack-pt-BR + +* Mon Jun 13 2022 Python Maint - 1:7.3.4.2-2 +- Rebuilt for Python 3.11 + +* Thu Jun 09 2022 Caolán McNamara - 1:7.3.4.2-1 +- 7.3.4 release + +* Wed May 04 2022 Thomas Rodgers - 1:7.3.3.2-2 +- Rebuilt for Boost 1.78 + +* Mon May 02 2022 Caolán McNamara - 1:7.3.3.2-1 +- 7.3.3 release + +* Tue Apr 05 2022 Caolán McNamara - 1:7.3.2.2-1 +- 7.3.2 release + +* Mon Mar 14 2022 Caolán McNamara - 1:7.3.1.3-4 +- tdf#144862 use resolution independent text rendering + +* Tue Mar 08 2022 Caolán McNamara - 1:7.3.1.3-3 +- rhbz#2061598 No Icons Launcher of LibreOffice Apps in Raspberry Pi + +* Mon Mar 07 2022 Caolán McNamara - 1:7.3.1.3-2 +- rhbz#2061268 finally drop the dependency on the dejavu fonts + +* Sat Mar 05 2022 Caolán McNamara - 1:7.3.1.3-1 +- 7.3.1 release + +* Sat Feb 05 2022 Jiri Vanek - 1:7.3.0.3-3 +- Rebuilt for java-17-openjdk as system jdk + +* Sat Feb 05 2022 Caolán McNamara - 1:7.3.0.3-2 +- reenable tests + +* Wed Feb 02 2022 Caolán McNamara - 1:7.3.0.3-1 +- 7.3.0 release +- drop conditionals for rhel < 9 +- drop conditionals for fedora < 36 + +* Tue Feb 01 2022 Caolán McNamara - 1:7.2.5.2-5 +- Related: rhbz#2029810 set NoDisplay=true for .desktop on s390x/aarch64 +- Related: rhbz#2029810 don't Require any vclplug for s390x/aarch64 + +* Mon Jan 24 2022 Parag Nemade - 1:7.2.5.2-4 +- Update hunspell dictionary directory path + https://fedoraproject.org/wiki/Changes/Hunspell_dictionary_dir_change + +* Thu Jan 20 2022 Fedora Release Engineering - 1:7.2.5.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Thu Jan 13 2022 Caolán McNamara - 1:7.2.5.2-2 +- rebuild for rebase of poppler to 22.01.0 + +* Thu Jan 06 2022 Caolán McNamara - 1:7.2.5.2-1 +- upgrade to 7.2.5 + +* Mon Dec 13 2021 Caolán McNamara - 1:7.2.4.1-2 +- Resolves: rhbz#2028991 fix insert, object, QR code + +* Mon Dec 06 2021 Caolán McNamara - 1:7.2.4.1-1 +- upgrade to 7.2.4 + +* Fri Nov 19 2021 Caolán McNamara - 1:7.2.3.2-1 +- upgrade to 7.2.3 (likely will fix rhbz#2022410) + +* Tue Oct 12 2021 Caolán McNamara - 1:7.2.2.2-3 +- Icon=document-new shouldn't get prefixed to become + Icon=libreoffice-document-new + +* Fri Oct 08 2021 Kalev Lember - 1:7.2.2.2-2 +- Use -g1 on arm builders as well + +* Thu Oct 07 2021 Caolán McNamara - 1:7.2.2.2-1 +- upgrade to 7.2.2 (likely will fix rhbz#2011384) + +* Tue Oct 05 2021 Caolán McNamara - 1:7.2.1.2-4 +- rhbz#2010520 move libroffice.jar to noarch java location + +* Wed Sep 22 2021 Caolán McNamara - 1:7.2.1.2-3 +- reenable make check for s390x + +* Fri Sep 10 2021 Caolán McNamara - 1:7.2.1.2-2 +- remove obscure rhino and bsh scripting for fedora >= 36 like in rhel + +* Thu Sep 09 2021 Caolán McNamara - 1:7.2.1.2-1 +- upgrade to 7.2.1 + +* Sat Aug 21 2021 Caolán McNamara - 1:7.2.0.4-3 +- fix arm32 uno bridge + +* Fri Aug 20 2021 Caolán McNamara - 1:7.2.0.4-2 +- s390x firebird is available again + +* Mon Aug 16 2021 Caolán McNamara - 1:7.2.0.4-1 +- upgrade to 7.2.0 + +* Sat Aug 14 2021 Caolán McNamara - 1:7.2.0.3-1 +- prep upgrade to 7.2.0 + +* Thu Aug 12 2021 Caolán McNamara - 1:7.1.5.2-5 +- replace use of ucpp with gcc cpp +- Resolves: tdf#132739 two html style tags where there should be just one + +* Sat Aug 07 2021 Jonathan Wakely - 1:7.1.5.2-4 +- Rebuilt for Boost 1.76 + +* Wed Aug 04 2021 Caolán McNamara - 1:7.1.5.2-3 +- rebuild for poppler rebase to 21.07.0 + +* Thu Jul 22 2021 Fedora Release Engineering - 1:7.1.5.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Sun Jul 18 2021 Caolán McNamara - 1:7.1.5.2-1 +- latest version +- drop merged patches + +* Wed Jul 14 2021 Caolán McNamara - 1:7.1.4.2-3 +- Related: rhbz#1980800 allow convert to csv to write each sheet to + a separate file + +* Wed Jun 30 2021 Caolán McNamara - 1:7.1.4.2-2 +- Remove unused DOCTYPE from odk/examples xcu file +- drop bsh buildrequires in rhel + +* Wed Jun 09 2021 Caolán McNamara - 1:7.1.4.2-1 +- latest version +- replace 'badfuncs' of inet_addr and inet_ntoa +- allow system firebird-4 + +* Fri Jun 04 2021 Python Maint - 1:7.1.3.2-5 +- Rebuilt for Python 3.10 + +* Wed Jun 02 2021 Caolán McNamara - 1:7.1.3.2-4 +- gtk3: workaround missing gdk_threads_enter calls in gio errordialog callback + +* Mon May 31 2021 Stephan Bergmann - 1:7.1.3.2-3 +- Resolves: rhbz#1965975 Adapt to "libstdc++: Implement LWG 1203 for rvalue iostreams" +- Resolves: rhbz#1965975 Adapt to hamcrest-2.2-3.fc35.noarch.rpm + +* Thu May 20 2021 Pete Walter - 1:7.1.3.2-2 +- Rebuild for ICU 69 + +* Thu May 06 2021 Caolán McNamara - 1:7.1.3.2-1 +- latest version + +* Wed May 05 2021 Caolán McNamara - 1:7.1.2.2-4 +- Resolves: rhbz#1956977 Impress crashes on switch from commenting to slide sorter +- Resolves: rhbz#1957034 fix assertion on avmedia volumne control + +* Thu Apr 29 2021 Caolán McNamara - 1:7.1.2.2-3 +- Resolves: rhbz#1955013 build libreoffice-langpack-fy for libreoffice + +* Mon Apr 12 2021 Stephan Bergmann - 1:7.1.2.2-2 +- Related: rhbz#1895921 Get rid of apache-commons-logging + +* Thu Apr 01 2021 Caolán McNamara - 1:7.1.2.2-1 +- latest version + +* Wed Mar 24 2021 Caolán McNamara - 1:7.1.1.2-2 +- tdf#141197 expose gtk-widgets inside vcl-containers to atk hierarchy + +* Thu Mar 04 2021 Caolán McNamara - 1:7.1.1.2-1 +- latest version + +* Mon Feb 08 2021 Pavel Raiskup - 1:7.1.0.3-3 +- rebuild for libpq ABI fix rhbz#1908268 + +* Fri Feb 05 2021 Caolán McNamara - 1:7.1.0.3-2 +- use classic brand + +* Wed Feb 03 2021 Caolán McNamara - 1:7.1.0.3-1 +- bump to 7.1.0 series +- drop integrated 0001-rhbz-1870501-crash-on-reexport-of-odg.patch +- drop integrated 0001-rhbz-1882616-move-cursor-one-step-at-a-time-in-the-d.patch +- drop integrated 0001-export-HYPERLINK-target-in-html-clipboard-export.patch +- drop integrated 0001-gcc11.patch +- drop integrated 0001-disable-tests-that-don-t-work-without-pdfium.patch +- drop integrated 0001-rhbz-1913828-SfxViewFrame-Current-can-return-null.patch +- drop integrated 0001-Upgrade-liborcus-to-0.16.0.patch + +* Thu Jan 28 2021 Stephan Bergmann - 1:7.0.4.2-9 +- Make libreoffice-bsh, libreoffice-rhino depend on full java + +* Wed Jan 27 2021 Caolán McNamara - 1:7.0.4.2-8 +- drop unneeded BuildRequires: gdb + +* Wed Jan 27 2021 Caolán McNamara - 1:7.0.4.2-7 +- Resolves: rhbz#1916539 text not wrapping in right hand help brower pane + +* Mon Jan 25 2021 Caolán McNamara - 1:7.0.4.2-6 +- really rebuild for Boost 1.75 + +* Fri Jan 22 2021 Jonathan Wakely - 1:7.0.4.2-5 +- Rebuilt for Boost 1.75 + +* Fri Jan 15 2021 Caolán McNamara - 1:7.0.4.2-4 +- rebuild for poppler + +* Mon Jan 11 2021 Caolán McNamara - 1:7.0.4.2-3 +- Resolves: rhbz#1913828 SfxViewFrame::Current() can return null + +* Sun Dec 20 2020 Caolán McNamara - 1:7.0.4.2-2 +- workaround for make check failure + +* Wed Dec 09 2020 Caolán McNamara - 1:7.0.4.2-1 +- latest version + +* Wed Dec 02 2020 Thierry Vignaud 1:7.0.4.1-1 +- Update to 7.0.4 RC1 + +* Tue Nov 24 2020 Caolán McNamara - 1:7.0.3.1-4 +- Resolves: rhbz#1900937 fix null deref in non-pdfium build + +* Mon Nov 23 2020 Caolán McNamara - 1:7.0.3.1-3 +- Resolves: rhbz#1900428 don't crash on invalid index used in StarBasic macro + +* Tue Nov 03 2020 Jeff Law - 1:7.0.3.1-2 +- Fix missing #include for gcc-11 + +* Thu Oct 29 2020 Caolán McNamara - 1:7.0.3.1-1 +- latest version + +* Sun Oct 25 2020 Caolán McNamara - 1:7.0.2.2-3 +- Resolves: rhbz#1891326 suggest package install of the best pt-* langpack + +* Sat Oct 24 18:45:56 CEST 2020 David Tardon - 1:7.0.2.2-2 +- fix upgrade from Fedora 32 + +* Sat Oct 10 2020 Caolán McNamara - 1:7.0.2.2-1 +- latest version + +* Tue Oct 06 2020 Rex Dieter - 1:7.0.1.2-7 +- -kf5: enable Supplements: (%%name-core and plasma-workspace) + +* Tue Sep 29 2020 Caolán McNamara - 1:7.0.1.2-6 +- export HYPERLINK target in html clipboard export + +* Fri Sep 25 2020 Caolán McNamara - 1:7.0.1.2-5 +- Resolves: rhbz#1882616 IM cursor pos problem with emojis in writer + +* Thu Sep 24 2020 Caolán McNamara - 1:7.0.1.2-4 +- upgrade liborcus + +* Fri Sep 04 2020 Caolán McNamara - 1:7.0.1.2-3 +- rhbz#1875377 prefer Cantarell-Regular to Cantarell-VF + +* Thu Sep 03 2020 Merlin Mathesius - 1:7.0.1.2-2 +- Rebase RHEL patch to disable libe-book support to libreoffice-7.0 +- Add BR perl(base) + +* Tue Sep 01 2020 Caolán McNamara - 1:7.0.1.2-1 +- 7.0.1 RC2 + +* Fri Aug 21 2020 Caolán McNamara - 1:7.0.1.1-3 +- rhbz#1870501 crash on reexport of odg + +* Fri Aug 21 2020 Stephan Bergmann 1:7.0.1.1-2 +- Build the binary UNO bridge with -fno-lto + +* Thu Aug 20 2020 Thierry Vignaud 1:7.0.1.1-1 +- 7.0.1 RC1 + +* Thu Aug 06 2020 Caolán McNamara - 1:7.0.0.3-1 +- 7.0.0 + +* Wed Aug 05 2020 Caolán McNamara - 1:6.4.5.2-6 +- Resolves: rhbz#1745771 + + drop the GTK3-KF5 VCL plugin (formerly subpackage kf5) + + rename the current -kde5 subpackage (the Qt5/KF5 VCL plugin) to -kf5 + +* Wed Jul 29 2020 Caolán McNamara - 1:6.4.5.2-5 +- Resolves: rhbz#1861794 missing csv fixed width handles + +* Tue Jul 28 2020 Fedora Release Engineering - 1:6.4.5.2-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Sat Jul 25 2020 Caolán McNamara - 1:6.4.5.2-3 +- Related: rhbz#1859588 workaround vcldemo ICE +- add py_byte_compile call for + https://fedoraproject.org/wiki/Changes/No_more_automagic_Python_bytecompilation_phase_3 + +* Tue Jul 14 2020 Jiri Vanek - 1:6.4.5.2-2 +- Rebuilt for JDK-11, see https://fedoraproject.org/wiki/Changes/Java11 + +* Sat Jul 11 2020 Caolán McNamara - 1:6.4.5.2-1 +- latest stable + +* Sat Jul 11 2020 Jiri Vanek - 1:6.4.4.2-4 +- Rebuilt for JDK-11, see https://fedoraproject.org/wiki/Changes/Java11 + +* Sat May 30 2020 Jonathan Wakely - 1:6.4.4.2-3 +- Rebuilt for Boost 1.73 + +* Tue May 26 2020 Miro Hrončok - 1:6.4.4.2-2 +- Rebuilt for Python 3.9 + +* Thu May 21 2020 Caolán McNamara - 1:6.4.4.2-1 +- latest stable + +* Sun May 17 2020 Pete Walter - 1:6.4.3.2-2 +- Rebuild for ICU 67 + +* Thu Apr 16 2020 Caolán McNamara - 1:6.4.3.2-1 +- latest stable + +* Mon Mar 30 2020 Thierry Vignaud 1:6.4.2.2-1 +- 6.4.2.2 + +* Mon Mar 23 2020 Caolán McNamara - 1:6.4.1.2-4 +- help->license->license doesn't do anything + +* Fri Mar 20 2020 Caolán McNamara - 1:6.4.1.2-3 +- disable tip-of-the-day dialog by default + +* Wed Mar 18 2020 Caolán McNamara - 1:6.4.1.2-2 +- rhbz#1776774 make math subpackage just a superficial package for + math launcher + +* Tue Feb 25 2020 Caolán McNamara - 1:6.4.1.2-1 +- 6.4.1 beta 2 + +* Mon Feb 10 2020 Caolán McNamara - 1:6.4.0.3-2 +- rhbz#1793632 make draw subpackage just a superficial package for + draw launcher + +* Wed Jan 29 2020 Caolán McNamara - 1:6.4.0.3-1 +- latest release + +* Wed Jan 22 2020 Caolán McNamara - 1:6.3.4.2-1 +- latest stable release + +* Fri Jan 17 2020 Marek Kasik - 1:6.3.3.2-6 +- Rebuild for poppler-0.84.0 + +* Fri Jan 17 2020 Marek Kasik - 1:6.3.3.2-5 +- Rebuild for poppler-0.84.0 + +* Wed Nov 27 2019 Caolán McNamara - 1:6.3.3.2-4 +- rhbz#1776774 undo rhbz#156677 and stop customizing math.desktop + +* Mon Nov 18 2019 Caolán McNamara - 1:6.3.3.2-3 +- rhbz#1773525 fix find&replace search save limit + +* Sat Nov 02 2019 Pete Walter - 1:6.3.3.2-2 +- Rebuild for ICU 65 + +* Thu Oct 24 2019 Caolán McNamara - 1:6.3.3.2-1 +- latest stable release + +* Thu Sep 26 2019 Caolán McNamara - 1:6.3.2.2-1 +- latest stable release + +* Thu Sep 05 2019 Caolán McNamara - 1:6.3.1.2-1 +- latest stable release + +* Sat Aug 31 2019 Caolán McNamara - 1:6.3.0.4-6 +- Related: rhbz#1747596 see if a depend on firebird from just base is + sufficient + +* Thu Aug 29 2019 Caolán McNamara - 1:6.3.0.4-5 +- Resolves: rhbz#1736810 disable opencl by default again + +* Sun Aug 25 2019 Caolán McNamara - 1:6.3.0.4-4 +- Resolves: rhbz#1744876 firebird not an automatically dependency + +* Wed Aug 21 2019 Caolán McNamara - 1:6.3.0.4-3 +- Resolves: rhbz#1743894 make build with mdds-1.5 + +* Mon Aug 19 2019 Miro Hrončok - 1:6.3.0.4-2 +- Rebuilt for Python 3.8 + +* Thu Aug 08 2019 Caolán McNamara - 1:6.3.0.4-1 +- upgrade to RC4 + +* Tue Aug 06 2019 Caolán McNamara - 1:6.3.0.3-1 +- upgrade to RC3 + +* Thu Jul 25 2019 Fedora Release Engineering - 1:6.3.0.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Fri Jul 19 2019 Caolán McNamara - 1:6.3.0.1-2 +- missing ldap support +- kde4 support is gone, replace with kde5 + +* Tue Jul 16 2019 Caolán McNamara - 1:6.3.0.1-1 +- move rawhide to 6.3.0 + +* Tue Jul 16 2019 Caolán McNamara - 1:6.2.5.2-1 +- latest stable + +* Fri Jun 14 2019 Caolán McNamara - 1:6.2.4.2-5 +- Resolves: rhbz#1720483 make all app rpms depend on pdfimport + +* Tue Jun 11 2019 Caolán McNamara - 1:6.2.4.2-4 +- Resolves: rhbz#1667039 drop Requires: font(:lang=XX) requires in + favor of langpacks + +* Mon Jun 10 2019 Caolán McNamara - 1:6.2.4.2-3 +- Related: rhbz#1718063 look for pkg-config python-version-embed + +* Fri Jun 07 2019 Stephan Bergmann - 1:6.2.4.2-2 +- Resolves: rhbz#1718063 adapt to upcoming Python 3.8 + +* Thu May 30 2019 Caolán McNamara - 1:6.2.4.2-1 +- latest stable version + +* Sun May 26 2019 Caolán McNamara - 1:6.2.3.2-5 +- Resolves: rhbz#1713827 protect against null ViewShell +- Resolves: rhbz#1713908 stop disabling firebird-sdbc + +* Thu May 23 2019 Caolán McNamara - 1:6.2.3.2-4 +- Resolves: rhbz#1712823 crash in extended tooltips over pattern editor +- Resolves: rhbz#1711143 calc not rounding time calculation correctly + +* Tue May 21 2019 Caolán McNamara - 1:6.2.3.2-3 +- rebuild for e-d-s + +* Thu May 02 2019 Caolán McNamara - 1:6.2.3.2-2 +- add Esperanto + +* Tue Apr 30 2019 Caolán McNamara - 1:6.2.3.2-1 +- latest stable release + +* Fri Apr 26 2019 Caolán McNamara - 1:6.2.2.2-6 +- Related: rhbz#1703375 disable bsh and rhino for rhel + +* Thu Apr 25 2019 Caolán McNamara - 1:6.2.2.2-5 +- Resolves: rhbz#1702810 Prepare for upcoming libebook + +* Sat Apr 13 2019 Caolán McNamara - 1:6.2.2.2-4 +- tdf#119890 followup Forbid HOME to be the default dir for templates + +* Fri Apr 12 2019 Caolán McNamara - 1:6.2.2.2-3 +- Resolves: rhbz#1699347 __glibcxx_requires_subscript-enabled enabled + +* Thu Apr 04 2019 Caolán McNamara - 1:6.2.2.2-2 +- Related: rhbz#1692584 mythes-de is available again + +* Tue Apr 02 2019 Caolán McNamara - 1:6.2.2.2-1 +- latest stable release + +* Wed Mar 27 2019 Caolán McNamara - 1:6.2.1.2-6 +- Resolves: rhbz#1693388 mythes-de got retired so is unavailable + +* Thu Mar 21 2019 Caolán McNamara - 1:6.2.1.2-5 +- Resolves: rhbz#1690732 basic font variation support + +* Wed Mar 20 2019 Stephan Bergmann - 1:6.2.1.2-4 +- Resolves: rhbz#1687589 KDE4 gpoll_wrapper can be called with SolarMutex locked + +* Tue Mar 12 2019 Caolán McNamara - 1:6.2.1.2-3 +- currency menu too narrow + +* Thu Mar 07 2019 Caolán McNamara - 1:6.2.1.2-2 +- bump n-v-r + +* Sat Mar 02 2019 Caolán McNamara - 1:6.2.1.2-1 +- latest stable + +* Mon Feb 25 2019 Caolán McNamara - 1:6.2.0.3-4 +- Related: rhbz#1678319 workaround weird compilation result + +* Thu Feb 21 2019 Caolán McNamara - 1:6.2.0.3-3 +- menu of currency combobox is too wide + +* Thu Feb 21 2019 Caolán McNamara - 1:6.2.0.3-2 +- Resolves: tdf#122623 theme unwanted tab into invisibilty + +* Thu Feb 07 2019 Caolán McNamara - 1:6.2.0.3-1 +- latest version + +* Fri Feb 01 2019 Caolán McNamara - 1:6.1.4.2-5 +- Resolves: rhbz#1671340 extended tooltips not working in impress navigator + +* Thu Jan 31 2019 Kalev Lember - 1:6.1.4.2-4 +- Rebuilt for Boost 1.69 + +* Sat Jan 26 2019 Marek Kasik - 1:6.1.4.2-3 +- Additional fixes needed for rebuild + +* Fri Jan 25 2019 Marek Kasik - 1:6.1.4.2-2 +- Rebuild for poppler-0.73.0 + +* Mon Jan 07 2019 Caolán McNamara - 1:6.1.4.2-1 +- latest version +- Resolves: rhbz#1662616 crash in macro dialog editor +- Resolves: rhbz#1662512 a11y freeze in calc + +* Tue Dec 04 2018 Caolán McNamara - 1:6.1.2.1-8 +- Resolves: rhbz#1639174 desire to block en-help install + +* Tue Nov 20 2018 Caolán McNamara - 1:6.1.2.1-7 +- Resolves: rhbz#1651469 improve obsoletes + +* Wed Nov 14 2018 Rex Dieter - 1:6.1.2-6 +- -kf5 subpackage: include support for --enable-gtk3-kde5 (#1647233) +- -kde4: adjust summary/description s/KDE/KDE4/ + +* Tue Nov 13 2018 Caolán McNamara - 1:6.1.2.1-5 +- Rebuild for hunspell 1.7.0 + +* Thu Nov 08 2018 Caolán McNamara - 1:6.1.2.1-4 +- drop gtk2 support and obsolete it + +* Wed Nov 07 2018 Caolán McNamara - 1:6.1.2.1-3 +- drop rhel 7 conditionals + +* Tue Oct 30 2018 Caolán McNamara - 1:6.1.2.1-2 +- Related: rhbz#1644128 gtk tooltip problems + +* Wed Oct 10 2018 Caolán McNamara - 1:6.1.2.1-1 +- latest version +- rhbz#1637848 keep Supplements but not Recommends + +* Fri Sep 14 2018 Caolán McNamara - 1:6.1.1.2-1 +- latest version + +* Sun Sep 02 2018 David Tardon - 1:6.1.0.3-2 +- rebuild for liborcus 0.14.0 + +* Thu Aug 16 2018 Caolán McNamara - 1:6.1.0.3-1 +- 6.1.X series + +* Tue Aug 14 2018 Caolán McNamara - 1:6.0.6.2-1 +- latest version + +* Tue Jul 31 2018 Florian Weimer - 1:6.0.6.1-7 +- Rebuild with fixed binutils + +* Thu Jul 26 2018 Caolán McNamara - 1:6.0.6.1-6 +- Related: rhbz#1602589 fix/silence more covscan warnings + +* Fri Jul 20 2018 Caolán McNamara - 1:6.0.6.1-5 +- implement export of underline in outlined font for simple case + +* Wed Jul 18 2018 Caolán McNamara - 1:6.0.6.1-4 +- Resolves: rhbz#1602589 fix covscan issues + +* Tue Jul 17 2018 Eike Rathke - 1:6.0.6.1-3 +- Upgrade to ICU 61.1 +- Upgrade to ICU 62.1 + +* Tue Jul 17 2018 Caolán McNamara - 1:6.0.6.1-2 +- Resolves: rhbz#1601882 fails to build with --nocheck + +* Tue Jul 17 2018 Caolán McNamara - 1:6.0.6.1-1 +- latest 6.0 release + +* Fri Jul 13 2018 Fedora Release Engineering - 1:6.0.5.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Tue Jul 10 2018 Pete Walter - 1:6.0.5.2-2 +- Rebuild for ICU 62 + +* Fri Jun 22 2018 Caolán McNamara - 1:6.0.5.2-1 +- latest 6.0 release +- fix for ICU 61 +- fix for Python 3.7 + +* Tue Jun 19 2018 Miro Hrončok - 1:6.0.4.2-5 +- Rebuilt for Python 3.7 + +* Tue Jun 05 2018 Caolán McNamara - 1:6.0.4.2-4 +- Resolves: rhbz#1581028 endless font widget update + +* Tue Jun 05 2018 Caolán McNamara - 1:6.0.4.2-3 +- use weak deps for fedora only + +* Mon May 28 2018 Caolán McNamara - 1:6.0.4.2-2 +- Resolves: rhbz#1582324 crash after merging writer table cells + +* Fri May 25 2018 Caolán McNamara - 1:6.0.4.2-1 +- latest 6.0 release + +* Wed May 9 2018 Stephan Bergmann - 1:6.0.3.2-10 +- Fix a potential crash when using the dconf configuration backend + +* Sat May 5 2018 Caolán McNamara - 1:6.0.3.2-9 +- tdf#117413 char doubling in calc under X + +* Fri May 4 2018 Caolán McNamara - 1:6.0.3.2-8 +- rhbz#1575000 CVE-2018-10583 allow embedded links to smb resources + to be blocked + +* Thu May 3 2018 Caolán McNamara - 1:6.0.3.2-7 +- rhbz#1573845 won't start without at least Langpack-en-US.xcd + +* Mon Apr 30 2018 Pete Walter - 1:6.0.3.2-6 +- Rebuild for ICU 61.1 + +* Tue Apr 24 2018 Caolán McNamara - 1:6.0.3.2-5 +- Resolves: tdf#116951 rhbz#1569331 start is G_MAXINT + +* Thu Apr 19 2018 Stephan Bergmann - 1:6.0.3.2-4 +- Resolves: rhbz#1568579 LibreOffice --headless zombie process +- Related: rhbz#1569331 end should be in terms of unicode chars, not bytes + +* Tue Apr 17 2018 Caolán McNamara - 1:6.0.3.2-3 +- Related: rhbz#1396729 use cairo_surface_create_similar + +* Tue Apr 10 2018 Caolán McNamara - 1:6.0.3.2-2 +- finally drop bundled xmlsec1 + +* Thu Mar 29 2018 Caolán McNamara - 1:6.0.3.2-1 +- latest version + +* Thu Mar 29 2018 Caolán McNamara - 1:6.0.3.1-3 +- Related: rhbz#1066844 drop libreofficekit requires + +* Fri Mar 23 2018 Marek Kasik - 1:6.0.3.1-2 +- Rebuild for poppler-0.63.0 + +* Thu Mar 22 2018 David Tardon - 1:6.0.3.1-1 +- update to 6.0.3 rc1 + +* Fri Mar 16 2018 Caolán McNamara - 1:6.0.2.1-3 +- Resolves: rhbz#1392145 ensure titlebar close button matches 'outside' direction + +* Fri Mar 16 2018 Stephan Bergmann - 1:6.0.2.1-2 +- lib dir missing from libreoffice-sdk + +* Fri Feb 23 2018 David Tardon - 1:6.0.2.1-1 +- update to 6.0.2 rc1 + +* Wed Feb 14 2018 David Tardon - 1:6.0.1.1-2 +- rebuild for poppler 0.62.0 + +* Fri Feb 09 2018 Caolán McNamara - 1:6.0.1.1-1 +- latest stable + +* Wed Feb 07 2018 Fedora Release Engineering - 1:6.0.0.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Tue Feb 06 2018 Stephan Bergmann - 1:6.0.0.3-2-UNBUILT +- Resolves: rhbz#1541486 Base table dialog title shown in wrong language + +* Sun Feb 04 2018 David Tardon - 1:6.0.0.3-1 +- update to 6.0.0 rc3 + +* Wed Jan 31 2018 Michael Stahl - 1:6.0.0.2-3 +- add lots of .abignore files to restrict abipkgdiff to shared objects + that actually have a stable ABI + +* Tue Jan 30 2018 Björn Esser - 1:6.0.0.2-2 +- Rebuilt for Boost 1.66.0 + +* Fri Jan 12 2018 David Tardon - 1:6.0.0.2-1 +- update to 6.0.0 rc2 + +* Tue Jan 09 2018 Caolán McNamara - 1:6.0.0.1-3 +- bump to Modify2 for app_id so install hint says 'LibreOffice wants to install' + +* Thu Dec 21 2017 Caolán McNamara - 1:6.0.0.1-2 +- request langpack for autodetected desired ui locale via packagekit + +* Wed Dec 20 2017 David Tardon - 1:6.0.0.1-1 +- update to 6.0.0 rc1 + +* Thu Dec 14 2017 David Tardon - 1:6.0.0.0-8.beta2 +- update to 6.0.0 beta2 + +* Mon Dec 04 2017 Caolán McNamara - 1:6.0.0.0-7.beta1 +- Rebuild for hunspell 1.6.2 + +* Thu Nov 30 2017 Pete Walter - 1:6.0.0.0-6.beta1 +- Rebuild for ICU 60.1 + +* Sat Nov 25 2017 David Tardon - 1:6.0.0.0-5.beta1 +- update to 6.0.0 beta1 + +* Wed Nov 22 2017 Eike Rathke - 1:6.0.0.0-4.alpha1 +- prepare for build with ICU 60.1 + +* Mon Nov 20 2017 David Tardon - 1:6.0.0.0-3.alpha1 +- rebuild for liborcus 0.13.1 + +* Wed Nov 08 2017 David Tardon - 1:6.0.0.0-2.alpha1 +- rebuild for poppler 0.61.0 + +* Thu Nov 02 2017 David Tardon - 1:6.0.0.0-1.alpha1 +- update to 6.0.0 alpha1 +- update location of appdata files +- use weak dependencies +- mark bundled packages + +* Tue Oct 17 2017 David Tardon - 1:5.4.3.1-1 +- update to 5.4.3 rc1 + +* Fri Oct 06 2017 David Tardon - 1:5.4.2.2-3 +- rebuild for poppler 0.60.1 + +* Sun Oct 01 2017 Thierry Vignaud - 1:5.4.2.2-2 +- fix libreoffice wrapper + +* Wed Sep 27 2017 David Tardon - 1:5.4.2.2-1 +- update to 5.4.2 rc2 + +* Mon Sep 18 2017 David Tardon - 1:5.4.2.1-1 +- update to 5.4.2 rc1 + +* Tue Sep 12 2017 David Tardon - 1:5.4.1.2-3 +- Resolves: rhbz#1490318 do not use versioned Supplements + +* Fri Sep 08 2017 David Tardon - 1:5.4.1.2-2 +- rebuild for poppler 0.59.0 + +* Sun Aug 27 2017 David Tardon - 1:5.4.1.2-1 +- update to 5.4.1 rc2 + +* Fri Aug 11 2017 Caolán McNamara - 1:5.4.0.3-5 +- implement char highlighting ui for graphics styles + +* Thu Aug 03 2017 David Tardon - 1:5.4.0.3-4 +- rebuild for poppler 0.57.0 + +* Mon Jul 31 2017 Kalev Lember - 1:5.4.0.3-3 +- Enable the s390x build again + +* Mon Jul 31 2017 Kalev Lember - 1:5.4.0.3-2 +- Temporarily disable the build on s390x + +* Wed Jul 26 2017 Fedora Release Engineering - 1:5.4.0.3-1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Fri Jul 21 2017 Kalev Lember - 1:5.4.0.2-2 +- Rebuilt for Boost 1.64 + +* Fri Jul 07 2017 David Tardon - 1:5.4.0.2-1 +- update to 5.4.0 rc2 + +* Fri Jun 23 2017 David Tardon - 1:5.4.0.1-1 +- update to 5.4.0 rc1 + +* Wed Jun 07 2017 David Tardon - 1:5.4.0.0-3.beta2 +- update to 5.4.0 beta2 + +* Sun May 21 2017 David Tardon - 1:5.4.0.0-2.beta1 +- update to 5.4.0 beta1 + +* Tue May 02 2017 David Tardon - 1:5.4.0.0-1.alpha1 +- update to 5.4.0 alpha1 + +* Wed Apr 19 2017 David Tardon - 1:5.3.3.1-1 +- update to 5.3.3 rc1 + +* Wed Mar 29 2017 David Tardon - 1:5.3.2.2-1 +- update to 5.3.2 rc2 + +* Tue Mar 28 2017 David Tardon - 1:5.3.2.1-3 +- rebuild for poppler 0.53.0 + +* Mon Mar 27 2017 Caolán McNamara - 1:5.3.2.1-2 +- Resolves: rhbz#1432468 disable opencl by default + +* Sun Mar 19 2017 David Tardon - 1:5.3.2.1-1 +- update to 5.3.2 rc1 + +* Mon Mar 13 2017 Caolán McNamara - 1:5.3.1.2-2 +- Resolves: rhbz#1431189 add Indonesian langpack + +* Thu Mar 09 2017 David Tardon - 1:5.3.1.2-1 +- update to 5.3.1 rc2 + +* Thu Feb 23 2017 David Tardon - 1:5.3.1.1-1 +- update to 5.3.1 rc1 + +* Tue Feb 07 2017 Björn Esser - 1:5.3.0.3-3 +- Rebuilt for Boost 1.63 + +* Thu Feb 02 2017 Caolán McNamara - 1:5.3.0.3-2 +- Resolves: rhbz#1409401 add depend on gtksink gstreamer1 element + +* Fri Jan 27 2017 David Tardon - 1:5.3.0.3-1 +- update to 5.3.0 rc3 + +* Wed Jan 18 2017 David Tardon - 1:5.3.0.2-1 +- update to 5.3.0 rc2 +- temp. disable building of help on ARM to fix build + +* Tue Jan 10 2017 David Tardon - 1:5.3.0.1-1 +- update to 5.3.0 rc1 + +* Tue Dec 27 2016 Caolán McNamara - 1:5.3.0.0-8.beta1 +- try arm build + +* Thu Dec 22 2016 Miro Hrončok - 1:5.3.0.0-7.beta2 +- Rebuild for Python 3.6 + +* Mon Dec 19 2016 Miro Hrončok - 1:5.3.0.0-6.beta2 +- Rebuild for Python 3.6 + +* Thu Dec 15 2016 David Tardon - 1:5.3.0.0-5.beta2 +- update to 5.3.0 beta2 + +* Tue Dec 13 2016 Caolán McNamara - 1:5.3.0.0-4.beta1 +- rebuild for hunspell-1.5.4 + +* Wed Nov 23 2016 David Tardon - 1:5.3.0.0-3.beta1 +- update to 5.3.0 beta1 + +* Tue Nov 08 2016 David Tardon - 1:5.3.0.0-2.alpha1 +- allow abrt to work again + +* Sat Oct 22 2016 David Tardon - 1:5.3.0.0-1.alpha1 +- update to 5.3.0 alpha1 + +* Fri Oct 21 2016 Marek Kasik - 1:5.2.3.1-2 +- Rebuild for poppler-0.48.0 + +* Sat Oct 15 2016 David Tardon - 1:5.2.3.1-1 +- update to 5.2.3 rc1 + +* Fri Oct 07 2016 Stephan Bergmann - 1:5.2.2.2-3 +- Resolves: rhbz#1382401 broken export of emojis to HTML + +* Thu Sep 29 2016 David Tardon - 1:5.2.2.2-2 +- rebuild for liborcus 0.12 + +* Wed Sep 21 2016 David Tardon - 1:5.2.2.2-1 +- update to 5.2.2 rc2 + +* Wed Sep 21 2016 Caolán McNamara - 1:5.2.2.1-5 +- Related: rhbz#1362451 apply patch + +* Tue Sep 20 2016 Caolán McNamara - 1:5.2.2.1-4 +- Related: rhbz#1362451 avoid recursive ownerchanged signal during ownerchange + +* Mon Sep 19 2016 Caolán McNamara - 1:5.2.2.1-3 +- Related: rhbz#1373933 do less on style-updated +- Related: rhbz#1353069 don't clear XATTR_FILL from in use styles + +* Fri Sep 16 2016 Caolán McNamara - 1:5.2.2.1-2 +- Resolves: rhbz#1373933 gtk 3.21 emits way too many "style-set" signals + +* Wed Sep 14 2016 David Tardon - 1:5.2.2.1-1 +- update to 5.2.2 rc1 + +* Tue Sep 13 2016 Stephan Bergmann - 1:5.2.1.2-3 +- enable dconf support for Fleet Commander + +* Mon Sep 05 2016 David Tardon - 1:5.2.1.2-2 +- Resolves: rhbz#1247399 install public jars according to packaging guidelines +- Resolves: rhbz#1363874 install LibreOfficeKit headers + +* Fri Aug 26 2016 David Tardon - 1:5.2.1.2-1 +- update to 5.2.1 rc2 + +* Thu Aug 11 2016 David Tardon - 1:5.2.1.1-1 +- update to 5.2.1 rc1 + +* Fri Jul 29 2016 David Tardon - 1:5.2.0.4-1 +- update to 5.2.0 rc4 + +* Thu Jul 21 2016 David Tardon - 1:5.2.0.3-1 +- update to 5.2.0 rc3 + +* Tue Jul 19 2016 Fedora Release Engineering - 1:5.2.0.2-4 +- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages + +* Mon Jul 18 2016 Marek Kasik - 1:5.2.0.2-3 +- Rebuild for poppler-0.45.0 + +* Thu Jul 07 2016 David Tardon - 1:5.2.0.2-2 +- remove obsolete wiki-publisher requires apache-commons-* + +* Thu Jul 07 2016 David Tardon - 1:5.2.0.2-1 +- update to 5.2.0 rc2 +- Resolves: rhbz#1351292 fix switching of modes in Impress + +* Tue Jun 28 2016 David Tardon - 1:5.2.0.1-2 +- Resolves: rhbz#1341064 fix test on big endian systems + +* Wed Jun 22 2016 David Tardon - 1:5.2.0.1-1 +- update to 5.1.0 rc1 +- Resolves: rhbz#1343752 wrong radiobutton and checkbutton behavior in + "view" menu +- Resolves: rhbz#1349261 do not pull in all variants of english dicts + +* Thu Jun 09 2016 David Tardon - 1:5.2.0.0-8.beta2 +- update to 5.2.0 beta2 + +* Thu May 26 2016 David Tardon - 1:5.2.0.0-7.beta1 +- update to 5.2.0 beta1 + +* Mon May 16 2016 David Tardon - 1:5.2.0.0-6.alpha1 +- Resolves: rhbz#1327847 remove multilib conflicts in .desktop files + +* Fri May 13 2016 David Tardon - 1:5.2.0.0-5.alpha1 +- rebuild for mdds 1.2.0 +- Resolves: rhbz#1325858 fix build on 64-bit secondary arches + +* Tue May 10 2016 David Tardon - 1:5.2.0.0-4.alpha1 +- Resolves: rhbz#1333899 recommended pkgs are omitted from default + installation + +* Tue May 3 2016 Marek Kasik - 1:5.2.0.0-3.alpha1 +- Rebuild for poppler-0.43.0 + +* Mon May 02 2016 David Tardon - 1:5.2.0.0-2.alpha1 +- Resolves: rhbz#1326602 leakage of removed background image set in master slide + +* Fri Apr 22 2016 David Tardon - 1:5.2.0.0-1.alpha1 +- update to 5.2.0 alpha1 + +* Thu Apr 21 2016 David Tardon - 1:5.1.3.1-1 +- update to 5.1.3 rc1 +- Resolves: tdf#91778 drawing the background over an active cursor + +* Mon Apr 18 2016 Caolán McNamara - 1:5.1.2.1-6 +- rebuild for hunspell 1.4.0 + +* Fri Apr 15 2016 David Tardon - 1:5.1.2.1-5 +- rebuild for ICU 57.1 + +* Thu Apr 07 2016 Caolán McNamara - 1:5.1.2.1-4 +- gtk3: fix combobox and listbox + +* Wed Mar 30 2016 David Tardon - 1:5.1.2.1-3 +- support both glade and glade3 + +* Mon Mar 21 2016 David Tardon - 1:5.1.2.1-2 +- Resolves: rhbz#1319458 avoid rich deps in Requires + +* Wed Mar 16 2016 David Tardon - 1:5.1.2.1-1 +- update to 5.1.2 rc1 +- split VCL plugins into subpackages +- rename libreoffice-kde to libreoffice-kde4 +- only recommend fonts +- remove hard dependency on English spell checker and auto-correction + rules +- disable quickstarter +- move icons and other system-integration stuff to a noarch subpackage +- disable browser plugin in preparation for its removal in 5.2 + +* Wed Mar 09 2016 David Tardon - 1:5.1.1.3-2 +- update for liborcus 0.11.0 + +* Thu Mar 03 2016 David Tardon - 1:5.1.1.3-1 +- update to 5.1.1 rc3 + +* Fri Feb 26 2016 David Tardon - 1:5.1.1.2-1 +- update to 5.1.1 rc2 + +* Mon Feb 22 2016 David Tardon - 1:5.1.1.1-5 +- Resolves: rhbz#1310527 add langpack deps + +* Tue Feb 16 2016 Caolán McNamara - 1:5.1.1.1-4 +- video playback under wayland with gstreamer gtksink + +* Mon Feb 15 2016 David Tardon - 1:5.1.1.1-3 +- rebuild for openCOLLADA soname change + +* Sun Feb 14 2016 David Tardon - 1:5.1.1.1-2 +- switch to mdds 1.x + +* Thu Feb 11 2016 David Tardon - 1:5.1.1.1-1 +- update to 5.1.1 rc1 +- Resolves: rhbz#1303007 add noarch Provides too + +* Thu Feb 11 2016 Caolán McNamara - 1:5.1.0.3-3 +- rework gtk3 themeing to work with latest gtk + +* Tue Feb 02 2016 Caolán McNamara - 1:5.1.0.3-2 +- Resolves: rhbz#1303619 nothing provides java-devel(x86_64) + +* Wed Jan 27 2016 David Tardon - 1:5.1.0.3-1 +- update to 5.1.0 rc3 +- Resolves: rhbz#1168757 Selecting multiple slides is not reflected in Print + dialog + +* Fri Jan 22 2016 Marek Kasik - 1:5.1.0.2-5 +- Rebuild for poppler-0.40.0 + +* Mon Jan 18 2016 Jonathan Wakely - 1:5.1.0.2-4 +- Rebuilt for Boost 1.60 + +* Sat Jan 16 2016 Mamoru TASAKA - 1:5.1.0.2-3 +- Remove arch-specific dependency for font subpackage as it is noarch + +* Thu Jan 14 2016 Adam Jackson - 1:5.1.0.2-2 +- Rebuild for glew 1.13 + +* Thu Jan 14 2016 David Tardon - 1:5.1.0.2-1 +- update to 5.1.0 rc2 + +* Thu Dec 17 2015 Bastien Nocera 1:5.1.0.1-2 +- Add GLSL files missing from the package +- Split up inclusion of latin Serbian files to avoid duplicate listing + +* Wed Dec 16 2015 David Tardon - 1:5.1.0.1-1 +- update to 5.1.0 rc1 + +* Mon Dec 14 2015 David Tardon - 1:5.1.0.0-11.beta2 +- backport more upstream fixes for libreofficekit +- fix unit test on i686 + +* Wed Dec 09 2015 David Tardon - 1:5.1.0.0-10.beta2 +- backport upstream fixes for libreofficekit + +* Fri Dec 04 2015 David Tardon - 1:5.1.0.0-9.beta2 +- update to 5.1.0 beta2 + +* Thu Dec 03 2015 Caolán McNamara - 1:5.1.0.0-8.beta1 +- enable and bundle libreofficekit introspection + +* Thu Nov 26 2015 David Tardon - 1:5.1.0.0-7.beta1 +- update to 5.1.0 beta1 + +* Tue Nov 10 2015 Fedora Release Engineering - 1:5.1.0.0-6.alpha1 +- Rebuilt for https://fedoraproject.org/wiki/Changes/python3.5 + +* Thu Nov 05 2015 David Tardon - 1:5.1.0.0-5.alpha1 +- Related: rhbz#1276061 build failure on ppc64 + +* Tue Nov 03 2015 David Tardon - 1:5.1.0.0-4.alpha1 +- Resolves: rhbz#1276061 build failure on ppc64 + +* Wed Oct 28 2015 David Tardon - 1:5.1.0.0-3.alpha1 +- rebuild for ICU 56.1 + +* Tue Oct 27 2015 Eike Rathke - 1:5.1.0.0-2.alpha1 +- prepare to enable build with ICU 56 + +* Mon Oct 19 2015 David Tardon - 1:5.1.0.0-1.alpha1 +- update to 5.1.0 alpha1 + +* Mon Oct 12 2015 David Tardon - 1:5.0.3.1-1 +- update to 5.0.3 rc1 + +* Thu Oct 08 2015 Caolán McNamara - 1:5.0.2.2-4 +- Resolves: rhbz#1269593 declare support for vnd.libreoffice.cmis:// URLs + +* Wed Sep 30 2015 Caolán McNamara - 1:5.0.2.2-3 +- implement save slide background for impress + +* Mon Sep 28 2015 Caolán McNamara - 1:5.0.2.2-2 +- Resolves: tdf#93461 captions laid out behind images + +* Thu Sep 17 2015 David Tardon - 1:5.0.2.2-1 +- update to 5.0.2 rc2 + +* Sat Sep 05 2015 David Tardon - 1:5.0.2.1-1 +- update to 5.0.2 rc1 + +* Sat Aug 22 2015 David Tardon - 1:5.0.1.2-1 +- update to 5.0.1 rc2 + +* Tue Aug 11 2015 David Tardon - 1:5.0.1.1-1 +- update to 5.0.1 rc1 + +* Wed Aug 05 2015 Jonathan Wakely 5.0.0.5-2 +- Rebuilt for Boost 1.58 + +* Mon Aug 03 2015 David Tardon - 1:5.0.0.5-1 +- update to 5.0.0 rc5 + +* Wed Jul 29 2015 Fedora Release Engineering - 1:5.0.0.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Changes/F23Boost159 + +* Sat Jul 25 2015 David Tardon - 1:5.0.0.4-1 +- update to 5.0.0 rc4 + +* Fri Jul 24 2015 Adam Williamson - 1:5.0.0.3-3 +- rebuild for Boost 1.58 (for real this time) + +* Wed Jul 22 2015 David Tardon - 1:5.0.0.3-2 +- rebuild for Boost 1.58 + +* Fri Jul 10 2015 David Tardon - 1:5.0.0.3-1 +- update to 5.0.0 rc3 + +* Sun Jun 28 2015 David Tardon - 1:5.0.0.2-1 +- update to 5.0.0 rc2 + +* Sun Jun 21 2015 David Tardon - 1:5.0.0.1-1 +- update to 5.0.0 rc1 + +* Fri Jun 19 2015 David Tardon - 1:5.0.0.0-8.beta3 +- Resolves: rhbz#1233420 crash on auto-fill + +* Wed Jun 17 2015 Fedora Release Engineering - 1:5.0.0.0-7.beta3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Wed Jun 10 2015 David Tardon - 1:5.0.0.0-6.beta3 +- update to 5.0.0 beta3 + +* Tue Jun 09 2015 David Tardon - 1:5.0.0.0-5.beta2 +- update to 5.0.0 beta2 + +* Mon Jun 08 2015 David Tardon - 1:5.0.0.0-4.beta1 +- rebuild for poppler 0.33 + +* Wed May 20 2015 David Tardon - 1:5.0.0.0-3.beta1 +- update to 5.0.0 beta1 + +* Sat May 16 2015 Kalev Lember - 1:5.0.0.0-2.alpha1 +- Resolves: rhbz#1215800 install symbolic icons + +* Sun Apr 19 2015 David Tardon - 1:5.0.0.0-1.alpha1 +- update to 5.0.0 alpha1 + +* Tue Apr 14 2015 Stephan Bergmann - 1:4.4.2.2-3 +- Resolves: rhbz#1197614 crash when updating extension +- Resolves: rhbz#1134285 redundant user/password request for WebDAV access + +* Mon Mar 30 2015 Richard Hughes - 1:4.4.2.2-2 +- Use better AppData screenshots + +* Thu Mar 26 2015 David Tardon - 1:4.4.2.2-1 +- update to 4.4.2 rc2 + +* Thu Mar 12 2015 David Tardon - 1:4.4.2.1-1 +- update to 4.2.2 rc1 + +* Mon Feb 23 2015 David Tardon - 1:4.4.1.2-1 +- update to 4.4.1 rc2 + +* Tue Feb 10 2015 David Tardon - 1:4.4.1.1-1 +- update to 4.4.1 rc1 + +* Thu Jan 29 2015 David Tardon - 1:4.4.0.3-5 +- fix build on s390 + +* Wed Jan 28 2015 Petr Machata - 1:4.4.0.3-4 +- Rebuild for boost 1.57.0 + +* Wed Jan 28 2015 Petr Machata - 1:4.4.0.3-3 +- Rebuild for boost 1.57.0 + +* Fri Jan 23 2015 Stephan Bergmann - 1:4.4.0.3-2 +- Related: rhbz#1185307 get search for Hamcrest unstuck + +* Fri Jan 23 2015 David Tardon - 1:4.4.0.3-1 +- update to 4.4.0 rc3 + +* Fri Jan 23 2015 Marek Kasik - 1:4.4.0.2-4 +- Rebuild (poppler-0.30.0) + +* Thu Jan 22 2015 Stephan Bergmann - 1:4.4.0.2-3 +- Resolves: rhbz#1184582 crash in grammar checking thread + +* Mon Jan 19 2015 David Tardon - 1:4.4.0.2-2 +- Resolves: rhbz#1180114 writerfilter: don't crash on w:customXmlDelRangeStart + etc. +- Resolves: rhbz#1175027 fix life cycle of SwConnectionDisposedListener_Impl + +* Fri Jan 09 2015 David Tardon - 1:4.4.0.2-1 +- update to 4.4.0 rc2 + +* Wed Jan 07 2015 Caolán McNamara - 1:4.4.0.1-2 +- Resolves: rhbz#1177547 system autocorr files not detected + +* Sun Dec 21 2014 David Tardon - 1:4.4.0.1-1 +- update to 4.4.0 rc1 + +* Fri Dec 12 2014 David Tardon - 1:4.4.0.0-6.beta2 +- Resolves: rhbz#1116534 crash when pasting over a formula + +* Sat Dec 06 2014 David Tardon - 1:4.4.0.0-5.beta2 +- update to 4.4.0 beta2 +- move officehelper.py to pyuno package so it can be imported from python + +* Tue Dec 02 2014 David Tardon - 1:4.4.0.0-4.beta1 +- add Provides: libreoffice-headless; packages are depending on it + +* Thu Nov 27 2014 Caolán McNamara - 1:4.4.0.0-3.beta1 +- Resolves: rhbz#1165444 abrt crash with NULL pView + +* Thu Nov 27 2014 Marek Kasik - 1:4.4.0.0-2.beta1 +- Rebuild (poppler-0.28.1) + +* Sat Nov 22 2014 David Tardon - 1:4.4.0.0-1.beta1 +- update to 4.4.0 beta1 + +* Fri Nov 21 2014 Caolán McNamara - 1:4.3.4.1-6 +- Resolves: fdo#86466 Wrong background color shown in impress table + +* Thu Nov 20 2014 Caolán McNamara - 1:4.3.4.1-5 +- Resolves: rhbz#1164551 we want to ensure that a libjvm.so is available + but we have no firm interest in which one that is + +* Wed Nov 19 2014 Caolán McNamara - 1:4.3.4.1-4 +- Resolves: rhbz#1165740 arbitrarily backport some rtf crash fixes + +* Mon Nov 17 2014 Michael Stahl - 1:4.3.4.1-3 +- set VCL.WM.ShouldSwitchWorkspace to false to avoid virtual desktop switching + +* Thu Nov 13 2014 Caolán McNamara - 1:4.3.4.1-2 +- fix impress table layout cache wrt wrong table selection border + +* Tue Nov 11 2014 David Tardon - 1:4.3.4.1-1 +- update to 4.3.4 rc1 + +* Tue Nov 11 2014 Caolán McNamara - 1:4.3.3.2-6 +- strip hard coded numbering off outline master previews + +* Mon Nov 10 2014 Caolán McNamara - 1:4.3.3.2-5 +- Resolves: rhbz#1161238 sync PRESOBJ_OUTLINE para depth on load + +* Thu Nov 06 2014 Caolán McNamara - 1:4.3.3.2-4 +- Resolves: fdo#60712 Inherits cell styles in inserting rows/columns +- implement toggling off removeable master elements with delete +- Resolves: fdo#78151 change underlying style on toggling bullets on/off in master view + +* Thu Nov 06 2014 Caolán McNamara - 1:4.3.3.2-3 +- Resolves: fdo#76581 copy-and-paste -> slideshow crash in presenter console + +* Wed Nov 05 2014 Caolán McNamara - 1:4.3.3.2-2 +- Resolves: fdo#37559 revert adding extra dummy polygons + +* Tue Oct 28 2014 David Tardon - 1:4.3.3.2-1 +- update to 4.3.3 rc2 + +* Sun Oct 19 2014 David Tardon - 1:4.3.3.1-2 +- enable support for 3-D models + +* Thu Oct 09 2014 David Tardon - 1:4.3.3.1-1 +- update to 4.3.3 rc1 + +* Wed Oct 08 2014 Stephan Bergmann - 1:4.3.2.2-5 +- Resolves: rhbz#1054952 bad access of smb URLs on KDE + +* Tue Sep 23 2014 Richard Hughes - 1:4.3.2.2-4 +- move appdata files to desktop files, where the belong + +* Tue Sep 23 2014 Caolán McNamara - 1:4.3.2.2-3 +- Resolves: rhbz#1054952 cannot access smb URLs on KDE + +* Tue Sep 23 2014 Caolán McNamara - 1:4.3.2.2-2 +- make brochure printing of impress/draw work out of the box +- Resolves: rhbz#1133863 fix looping layout + +* Mon Sep 22 2014 David Tardon - 1:4.3.2.2-1 +- update to 4.3.2 rc2 + +* Wed Sep 17 2014 Caolán McNamara - 1:4.3.2.1-3 +- make n-up printing of impress notes work out of the box + +* Wed Sep 17 2014 Caolán McNamara - 1:4.3.2.1-2 +- Resolves: fdo#80911 don't swap notes page width height + +* Fri Sep 12 2014 David Tardon - 1:4.3.2.1-1 +- update to 4.3.2 rc1 + +* Wed Sep 10 2014 Caolán McNamara - 1:4.3.1.2-5 +- create a master document template type + +* Tue Sep 09 2014 Caolán McNamara - 1:4.3.1.2-4 +- Resolves: fdo#82496 Change picture option with right click in writer + +* Fri Sep 05 2014 David Tardon - 1:4.3.1.2-3 +- build for aarch64 + +* Fri Aug 29 2014 Stephan Bergmann - 1:4.3.1.2-2 +- Resolves: rhbz#1098693 AArch64 port + +* Wed Aug 27 2014 David Tardon - 1:4.3.1.2-1 +- update to 4.3.1 rc2 + +* Tue Aug 26 2014 Caolán McNamara - 1:4.3.1.1-8 +- Related: rhbz#1131425 ure only needs jre-headless + +* Tue Aug 26 2014 David Tardon - 1:4.3.1.1-7 +- rebuild for ICU 53.1 + +* Fri Aug 22 2014 Caolán McNamara - 1:4.3.1.1-6 +- Resolves: rhbz#1131425 move libjawt-using office bean into a subpackage +- Resolves: rhbz#1125588 port LibreOffice to ppc64le + +* Tue Aug 19 2014 Caolán McNamara - 1:4.3.1.1-5 +- Resolves: rhbz#1131425 try java-headless instead of java + +* Sun Aug 17 2014 Fedora Release Engineering - 1:4.3.1.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Sat Aug 16 2014 Rex Dieter 1:4.3.1.1-3 +- update mime scriptlets + +* Fri Aug 15 2014 Caolán McNamara - 1:4.3.1.1-2 +- Related: rhbz#1130264 crash in media playback on s390x + +* Sun Aug 10 2014 David Tardon - 1:4.3.1.1-1 +- update to 4.3.1 rc1 + +* Mon Jul 28 2014 David Tardon - 1:4.3.0.4-1 +- update to 4.3.0 rc4 + +* Fri Jul 25 2014 David Tardon - 1:4.3.0.3-4 +- Resolves: rhbz#1121254 crash when using font selector after adding new font + +* Fri Jul 25 2014 Caolán McNamara - 1:4.3.0.3-3 +- Resolves: rhbz#1122868 landscape printing is broken + +* Thu Jul 24 2014 David Tardon - 1:4.3.0.3-2 +- avoid image loss in Impress after auto-save + +* Wed Jul 16 2014 David Tardon - 1:4.3.0.1-1 +- update to 4.3.0 rc3 + +* Tue Jul 08 2014 David Tardon - 1:4.3.0.2-2 +- avoid problems detecting HTML files with xls extension + +* Wed Jul 02 2014 David Tardon - 1:4.3.0.2-1 +- update to 4.3.0 rc2 + +* Tue Jun 17 2014 David Tardon - 1:4.3.0.1-1 +- update to 4.3.0 rc1 + +* Mon Jun 09 2014 David Tardon - 1:4.3.0.0-9.beta2 +- Resolves: rhbz#1105376 FlatODF import/export does not work unless + libreoffice-xsltfilter is installed + +* Wed Jun 04 2014 David Tardon - 1:4.3.0.0-8.beta2 +- update to 4.3.0 beta2 + +* Thu May 29 2014 David Tardon - 1:4.3.0.0-7.beta1 +- fix some fallout from the import libs rebase + +* Wed May 28 2014 David Tardon - 1:4.3.0.0-6.beta1 +- switch to librevenge-based import libs + +* Tue May 27 2014 Kalev Lember - 1:4.3.0.0-5.beta1 +- Rebuild for boost 1.55.0 + +* Mon May 26 2014 David Tardon - 1:4.3.0.0-4.beta1 +- unblock build on ARM + +* Fri May 23 2014 Petr Machata - 1:4.3.0.0-3.beta1 +- Rebuild for boost 1.55.0 + +* Fri May 23 2014 David Tardon - 1:4.3.0.0-2.beta1 +- rebuild for boost 1.55.0 + +* Wed May 21 2014 David Tardon - 1:4.3.0.0-1.beta1 +- update to 4.3.0 beta1 + +* Fri May 16 2014 Caolán McNamara - 1:4.2.4.2-14 +- render smart-art with a vector format so it can be scaled nicely +- fix leak on pasting metafiles into office +- fix leak on pasting draw items into office +- fix another leak on scaling metric items + +* Thu May 15 2014 David Tardon - 1:4.2.4.2-13 +- fix SDK doc generation with doxygen 1.8.7 + +* Wed May 14 2014 David Tardon - 1:4.2.4.2-12 +- rebuild for new poppler + +* Mon May 12 2014 Caolán McNamara - 1:4.2.4.2-11 +- Resolves: rhbz#1096747 format->page crash on html doc + +* Mon May 12 2014 David Tardon - 1:4.2.4.2-10 +- Resolves: fdo#78119 bad july (červenec) month name support in czech + localization + +* Mon May 12 2014 Caolán McNamara - 1:4.2.4.2-9 +- Resolves: rhbz#1096486 avoid access to nonexisting parent +- Resolves: rhbz#1096295 hard to distinguish slides in slide pane + +* Fri May 09 2014 David Tardon - 1:4.2.4.2-8 +- Resolves: rhbz#1071604 Draw depends on files from libreoffice-impress, crashes + without them + +* Fri May 09 2014 Eike Rathke - 1:4.2.4.2-7 +- Resolves: fdo#77509 memory corruption / crash in Consolidate + +* Thu May 08 2014 Caolán McNamara - 1:4.2.4.2-6 +- center current slide after changing zoom +- add a status bar icon to fit slide to window +- Related: fdo#50697 reset the cache timeout on GetGraphic + +* Thu May 08 2014 Stephan Bergmann - 1:4.2.4.2-5 +- Resolves: rhbz#1092589 Thoroughly check whether JRE is still present + +* Tue May 06 2014 Caolán McNamara - 1:4.2.4.2-4 +- clip over-long comments + +* Thu May 01 2014 Eike Rathke - 1:4.2.4.2-3 +- Resolves: fdo#78294 default null-date for document import is 1899-12-30 + +* Thu May 01 2014 Caolán McNamara - 1:4.2.4.2-2 +- better scaling of notes-using pages + +* Wed Apr 30 2014 David Tardon - 1:4.2.4.2-1 +- update to 4.2.4 rc2 + +* Fri Apr 25 2014 Caolán McNamara - 1:4.2.4.1-7 +- Related: rhbz#1032774 disable autoexit when switching monitors + +* Thu Apr 24 2014 Caolán McNamara - 1:4.2.4.1-6 +- Resolves: fdo#37130 use 10pt Default style font for comments +- Resolves: fdo#60040 crash after undoing master page +- vertically center printout when including comments + +* Wed Apr 23 2014 Caolán McNamara - 1:4.2.4.1-5 +- add a 'format all comments' feature + +* Tue Apr 22 2014 Caolán McNamara - 1:4.2.4.1-4 +- Resolves: rhbz#1089377 crash on loading a specific rtf + +* Tue Apr 22 2014 Caolán McNamara - 1:4.2.4.1-3 +- sometimes tables in impress don't resize when adding rows +- Resolves: fdo#71423 crash while editing Impress tables + +* Fri Apr 18 2014 Caolán McNamara - 1:4.2.4.1-2 +- every 2nd print job is incorrectly flagged as failed +- Related: rhbz#1088625 PresenterPaintManager seen as NULL + +* Thu Apr 17 2014 David Tardon - 1:4.2.4.1-1 +- update to 4.2.4 rc1 + +* Wed Apr 16 2014 David Tardon - 1:4.2.3.3-6 +- install man pages +- Resolves: rhbz#1086714 overlarge pixmap + +* Wed Apr 16 2014 Caolán McNamara - 1:4.2.3.3-5 +- Resolves: fdo#36815 enable printing WYSIWYG sidewindow comments + +* Sat Apr 12 2014 David Tardon - 1:4.2.3.3-4 +- drop filtering of provides again + +* Sat Apr 12 2014 Caolán McNamara - 1:4.2.3.3-3 +- Related: rhbz#1081176 don't jump to cursor pos when we don't want to + +* Fri Apr 11 2014 Caolán McNamara - 1:4.2.3.3-2 +- Resolves: rhbz#1081176 don't jump to cursor pos when we don't want to +- Related: rhbz#1085916 kde startup woes + +* Sat Apr 05 2014 David Tardon - 1:4.2.3.3-1 +- update to 4.2.3 rc3 + +* Tue Apr 01 2014 Caolán McNamara - 1:4.2.3.2-3 +- Related: rhbz#1075951 abrt crash in MSWordExportBase + +* Mon Mar 31 2014 David Tardon - 1:4.2.3.2-2 +- Resolves: rhbz#1080196 mdds/multi_type_vector_itr.hpp update_node(): + soffice.bin killed by SIGSEGV + +* Wed Mar 26 2014 David Tardon - 1:4.2.3.2-1 +- update to 4.2.3 rc2 + +* Tue Mar 25 2014 Caolán McNamara - 1:4.2.3.1-2 +- Resolves: rhbz#1077780 crash on loading a specific docx + +* Mon Mar 17 2014 David Tardon - 1:4.2.3.1-1 +- update to 4.2.3 rc1 + +* Fri Mar 14 2014 Caolán McNamara - 1:4.2.2.1-7 +- Related: rhbz#1076264 intermittent a11y crash in calc + +* Mon Mar 10 2014 Michael Stahl - 1:4.2.2.1-6 +- Resolves: rhbz#988516: DOCX import: fix context stack when importing header +- Resolves: rhbz#1072553: Fix deselection problems of template view +- Resolves: rhbz#1072607: fix crash in SvxRuler::MouseMove() +- Resolves: rhbz#1043551: sw: avoid division-by-0 in Text Grid painting code +- RTF import: import field parameters +- RTF import: fix spurious page breaks at doc end + +* Tue Mar 04 2014 Caolán McNamara - 1:4.2.2.1-5 +- Related: rhbz#1065807 wizards should find the right wizards subdir + of Template_internal, who knew this stuff was so fragile + +* Mon Mar 03 2014 Caolán McNamara - 1:4.2.2.1-4 +- Related: rhbz#1065807 wizards should look in Template_internal + +* Fri Feb 28 2014 Caolán McNamara - 1:4.2.2.1-3 +- Resolves: rhbz#1007697 Update on a Window deletes itself + +* Fri Feb 28 2014 Caolán McNamara - 1:4.2.2.1-2 +- Related: rhbz#1065807 don't throw with no "Templates" dir under KDE + +* Thu Feb 27 2014 David Tardon - 1:4.2.2.1-1 +- update to 4.2.2 rc1 + +* Thu Feb 27 2014 Stephan Bergmann - 1:4.2.1.1-4 +- Resolves: fdo#75540 spadmin does not start + +* Thu Feb 27 2014 David Tardon - 1:4.2.1.1-3 +- Resolves: rhbz#1057977 do not crash when fonts are updated + +* Tue Feb 25 2014 Caolán McNamara - 1:4.2.1.1-2 +- Resolves: rhbz#1065807 search XDG defined "Templates" dir + +* Thu Feb 13 2014 David Tardon - 1:4.2.1.1-1 +- update to 4.2.1 rc1 + +* Thu Feb 13 2014 David Tardon - 1:4.2.0.4-4 +- rebuild for new ICU + +* Thu Feb 06 2014 David Tardon - 1:4.2.0.4-3 +- Resolves: rhbz#1017379 libreoffice impress imports animated motion paths + incorrectly from powerpoint +- Resolves: fdo#33852 Custom animation (Motionpath Left) isn't being + imported correctly from .ppt + +* Thu Jan 30 2014 David Tardon - 1:4.2.0.4-2 +- split LibreLogo into a separate subpackage +- create a metapackage depending on all subpackages containing filters, + for use of packages like unoconv + +* Tue Jan 28 2014 David Tardon - 1:4.2.0.4-1 +- update to 4.2.0 rc4 + +* Fri Jan 24 2014 David Tardon - 1:4.2.0.3-3 +- enable EOT support +- fix PPC build + +* Thu Jan 23 2014 David Tardon - 1:4.2.0.3-2 +- stop showing math and startcenter in menu (again) + +* Wed Jan 22 2014 David Tardon - 1:4.2.0.3-1 +- update to 4.2.0 rc3 + +* Mon Jan 13 2014 Caolán McNamara - 1:4.2.0.2-2 +- Related: rhbz#1047871 conditional formatting doesn't fit on screen + +* Thu Jan 09 2014 David Tardon - 1:4.2.0.2-1 +- update to 4.2.0 rc2 +- Resolves: rhbz#1049543 Include AppData files in packages + +* Tue Jan 07 2014 David Tardon - 1:4.2.0.1-1 +- 4.2.0 rc1 + +* Wed Dec 11 2013 Caolán McNamara - 1:4.2.0.0-3.beta2 +- Resolves: rhbz#1040291 Change language name from "Oriya" to "Odia" + +* Wed Dec 04 2013 Caolán McNamara - 1:4.2.0.0-2.beta2 +- update to 4.2.0 beta2 +- Related: rhbz#1032774 bodge around reported NULL +- Resolves: rhbz#1035092 no shortcut key for Italian 'Tools' menu +- Resolves: rhbz#912529 Kerkis SmallCaps shown instead of Kerkis Regular +- Resolves: rhbz#1038189 refresh printer list when print dialog launched +- openssl no longer required to build + +* Thu Nov 21 2013 David Tardon - 1:4.2.0.0-1.beta1 +- switch to 4.2.0 + +* Wed Nov 20 2013 Stephan Bergmann - 1:4.1.3.2-5 +- Resolves: rhbz#1031989 Accept --pt in addition to deprecated -pt +- Related: rhbz#1014990 valgrind reports uninitialized variables + +* Sun Nov 03 2013 David Tardon - 1:4.1.3.2-4 +- adapt for libmwaw 0.2 + +* Thu Oct 31 2013 David Tardon - 1:4.1.3.2-3 +- Resolves: fdo#56209 reviving FilterFormulaParser + +* Thu Oct 31 2013 Stephan Bergmann - 1:4.1.3.2-2 +- Resolves: fdo#67725 unoidl::AggregatingCursor must wrap modules for aggregation +- Resolves: rhbz#1021915 force menubar menus to be up/down only +- Resolves: rhbz#1025201 Incorrect rendering of Devanagari short i + +* Wed Oct 23 2013 David Tardon - 1:4.1.3.2-1 +- 4.1.3 rc2 +- Resolves: rhbz#1022094 libreoffice-4.1.3.1-1 was built without + langpacks + +* Mon Oct 21 2013 Caolán McNamara - 1:4.1.3.1-2 +- Resolves: rhbz#1020712 wrong default CTL font shown in editengine +- Resolves: rhbz#919070 display -1 means span all screens + + +* Wed Oct 16 2013 David Tardon - 1:4.1.3.1-1 +- 4.1.3 rc1 + +* Mon Oct 07 2013 Caolán McNamara - 1:4.1.2.3-4 +- Resolves: rhbz#1001768: fix various a11y deadlocks and crashes +- Resolves: rhbz#1016022 fix cut from impress and paste to writer +- Resolves: rhbz#1003179 fix AUTOFMT related crashes in Writer Undo + +* Mon Oct 07 2013 Caolán McNamara - 1:4.1.2.3-3 +- Resolves: rhbz#1015281 crash on clicking custom animation +- Resolves: rhbz#996162 crash with no bullet font + +* Wed Oct 02 2013 Caolán McNamara - 1:4.1.2.3-2 +- Resolves: rhbz#1013480 crash in EditLineList::operator[] +- Resolves: rhbz#1014010 crash on start up +- Resolves: rhbz#1013844 encrypted OOo 1.0 files don't reopen + +* Mon Sep 30 2013 David Tardon - 1:4.1.2.3-1 +- 4.1.2 rc3 + +* Fri Sep 20 2013 David Tardon - 1:4.1.2.2-1 +- 4.1.2 rc2 + +* Tue Sep 17 2013 Caolán McNamara - 1:4.1.2.1-3 +- add select sheet menu to calc prev/next area +- Resolves: rhbz#988104 crash on certain pptx + +* Thu Sep 12 2013 Caolán McNamara - 1:4.1.2.1-2 +- Resolves: rhbz#1006850 crash in SwCommentRuler + +* Thu Sep 05 2013 David Tardon - 1:4.1.2.1-1 +- 4.1.2 rc1 + +* Tue Sep 03 2013 Caolán McNamara - 1:4.1.1.2-3 +- Resolves: rhbz#993963 NULL m_pWindow on firefox close plugin window + +* Fri Aug 23 2013 Stephan Bergmann - 1:4.1.1.2-2 +- Resolves: rhbz#1000150, Do not call exit upon XIOError + +* Thu Aug 22 2013 David Tardon - 1:4.1.1.2-1 +- 4.1.1 rc2 +- Related: rhbz#895690 Always try to do a mount when opening a file via GIO +- Resolves: rhbz#998136 wrong index to gWidgetData +- Resolves: rhbz#998046 store last size/position of the base windows + +* Mon Aug 19 2013 Marek Kasik - 1:4.1.1.1-2 +- Rebuild (poppler-0.24.0) + +* Fri Aug 09 2013 David Tardon - 1:4.1.1.1-1 +- 4.1.1 rc1 + +* Fri Aug 09 2013 Caolán McNamara - 1:4.1.0.4-6 +- Resolves: fdo#67743 user autocorr file not written + +* Tue Jul 30 2013 Stephan Bergmann - 1:4.1.0.4-5 +- Resolves: rhbz#989246 Honor user's JavaDriverClass override in mysql driver +- Resolves: fdo#67045 fix several nasty screen selection issues + +* Tue Jul 30 2013 Caolán McNamara - 1:4.1.0.4-4 +- Resolves: rhbz#989686 Fix crash with stripping whitespace from toc entries + +* Mon Jul 29 2013 David Tardon - 1:4.1.0.4-3 +- make libwpd-based filters work correctly with newest libwpd + +* Sun Jul 28 2013 Petr Machata - 1:4.1.0.4-2 +- Rebuild for boost 1.54.0 + +* Wed Jul 24 2013 David Tardon - 1:4.1.0.4-1 +- 4.1.0 rc4 + +* Mon Jul 22 2013 Eike Rathke - 1:4.1.0.3-2 +- force rebuild with icu-50.1.2-7 + +* Thu Jul 18 2013 David Tardon - 1:4.1.0.3-1 +- 4.1.0 rc3 +- Resolves: fdo#48835 GNOME3 app menu + +* Thu Jul 18 2013 Caolán McNamara - 1:4.1.0.2-5 +- silence scary gcc warning +- fdo#66924 switching to master view is broken + +* Tue Jul 16 2013 David Tardon - 1:4.1.0.2-4 +- bump release + +* Fri Jul 12 2013 David Tardon - 1:4.1.0.2-3 +- Resolves: rhbz#983809 libreoffice-base misses deps on needed java packages + +* Thu Jul 11 2013 David Tardon - 1:4.1.0.2-2 +- Resolves: rhbz#980387 Exporting a odg to jpg or tiff generates error + +* Thu Jul 04 2013 David Tardon - 1:4.1.0.2-1 +- 4.1.0 rc2 + +* Mon Jul 01 2013 Caolán McNamara - 1:4.1.0.1-8 +- Resolves: rhbz#979758 crash on Diagrammen in LibreOffice help page + +* Thu Jun 27 2013 David Tardon - 1:4.1.0.1-7 +- bump revision + +* Mon Jun 24 2013 Marek Kasik - 1:4.1.0.1-6 +- Rebuild (poppler-0.22.5) + +* Mon Jun 24 2013 David Tardon - 1:4.1.0.1-5 +- fix build on big endian archs + +* Mon Jun 24 2013 David Tardon - 1:4.1.0.1-4 +- put glade catalog into an extra packgae + +* Sun Jun 23 2013 Caolán McNamara - 1:4.1.0.1-3 +- Resolves: rhbz#976304 gallery elements may not insert + +* Wed Jun 19 2013 Dennis Gilmore - 1:4.1.0.1-2 +- fix _smp_mflags macro useage + +* Wed Jun 19 2013 David Tardon - 1:4.1.0.1-1 +- 4.1.0 rc1 +- Related: rhbz#971321 failing tests on ppc and s390 + +* Sun Jun 16 2013 David Tardon - 1:4.1.0.0-9.beta2 +- Resolves: rhbz#971321 failing tests on ppc and s390 +- Resolves: rhbz#974062 incorrect rendering of text in outline blocks in + Impress + +* Fri Jun 07 2013 David Tardon - 1:4.1.0.0-8.beta2 +- Related: rhbz#971795 go back to BR: harfbuzz-devel + +* Fri Jun 07 2013 David Tardon - 1:4.1.0.0-7.beta2 +- Resolves: rhbz#971230 Use BR: harfbuzz-icu-devel + +* Wed Jun 05 2013 David Tardon - 1:4.1.0.0-7.beta1 +- 4.1.0 beta2 + +* Wed Jun 05 2013 Caolán McNamara - 1:4.1.0.0-6.beta1 +- Related: rhbz#968892 discard impossible languages for Oriya script + +* Tue Jun 04 2013 Caolán McNamara - 1:4.1.0.0-5.beta1 +- Resolves: rhbz#968892 block entire grapheme together for glyph fallback +- Related: rhbz#968892 discard impossible languages for glyph fallback + +* Fri May 31 2013 Caolán McNamara - 1:4.1.0.0-4.beta1 +- Resolves: rhbz#968976 fix dropdown list autosizing + +* Thu May 30 2013 David Tardon - 1:4.1.0.0-3.beta1 +- build fix for s390 + +* Fri May 24 2013 David Tardon - 1:4.1.0.0-2.beta1 +- 4.1.0 beta1 + +* Fri May 24 2013 Stephan Bergmann - 1:4.0.3.3-3 +- Resolves: rhbz#961460 can't save WebDAV (davs) files + +* Thu May 16 2013 Caolán McNamara - 1:4.0.3.3-2 +- Resolves: rhbz#963276 font options cache crash + +* Fri May 03 2013 David Tardon - 1:4.0.3.3-1 +- 4.0.3 rc3 + +* Tue Apr 30 2013 David Tardon - 1:4.0.3.2-1 +- 4.0.3 rc2 + +* Mon Apr 22 2013 Stephan Bergmann - 1:4.0.3.1-2 +- Resolves: rhbz#954991 Avoid static data (causing trouble at exit) + +* Thu Apr 18 2013 David Tardon - 1:4.0.3.1-1 +- 4.0.3 rc1 +- Resolves: rhbz#867808 do not throw UNO exceptions by pointer in C++ + +* Tue Apr 16 2013 Caolán McNamara - 1:4.0.2.2-4 +- Resolves: rhbz#927223 syntax highlighting crash + +* Mon Apr 08 2013 Caolán McNamara - 1:4.0.2.2-3 +- Resolves: rhbz#949238 div by zero on pagedown in 0 width panel + +* Fri Apr 05 2013 Kalev Lember - 1:4.0.2.2-2 +- Resolves: rhbz#949106 libreoffice drags in both openjdk 1.7.0 and 1.8.0 + +* Thu Mar 28 2013 David Tardon - 1:4.0.2.2-1 +- 4.0.2 rc2 +- Resolves: rhbz#876742 manipulation with larger tables in impress is + very slow + +* Fri Mar 15 2013 Caolán McNamara - 1:4.0.2.1-2 +- Resolves: rhbz#906137 slide show inverts outputs + +* Fri Mar 15 2013 David Tardon - 1:4.0.2.1-1 +- 4.0.2 rc1 +- Resolves: rhbz#921716 Build Breton language pack + +* Wed Mar 13 2013 Stephan Bergmann - 1:4.0.1.2-4 +- Resolves: rhbz#895690 failure saving to gvfs mounts + +* Tue Mar 12 2013 Caolán McNamara - 1:4.0.1.2-3 +- Resolves: rhbz#920697 presentation not always full-screen + +* Thu Mar 07 2013 Caolán McNamara - 1:4.0.1.2-2 +- Related: rhbz#902884 check for NULL GetSelectedMasterPage +- Resolves: fdo#61241 force area page to size itself +- Resolves: fdo#61656 use order and orientation combobox +- Resolves: fdo#56031 RSID attr changes drop content changes + +* Thu Feb 28 2013 David Tardon - 1:4.0.1.2-1 +- 4.0.1 rc2 + +* Tue Feb 26 2013 Eike Rathke - 1:4.0.0.3-8 +- do not access vector elements beyond size, rhbz#847519 related +- Resolves: rhbz#742780 let make OPT_FLAGS=... override SDK flags +- Resolves: rhbz#907933 crash on removing second last para + +* Tue Feb 19 2013 Caolán McNamara - 1:4.0.0.3-7 +- Resolves: rhbz#895196 sc filter float a11y parent of itself + +* Tue Feb 19 2013 David Tardon - 1:4.0.0.3-6 +- Resolves: rhbz#911896 add Kazakh localization + +* Fri Feb 15 2013 Caolán McNamara - 1:4.0.0.3-5 +- make evolution 3.6 work with address book +- Resolves: rhbz#910176 cannot select directory with gtk folder picker +- fixes for building against Boost 1.53.0 + +* Fri Feb 15 2013 Stephan Bergmann - 1:4.0.0.3-4 +- Resolves: fdo#60491 missing libemboleobj.so +- Resolves: rhbz#908674 crash on start + +* Sat Feb 09 2013 Denis Arnaud - 1:4.0.0.3-3 +- Rebuild for Boost-1.53.0 + +* Wed Feb 06 2013 David Tardon - 1:4.0.0.3-2 +- fix parsing errors in translated help + +* Fri Feb 01 2013 David Tardon - 1:4.0.0.3-1 +- 4.0.0 rc3 + +* Wed Jan 23 2013 David Tardon - 1:4.0.0.2-1 +- 4.0.0 rc2 +- use ucpp again + +* Tue Jan 22 2013 David Tardon - 1:4.0.0.1-3 +- Resolves: rhbz#760765 Impress doesn't copy custom styles from one file + to another + +* Mon Jan 21 2013 David Tardon - 1:4.0.0.1-2 +- Resolves: rhbz#901346 do not install 512x512 icons + +* Tue Jan 15 2013 David Tardon - 1:4.0.0.1-1 +- 4.0.0 rc1 + +* Sat Dec 22 2012 David Tardon - 1:4.0.0.0-4.beta2 +- use system cpp instead of ucpp + +* Wed Dec 19 2012 David Tardon - 1:4.0.0.0-3.beta2 +- 4.0.0 beta2 + +* Thu Dec 06 2012 David Tardon - 1:4.0.0.0-2.beta1 +- 4.0.0 beta1 + +* Thu Nov 29 2012 David Tardon - 1:3.6.4.3-1 +- 3.6.4 rc3 + +* Wed Nov 28 2012 Caolán McNamara - 1:3.6.4.1-2 +- fix docx import on big endian + +* Sun Nov 18 2012 David Tardon - 1:3.6.4.1-1 +- 3.6.4 rc1 + +* Wed Nov 14 2012 Caolán McNamara - 1:3.6.3.2-8 +- Resolves: rhbz#872815 ogltrans effects still suboptimal + +* Tue Nov 13 2012 Caolán McNamara - 1:3.6.3.2-7 +- big endian test failure + +* Thu Nov 08 2012 Caolán McNamara - 1:3.6.3.2-6 +- Resolves: fdo#56198/rhbz#868002 honour gtk-scrollbar-warp-preference + +* Tue Nov 06 2012 Caolán McNamara - 1:3.6.3.2-5 +- bump for libexttextcat + +* Fri Nov 02 2012 David Tardon - 1:3.6.3.2-4 +- Resolves: rhbz#871929 add keywords to desktop files +- fix debuginfo + +* Wed Oct 31 2012 Eike Rathke - 1:3.6.3.2-3 +- Resolves: rhbz#865058 increase number of user-defined format codes + +* Fri Oct 26 2012 David Tardon - 1:3.6.3.2-2 +- Resolves: rhbz#824035 do not bundle saxon + +* Wed Oct 24 2012 David Tardon - 1:3.6.3.2-1 +- 3.6.3 rc2 +- drop integrated 0001-Resolves-rhbz-868479-fdo-56281-doubled-in-German-ok-.patch + +* Mon Oct 22 2012 Caolán McNamara - 1:3.6.3.1-3 +- Resolves: rhbz#868479 guard against duplicated ~ in OK/Cancel + +* Thu Oct 11 2012 David Tardon - 1:3.6.3.1-2 +- Resolves: rhbz#858641 backport gstreamer 1.0 support to F-18 + +* Thu Oct 11 2012 Caolán McNamara - 1:3.6.3.1-1 +- 3.6.3 rc1 +- drop integrated 0001-Resolves-rhbz-855972-crash-on-switching-to-outline-v.patch +- drop integrated 0001-fdo-52022-Simple-LargeControlPoints-actually-can-hav.patch +- drop integrated 0001-fdo-46071-Do-not-hide-windows-based-on-nil-Visible-p.patch + +* Fri Oct 05 2012 Stephan Bergmann - 1:3.6.2.2-3 +- Resolves: fdo#46071 Do not hide windows based on nil Visible property + +* Fri Oct 05 2012 Stephan Bergmann - 1:3.6.2.2-2 +- Resolves: fdo#52022 Part of data in userdir is lost on upgrade + +* Wed Sep 26 2012 David Tardon - 1:3.6.2.2-1 +- 3.6.2 rc2 + +* Wed Sep 12 2012 Caolán McNamara - 1:3.6.2.1-2 +- Resolves: rhbz#855541 XIOError handler multithread woes + +* Wed Sep 12 2012 David Tardon - 1:3.6.2.1-1 +- 3.6.2 rc1 + +* Tue Sep 11 2012 Caolán McNamara - 1:3.6.1.2-4 +- Resolves: rhbz#855507 large ole2 compound files fail to load + +* Mon Sep 10 2012 Caolán McNamara - 1:3.6.1.2-3 +- Resolves: rhbz#855972 crash on switching to outline view + +* Wed Aug 29 2012 Caolán McNamara - 1:3.6.1.2-2 +- Related: rhbz#850709 hunspell en-US available standalone so + make English langpack require hunspell-en and core just + bare bones hunspell-en-US + +* Sun Aug 26 2012 David Tardon - 1:3.6.1.2-1 +- 3.6.1 rc2 + +* Wed Aug 22 2012 Caolán McNamara - 1:3.6.1.1-2 +- Resolves: rhbz#846775 Clipboard must be disposed before selection +- Resolves: rhbz#842292 crash in scrolling multiselection in draw + +* Wed Aug 15 2012 David Tardon - 1:3.6.1.1-1 +- 3.6.1 rc1 + +* Sun Aug 12 2012 Kevin Fenzi - 1:3.6.0.4-3 +- Rebuild for new boost + +* Sat Jul 28 2012 David Tardon - 1:3.6.0.4-2 +- rebuilt for boost 1.50 + +* Fri Jul 27 2012 David Tardon - 1:3.6.0.4-1 +- 3.6.0 rc4 + +* Thu Jul 26 2012 David Tardon - 1:3.6.0.3-2 +- Resolves: rhbz#842552 crash in pptx import + +* Wed Jul 25 2012 David Tardon - 1:3.6.0.3-1 +- 3.6.0 rc3 + +* Tue Jul 17 2012 David Tardon - 1:3.6.0.2-1 +- 3.6.0 rc2 + +* Mon Jul 16 2012 Caolán McNamara - 1:3.6.0.1-3 +- Resolves: rhbz#836937 insanely slow with Zemberek + +* Mon Jul 16 2012 David Tardon - 1:3.6.0.1-2 +- rebuild for new libexttextcat + +* Thu Jul 12 2012 David Tardon - 3.6.0.1-1 +- 3.6.0 rc1 + +* Mon Jul 09 2012 Caolán McNamara - 3.6.0.0-4 +- Resolves: rhbz#838368 --view ignored while -view accepted + +* Thu Jul 05 2012 David Tardon - 3.6.0.0-3 +- 3.6.0 beta3 + +* Mon Jul 2 2012 Marek Kasik - 3.6.0.0-2 +- Rebuild (poppler-0.20.1) + +* Wed Jun 27 2012 David Tardon - 3.6.0.0-1 +- 3.6.0 beta2 +- drop integrated 0001-move-binfilter-mime-types-into-extra-.desktop-file.patch +- drop integrated 0001-Resolves-rhbz-788042-skip-splashscreen-with-quicksta.patch +- drop integrated libreoffice-ensure-non-broken-xml-tree.patch +- drop integrated 0001-preserve-timestamps-for-.py-files.patch +- drop integrated 0001-Resolves-rhbz-788045-swriter-help-etc-doesn-t-show-h.patch +- drop integrated 0001-Resolves-rhbz-799525-put-flat-odf-mimetypes-in-xsltf.patch +- drop integrated 0001-Resolves-rhbz-800272-complain-about-unknown-command-.patch +- drop integrated 0001-Resolves-rhbz-806663-SlideshowImpl-can-outlive-SdMod.patch +- drop integrated 0001-desktop-do-not-complain-about-soffice-command-line-o.patch +- drop integrated 0001-Resolves-fdo-48096-torn-off-popups-trigger-keyboard-.patch +- drop integrated 0001-fdo-38088-better-CSV-import-default-separators.patch +- drop integrated 0001-save-register-arguments-first.patch +- drop integrated 0001-do-not-let-gcc-use-registers-we-are-setting-ourselve.patch +- drop integrated 0001-wrong-types-used-here-breaks-64bit-bigendian.patch +- drop integrated 0001-Resolves-rhbz-805743-a11y-call-doShow-after-we-have-.patch +- drop integrated 0001-Resolves-fdo-49849-implement-Unicode-6.1-hebrew-line.patch +- drop integrated 0001-use-ure-instead-of-ure-link.patch +- drop broken 0001-fix-setting-of-paper-tray-from-print-dialog-fdo-4393.patch + +* Mon Jun 18 2012 Caolán McNamara - 3.5.5.1-2 +- Resolves: rhbz#830810 missing dependency on lucene-contrib + +* Thu Jun 14 2012 David Tardon - 3.5.5.1-1 +- 3.5.5 rc1 +- drop integrated 0001-make-hsqldb-build-with-java-1.7.patch +- drop integrated 0001-Related-rhbz-799628-crash-with-chewing-IM-with-g3g.patch +- drop integrated 0001-silence-SolarMutex-not-locked-spew.patch +- drop integrated 0001-gcc-trunk-fix-unable-to-find-string-literal-operator.patch +- drop integrated 0001-ppc-yyinput-returns-a-int-truncating-to-unsigned-cha.patch +- drop integrated 0001-Resolves-rhbz-826609-rhbz-820554-fix-smoketest-on-pp.patch + +* Mon Jun 11 2012 David Tardon - 3.5.4.2-3 +- make gdb pretty printers for URE libs usable again + +* Fri Jun 08 2012 Caolán McNamara - 3.5.4.2-2 +- Resolves: rhbz#826609, rhbz#820554 fix smoketest on ppc[64] and s390[x] + +* Wed May 23 2012 David Tardon - 3.5.4.2-1 +- 3.5.4 rc2 + +* Thu May 17 2012 Caolán McNamara - 3.5.4.1-2 +- Resolves: rhbz#811226 ARM FTBFS + +* Wed May 16 2012 David Tardon - 3.5.4.1-1 +- 3.5.4 rc1 +- drop integrated 0001-do-not-prepend-n-twice-it-confuses-KFileDialog-rhbz-.patch +- drop integrated 0001-incrementing-index-twice-in-one-run-seems-wrong.patch +- drop integrated 0001-fdo-49365-correctly-map-monitor-index-back-to-screen.patch +- drop integrated 0001-rhbz-809019-count-mirrored-monitors-as-one.patch + +* Sun May 13 2012 Caolán McNamara - 3.5.3.2-5 +- Resolves: fdo#49849 line breaking fixes for Hebrew + +* Fri May 11 2012 David Tardon - 3.5.3.2-4 +- Resolves: rhbz#820439 KDE export dialog broken for most formats +- Resolves: fdo#49365 Libreoffice fails to start on second screen with + gtk vcl plugin +- Resolves: rhbz#809019 Impress thinks a machine with 2 monitors in + clone mode is multihead + +* Wed May 09 2012 Caolán McNamara - 3.5.3.2-3 +- Resolves: rhbz#805743 a11y crash in impress/draw +- Resolves: rhbz#813202 opengl slide transitions still a bit + problematic in Fedora 17 + +* Thu May 03 2012 David Tardon - 3.5.3.2-2 +- rebuild for changed dependencies + +* Wed Apr 25 2012 David Tardon - 3.5.3.2-1 +- 3.5.3 rc2 +- fix broken test on 64bit big endian + +* Mon Apr 23 2012 David Tardon - 3.5.3.1-2 +- rebuild for icu +- fix UNO bridges for ppc and ppc64 + +* Thu Apr 19 2012 David Tardon - 3.5.3.1-1 +- 3.5.3 rc1 +- drop integrated 0001-Introduced-SystemShellExecuteFlags-URIS_ONLY.patch +- drop integrated 0001-Simplify-code-and-use-proper-register-names-for-linu.patch +- drop integrated 0001-resolved-rhbz-813280-the-current-document-is-not-alw.patch + +* Wed Apr 18 2012 Eike Rathke - 3.5.2.1-7 +- Resolves: rhbz#813280 sheets cannot be moved in Calc + +* Wed Apr 11 2012 Eike Rathke - 3.5.2.1-6 +- Resolves: fdo#38088 rhbz#810267 better CSV import default separators + +* Tue Apr 10 2012 Caolán McNamara - 3.5.2.1-5 +- Resolves: rhbz#811226 FTBFS ARM + +* Thu Apr 05 2012 Stephan Bergmann - 3.5.2.1-4 +- Fix URIS_ONLY flag issue +- rebuild for db4 + +* Mon Apr 02 2012 Caolán McNamara - 3.5.2.1-3 +- Resolves: rhbz#708041 focus problems with tearable menus + +* Mon Mar 26 2012 Caolán McNamara - 3.5.2.1-2 +- Resolves: rhbz#806663 SlideshowImpl can outlive SdModule + +* Sun Mar 25 2012 David Tardon - 3.5.2.1-1 +- 3.5.2 rc1 +-drop integrated 0001-yet-another-clash-with-macro-name.patch + +* Wed Mar 14 2012 David Tardon - 3.5.1.2-2 +- Resolves: rhbz#770209 can't change paper tray setting while printing + +* Thu Mar 08 2012 David Tardon - 3.5.1.2-1 +- 3.5.1 rc2 + +* Tue Mar 06 2012 Caolán McNamara - 3.5.1.1-3 +- Resolves: rhbz#799628 crash with chewing IM with g3g +- Resolves: rhbz#799525 put flat odf mimetypes into xsltfilter.desktop +- Resolves: rhbz#800272 complain about unknown commandline options + +* Wed Feb 29 2012 Caolán McNamara - 3.5.1.1-2 +- Resolves: rhbz#788045 swriter --help doesn't show help +- Resolves: rhbz#798667 missing .desktop icons + +* Sun Feb 26 2012 David Tardon - 3.5.1.1-1 +- 3.5.1 rc1 +- drop 0001-Resolves-fdo-43644-survive-registered-but-unavailabl.patch +- drop 0001-Resolves-rhbz-789622-Adapt-SDK-to-changed-paths-in-L.patch +- drop 0001-Fix-fdo-45177-avoid-linked-undo-for-the-while.patch +- drop 0001-Fix-some-apparent-misuses-of-RTL_CONSTASCII_USTRINGP.patch +- drop binfilter-Fix-some-apparent-misuses-of-RTL_CONSTASCII_USTRINGP.patch +- Resolves: fdo#45177 avoid linked undo crash +- Fix some apparent misuses of RTL_CONSTASCII_USTRINGPARAM (cherry-picked from + upstream libreoffice-3-5 branch) + +* Tue Feb 14 2012 Stephan Bergmann - 3.5.0.3-5 +- Resolves rhbz#789622: Adapt SDK to changed paths in LO installation + +* Mon Feb 13 2012 Caolán McNamara - 3.5.0.3-4 +- ensure gdb .py files have the same timstamps so that multilib + .pyc's and .pyo's have the same content (timestamp in binary cache) + +* Sat Feb 11 2012 Caolán McNamara - 3.5.0.3-3 +- make sure .tree files don't get busted again + +* Tue Feb 07 2012 Stephan Bergmann - 3.5.0.3-2 +- junit4 -> junit +- Resolves: rhbz#788042 skip splashscreen with quickstarter +- with split binfilter we need fix for fdo#43644 + +* Thu Feb 02 2012 David Tardon - 3.5.0.3-1 +- 3.5.0 rc3 +- Resolves: rhbz#786328 add nlpsolver subpackage +- split legacy binary filters into subpackage + +* Thu Jan 26 2012 Stephan Bergmann - 3.5.0.2-2 +- add libreoffice-postgresql subpackage + +* Wed Jan 25 2012 David Tardon - 3.5.0.2-1 +- 3.5.0 rc2 + +* Thu Jan 19 2012 David Tardon - 3.5.0.1-1 +- 3.5.0 rc1 +- drop integrated 0001-workaround-internal-compiler-error-with-gcc-4.7.patch +- drop integrated 0001-fix-for-gcc-4.7-C-11-these-are-not-string-literal-op.patch +- drop integrated 0001-fix-for-gcc-4.7-C-11-this-is-not-string-literal-oper.patch +- drop integrated 0001-Revert-fast_merge-fix-mis-merge-of-first-module-s-st.patch +- drop integrated 0001-fix-writing-of-strings-from-the-first-module.patch +- drop integrated 0001-refactor-slightly-to-avoid-link-problems-with-gcc-4..patch + +* Fri Jan 13 2012 David Tardon - 3.4.99.3-1 +- 3.5.0 beta3 +- drop integrated 0001-fix-syntactic-error.patch +- drop integrated 0001-gcc-trunk-fix-error-unable-to-find-string-literal-op.patch +- drop integrated 0001-gcc-trunk-avoid-confusion.patch +- drop integrated 0001-workaround-for-LO-namespace-pollution-breaking-KDE4-.patch +- drop integrated 0001-smath-does-not-handle-accents-in-MathML.patch +- Resolves: rhbz#533318 smath does not handle accents in MathML +- Resolves: rhbz#771108 English menu in writer despite installation of + libreoffice-langpack-de + +* Fri Jan 06 2012 David Tardon - 3.4.99.2-2 +- rebuild with gcc 4.7 + +* Wed Dec 21 2011 David Tardon - 3.4.99.2-1 +- 3.5.0 beta2 +- drop integrated 0001-Resolves-rhbz-761009-IFSD_Equal-is-asymmetrical.patch +- drop integrated 0001-Resolves-rhbz-767708-avoid-SIGBUS-writing-to-overcom.patch +- drop integrated 0001-force-gbuild-stage-for-CustomTargets.patch +- drop integrated 0001-these-translations-do-already-exist-in-translations-.patch +- drop integrated 0001-Fix-typo-and-clean-up.patch +- use system mysql-connector-c++ + +* Sun Dec 18 2011 David Tardon - 3.4.99.1-1 +- 3.5.0 beta1 +- drop integrated 0001-Related-fdo-37195-migrationoo3-not-registered.patch +- drop integrated 0001-Related-i58612-don-t-crash-anyway.patch +- drop integrated 0001-Related-rhbz-652604-better-survive-exceptions-thrown.patch +- drop integrated 0001-Related-rhbz-702833-addEventListener-without-removeE.patch +- drop integrated 0001-Related-rhbz-711087-band-aid.patch +- drop integrated 0001-Related-rhbz-718976-crash-in-SwTxtSizeInfo-GetMultiC.patch +- drop integrated 0001-Related-rhbz-730225-avoid-segv-in-ld-this-was-set-to.patch +- drop integrated 0001-Related-rhbz-753201-fedora-ant-java-1.5.0-gcj-won-t-.patch +- drop integrated 0001-Resolves-fdo-32665-handle-that-FreeSerif-lacks-some-.patch +- drop integrated 0001-Resolves-rhbz-693265-fix-crash-from-unhandled-except.patch +- drop integrated 0001-Resolves-rhbz-695509-crash-in-RefreshDocumentLB.patch +- drop integrated 0001-Resolves-rhbz-713154-pdf-export-dialog-too-tall-to-f.patch +- drop integrated 0001-Resolves-rhbz-715549-use-fontconfig-s-detected-forma.patch +- drop integrated 0001-Resolves-rhbz-738255-avoid-crash-on-NULL-pointer.patch +- drop integrated 0001-Resolves-rhbz-751290-KDE-black-on-dark-tooltips.patch +- drop integrated 0001-add-Oracle-Java-1.7.0-recognition.patch +- drop integrated 0001-avoid-using-com.sun.org-apis.patch +- drop integrated 0001-bubble-down-configure-test-findings-on-visibility.patch +- drop integrated 0001-fix-horizontal-scrollbars-with-KDE-oxygen-style-bnc-.patch +- drop integrated 0001-gtk3-fix-cairo-canvas-crash-for-non-X-or-svp-backend.patch +- drop integrated 0001-helgrind-Related-rhbz-655686-get-order-of-shutdown-c.patch +- drop integrated 0001-rhbz-667082-do-not-crash-importing-section-containin.patch +- drop integrated 0001-rhbz-702635-set-correct-page-number-when-exporting-s.patch +- drop integrated Backport-reading-AES-encrypted-ODF-1.2-documents.patch +- drop integrated gdb-pretty-printers.patch +- drop integrated kde4configure.patch +- drop integrated libreoffice-ppc64.patch +- drop integrated openoffice.org-3.3.0.ooo108637.sfx2.uisavedir.patch +- drop integrated openoffice.org-3.3.0.ooo113273.desktop.resolvelinks.patch +- drop integrated vbahelper.visibility.patch +- drop libreoffice-testtools subpackage, because testtool has been + removed by upstream + +* Thu Dec 15 2011 Caolán McNamara - 3.4.4.2-6 +- Resolves: rhbz#761009 IFSD_Equal is asymmetrical +- Resolves: rhbz#767708 write to mmap'ed file w/o disk space: SIGBUS + +* Tue Nov 29 2011 Caolán McNamara - 3.4.4.2-5 +- Resolves: rhbz#757653 fix headless crash with cairo canvas + +* Tue Nov 22 2011 Lukas Tinkl - 3.4.4.2-4 +- Resolves: rhbz#751290 - [kde] LibreOffice has black on dark-grey tooltip-texts + +* Fri Nov 11 2011 Caolán McNamara - 3.4.4.2-3 +- Related: fdo#42534 0001-Related-i58612-don-t-crash-anyway.patch +- Resolves: fdo#42749 KDE oxygen theme and scrollbars + +* Thu Nov 10 2011 Stephan Bergmann - 3.4.4.2-2 +- Patch to backport reading AES-encrypted ODF 1.2 documents + +* Thu Nov 03 2011 David Tardon - 3.4.4.2-1 +- 3.4.4 rc2 + +* Fri Oct 28 2011 Rex Dieter - 1:3.4.4.1-4 +- rebuild(poppler) + +* Thu Oct 27 2011 Caolán McNamara - 3.4.4.1-3 +- Resolves: rhbz#665800 missing glyph symbol shown when toggling bold/italic + for Sinhala text + +* Thu Oct 27 2011 Caolán McNamara - 3.4.4.1-2 +- possible fix for java 1.7.0 detection + + +* Wed Oct 26 2011 David Tardon - 3.4.4.1-1 +- 3.4.4 rc1 + +* Tue Oct 25 2011 Caolán McNamara - 3.4.3.2-16 +- allow building with gcj + +* Fri Oct 21 2011 Caolán McNamara - 3.4.3.2-15 +- Resolves: rhbz#747356 let Qt call XInitThreads +- fix .sdw import + +* Wed Oct 19 2011 Caolán McNamara - 3.4.3.2-14 +- Related: rhbz#743750 addXineramaScreenUnique issue + +* Fri Oct 07 2011 Stephan Bergmann - 3.4.3.2-13 +- Patches to build with GCC 6.4.1 + +* Fri Sep 30 2011 Marek Kasik - 3.4.3.2-12 +- Rebuild (poppler-0.18.0) + +* Tue Sep 20 2011 Caolán McNamara - 3.4.3.2-11 +- Resolves: rhbz#738133 fix bn discard string +- Resolves: fdo#35513 avoid crash while processing incorrect print range + +* Mon Sep 19 2011 Marek Kasik - 3.4.3.2-10 +- Rebuild (poppler-0.17.3) + +* Thu Sep 15 2011 Caolán McNamara - 3.4.3.2-9 +- Resolves: rhbz#738255 avoid crash on sc inputhdl + +* Tue Sep 13 2011 Caolán McNamara - 3.4.3.2-8 +- Resolves: rhbz#274631 remove NoDisplay from -math.desktop + +* Thu Sep 08 2011 David Tardon - 3.4.3.2-7 +- rebuild for new icu + +* Tue Sep 06 2011 David Tardon - 3.4.3.2-6 +- Resolves: rhbz#734976 libreoffice-langpack-*-* not pulled in by + yum install libreoffice + +* Fri Sep 02 2011 Caolán McNamara - 3.4.3.2-5 +- Resolves: rhbz#735182 be able to rebuild against poppler 0.17.3 + +* Tue Aug 30 2011 David Tardon - 3.4.3.2-4 +- Resolves: rhbz#734432 openoffice.org symlink broken + +* Mon Aug 29 2011 David Tardon - 3.4.3.2-3 +- add Latvian langpack + +* Fri Aug 26 2011 Caolán McNamara - 3.4.3.2-2 +- Resolves: rhbz#733564 graphite2 now packaged into fedora +- Related: fdo#37195 migrationoo3 not registered + +* Thu Aug 25 2011 David Tardon - 3.4.3.2-1 +- 3.4.3 rc2 + +* Mon Aug 22 2011 David Tardon - 3.4.3.1-2 +- add gdb pretty printers + +* Tue Aug 16 2011 David Tardon - 3.4.3.1-1 +- 3.4.3 rc1 +- drop integrated 0001-Resolves-rhbz-725144-wrong-csh-syntax.patch + +* Fri Aug 12 2011 Caolán McNamara - 3.4.2.3-3 +- Related: rhbz#730225 avoid segv in ld + +* Tue Aug 02 2011 Caolán McNamara - 3.4.2.3-2 +- Resolves: rhbz#693265 fix crash from unhandled exception + +* Fri Jul 29 2011 David Tardon - 3.4.2.3-1 +- 3.4.2 rc3 + +* Mon Jul 25 2011 Caolán McNamara - 3.4.2.2-2 +- Resolves: rhbz#725144 wrong csh syntax + +* Wed Jul 20 2011 David Tardon - 3.4.2.2-1 +- 3.4.2 rc2 +- fix breakage in KDE4 plugin + +* Tue Jul 19 2011 Caolán McNamara - 3.4.2.1-3 +- Resolves: rhbz#715549 use fontconfig's detected format + +* Mon Jul 18 2011 Caolán McNamara - 3.4.2.1-2 +- Rebuild (poppler-0.17.0), add libreoffice-poppler-0.17.0.patch + seeing as the API changed for some reason or other + +* Wed Jul 13 2011 David Tardon - 3.4.2.1-1 +- 3.4.2 rc1 +- drop 0001-bad-merge-fix-to-enable-extensions-to-build-again.patch +- drop 0001-fix-regression-in-SvGlobalName-operator.patch + +* Tue Jul 12 2011 Caolán McNamara - 3.4.1.3-3 +- fix regression in SvGlobalName operator + +* Tue Jul 05 2011 Caolán McNamara - 3.4.1.3-2 +- Related: rhbz#718976 crash in SwTxtSizeInfo::GetMultiCreator + +* Fri Jul 01 2011 David Tardon - 3.4.1.3-1 +- 3.4.1 rc3 + +* Thu Jun 23 2011 Caolán McNamara - 3.4.1.2-1 +- 3.4.1 rc2 +- drop integrated 0001-correctly-build-GTK-systray-icon.patch + +* Tue Jun 21 2011 David Tardon - 3.4.1.1-5 +- Resolves: rhbz#714781 add Persian langpack +- Resolves: rhbz#667082 do not crash importing section containing just + an empty paragraph + +* Mon Jun 20 2011 Caolán McNamara - 3.4.1.1-4 +- Related: rhbz#711087 band aid for crash in sc undo +- Resolves: rhbz#714338 add a metapackage to install standard bits + +* Fri Jun 17 2011 Caolán McNamara - 3.4.1.1-3 +- Related: rhbz#702833 addEventListener without removeEventListener + +* Thu Jun 16 2011 Caolán McNamara - 3.4.1.1-2 +- Resolves: rhbz#713154 pdf export dialog too tall to fit + +* Wed Jun 15 2011 David Tardon - 3.4.1.1-1 +- 3.4.1 RC1 +- drop integrated 0001-Resolves-rhbz-707317-avoid-crash-in-getRowSpan.patch +- drop integrated 0001-Resolves-rhbz-710004-band-aid-for-immediate-crash-in.patch +- drop integrated 0001-Resolves-rhbz-710556-don-t-crash-on-missing-graphics.patch +- drop integrated 0001-Resolves-rhbz-699909-crash-in-export-of-.doc-in-lcl_.patch +- drop integrated 0001-fdo-37584-Make-a-real-copy-of-the-text-where-to-coun.patch +- drop integrated 0001-Resolves-fdo-37668-bitwise-operations-on-signed-numb.patch + +* Thu Jun 09 2011 Caolán McNamara - 3.4.0.2-5 +- Resolves: rhbz#699909 crash in export of .doc in lcl_getField +- Resolves: fdo#37584 Make a real copy of the text +- Resolves: rhbz#709503/fdo#37668 bitwise operations on signed values + +* Tue Jun 07 2011 Caolán McNamara - 3.4.0.2-4 +- Resolves: rhbz#710556 't crash on missing graphics .pptx export +- Resolves: rhbz#652604 better survive exceptions in autorecovery + +* Thu Jun 02 2011 Caolán McNamara - 3.4.0.2-3 +- Resolves: rhbz#710004 band aid for crash + +* Mon May 30 2011 Caolán McNamara - 3.4.0.2-2 +- Resolves: rhbz#707317 avoid crash in getRowSpan + +* Fri May 27 2011 David Tardon - 3.4.0.2-1 +- 3.4.0 RC2 +- drop integrated 0001-fix-build-with-system-bsh.patch + +* Wed May 25 2011 Caolán McNamara - 3.4.0.1-3 +- rebuild for new hunspell + +* Tue May 24 2011 David Tardon - 3.4.0.1-2 +- Resolves: rhbz#706110 oosplash.bin segfault on every login + +* Fri May 20 2011 David Tardon - 3.4.0.1-1 +- 3.4 RC1 +- Resolves: rhbz#702635 set correct page number when exporting selected + pages + +* Sat May 07 2011 Christopher Aillon - 3.3.99.4-2 +- Update icon cache scriptlet + +* Sat May 07 2011 David Tardon 3.3.99.4-1 +- 3.4 beta4 +- drop integrated 0001-Removed-duplicate-code-block-mis-merge-prolly.patch +- drop integrated 7de0b88ce2dd932915894385b54be1897d5ee053.zip + +* Mon Apr 18 2011 Caolán McNamara 3.3.99.1-2 +- Resolves: rhbz#695509 crash in RefreshDocumentLB +- bubble down configure test findings on visibility + +* Mon Apr 11 2011 Caolán McNamara 3.3.99.1-1 +- 3.4 beta1 +- drop openoffice.org-1.9.123.ooo53397.prelinkoptimize.desktop.patch + in favour of ooosplash +- drop openoffice.org-2.2.0.gccXXXXX.solenv.javaregistration.patch + because components are passively registered now +- drop integrated openoffice.org-3.1.0.ooo102061.sc.cellanchoring.patch +- drop integrated turn-script-providers-into-extensions.patch +- drop integrated 0001-tidy-this-up-and-don-t-bail-out-on-mislength-records.patch +- drop integrated 0001-free-ctxt-after-taking-lastError-details.patch +- drop integrated 0001-Removed-suspect-hack.-Cursor-on-post-it-now-scrolls-.patch +- drop integrated libreoffice-gcc4.6.0.patch +- drop integrated 0001-fexceptions-fexceptions.patch +- drop integrated 0001-Related-rhbz-672872-cancel-gtk-file-dialog-on-deskto.patch +- drop vbahelper.visibility.patch +- drop integrated 0001-Resolves-fdo-33509-i62414-out-by-one-breaks-CTL-spel.patch +- drop integrated 0001-Resolves-rhbz-670020-crash-in-slidesorting.patch +- drop integrated 0001-Resolves-rhbz-676539-handle-missing-pWindows-from-xW.patch +- drop integrated 0001-Resolves-fdo-33750-i94623-use-optimal-border-width-w.patch +- drop integrated 0001-rhbz-649310-don-t-crash-deregistering-diff.-platform.patch +- drop integrated 0001-Resolves-rhbz-674330-dereference-of-NULL-mpBase.patch +- drop integrated 0001-rhbz-678284-Get-correct-current-position-when-shift-page-up-and-.patch +- drop integrated 0001-Resolves-rhbz-681159-bandaid-for-crash.patch +- drop integrated 0001-Resolves-rhbz-672818-bandaid-for-crash-in-SwTxtNode-.patch +- drop integrated 0001-install-high-resolution-icons.patch +- drop integrated 0001-Resolves-rhbz-682716-pa-IN-isn-t-handled-by-fontconf.patch +- drop integrated 0001-Related-rhbz-684477-make-sure-this-is-thread-safe.patch +- drop integrated 0001-Resolves-rhbz-682621-better-resizing-of-overtall-gly.patch +- drop integrated 0001-Resolves-rhbz-684620-crash-with-NULL-pTableBox.patch +- drop integrated libreoffice-fdo33947.sd.print.crash.patch +- drop integrated 0001-add-cairo_ft_font_face_create_for_pattern-wrapper.patch +- drop integrated 0001-Related-rhbz-680460-reorganize-this-to-make-it-inher.patch +- drop integrated 0001-Related-rhbz-680460-don-t-bother-with-an-interim-Fon.patch +- drop integrated 0001-Resolves-rhbz-680460-honour-lcdfilter-subpixeling-et.patch +- drop integrated 0001-Cut-Gordian-Knot-of-who-owns-the-font-options.patch +- drop integrated 0001-beware-of-invalidated-iterator.patch +- drop integrated rhbz680766.fix-mdds-crash.patch +- drop integrated 0001-Resolves-rhbz-684580-X-and-strike-through-escapes-ra.patch +- drop integrated 0001-set-mime-types-on-flat-xml-filters.patch +- drop integrated 0001-add-flat-xml-types-to-.desktop-files-etc.patch +- drop integrated libreoffice-fdo31271.icu.patch + +* Tue Apr 05 2011 Caolán McNamara 3.3.2.2-6 +- Resolves: rhbz#655686 get order of shutdown correct + +* Wed Mar 30 2011 Caolán McNamara 3.3.2.2-5 +- Add application/vnd.oasis.opendocument.text-flat-xml, etc. to + .desktop files for mcepl + +* Tue Mar 29 2011 Caolán McNamara 3.3.2.2-4 +- Resolves: rhbz#684580 improve X and / strike-through + +* Thu Mar 24 2011 David Tardon 3.3.2.2-3 +- Resolves: rhbz#680766 crash in mdds + +* Wed Mar 23 2011 David Tardon 3.3.2.2-2 +- Related: rhbz#689268 versioned deps need to contain epoch + +* Tue Mar 22 2011 Caolán McNamara 3.3.2.2-1 +- latest version +- drop integrated 0001-Resolves-fdo-33701-ensure-node-outlives-path.patch +- drop integrated 0001-valgrind-don-t-leave-an-evil-thread-running-after-ma.patch + +* Tue Mar 22 2011 Caolán McNamara 3.3.1.2-12 +- Fix fontoptions cache +- avoid crash in calc on changing size of rows (dtardon) + +* Mon Mar 21 2011 Caolán McNamara 3.3.1.2-11 +- Resolves: rhbz#689268 autocorrs from OOo F14 not upgraded + +* Wed Mar 16 2011 Caolán McNamara 3.3.1.2-10 +- Resolves: rhbz#680460 honour lcdfilter and subpixeling + +* Tue Mar 15 2011 Caolán McNamara 3.3.1.2-9 +- Resolves: fdo#33947 sd print crash + +* Mon Mar 14 2011 Caolán McNamara 3.3.1.2-8 +- Related: rhbz#684477 make sure this is thread safe +- Resolves: rhbz#684620 crash with NULL pTableBox + +* Sun Mar 13 2011 Marek Kasik 3.3.1.2-7 +- Rebuild (poppler-0.16.3) + +* Wed Mar 09 2011 Caolán McNamara 3.3.1.2-6 +- Resolves: rhbz#682621 better resizing of overtall glyphsubs + +* Tue Mar 08 2011 Caolán McNamara 3.3.1.2-5 +- Resolves: rhbz#682716 pa-IN isn't handled well by fontconfig + +* Tue Mar 08 2011 David Tardon 3.3.1.2-4 +- install 128x128 px icons + +* Wed Mar 02 2011 Caolán McNamara 3.3.1.2-3 +- Resolves: rhbz#681159 crash in writer +- Resolves: rhbz#672818 crash in writer +- Resolves: fdo#33701 ensure node outlives path +- Resolves: rhbz#681738 crash on writing config post-main + +* Thu Feb 17 2011 Caolán McNamara 3.3.1.2-2 +- Resolves: rhbz#678284 Calc crashes during cell select with keys + (dtardon) + +* Thu Feb 17 2011 Caolán McNamara 3.3.1.2-1 +- RC2 + +* Wed Feb 16 2011 Caolán McNamara 3.3.1.1-2 +- Resolves: rhbz#674330 dereference of NULL mpBase + +* Fri Feb 11 2011 Caolán McNamara 3.3.1.1-1 +- 3.3.1 rc1 +- drop integrated 0001-don-t-pushback-and-process-a-corrupt-extension.patch +- drop integrated libreoffice-fdo32561.comphelper.patch +- drop integrated 0001-Related-rhbz-610103-more-woes-on-rpm-upgrade-vs-rpm-.patch +- drop integrated 0001-Resolves-rhbz-673819-crash-on-changing-position-of-d.patch +- drop integrated 0001-rhbz-666440-don-t-pushback-and-process-a-corrupt-extension.patch + +* Thu Feb 10 2011 Caolán McNamara 3.3.0.4-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild +- Related: rhbz#610103 make this even more robust +- Related: rhbz#672872 cancel gtk file dialog on terminate +- Resolves: fdo#33509/ooo#62414 fix CTL spelling popup +- Resolves: rhbz#673819 crash on changing position of header/footer object +- Resolves: rhbz#670020 crash in slidesorting +- Resolves: rhbz#676539 handle missing pWindows from xWindows +- Resolves: rhbz#649310 don't crash deregistering diff. platform ext. + (dtardon) +- Resolves: rhbz#666440 don't pushback and process a corrupt extension + +* Mon Jan 24 2011 Caolán McNamara 3.3.0.4-2 +- Resolves: rhbz#671540 fix lonely ) + +* Thu Jan 20 2011 Caolán McNamara 3.3.0.4-1 +- next release candidate +- drop integrated 0001-fix-presenter-screens-description.xml-build.patch + +* Tue Jan 18 2011 Caolán McNamara 3.3.0.3-2 +- backport fix to get presenter screen working +- make handling busted extensions more robust + +* Wed Jan 12 2011 Caolán McNamara 3.3.0.3-1 +- latest version +- drop integrated 0001-Resoves-rhbz-663857-font-color-missing-C-FAQ-10.3-do.patch +- drop integrated 0001-Avoid-double-paste-when-pasting-text-into-cell-comme.patch +- drop integrated 0001-Resolves-rhbz-660342-Undo-Redo-crash-with-postits.patch +- drop integrated 0001-Resolves-rhbz-666088-clean-up-search-cache-singleton.patch + +* Thu Jan 06 2011 Caolán McNamara 3.3.0.2-5 +- Resolves: rhbz#666088 don't crash on clean up of search cache + +* Wed Jan 05 2011 Lukas Tinkl 3.3.0.2-4 +- create a KDE integration subpackage + +* Mon Jan 03 2011 David Tardon 3.3.0.2-3 +- rebuild with new poppler + +* Wed Dec 22 2010 Caolán McNamara 3.3.0.2-2 +- Resolves: rhbz#663724 fdo32572-sc-dont-double-paste.patch +- Resolves: rhbz#660342 Undo/Redo crash with postits + +* Tue Dec 21 2010 Caolán McNamara 3.3.0.2-1 +- latest version + +* Sat Dec 18 2010 Caolán McNamara 3.3.0.1-4 +- Resolves: rhbz#663857 font color missing in transitions + +* Wed Dec 15 2010 Rex Dieter - 3.3.0.1-3 +- rebuild (poppler) + +* Wed Dec 15 2010 Caolán McNamara 3.3.0.1-2 +- Fix up some doc imports + +* Sun Dec 05 2010 Caolán McNamara 3.3.0.1-1 +- release candidate 1 +- drop integrated qstart.dont-forceenabled-on-post-reg-restart.patch +- drop integrated exit.quickstarter.when.deleted.patch +- drop integrated 0001-destroydesktop.in.timeout.patch +- drop integrated openoffice.org-3.3.0.rhbz657541.join-paragraphs.patch + +* Sat Nov 27 2010 Caolán McNamara 3.2.99.3-2 +- Resolves: rhbz#610103 exit quickstarter when libs deleted +- Resolves: rhbz#652695 release desktop in timeout +- Resolves: rhbz#657541 don't crash during processing of auto. styles + when joining paragraphs (dtardon) + +* Thu Nov 18 2010 Caolán McNamara 3.2.99.2-5 +- Resolves: rhbz#649210 add Sinhalese langpack + +* Sat Oct 30 2010 Caolán McNamara 3.2.99.2-4 +- langpack macro hard-coded version number + +* Fri Oct 22 2010 Caolán McNamara 3.2.99.2-3 +- Resolves: xdg632229 gnomeshell app tracking + +* Tue Oct 12 2010 David Tardon 3.2.99.2-2 +- use macros to define auto-correction and language pack subpackages + +* Mon Oct 11 2010 Caolán McNamara 3.2.99.2-1 +- next LibreOffice milestone +- drop integrated openoffice.org-2.3.0.ooo76649.httpencoding.patch +- drop integrated workspace.dtardon03.patch +- drop integrated openoffice.org-3.1.0.ooo61927.sw.ww6.unicodefontencoding.patch +- drop integrated workspace.impress195.patch +- drop integrated workspace.srb1.patch +- drop integrated openoffice.org-3.2.0.ooo106502.svx.fixspelltimer.patch +- drop integrated openoffice.org-3.3.0.ooo108246.svx.hide-sql-group-when-inactive.patch +- drop integrated openoffice.org-3.2.0.ooo95369.sw.sortedobjs.patch +- drop integrated openoffice.org-3.2.0.ooo110142.svx.safercolornames.patch +- drop integrated openoffice.org-3.3.0.ooo111758.sd.xerror.patch +- drop integrated openoffice.org-3.2.0.ooo111741.extras.malformed-xml-file.patch +- drop integrated openoffice.org-3.3.0.ooo112059.sw.avoid-null-ptr-deref.patch +- drop integrated openoffice.org-3.3.0.ooo100686.wizards.types.not.mediatypes.patch +- drop integrated workspace.vcl113.patch +- drop integrated openoffice.org-3.3.0.ooo112384.sw.export.doc.styledoesntexist.patch +- drop integrated workspace.cmcfixes77.patch +- drop integrated workspace.vcl114.patch +- drop integrated openoffice.org-3.3.0.ooo106591.sal.tradcopy.patch +- drop integrated workspace.vcl115.patch +- drop integrated workspace.cmcfixes78.patch +- drop integrated openoffice.org-3.3.0.ooo114012.sd.bada11ychain.patch +- drop integrated workspace.cmcfixes79.patch +- drop integrated openoffice.org-3.3.0.ooo114703.vcl.betterlocalize.font.patch +- drop integrated openoffice.org-3.3.0.rh638185.editeng.cjkctlhtmlsizes.patch +- drop integrated openoffice.org-3.3.0.rh637738.libgcrypt.addmutex.patch +- drop integrated openoffice.org-3.2.0.rh632236.writerfilter.cleanup-cell-props.patch +- drop workspace.gtk3.patch + +* Wed Oct 06 2010 Caolán McNamara 3.2.99.1-2 +- Related: rhbz#639945 pull in review changes + + redland build-fix + + replace awk script + + validate .destop files + +* Wed Sep 29 2010 Caolán McNamara 3.2.99.1-1 +- initial import of the leviathan +