diff options
author | CoprDistGit <infra@openeuler.org> | 2024-08-06 02:57:35 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2024-08-06 02:57:35 +0000 |
commit | 9ff4174f91184dbd5ad42ebe21d0e150d888c290 (patch) | |
tree | 165b5cd8d551e6bab38d7b1c0137d80c207a10d3 | |
parent | 28930047a5d7ce8bffe52612a6e507c6f806f080 (diff) |
automatic import of libreofficeopeneuler24.03_LTS
42 files changed, 10496 insertions, 0 deletions
@@ -0,0 +1,8 @@ +/17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip +/185d60944ea767075d27247c3162b3bc-unowinreg.dll +/a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip +/dtoa-20180411.tgz +/f543e6e2d7275557a839a164941c0a86e5f2c3f2a0042bfc434c88c6dde9e140-opens___.ttf +/libreoffice-7.1.8.1.tar.xz +/libreoffice-help-7.1.8.1.tar.xz +/libreoffice-translations-7.1.8.1.tar.xz diff --git a/0001-CVE-2021-25636.patch b/0001-CVE-2021-25636.patch new file mode 100644 index 0000000..9ec1f6a --- /dev/null +++ b/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?= <caolanm@redhat.com> +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 <vmiklos@collabora.com> +(cherry picked from commit be446d81e07b5499152efeca6ca23034e51ea5ff) +Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127178 +Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com> +(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 <rtl/uuid.h> + #include <xmlsec-wrapper.h> + ++#include <xmlsec/mscng/x509.h> ++ + #include <com/sun/star/xml/crypto/SecurityOperationStatus.hpp> + #include <com/sun/star/xml/crypto/XXMLSignature.hpp> + +@@ -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 <sal/config.h> + #include <xmlsec-wrapper.h> + ++#include <xmlsec/nss/x509.h> ++ + #include <xmlelementwrapper_xmlsecimpl.hxx> + #include <xmlsec/xmlstreamio.hxx> + #include <xmlsec/errorcallback.hxx> +@@ -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/0001-CVE-2022-26305-compare-authors-using-Thumbprint.patch b/0001-CVE-2022-26305-compare-authors-using-Thumbprint.patch new file mode 100644 index 0000000..5656d0d --- /dev/null +++ b/0001-CVE-2022-26305-compare-authors-using-Thumbprint.patch @@ -0,0 +1,63 @@ +From 77f30ada1156ca1e1357776fea8e9dc113f6898d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com> +Date: Thu, 3 Mar 2022 14:22:37 +0000 +Subject: [PATCH 1/5] CVE-2022-26305 compare authors using Thumbprint + +Change-Id: I338f58eb07cbf0a3d13a7dafdaddac09252a8546 +Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130929 +Tested-by: Jenkins +Reviewed-by: Miklos Vajna <vmiklos@collabora.com> +(cherry picked from commit 65442205b5b274ad309308162f150f8d41648f72) +Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130866 +Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> +(cherry picked from commit a7aaa78acea4c1d51283c2fce54ff9f5339026f8) +--- + .../component/documentdigitalsignatures.cxx | 23 +++++++++++++++---- + 1 file changed, 19 insertions(+), 4 deletions(-) + +diff --git a/xmlsecurity/source/component/documentdigitalsignatures.cxx b/xmlsecurity/source/component/documentdigitalsignatures.cxx +index b9066ea92cac..5a21c8421bec 100644 +--- a/xmlsecurity/source/component/documentdigitalsignatures.cxx ++++ b/xmlsecurity/source/component/documentdigitalsignatures.cxx +@@ -19,9 +19,10 @@ + + #include <resourcemanager.hxx> + +-#include <digitalsignaturesdialog.hxx> ++#include <certificate.hxx> + #include <certificatechooser.hxx> + #include <certificateviewer.hxx> ++#include <digitalsignaturesdialog.hxx> + #include <macrosecurity.hxx> + #include <biginteger.hxx> + #include <strings.hrc> +@@ -666,9 +667,23 @@ sal_Bool DocumentDigitalSignatures::isAuthorTrusted( + Sequence< SvtSecurityOptions::Certificate > aTrustedAuthors = SvtSecurityOptions().GetTrustedAuthors(); + + return std::any_of(aTrustedAuthors.begin(), aTrustedAuthors.end(), +- [&xAuthor, &sSerialNum](const SvtSecurityOptions::Certificate& rAuthor) { +- return xmlsecurity::EqualDistinguishedNames(rAuthor[0], xAuthor->getIssuerName()) +- && ( rAuthor[1] == sSerialNum ); ++ [this, &xAuthor, &sSerialNum](const SvtSecurityOptions::Certificate& rAuthor) { ++ if (!xmlsecurity::EqualDistinguishedNames(rAuthor[0], xAuthor->getIssuerName())) ++ return false; ++ if (rAuthor[1] != sSerialNum) ++ return false; ++ ++ DocumentSignatureManager aSignatureManager(mxCtx, {}); ++ if (!aSignatureManager.init()) ++ return false; ++ uno::Reference<css::security::XCertificate> xCert = aSignatureManager.getSecurityEnvironment()->createCertificateFromAscii(rAuthor[2]); ++ ++ auto pAuthor = dynamic_cast<xmlsecurity::Certificate*>(xAuthor.get()); ++ auto pCert = dynamic_cast<xmlsecurity::Certificate*>(xCert.get()); ++ if (pAuthor && pCert) ++ return pCert->getSHA256Thumbprint() == pAuthor->getSHA256Thumbprint(); ++ ++ return xCert->getSHA1Thumbprint() == xAuthor->getSHA1Thumbprint(); + }); + } + +-- +2.37.3 + diff --git a/0001-EditTextObjectImpl-copy-ctor-doesn-t-exactly-copy-Ed.patch b/0001-EditTextObjectImpl-copy-ctor-doesn-t-exactly-copy-Ed.patch new file mode 100644 index 0000000..c4b0fff --- /dev/null +++ b/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?= <caolanm@redhat.com> +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 <caolanm@redhat.com> +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<OutlinerParaObject> Outliner::CreateParaObject( sal_Int32 nStart + aParagraphDataVector[nPara-nStartPara] = *GetParagraph(nPara); + } + ++ xText->ClearPortionInfo(); // tdf#147166 the PortionInfo is unwanted here + std::unique_ptr<OutlinerParaObject> pPObj(new OutlinerParaObject(std::move(xText), aParagraphDataVector, bIsEditDoc)); + pPObj->SetOutlinerMode(GetMode()); + +-- +2.35.1 + diff --git a/0001-Get-rid-of-apache-commons-logging.patch b/0001-Get-rid-of-apache-commons-logging.patch new file mode 100644 index 0000000..ca31754 --- /dev/null +++ b/0001-Get-rid-of-apache-commons-logging.patch @@ -0,0 +1,1309 @@ +From 4fd868fdfca690e9b0f159b2beadde5920897ab4 Mon Sep 17 00:00:00 2001 +From: Stephan Bergmann <sbergman@redhat.com> +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 <sbergman@redhat.com> +(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 @@ +- +- <!-- ========== Compiler Defaults ========================================= --> +- +-- <!-- Version of java class files to generate. --> +-- <property name="target.version" value="1.2"/> +-- +-- <!-- Version of java source to accept --> +-- <property name="source.version" value="1.2"/> +-- +- <!-- Should Java compilations set the 'debug' compiler option? --> +- <property name="compile.debug" value="true"/> +- +-@@ -283,6 +277,10 @@ +- classpathref="compile.classpath" +- classname="org.apache.avalon.framework.logger.Logger"/> +- +-+ <available property="servlet-api.present" +-+ classpathref="compile.classpath" +-+ classname="javax.servlet.ServletContextListener"/> +-+ +- <available file="${log4j12.jar}" property="log4j12.present"/> +- <available file="${log4j13.jar}" property="log4j13.present"/> +- <available file="${build.home}/docs" property="maven.generated.docs.present"/> +-@@ -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}"> +- +- <classpath refid="compile.classpath"/> +- +-@@ -373,6 +371,8 @@ +- unless="logkit.present"/> +- <exclude name="org/apache/commons/logging/impl/AvalonLogger.java" +- unless="avalon-framework.present"/> +-+ <exclude name="org/apache/commons/logging/impl/ServletContextCleaner.java" +-+ unless="servlet-api.present"/> +- </javac> +- </target> +- +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 @@ + <h1 style="text-align: center;"><a id="thirdparty" name="thirdparty">Third Party Code Additional Copyright + Notices and License Terms</a></h1> + <h1><a id="a__Libraries" name="a__Libraries">Libraries</a></h1> +- <div class="APACHE_COMMONS"> +- <h2>Apache Commons</h2> +- <p>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:</p> +- <p><a href="#a__Apache_License_version_2_0">Jump to Apache License Version 2.0</a></p> +- </div> + <div class="APR"> + <h2>Apache Portable Runtime (APR)</h2> + <p>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<Integer> parameterIndex = new ArrayList<Integer>(); + } +- 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 + * (<CODE>__getComponentFactory</CODE>) 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<br> + <br> + <ul id="mozToc"> + <!--mozToc h2 1 h3 2--> +- <li><a href="#mozTocId445655">The Apache Software Foundation +- </a> +- <ul> +- <li><a href="#mozTocId662146">Commons Codec +- </a></li> +- </ul> +- </li> +- <li><a href="#mozTocId954021">The Apache Software Foundation +- </a> +- <ul> +- <li><a href="#mozTocId934893">Commons HTTP Client +- </a></li> +- </ul> +- </li> +- <li><a href="#mozTocId478594">The Apache Software Foundation +- </a> +- <ul> +- <li><a href="#mozTocId789223">Commons Lang +- </a></li> +- </ul> +- </li> + <li><a href="#mozTocId877758">The Apache Software Foundation + </a> + <ul> +@@ -51,34 +30,6 @@ Foundation + <hr style="width: 100%; height: 2px;">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:<br> +-<h2><a class="mozTocH2" name="mozTocId445655"></a>The Apache Software +-Foundation<br> +-</h2> +-<h3><a class="mozTocH3" name="mozTocId662146"></a>Commons Codec<br> +-</h3> +-<pre> Apache License<br> Version 2.0, January 2004<br> http://www.apache.org/licenses/<br><br> TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION<br><br> 1. Definitions.<br><br> "License" shall mean the terms and conditions for use, reproduction,<br> and distribution as defined by Sections 1 through 9 of this document.<br><br> "Licensor" shall mean the copyright owner or entity authorized by<br> the copyright owner that is granting the License.<br><br> "Legal Entity" shall mean the union of the acting entity and all<br> other entities that control, are controlled by, or are under common<br> control with that entity. For the purposes of this definition,<br> "control" means (i) the power, direct or indirect, to cause the<br> direction or management of such entity, whether by contract or<br> otherwise, or (ii) ownership of fifty percent (50%) or more of the<br> outstanding shares, or (iii) beneficial ownership of such entity.<br><br> "You" (or "Your") shall mean an individual or Legal Entity<br> exercising permissions granted by this License.<br><br> "Source" form shall mean the preferred form for making modifications,<br> including but not limited to software source code, documentation<br> source, and configuration files.<br><br> "Object" form shall mean any form resulting from mechanical<br> transformation or translation of a Source form, including but<br> not limited to compiled object code, generated documentation,<br> and conversions to other media types.<br><br> "Work" shall mean the work of authorship, whether in Source or<br> Object form, made available under the License, as indicated by a<br> copyright notice that is included in or attached to the work<br> (an example is provided in the Appendix below).<br><br> "Derivative Works" shall mean any work, whether in Source or Object<br> form, that is based on (or derived from) the Work and for which the<br> editorial revisions, annotations, elaborations, or other modifications<br> represent, as a whole, an original work of authorship. For the purposes<br> of this License, Derivative Works shall not include works that remain<br> separable from, or merely link (or bind by name) to the interfaces of,<br> the Work and Derivative Works thereof.<br><br> "Contribution" shall mean any work of authorship, including<br> the original version of the Work and any modifications or additions<br> to that Work or Derivative Works thereof, that is intentionally<br> submitted to Licensor for inclusion in the Work by the copyright owner<br> or by an individual or Legal Entity authorized to submit on behalf of<br> the copyright owner. For the purposes of this definition, "submitted"<br> means any form of electronic, verbal, or written communication sent<br> to the Licensor or its representatives, including but not limited to<br> communication on electronic mailing lists, source code control systems,<br> and issue tracking systems that are managed by, or on behalf of, the<br> Licensor for the purpose of discussing and improving the Work, but<br> excluding communication that is conspicuously marked or otherwise<br> designated in writing by the copyright owner as "Not a Contribution."<br><br> "Contributor" shall mean Licensor and any individual or Legal Entity<br> on behalf of whom a Contribution has been received by Licensor and<br> subsequently incorporated within the Work.<br><br> 2. Grant of Copyright License. Subject to the terms and conditions of<br> this License, each Contributor hereby grants to You a perpetual,<br> worldwide, non-exclusive, no-charge, royalty-free, irrevocable<br> copyright license to reproduce, prepare Derivative Works of,<br> publicly display, publicly perform, sublicense, and distribute the<br> Work and such Derivative Works in Source or Object form.<br><br> 3. Grant of Patent License. Subject to the terms and conditions of<br> this License, each Contributor hereby grants to You a perpetual,<br> worldwide, non-exclusive, no-charge, royalty-free, irrevocable<br> (except as stated in this section) patent license to make, have made,<br> use, offer to sell, sell, import, and otherwise transfer the Work,<br> where such license applies only to those patent claims licensable<br> by such Contributor that are necessarily infringed by their<br> Contribution(s) alone or by combination of their Contribution(s)<br> with the Work to which such Contribution(s) was submitted. If You<br> institute patent litigation against any entity (including a<br> cross-claim or counterclaim in a lawsuit) alleging that the Work<br> or a Contribution incorporated within the Work constitutes direct<br> or contributory patent infringement, then any patent licenses<br> granted to You under this License for that Work shall terminate<br> as of the date such litigation is filed.<br><br> 4. Redistribution. You may reproduce and distribute copies of the<br> Work or Derivative Works thereof in any medium, with or without<br> modifications, and in Source or Object form, provided that You<br> meet the following conditions:<br><br> (a) You must give any other recipients of the Work or<br> Derivative Works a copy of this License; and<br><br> (b) You must cause any modified files to carry prominent notices<br> stating that You changed the files; and<br><br> (c) You must retain, in the Source form of any Derivative Works<br> that You distribute, all copyright, patent, trademark, and<br> attribution notices from the Source form of the Work,<br> excluding those notices that do not pertain to any part of<br> the Derivative Works; and<br><br> (d) If the Work includes a "NOTICE" text file as part of its<br> distribution, then any Derivative Works that You distribute must<br> include a readable copy of the attribution notices contained<br> within such NOTICE file, excluding those notices that do not<br> pertain to any part of the Derivative Works, in at least one<br> of the following places: within a NOTICE text file distributed<br> as part of the Derivative Works; within the Source form or<br> documentation, if provided along with the Derivative Works; or,<br> within a display generated by the Derivative Works, if and<br> wherever such third-party notices normally appear. The contents<br> of the NOTICE file are for informational purposes only and<br> do not modify the License. You may add Your own attribution<br> notices within Derivative Works that You distribute, alongside<br> or as an addendum to the NOTICE text from the Work, provided<br> that such additional attribution notices cannot be construed<br> as modifying the License.<br><br> You may add Your own copyright statement to Your modifications and<br> may provide additional or different license terms and conditions<br> for use, reproduction, or distribution of Your modifications, or<br> for any such Derivative Works as a whole, provided Your use,<br> reproduction, and distribution of the Work otherwise complies with<br> the conditions stated in this License.<br><br> 5. Submission of Contributions. Unless You explicitly state otherwise,<br> any Contribution intentionally submitted for inclusion in the Work<br> by You to the Licensor shall be under the terms and conditions of<br> this License, without any additional terms or conditions.<br> Notwithstanding the above, nothing herein shall supersede or modify<br> the terms of any separate license agreement you may have executed<br> with Licensor regarding such Contributions.<br><br> 6. Trademarks. This License does not grant permission to use the trade<br> names, trademarks, service marks, or product names of the Licensor,<br> except as required for reasonable and customary use in describing the<br> origin of the Work and reproducing the content of the NOTICE file.<br><br> 7. Disclaimer of Warranty. Unless required by applicable law or<br> agreed to in writing, Licensor provides the Work (and each<br> Contributor provides its Contributions) on an "AS IS" BASIS,<br> WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or<br> implied, including, without limitation, any warranties or conditions<br> of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A<br> PARTICULAR PURPOSE. You are solely responsible for determining the<br> appropriateness of using or redistributing the Work and assume any<br> risks associated with Your exercise of permissions under this License.<br><br> 8. Limitation of Liability. In no event and under no legal theory,<br> whether in tort (including negligence), contract, or otherwise,<br> unless required by applicable law (such as deliberate and grossly<br> negligent acts) or agreed to in writing, shall any Contributor be<br> liable to You for damages, including any direct, indirect, special,<br> incidental, or consequential damages of any character arising as a<br> result of this License or out of the use or inability to use the<br> Work (including but not limited to damages for loss of goodwill,<br> work stoppage, computer failure or malfunction, or any and all<br> other commercial damages or losses), even if such Contributor<br> has been advised of the possibility of such damages.<br><br> 9. Accepting Warranty or Additional Liability. While redistributing<br> the Work or Derivative Works thereof, You may choose to offer,<br> and charge a fee for, acceptance of support, warranty, indemnity,<br> or other liability obligations and/or rights consistent with this<br> License. However, in accepting such obligations, You may act only<br> on Your own behalf and on Your sole responsibility, not on behalf<br> of any other Contributor, and only if You agree to indemnify,<br> defend, and hold each Contributor harmless for any liability<br> incurred by, or claims asserted against, such Contributor by reason<br> of your accepting any such warranty or additional liability.<br><br> END OF TERMS AND CONDITIONS<br><br> APPENDIX: How to apply the Apache License to your work.<br><br> To apply the Apache License to your work, attach the following<br> boilerplate notice, with the fields enclosed by brackets "[]"<br> replaced with your own identifying information. (Don't include<br> the brackets!) The text should be enclosed in the appropriate<br> comment syntax for the file format. We also recommend that a<br> file or class name and description of purpose be included on the<br> same "printed page" as the copyright notice for easier<br> identification within third-party archives.<br><br> Copyright [yyyy] [name of copyright owner]<br><br> Licensed under the Apache License, Version 2.0 (the "License");<br> you may not use this file except in compliance with the License.<br> You may obtain a copy of the License at<br><br> http://www.apache.org/licenses/LICENSE-2.0<br><br> Unless required by applicable law or agreed to in writing, software<br> distributed under the License is distributed on an "AS IS" BASIS,<br> WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<br> See the License for the specific language governing permissions and<br> limitations under the License.<br><br></pre> +-<hr style="width: 100%; height: 2px;">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:<br> +-<h2><a class="mozTocH2" name="mozTocId954021"></a>The Apache Software +-Foundation<br> +-</h2> +-<h3><a class="mozTocH3" name="mozTocId934893"></a>Commons HTTP Client<br> +-</h3> +-<pre> Apache License<br> Version 2.0, January 2004<br> http://www.apache.org/licenses/<br><br> TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION<br><br> 1. Definitions.<br><br> "License" shall mean the terms and conditions for use, reproduction,<br> and distribution as defined by Sections 1 through 9 of this document.<br><br> "Licensor" shall mean the copyright owner or entity authorized by<br> the copyright owner that is granting the License.<br><br> "Legal Entity" shall mean the union of the acting entity and all<br> other entities that control, are controlled by, or are under common<br> control with that entity. For the purposes of this definition,<br> "control" means (i) the power, direct or indirect, to cause the<br> direction or management of such entity, whether by contract or<br> otherwise, or (ii) ownership of fifty percent (50%) or more of the<br> outstanding shares, or (iii) beneficial ownership of such entity.<br><br> "You" (or "Your") shall mean an individual or Legal Entity<br> exercising permissions granted by this License.<br><br> "Source" form shall mean the preferred form for making modifications,<br> including but not limited to software source code, documentation<br> source, and configuration files.<br><br> "Object" form shall mean any form resulting from mechanical<br> transformation or translation of a Source form, including but<br> not limited to compiled object code, generated documentation,<br> and conversions to other media types.<br><br> "Work" shall mean the work of authorship, whether in Source or<br> Object form, made available under the License, as indicated by a<br> copyright notice that is included in or attached to the work<br> (an example is provided in the Appendix below).<br><br> "Derivative Works" shall mean any work, whether in Source or Object<br> form, that is based on (or derived from) the Work and for which the<br> editorial revisions, annotations, elaborations, or other modifications<br> represent, as a whole, an original work of authorship. For the purposes<br> of this License, Derivative Works shall not include works that remain<br> separable from, or merely link (or bind by name) to the interfaces of,<br> the Work and Derivative Works thereof.<br><br> "Contribution" shall mean any work of authorship, including<br> the original version of the Work and any modifications or additions<br> to that Work or Derivative Works thereof, that is intentionally<br> submitted to Licensor for inclusion in the Work by the copyright owner<br> or by an individual or Legal Entity authorized to submit on behalf of<br> the copyright owner. For the purposes of this definition, "submitted"<br> means any form of electronic, verbal, or written communication sent<br> to the Licensor or its representatives, including but not limited to<br> communication on electronic mailing lists, source code control systems,<br> and issue tracking systems that are managed by, or on behalf of, the<br> Licensor for the purpose of discussing and improving the Work, but<br> excluding communication that is conspicuously marked or otherwise<br> designated in writing by the copyright owner as "Not a Contribution."<br><br> "Contributor" shall mean Licensor and any individual or Legal Entity<br> on behalf of whom a Contribution has been received by Licensor and<br> subsequently incorporated within the Work.<br><br> 2. Grant of Copyright License. Subject to the terms and conditions of<br> this License, each Contributor hereby grants to You a perpetual,<br> worldwide, non-exclusive, no-charge, royalty-free, irrevocable<br> copyright license to reproduce, prepare Derivative Works of,<br> publicly display, publicly perform, sublicense, and distribute the<br> Work and such Derivative Works in Source or Object form.<br><br> 3. Grant of Patent License. Subject to the terms and conditions of<br> this License, each Contributor hereby grants to You a perpetual,<br> worldwide, non-exclusive, no-charge, royalty-free, irrevocable<br> (except as stated in this section) patent license to make, have made,<br> use, offer to sell, sell, import, and otherwise transfer the Work,<br> where such license applies only to those patent claims licensable<br> by such Contributor that are necessarily infringed by their<br> Contribution(s) alone or by combination of their Contribution(s)<br> with the Work to which such Contribution(s) was submitted. If You<br> institute patent litigation against any entity (including a<br> cross-claim or counterclaim in a lawsuit) alleging that the Work<br> or a Contribution incorporated within the Work constitutes direct<br> or contributory patent infringement, then any patent licenses<br> granted to You under this License for that Work shall terminate<br> as of the date such litigation is filed.<br><br> 4. Redistribution. You may reproduce and distribute copies of the<br> Work or Derivative Works thereof in any medium, with or without<br> modifications, and in Source or Object form, provided that You<br> meet the following conditions:<br><br> (a) You must give any other recipients of the Work or<br> Derivative Works a copy of this License; and<br><br> (b) You must cause any modified files to carry prominent notices<br> stating that You changed the files; and<br><br> (c) You must retain, in the Source form of any Derivative Works<br> that You distribute, all copyright, patent, trademark, and<br> attribution notices from the Source form of the Work,<br> excluding those notices that do not pertain to any part of<br> the Derivative Works; and<br><br> (d) If the Work includes a "NOTICE" text file as part of its<br> distribution, then any Derivative Works that You distribute must<br> include a readable copy of the attribution notices contained<br> within such NOTICE file, excluding those notices that do not<br> pertain to any part of the Derivative Works, in at least one<br> of the following places: within a NOTICE text file distributed<br> as part of the Derivative Works; within the Source form or<br> documentation, if provided along with the Derivative Works; or,<br> within a display generated by the Derivative Works, if and<br> wherever such third-party notices normally appear. The contents<br> of the NOTICE file are for informational purposes only and<br> do not modify the License. You may add Your own attribution<br> notices within Derivative Works that You distribute, alongside<br> or as an addendum to the NOTICE text from the Work, provided<br> that such additional attribution notices cannot be construed<br> as modifying the License.<br><br> You may add Your own copyright statement to Your modifications and<br> may provide additional or different license terms and conditions<br> for use, reproduction, or distribution of Your modifications, or<br> for any such Derivative Works as a whole, provided Your use,<br> reproduction, and distribution of the Work otherwise complies with<br> the conditions stated in this License.<br><br> 5. Submission of Contributions. Unless You explicitly state otherwise,<br> any Contribution intentionally submitted for inclusion in the Work<br> by You to the Licensor shall be under the terms and conditions of<br> this License, without any additional terms or conditions.<br> Notwithstanding the above, nothing herein shall supersede or modify<br> the terms of any separate license agreement you may have executed<br> with Licensor regarding such Contributions.<br><br> 6. Trademarks. This License does not grant permission to use the trade<br> names, trademarks, service marks, or product names of the Licensor,<br> except as required for reasonable and customary use in describing the<br> origin of the Work and reproducing the content of the NOTICE file.<br><br> 7. Disclaimer of Warranty. Unless required by applicable law or<br> agreed to in writing, Licensor provides the Work (and each<br> Contributor provides its Contributions) on an "AS IS" BASIS,<br> WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or<br> implied, including, without limitation, any warranties or conditions<br> of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A<br> PARTICULAR PURPOSE. You are solely responsible for determining the<br> appropriateness of using or redistributing the Work and assume any<br> risks associated with Your exercise of permissions under this License.<br><br> 8. Limitation of Liability. In no event and under no legal theory,<br> whether in tort (including negligence), contract, or otherwise,<br> unless required by applicable law (such as deliberate and grossly<br> negligent acts) or agreed to in writing, shall any Contributor be<br> liable to You for damages, including any direct, indirect, special,<br> incidental, or consequential damages of any character arising as a<br> result of this License or out of the use or inability to use the<br> Work (including but not limited to damages for loss of goodwill,<br> work stoppage, computer failure or malfunction, or any and all<br> other commercial damages or losses), even if such Contributor<br> has been advised of the possibility of such damages.<br><br> 9. Accepting Warranty or Additional Liability. While redistributing<br> the Work or Derivative Works thereof, You may choose to offer,<br> and charge a fee for, acceptance of support, warranty, indemnity,<br> or other liability obligations and/or rights consistent with this<br> License. However, in accepting such obligations, You may act only<br> on Your own behalf and on Your sole responsibility, not on behalf<br> of any other Contributor, and only if You agree to indemnify,<br> defend, and hold each Contributor harmless for any liability<br> incurred by, or claims asserted against, such Contributor by reason<br> of your accepting any such warranty or additional liability.<br><br> END OF TERMS AND CONDITIONS<br><br> APPENDIX: How to apply the Apache License to your work.<br><br> To apply the Apache License to your work, attach the following<br> boilerplate notice, with the fields enclosed by brackets "[]"<br> replaced with your own identifying information. (Don't include<br> the brackets!) The text should be enclosed in the appropriate<br> comment syntax for the file format. We also recommend that a<br> file or class name and description of purpose be included on the<br> same "printed page" as the copyright notice for easier<br> identification within third-party archives.<br><br> Copyright [yyyy] [name of copyright owner]<br><br> Licensed under the Apache License, Version 2.0 (the "License");<br> you may not use this file except in compliance with the License.<br> You may obtain a copy of the License at<br><br> http://www.apache.org/licenses/LICENSE-2.0<br><br> Unless required by applicable law or agreed to in writing, software<br> distributed under the License is distributed on an "AS IS" BASIS,<br> WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<br> See the License for the specific language governing permissions and<br> limitations under the License.<br><br></pre> +-<hr style="width: 100%; height: 2px;">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:<br> +-<h2><a class="mozTocH2" name="mozTocId478594"></a>The Apache Software +-Foundation<br> +-</h2> +-<h3><a class="mozTocH3" name="mozTocId789223"></a>Commons Lang<br> +-</h3> +-<pre> Apache License<br> Version 2.0, January 2004<br> http://www.apache.org/licenses/<br><br> TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION<br><br> 1. Definitions.<br><br> "License" shall mean the terms and conditions for use, reproduction,<br> and distribution as defined by Sections 1 through 9 of this document.<br><br> "Licensor" shall mean the copyright owner or entity authorized by<br> the copyright owner that is granting the License.<br><br> "Legal Entity" shall mean the union of the acting entity and all<br> other entities that control, are controlled by, or are under common<br> control with that entity. For the purposes of this definition,<br> "control" means (i) the power, direct or indirect, to cause the<br> direction or management of such entity, whether by contract or<br> otherwise, or (ii) ownership of fifty percent (50%) or more of the<br> outstanding shares, or (iii) beneficial ownership of such entity.<br><br> "You" (or "Your") shall mean an individual or Legal Entity<br> exercising permissions granted by this License.<br><br> "Source" form shall mean the preferred form for making modifications,<br> including but not limited to software source code, documentation<br> source, and configuration files.<br><br> "Object" form shall mean any form resulting from mechanical<br> transformation or translation of a Source form, including but<br> not limited to compiled object code, generated documentation,<br> and conversions to other media types.<br><br> "Work" shall mean the work of authorship, whether in Source or<br> Object form, made available under the License, as indicated by a<br> copyright notice that is included in or attached to the work<br> (an example is provided in the Appendix below).<br><br> "Derivative Works" shall mean any work, whether in Source or Object<br> form, that is based on (or derived from) the Work and for which the<br> editorial revisions, annotations, elaborations, or other modifications<br> represent, as a whole, an original work of authorship. For the purposes<br> of this License, Derivative Works shall not include works that remain<br> separable from, or merely link (or bind by name) to the interfaces of,<br> the Work and Derivative Works thereof.<br><br> "Contribution" shall mean any work of authorship, including<br> the original version of the Work and any modifications or additions<br> to that Work or Derivative Works thereof, that is intentionally<br> submitted to Licensor for inclusion in the Work by the copyright owner<br> or by an individual or Legal Entity authorized to submit on behalf of<br> the copyright owner. For the purposes of this definition, "submitted"<br> means any form of electronic, verbal, or written communication sent<br> to the Licensor or its representatives, including but not limited to<br> communication on electronic mailing lists, source code control systems,<br> and issue tracking systems that are managed by, or on behalf of, the<br> Licensor for the purpose of discussing and improving the Work, but<br> excluding communication that is conspicuously marked or otherwise<br> designated in writing by the copyright owner as "Not a Contribution."<br><br> "Contributor" shall mean Licensor and any individual or Legal Entity<br> on behalf of whom a Contribution has been received by Licensor and<br> subsequently incorporated within the Work.<br><br> 2. Grant of Copyright License. Subject to the terms and conditions of<br> this License, each Contributor hereby grants to You a perpetual,<br> worldwide, non-exclusive, no-charge, royalty-free, irrevocable<br> copyright license to reproduce, prepare Derivative Works of,<br> publicly display, publicly perform, sublicense, and distribute the<br> Work and such Derivative Works in Source or Object form.<br><br> 3. Grant of Patent License. Subject to the terms and conditions of<br> this License, each Contributor hereby grants to You a perpetual,<br> worldwide, non-exclusive, no-charge, royalty-free, irrevocable<br> (except as stated in this section) patent license to make, have made,<br> use, offer to sell, sell, import, and otherwise transfer the Work,<br> where such license applies only to those patent claims licensable<br> by such Contributor that are necessarily infringed by their<br> Contribution(s) alone or by combination of their Contribution(s)<br> with the Work to which such Contribution(s) was submitted. If You<br> institute patent litigation against any entity (including a<br> cross-claim or counterclaim in a lawsuit) alleging that the Work<br> or a Contribution incorporated within the Work constitutes direct<br> or contributory patent infringement, then any patent licenses<br> granted to You under this License for that Work shall terminate<br> as of the date such litigation is filed.<br><br> 4. Redistribution. You may reproduce and distribute copies of the<br> Work or Derivative Works thereof in any medium, with or without<br> modifications, and in Source or Object form, provided that You<br> meet the following conditions:<br><br> (a) You must give any other recipients of the Work or<br> Derivative Works a copy of this License; and<br><br> (b) You must cause any modified files to carry prominent notices<br> stating that You changed the files; and<br><br> (c) You must retain, in the Source form of any Derivative Works<br> that You distribute, all copyright, patent, trademark, and<br> attribution notices from the Source form of the Work,<br> excluding those notices that do not pertain to any part of<br> the Derivative Works; and<br><br> (d) If the Work includes a "NOTICE" text file as part of its<br> distribution, then any Derivative Works that You distribute must<br> include a readable copy of the attribution notices contained<br> within such NOTICE file, excluding those notices that do not<br> pertain to any part of the Derivative Works, in at least one<br> of the following places: within a NOTICE text file distributed<br> as part of the Derivative Works; within the Source form or<br> documentation, if provided along with the Derivative Works; or,<br> within a display generated by the Derivative Works, if and<br> wherever such third-party notices normally appear. The contents<br> of the NOTICE file are for informational purposes only and<br> do not modify the License. You may add Your own attribution<br> notices within Derivative Works that You distribute, alongside<br> or as an addendum to the NOTICE text from the Work, provided<br> that such additional attribution notices cannot be construed<br> as modifying the License.<br><br> You may add Your own copyright statement to Your modifications and<br> may provide additional or different license terms and conditions<br> for use, reproduction, or distribution of Your modifications, or<br> for any such Derivative Works as a whole, provided Your use,<br> reproduction, and distribution of the Work otherwise complies with<br> the conditions stated in this License.<br><br> 5. Submission of Contributions. Unless You explicitly state otherwise,<br> any Contribution intentionally submitted for inclusion in the Work<br> by You to the Licensor shall be under the terms and conditions of<br> this License, without any additional terms or conditions.<br> Notwithstanding the above, nothing herein shall supersede or modify<br> the terms of any separate license agreement you may have executed<br> with Licensor regarding such Contributions.<br><br> 6. Trademarks. This License does not grant permission to use the trade<br> names, trademarks, service marks, or product names of the Licensor,<br> except as required for reasonable and customary use in describing the<br> origin of the Work and reproducing the content of the NOTICE file.<br><br> 7. Disclaimer of Warranty. Unless required by applicable law or<br> agreed to in writing, Licensor provides the Work (and each<br> Contributor provides its Contributions) on an "AS IS" BASIS,<br> WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or<br> implied, including, without limitation, any warranties or conditions<br> of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A<br> PARTICULAR PURPOSE. You are solely responsible for determining the<br> appropriateness of using or redistributing the Work and assume any<br> risks associated with Your exercise of permissions under this License.<br><br> 8. Limitation of Liability. In no event and under no legal theory,<br> whether in tort (including negligence), contract, or otherwise,<br> unless required by applicable law (such as deliberate and grossly<br> negligent acts) or agreed to in writing, shall any Contributor be<br> liable to You for damages, including any direct, indirect, special,<br> incidental, or consequential damages of any character arising as a<br> result of this License or out of the use or inability to use the<br> Work (including but not limited to damages for loss of goodwill,<br> work stoppage, computer failure or malfunction, or any and all<br> other commercial damages or losses), even if such Contributor<br> has been advised of the possibility of such damages.<br><br> 9. Accepting Warranty or Additional Liability. While redistributing<br> the Work or Derivative Works thereof, You may choose to offer,<br> and charge a fee for, acceptance of support, warranty, indemnity,<br> or other liability obligations and/or rights consistent with this<br> License. However, in accepting such obligations, You may act only<br> on Your own behalf and on Your sole responsibility, not on behalf<br> of any other Contributor, and only if You agree to indemnify,<br> defend, and hold each Contributor harmless for any liability<br> incurred by, or claims asserted against, such Contributor by reason<br> of your accepting any such warranty or additional liability.<br><br> END OF TERMS AND CONDITIONS<br><br> APPENDIX: How to apply the Apache License to your work.<br><br> To apply the Apache License to your work, attach the following<br> boilerplate notice, with the fields enclosed by brackets "[]"<br> replaced with your own identifying information. (Don't include<br> the brackets!) The text should be enclosed in the appropriate<br> comment syntax for the file format. We also recommend that a<br> file or class name and description of purpose be included on the<br> same "printed page" as the copyright notice for easier<br> identification within third-party archives.<br><br> Copyright [yyyy] [name of copyright owner]<br><br> Licensed under the Apache License, Version 2.0 (the "License");<br> you may not use this file except in compliance with the License.<br> You may obtain a copy of the License at<br><br> http://www.apache.org/licenses/LICENSE-2.0<br><br> Unless required by applicable law or agreed to in writing, software<br> distributed under the License is distributed on an "AS IS" BASIS,<br> WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<br> See the License for the specific language governing permissions and<br> limitations under the License.<br><br></pre> +-<hr style="width: 100%; height: 2px;">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:<br> + <h2><a class="mozTocH2" name="mozTocId877758"></a>The Apache Software + Foundation<br> + </h2> +-- +2.30.2 + diff --git a/0001-Replace-inet_ntoa-with-inet_ntop.patch b/0001-Replace-inet_ntoa-with-inet_ntop.patch new file mode 100644 index 0000000..ed8ab7e --- /dev/null +++ b/0001-Replace-inet_ntoa-with-inet_ntop.patch @@ -0,0 +1,162 @@ +From 366e9237399a948d2ef616b758d390bd7d0978a5 Mon Sep 17 00:00:00 2001 +From: Stephan Bergmann <sbergman@redhat.com> +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 <sbergman@redhat.com> +(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 <sbergman@redhat.com> +(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 <noel.grandin@collabora.co.uk> +(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 <cppunit/TestAssert.h> ++#include <cppunit/TestFixture.h> ++#include <cppunit/extensions/HelperMacros.h> ++ ++#include <osl/socket.h> ++#include <rtl/ustring.hxx> ++ ++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/0001-Resolves-rhbz-1432468-disable-opencl-by-default.patch b/0001-Resolves-rhbz-1432468-disable-opencl-by-default.patch new file mode 100644 index 0000000..a974295 --- /dev/null +++ b/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?= <caolanm@redhat.com> +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 @@ + <desc>Determines whether OpenCL can be used, when available, to speed up + some operations.</desc> + </info> +- <value>true</value> ++ <value>false</value> + </prop> + <prop oor:name="OpenCLDenyList" oor:type="oor:string-list" oor:nillable="false"> + <!-- UIHints: Tools - Options General OpenCL --> +-- +2.29.2 + diff --git a/0001-Resolves-rhbz-2081661-gtk-critical-gtk_tree_view_scr.patch b/0001-Resolves-rhbz-2081661-gtk-critical-gtk_tree_view_scr.patch new file mode 100644 index 0000000..6a40195 --- /dev/null +++ b/0001-Resolves-rhbz-2081661-gtk-critical-gtk_tree_view_scr.patch @@ -0,0 +1,51 @@ +From 1dbfd248524789efa4a84dc94d56a229c19bc0b9 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com> +Date: Wed, 4 May 2022 11:52:58 +0100 +Subject: [PATCH] Resolves: rhbz#2081661 gtk-critical + gtk_tree_view_scroll_to_cell assertion + +Change-Id: I4c7c4caed907072ef3a73ccfafabe882d618fa0e +Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133730 +Tested-by: Jenkins +Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com> +(cherry picked from commit 816435e4c2d52615462670464c48689bebdf1e55) +--- + cui/source/customize/SvxMenuConfigPage.cxx | 2 +- + cui/source/customize/SvxToolbarConfigPage.cxx | 6 ++++-- + 2 files changed, 5 insertions(+), 3 deletions(-) + +diff --git a/cui/source/customize/SvxMenuConfigPage.cxx b/cui/source/customize/SvxMenuConfigPage.cxx +index 34cee1368d7a..bf7457193f5c 100644 +--- a/cui/source/customize/SvxMenuConfigPage.cxx ++++ b/cui/source/customize/SvxMenuConfigPage.cxx +@@ -136,7 +136,7 @@ void SvxMenuConfigPage::Init() + + ReloadTopLevelListBox(); + +- m_xTopLevelListBox->set_active(0); ++ m_xTopLevelListBox->set_active(m_xTopLevelListBox->get_count() ? 0 : -1); + SelectElement(); + + m_xCommandCategoryListBox->Init(comphelper::getProcessComponentContext(), m_xFrame, +diff --git a/cui/source/customize/SvxToolbarConfigPage.cxx b/cui/source/customize/SvxToolbarConfigPage.cxx +index 99a85d82f96e..d2284428d8f1 100644 +--- a/cui/source/customize/SvxToolbarConfigPage.cxx ++++ b/cui/source/customize/SvxToolbarConfigPage.cxx +@@ -246,10 +246,12 @@ void SvxToolbarConfigPage::Init() + + ReloadTopLevelListBox(); + +- sal_Int32 nPos = 0; ++ sal_Int32 nCount = m_xTopLevelListBox->get_count(); ++ sal_Int32 nPos = nCount > 0 ? 0 : -1; ++ + if (!m_aURLToSelect.isEmpty()) + { +- for (sal_Int32 i = 0, nCount = m_xTopLevelListBox->get_count(); i < nCount; ++i) ++ for (sal_Int32 i = 0; i < nCount; ++i) + { + SvxConfigEntry* pData + = reinterpret_cast<SvxConfigEntry*>(m_xTopLevelListBox->get_id(i).toInt64()); +-- +2.35.1 + diff --git a/0001-Resolves-tdf-140250-don-t-share-adjustments-between-.patch b/0001-Resolves-tdf-140250-don-t-share-adjustments-between-.patch new file mode 100644 index 0000000..97e4abe --- /dev/null +++ b/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?= <caolanm@redhat.com> +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 @@ + <property name="step_increment">1</property> + <property name="page_increment">10</property> + </object> ++ <object class="GtkAdjustment" id="adjustment2"> ++ <property name="lower">2</property> ++ <property name="upper">9</property> ++ <property name="value">1</property> ++ <property name="step_increment">1</property> ++ <property name="page_increment">10</property> ++ </object> ++ <object class="GtkAdjustment" id="adjustment3"> ++ <property name="lower">2</property> ++ <property name="upper">9</property> ++ <property name="value">1</property> ++ <property name="step_increment">1</property> ++ <property name="page_increment">10</property> ++ </object> + <object class="GtkDialog" id="BreakNumberOption"> + <property name="can_focus">False</property> + <property name="border_width">6</property> +@@ -134,7 +148,7 @@ + <property name="can_focus">True</property> + <property name="halign">start</property> + <property name="activates_default">True</property> +- <property name="adjustment">adjustment1</property> ++ <property name="adjustment">adjustment2</property> + <property name="truncate-multiline">True</property> + <child internal-child="accessible"> + <object class="AtkObject" id="afterbreak-atkobject"> +@@ -179,7 +193,7 @@ + <property name="can_focus">True</property> + <property name="halign">start</property> + <property name="activates_default">True</property> +- <property name="adjustment">adjustment1</property> ++ <property name="adjustment">adjustment3</property> + <property name="truncate-multiline">True</property> + <child internal-child="accessible"> + <object class="AtkObject" id="wordlength-atkobject"> +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 @@ + <property name="step_increment">0.5</property> + <property name="page_increment">10</property> + </object> ++ <object class="GtkAdjustment" id="adjustment2"> ++ <property name="upper">2400</property> ++ <property name="step_increment">0.5</property> ++ <property name="page_increment">10</property> ++ </object> ++ <object class="GtkAdjustment" id="adjustment3"> ++ <property name="upper">2400</property> ++ <property name="step_increment">0.5</property> ++ <property name="page_increment">10</property> ++ </object> + <object class="GtkBox" id="CalloutPage"> + <property name="visible">True</property> + <property name="can_focus">False</property> +@@ -231,7 +241,7 @@ + <property name="can_focus">True</property> + <property name="activates_default">True</property> + <property name="text">0.00</property> +- <property name="adjustment">adjustment1</property> ++ <property name="adjustment">adjustment2</property> + <property name="digits">2</property> + <property name="truncate-multiline">True</property> + <child internal-child="accessible"> +@@ -277,7 +287,7 @@ + <property name="can_focus">True</property> + <property name="activates_default">True</property> + <property name="text">0.00</property> +- <property name="adjustment">adjustment1</property> ++ <property name="adjustment">adjustment3</property> + <property name="digits">2</property> + <property name="truncate-multiline">True</property> + <child internal-child="accessible"> +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 @@ + <property name="step_increment">1</property> + <property name="page_increment">10</property> + </object> ++ <object class="GtkAdjustment" id="adjustment3"> ++ <property name="upper">150</property> ++ <property name="step_increment">1</property> ++ <property name="page_increment">10</property> ++ </object> + <!-- n-columns=1 n-rows=1 --> + <object class="GtkGrid" id="EffectPropertyPanel"> + <property name="visible">True</property> +@@ -195,7 +200,7 @@ + <property name="can_focus">True</property> + <property name="hexpand">True</property> + <property name="truncate-multiline">True</property> +- <property name="adjustment">adjustment1</property> ++ <property name="adjustment">adjustment3</property> + </object> + <packing> + <property name="left_attach">1</property> +-- +2.33.1 + diff --git a/0001-Resolves-tdf-145567-restore-focus-to-the-usual-frame.patch b/0001-Resolves-tdf-145567-restore-focus-to-the-usual-frame.patch new file mode 100644 index 0000000..cced1b7 --- /dev/null +++ b/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?= <caolanm@redhat.com> +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/0001-Revert-tdf-101630-gdrive-support-w-oAuth-and-Drive-A.patch b/0001-Revert-tdf-101630-gdrive-support-w-oAuth-and-Drive-A.patch new file mode 100644 index 0000000..2399026 --- /dev/null +++ b/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?= <caolanm@redhat.com> +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 <string> 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<string> 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 @@ + </prop> + <prop oor:name="CmisServersUrls"> + <value> +- <it>https://www.googleapis.com/drive/v3</it> ++ <it>https://www.googleapis.com/drive/v2</it> + <it>https://graph.microsoft.com/v1.0</it> + <it>https://api.alfresco.com/cmis/versions/1.0/atom/</it> + <it></it> +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 <com/sun/star/task/XInteractionHandler.hpp> +-#include <com/sun/star/task/PasswordContainer.hpp> +-#include <com/sun/star/task/XPasswordContainer2.hpp> + +-#include <comphelper/processfactory.hxx> + #include <ucbhelper/simpleauthenticationrequest.hxx> + #include <ucbhelper/authenticationfallback.hxx> + +@@ -67,91 +64,6 @@ namespace cmis + return false; + } + +- string AuthProvider::getRefreshToken(string& rUsername) +- { +- string refreshToken; +- const css::uno::Reference<css::ucb::XCommandEnvironment> xEnv = getXEnv(); +- if (xEnv.is()) +- { +- uno::Reference<task::XInteractionHandler> xIH = xEnv->getInteractionHandler(); +- +- if (rUsername.empty()) +- { +- rtl::Reference<ucbhelper::SimpleAuthenticationRequest> 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<ucbhelper::InteractionContinuation> xSelection +- = xRequest->getSelection(); +- +- if (xSelection.is()) +- { +- // Handler handled the request. +- uno::Reference<task::XInteractionAbort> xAbort(xSelection.get(), +- uno::UNO_QUERY); +- if (!xAbort.is()) +- { +- const rtl::Reference<ucbhelper::InteractionSupplyAuthentication>& xSupp +- = xRequest->getAuthenticationSupplier(); +- +- rUsername = OUSTR_TO_STDSTR(xSupp->getUserName()); +- } +- } +- } +- +- uno::Reference<uno::XComponentContext> xContext +- = ::comphelper::getProcessComponentContext(); +- uno::Reference<task::XPasswordContainer2> 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<css::ucb::XCommandEnvironment> xEnv = getXEnv(); +- if (xEnv.is()) +- { +- uno::Reference<task::XInteractionHandler> xIH = xEnv->getInteractionHandler(); +- uno::Reference<uno::XComponentContext> xContext +- = ::comphelper::getProcessComponentContext(); +- uno::Reference<task::XPasswordContainer2> xMasterPasswd +- = task::PasswordContainer::create(xContext); +- uno::Sequence<OUString> 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/0001-Simplify-construction-of-a-hardcoded-IPv4-address.patch b/0001-Simplify-construction-of-a-hardcoded-IPv4-address.patch new file mode 100644 index 0000000..fcfa651 --- /dev/null +++ b/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 <sbergman@redhat.com> +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 <sbergman@redhat.com> +--- + 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/0001-annocheck-warning-about-missing-.note.gnu.property-s.patch b/0001-annocheck-warning-about-missing-.note.gnu.property-s.patch new file mode 100644 index 0000000..aabe104 --- /dev/null +++ b/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?= <caolanm@redhat.com> +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 <caolanm@redhat.com> +Reviewed-by: Caolán McNamara <caolanm@redhat.com> +(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/0001-disable-libe-book-support.patch b/0001-disable-libe-book-support.patch new file mode 100644 index 0000000..5c09e7b --- /dev/null +++ b/0001-disable-libe-book-support.patch @@ -0,0 +1,145 @@ +From 4cac125f90e0a3d6828d879cb06f3a4bac14321b Mon Sep 17 00:00:00 2001 +From: David Tardon <dtardon@redhat.com> +Date: Thu, 21 Aug 2014 16:10:51 +0200 +Subject: [PATCH] disable libe-book support + +Change-Id: Ie915a9bd2acf7f3aeb8b0933252da33c17043bc4 +--- + 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 | 5 ----- + 7 files changed, 28 deletions(-) + +diff --git a/configure.ac b/configure.ac +index fe425319b8f8..4b8f6a95472c 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -8566,9 +8566,6 @@ libo_PKG_VERSION([ETONYEK], [libetonyek-0.1], [0.1.8]) + + 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 41e018d2ef3f..1b7627a1b3e2 100644 +--- a/external/Module_external.mk ++++ b/external/Module_external.mk +@@ -33,7 +33,6 @@ $(eval $(call gb_Module_add_moduledirs,external,\ + $(call gb_Helper_optional,CT2N,ct2n) \ + $(call gb_Helper_optional,CURL,curl) \ + 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 e71ffacf8f25..74d2ef05c4aa 100644 +--- a/filter/Configuration_filter.mk ++++ b/filter/Configuration_filter.mk +@@ -358,10 +358,6 @@ $(eval $(call filter_Configuration_add_types,fcfg_langpack,fcfg_writer_types.xcu + writer_OOXML \ + writer_OOXML_Template \ + writer_layout_dump_xml \ +- writer_BroadBand_eBook \ +- writer_FictionBook_2 \ +- writer_PalmDoc \ +- writer_Plucker_eBook \ + writer_ApplePages \ + MWAW_Text_Document \ + Palm_Text_Document \ +@@ -406,10 +402,6 @@ $(eval $(call filter_Configuration_add_filters,fcfg_langpack,fcfg_writer_filters + OOXML_Text \ + OOXML_Text_Template \ + writer_layout_dump \ +- 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 8993cca31490..b6e11f356d97 100644 +--- a/writerperfect/Library_wpftwriter.mk ++++ b/writerperfect/Library_wpftwriter.mk +@@ -53,7 +53,6 @@ $(eval $(call gb_Library_use_libraries,wpftwriter,\ + $(eval $(call gb_Library_use_externals,wpftwriter,\ + abw \ + boost_headers \ +- ebook \ + epubgen \ + etonyek \ + icu_headers \ +@@ -73,7 +72,6 @@ $(eval $(call gb_Library_use_externals,wpftwriter,\ + + $(eval $(call gb_Library_add_exception_objects,wpftwriter,\ + writerperfect/source/writer/AbiWordImportFilter \ +- writerperfect/source/writer/EBookImportFilter \ + writerperfect/source/writer/EPUBExportDialog \ + writerperfect/source/writer/EPUBExportFilter \ + writerperfect/source/writer/EPUBExportUIComponent \ +diff --git a/writerperfect/qa/unit/WpftFilterFixture.hxx b/writerperfect/qa/unit/WpftFilterFixture.hxx +index f32478165617..f42edb0d7f55 100644 +--- a/writerperfect/qa/unit/WpftFilterFixture.hxx ++++ b/writerperfect/qa/unit/WpftFilterFixture.hxx +@@ -26,10 +26,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 8bc4c7cadbb3..eca43caf8d8c 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) }, +@@ -54,8 +51,6 @@ void WpftWriterFilterTest::test() + + doTest("com.sun.star.comp.Writer.AbiWordImportFilter", + "/writerperfect/qa/unit/data/writer/libabw/"); +- doTest("org.libreoffice.comp.Writer.EBookImportFilter", +- "/writerperfect/qa/unit/data/writer/libe-book/", aEBookOptional); + doTest("com.sun.star.comp.Writer.MSWorksImportFilter", + "/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 8ab436634052..2720023baedf 100644 +--- a/writerperfect/source/writer/wpftwriter.component ++++ b/writerperfect/source/writer/wpftwriter.component +@@ -38,11 +38,6 @@ + <service name="com.sun.star.document.ExtendedTypeDetection"/> + <service name="com.sun.star.document.ImportFilter"/> + </implementation> +- <implementation name="org.libreoffice.comp.Writer.EBookImportFilter" +- constructor="org_libreoffice_comp_Writer_EBookImportFilter_get_implementation"> +- <service name="com.sun.star.document.ExtendedTypeDetection"/> +- <service name="com.sun.star.document.ImportFilter"/> +- </implementation> + <implementation name="org.libreoffice.comp.Writer.PagesImportFilter" + constructor="org_libreoffice_comp_Writer_PagesImportFilter_get_implementation"> + <service name="com.sun.star.document.ExtendedTypeDetection"/> +-- +2.25.1 + diff --git a/0001-disble-tip-of-the-day-dialog-by-default.patch b/0001-disble-tip-of-the-day-dialog-by-default.patch new file mode 100644 index 0000000..7233a4e --- /dev/null +++ b/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?= <caolanm@redhat.com> +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 @@ + <info> + <desc>Determines whether the Tip-of-the-Day dialog is shown on startup.</desc> + </info> +- <value>true</value> ++ <value>false</value> + </prop> + <prop oor:name="LastTipOfTheDayShown" oor:type="xs:int" oor:nillable="false"> + <info> +-- +2.24.1 + diff --git a/0001-document-new-shouldn-t-get-prefixed-to-become-libreo.patch b/0001-document-new-shouldn-t-get-prefixed-to-become-libreo.patch new file mode 100644 index 0000000..1579192 --- /dev/null +++ b/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?= <caolanm@redhat.com> +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/0001-don-t-suppress-crashes.patch b/0001-don-t-suppress-crashes.patch new file mode 100644 index 0000000..4a35f3d --- /dev/null +++ b/0001-don-t-suppress-crashes.patch @@ -0,0 +1,35 @@ +From a6f2cba43d79347b6975b3b8069b423c94a7dba6 Mon Sep 17 00:00:00 2001 +From: David Tardon <dtardon@redhat.com> +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 +@@ -1147,14 +1147,12 @@ void Desktop::Exception(ExceptionCategory nCategory) + if( bRestart ) + { + RequestHandler::Disable(); +- if( pSignalHandler ) +- osl_removeSignalHandler( pSignalHandler ); + + restartOnMac(false); + if ( m_rSplashScreen.is() ) + m_rSplashScreen->reset(); + +- _exit( EXITHELPER_CRASH_WITH_RESTART ); ++ return; + } + else + { +-- +2.29.2 + diff --git a/0001-fix-comparison-when-searching-cache.patch b/0001-fix-comparison-when-searching-cache.patch new file mode 100644 index 0000000..2928de1 --- /dev/null +++ b/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?= <l.lunak@collabora.com> +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 <noel.grandin@collabora.co.uk> +Reviewed-by: Luboš Luňák <l.lunak@collabora.com> +Tested-by: Luboš Luňák <l.lunak@collabora.com> +(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/0001-fix-detecting-qrcodegen.patch b/0001-fix-detecting-qrcodegen.patch new file mode 100644 index 0000000..f439510 --- /dev/null +++ b/0001-fix-detecting-qrcodegen.patch @@ -0,0 +1,40 @@ +From 2f11e4247b6332b06a5b23c33207fa10767244a6 Mon Sep 17 00:00:00 2001 +From: Thierry Vignaud <thierry.vignaud@gmail.com> +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 <stdexcept>]) + 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 <qrcodegen/QrCode.hpp> ++#include <qrcodegencpp/QrCode.hpp> + #else + #include <QrCode.hpp> + #endif +-- +2.26.2 + diff --git a/0001-gtk3-workaround-missing-gdk_threads_enter-calls-in-e.patch b/0001-gtk3-workaround-missing-gdk_threads_enter-calls-in-e.patch new file mode 100644 index 0000000..c260e2d --- /dev/null +++ b/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?= <caolanm@redhat.com> +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=<optimized out>, parent=<optimized out>) + at /usr/src/debug/gtk3-3.24.29-1.fc34.x86_64/gtk/gtkfilechooserwidget.c:763 + #8 error_message (impl=<optimized out>, msg=<optimized out>, 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=<optimized out>, 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=<optimized out>, 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 <caolanm@redhat.com> +(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<sal_uInt32> 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/0001-make-with-idlc-cpp-cpp-work-for-gcc-cpp-as-a-ucpp-re.patch b/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/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?= <caolanm@redhat.com> +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/0001-math.desktop-include-Spreadsheet-category.patch b/0001-math.desktop-include-Spreadsheet-category.patch new file mode 100644 index 0000000..2969ea8 --- /dev/null +++ b/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?= <caolanm@redhat.com> +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 <fitojb@ubuntu.com> +(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/0001-rhbz-1918152-fix-FTBFS.patch b/0001-rhbz-1918152-fix-FTBFS.patch new file mode 100644 index 0000000..b2502d1 --- /dev/null +++ b/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?= <caolanm@redhat.com> +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 <math.h> +- + #include <vcl/bitmapaccess.hxx> + #include <vcl/bitmapex.hxx> + #include <vcl/bitmap.hxx> +-- +2.28.0 + diff --git a/0001-rhbz-1980800-allow-convert-to-csv-to-write-each-shee.patch b/0001-rhbz-1980800-allow-convert-to-csv-to-write-each-shee.patch new file mode 100644 index 0000000..b1224ac --- /dev/null +++ b/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?= <caolanm@redhat.com> +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 <erack@redhat.com> +(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 <erack@redhat.com> +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 <erack@redhat.com> +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 <rtl/ustring.hxx> + #include <comphelper/processfactory.hxx> ++#include <comphelper/string.hxx> + #include <comphelper/synchronousdispatch.hxx> + #include <com/sun/star/io/IOException.hpp> + #include <com/sun/star/util/XCloseable.hpp> +@@ -598,6 +599,8 @@ bool DispatchWatcher::executeDispatchRequests( const std::vector<DispatchRequest + aFilter = impl_GuessFilter( aOutFile, aDocService ); + } + ++ bool bMultiFileTarget = false; ++ + if (aFilter.isEmpty()) + { + std::cerr << "Error: no export filter" << std::endl; +@@ -605,29 +608,54 @@ bool DispatchWatcher::executeDispatchRequests( const std::vector<DispatchRequest + else + { + sal_Int32 nFilterOptionsIndex = aFilter.indexOf(':'); +- sal_Int32 nProps = ( 0 < nFilterOptionsIndex ) ? 3 : 2; ++ sal_Int32 nProps = ( 0 < nFilterOptionsIndex ) ? 4 : 3; + + if ( !aImgOut.isEmpty() ) + nProps +=1; + Sequence<PropertyValue> 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<DispatchRequest + OString aTargetURL8 = OUStringToOString(aTempName, osl_getThreadTextEncoding()); + if (aDispatchRequest.aRequestType != REQUEST_CAT) + { +- std::cout << "convert " << aSource8 << " -> " << 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 <imoptdlg.hxx> + #include <asciiopt.hxx> + #include <comphelper/string.hxx> ++#include <unotools/charclass.hxx> + #include <osl/thread.h> + #include <global.hxx> + +@@ -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 <sfx2/objface.hxx> + #include <sfx2/viewfrm.hxx> + #include <svl/documentlockfile.hxx> ++#include <svl/fstathelper.hxx> + #include <svl/sharecontrolfile.hxx> + #include <svl/urihelper.hxx> + #include <osl/file.hxx> +@@ -119,6 +120,7 @@ + #include <comphelper/processfactory.hxx> + #include <comphelper/string.hxx> + #include <unotools/configmgr.hxx> ++#include <unotools/ucbstreamhelper.hxx> + #include <uiitems.hxx> + #include <dpobject.hxx> + #include <markdata.hxx> +@@ -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<const SfxStringItem*>(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<css::beans::PropertyValue> & 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<const SfxStringItem*>(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<SvStream> 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/0001-tdf-121546-sw-don-t-use-undo-array-s-m_pOutlineNodes.patch b/0001-tdf-121546-sw-don-t-use-undo-array-s-m_pOutlineNodes.patch new file mode 100644 index 0000000..8840208 --- /dev/null +++ b/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 <michael.stahl@allotropia.de> +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/0002-CVE-2022-26307-make-hash-encoding-match-decoding.patch b/0002-CVE-2022-26307-make-hash-encoding-match-decoding.patch new file mode 100644 index 0000000..e2c5eb8 --- /dev/null +++ b/0002-CVE-2022-26307-make-hash-encoding-match-decoding.patch @@ -0,0 +1,183 @@ +From 780c42cdd8006dc60e281be2fe6566f101e909bc Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com> +Date: Mon, 21 Mar 2022 20:58:34 +0000 +Subject: [PATCH 2/5] CVE-2022-26307 make hash encoding match decoding + +Seeing as old versions of the hash may be in the users config, add a +StorageVersion field to the office config Passwords section which +defaults to 0 to indicate the old hash is in use. + +Try the old varient when StorageVersion is 0. When a new encoded master +password it set write StorageVersion of 1 to indicate a new hash is in +use and use the new style when StorageVersion is 1. + +Change-Id: I3174c37a5891bfc849984e0ec5c2c392b9c6e7b1 +Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132080 +Tested-by: Jenkins +Reviewed-by: Stephan Bergmann <sbergman@redhat.com> +(cherry picked from commit e890f54dbac57f3ab5acf4fbd31222095d3e8ab6) +--- + .../schema/org/openoffice/Office/Common.xcs | 6 +++ + .../passwordcontainer/passwordcontainer.cxx | 45 +++++++++++++++++-- + .../passwordcontainer/passwordcontainer.hxx | 6 +++ + uui/source/iahndl-authentication.cxx | 5 ++- + 4 files changed, 57 insertions(+), 5 deletions(-) + +diff --git a/officecfg/registry/schema/org/openoffice/Office/Common.xcs b/officecfg/registry/schema/org/openoffice/Office/Common.xcs +index 9097c23c3c6a..922efc33cca7 100644 +--- a/officecfg/registry/schema/org/openoffice/Office/Common.xcs ++++ b/officecfg/registry/schema/org/openoffice/Office/Common.xcs +@@ -942,6 +942,12 @@ + </info> + <value>false</value> + </prop> ++ <prop oor:name="StorageVersion" oor:type="xs:int" oor:nillable="false"> ++ <info> ++ <desc>Specifies what version of encoding scheme the password container uses.</desc> ++ </info> ++ <value>0</value> ++ </prop> + <prop oor:name="HasMaster" oor:type="xs:boolean" oor:nillable="false"> + <info> + <desc>Specifies if there is a valid master password.</desc> +diff --git a/svl/source/passwordcontainer/passwordcontainer.cxx b/svl/source/passwordcontainer/passwordcontainer.cxx +index 51fb129cddb1..b674844f91d3 100644 +--- a/svl/source/passwordcontainer/passwordcontainer.cxx ++++ b/svl/source/passwordcontainer/passwordcontainer.cxx +@@ -17,7 +17,6 @@ + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +- + #include "passwordcontainer.hxx" + + #include <cppuhelper/factory.hxx> +@@ -259,6 +258,23 @@ bool StorageItem::useStorage() + return aResult; + } + ++sal_Int32 StorageItem::getStorageVersion() ++{ ++ Sequence<OUString> aNodeNames { "StorageVersion" }; ++ ++ Sequence< Any > aPropertyValues = ConfigItem::GetProperties( aNodeNames ); ++ ++ if( aPropertyValues.getLength() != aNodeNames.getLength() ) ++ { ++ OSL_FAIL( "Problems during reading" ); ++ return 0; ++ } ++ ++ sal_Int32 nResult = 0; ++ aPropertyValues[0] >>= nResult; ++ ++ return nResult; ++} + + bool StorageItem::getEncodedMP( OUString& aResult ) + { +@@ -291,15 +307,17 @@ bool StorageItem::getEncodedMP( OUString& aResult ) + + void StorageItem::setEncodedMP( const OUString& aEncoded, bool bAcceptEmpty ) + { +- Sequence< OUString > sendNames(2); +- Sequence< uno::Any > sendVals(2); ++ Sequence< OUString > sendNames(3); ++ Sequence< uno::Any > sendVals(3); + + sendNames[0] = "HasMaster"; + sendNames[1] = "Master"; ++ sendNames[2] = "StorageVersion"; + + bool bHasMaster = ( !aEncoded.isEmpty() || bAcceptEmpty ); + sendVals[0] <<= bHasMaster; + sendVals[1] <<= aEncoded; ++ sendVals[2] <<= nCurrentStorageVersion; + + ConfigItem::SetModified(); + ConfigItem::PutProperties( sendNames, sendVals ); +@@ -800,6 +818,18 @@ OUString PasswordContainer::RequestPasswordFromUser( PasswordRequestMode aRMode, + return aResult; + } + ++// Mangle the key to match an old bug ++static OUString ReencodeAsOldHash(const OUString& rPass) ++{ ++ OUStringBuffer aBuffer; ++ for (int ind = 0; ind < RTL_DIGEST_LENGTH_MD5; ++ind) ++ { ++ unsigned char i = static_cast<char>(rPass.copy(ind * 2, 2).toUInt32(16)); ++ aBuffer.append(static_cast< sal_Unicode >('a' + (i >> 4))); ++ aBuffer.append(static_cast< sal_Unicode >('a' + (i & 15))); ++ } ++ return aBuffer.makeStringAndClear(); ++} + + OUString const & PasswordContainer::GetMasterPassword( const Reference< XInteractionHandler >& aHandler ) + { +@@ -838,6 +868,9 @@ OUString const & PasswordContainer::GetMasterPassword( const Reference< XInterac + } + else + { ++ if (m_pStorageFile->getStorageVersion() == 0) ++ aPass = ReencodeAsOldHash(aPass); ++ + std::vector< OUString > aRM( DecodePasswords( aEncodedMP, aPass, aRMode ) ); + if( aRM.empty() || aPass != aRM[0] ) + { +@@ -1042,6 +1075,12 @@ sal_Bool SAL_CALL PasswordContainer::authorizateWithMasterPassword( const uno::R + + do { + aPass = RequestPasswordFromUser( aRMode, xTmpHandler ); ++ ++ if (!aPass.isEmpty() && m_pStorageFile->getStorageVersion() == 0) ++ { ++ aPass = ReencodeAsOldHash(aPass); ++ } ++ + bResult = ( !aPass.isEmpty() && aPass == m_aMasterPasswd ); + aRMode = PasswordRequestMode_PASSWORD_REENTER; // further questions with error notification + } while( !bResult && !aPass.isEmpty() ); +diff --git a/svl/source/passwordcontainer/passwordcontainer.hxx b/svl/source/passwordcontainer/passwordcontainer.hxx +index 46ffec888602..bf43b5903602 100644 +--- a/svl/source/passwordcontainer/passwordcontainer.hxx ++++ b/svl/source/passwordcontainer/passwordcontainer.hxx +@@ -168,6 +168,10 @@ public: + typedef ::std::pair< const OUString, ::std::vector< NamePassRecord > > PairUrlRecord; + typedef ::std::map< OUString, ::std::vector< NamePassRecord > > PassMap; + ++// org.openoffice.Office.Common/Passwords/StorageVersion bump if details of ++// how password details are saved changes. Enables migration from previous ++// schemes. ++constexpr sal_Int32 nCurrentStorageVersion = 1; + + class PasswordContainer; + +@@ -196,6 +200,8 @@ public: + void remove( const OUString& url, const OUString& rec ); + void clear(); + ++ sal_Int32 getStorageVersion(); ++ + bool getEncodedMP( OUString& aResult ); + void setEncodedMP( const OUString& aResult, bool bAcceptEmpty = false ); + void setUseStorage( bool bUse ); +diff --git a/uui/source/iahndl-authentication.cxx b/uui/source/iahndl-authentication.cxx +index ad975d3f9ae7..951f0b8a1c6b 100644 +--- a/uui/source/iahndl-authentication.cxx ++++ b/uui/source/iahndl-authentication.cxx +@@ -436,8 +436,9 @@ executeMasterPasswordDialog( + OUStringBuffer aBuffer; + for (sal_uInt8 i : aKey) + { +- aBuffer.append(static_cast< sal_Unicode >('a' + (i >> 4))); +- aBuffer.append(static_cast< sal_Unicode >('a' + (i & 15))); ++ // match PasswordContainer::DecodePasswords aMasterPasswd.copy(index * 2, 2).toUInt32(16)); ++ aBuffer.append(OUString::number(i >> 4, 16)); ++ aBuffer.append(OUString::number(i & 15, 16)); + } + rInfo.SetPassword(aBuffer.makeStringAndClear()); + } +-- +2.37.3 + diff --git a/0003-CVE-2022-26306-add-Initialization-Vectors-to-passwor.patch b/0003-CVE-2022-26306-add-Initialization-Vectors-to-passwor.patch new file mode 100644 index 0000000..be0c6e5 --- /dev/null +++ b/0003-CVE-2022-26306-add-Initialization-Vectors-to-passwor.patch @@ -0,0 +1,583 @@ +From e809625c2ca9f0c026aab9b5c2d13ced628c13e9 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com> +Date: Tue, 22 Mar 2022 17:22:22 +0000 +Subject: [PATCH 3/5] CVE-2022-26306 add Initialization Vectors to password + storage + +old ones default to the current all zero case and continue to work +as before + +Change-Id: I6fe3b02fafcce1b5e7133e77e76a5118177d77af +Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131974 +Tested-by: Jenkins +Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> +(cherry picked from commit 192fa1e3bfc6269f2ebb91716471485a56074aea) +Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132306 +Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de> +(cherry picked from commit ab77587ec300f5c30084471000663c46ddf25dad) +--- + .../schema/org/openoffice/Office/Common.xcs | 10 ++ + .../passwordcontainer/passwordcontainer.cxx | 127 ++++++++++++------ + .../passwordcontainer/passwordcontainer.hxx | 63 +++++++-- + 3 files changed, 151 insertions(+), 49 deletions(-) + +diff --git a/officecfg/registry/schema/org/openoffice/Office/Common.xcs b/officecfg/registry/schema/org/openoffice/Office/Common.xcs +index 922efc33cca7..8d87d00d5369 100644 +--- a/officecfg/registry/schema/org/openoffice/Office/Common.xcs ++++ b/officecfg/registry/schema/org/openoffice/Office/Common.xcs +@@ -27,6 +27,11 @@ + <info> + <desc>Contains a container for passwords.</desc> + </info> ++ <prop oor:name="InitializationVector" oor:type="xs:string"> ++ <info> ++ <desc>Contains an initialization vector for the password encryption.</desc> ++ </info> ++ </prop> + <prop oor:name="Password" oor:type="xs:string" oor:localized="false"> + <info> + <desc>Contains a password encoded with the master password.</desc> +@@ -954,6 +959,11 @@ + </info> + <value>false</value> + </prop> ++ <prop oor:name="MasterInitializationVector" oor:type="xs:string"> ++ <info> ++ <desc>Contains an initialization vector for the master password encryption.</desc> ++ </info> ++ </prop> + <prop oor:name="Master" oor:type="xs:string" oor:nillable="false"> + <info> + <desc>Contains the master password encrypted by itself.</desc> +diff --git a/svl/source/passwordcontainer/passwordcontainer.cxx b/svl/source/passwordcontainer/passwordcontainer.cxx +index b674844f91d3..ef79470a2cb6 100644 +--- a/svl/source/passwordcontainer/passwordcontainer.cxx ++++ b/svl/source/passwordcontainer/passwordcontainer.cxx +@@ -181,15 +181,18 @@ PassMap StorageItem::getInfo() + + Sequence< OUString > aNodeNames = ConfigItem::GetNodeNames( "Store" ); + sal_Int32 aNodeCount = aNodeNames.getLength(); +- Sequence< OUString > aPropNames( aNodeCount ); ++ Sequence< OUString > aPropNames( aNodeCount * 2); + + std::transform(aNodeNames.begin(), aNodeNames.end(), aPropNames.begin(), + [](const OUString& rName) -> OUString { + return "Store/Passwordstorage['" + rName + "']/Password"; }); ++ std::transform(aNodeNames.begin(), aNodeNames.end(), aPropNames.getArray() + aNodeCount, ++ [](const OUString& rName) -> OUString { ++ return "Store/Passwordstorage['" + rName + "']/InitializationVector"; }); + + Sequence< Any > aPropertyValues = ConfigItem::GetProperties( aPropNames ); + +- if( aPropertyValues.getLength() != aNodeCount ) ++ if( aPropertyValues.getLength() != aNodeCount * 2) + { + OSL_FAIL( "Problems during reading" ); + return aResult; +@@ -205,14 +208,16 @@ PassMap StorageItem::getInfo() + OUString aName = aUrlUsr[1]; + + OUString aEPasswd; ++ OUString aIV; + aPropertyValues[aNodeInd] >>= aEPasswd; ++ aPropertyValues[aNodeInd + aNodeCount] >>= aIV; + + PassMap::iterator aIter = aResult.find( aUrl ); + if( aIter != aResult.end() ) +- aIter->second.emplace_back( aName, aEPasswd ); ++ aIter->second.emplace_back( aName, aEPasswd, aIV ); + else + { +- NamePassRecord aNewRecord( aName, aEPasswd ); ++ NamePassRecord aNewRecord( aName, aEPasswd, aIV ); + std::vector< NamePassRecord > listToAdd( 1, aNewRecord ); + + aResult.insert( PairUrlRecord( aUrl, listToAdd ) ); +@@ -276,17 +281,19 @@ sal_Int32 StorageItem::getStorageVersion() + return nResult; + } + +-bool StorageItem::getEncodedMP( OUString& aResult ) ++bool StorageItem::getEncodedMP( OUString& aResult, OUString& aResultIV ) + { + if( hasEncoded ) + { + aResult = mEncoded; ++ aResultIV = mEncodedIV; + return true; + } + +- Sequence< OUString > aNodeNames( 2 ); ++ Sequence< OUString > aNodeNames( 3 ); + aNodeNames[0] = "HasMaster"; + aNodeNames[1] = "Master"; ++ aNodeNames[2] = "MasterInitializationVector"; + + Sequence< Any > aPropertyValues = ConfigItem::GetProperties( aNodeNames ); + +@@ -298,32 +305,37 @@ bool StorageItem::getEncodedMP( OUString& aResult ) + + aPropertyValues[0] >>= hasEncoded; + aPropertyValues[1] >>= mEncoded; ++ aPropertyValues[2] >>= mEncodedIV; + + aResult = mEncoded; ++ aResultIV = mEncodedIV; + + return hasEncoded; + } + + +-void StorageItem::setEncodedMP( const OUString& aEncoded, bool bAcceptEmpty ) ++void StorageItem::setEncodedMP( const OUString& aEncoded, const OUString& aEncodedIV, bool bAcceptEmpty ) + { +- Sequence< OUString > sendNames(3); +- Sequence< uno::Any > sendVals(3); ++ Sequence< OUString > sendNames(4); ++ Sequence< uno::Any > sendVals(4); + + sendNames[0] = "HasMaster"; + sendNames[1] = "Master"; +- sendNames[2] = "StorageVersion"; ++ sendNames[2] = "MasterInitializationVector"; ++ sendNames[3] = "StorageVersion"; + + bool bHasMaster = ( !aEncoded.isEmpty() || bAcceptEmpty ); + sendVals[0] <<= bHasMaster; + sendVals[1] <<= aEncoded; +- sendVals[2] <<= nCurrentStorageVersion; ++ sendVals[2] <<= aEncodedIV; ++ sendVals[3] <<= nCurrentStorageVersion; + + ConfigItem::SetModified(); + ConfigItem::PutProperties( sendNames, sendVals ); + + hasEncoded = bHasMaster; + mEncoded = aEncoded; ++ mEncodedIV = aEncodedIV; + } + + +@@ -359,11 +371,13 @@ void StorageItem::update( const OUString& aURL, const NamePassRecord& aRecord ) + forIndex.push_back( aURL ); + forIndex.push_back( aRecord.GetUserName() ); + +- Sequence< beans::PropertyValue > sendSeq(1); ++ Sequence< beans::PropertyValue > sendSeq(2); + +- sendSeq[0].Name = "Store/Passwordstorage['" + createIndex( forIndex ) + "']/Password"; ++ sendSeq[0].Name = "Store/Passwordstorage['" + createIndex( forIndex ) + "']/InitializationVector"; ++ sendSeq[0].Value <<= aRecord.GetPersistentIV(); + +- sendSeq[0].Value <<= aRecord.GetPersPasswords(); ++ sendSeq[1].Name = "Store/Passwordstorage['" + createIndex( forIndex ) + "']/Password"; ++ sendSeq[1].Value <<= aRecord.GetPersPasswords(); + + ConfigItem::SetModified(); + ConfigItem::SetSetProperties( "Store", sendSeq ); +@@ -424,7 +438,7 @@ void SAL_CALL PasswordContainer::disposing( const EventObject& ) + } + } + +-std::vector< OUString > PasswordContainer::DecodePasswords( const OUString& aLine, const OUString& aMasterPasswd, css::task::PasswordRequestMode mode ) ++std::vector< OUString > PasswordContainer::DecodePasswords( const OUString& aLine, const OUString& aIV, const OUString& aMasterPasswd, css::task::PasswordRequestMode mode ) + { + if( !aMasterPasswd.isEmpty() ) + { +@@ -439,9 +453,16 @@ std::vector< OUString > PasswordContainer::DecodePasswords( const OUString& aLin + for( int ind = 0; ind < RTL_DIGEST_LENGTH_MD5; ind++ ) + code[ ind ] = static_cast<char>(aMasterPasswd.copy( ind*2, 2 ).toUInt32(16)); + ++ unsigned char iv[RTL_DIGEST_LENGTH_MD5] = {0}; ++ if (!aIV.isEmpty()) ++ { ++ for( int ind = 0; ind < RTL_DIGEST_LENGTH_MD5; ind++ ) ++ iv[ ind ] = static_cast<char>(aIV.copy( ind*2, 2 ).toUInt32(16)); ++ } ++ + rtlCipherError result = rtl_cipher_init ( + aDecoder, rtl_Cipher_DirectionDecode, +- code, RTL_DIGEST_LENGTH_MD5, nullptr, 0 ); ++ code, RTL_DIGEST_LENGTH_MD5, iv, RTL_DIGEST_LENGTH_MD5 ); + + if( result == rtl_Cipher_E_None ) + { +@@ -474,7 +495,7 @@ std::vector< OUString > PasswordContainer::DecodePasswords( const OUString& aLin + "Can't decode!", css::uno::Reference<css::uno::XInterface>(), mode); + } + +-OUString PasswordContainer::EncodePasswords(const std::vector< OUString >& lines, const OUString& aMasterPasswd ) ++OUString PasswordContainer::EncodePasswords(const std::vector< OUString >& lines, const OUString& aIV, const OUString& aMasterPasswd) + { + if( !aMasterPasswd.isEmpty() ) + { +@@ -491,9 +512,16 @@ OUString PasswordContainer::EncodePasswords(const std::vector< OUString >& lines + for( int ind = 0; ind < RTL_DIGEST_LENGTH_MD5; ind++ ) + code[ ind ] = static_cast<char>(aMasterPasswd.copy( ind*2, 2 ).toUInt32(16)); + ++ unsigned char iv[RTL_DIGEST_LENGTH_MD5] = {0}; ++ if (!aIV.isEmpty()) ++ { ++ for( int ind = 0; ind < RTL_DIGEST_LENGTH_MD5; ind++ ) ++ iv[ ind ] = static_cast<char>(aIV.copy( ind*2, 2 ).toUInt32(16)); ++ } ++ + rtlCipherError result = rtl_cipher_init ( + aEncoder, rtl_Cipher_DirectionEncode, +- code, RTL_DIGEST_LENGTH_MD5, nullptr, 0 ); ++ code, RTL_DIGEST_LENGTH_MD5, iv, RTL_DIGEST_LENGTH_MD5 ); + + if( result == rtl_Cipher_E_None ) + { +@@ -561,7 +589,7 @@ void PasswordContainer::UpdateVector( const OUString& aURL, std::vector< NamePas + + if( aRecord.HasPasswords( PERSISTENT_RECORD ) ) + { +- aNPIter.SetPersPasswords( aRecord.GetPersPasswords() ); ++ aNPIter.SetPersPasswords( aRecord.GetPersPasswords(), aRecord.GetPersistentIV() ); + + if( writeFile ) + { +@@ -594,7 +622,8 @@ UserRecord PasswordContainer::CopyToUserRecord( const NamePassRecord& aRecord, b + { + try + { +- ::std::vector< OUString > aDecodedPasswords = DecodePasswords( aRecord.GetPersPasswords(), GetMasterPassword( aHandler ), css::task::PasswordRequestMode_PASSWORD_ENTER ); ++ ::std::vector< OUString > aDecodedPasswords = DecodePasswords( aRecord.GetPersPasswords(), aRecord.GetPersistentIV(), ++ GetMasterPassword( aHandler ), css::task::PasswordRequestMode_PASSWORD_ENTER ); + aPasswords.insert( aPasswords.end(), aDecodedPasswords.begin(), aDecodedPasswords.end() ); + } + catch( NoMasterException& ) +@@ -639,6 +668,19 @@ void SAL_CALL PasswordContainer::addPersistent( const OUString& Url, const OUStr + PrivateAdd( Url, UserName, Passwords, PERSISTENT_RECORD, aHandler ); + } + ++OUString PasswordContainer::createIV() ++{ ++ rtlRandomPool randomPool = mRandomPool.get(); ++ unsigned char iv[RTL_DIGEST_LENGTH_MD5]; ++ rtl_random_getBytes(randomPool, iv, RTL_DIGEST_LENGTH_MD5); ++ OUStringBuffer aBuffer; ++ for (sal_uInt8 i : iv) ++ { ++ aBuffer.append(OUString::number(i >> 4, 16)); ++ aBuffer.append(OUString::number(i & 15, 16)); ++ } ++ return aBuffer.makeStringAndClear(); ++} + + void PasswordContainer::PrivateAdd( const OUString& Url, const OUString& UserName, const Sequence< OUString >& Passwords, char Mode, const Reference< XInteractionHandler >& aHandler ) + { +@@ -646,7 +688,11 @@ void PasswordContainer::PrivateAdd( const OUString& Url, const OUString& UserNam + ::std::vector< OUString > aStorePass = comphelper::sequenceToContainer< std::vector<OUString> >( Passwords ); + + if( Mode == PERSISTENT_RECORD ) +- aRecord.SetPersPasswords( EncodePasswords( aStorePass, GetMasterPassword( aHandler ) ) ); ++ { ++ OUString sIV = createIV(); ++ OUString sEncodedPasswords = EncodePasswords( aStorePass, sIV, GetMasterPassword( aHandler ) ); ++ aRecord.SetPersPasswords( sEncodedPasswords, sIV ); ++ } + else if( Mode == MEMORY_RECORD ) + aRecord.SetMemPasswords( aStorePass ); + else +@@ -839,10 +885,10 @@ OUString const & PasswordContainer::GetMasterPassword( const Reference< XInterac + + if( m_aMasterPasswd.isEmpty() && aHandler.is() ) + { +- OUString aEncodedMP; ++ OUString aEncodedMP, aEncodedMPIV; + bool bDefaultPassword = false; + +- if( !m_pStorageFile->getEncodedMP( aEncodedMP ) ) ++ if( !m_pStorageFile->getEncodedMP( aEncodedMP, aEncodedMPIV ) ) + aRMode = PasswordRequestMode_PASSWORD_CREATE; + else if ( aEncodedMP.isEmpty() ) + { +@@ -864,14 +910,15 @@ OUString const & PasswordContainer::GetMasterPassword( const Reference< XInterac + m_aMasterPasswd = aPass; + std::vector< OUString > aMaster( 1, m_aMasterPasswd ); + +- m_pStorageFile->setEncodedMP( EncodePasswords( aMaster, m_aMasterPasswd ) ); ++ OUString sIV = createIV(); ++ m_pStorageFile->setEncodedMP( EncodePasswords( aMaster, sIV, m_aMasterPasswd ), sIV ); + } + else + { + if (m_pStorageFile->getStorageVersion() == 0) + aPass = ReencodeAsOldHash(aPass); + +- std::vector< OUString > aRM( DecodePasswords( aEncodedMP, aPass, aRMode ) ); ++ std::vector< OUString > aRM( DecodePasswords( aEncodedMP, aEncodedMPIV, aPass, aRMode ) ); + if( aRM.empty() || aPass != aRM[0] ) + { + bAskAgain = true; +@@ -1028,7 +1075,8 @@ Sequence< UrlRecord > SAL_CALL PasswordContainer::getAllPersistent( const Refere + { + sal_Int32 oldLen = aUsers.getLength(); + aUsers.realloc( oldLen + 1 ); +- aUsers[ oldLen ] = UserRecord( aNP.GetUserName(), comphelper::containerToSequence( DecodePasswords( aNP.GetPersPasswords(), GetMasterPassword( xHandler ), css::task::PasswordRequestMode_PASSWORD_ENTER ) ) ); ++ aUsers[ oldLen ] = UserRecord( aNP.GetUserName(), comphelper::containerToSequence( DecodePasswords( aNP.GetPersPasswords(), aNP.GetPersistentIV(), ++ GetMasterPassword( xHandler ), css::task::PasswordRequestMode_PASSWORD_ENTER ) ) ); + } + + if( aUsers.hasElements() ) +@@ -1045,12 +1093,12 @@ Sequence< UrlRecord > SAL_CALL PasswordContainer::getAllPersistent( const Refere + sal_Bool SAL_CALL PasswordContainer::authorizateWithMasterPassword( const uno::Reference< task::XInteractionHandler >& xHandler ) + { + bool bResult = false; +- OUString aEncodedMP; ++ OUString aEncodedMP, aEncodedMPIV; + uno::Reference< task::XInteractionHandler > xTmpHandler = xHandler; + ::osl::MutexGuard aGuard( mMutex ); + + // the method should fail if there is no master password +- if( m_pStorageFile && m_pStorageFile->useStorage() && m_pStorageFile->getEncodedMP( aEncodedMP ) ) ++ if( m_pStorageFile && m_pStorageFile->useStorage() && m_pStorageFile->getEncodedMP( aEncodedMP, aEncodedMPIV ) ) + { + if ( aEncodedMP.isEmpty() ) + { +@@ -1118,8 +1166,8 @@ sal_Bool SAL_CALL PasswordContainer::changeMasterPassword( const uno::Reference< + + bool bCanChangePassword = true; + // if there is already a stored master password it should be entered by the user before the change happen +- OUString aEncodedMP; +- if( !m_aMasterPasswd.isEmpty() || m_pStorageFile->getEncodedMP( aEncodedMP ) ) ++ OUString aEncodedMP, aEncodedMPIV; ++ if( !m_aMasterPasswd.isEmpty() || m_pStorageFile->getEncodedMP( aEncodedMP, aEncodedMPIV ) ) + bCanChangePassword = authorizateWithMasterPassword( xTmpHandler ); + + if ( bCanChangePassword ) +@@ -1138,7 +1186,8 @@ sal_Bool SAL_CALL PasswordContainer::changeMasterPassword( const uno::Reference< + // store the new master password + m_aMasterPasswd = aPass; + std::vector< OUString > aMaster( 1, m_aMasterPasswd ); +- m_pStorageFile->setEncodedMP( EncodePasswords( aMaster, m_aMasterPasswd ) ); ++ OUString aIV = createIV(); ++ m_pStorageFile->setEncodedMP( EncodePasswords( aMaster, aIV, m_aMasterPasswd ), aIV ); + + // store all the entries with the new password + for ( const auto& rURL : aPersistent ) +@@ -1163,7 +1212,7 @@ void SAL_CALL PasswordContainer::removeMasterPassword() + if ( m_pStorageFile ) + { + m_aMasterPasswd.clear(); +- m_pStorageFile->setEncodedMP( OUString() ); // let the master password be removed from configuration ++ m_pStorageFile->setEncodedMP( OUString(), OUString() ); // let the master password be removed from configuration + } + } + +@@ -1174,8 +1223,8 @@ sal_Bool SAL_CALL PasswordContainer::hasMasterPassword( ) + if ( !m_pStorageFile ) + throw uno::RuntimeException(); + +- OUString aEncodedMP; +- return ( m_pStorageFile->useStorage() && m_pStorageFile->getEncodedMP( aEncodedMP ) ); ++ OUString aEncodedMP, aEncodedMPIV; ++ return ( m_pStorageFile->useStorage() && m_pStorageFile->getEncodedMP( aEncodedMP, aEncodedMPIV ) ); + } + + sal_Bool SAL_CALL PasswordContainer::allowPersistentStoring( sal_Bool bAllow ) +@@ -1222,8 +1271,8 @@ sal_Bool SAL_CALL PasswordContainer::useDefaultMasterPassword( const uno::Refere + + bool bCanChangePassword = true; + // if there is already a stored nondefault master password it should be entered by the user before the change happen +- OUString aEncodedMP; +- if( m_pStorageFile->getEncodedMP( aEncodedMP ) && !aEncodedMP.isEmpty() ) ++ OUString aEncodedMP, aEncodedMPIV; ++ if( m_pStorageFile->getEncodedMP( aEncodedMP, aEncodedMPIV ) && !aEncodedMP.isEmpty() ) + bCanChangePassword = authorizateWithMasterPassword( xTmpHandler ); + + if ( bCanChangePassword ) +@@ -1240,7 +1289,7 @@ sal_Bool SAL_CALL PasswordContainer::useDefaultMasterPassword( const uno::Refere + + // store the empty string to flag the default master password + m_aMasterPasswd = aPass; +- m_pStorageFile->setEncodedMP( OUString(), true ); ++ m_pStorageFile->setEncodedMP( OUString(), OUString(), true ); + + // store all the entries with the new password + for ( const auto& rURL : aPersistent ) +@@ -1264,8 +1313,8 @@ sal_Bool SAL_CALL PasswordContainer::isDefaultMasterPasswordUsed() + if ( !m_pStorageFile ) + throw uno::RuntimeException(); + +- OUString aEncodedMP; +- return ( m_pStorageFile->useStorage() && m_pStorageFile->getEncodedMP( aEncodedMP ) && aEncodedMP.isEmpty() ); ++ OUString aEncodedMP, aEncodedMPIV; ++ return ( m_pStorageFile->useStorage() && m_pStorageFile->getEncodedMP( aEncodedMP, aEncodedMPIV ) && aEncodedMP.isEmpty() ); + } + + +diff --git a/svl/source/passwordcontainer/passwordcontainer.hxx b/svl/source/passwordcontainer/passwordcontainer.hxx +index bf43b5903602..0454437b9dc2 100644 +--- a/svl/source/passwordcontainer/passwordcontainer.hxx ++++ b/svl/source/passwordcontainer/passwordcontainer.hxx +@@ -34,6 +34,7 @@ + #include <unotools/configitem.hxx> + #include <ucbhelper/interactionrequest.hxx> + ++#include <rtl/random.h> + #include <rtl/ref.hxx> + #include <osl/mutex.hxx> + +@@ -52,11 +53,12 @@ class NamePassRecord + ::std::vector< OUString > m_aMemPass; + + // persistent passwords are encrypted in one string +- bool m_bHasPersPass; ++ bool m_bHasPersPass; + OUString m_aPersPass; ++ OUString m_aPersistentIV; + + void InitArrays( bool bHasMemoryList, const ::std::vector< OUString >& aMemoryList, +- bool bHasPersistentList, const OUString& aPersistentList ) ++ bool bHasPersistentList, const OUString& aPersistentList, const OUString& aPersistentIV ) + { + m_bHasMemPass = bHasMemoryList; + if ( bHasMemoryList ) +@@ -64,7 +66,10 @@ class NamePassRecord + + m_bHasPersPass = bHasPersistentList; + if ( bHasPersistentList ) ++ { + m_aPersPass = aPersistentList; ++ m_aPersistentIV = aPersistentIV; ++ } + } + + public: +@@ -76,11 +81,12 @@ public: + { + } + +- NamePassRecord( const OUString& aName, const OUString& aPersistentList ) ++ NamePassRecord( const OUString& aName, const OUString& aPersistentList, const OUString& aPersistentIV ) + : m_aName( aName ) + , m_bHasMemPass( false ) + , m_bHasPersPass( true ) + , m_aPersPass( aPersistentList ) ++ , m_aPersistentIV( aPersistentIV ) + { + } + +@@ -89,7 +95,8 @@ public: + , m_bHasMemPass( false ) + , m_bHasPersPass( false ) + { +- InitArrays( aRecord.m_bHasMemPass, aRecord.m_aMemPass, aRecord.m_bHasPersPass, aRecord.m_aPersPass ); ++ InitArrays( aRecord.m_bHasMemPass, aRecord.m_aMemPass, ++ aRecord.m_bHasPersPass, aRecord.m_aPersPass, aRecord.m_aPersistentIV ); + } + + NamePassRecord& operator=( const NamePassRecord& aRecord ) +@@ -100,7 +107,9 @@ public: + + m_aMemPass.clear(); + m_aPersPass.clear(); +- InitArrays( aRecord.m_bHasMemPass, aRecord.m_aMemPass, aRecord.m_bHasPersPass, aRecord.m_aPersPass ); ++ m_aPersistentIV.clear(); ++ InitArrays( aRecord.m_bHasMemPass, aRecord.m_aMemPass, ++ aRecord.m_bHasPersPass, aRecord.m_aPersPass, aRecord.m_aPersistentIV ); + } + return *this; + } +@@ -136,15 +145,24 @@ public: + return OUString(); + } + ++ OUString GetPersistentIV() const ++ { ++ if ( m_bHasPersPass ) ++ return m_aPersistentIV; ++ ++ return OUString(); ++ } ++ + void SetMemPasswords( const ::std::vector< OUString >& aMemList ) + { + m_aMemPass = aMemList; + m_bHasMemPass = true; + } + +- void SetPersPasswords( const OUString& aPersList ) ++ void SetPersPasswords( const OUString& aPersList, const OUString& aPersIV ) + { + m_aPersPass = aPersList; ++ m_aPersistentIV = aPersIV; + m_bHasPersPass = true; + } + +@@ -159,6 +177,7 @@ public: + { + m_bHasPersPass = false; + m_aPersPass.clear(); ++ m_aPersistentIV.clear(); + } + } + +@@ -182,6 +201,7 @@ private: + PasswordContainer* mainCont; + bool hasEncoded; + OUString mEncoded; ++ OUString mEncodedIV; + + virtual void ImplCommit() override; + +@@ -202,8 +222,8 @@ public: + + sal_Int32 getStorageVersion(); + +- bool getEncodedMP( OUString& aResult ); +- void setEncodedMP( const OUString& aResult, bool bAcceptEmpty = false ); ++ bool getEncodedMP( OUString& aResult, OUString& aResultIV ); ++ void setEncodedMP( const OUString& aResult, const OUString& aResultIV, bool bAcceptEmpty = false ); + void setUseStorage( bool bUse ); + bool useStorage(); + +@@ -224,6 +244,29 @@ private: + css::uno::Reference< css::lang::XComponent > mComponent; + SysCredentialsConfig mUrlContainer; + ++ class RandomPool ++ { ++ private: ++ rtlRandomPool m_aRandomPool; ++ public: ++ RandomPool() : m_aRandomPool(rtl_random_createPool()) ++ { ++ } ++ rtlRandomPool get() ++ { ++ return m_aRandomPool; ++ } ++ ~RandomPool() ++ { ++ // Clean up random pool memory ++ rtl_random_destroyPool(m_aRandomPool); ++ } ++ }; ++ ++ RandomPool mRandomPool; ++ ++ OUString createIV(); ++ + /// @throws css::uno::RuntimeException + css::uno::Sequence< css::task::UserRecord > CopyToUserRecordSequence( + const ::std::vector< NamePassRecord >& original, +@@ -274,10 +317,10 @@ css::task::UrlRecord find( + const css::uno::Reference< css::task::XInteractionHandler >& Handler ); + + /// @throws css::uno::RuntimeException +- static ::std::vector< OUString > DecodePasswords( const OUString& aLine, const OUString& aMasterPassword, css::task::PasswordRequestMode mode ); ++ static ::std::vector< OUString > DecodePasswords( const OUString& aLine, const OUString& aIV, const OUString& aMasterPassword, css::task::PasswordRequestMode mode ); + + /// @throws css::uno::RuntimeException +- static OUString EncodePasswords(const std::vector< OUString >& lines, const OUString& aMasterPassword ); ++ static OUString EncodePasswords(const std::vector< OUString >& lines, const OUString& aIV, const OUString& aMasterPassword ); + + public: + PasswordContainer( const css::uno::Reference< css::uno::XComponentContext >& ); +-- +2.37.3 + diff --git a/0004-CVE-2022-2630-6-7-add-infobar-to-prompt-to-refresh-t.patch b/0004-CVE-2022-2630-6-7-add-infobar-to-prompt-to-refresh-t.patch new file mode 100644 index 0000000..4e4a905 --- /dev/null +++ b/0004-CVE-2022-2630-6-7-add-infobar-to-prompt-to-refresh-t.patch @@ -0,0 +1,113 @@ +From 0aac66b96fcfa7f8c2c265afec59eb4b3f51c131 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com> +Date: Wed, 23 Mar 2022 13:03:30 +0000 +Subject: [PATCH 4/5] CVE-2022-2630[6|7] add infobar to prompt to refresh to + replace old format + +Change-Id: Id99cbf2b50a4ebf289dae6fc67e22e20afcda35b +Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131976 +Tested-by: Jenkins +Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> +(cherry picked from commit bbd196ff82bda9f66b4ba32a412f10cefe6da60e) +Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132307 +Reviewed-by: Sophie Gautier <sophi@libreoffice.org> +Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com> +(cherry picked from commit c5d01b11db3c83cb4a89d3b388d78e20dd3990b5) +--- + include/sfx2/strings.hrc | 2 ++ + include/sfx2/viewfrm.hxx | 1 + + sfx2/source/view/viewfrm.cxx | 39 +++++++++++++++++++++++++++++++++++- + 3 files changed, 41 insertions(+), 1 deletion(-) + +diff --git a/include/sfx2/strings.hrc b/include/sfx2/strings.hrc +index cb627807d8c8..317dd88061df 100644 +--- a/include/sfx2/strings.hrc ++++ b/include/sfx2/strings.hrc +@@ -292,6 +292,8 @@ + #define STR_SIGNATURE_NOTVALIDATED_PARTIAL_OK NC_("STR_SIGNATURE_NOTVALIDATED_PARTIAL_OK", "The certificate could not be validated and the document is only partially signed.") + #define STR_SIGNATURE_OK NC_("STR_SIGNATURE_OK", "This document is digitally signed and the signature is valid.") + #define STR_SIGNATURE_SHOW NC_("STR_SIGNATURE_SHOW", "Show Signatures") ++#define STR_REFRESH_MASTER_PASSWORD NC_("STR_REFRESH_MASTER_PASSWORD", "The master password is stored in an outdated format, you should refresh it") ++#define STR_REFRESH_PASSWORD NC_("STR_REFRESH_PASSWORD", "Refresh Password") + + #define STR_CLOSE_PANE NC_("STR_CLOSE_PANE", "Close Pane") + +diff --git a/include/sfx2/viewfrm.hxx b/include/sfx2/viewfrm.hxx +index aedd362f8781..dc01c088f1f7 100644 +--- a/include/sfx2/viewfrm.hxx ++++ b/include/sfx2/viewfrm.hxx +@@ -64,6 +64,7 @@ protected: + DECL_LINK(WhatsNewHandler, weld::Button&, void); + DECL_LINK(SwitchReadOnlyHandler, weld::Button&, void); + DECL_LINK(SignDocumentHandler, weld::Button&, void); ++ DECL_DLLPRIVATE_LINK(RefreshMasterPasswordHdl, weld::Button&, void); + SAL_DLLPRIVATE void KillDispatcher_Impl(); + + virtual ~SfxViewFrame() override; +diff --git a/sfx2/source/view/viewfrm.cxx b/sfx2/source/view/viewfrm.cxx +index 46a7c4d9dc42..0f90af8bfb34 100644 +--- a/sfx2/source/view/viewfrm.cxx ++++ b/sfx2/source/view/viewfrm.cxx +@@ -32,7 +32,7 @@ + #include <com/sun/star/frame/XLoadable.hpp> + #include <com/sun/star/frame/XLayoutManager.hpp> + #include <com/sun/star/frame/XComponentLoader.hpp> +-#include <com/sun/star/drawing/XShapes.hpp> ++#include <com/sun/star/task/PasswordContainer.hpp> + #include <officecfg/Office/Common.hxx> + #include <officecfg/Setup.hxx> + #include <toolkit/helper/vclunohelper.hxx> +@@ -1413,6 +1413,22 @@ void SfxViewFrame::Notify( SfxBroadcaster& /*rBC*/, const SfxHint& rHint ) + batch->commit(); + } + ++ if (officecfg::Office::Common::Passwords::HasMaster::get() && ++ officecfg::Office::Common::Passwords::StorageVersion::get() == 0) ++ { ++ // master password stored in deprecated format ++ VclPtr<SfxInfoBarWindow> pOldMasterPasswordInfoBar = ++ AppendInfoBar("oldmasterpassword", "", ++ SfxResId(STR_REFRESH_MASTER_PASSWORD), InfobarType::DANGER, false); ++ if (pOldMasterPasswordInfoBar) ++ { ++ weld::Button& rButton = pOldMasterPasswordInfoBar->addButton(); ++ rButton.set_label(SfxResId(STR_REFRESH_PASSWORD)); ++ rButton.connect_clicked(LINK(this, ++ SfxViewFrame, RefreshMasterPasswordHdl)); ++ } ++ } ++ + // read-only infobar if necessary + const SfxViewShell *pVSh; + const SfxShell *pFSh; +@@ -1561,6 +1577,27 @@ IMPL_LINK_NOARG(SfxViewFrame, SignDocumentHandler, weld::Button&, void) + GetDispatcher()->Execute(SID_SIGNATURE); + } + ++IMPL_LINK_NOARG(SfxViewFrame, RefreshMasterPasswordHdl, weld::Button&, void) ++{ ++ bool bChanged = false; ++ try ++ { ++ Reference< task::XPasswordContainer2 > xMasterPasswd( ++ task::PasswordContainer::create(comphelper::getProcessComponentContext())); ++ ++ css::uno::Reference<css::frame::XFrame> xFrame = GetFrame().GetFrameInterface(); ++ css::uno::Reference<css::awt::XWindow> xContainerWindow = xFrame->getContainerWindow(); ++ ++ uno::Reference<task::XInteractionHandler> xTmpHandler(task::InteractionHandler::createWithParent(comphelper::getProcessComponentContext(), ++ xContainerWindow)); ++ bChanged = xMasterPasswd->changeMasterPassword(xTmpHandler); ++ } ++ catch (const Exception&) ++ {} ++ if (bChanged) ++ RemoveInfoBar(u"oldmasterpassword"); ++} ++ + void SfxViewFrame::Construct_Impl( SfxObjectShell *pObjSh ) + { + m_pImpl->bResizeInToOut = true; +-- +2.37.3 + diff --git a/gpgkey-C2839ECAD9408FBE9531C3E9F434A1EFAFEEAEA3.gpg.asc b/gpgkey-C2839ECAD9408FBE9531C3E9F434A1EFAFEEAEA3.gpg.asc new file mode 100644 index 0000000..5f4f64d --- /dev/null +++ b/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/libreoffice-7.1.8.1.tar.xz.asc b/libreoffice-7.1.8.1.tar.xz.asc new file mode 100644 index 0000000..a2b0514 --- /dev/null +++ b/libreoffice-7.1.8.1.tar.xz.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCAAdFiEEwoOeytlAj76VMcPp9DSh76/urqMFAmGqk2oACgkQ9DSh76/u +rqPr6A//ViToQECHwnSk30IjrjyAP516Cgad9cONe+vz1bSLAo7urIAOwLSFot+T +CjRFvKIvMRt4m2pPiBQTfEAIqq4rWur4jP/5SDRz4oAdrZUNGztJp+MKeLtH3yxR +DyWbGxtr+XoC2c5wbWmL8SPSRXoZQAdnxqb/ie4Em3DVmSohCLkMeTBMxd5vagDz +jJsCv31SyGhMEkZy8TD903u9CDlwTc5heD4LL7iIX6XIozzhvywPhj8qF+8F0mj3 +KJQBhJFoWJRYjb0Vi8pnnXpE/1USzaHtcLB3jkg5SwbrC0EzDxWBsLZiAbNA6jAk +RUch2zhzXoI/hyMKEG/pw2FdcvndDtnClYnszcx/hVBlS+35ZkLSp9SklUydj2Hg +/Xed86J+BY+IOIgiMHi2Vr8CDgzK3ZTYhqiFeKGqtf8Vxf6PcpJy2OYus56nCD9j +pyLyczwRPvlsXxiWY0kPLvOE4h7zYCw+vLlwH6VSSxEsD7G+vzFS2xt9l0z6SdhX +xDZF9V08TLpcWJ8/IkUdRutoOMazghOrfL97YjUjnWOVIxAAXA1EPietDLQPdcbB ++tCOqSqXaEkrM5dvZo07p3mEZjv1KxhWqtjE3DsyqKBfHt6d5j/q61+9/87uJxNT +Rgh1MLAxbeo6E2iwp3kmOS5NLfxXkRjTIKzqnxr02nXXOMXSOo0= +=I1bc +-----END PGP SIGNATURE----- diff --git a/libreoffice-base-symbolic.svg b/libreoffice-base-symbolic.svg new file mode 100644 index 0000000..16f3cef --- /dev/null +++ b/libreoffice-base-symbolic.svg @@ -0,0 +1,27 @@ +<?xml version='1.0' encoding='UTF-8' standalone='no'?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg xmlns:cc='http://creativecommons.org/ns#' xmlns:dc='http://purl.org/dc/elements/1.1/' sodipodi:docname='libreoffice-base-symbolic.svg' height='16' id='svg7384' xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' xmlns:svg='http://www.w3.org/2000/svg' inkscape:version='0.48.2 r9819' version='1.1' width='16' xmlns='http://www.w3.org/2000/svg'> + <metadata id='metadata90'> + <rdf:RDF> + <cc:Work rdf:about=''> + <dc:format>image/svg+xml</dc:format> + <dc:type rdf:resource='http://purl.org/dc/dcmitype/StillImage'/> + <dc:title>Gnome Symbolic Icon Theme</dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <sodipodi:namedview inkscape:bbox-paths='true' bordercolor='#666666' borderopacity='1' inkscape:current-layer='layer9' inkscape:cx='-65.007495' inkscape:cy='2.627089' gridtolerance='10' inkscape:guide-bbox='true' guidetolerance='10' id='namedview88' inkscape:object-nodes='false' inkscape:object-paths='false' objecttolerance='10' pagecolor='#555753' inkscape:pageopacity='1' inkscape:pageshadow='2' showborder='false' showgrid='false' showguides='true' inkscape:snap-bbox='false' inkscape:snap-bbox-midpoints='false' inkscape:snap-global='true' inkscape:snap-grids='true' inkscape:snap-nodes='true' inkscape:snap-others='false' inkscape:snap-to-guides='true' inkscape:window-height='1381' inkscape:window-maximized='1' inkscape:window-width='2560' inkscape:window-x='1600' inkscape:window-y='27' inkscape:zoom='22.627417'> + <inkscape:grid empspacing='2' enabled='true' id='grid4866' snapvisiblegridlinesonly='true' spacingx='1px' spacingy='1px' type='xygrid' visible='true'/> + </sodipodi:namedview> + <title id='title9167'>Gnome Symbolic Icon Theme</title> + <defs id='defs7386'/> + <g inkscape:groupmode='layer' id='layer9' inkscape:label='apps' style='display:inline' transform='translate(-143.00018,-195)'> + + <path inkscape:connector-curvature='0' d='m 154.28125,195.00525 c -0.27821,0.0752 -0.37465,0.49932 -0.15625,0.68727 l 3.1875,3.18646 c 0.21982,0.23021 0.69212,0.0371 0.6875,-0.28116 l 0,-3.21769 c -0.0122,-0.20318 -0.20269,-0.37897 -0.40625,-0.37488 l -3.1875,0 c -0.0413,-0.007 -0.0837,-0.007 -0.125,0 z' id='path18821' sodipodi:nodetypes='cccccccc' style='font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#bebebe;fill-opacity:1;stroke:none;stroke-width:0.79782361px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans'/> + <path inkscape:connector-curvature='0' d='m 144.84395,195.00525 c -0.4813,0.0874 -0.85238,0.53322 -0.84375,0.99967 l 0,13.99541 c 6e-5,0.52341 0.51276,0.99962 1.0625,0.99967 l 11.875,0 c 0.54975,-5e-5 1.06245,-0.47626 1.0625,-0.99967 l -0.0312,-7.59126 c 0.006,-0.26397 -0.0884,-0.52879 -0.28125,-0.71852 l -6.40625,-6.40414 c -0.19927,-0.18364 -0.47275,-0.28728 -0.75,-0.28116 l -5.46875,0 c -0.0654,-0.006 -0.15331,-0.006 -0.21875,0 z m 1.15625,1.99934 4,0 3.5,3.49885 2.5,2.49918 0,5.99804 -10,0 0,-11.99607 z' id='path18823' style='font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0pt;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;text-anchor:start;color:#000000;fill:#bebebe;fill-opacity:1;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;font-family:Andale Mono'/> + <path inkscape:connector-curvature='0' d='m 148.03145,203.7172 c 0,0.951 0,0 0,0.951 2.10295,1.09462 4,0 4,0 l 0,-0.951 c 0,0 -2.05961,1.05726 -4,0 z' id='path18853' sodipodi:nodetypes='ccccc' style='fill:#bebebe;fill-opacity:1;stroke:none'/> + <path sodipodi:cx='29.633902' sodipodi:cy='5.3320975' d='m 31.999999,5.3320975 a 2.3660977,0.66790265 0 1 1 -4.732195,0 2.3660977,0.66790265 0 1 1 4.732195,0 z' id='path18855' sodipodi:rx='2.3660977' sodipodi:ry='0.66790265' style='fill:#bebebe;fill-opacity:1;stroke:none' transform='matrix(0.84527458,0,0,1.4972236,124.98267,194.01666)' sodipodi:type='arc'/> + <path inkscape:connector-curvature='0' d='m 148.03145,205.7172 c 0,0.951 0,0 0,0.951 2.10295,1.09462 4,0 4,0 l 0,-0.951 c 0,0 -2.05961,1.05726 -4,0 z' id='path18864' sodipodi:nodetypes='ccccc' style='fill:#bebebe;fill-opacity:1;stroke:none'/> + </g> +</svg> diff --git a/libreoffice-calc-symbolic.svg b/libreoffice-calc-symbolic.svg new file mode 100644 index 0000000..bf56588 --- /dev/null +++ b/libreoffice-calc-symbolic.svg @@ -0,0 +1,27 @@ +<?xml version='1.0' encoding='UTF-8' standalone='no'?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg xmlns:cc='http://creativecommons.org/ns#' xmlns:dc='http://purl.org/dc/elements/1.1/' sodipodi:docname='libreoffice-calc-symbolic.svg' height='16' id='svg7384' xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' xmlns:svg='http://www.w3.org/2000/svg' inkscape:version='0.48.2 r9819' version='1.1' width='16' xmlns='http://www.w3.org/2000/svg'> + <metadata id='metadata90'> + <rdf:RDF> + <cc:Work rdf:about=''> + <dc:format>image/svg+xml</dc:format> + <dc:type rdf:resource='http://purl.org/dc/dcmitype/StillImage'/> + <dc:title>Gnome Symbolic Icon Theme</dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <sodipodi:namedview inkscape:bbox-paths='true' bordercolor='#666666' borderopacity='1' inkscape:current-layer='layer9' inkscape:cx='19.52026' inkscape:cy='1.7874' gridtolerance='10' inkscape:guide-bbox='true' guidetolerance='10' id='namedview88' inkscape:object-nodes='false' inkscape:object-paths='false' objecttolerance='10' pagecolor='#555753' inkscape:pageopacity='1' inkscape:pageshadow='2' showborder='false' showgrid='false' showguides='true' inkscape:snap-bbox='false' inkscape:snap-bbox-midpoints='false' inkscape:snap-global='true' inkscape:snap-grids='true' inkscape:snap-nodes='true' inkscape:snap-others='false' inkscape:snap-to-guides='true' inkscape:window-height='1381' inkscape:window-maximized='1' inkscape:window-width='2560' inkscape:window-x='1600' inkscape:window-y='27' inkscape:zoom='22.627417'> + <inkscape:grid empspacing='2' enabled='true' id='grid4866' snapvisiblegridlinesonly='true' spacingx='1px' spacingy='1px' type='xygrid' visible='true'/> + </sodipodi:namedview> + <title id='title9167'>Gnome Symbolic Icon Theme</title> + <defs id='defs7386'/> + <g inkscape:groupmode='layer' id='layer9' inkscape:label='apps' style='display:inline' transform='translate(-83.000198,-195)'> + + <path inkscape:connector-curvature='0' d='m 94.28125,195.00525 c -0.27821,0.0752 -0.37465,0.49932 -0.15625,0.68727 l 3.1875,3.18646 c 0.21982,0.23021 0.69212,0.0371 0.6875,-0.28116 l 0,-3.21769 c -0.0122,-0.20318 -0.20269,-0.37897 -0.40625,-0.37488 l -3.1875,0 c -0.0413,-0.007 -0.0837,-0.007 -0.125,0 z' id='path12998' sodipodi:nodetypes='cccccccc' style='font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#bebebe;fill-opacity:1;stroke:none;stroke-width:0.79782361px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans'/> + <path inkscape:connector-curvature='0' d='m 84.84395,195.00525 c -0.4813,0.0874 -0.85238,0.53322 -0.84375,0.99967 l 0,13.99541 c 6e-5,0.52341 0.51276,0.99962 1.0625,0.99967 l 11.875,0 c 0.54975,-5e-5 1.06245,-0.47626 1.0625,-0.99967 l -0.0312,-7.59126 c 0.006,-0.26397 -0.0884,-0.52879 -0.28125,-0.71852 l -6.40625,-6.40414 c -0.19927,-0.18364 -0.47275,-0.28728 -0.75,-0.28116 l -5.46875,0 c -0.0654,-0.006 -0.15331,-0.006 -0.21875,0 z m 1.15625,1.99934 4,0 3.5,3.49885 2.5,2.49918 0,5.99804 -10,0 0,-11.99607 z' id='path13000' style='font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0pt;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;text-anchor:start;color:#000000;fill:#bebebe;fill-opacity:1;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;font-family:Andale Mono'/> + <rect height='3' id='rect18593' style='fill:#bebebe;fill-opacity:1;stroke:none' transform='scale(-1,1)' width='1.9999983' x='-89.000198' y='204'/> + <rect height='2' id='rect18595' style='fill:#bebebe;fill-opacity:1;stroke:none' width='2.0000017' x='93.000198' y='205'/> + <rect height='5' id='rect18597' style='fill:#bebebe;fill-opacity:1;stroke:none' transform='scale(-1,1)' width='2' x='-92.000198' y='202'/> + </g> +</svg> diff --git a/libreoffice-draw-symbolic.svg b/libreoffice-draw-symbolic.svg new file mode 100644 index 0000000..7ca94ee --- /dev/null +++ b/libreoffice-draw-symbolic.svg @@ -0,0 +1,26 @@ +<?xml version='1.0' encoding='UTF-8' standalone='no'?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg xmlns:cc='http://creativecommons.org/ns#' xmlns:dc='http://purl.org/dc/elements/1.1/' sodipodi:docname='libreoffice-draw-symbolic.svg' height='16' id='svg7384' xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' xmlns:svg='http://www.w3.org/2000/svg' inkscape:version='0.48.2 r9819' version='1.1' width='16' xmlns='http://www.w3.org/2000/svg'> + <metadata id='metadata90'> + <rdf:RDF> + <cc:Work rdf:about=''> + <dc:format>image/svg+xml</dc:format> + <dc:type rdf:resource='http://purl.org/dc/dcmitype/StillImage'/> + <dc:title>Gnome Symbolic Icon Theme</dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <sodipodi:namedview inkscape:bbox-paths='true' bordercolor='#666666' borderopacity='1' inkscape:current-layer='layer9' inkscape:cx='-45.00751' inkscape:cy='2.627089' gridtolerance='10' inkscape:guide-bbox='true' guidetolerance='10' id='namedview88' inkscape:object-nodes='false' inkscape:object-paths='false' objecttolerance='10' pagecolor='#555753' inkscape:pageopacity='1' inkscape:pageshadow='2' showborder='false' showgrid='false' showguides='true' inkscape:snap-bbox='false' inkscape:snap-bbox-midpoints='false' inkscape:snap-global='true' inkscape:snap-grids='true' inkscape:snap-nodes='true' inkscape:snap-others='false' inkscape:snap-to-guides='true' inkscape:window-height='1381' inkscape:window-maximized='1' inkscape:window-width='2560' inkscape:window-x='1600' inkscape:window-y='27' inkscape:zoom='22.627417'> + <inkscape:grid empspacing='2' enabled='true' id='grid4866' snapvisiblegridlinesonly='true' spacingx='1px' spacingy='1px' type='xygrid' visible='true'/> + </sodipodi:namedview> + <title id='title9167'>Gnome Symbolic Icon Theme</title> + <defs id='defs7386'/> + <g inkscape:groupmode='layer' id='layer9' inkscape:label='apps' style='display:inline' transform='translate(-123.0002,-195)'> + + <path inkscape:connector-curvature='0' d='m 134.28125,195.00525 c -0.27821,0.0752 -0.37465,0.49932 -0.15625,0.68727 l 3.1875,3.18646 c 0.21982,0.23021 0.69212,0.0371 0.6875,-0.28116 l 0,-3.21769 c -0.0122,-0.20318 -0.20269,-0.37897 -0.40625,-0.37488 l -3.1875,0 c -0.0413,-0.007 -0.0837,-0.007 -0.125,0 z' id='path18767' sodipodi:nodetypes='cccccccc' style='font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#bebebe;fill-opacity:1;stroke:none;stroke-width:0.79782361px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans'/> + <path inkscape:connector-curvature='0' d='m 124.84395,195.00525 c -0.4813,0.0874 -0.85238,0.53322 -0.84375,0.99967 l 0,13.99541 c 6e-5,0.52341 0.51276,0.99962 1.0625,0.99967 l 11.875,0 c 0.54975,-5e-5 1.06245,-0.47626 1.0625,-0.99967 l -0.0312,-7.59126 c 0.006,-0.26397 -0.0884,-0.52879 -0.28125,-0.71852 l -6.40625,-6.40414 c -0.19927,-0.18364 -0.47275,-0.28728 -0.75,-0.28116 l -5.46875,0 c -0.0654,-0.006 -0.15331,-0.006 -0.21875,0 z m 1.15625,1.99934 4,0 3.5,3.49885 2.5,2.49918 0,5.99804 -10,0 0,-11.99607 z' id='path18769' style='font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0pt;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;text-anchor:start;color:#000000;fill:#bebebe;fill-opacity:1;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;font-family:Andale Mono'/> + <path inkscape:connector-curvature='0' d='m 132.0002,203 -3,4 6,0 z' id='path18798' sodipodi:nodetypes='cccc' style='fill:#bebebe;fill-opacity:1;stroke:none'/> + <path sodipodi:cx='8.203125' sodipodi:cy='4' d='M 10,4 A 1.7968751,2 0 1 1 6.4062499,4 1.7968751,2 0 1 1 10,4 z' id='path18805' sodipodi:rx='1.7968751' sodipodi:ry='2' style='fill:#bebebe;fill-opacity:1;stroke:none' transform='matrix(1.1130434,0,0,1,119.86977,197)' sodipodi:type='arc'/> + </g> +</svg> diff --git a/libreoffice-help-7.1.8.1.tar.xz.asc b/libreoffice-help-7.1.8.1.tar.xz.asc new file mode 100644 index 0000000..54936b8 --- /dev/null +++ b/libreoffice-help-7.1.8.1.tar.xz.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCAAdFiEEwoOeytlAj76VMcPp9DSh76/urqMFAmGqk3AACgkQ9DSh76/u +rqPfLA//T1a1rqVsDz3Ozx+EDtqslPvXN4RNHtn6kQOR+0d9JkuA/habErjHzpv3 +pH1OwKo8f+iOE9tWjZpUOIfDUcFSfX/5EyEGTWKqg51H8Eu8rD1OTs11+i/VDoqs +oSi7I2SrUu0nNfAMcgYK1omYXs5euN/9VySujAMo0n0CHz6bGwyGkObBZSkYYJUa +oSAxxkrLQRQcYWrPloDxJgsvySZ3gMnrxesZp0WQl2eCBZXEzKf/GJyjdZqrDPzV +3ClJ952tzqNcrSFzzXK+UduM5heQcXvglL951StimzLgefrR1uDfQ6KD7dnysVdz +N88EfsLpDMufBoQK8lf5COYiR4Mi4DE81/vqSr/dmZemtZDD49jrrpZGol47nILg +BkAHqfEmfYXScUIU4w6YYD4ZBmdw+9WctSbXHOuX5z9m6/52LLVuZ62caEW4ZoNg +W9hv+Okfd6S4MGavZzwMoYuEQXUPhxbFXCDx58G3zO3RrJDpjAeZouqrKjGNTu9G +bVZPGjiABAcnYVYHFZgJiwO5b93DGDco3+2LvgaodmaBCBBqjLuEekNOqZaKnH7a +ufcIkDHfZyBvHV8b6ISImmx4xuPSeln8K5RQV+Bz4s2CZapt8lryPZwOvNjLA9EP +lOy8+Dk3afwaGrwRUcpu16eCRZT6QvHE+bLd7TJd0OWusVBX7Mg= +=iDHZ +-----END PGP SIGNATURE----- diff --git a/libreoffice-impress-symbolic.svg b/libreoffice-impress-symbolic.svg new file mode 100644 index 0000000..9a16f76 --- /dev/null +++ b/libreoffice-impress-symbolic.svg @@ -0,0 +1,25 @@ +<?xml version='1.0' encoding='UTF-8' standalone='no'?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg xmlns:cc='http://creativecommons.org/ns#' xmlns:dc='http://purl.org/dc/elements/1.1/' sodipodi:docname='libreoffice-impress-symbolic.svg' height='16' id='svg7384' xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' xmlns:svg='http://www.w3.org/2000/svg' inkscape:version='0.48.2 r9819' version='1.1' width='16' xmlns='http://www.w3.org/2000/svg'> + <metadata id='metadata90'> + <rdf:RDF> + <cc:Work rdf:about=''> + <dc:format>image/svg+xml</dc:format> + <dc:type rdf:resource='http://purl.org/dc/dcmitype/StillImage'/> + <dc:title>Gnome Symbolic Icon Theme</dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <sodipodi:namedview inkscape:bbox-paths='true' bordercolor='#666666' borderopacity='1' inkscape:current-layer='layer9' inkscape:cx='-25.00751' inkscape:cy='2.627089' gridtolerance='10' inkscape:guide-bbox='true' guidetolerance='10' id='namedview88' inkscape:object-nodes='false' inkscape:object-paths='false' objecttolerance='10' pagecolor='#555753' inkscape:pageopacity='1' inkscape:pageshadow='2' showborder='false' showgrid='false' showguides='true' inkscape:snap-bbox='false' inkscape:snap-bbox-midpoints='false' inkscape:snap-global='true' inkscape:snap-grids='true' inkscape:snap-nodes='true' inkscape:snap-others='false' inkscape:snap-to-guides='true' inkscape:window-height='1381' inkscape:window-maximized='1' inkscape:window-width='2560' inkscape:window-x='1600' inkscape:window-y='27' inkscape:zoom='22.627417'> + <inkscape:grid empspacing='2' enabled='true' id='grid4866' snapvisiblegridlinesonly='true' spacingx='1px' spacingy='1px' type='xygrid' visible='true'/> + </sodipodi:namedview> + <title id='title9167'>Gnome Symbolic Icon Theme</title> + <defs id='defs7386'/> + <g inkscape:groupmode='layer' id='layer9' inkscape:label='apps' style='display:inline' transform='translate(-103.0002,-195)'> + + <path inkscape:connector-curvature='0' d='m 114.28125,195.00525 c -0.27821,0.0752 -0.37465,0.49932 -0.15625,0.68727 l 3.1875,3.18646 c 0.21982,0.23021 0.69212,0.0371 0.6875,-0.28116 l 0,-3.21769 c -0.0122,-0.20318 -0.20269,-0.37897 -0.40625,-0.37488 l -3.1875,0 c -0.0413,-0.007 -0.0837,-0.007 -0.125,0 z' id='path18661' sodipodi:nodetypes='cccccccc' style='font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#bebebe;fill-opacity:1;stroke:none;stroke-width:0.79782361px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans'/> + <path inkscape:connector-curvature='0' d='m 104.84395,195.00525 c -0.4813,0.0874 -0.85238,0.53322 -0.84375,0.99967 l 0,13.99541 c 6e-5,0.52341 0.51276,0.99962 1.0625,0.99967 l 11.875,0 c 0.54975,-5e-5 1.06245,-0.47626 1.0625,-0.99967 l -0.0312,-7.59126 c 0.006,-0.26397 -0.0884,-0.52879 -0.28125,-0.71852 l -6.40625,-6.40414 c -0.19927,-0.18364 -0.47275,-0.28728 -0.75,-0.28116 l -5.46875,0 c -0.0654,-0.006 -0.15331,-0.006 -0.21875,0 z m 1.15625,1.99934 4,0 3.5,3.49885 2.5,2.49918 0,5.99804 -10,0 0,-11.99607 z' id='path18663' style='font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0pt;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;text-anchor:start;color:#000000;fill:#bebebe;fill-opacity:1;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;font-family:Andale Mono'/> + <path inkscape:connector-curvature='0' d='m 107.5002,203 c -0.277,0 -0.5,0.223 -0.5,0.5 l 0,4 c 0,0.277 0.223,0.5 0.5,0.5 l 7,0 c 0.277,0 0.5,-0.223 0.5,-0.5 l 0,-4 c 0,-0.277 -0.223,-0.5 -0.5,-0.5 l -7,0 z m 1,1 c 0.27614,0 0.5,0.22386 0.5,0.5 0,0.27614 -0.22386,0.5 -0.5,0.5 -0.27614,0 -0.5,-0.22386 -0.5,-0.5 0,-0.27614 0.22386,-0.5 0.5,-0.5 z m 2,0 3,0 c 0.277,0 0.5,0.223 0.5,0.5 0,0.277 -0.223,0.5 -0.5,0.5 l -3,0 c -0.277,0 -0.5,-0.223 -0.5,-0.5 0,-0.277 0.223,-0.5 0.5,-0.5 z m -2,2 c 0.27614,0 0.5,0.22386 0.5,0.5 0,0.27614 -0.22386,0.5 -0.5,0.5 -0.27614,0 -0.5,-0.22386 -0.5,-0.5 0,-0.27614 0.22386,-0.5 0.5,-0.5 z m 2,0 3,0 c 0.277,0 0.5,0.223 0.5,0.5 0,0.277 -0.223,0.5 -0.5,0.5 l -3,0 c -0.277,0 -0.5,-0.223 -0.5,-0.5 0,-0.277 0.223,-0.5 0.5,-0.5 z' id='rect18746' style='fill:#bebebe;fill-opacity:1;stroke:none'/> + </g> +</svg> diff --git a/libreoffice-main-symbolic.svg b/libreoffice-main-symbolic.svg new file mode 100644 index 0000000..6bd3103 --- /dev/null +++ b/libreoffice-main-symbolic.svg @@ -0,0 +1,24 @@ +<?xml version='1.0' encoding='UTF-8' standalone='no'?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg xmlns:cc='http://creativecommons.org/ns#' xmlns:dc='http://purl.org/dc/elements/1.1/' sodipodi:docname='libreoffice-main-symbolic.svg' height='16' id='svg7384' xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' xmlns:svg='http://www.w3.org/2000/svg' inkscape:version='0.48.2 r9819' version='1.1' width='16' xmlns='http://www.w3.org/2000/svg'> + <metadata id='metadata90'> + <rdf:RDF> + <cc:Work rdf:about=''> + <dc:format>image/svg+xml</dc:format> + <dc:type rdf:resource='http://purl.org/dc/dcmitype/StillImage'/> + <dc:title>Gnome Symbolic Icon Theme</dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <sodipodi:namedview inkscape:bbox-paths='true' bordercolor='#666666' borderopacity='1' inkscape:current-layer='layer9' inkscape:cx='34.99249' inkscape:cy='2.627089' gridtolerance='10' inkscape:guide-bbox='true' guidetolerance='10' id='namedview88' inkscape:object-nodes='false' inkscape:object-paths='false' objecttolerance='10' pagecolor='#555753' inkscape:pageopacity='1' inkscape:pageshadow='2' showborder='false' showgrid='false' showguides='true' inkscape:snap-bbox='false' inkscape:snap-bbox-midpoints='false' inkscape:snap-global='true' inkscape:snap-grids='true' inkscape:snap-nodes='true' inkscape:snap-others='false' inkscape:snap-to-guides='true' inkscape:window-height='1381' inkscape:window-maximized='1' inkscape:window-width='2560' inkscape:window-x='1600' inkscape:window-y='27' inkscape:zoom='22.627417'> + <inkscape:grid empspacing='2' enabled='true' id='grid4866' snapvisiblegridlinesonly='true' spacingx='1px' spacingy='1px' type='xygrid' visible='true'/> + </sodipodi:namedview> + <title id='title9167'>Gnome Symbolic Icon Theme</title> + <defs id='defs7386'/> + <g inkscape:groupmode='layer' id='layer9' inkscape:label='apps' style='display:inline' transform='translate(-43.000198,-195)'> + + <path inkscape:connector-curvature='0' d='m 54.28125,195.00525 c -0.27821,0.0752 -0.37465,0.49932 -0.15625,0.68727 l 3.1875,3.18646 c 0.21982,0.23021 0.69212,0.0371 0.6875,-0.28116 l 0,-3.21769 c -0.0122,-0.20318 -0.20269,-0.37897 -0.40625,-0.37488 l -3.1875,0 c -0.0413,-0.007 -0.0837,-0.007 -0.125,0 z' id='path6692' sodipodi:nodetypes='cccccccc' style='font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#bebebe;fill-opacity:1;stroke:none;stroke-width:0.79782361px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans'/> + <path inkscape:connector-curvature='0' d='m 44.84395,195.00525 c -0.4813,0.0874 -0.85238,0.53322 -0.84375,0.99967 l 0,13.99541 c 6e-5,0.52341 0.51276,0.99962 1.0625,0.99967 l 11.875,0 c 0.54975,-5e-5 1.06245,-0.47626 1.0625,-0.99967 l -0.0312,-7.59126 c 0.006,-0.26397 -0.0884,-0.52879 -0.28125,-0.71852 l -6.40625,-6.40414 c -0.19927,-0.18364 -0.47275,-0.28728 -0.75,-0.28116 l -5.46875,0 c -0.0654,-0.006 -0.15331,-0.006 -0.21875,0 z m 1.15625,1.99934 4,0 3.5,3.49885 2.5,2.49918 0,5.99804 -10,0 0,-11.99607 z' id='path14007' style='font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0pt;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;text-anchor:start;color:#000000;fill:#bebebe;fill-opacity:1;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;font-family:Andale Mono'/> + </g> +</svg> diff --git a/libreoffice-math-symbolic.svg b/libreoffice-math-symbolic.svg new file mode 100644 index 0000000..66cd9e7 --- /dev/null +++ b/libreoffice-math-symbolic.svg @@ -0,0 +1,25 @@ +<?xml version='1.0' encoding='UTF-8' standalone='no'?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg xmlns:cc='http://creativecommons.org/ns#' xmlns:dc='http://purl.org/dc/elements/1.1/' sodipodi:docname='libreoffice-math-symbolic.svg' height='16' id='svg7384' xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' xmlns:svg='http://www.w3.org/2000/svg' inkscape:version='0.48.2 r9819' version='1.1' width='16' xmlns='http://www.w3.org/2000/svg'> + <metadata id='metadata90'> + <rdf:RDF> + <cc:Work rdf:about=''> + <dc:format>image/svg+xml</dc:format> + <dc:type rdf:resource='http://purl.org/dc/dcmitype/StillImage'/> + <dc:title>Gnome Symbolic Icon Theme</dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <sodipodi:namedview inkscape:bbox-paths='true' bordercolor='#666666' borderopacity='1' inkscape:current-layer='layer9' inkscape:cx='-85.00751' inkscape:cy='2.627089' gridtolerance='10' inkscape:guide-bbox='true' guidetolerance='10' id='namedview88' inkscape:object-nodes='false' inkscape:object-paths='false' objecttolerance='10' pagecolor='#555753' inkscape:pageopacity='1' inkscape:pageshadow='2' showborder='false' showgrid='false' showguides='true' inkscape:snap-bbox='false' inkscape:snap-bbox-midpoints='false' inkscape:snap-global='true' inkscape:snap-grids='true' inkscape:snap-nodes='true' inkscape:snap-others='false' inkscape:snap-to-guides='true' inkscape:window-height='1381' inkscape:window-maximized='1' inkscape:window-width='2560' inkscape:window-x='1600' inkscape:window-y='27' inkscape:zoom='22.627417'> + <inkscape:grid empspacing='2' enabled='true' id='grid4866' snapvisiblegridlinesonly='true' spacingx='1px' spacingy='1px' type='xygrid' visible='true'/> + </sodipodi:namedview> + <title id='title9167'>Gnome Symbolic Icon Theme</title> + <defs id='defs7386'/> + <g inkscape:groupmode='layer' id='layer9' inkscape:label='apps' style='display:inline' transform='translate(-163.0002,-195)'> + + <path inkscape:connector-curvature='0' d='m 174.28125,195.00525 c -0.27821,0.0752 -0.37465,0.49932 -0.15625,0.68727 l 3.1875,3.18646 c 0.21982,0.23021 0.69212,0.0371 0.6875,-0.28116 l 0,-3.21769 c -0.0122,-0.20318 -0.20269,-0.37897 -0.40625,-0.37488 l -3.1875,0 c -0.0413,-0.007 -0.0837,-0.007 -0.125,0 z' id='path18879' sodipodi:nodetypes='cccccccc' style='font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#bebebe;fill-opacity:1;stroke:none;stroke-width:0.79782361px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans'/> + <path inkscape:connector-curvature='0' d='m 164.84395,195.00525 c -0.4813,0.0874 -0.85238,0.53322 -0.84375,0.99967 l 0,13.99541 c 6e-5,0.52341 0.51276,0.99962 1.0625,0.99967 l 11.875,0 c 0.54975,-5e-5 1.06245,-0.47626 1.0625,-0.99967 l -0.0312,-7.59126 c 0.006,-0.26397 -0.0884,-0.52879 -0.28125,-0.71852 l -6.40625,-6.40414 c -0.19927,-0.18364 -0.47275,-0.28728 -0.75,-0.28116 l -5.46875,0 c -0.0654,-0.006 -0.15331,-0.006 -0.21875,0 z m 1.15625,1.99934 4,0 3.5,3.49885 2.5,2.49918 0,5.99804 -10,0 0,-11.99607 z' id='path18881' style='font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0pt;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;text-anchor:start;color:#000000;fill:#bebebe;fill-opacity:1;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;font-family:Andale Mono'/> + <path inkscape:connector-curvature='0' d='m 174.0002,201 -2,0 -2,4 -1,-2 -2,0 0,2 1.45956,0 1.54044,3 2.6029,-5 1.3971,0 z' id='rect13006-2' sodipodi:nodetypes='ccccccccccc' style='fill:#bebebe;fill-opacity:1;stroke:none'/> + </g> +</svg> diff --git a/libreoffice-multiliblauncher.sh b/libreoffice-multiliblauncher.sh new file mode 100644 index 0000000..05c9d3f --- /dev/null +++ b/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/libreoffice-translations-7.1.8.1.tar.xz.asc b/libreoffice-translations-7.1.8.1.tar.xz.asc new file mode 100644 index 0000000..089eb26 --- /dev/null +++ b/libreoffice-translations-7.1.8.1.tar.xz.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCAAdFiEEwoOeytlAj76VMcPp9DSh76/urqMFAmGqk3EACgkQ9DSh76/u +rqPU8g/8DwKupld+tKgdYYTjrbxn0eKRU8Rj9J94Z6MTr/hgxC+lewywg/ks+D0J +YFn2Stc95Z52bm9k7dg/sGqJYYXTACiAnvtTWe6jnk9Ze4k/4iMbIoTivnI5C2dU +M96crGxkFbpEJAEOaMTClckt3cJ0Cfm3s+IHZS6ydjjOnYDv8PaRcOZbbRnzQtuh +8/vit3Xlp3RN2dxCilgv3JnL4woTCKnWIuL/nBHk606DcFlHYBLsgAQdA/Nbt0hs +KG2S3PiAgB2hfuoduNV33IfEkCn/nzA1GxGhkv6WLYh/PuCxG0KULsNndrTOD2gU +Vxyiun+eMk9X/Rh6Pqd7Vn75bttsHEiorScejXRkcZcaM+vyKapHgf2N+ynXDU4k +amzhaimwroTwt1jFX046NsuFIUY8Ck4xlbWkPv34u/EgZRaKHAX0PhNCZJigTsTM +vagEyHYvo+WLDk+IxNRVBx5ceTbB8PzNXQc+cyvnoy/RuswqsjaijSrbautiyM2m +jStUAiOxBKanye8IztJuCSUPNczfi85bZ2PDxuAxytAgfwKpiEvMCJR4lpoOpeW4 +EXuFWzNnpH6j28aro2fQQhZcp4XSxQuxkrjJ5+gtsIxyiCSizVfPzrAYNGAtwrHI +f9q+sKdmywywUZ6W2LXYL8f3excZddjum9aVm2cmpezy1mXLX/k= +=a6IV +-----END PGP SIGNATURE----- diff --git a/libreoffice-writer-symbolic.svg b/libreoffice-writer-symbolic.svg new file mode 100644 index 0000000..e97b545 --- /dev/null +++ b/libreoffice-writer-symbolic.svg @@ -0,0 +1,28 @@ +<?xml version='1.0' encoding='UTF-8' standalone='no'?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg xmlns:cc='http://creativecommons.org/ns#' xmlns:dc='http://purl.org/dc/elements/1.1/' sodipodi:docname='libreoffice-writer-symbolic.svg' height='16' id='svg7384' xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' xmlns:svg='http://www.w3.org/2000/svg' inkscape:version='0.48.2 r9819' version='1.1' width='16' xmlns='http://www.w3.org/2000/svg'> + <metadata id='metadata90'> + <rdf:RDF> + <cc:Work rdf:about=''> + <dc:format>image/svg+xml</dc:format> + <dc:type rdf:resource='http://purl.org/dc/dcmitype/StillImage'/> + <dc:title>Gnome Symbolic Icon Theme</dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <sodipodi:namedview inkscape:bbox-paths='true' bordercolor='#666666' borderopacity='1' inkscape:current-layer='layer9' inkscape:cx='14.99249' inkscape:cy='2.627089' gridtolerance='10' inkscape:guide-bbox='true' guidetolerance='10' id='namedview88' inkscape:object-nodes='false' inkscape:object-paths='false' objecttolerance='10' pagecolor='#555753' inkscape:pageopacity='1' inkscape:pageshadow='2' showborder='false' showgrid='false' showguides='true' inkscape:snap-bbox='false' inkscape:snap-bbox-midpoints='false' inkscape:snap-global='true' inkscape:snap-grids='true' inkscape:snap-nodes='true' inkscape:snap-others='false' inkscape:snap-to-guides='true' inkscape:window-height='1381' inkscape:window-maximized='1' inkscape:window-width='2560' inkscape:window-x='1600' inkscape:window-y='27' inkscape:zoom='22.627417'> + <inkscape:grid empspacing='2' enabled='true' id='grid4866' snapvisiblegridlinesonly='true' spacingx='1px' spacingy='1px' type='xygrid' visible='true'/> + </sodipodi:namedview> + <title id='title9167'>Gnome Symbolic Icon Theme</title> + <defs id='defs7386'/> + <g inkscape:groupmode='layer' id='layer9' inkscape:label='apps' style='display:inline' transform='translate(-63.000198,-195)'> + + <path inkscape:connector-curvature='0' d='m 74.28125,195.00525 c -0.27821,0.0752 -0.37465,0.49932 -0.15625,0.68727 l 3.1875,3.18646 c 0.21982,0.23021 0.69212,0.0371 0.6875,-0.28116 l 0,-3.21769 c -0.0122,-0.20318 -0.20269,-0.37897 -0.40625,-0.37488 l -3.1875,0 c -0.0413,-0.007 -0.0837,-0.007 -0.125,0 z' id='path6699' sodipodi:nodetypes='cccccccc' style='font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#bebebe;fill-opacity:1;stroke:none;stroke-width:0.79782361px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans'/> + <path inkscape:connector-curvature='0' d='m 64.84395,195.00525 c -0.4813,0.0874 -0.85238,0.53322 -0.84375,0.99967 l 0,13.99541 c 6e-5,0.52341 0.51276,0.99962 1.0625,0.99967 l 11.875,0 c 0.54975,-5e-5 1.06245,-0.47626 1.0625,-0.99967 l -0.0312,-7.59126 c 0.006,-0.26397 -0.0884,-0.52879 -0.28125,-0.71852 l -6.40625,-6.40414 c -0.19927,-0.18364 -0.47275,-0.28728 -0.75,-0.28116 l -5.46875,0 c -0.0654,-0.006 -0.15331,-0.006 -0.21875,0 z m 1.15625,1.99934 4,0 3.5,3.49885 2.5,2.49918 0,5.99804 -10,0 0,-11.99607 z' id='path6701' style='font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0pt;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;text-anchor:start;color:#000000;fill:#bebebe;fill-opacity:1;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;font-family:Andale Mono'/> + <rect height='0.96875' id='rect12972' style='fill:#bebebe;fill-opacity:1;stroke:none' width='2.9999998' x='68.000198' y='206'/> + <rect height='1.0625' id='rect12974' style='fill:#bebebe;fill-opacity:1;stroke:none' width='6' x='68.000198' y='203.96875'/> + <rect height='0.96875' id='rect12976' style='fill:#bebebe;fill-opacity:1;stroke:none' width='5' x='68.000198' y='202.03125'/> + <rect height='0.96875' id='rect12980' style='fill:#bebebe;fill-opacity:1;stroke:none' width='2.9999983' x='68.000198' y='200.03125'/> + </g> +</svg> diff --git a/libreoffice.spec b/libreoffice.spec new file mode 100644 index 0000000..c35834b --- /dev/null +++ b/libreoffice.spec @@ -0,0 +1,4816 @@ +# download path contains version without the last (fourth) digit +%global libo_version 7.1.8 +# 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 +%if 0%{?rhel} +%global vendoroption --with-vendor="Red Hat, Inc." +%endif +%if 0%{?fedora} +%global vendoroption --with-vendor="The Fedora Project" +%endif +%global libo_python python3 +%global libo_python_executable %{__python3} +%global libo_python_sitearch %{python3_sitearch} +# 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 + +# remove workdir at the end of %%build, to allow build on space-constrained machines +%ifarch s390 s390x +%bcond_without smallbuild +%else +%bcond_with smallbuild +%endif + +# 'serverconfig' is tuned for non-interactive installs +%ifarch s390 s390x aarch64 +%bcond_without serverconfig +%else +%bcond_with serverconfig +%endif + +# generated by %%langpack definitions +%global langpack_langs %{nil} + +%global bundling_options %{nil} + +Summary: Free Software Productivity Suite +Name: libreoffice +Epoch: 1 +Version: %{libo_version}.1 +Release: 8%{?libo_prerelease}%{?dist} +License: (MPLv1.1 or LGPLv3+) and LGPLv3 and LGPLv2+ and BSD and (MPLv1.1 or GPLv2 or LGPLv2 or Netscape) and Public Domain and ASL 2.0 and MPLv2.0 and CC0 +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 +Source10: %{external_url}/a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip +%if 0%{?fedora} +Source11: %{external_url}/798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip +Source12: %{external_url}/35c94d2df8893241173de1d16b6034c0-swingExSrc.zip +%endif +#Unfortunately later versions of hsqldb changed the file format, so if we use a later version we loose +#backwards compatability. +Source13: %{external_url}/17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip +Source14: %{external_url}/../extern/f543e6e2d7275557a839a164941c0a86e5f2c3f2a0042bfc434c88c6dde9e140-opens___.ttf +%global bundling_options %{?bundling_options} --without-system-hsqldb + +Provides: bundled(hsqldb) = 1.8.0 +%if 0%{?fedora} +Provides: bundled(rhino) = 1.5 +%endif +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: git +BuildRequires: gnupg2 +BuildRequires: gperf +BuildRequires: icu +BuildRequires: libtool-ltdl-devel +BuildRequires: make +BuildRequires: mariadb-connector-c-devel +BuildRequires: perl(Digest::MD5) +BuildRequires: perl(base) +%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: fontpackages-devel +%if 0%{?fedora} +BuildRequires: firebird-devel +BuildRequires: libqrcodegencpp-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(dbus-glib-1) +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(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.5) +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(libvisio-0.1) +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) +%if 0%{?fedora} > 33 || 0%{?rhel} > 8 +BuildRequires: pkgconfig(liborcus-0.16) +%else +BuildRequires: pkgconfig(liborcus-0.15) +%endif +BuildRequires: pkgconfig(mdds-1.5) +BuildRequires: libnumbertext-devel + +# java stuff +BuildRequires: ant +%if 0%{?fedora} +BuildRequires: bsh +%endif +BuildRequires: java-devel +BuildRequires: junit +BuildRequires: pentaho-reporting-flow-engine + +# fonts needed for tests +BuildRequires: dejavu-sans-fonts +BuildRequires: google-crosextra-carlito-fonts +BuildRequires: liberation-mono-fonts +BuildRequires: liberation-sans-fonts +BuildRequires: liberation-serif-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-fix-detecting-qrcodegen.patch +Patch4: 0001-rhbz-1918152-fix-FTBFS.patch +Patch5: 0001-Get-rid-of-apache-commons-logging.patch +Patch6: 0001-gtk3-workaround-missing-gdk_threads_enter-calls-in-e.patch +Patch7: 0001-Replace-inet_ntoa-with-inet_ntop.patch +Patch8: 0001-Simplify-construction-of-a-hardcoded-IPv4-address.patch +Patch9: 0001-math.desktop-include-Spreadsheet-category.patch +Patch10: 0001-rhbz-1980800-allow-convert-to-csv-to-write-each-shee.patch +Patch11: 0001-make-with-idlc-cpp-cpp-work-for-gcc-cpp-as-a-ucpp-re.patch +Patch12: 0001-Revert-tdf-101630-gdrive-support-w-oAuth-and-Drive-A.patch +Patch13: 0001-document-new-shouldn-t-get-prefixed-to-become-libreo.patch +Patch14: 0001-Resolves-tdf-145567-restore-focus-to-the-usual-frame.patch +Patch15: 0001-Resolves-tdf-140250-don-t-share-adjustments-between-.patch +Patch16: 0001-fix-comparison-when-searching-cache.patch +Patch17: 0001-tdf-121546-sw-don-t-use-undo-array-s-m_pOutlineNodes.patch +Patch18: 0001-annocheck-warning-about-missing-.note.gnu.property-s.patch +Patch19: 0001-EditTextObjectImpl-copy-ctor-doesn-t-exactly-copy-Ed.patch +Patch20: 0001-CVE-2021-25636.patch +Patch21: 0001-Resolves-rhbz-2081661-gtk-critical-gtk_tree_view_scr.patch +Patch22: 0001-CVE-2022-26305-compare-authors-using-Thumbprint.patch +Patch23: 0002-CVE-2022-26307-make-hash-encoding-match-decoding.patch +Patch24: 0003-CVE-2022-26306-add-Initialization-Vectors-to-passwor.patch +Patch25: 0004-CVE-2022-2630-6-7-add-infobar-to-prompt-to-refresh-t.patch + +# not upstreamed +Patch500: 0001-disable-libe-book-support.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: dejavu-sans-fonts, dejavu-serif-fonts, dejavu-sans-mono-fonts +Requires: google-crosextra-caladea-fonts, google-crosextra-carlito-fonts +Requires: %{name}-langpack-en = %{epoch}:%{version}-%{release} +# rhbz#949106 libreoffice-core drags in both openjdk 1.7.0 and 1.8.0 +Requires: java-headless >= 1:1.6 +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} +%if 0%{?rhel} +Obsoletes: libreoffice-bsh < 1:6.2.2.3 +Obsoletes: libreoffice-rhino < 1:6.2.2.3 +%endif + +%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 +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. + +%if 0%{?fedora} +%package bsh +Summary: BeanShell support for LibreOffice +Requires: bsh +Requires: java >= 1:1.6 +Requires: %{name}-core%{?_isa} = %{epoch}:%{version}-%{release} + +%description bsh +Support BeanShell scripts in LibreOffice. + +%package rhino +Summary: JavaScript support for LibreOffice +Requires: java >= 1:1.6 +Requires: %{name}-core%{?_isa} = %{epoch}:%{version}-%{release} + +%description rhino +Support JavaScript scripts in LibreOffice. +%endif + +%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. + +%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 +#rhbz#1164551 we want to ensure that a libjvm.so of this arch is available +Requires: %{name}-ure-common = %{epoch}:%{version}-%{release} +Requires: unzip%{?_isa}, libjvm.so%{?mark64} + +%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 +BuildArch: noarch + +%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}, java-devel + +%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 and ui-previewer 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 +BuildArch: noarch + +%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. + +%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}}} \ +%if 0%{?rhel} && 0%{?rhel} < 9 \ +%{-f:Requires: font(:lang=%{-f*})}%{!-f:%{-F:Requires: font(:lang=%{lang})}} \ +%else \ +%{-f:Recommends: langpacks-%{-f*}}%{!-f:%{-F:Recommends: langpacks-%{lang}}} \ +%endif \ +%{-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} && 0%{?rhel} < 9 + +%define langpack_lang Brazilian Portuguese +%langpack -l pt-BR -n %{langpack_lang} -f pt -h pt -y pt -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 + +%if 0%{?rhel} && 0%{?rhel} < 9 + +%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 + +%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 + +%else + +%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 + +%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 + +%endif + +%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 + +# This is normally done by %%autosetup -S git_am, +# but that does not work with multiple -b options, so we use plain %%setup above +%global __scm git_am +%__scm_setup_git_am + +#Customize Palette to add Red Hat colours +(head -n -1 extras/source/palettes/standard.soc && \ + echo -e ' <draw:color draw:name="Red Hat 1" draw:color="#cc0000"/> + <draw:color draw:name="Red Hat 2" draw:color="#0093d9"/> + <draw:color draw:name="Red Hat 3" draw:color="#ff8d00"/> + <draw:color draw:name="Red Hat 4" draw:color="#abb400"/> + <draw:color draw:name="Red Hat 5" draw:color="#4e376b"/>' && \ + tail -n 1 extras/source/palettes/standard.soc) > redhat.soc +mv -f redhat.soc extras/source/palettes/standard.soc +git commit -q -a -m 'add Red Hat colors to palette' + +# apply patches +%autopatch -M 99 +%if 0%{?rhel} +%apply_patch -q %{PATCH500} +%endif + +sed -i -e /CppunitTest_sc_array_functions_test/d sc/Module_sc.mk # ppc64le +sed -i -e /CppunitTest_sc_addin_functions_test/d sc/Module_sc.mk # aarch64/ppc64*/s390x +sed -i -e /CppunitTest_sc_financial_functions_test/d sc/Module_sc.mk # ppc64* +sed -i -e /CppunitTest_sc_statistical_functions_test/d sc/Module_sc.mk # aarch64/ppc64* +sed -i -e /CppunitTest_dbaccess_hsqldb_test/d dbaccess/Module_dbaccess.mk # ppc64le +sed -i -e s/CppunitTest_dbaccess_RowSetClones// dbaccess/Module_dbaccess.mk # ppc64le +sed -i -e /CppunitTest_xmlsecurity_signing/d xmlsecurity/Module_xmlsecurity.mk +sed -i -e /CppunitTest_xmlsecurity_pdfsigning/d xmlsecurity/Module_xmlsecurity.mk +sed -i -e /CppunitTest_sal_osl/d sal/Module_sal.mk +sed -i -e /CppunitTest_emfio_emf/d emfio/Module_emfio.mk +%ifarch s390x +sed -i -e /CppunitTest_dbaccess_hsqlbinary_import/d dbaccess/Module_dbaccess.mk +sed -i -e /CppunitTest_vcl_svm_test/d vcl/Module_vcl.mk +sed -i -e /CustomTarget_uno_test/d testtools/Module_testtools.mk +%endif + +git commit -q -a -m 'temporarily disable failing tests' + +# Seeing .git dir makes some of the build tools change their behavior. +# We do not want that. Note: it is still possible to use +# git --git-dir=.git-rpm +mv .git .git-rpm + +%build +# path to external tarballs +EXTSRCDIR=`dirname %{SOURCE0}` + +# On i686, CustomTarget_testtools/uno_test from the testsuite fails when LTO is +# enabled: +%ifarch i686 +%define _lto_cflags %{nil} +%endif + +#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 aarch64 +# 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-scripting-beanshell --disable-scripting-javascript --disable-firebird-sdbc --disable-qrcodegen +%else +# fedora +%define distrooptions --enable-eot --enable-kf5 +%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/myspell --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-ext-nlpsolver \ + --enable-ext-wiki-publisher \ + --enable-gtk3 \ + --enable-introspection \ + --enable-release-build \ + --enable-scripting-beanshell \ + --enable-scripting-javascript \ + --enable-symbols \ + --with-build-version="%{version}-%{release}" \ + --with-external-dict-dir=/usr/share/myspell \ + --with-external-tar="$EXTSRCDIR" \ + --with-help \ + --with-system-dicts \ + --with-system-libs \ + --without-export-validation \ + --without-fonts \ + --without-lxml \ + --with-gdrive-client-secret="GYWrDtzyZQZ0_g5YoBCC6F0I" \ + --with-gdrive-client-id="457862564325.apps.googleusercontent.com" \ + --enable-python=system \ + --with-idlc-cpp=cpp \ + %{distrooptions} \ + %{?bundling_options} \ + %{?archoptions} \ + %{?flatpakoptions} + +make verbose=true build-nocheck + +#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 + +%if %{with smallbuild} +# remove the biggest offenders +# NOTE: not removing complete LinkTarget, as some libs are needed for smoketest +rm -rf $WORKDIR/CxxObject $WORKDIR/GenCxxObject $WORKDIR/HelpTarget $WORKDIR/LinkTarget/CppunitTest +%endif + + +%install +# 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 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 <https://github.com/flathub/ +# org.libreoffice.LibreOffice/commit/945f6caad87658b1df1e8918bd5f64939058ab7f> +# "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%{?fedora} +# Update the screenshot shown in the software center +# +# NOTE: It would be *awesome* if this file was pushed upstream. +# +# See http://people.freedesktop.org/~hughsient/appdata/#screenshots for more details. +# +appstream-util replace-screenshots %{buildroot}%{_datadir}/metainfo/libreoffice-writer.appdata.xml \ + https://raw.githubusercontent.com/hughsie/fedora-appstream/master/screenshots-extra/libreoffice-writer/a.png \ + https://raw.githubusercontent.com/hughsie/fedora-appstream/master/screenshots-extra/libreoffice-writer/b.png +appstream-util replace-screenshots %{buildroot}%{_datadir}/metainfo/libreoffice-calc.appdata.xml \ + https://raw.githubusercontent.com/hughsie/fedora-appstream/master/screenshots-extra/libreoffice-calc/a.png +appstream-util replace-screenshots %{buildroot}%{_datadir}/metainfo/libreoffice-draw.appdata.xml \ + https://raw.githubusercontent.com/hughsie/fedora-appstream/master/screenshots-extra/libreoffice-draw/a.png +appstream-util replace-screenshots %{buildroot}%{_datadir}/metainfo/libreoffice-impress.appdata.xml \ + https://raw.githubusercontent.com/hughsie/fedora-appstream/master/screenshots-extra/libreoffice-impress/a.png +%endif +%if 0%{?flatpak} +# Assemble the libreoffice-*.appdata.xml files into a single +# org.libreoffice.LibreOffice.appdata.xml; first create the single file: +solenv/bin/assemble-flatpak-appdata-step1.sh \ + %{buildroot}%{_datadir}/metainfo/ 0 +# ...then update the screenshots in the single file (see above): +appstream-util replace-screenshots \ + %{buildroot}%{_datadir}/metainfo/org.libreoffice.LibreOffice.appdata.xml \ + https://raw.githubusercontent.com/hughsie/fedora-appstream/master/screenshots-extra/libreoffice-writer/a.png \ + https://raw.githubusercontent.com/hughsie/fedora-appstream/master/screenshots-extra/libreoffice-writer/b.png \ + https://raw.githubusercontent.com/hughsie/fedora-appstream/master/screenshots-extra/libreoffice-calc/a.png \ + https://raw.githubusercontent.com/hughsie/fedora-appstream/master/screenshots-extra/libreoffice-draw/a.png \ + https://raw.githubusercontent.com/hughsie/fedora-appstream/master/screenshots-extra/libreoffice-impress/a.png +# ...then append the original files to the single file: +solenv/bin/assemble-flatpak-appdata-step2.sh \ + %{buildroot}%{_datadir}/metainfo/ %{buildroot}%{_datadir}/metainfo/ +rm %{buildroot}%{_datadir}/metainfo/libreoffice-*.appdata.xml +%endif + +# 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 + +%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 +%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 +%{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/libdrawinglayerlo.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/libgielo.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 +%{baseinstdir}/program/libjdbclo.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/libmorklo.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/libsdfiltlo.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 +%{baseinstdir}/share/Scripts/java +%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_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 +%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 +%dir %{baseinstdir}/share/emojiconfig +%{baseinstdir}/share/emojiconfig/emoji.json +%{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 +%{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}/share/extensions/package.txt +%{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 +%{baseinstdir}/program/classes/hsqldb.jar +%{baseinstdir}/program/classes/reportbuilder.jar +%{baseinstdir}/program/classes/reportbuilderwizard.jar +%{baseinstdir}/program/classes/sdbc_hsqldb.jar +%{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 +%{baseinstdir}/program/libhsqldb.so +%{baseinstdir}/program/librptlo.so +%{baseinstdir}/program/librptuilo.so +%{baseinstdir}/program/librptxmllo.so +%{baseinstdir}/share/registry/base.xcd +%{baseinstdir}/share/registry/reportbuilder.xcd +%{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* + +%if 0%{?fedora} +%files bsh +%{baseinstdir}/program/classes/ScriptProviderForBeanShell.jar +%{baseinstdir}/program/services/scriptproviderforbeanshell.rdb +%{baseinstdir}/share/Scripts/beanshell + +%files rhino +%{baseinstdir}/program/classes/js.jar +%{baseinstdir}/program/classes/ScriptProviderForJavaScript.jar +%{baseinstdir}/program/services/scriptproviderforjavascript.rdb +%{baseinstdir}/share/Scripts/javascript +%endif + +%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 + +%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/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 +%{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 +%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 +%{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 +%{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/regmerge +%{baseinstdir}/program/regview +%{baseinstdir}/program/services.rdb +%{baseinstdir}/program/types.rdb +%{baseinstdir}/program/uno +%{baseinstdir}/program/uno.bin +%{baseinstdir}/program/unorc + +%files ure-common +%dir %{_javadir}/%{name} +%{_javadir}/%{name}/juh.jar +%{_javadir}/%{name}/jurt.jar +%{_javadir}/%{name}/libreoffice.jar +%{_javadir}/%{name}/ridl.jar +%{_javadir}/%{name}/unoloader.jar +%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/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 +%{baseinstdir}/program/ui-previewer +%{_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 +# TODO: rename -data to -core-common? +%dir %{_javadir}/%{name} +%{_javadir}/%{name}/unoil.jar +%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 + +%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 +* Thu Oct 20 2022 Caolán McNamara <caolanm@redhat.com> - 1:7.1.8.1-8 +- Resolves: rhbz#2134759 Untrusted Macros +- Resolves: rhbz#2134757 Weak Master Keys +- Resolves: rhbz#2134755 Static Initialization Vector +- Resolves: rhbz#2134761 Macro URL arbitrary script execution + +* Tue May 10 2022 Caolán McNamara <caolanm@redhat.com> - 1:7.1.8.1-7 +- Resolves: rhbz#2081661 fix gtk_tree_view_scroll_to_cell assert + +* Tue Feb 22 2022 Caolán McNamara <caolanm@redhat.com> - 1:7.1.8.1-6 +- Resolves: rhbz#2056412 merge in fedoa 34 changes + +* Thu Feb 10 2022 Caolán McNamara <caolanm@redhat.com> - 1:7.1.8.1-5 +- Related: rhbz#2042817 bump n-v-r + +* Wed Feb 02 2022 Caolán McNamara <caolanm@redhat.com> - 1:7.1.8.1-4 +- Resolves: rhbz#2042817 fix reversed conditional for non-interactive installs + +* Tue Feb 01 2022 Caolán McNamara <caolanm@redhat.com> - 1:7.1.8.1-3 +- Resolves: rhbz#2042817 tune s390x/aarch64 for non-interactive installs + +* Mon Jan 10 2022 Caolán McNamara <caolanm@redhat.com> - 1:7.1.8.1-2 +- fix annocheck warning about missing .note.gnu.property-stack + +* Tue Dec 14 2021 Caolán McNamara <caolanm@redhat.com> - 1:7.1.8.1-1 +- upgrade to 7.1.8 + +* Wed Dec 01 2021 Caolán McNamara <caolanm@redhat.com> - 1:7.1.7.2-4 +- Resolves: rhbz#2027211 enable make check on s390x + +* Mon Nov 22 2021 Caolán McNamara <caolanm@redhat.com> - 1:7.1.7.2-3 +- Resolves: rhbz2023185 merge in fedora 34 changes + +* Mon Nov 08 2021 Caolán McNamara <caolanm@redhat.com> - 1:7.1.7.2-2 +- Resolves: tdf#145567 restore start center focus to the right widget + +* Fri Oct 29 2021 Caolán McNamara <caolanm@redhat.com> - 1:7.1.7.2-1 +- Resolves: rhbz#2014990 upgrade to 7.1.7 + +* Mon Oct 11 2021 Caolán McNamara <caolanm@redhat.com> - 1:7.1.6.2-2 +- Resolves: rhbz#2001452 upgrade to 7.1.6 + +* Thu Aug 12 2021 Caolán McNamara <caolanm@redhat.com> - 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 + +* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 1:7.1.5.2-4 +- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags + Related: rhbz#1991688 + +* Thu Aug 05 2021 Caolán McNamara <caolanm@redhat.com> - 1:7.1.5.2-3 +- Resolves: rhbz#1983557 upgrade to 7.1.5 + +* Wed Jun 30 2021 Caolán McNamara <caolanm@redhat.com> - 1:7.1.4.2-4 +- Resolves: rhbz#1979145 merge in rpminspect warning fixes + +* Wed Jun 30 2021 Caolán McNamara <caolanm@redhat.com> - 1:7.1.4.2-3 +- rhbz#1977653 drop unneeded bsh build-dependency +- Remove unused DOCTYPE from odk/examples xcu file +- drop bsh buildrequires in rhel + +* Tue Jun 22 2021 Mohan Boddu <mboddu@redhat.com> +- Rebuilt for RHEL 9 BETA for openssl 3.0 + Related: rhbz#1971065 + +* Wed Jun 09 2021 Caolán McNamara <caolanm@redhat.com> - 1:7.1.4.2-1 +- latest version +- replace 'badfuncs' of inet_addr and inet_ntoa + +* Thu May 20 2021 Caolán McNamara <caolanm@redhat.com> - 1:7.1.3.2-1 +- Resolves: rhbz#1962262 Get rid of apache-commons-logging +- Impress crashes on switch from commenting to slide sorter +- fix assertion on avmedia volumne control +- build libreoffice-langpack-fy for libreoffice +- Adapt to "libstdc++: Implement LWG 1203 for rvalue iostreams" +- Adapt to hamcrest-2.2-3.fc35.noarch.rpm +- gtk3: workaround missing gdk_threads_enter calls in gio errordialog callback + +* Wed May 12 2021 Caolán McNamara <caolanm@redhat.com> - 1:7.1.2.2-3 +- Resolves: rhbz#1958290 rebuild for poppler ABI Change + +* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 1:7.1.2.2-2 +- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 + +* Thu Apr 01 2021 Caolán McNamara <caolanm@redhat.com> - 1:7.1.2.2-1 +- latest version + +* Wed Mar 24 2021 Caolán McNamara <caolanm@redhat.com> - 1:7.1.1.2-2 +- tdf#141197 expose gtk-widgets inside vcl-containers to atk hierarchy + +* Thu Mar 04 2021 Caolán McNamara <caolanm@redhat.com> - 1:7.1.1.2-1 +- latest version + +* Mon Feb 08 2021 Pavel Raiskup <praiskup@redhat.com> - 1:7.1.0.3-3 +- rebuild for libpq ABI fix rhbz#1908268 + +* Fri Feb 05 2021 Caolán McNamara <caolanm@redhat.com> - 1:7.1.0.3-2 +- use classic brand + +* Wed Feb 03 2021 Caolán McNamara <caolanm@redhat.com> - 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 <sbergman@redhat.com> - 1:7.0.4.2-9 +- Make libreoffice-bsh, libreoffice-rhino depend on full java + +* Wed Jan 27 2021 Caolán McNamara <caolanm@redhat.com> - 1:7.0.4.2-8 +- drop unneeded BuildRequires: gdb + +* Wed Jan 27 2021 Caolán McNamara <caolanm@redhat.com> - 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 <caolanm@redhat.com> - 1:7.0.4.2-6 +- really rebuild for Boost 1.75 + +* Fri Jan 22 2021 Jonathan Wakely <jwakely@redhat.com> - 1:7.0.4.2-5 +- Rebuilt for Boost 1.75 + +* Fri Jan 15 2021 Caolán McNamara <caolanm@redhat.com> - 1:7.0.4.2-4 +- rebuild for poppler + +* Mon Jan 11 2021 Caolán McNamara <caolanm@redhat.com> - 1:7.0.4.2-3 +- Resolves: rhbz#1913828 SfxViewFrame::Current() can return null + +* Sun Dec 20 2020 Caolán McNamara <caolanm@redhat.com> - 1:7.0.4.2-2 +- workaround for make check failure + +* Wed Dec 09 2020 Caolán McNamara <caolanm@redhat.com> - 1:7.0.4.2-1 +- latest version + +* Wed Dec 02 2020 Thierry Vignaud <tv@mageia.org> 1:7.0.4.1-1 +- Update to 7.0.4 RC1 + +* Tue Nov 24 2020 Caolán McNamara <caolanm@redhat.com> - 1:7.0.3.1-4 +- Resolves: rhbz#1900937 fix null deref in non-pdfium build + +* Mon Nov 23 2020 Caolán McNamara <caolanm@redhat.com> - 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 <law@redhat.com> - 1:7.0.3.1-2 +- Fix missing #include for gcc-11 + +* Thu Oct 29 2020 Caolán McNamara <caolanm@redhat.com> - 1:7.0.3.1-1 +- latest version + +* Sun Oct 25 2020 Caolán McNamara <caolanm@redhat.com> - 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 <dtardon@redhat.com> - 1:7.0.2.2-2 +- fix upgrade from Fedora 32 + +* Sat Oct 10 2020 Caolán McNamara <caolanm@redhat.com> - 1:7.0.2.2-1 +- latest version + +* Tue Oct 06 2020 Rex Dieter <rdieter@fedoraproject.org> - 1:7.0.1.2-7 +- -kf5: enable Supplements: (%%name-core and plasma-workspace) + +* Tue Sep 29 2020 Caolán McNamara <caolanm@redhat.com> - 1:7.0.1.2-6 +- export HYPERLINK target in html clipboard export + +* Fri Sep 25 2020 Caolán McNamara <caolanm@redhat.com> - 1:7.0.1.2-5 +- Resolves: rhbz#1882616 IM cursor pos problem with emojis in writer + +* Thu Sep 24 2020 Caolán McNamara <caolanm@redhat.com> - 1:7.0.1.2-4 +- upgrade liborcus + +* Fri Sep 04 2020 Caolán McNamara <caolanm@redhat.com> - 1:7.0.1.2-3 +- rhbz#1875377 prefer Cantarell-Regular to Cantarell-VF + +* Thu Sep 03 2020 Merlin Mathesius <mmathesi@redhat.com> - 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 <caolanm@redhat.com> - 1:7.0.1.2-1 +- 7.0.1 RC2 + +* Fri Aug 21 2020 Caolán McNamara <caolanm@redhat.com> - 1:7.0.1.1-3 +- rhbz#1870501 crash on reexport of odg + +* Fri Aug 21 2020 Stephan Bergmann <sbergman@redhat.com> 1:7.0.1.1-2 +- Build the binary UNO bridge with -fno-lto + +* Thu Aug 20 2020 Thierry Vignaud <tvignaud@redhat.com> 1:7.0.1.1-1 +- 7.0.1 RC1 + +* Thu Aug 06 2020 Caolán McNamara <caolanm@redhat.com> - 1:7.0.0.3-1 +- 7.0.0 + +* Wed Aug 05 2020 Caolán McNamara <caolanm@redhat.com> - 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 <caolanm@redhat.com> - 1:6.4.5.2-5 +- Resolves: rhbz#1861794 missing csv fixed width handles + +* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1:6.4.5.2-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Sat Jul 25 2020 Caolán McNamara <caolanm@redhat.com> - 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 <jvanek@redhat.com> - 1:6.4.5.2-2 +- Rebuilt for JDK-11, see https://fedoraproject.org/wiki/Changes/Java11 + +* Sat Jul 11 2020 Caolán McNamara <caolanm@redhat.com> - 1:6.4.5.2-1 +- latest stable + +* Sat Jul 11 2020 Jiri Vanek <jvanek@redhat.com> - 1:6.4.4.2-4 +- Rebuilt for JDK-11, see https://fedoraproject.org/wiki/Changes/Java11 + +* Sat May 30 2020 Jonathan Wakely <jwakely@redhat.com> - 1:6.4.4.2-3 +- Rebuilt for Boost 1.73 + +* Tue May 26 2020 Miro Hrončok <mhroncok@redhat.com> - 1:6.4.4.2-2 +- Rebuilt for Python 3.9 + +* Thu May 21 2020 Caolán McNamara <caolanm@redhat.com> - 1:6.4.4.2-1 +- latest stable + +* Sun May 17 2020 Pete Walter <pwalter@fedoraproject.org> - 1:6.4.3.2-2 +- Rebuild for ICU 67 + +* Thu Apr 16 2020 Caolán McNamara <caolanm@redhat.com> - 1:6.4.3.2-1 +- latest stable + +* Mon Mar 30 2020 Thierry Vignaud <tvgnaud@mredhat.com> 1:6.4.2.2-1 +- 6.4.2.2 + +* Mon Mar 23 2020 Caolán McNamara <caolanm@redhat.com> - 1:6.4.1.2-4 +- help->license->license doesn't do anything + +* Fri Mar 20 2020 Caolán McNamara <caolanm@redhat.com> - 1:6.4.1.2-3 +- disable tip-of-the-day dialog by default + +* Wed Mar 18 2020 Caolán McNamara <caolanm@redhat.com> - 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 <caolanm@redhat.com> - 1:6.4.1.2-1 +- 6.4.1 beta 2 + +* Mon Feb 10 2020 Caolán McNamara <caolanm@redhat.com> - 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 <caolanm@redhat.com> - 1:6.4.0.3-1 +- latest release + +* Wed Jan 22 2020 Caolán McNamara <caolanm@redhat.com> - 1:6.3.4.2-1 +- latest stable release + +* Fri Jan 17 2020 Marek Kasik <mkasik@redhat.com> - 1:6.3.3.2-6 +- Rebuild for poppler-0.84.0 + +* Fri Jan 17 2020 Marek Kasik <mkasik@redhat.com> - 1:6.3.3.2-5 +- Rebuild for poppler-0.84.0 + +* Wed Nov 27 2019 Caolán McNamara <caolanm@redhat.com> - 1:6.3.3.2-4 +- rhbz#1776774 undo rhbz#156677 and stop customizing math.desktop + +* Mon Nov 18 2019 Caolán McNamara <caolanm@redhat.com> - 1:6.3.3.2-3 +- rhbz#1773525 fix find&replace search save limit + +* Sat Nov 02 2019 Pete Walter <pwalter@fedoraproject.org> - 1:6.3.3.2-2 +- Rebuild for ICU 65 + +* Thu Oct 24 2019 Caolán McNamara <caolanm@redhat.com> - 1:6.3.3.2-1 +- latest stable release + +* Thu Sep 26 2019 Caolán McNamara <caolanm@redhat.com> - 1:6.3.2.2-1 +- latest stable release + +* Thu Sep 05 2019 Caolán McNamara <caolanm@redhat.com> - 1:6.3.1.2-1 +- latest stable release + +* Sat Aug 31 2019 Caolán McNamara <caolanm@redhat.com> - 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 <caolanm@redhat.com> - 1:6.3.0.4-5 +- Resolves: rhbz#1736810 disable opencl by default again + +* Sun Aug 25 2019 Caolán McNamara <caolanm@redhat.com> - 1:6.3.0.4-4 +- Resolves: rhbz#1744876 firebird not an automatically dependency + +* Wed Aug 21 2019 Caolán McNamara <caolanm@redhat.com> - 1:6.3.0.4-3 +- Resolves: rhbz#1743894 make build with mdds-1.5 + +* Mon Aug 19 2019 Miro Hrončok <mhroncok@redhat.com> - 1:6.3.0.4-2 +- Rebuilt for Python 3.8 + +* Thu Aug 08 2019 Caolán McNamara <caolanm@redhat.com> - 1:6.3.0.4-1 +- upgrade to RC4 + +* Tue Aug 06 2019 Caolán McNamara <caolanm@redhat.com> - 1:6.3.0.3-1 +- upgrade to RC3 + +* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1:6.3.0.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Fri Jul 19 2019 Caolán McNamara <caolanm@redhat.com> - 1:6.3.0.1-2 +- missing ldap support +- kde4 support is gone, replace with kde5 + +* Tue Jul 16 2019 Caolán McNamara <caolanm@redhat.com> - 1:6.3.0.1-1 +- move rawhide to 6.3.0 + +* Tue Jul 16 2019 Caolán McNamara <caolanm@redhat.com> - 1:6.2.5.2-1 +- latest stable + +* Fri Jun 14 2019 Caolán McNamara <caolanm@redhat.com> - 1:6.2.4.2-5 +- Resolves: rhbz#1720483 make all app rpms depend on pdfimport + +* Tue Jun 11 2019 Caolán McNamara <caolanm@redhat.com> - 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 <caolanm@redhat.com> - 1:6.2.4.2-3 +- Related: rhbz#1718063 look for pkg-config python-version-embed + +* Fri Jun 07 2019 Stephan Bergmann <sbergman@redhat.com> - 1:6.2.4.2-2 +- Resolves: rhbz#1718063 adapt to upcoming Python 3.8 + +* Thu May 30 2019 Caolán McNamara <caolanm@redhat.com> - 1:6.2.4.2-1 +- latest stable version + +* Sun May 26 2019 Caolán McNamara <caolanm@redhat.com> - 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 <caolanm@redhat.com> - 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 <caolanm@redhat.com> - 1:6.2.3.2-3 +- rebuild for e-d-s + +* Thu May 02 2019 Caolán McNamara <caolanm@redhat.com> - 1:6.2.3.2-2 +- add Esperanto + +* Tue Apr 30 2019 Caolán McNamara <caolanm@redhat.com> - 1:6.2.3.2-1 +- latest stable release + +* Fri Apr 26 2019 Caolán McNamara <caolanm@redhat.com> - 1:6.2.2.2-6 +- Related: rhbz#1703375 disable bsh and rhino for rhel + +* Thu Apr 25 2019 Caolán McNamara <caolanm@redhat.com> - 1:6.2.2.2-5 +- Resolves: rhbz#1702810 Prepare for upcoming libebook + +* Sat Apr 13 2019 Caolán McNamara <caolanm@redhat.com> - 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 <caolanm@redhat.com> - 1:6.2.2.2-3 +- Resolves: rhbz#1699347 __glibcxx_requires_subscript-enabled enabled + +* Thu Apr 04 2019 Caolán McNamara <caolanm@redhat.com> - 1:6.2.2.2-2 +- Related: rhbz#1692584 mythes-de is available again + +* Tue Apr 02 2019 Caolán McNamara <caolanm@redhat.com> - 1:6.2.2.2-1 +- latest stable release + +* Wed Mar 27 2019 Caolán McNamara <caolanm@redhat.com> - 1:6.2.1.2-6 +- Resolves: rhbz#1693388 mythes-de got retired so is unavailable + +* Thu Mar 21 2019 Caolán McNamara <caolanm@redhat.com> - 1:6.2.1.2-5 +- Resolves: rhbz#1690732 basic font variation support + +* Wed Mar 20 2019 Stephan Bergmann <sbergman@redhat.com> - 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 <caolanm@redhat.com> - 1:6.2.1.2-3 +- currency menu too narrow + +* Thu Mar 07 2019 Caolán McNamara <caolanm@redhat.com> - 1:6.2.1.2-2 +- bump n-v-r + +* Sat Mar 02 2019 Caolán McNamara <caolanm@redhat.com> - 1:6.2.1.2-1 +- latest stable + +* Mon Feb 25 2019 Caolán McNamara <caolanm@redhat.com> - 1:6.2.0.3-4 +- Related: rhbz#1678319 workaround weird compilation result + +* Thu Feb 21 2019 Caolán McNamara <caolanm@redhat.com> - 1:6.2.0.3-3 +- menu of currency combobox is too wide + +* Thu Feb 21 2019 Caolán McNamara <caolanm@redhat.com> - 1:6.2.0.3-2 +- Resolves: tdf#122623 theme unwanted tab into invisibilty + +* Thu Feb 07 2019 Caolán McNamara <caolanm@redhat.com> - 1:6.2.0.3-1 +- latest version + +* Fri Feb 01 2019 Caolán McNamara <caolanm@redhat.com> - 1:6.1.4.2-5 +- Resolves: rhbz#1671340 extended tooltips not working in impress navigator + +* Thu Jan 31 2019 Kalev Lember <klember@redhat.com> - 1:6.1.4.2-4 +- Rebuilt for Boost 1.69 + +* Sat Jan 26 2019 Marek Kasik <mkasik@redhat.com> - 1:6.1.4.2-3 +- Additional fixes needed for rebuild + +* Fri Jan 25 2019 Marek Kasik <mkasik@redhat.com> - 1:6.1.4.2-2 +- Rebuild for poppler-0.73.0 + +* Mon Jan 07 2019 Caolán McNamara <caolanm@redhat.com> - 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 <caolanm@redhat.com> - 1:6.1.2.1-8 +- Resolves: rhbz#1639174 desire to block en-help install + +* Tue Nov 20 2018 Caolán McNamara <caolanm@redhat.com> - 1:6.1.2.1-7 +- Resolves: rhbz#1651469 improve obsoletes + +* Wed Nov 14 2018 Rex Dieter <rdieter@fedoraproject.org> - 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 <caolanm@redhat.com> - 1:6.1.2.1-5 +- Rebuild for hunspell 1.7.0 + +* Thu Nov 08 2018 Caolán McNamara <caolanm@redhat.com> - 1:6.1.2.1-4 +- drop gtk2 support and obsolete it + +* Wed Nov 07 2018 Caolán McNamara <caolanm@redhat.com> - 1:6.1.2.1-3 +- drop rhel 7 conditionals + +* Tue Oct 30 2018 Caolán McNamara <caolanm@redhat.com> - 1:6.1.2.1-2 +- Related: rhbz#1644128 gtk tooltip problems + +* Wed Oct 10 2018 Caolán McNamara <caolanm@redhat.com> - 1:6.1.2.1-1 +- latest version +- rhbz#1637848 keep Supplements but not Recommends + +* Fri Sep 14 2018 Caolán McNamara <caolanm@redhat.com> - 1:6.1.1.2-1 +- latest version + +* Sun Sep 02 2018 David Tardon <dtardon@redhat.com> - 1:6.1.0.3-2 +- rebuild for liborcus 0.14.0 + +* Thu Aug 16 2018 Caolán McNamara <caolanm@redhat.com> - 1:6.1.0.3-1 +- 6.1.X series + +* Tue Aug 14 2018 Caolán McNamara <caolanm@redhat.com> - 1:6.0.6.2-1 +- latest version + +* Tue Jul 31 2018 Florian Weimer <fweimer@redhat.com> - 1:6.0.6.1-7 +- Rebuild with fixed binutils + +* Thu Jul 26 2018 Caolán McNamara <caolanm@redhat.com> - 1:6.0.6.1-6 +- Related: rhbz#1602589 fix/silence more covscan warnings + +* Fri Jul 20 2018 Caolán McNamara <caolanm@redhat.com> - 1:6.0.6.1-5 +- implement export of underline in outlined font for simple case + +* Wed Jul 18 2018 Caolán McNamara <caolanm@redhat.com> - 1:6.0.6.1-4 +- Resolves: rhbz#1602589 fix covscan issues + +* Tue Jul 17 2018 Eike Rathke <erack@redhat.com> - 1:6.0.6.1-3 +- Upgrade to ICU 61.1 +- Upgrade to ICU 62.1 + +* Tue Jul 17 2018 Caolán McNamara <caolanm@redhat.com> - 1:6.0.6.1-2 +- Resolves: rhbz#1601882 fails to build with --nocheck + +* Tue Jul 17 2018 Caolán McNamara <caolanm@redhat.com> - 1:6.0.6.1-1 +- latest 6.0 release + +* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1:6.0.5.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Tue Jul 10 2018 Pete Walter <pwalter@fedoraproject.org> - 1:6.0.5.2-2 +- Rebuild for ICU 62 + +* Fri Jun 22 2018 Caolán McNamara <caolanm@redhat.com> - 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 <mhroncok@redhat.com> - 1:6.0.4.2-5 +- Rebuilt for Python 3.7 + +* Tue Jun 05 2018 Caolán McNamara <caolanm@redhat.com> - 1:6.0.4.2-4 +- Resolves: rhbz#1581028 endless font widget update + +* Tue Jun 05 2018 Caolán McNamara <caolanm@redhat.com> - 1:6.0.4.2-3 +- use weak deps for fedora only + +* Mon May 28 2018 Caolán McNamara <caolanm@redhat.com> - 1:6.0.4.2-2 +- Resolves: rhbz#1582324 crash after merging writer table cells + +* Fri May 25 2018 Caolán McNamara <caolanm@redhat.com> - 1:6.0.4.2-1 +- latest 6.0 release + +* Wed May 9 2018 Stephan Bergmann <sbergman@redhat.com> - 1:6.0.3.2-10 +- Fix a potential crash when using the dconf configuration backend + +* Sat May 5 2018 Caolán McNamara <caolanm@redhat.com> - 1:6.0.3.2-9 +- tdf#117413 char doubling in calc under X + +* Fri May 4 2018 Caolán McNamara <caolanm@redhat.com> - 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 <caolanm@redhat.com> - 1:6.0.3.2-7 +- rhbz#1573845 won't start without at least Langpack-en-US.xcd + +* Mon Apr 30 2018 Pete Walter <pwalter@fedoraproject.org> - 1:6.0.3.2-6 +- Rebuild for ICU 61.1 + +* Tue Apr 24 2018 Caolán McNamara <caolanm@redhat.com> - 1:6.0.3.2-5 +- Resolves: tdf#116951 rhbz#1569331 start is G_MAXINT + +* Thu Apr 19 2018 Stephan Bergmann <sbergman@redhat.com> - 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 <caolanm@redhat.com> - 1:6.0.3.2-3 +- Related: rhbz#1396729 use cairo_surface_create_similar + +* Tue Apr 10 2018 Caolán McNamara <caolanm@redhat.com> - 1:6.0.3.2-2 +- finally drop bundled xmlsec1 + +* Thu Mar 29 2018 Caolán McNamara <caolanm@redhat.com> - 1:6.0.3.2-1 +- latest version + +* Thu Mar 29 2018 Caolán McNamara <caolanm@redhat.com> - 1:6.0.3.1-3 +- Related: rhbz#1066844 drop libreofficekit requires + +* Fri Mar 23 2018 Marek Kasik <mkasik@redhat.com> - 1:6.0.3.1-2 +- Rebuild for poppler-0.63.0 + +* Thu Mar 22 2018 David Tardon <dtardon@redhat.com> - 1:6.0.3.1-1 +- update to 6.0.3 rc1 + +* Fri Mar 16 2018 Caolán McNamara <caolanm@redhat.com> - 1:6.0.2.1-3 +- Resolves: rhbz#1392145 ensure titlebar close button matches 'outside' direction + +* Fri Mar 16 2018 Stephan Bergmann <sbergman@redhat.com> - 1:6.0.2.1-2 +- lib dir missing from libreoffice-sdk + +* Fri Feb 23 2018 David Tardon <dtardon@redhat.com> - 1:6.0.2.1-1 +- update to 6.0.2 rc1 + +* Wed Feb 14 2018 David Tardon <dtardon@redhat.com> - 1:6.0.1.1-2 +- rebuild for poppler 0.62.0 + +* Fri Feb 09 2018 Caolán McNamara <caolanm@redhat.com> - 1:6.0.1.1-1 +- latest stable + +* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1:6.0.0.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Tue Feb 06 2018 Stephan Bergmann <sbergman@redhat.com> - 1:6.0.0.3-2-UNBUILT +- Resolves: rhbz#1541486 Base table dialog title shown in wrong language + +* Sun Feb 04 2018 David Tardon <dtardon@redhat.com> - 1:6.0.0.3-1 +- update to 6.0.0 rc3 + +* Wed Jan 31 2018 Michael Stahl <mstahl@fedoraproject.org> - 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 <besser82@fedoraproject.org> - 1:6.0.0.2-2 +- Rebuilt for Boost 1.66.0 + +* Fri Jan 12 2018 David Tardon <dtardon@redhat.com> - 1:6.0.0.2-1 +- update to 6.0.0 rc2 + +* Tue Jan 09 2018 Caolán McNamara <caolanm@redhat.com> - 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 <caolanm@redhat.com> - 1:6.0.0.1-2 +- request langpack for autodetected desired ui locale via packagekit + +* Wed Dec 20 2017 David Tardon <dtardon@redhat.com> - 1:6.0.0.1-1 +- update to 6.0.0 rc1 + +* Thu Dec 14 2017 David Tardon <dtardon@redhat.com> - 1:6.0.0.0-8.beta2 +- update to 6.0.0 beta2 + +* Mon Dec 04 2017 Caolán McNamara <caolanm@redhat.com> - 1:6.0.0.0-7.beta1 +- Rebuild for hunspell 1.6.2 + +* Thu Nov 30 2017 Pete Walter <pwalter@fedoraproject.org> - 1:6.0.0.0-6.beta1 +- Rebuild for ICU 60.1 + +* Sat Nov 25 2017 David Tardon <dtardon@redhat.com> - 1:6.0.0.0-5.beta1 +- update to 6.0.0 beta1 + +* Wed Nov 22 2017 Eike Rathke <erack@redhat.com> - 1:6.0.0.0-4.alpha1 +- prepare for build with ICU 60.1 + +* Mon Nov 20 2017 David Tardon <dtardon@redhat.com> - 1:6.0.0.0-3.alpha1 +- rebuild for liborcus 0.13.1 + +* Wed Nov 08 2017 David Tardon <dtardon@redhat.com> - 1:6.0.0.0-2.alpha1 +- rebuild for poppler 0.61.0 + +* Thu Nov 02 2017 David Tardon <dtardon@redhat.com> - 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 <dtardon@redhat.com> - 1:5.4.3.1-1 +- update to 5.4.3 rc1 + +* Fri Oct 06 2017 David Tardon <dtardon@redhat.com> - 1:5.4.2.2-3 +- rebuild for poppler 0.60.1 + +* Sun Oct 01 2017 Thierry Vignaud <tvignaud@redhat.com> - 1:5.4.2.2-2 +- fix libreoffice wrapper + +* Wed Sep 27 2017 David Tardon <dtardon@redhat.com> - 1:5.4.2.2-1 +- update to 5.4.2 rc2 + +* Mon Sep 18 2017 David Tardon <dtardon@redhat.com> - 1:5.4.2.1-1 +- update to 5.4.2 rc1 + +* Tue Sep 12 2017 David Tardon <dtardon@redhat.com> - 1:5.4.1.2-3 +- Resolves: rhbz#1490318 do not use versioned Supplements + +* Fri Sep 08 2017 David Tardon <dtardon@redhat.com> - 1:5.4.1.2-2 +- rebuild for poppler 0.59.0 + +* Sun Aug 27 2017 David Tardon <dtardon@redhat.com> - 1:5.4.1.2-1 +- update to 5.4.1 rc2 + +* Fri Aug 11 2017 Caolán McNamara <caolanm@redhat.com> - 1:5.4.0.3-5 +- implement char highlighting ui for graphics styles + +* Thu Aug 03 2017 David Tardon <dtardon@redhat.com> - 1:5.4.0.3-4 +- rebuild for poppler 0.57.0 + +* Mon Jul 31 2017 Kalev Lember <klember@redhat.com> - 1:5.4.0.3-3 +- Enable the s390x build again + +* Mon Jul 31 2017 Kalev Lember <klember@redhat.com> - 1:5.4.0.3-2 +- Temporarily disable the build on s390x + +* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1:5.4.0.3-1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Fri Jul 21 2017 Kalev Lember <klember@redhat.com> - 1:5.4.0.2-2 +- Rebuilt for Boost 1.64 + +* Fri Jul 07 2017 David Tardon <dtardon@redhat.com> - 1:5.4.0.2-1 +- update to 5.4.0 rc2 + +* Fri Jun 23 2017 David Tardon <dtardon@redhat.com> - 1:5.4.0.1-1 +- update to 5.4.0 rc1 + +* Wed Jun 07 2017 David Tardon <dtardon@redhat.com> - 1:5.4.0.0-3.beta2 +- update to 5.4.0 beta2 + +* Sun May 21 2017 David Tardon <dtardon@redhat.com> - 1:5.4.0.0-2.beta1 +- update to 5.4.0 beta1 + +* Tue May 02 2017 David Tardon <dtardon@redhat.com> - 1:5.4.0.0-1.alpha1 +- update to 5.4.0 alpha1 + +* Wed Apr 19 2017 David Tardon <dtardon@redhat.com> - 1:5.3.3.1-1 +- update to 5.3.3 rc1 + +* Wed Mar 29 2017 David Tardon <dtardon@redhat.com> - 1:5.3.2.2-1 +- update to 5.3.2 rc2 + +* Tue Mar 28 2017 David Tardon <dtardon@redhat.com> - 1:5.3.2.1-3 +- rebuild for poppler 0.53.0 + +* Mon Mar 27 2017 Caolán McNamara <caolanm@redhat.com> - 1:5.3.2.1-2 +- Resolves: rhbz#1432468 disable opencl by default + +* Sun Mar 19 2017 David Tardon <dtardon@redhat.com> - 1:5.3.2.1-1 +- update to 5.3.2 rc1 + +* Mon Mar 13 2017 Caolán McNamara <caolanm@redhat.com> - 1:5.3.1.2-2 +- Resolves: rhbz#1431189 add Indonesian langpack + +* Thu Mar 09 2017 David Tardon <dtardon@redhat.com> - 1:5.3.1.2-1 +- update to 5.3.1 rc2 + +* Thu Feb 23 2017 David Tardon <dtardon@redhat.com> - 1:5.3.1.1-1 +- update to 5.3.1 rc1 + +* Tue Feb 07 2017 Björn Esser <besser82@fedoraproject.org> - 1:5.3.0.3-3 +- Rebuilt for Boost 1.63 + +* Thu Feb 02 2017 Caolán McNamara <caolanm@redhat.com> - 1:5.3.0.3-2 +- Resolves: rhbz#1409401 add depend on gtksink gstreamer1 element + +* Fri Jan 27 2017 David Tardon <dtardon@redhat.com> - 1:5.3.0.3-1 +- update to 5.3.0 rc3 + +* Wed Jan 18 2017 David Tardon <dtardon@redhat.com> - 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 <dtardon@redhat.com> - 1:5.3.0.1-1 +- update to 5.3.0 rc1 + +* Tue Dec 27 2016 Caolán McNamara <caolanm@redhat.com> - 1:5.3.0.0-8.beta1 +- try arm build + +* Thu Dec 22 2016 Miro Hrončok <mhroncok@redhat.com> - 1:5.3.0.0-7.beta2 +- Rebuild for Python 3.6 + +* Mon Dec 19 2016 Miro Hrončok <mhroncok@redhat.com> - 1:5.3.0.0-6.beta2 +- Rebuild for Python 3.6 + +* Thu Dec 15 2016 David Tardon <dtardon@redhat.com> - 1:5.3.0.0-5.beta2 +- update to 5.3.0 beta2 + +* Tue Dec 13 2016 Caolán McNamara <caolanm@redhat.com> - 1:5.3.0.0-4.beta1 +- rebuild for hunspell-1.5.4 + +* Wed Nov 23 2016 David Tardon <dtardon@redhat.com> - 1:5.3.0.0-3.beta1 +- update to 5.3.0 beta1 + +* Tue Nov 08 2016 David Tardon <dtardon@redhat.com> - 1:5.3.0.0-2.alpha1 +- allow abrt to work again + +* Sat Oct 22 2016 David Tardon <dtardon@redhat.com> - 1:5.3.0.0-1.alpha1 +- update to 5.3.0 alpha1 + +* Fri Oct 21 2016 Marek Kasik <mkasik@redhat.com> - 1:5.2.3.1-2 +- Rebuild for poppler-0.48.0 + +* Sat Oct 15 2016 David Tardon <dtardon@redhat.com> - 1:5.2.3.1-1 +- update to 5.2.3 rc1 + +* Fri Oct 07 2016 Stephan Bergmann <sbergman@redhat.com> - 1:5.2.2.2-3 +- Resolves: rhbz#1382401 broken export of emojis to HTML + +* Thu Sep 29 2016 David Tardon <dtardon@redhat.com> - 1:5.2.2.2-2 +- rebuild for liborcus 0.12 + +* Wed Sep 21 2016 David Tardon <dtardon@redhat.com> - 1:5.2.2.2-1 +- update to 5.2.2 rc2 + +* Wed Sep 21 2016 Caolán McNamara <caolanm@redhat.com> - 1:5.2.2.1-5 +- Related: rhbz#1362451 apply patch + +* Tue Sep 20 2016 Caolán McNamara <caolanm@redhat.com> - 1:5.2.2.1-4 +- Related: rhbz#1362451 avoid recursive ownerchanged signal during ownerchange + +* Mon Sep 19 2016 Caolán McNamara <caolanm@redhat.com> - 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 <caolanm@redhat.com> - 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 <dtardon@redhat.com> - 1:5.2.2.1-1 +- update to 5.2.2 rc1 + +* Tue Sep 13 2016 Stephan Bergmann <sbergman@redhat.com> - 1:5.2.1.2-3 +- enable dconf support for Fleet Commander + +* Mon Sep 05 2016 David Tardon <dtardon@redhat.com> - 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 <dtardon@redhat.com> - 1:5.2.1.2-1 +- update to 5.2.1 rc2 + +* Thu Aug 11 2016 David Tardon <dtardon@redhat.com> - 1:5.2.1.1-1 +- update to 5.2.1 rc1 + +* Fri Jul 29 2016 David Tardon <dtardon@redhat.com> - 1:5.2.0.4-1 +- update to 5.2.0 rc4 + +* Thu Jul 21 2016 David Tardon <dtardon@redhat.com> - 1:5.2.0.3-1 +- update to 5.2.0 rc3 + +* Tue Jul 19 2016 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1:5.2.0.2-4 +- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages + +* Mon Jul 18 2016 Marek Kasik <mkasik@redhat.com> - 1:5.2.0.2-3 +- Rebuild for poppler-0.45.0 + +* Thu Jul 07 2016 David Tardon <dtardon@redhat.com> - 1:5.2.0.2-2 +- remove obsolete wiki-publisher requires apache-commons-* + +* Thu Jul 07 2016 David Tardon <dtardon@redhat.com> - 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 <dtardon@redhat.com> - 1:5.2.0.1-2 +- Resolves: rhbz#1341064 fix test on big endian systems + +* Wed Jun 22 2016 David Tardon <dtardon@redhat.com> - 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 <dtardon@redhat.com> - 1:5.2.0.0-8.beta2 +- update to 5.2.0 beta2 + +* Thu May 26 2016 David Tardon <dtardon@redhat.com> - 1:5.2.0.0-7.beta1 +- update to 5.2.0 beta1 + +* Mon May 16 2016 David Tardon <dtardon@redhat.com> - 1:5.2.0.0-6.alpha1 +- Resolves: rhbz#1327847 remove multilib conflicts in .desktop files + +* Fri May 13 2016 David Tardon <dtardon@redhat.com> - 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 <dtardon@redhat.com> - 1:5.2.0.0-4.alpha1 +- Resolves: rhbz#1333899 recommended pkgs are omitted from default + installation + +* Tue May 3 2016 Marek Kasik <mkasik@redhat.com> - 1:5.2.0.0-3.alpha1 +- Rebuild for poppler-0.43.0 + +* Mon May 02 2016 David Tardon <dtardon@redhat.com> - 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 <dtardon@redhat.com> - 1:5.2.0.0-1.alpha1 +- update to 5.2.0 alpha1 + +* Thu Apr 21 2016 David Tardon <dtardon@redhat.com> - 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 <caolanm@redhat.com> - 1:5.1.2.1-6 +- rebuild for hunspell 1.4.0 + +* Fri Apr 15 2016 David Tardon <dtardon@redhat.com> - 1:5.1.2.1-5 +- rebuild for ICU 57.1 + +* Thu Apr 07 2016 Caolán McNamara <caolanm@redhat.com> - 1:5.1.2.1-4 +- gtk3: fix combobox and listbox + +* Wed Mar 30 2016 David Tardon <dtardon@redhat.com> - 1:5.1.2.1-3 +- support both glade and glade3 + +* Mon Mar 21 2016 David Tardon <dtardon@redhat.com> - 1:5.1.2.1-2 +- Resolves: rhbz#1319458 avoid rich deps in Requires + +* Wed Mar 16 2016 David Tardon <dtardon@redhat.com> - 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 <dtardon@redhat.com> - 1:5.1.1.3-2 +- update for liborcus 0.11.0 + +* Thu Mar 03 2016 David Tardon <dtardon@redhat.com> - 1:5.1.1.3-1 +- update to 5.1.1 rc3 + +* Fri Feb 26 2016 David Tardon <dtardon@redhat.com> - 1:5.1.1.2-1 +- update to 5.1.1 rc2 + +* Mon Feb 22 2016 David Tardon <dtardon@redhat.com> - 1:5.1.1.1-5 +- Resolves: rhbz#1310527 add langpack deps + +* Tue Feb 16 2016 Caolán McNamara <caolanm@redhat.com> - 1:5.1.1.1-4 +- video playback under wayland with gstreamer gtksink + +* Mon Feb 15 2016 David Tardon <dtardon@redhat.com> - 1:5.1.1.1-3 +- rebuild for openCOLLADA soname change + +* Sun Feb 14 2016 David Tardon <dtardon@redhat.com> - 1:5.1.1.1-2 +- switch to mdds 1.x + +* Thu Feb 11 2016 David Tardon <dtardon@redhat.com> - 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 <caolanm@redhat.com> - 1:5.1.0.3-3 +- rework gtk3 themeing to work with latest gtk + +* Tue Feb 02 2016 Caolán McNamara <caolanm@redhat.com> - 1:5.1.0.3-2 +- Resolves: rhbz#1303619 nothing provides java-devel(x86_64) + +* Wed Jan 27 2016 David Tardon <dtardon@redhat.com> - 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 <mkasik@redhat.com> - 1:5.1.0.2-5 +- Rebuild for poppler-0.40.0 + +* Mon Jan 18 2016 Jonathan Wakely <jwakely@redhat.com> - 1:5.1.0.2-4 +- Rebuilt for Boost 1.60 + +* Sat Jan 16 2016 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1:5.1.0.2-3 +- Remove arch-specific dependency for font subpackage as it is noarch + +* Thu Jan 14 2016 Adam Jackson <ajax@redhat.com> - 1:5.1.0.2-2 +- Rebuild for glew 1.13 + +* Thu Jan 14 2016 David Tardon <dtardon@redhat.com> - 1:5.1.0.2-1 +- update to 5.1.0 rc2 + +* Thu Dec 17 2015 Bastien Nocera <bnocera@redhat.com> 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 <dtardon@redhat.com> - 1:5.1.0.1-1 +- update to 5.1.0 rc1 + +* Mon Dec 14 2015 David Tardon <dtardon@redhat.com> - 1:5.1.0.0-11.beta2 +- backport more upstream fixes for libreofficekit +- fix unit test on i686 + +* Wed Dec 09 2015 David Tardon <dtardon@redhat.com> - 1:5.1.0.0-10.beta2 +- backport upstream fixes for libreofficekit + +* Fri Dec 04 2015 David Tardon <dtardon@redhat.com> - 1:5.1.0.0-9.beta2 +- update to 5.1.0 beta2 + +* Thu Dec 03 2015 Caolán McNamara <caolanm@redhat.com> - 1:5.1.0.0-8.beta1 +- enable and bundle libreofficekit introspection + +* Thu Nov 26 2015 David Tardon <dtardon@redhat.com> - 1:5.1.0.0-7.beta1 +- update to 5.1.0 beta1 + +* Tue Nov 10 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1:5.1.0.0-6.alpha1 +- Rebuilt for https://fedoraproject.org/wiki/Changes/python3.5 + +* Thu Nov 05 2015 David Tardon <dtardon@redhat.com> - 1:5.1.0.0-5.alpha1 +- Related: rhbz#1276061 build failure on ppc64 + +* Tue Nov 03 2015 David Tardon <dtardon@redhat.com> - 1:5.1.0.0-4.alpha1 +- Resolves: rhbz#1276061 build failure on ppc64 + +* Wed Oct 28 2015 David Tardon <dtardon@redhat.com> - 1:5.1.0.0-3.alpha1 +- rebuild for ICU 56.1 + +* Tue Oct 27 2015 Eike Rathke <erack@redhat.com> - 1:5.1.0.0-2.alpha1 +- prepare to enable build with ICU 56 + +* Mon Oct 19 2015 David Tardon <dtardon@redhat.com> - 1:5.1.0.0-1.alpha1 +- update to 5.1.0 alpha1 + +* Mon Oct 12 2015 David Tardon <dtardon@redhat.com> - 1:5.0.3.1-1 +- update to 5.0.3 rc1 + +* Thu Oct 08 2015 Caolán McNamara <caolanm@redhat.com> - 1:5.0.2.2-4 +- Resolves: rhbz#1269593 declare support for vnd.libreoffice.cmis:// URLs + +* Wed Sep 30 2015 Caolán McNamara <caolanm@redhat.com> - 1:5.0.2.2-3 +- implement save slide background for impress + +* Mon Sep 28 2015 Caolán McNamara <caolanm@redhat.com> - 1:5.0.2.2-2 +- Resolves: tdf#93461 captions laid out behind images + +* Thu Sep 17 2015 David Tardon <dtardon@redhat.com> - 1:5.0.2.2-1 +- update to 5.0.2 rc2 + +* Sat Sep 05 2015 David Tardon <dtardon@redhat.com> - 1:5.0.2.1-1 +- update to 5.0.2 rc1 + +* Sat Aug 22 2015 David Tardon <dtardon@redhat.com> - 1:5.0.1.2-1 +- update to 5.0.1 rc2 + +* Tue Aug 11 2015 David Tardon <dtardon@redhat.com> - 1:5.0.1.1-1 +- update to 5.0.1 rc1 + +* Wed Aug 05 2015 Jonathan Wakely <jwakely@redhat.com> 5.0.0.5-2 +- Rebuilt for Boost 1.58 + +* Mon Aug 03 2015 David Tardon <dtardon@redhat.com> - 1:5.0.0.5-1 +- update to 5.0.0 rc5 + +* Wed Jul 29 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1:5.0.0.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Changes/F23Boost159 + +* Sat Jul 25 2015 David Tardon <dtardon@redhat.com> - 1:5.0.0.4-1 +- update to 5.0.0 rc4 + +* Fri Jul 24 2015 Adam Williamson <awilliam@redhat.com> - 1:5.0.0.3-3 +- rebuild for Boost 1.58 (for real this time) + +* Wed Jul 22 2015 David Tardon <dtardon@redhat.com> - 1:5.0.0.3-2 +- rebuild for Boost 1.58 + +* Fri Jul 10 2015 David Tardon <dtardon@redhat.com> - 1:5.0.0.3-1 +- update to 5.0.0 rc3 + +* Sun Jun 28 2015 David Tardon <dtardon@redhat.com> - 1:5.0.0.2-1 +- update to 5.0.0 rc2 + +* Sun Jun 21 2015 David Tardon <dtardon@redhat.com> - 1:5.0.0.1-1 +- update to 5.0.0 rc1 + +* Fri Jun 19 2015 David Tardon <dtardon@redhat.com> - 1:5.0.0.0-8.beta3 +- Resolves: rhbz#1233420 crash on auto-fill + +* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1:5.0.0.0-7.beta3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Wed Jun 10 2015 David Tardon <dtardon@redhat.com> - 1:5.0.0.0-6.beta3 +- update to 5.0.0 beta3 + +* Tue Jun 09 2015 David Tardon <dtardon@redhat.com> - 1:5.0.0.0-5.beta2 +- update to 5.0.0 beta2 + +* Mon Jun 08 2015 David Tardon <dtardon@redhat.com> - 1:5.0.0.0-4.beta1 +- rebuild for poppler 0.33 + +* Wed May 20 2015 David Tardon <dtardon@redhat.com> - 1:5.0.0.0-3.beta1 +- update to 5.0.0 beta1 + +* Sat May 16 2015 Kalev Lember <kalevlember@gmail.com> - 1:5.0.0.0-2.alpha1 +- Resolves: rhbz#1215800 install symbolic icons + +* Sun Apr 19 2015 David Tardon <dtardon@redhat.com> - 1:5.0.0.0-1.alpha1 +- update to 5.0.0 alpha1 + +* Tue Apr 14 2015 Stephan Bergmann <sbergman@redhat.com> - 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 <rhughes@redhat.com> - 1:4.4.2.2-2 +- Use better AppData screenshots + +* Thu Mar 26 2015 David Tardon <dtardon@redhat.com> - 1:4.4.2.2-1 +- update to 4.4.2 rc2 + +* Thu Mar 12 2015 David Tardon <dtardon@redhat.com> - 1:4.4.2.1-1 +- update to 4.2.2 rc1 + +* Mon Feb 23 2015 David Tardon <dtardon@redhat.com> - 1:4.4.1.2-1 +- update to 4.4.1 rc2 + +* Tue Feb 10 2015 David Tardon <dtardon@redhat.com> - 1:4.4.1.1-1 +- update to 4.4.1 rc1 + +* Thu Jan 29 2015 David Tardon <dtardon@redhat.com> - 1:4.4.0.3-5 +- fix build on s390 + +* Wed Jan 28 2015 Petr Machata <pmachata@redhat.com> - 1:4.4.0.3-4 +- Rebuild for boost 1.57.0 + +* Wed Jan 28 2015 Petr Machata <pmachata@redhat.com> - 1:4.4.0.3-3 +- Rebuild for boost 1.57.0 + +* Fri Jan 23 2015 Stephan Bergmann <sbergman@redhat.com> - 1:4.4.0.3-2 +- Related: rhbz#1185307 get search for Hamcrest unstuck + +* Fri Jan 23 2015 David Tardon <dtardon@redhat.com> - 1:4.4.0.3-1 +- update to 4.4.0 rc3 + +* Fri Jan 23 2015 Marek Kasik <mkasik@redhat.com> - 1:4.4.0.2-4 +- Rebuild (poppler-0.30.0) + +* Thu Jan 22 2015 Stephan Bergmann <sbergman@redhat.com> - 1:4.4.0.2-3 +- Resolves: rhbz#1184582 crash in grammar checking thread + +* Mon Jan 19 2015 David Tardon <dtardon@redhat.com> - 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 <dtardon@redhat.com> - 1:4.4.0.2-1 +- update to 4.4.0 rc2 + +* Wed Jan 07 2015 Caolán McNamara <caolanm@redhat.com> - 1:4.4.0.1-2 +- Resolves: rhbz#1177547 system autocorr files not detected + +* Sun Dec 21 2014 David Tardon <dtardon@redhat.com> - 1:4.4.0.1-1 +- update to 4.4.0 rc1 + +* Fri Dec 12 2014 David Tardon <dtardon@redhat.com> - 1:4.4.0.0-6.beta2 +- Resolves: rhbz#1116534 crash when pasting over a formula + +* Sat Dec 06 2014 David Tardon <dtardon@redhat.com> - 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 <dtardon@redhat.com> - 1:4.4.0.0-4.beta1 +- add Provides: libreoffice-headless; packages are depending on it + +* Thu Nov 27 2014 Caolán McNamara <caolanm@redhat.com> - 1:4.4.0.0-3.beta1 +- Resolves: rhbz#1165444 abrt crash with NULL pView + +* Thu Nov 27 2014 Marek Kasik <mkasik@redhat.com> - 1:4.4.0.0-2.beta1 +- Rebuild (poppler-0.28.1) + +* Sat Nov 22 2014 David Tardon <dtardon@redhat.com> - 1:4.4.0.0-1.beta1 +- update to 4.4.0 beta1 + +* Fri Nov 21 2014 Caolán McNamara <caolanm@redhat.com> - 1:4.3.4.1-6 +- Resolves: fdo#86466 Wrong background color shown in impress table + +* Thu Nov 20 2014 Caolán McNamara <caolanm@redhat.com> - 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 <caolanm@redhat.com> - 1:4.3.4.1-4 +- Resolves: rhbz#1165740 arbitrarily backport some rtf crash fixes + +* Mon Nov 17 2014 Michael Stahl <mstahl@redhat.com>- 1:4.3.4.1-3 +- set VCL.WM.ShouldSwitchWorkspace to false to avoid virtual desktop switching + +* Thu Nov 13 2014 Caolán McNamara <caolanm@redhat.com> - 1:4.3.4.1-2 +- fix impress table layout cache wrt wrong table selection border + +* Tue Nov 11 2014 David Tardon <dtardon@redhat.com> - 1:4.3.4.1-1 +- update to 4.3.4 rc1 + +* Tue Nov 11 2014 Caolán McNamara <caolanm@redhat.com> - 1:4.3.3.2-6 +- strip hard coded numbering off outline master previews + +* Mon Nov 10 2014 Caolán McNamara <caolanm@redhat.com> - 1:4.3.3.2-5 +- Resolves: rhbz#1161238 sync PRESOBJ_OUTLINE para depth on load + +* Thu Nov 06 2014 Caolán McNamara <caolanm@redhat.com> - 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 <caolanm@redhat.com> - 1:4.3.3.2-3 +- Resolves: fdo#76581 copy-and-paste -> slideshow crash in presenter console + +* Wed Nov 05 2014 Caolán McNamara <caolanm@redhat.com> - 1:4.3.3.2-2 +- Resolves: fdo#37559 revert adding extra dummy polygons + +* Tue Oct 28 2014 David Tardon <dtardon@redhat.com> - 1:4.3.3.2-1 +- update to 4.3.3 rc2 + +* Sun Oct 19 2014 David Tardon <dtardon@redhat.com> - 1:4.3.3.1-2 +- enable support for 3-D models + +* Thu Oct 09 2014 David Tardon <dtardon@redhat.com> - 1:4.3.3.1-1 +- update to 4.3.3 rc1 + +* Wed Oct 08 2014 Stephan Bergmann <sbergman@redhat.com> - 1:4.3.2.2-5 +- Resolves: rhbz#1054952 bad access of smb URLs on KDE + +* Tue Sep 23 2014 Richard Hughes <richard@hughsie.com> - 1:4.3.2.2-4 +- move appdata files to desktop files, where the belong + +* Tue Sep 23 2014 Caolán McNamara <caolanm@redhat.com> - 1:4.3.2.2-3 +- Resolves: rhbz#1054952 cannot access smb URLs on KDE + +* Tue Sep 23 2014 Caolán McNamara <caolanm@redhat.com> - 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 <dtardon@redhat.com> - 1:4.3.2.2-1 +- update to 4.3.2 rc2 + +* Wed Sep 17 2014 Caolán McNamara <caolanm@redhat.com> - 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 <caolanm@redhat.com> - 1:4.3.2.1-2 +- Resolves: fdo#80911 don't swap notes page width height + +* Fri Sep 12 2014 David Tardon <dtardon@redhat.com> - 1:4.3.2.1-1 +- update to 4.3.2 rc1 + +* Wed Sep 10 2014 Caolán McNamara <caolanm@redhat.com> - 1:4.3.1.2-5 +- create a master document template type + +* Tue Sep 09 2014 Caolán McNamara <caolanm@redhat.com> - 1:4.3.1.2-4 +- Resolves: fdo#82496 Change picture option with right click in writer + +* Fri Sep 05 2014 David Tardon <dtardon@redhat.com> - 1:4.3.1.2-3 +- build for aarch64 + +* Fri Aug 29 2014 Stephan Bergmann <sbergman@redhat.com> - 1:4.3.1.2-2 +- Resolves: rhbz#1098693 AArch64 port + +* Wed Aug 27 2014 David Tardon <dtardon@redhat.com> - 1:4.3.1.2-1 +- update to 4.3.1 rc2 + +* Tue Aug 26 2014 Caolán McNamara <caolanm@redhat.com> - 1:4.3.1.1-8 +- Related: rhbz#1131425 ure only needs jre-headless + +* Tue Aug 26 2014 David Tardon <dtardon@redhat.com> - 1:4.3.1.1-7 +- rebuild for ICU 53.1 + +* Fri Aug 22 2014 Caolán McNamara <caolanm@redhat.com> - 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 <caolanm@redhat.com> - 1:4.3.1.1-5 +- Resolves: rhbz#1131425 try java-headless instead of java + +* Sun Aug 17 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1:4.3.1.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Sat Aug 16 2014 Rex Dieter <rdieter@fedoraproject.org> 1:4.3.1.1-3 +- update mime scriptlets + +* Fri Aug 15 2014 Caolán McNamara <caolanm@redhat.com> - 1:4.3.1.1-2 +- Related: rhbz#1130264 crash in media playback on s390x + +* Sun Aug 10 2014 David Tardon <dtardon@redhat.com> - 1:4.3.1.1-1 +- update to 4.3.1 rc1 + +* Mon Jul 28 2014 David Tardon <dtardon@redhat.com> - 1:4.3.0.4-1 +- update to 4.3.0 rc4 + +* Fri Jul 25 2014 David Tardon <dtardon@redhat.com> - 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 <caolanm@redhat.com> - 1:4.3.0.3-3 +- Resolves: rhbz#1122868 landscape printing is broken + +* Thu Jul 24 2014 David Tardon <dtardon@redhat.com> - 1:4.3.0.3-2 +- avoid image loss in Impress after auto-save + +* Wed Jul 16 2014 David Tardon <dtardon@redhat.com> - 1:4.3.0.1-1 +- update to 4.3.0 rc3 + +* Tue Jul 08 2014 David Tardon <dtardon@redhat.com> - 1:4.3.0.2-2 +- avoid problems detecting HTML files with xls extension + +* Wed Jul 02 2014 David Tardon <dtardon@redhat.com> - 1:4.3.0.2-1 +- update to 4.3.0 rc2 + +* Tue Jun 17 2014 David Tardon <dtardon@redhat.com> - 1:4.3.0.1-1 +- update to 4.3.0 rc1 + +* Mon Jun 09 2014 David Tardon <dtardon@redhat.com> - 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 <dtardon@redhat.com> - 1:4.3.0.0-8.beta2 +- update to 4.3.0 beta2 + +* Thu May 29 2014 David Tardon <dtardon@redhat.com> - 1:4.3.0.0-7.beta1 +- fix some fallout from the import libs rebase + +* Wed May 28 2014 David Tardon <dtardon@redhat.com> - 1:4.3.0.0-6.beta1 +- switch to librevenge-based import libs + +* Tue May 27 2014 Kalev Lember <kalevlember@gmail.com> - 1:4.3.0.0-5.beta1 +- Rebuild for boost 1.55.0 + +* Mon May 26 2014 David Tardon <dtardon@redhat.com> - 1:4.3.0.0-4.beta1 +- unblock build on ARM + +* Fri May 23 2014 Petr Machata <pmachata@redhat.com> - 1:4.3.0.0-3.beta1 +- Rebuild for boost 1.55.0 + +* Fri May 23 2014 David Tardon <dtardon@redhat.com> - 1:4.3.0.0-2.beta1 +- rebuild for boost 1.55.0 + +* Wed May 21 2014 David Tardon <dtardon@redhat.com> - 1:4.3.0.0-1.beta1 +- update to 4.3.0 beta1 + +* Fri May 16 2014 Caolán McNamara <caolanm@redhat.com> - 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 <dtardon@redhat.com> - 1:4.2.4.2-13 +- fix SDK doc generation with doxygen 1.8.7 + +* Wed May 14 2014 David Tardon <dtardon@redhat.com> - 1:4.2.4.2-12 +- rebuild for new poppler + +* Mon May 12 2014 Caolán McNamara <caolanm@redhat.com> - 1:4.2.4.2-11 +- Resolves: rhbz#1096747 format->page crash on html doc + +* Mon May 12 2014 David Tardon <dtardon@redhat.com> - 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 <caolanm@redhat.com> - 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 <dtardon@redhat.com> - 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 <erack@redhat.com> - 1:4.2.4.2-7 +- Resolves: fdo#77509 memory corruption / crash in Consolidate + +* Thu May 08 2014 Caolán McNamara <caolanm@redhat.com> - 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 <sbergman@redhat.com> - 1:4.2.4.2-5 +- Resolves: rhbz#1092589 Thoroughly check whether JRE is still present + +* Tue May 06 2014 Caolán McNamara <caolanm@redhat.com> - 1:4.2.4.2-4 +- clip over-long comments + +* Thu May 01 2014 Eike Rathke <erack@redhat.com> - 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 <caolanm@redhat.com> - 1:4.2.4.2-2 +- better scaling of notes-using pages + +* Wed Apr 30 2014 David Tardon <dtardon@redhat.com> - 1:4.2.4.2-1 +- update to 4.2.4 rc2 + +* Fri Apr 25 2014 Caolán McNamara <caolanm@redhat.com> - 1:4.2.4.1-7 +- Related: rhbz#1032774 disable autoexit when switching monitors + +* Thu Apr 24 2014 Caolán McNamara <caolanm@redhat.com> - 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 <caolanm@redhat.com> - 1:4.2.4.1-5 +- add a 'format all comments' feature + +* Tue Apr 22 2014 Caolán McNamara <caolanm@redhat.com> - 1:4.2.4.1-4 +- Resolves: rhbz#1089377 crash on loading a specific rtf + +* Tue Apr 22 2014 Caolán McNamara <caolanm@redhat.com> - 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 <caolanm@redhat.com> - 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 <dtardon@redhat.com> - 1:4.2.4.1-1 +- update to 4.2.4 rc1 + +* Wed Apr 16 2014 David Tardon <dtardon@redhat.com> - 1:4.2.3.3-6 +- install man pages +- Resolves: rhbz#1086714 overlarge pixmap + +* Wed Apr 16 2014 Caolán McNamara <caolanm@redhat.com> - 1:4.2.3.3-5 +- Resolves: fdo#36815 enable printing WYSIWYG sidewindow comments + +* Sat Apr 12 2014 David Tardon <dtardon@redhat.com> - 1:4.2.3.3-4 +- drop filtering of provides again + +* Sat Apr 12 2014 Caolán McNamara <caolanm@redhat.com> - 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 <caolanm@redhat.com> - 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 <dtardon@redhat.com> - 1:4.2.3.3-1 +- update to 4.2.3 rc3 + +* Tue Apr 01 2014 Caolán McNamara <caolanm@redhat.com> - 1:4.2.3.2-3 +- Related: rhbz#1075951 abrt crash in MSWordExportBase + +* Mon Mar 31 2014 David Tardon <dtardon@redhat.com> - 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 <dtardon@redhat.com> - 1:4.2.3.2-1 +- update to 4.2.3 rc2 + +* Tue Mar 25 2014 Caolán McNamara <caolanm@redhat.com> - 1:4.2.3.1-2 +- Resolves: rhbz#1077780 crash on loading a specific docx + +* Mon Mar 17 2014 David Tardon <dtardon@redhat.com> - 1:4.2.3.1-1 +- update to 4.2.3 rc1 + +* Fri Mar 14 2014 Caolán McNamara <caolanm@redhat.com> - 1:4.2.2.1-7 +- Related: rhbz#1076264 intermittent a11y crash in calc + +* Mon Mar 10 2014 Michael Stahl <mstahl@redhat.com> - 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 <caolanm@redhat.com> - 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 <caolanm@redhat.com> - 1:4.2.2.1-4 +- Related: rhbz#1065807 wizards should look in Template_internal + +* Fri Feb 28 2014 Caolán McNamara <caolanm@redhat.com> - 1:4.2.2.1-3 +- Resolves: rhbz#1007697 Update on a Window deletes itself + +* Fri Feb 28 2014 Caolán McNamara <caolanm@redhat.com> - 1:4.2.2.1-2 +- Related: rhbz#1065807 don't throw with no "Templates" dir under KDE + +* Thu Feb 27 2014 David Tardon <dtardon@redhat.com> - 1:4.2.2.1-1 +- update to 4.2.2 rc1 + +* Thu Feb 27 2014 Stephan Bergmann <sbergman@redhat.com> - 1:4.2.1.1-4 +- Resolves: fdo#75540 spadmin does not start + +* Thu Feb 27 2014 David Tardon <dtardon@redhat.com> - 1:4.2.1.1-3 +- Resolves: rhbz#1057977 do not crash when fonts are updated + +* Tue Feb 25 2014 Caolán McNamara <caolanm@redhat.com> - 1:4.2.1.1-2 +- Resolves: rhbz#1065807 search XDG defined "Templates" dir + +* Thu Feb 13 2014 David Tardon <dtardon@redhat.com> - 1:4.2.1.1-1 +- update to 4.2.1 rc1 + +* Thu Feb 13 2014 David Tardon <dtardon@redhat.com> - 1:4.2.0.4-4 +- rebuild for new ICU + +* Thu Feb 06 2014 David Tardon <dtardon@redhat.com> - 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 <dtardon@redhat.com> - 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 <dtardon@redhat.com> - 1:4.2.0.4-1 +- update to 4.2.0 rc4 + +* Fri Jan 24 2014 David Tardon <dtardon@redhat.com> - 1:4.2.0.3-3 +- enable EOT support +- fix PPC build + +* Thu Jan 23 2014 David Tardon <dtardon@redhat.com> - 1:4.2.0.3-2 +- stop showing math and startcenter in menu (again) + +* Wed Jan 22 2014 David Tardon <dtardon@redhat.com> - 1:4.2.0.3-1 +- update to 4.2.0 rc3 + +* Mon Jan 13 2014 Caolán McNamara <caolanm@redhat.com> - 1:4.2.0.2-2 +- Related: rhbz#1047871 conditional formatting doesn't fit on screen + +* Thu Jan 09 2014 David Tardon <dtardon@redhat.com> - 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 <dtardon@redhat.com> - 1:4.2.0.1-1 +- 4.2.0 rc1 + +* Wed Dec 11 2013 Caolán McNamara <caolanm@redhat.com> - 1:4.2.0.0-3.beta2 +- Resolves: rhbz#1040291 Change language name from "Oriya" to "Odia" + +* Wed Dec 04 2013 Caolán McNamara <caolanm@redhat.com> - 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 <dtardon@redhat.com> - 1:4.2.0.0-1.beta1 +- switch to 4.2.0 + +* Wed Nov 20 2013 Stephan Bergmann <sbergman@redhat.com> - 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 <dtardon@redhat.com> - 1:4.1.3.2-4 +- adapt for libmwaw 0.2 + +* Thu Oct 31 2013 David Tardon <dtardon@redhat.com> - 1:4.1.3.2-3 +- Resolves: fdo#56209 reviving FilterFormulaParser + +* Thu Oct 31 2013 Stephan Bergmann <sbergman@redhat.com> - 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 <dtardon@redhat.com> - 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 <caolanm@redhat.com> - 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 <dtardon@redhat.com> - 1:4.1.3.1-1 +- 4.1.3 rc1 + +* Mon Oct 07 2013 Caolán McNamara <caolanm@redhat.com> - 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 <caolanm@redhat.com> - 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 <caolanm@redhat.com> - 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 <dtardon@redhat.com> - 1:4.1.2.3-1 +- 4.1.2 rc3 + +* Fri Sep 20 2013 David Tardon <dtardon@redhat.com> - 1:4.1.2.2-1 +- 4.1.2 rc2 + +* Tue Sep 17 2013 Caolán McNamara <caolanm@redhat.com> - 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 <caolanm@redhat.com> - 1:4.1.2.1-2 +- Resolves: rhbz#1006850 crash in SwCommentRuler + +* Thu Sep 05 2013 David Tardon <dtardon@redhat.com> - 1:4.1.2.1-1 +- 4.1.2 rc1 + +* Tue Sep 03 2013 Caolán McNamara <caolanm@redhat.com> - 1:4.1.1.2-3 +- Resolves: rhbz#993963 NULL m_pWindow on firefox close plugin window + +* Fri Aug 23 2013 Stephan Bergmann <sbergman@redhat.com> - 1:4.1.1.2-2 +- Resolves: rhbz#1000150, Do not call exit upon XIOError + +* Thu Aug 22 2013 David Tardon <dtardon@redhat.com> - 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 <mkasik@redhat.com> - 1:4.1.1.1-2 +- Rebuild (poppler-0.24.0) + +* Fri Aug 09 2013 David Tardon <dtardon@redhat.com> - 1:4.1.1.1-1 +- 4.1.1 rc1 + +* Fri Aug 09 2013 Caolán McNamara <caolanm@redhat.com> - 1:4.1.0.4-6 +- Resolves: fdo#67743 user autocorr file not written + +* Tue Jul 30 2013 Stephan Bergmann <sbergman@redhat.com> - 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 <caolanm@redhat.com> - 1:4.1.0.4-4 +- Resolves: rhbz#989686 Fix crash with stripping whitespace from toc entries + +* Mon Jul 29 2013 David Tardon <dtardon@redhat.com> - 1:4.1.0.4-3 +- make libwpd-based filters work correctly with newest libwpd + +* Sun Jul 28 2013 Petr Machata <pmachata@redhat.com> - 1:4.1.0.4-2 +- Rebuild for boost 1.54.0 + +* Wed Jul 24 2013 David Tardon <dtardon@redhat.com> - 1:4.1.0.4-1 +- 4.1.0 rc4 + +* Mon Jul 22 2013 Eike Rathke <erack@redhat.com> - 1:4.1.0.3-2 +- force rebuild with icu-50.1.2-7 + +* Thu Jul 18 2013 David Tardon <dtardon@redhat.com> - 1:4.1.0.3-1 +- 4.1.0 rc3 +- Resolves: fdo#48835 GNOME3 app menu + +* Thu Jul 18 2013 Caolán McNamara <caolanm@redhat.com> - 1:4.1.0.2-5 +- silence scary gcc warning +- fdo#66924 switching to master view is broken + +* Tue Jul 16 2013 David Tardon <dtardon@redhat.com> - 1:4.1.0.2-4 +- bump release + +* Fri Jul 12 2013 David Tardon <dtardon@redhat.com> - 1:4.1.0.2-3 +- Resolves: rhbz#983809 libreoffice-base misses deps on needed java packages + +* Thu Jul 11 2013 David Tardon <dtardon@redhat.com> - 1:4.1.0.2-2 +- Resolves: rhbz#980387 Exporting a odg to jpg or tiff generates error + +* Thu Jul 04 2013 David Tardon <dtardon@redhat.com> - 1:4.1.0.2-1 +- 4.1.0 rc2 + +* Mon Jul 01 2013 Caolán McNamara <caolanm@redhat.com> - 1:4.1.0.1-8 +- Resolves: rhbz#979758 crash on Diagrammen in LibreOffice help page + +* Thu Jun 27 2013 David Tardon <dtardon@redhat.com> - 1:4.1.0.1-7 +- bump revision + +* Mon Jun 24 2013 Marek Kasik <mkasik@redhat.com> - 1:4.1.0.1-6 +- Rebuild (poppler-0.22.5) + +* Mon Jun 24 2013 David Tardon <dtardon@redhat.com> - 1:4.1.0.1-5 +- fix build on big endian archs + +* Mon Jun 24 2013 David Tardon <dtardon@redhat.com> - 1:4.1.0.1-4 +- put glade catalog into an extra packgae + +* Sun Jun 23 2013 Caolán McNamara <caolanm@redhat.com> - 1:4.1.0.1-3 +- Resolves: rhbz#976304 gallery elements may not insert + +* Wed Jun 19 2013 Dennis Gilmore <dennis@ausil.us> - 1:4.1.0.1-2 +- fix _smp_mflags macro useage + +* Wed Jun 19 2013 David Tardon <dtardon@redhat.com> - 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 <dtardon@redhat.com> - 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 <dtardon@redhat.com> - 1:4.1.0.0-8.beta2 +- Related: rhbz#971795 go back to BR: harfbuzz-devel + +* Fri Jun 07 2013 David Tardon <dtardon@redhat.com> - 1:4.1.0.0-7.beta2 +- Resolves: rhbz#971230 Use BR: harfbuzz-icu-devel + +* Wed Jun 05 2013 David Tardon <dtardon@redhat.com> - 1:4.1.0.0-7.beta1 +- 4.1.0 beta2 + +* Wed Jun 05 2013 Caolán McNamara <caolanm@redhat.com> - 1:4.1.0.0-6.beta1 +- Related: rhbz#968892 discard impossible languages for Oriya script + +* Tue Jun 04 2013 Caolán McNamara <caolanm@redhat.com> - 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 <caolanm@redhat.com> - 1:4.1.0.0-4.beta1 +- Resolves: rhbz#968976 fix dropdown list autosizing + +* Thu May 30 2013 David Tardon <dtardon@redhat.com> - 1:4.1.0.0-3.beta1 +- build fix for s390 + +* Fri May 24 2013 David Tardon <dtardon@redhat.com> - 1:4.1.0.0-2.beta1 +- 4.1.0 beta1 + +* Fri May 24 2013 Stephan Bergmann <sbergman@redhat.com> - 1:4.0.3.3-3 +- Resolves: rhbz#961460 can't save WebDAV (davs) files + +* Thu May 16 2013 Caolán McNamara <caolanm@redhat.com> - 1:4.0.3.3-2 +- Resolves: rhbz#963276 font options cache crash + +* Fri May 03 2013 David Tardon <dtardon@redhat.com> - 1:4.0.3.3-1 +- 4.0.3 rc3 + +* Tue Apr 30 2013 David Tardon <dtardon@redhat.com> - 1:4.0.3.2-1 +- 4.0.3 rc2 + +* Mon Apr 22 2013 Stephan Bergmann <sbergman@redhat.com> - 1:4.0.3.1-2 +- Resolves: rhbz#954991 Avoid static data (causing trouble at exit) + +* Thu Apr 18 2013 David Tardon <dtardon@redhat.com> - 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 <caolanm@redhat.com> - 1:4.0.2.2-4 +- Resolves: rhbz#927223 syntax highlighting crash + +* Mon Apr 08 2013 Caolán McNamara <caolanm@redhat.com> - 1:4.0.2.2-3 +- Resolves: rhbz#949238 div by zero on pagedown in 0 width panel + +* Fri Apr 05 2013 Kalev Lember <kalevlember@gmail.com> - 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 <dtardon@redhat.com> - 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 <caolanm@redhat.com> - 1:4.0.2.1-2 +- Resolves: rhbz#906137 slide show inverts outputs + +* Fri Mar 15 2013 David Tardon <dtardon@redhat.com> - 1:4.0.2.1-1 +- 4.0.2 rc1 +- Resolves: rhbz#921716 Build Breton language pack + +* Wed Mar 13 2013 Stephan Bergmann <sbergman@redhat.com> - 1:4.0.1.2-4 +- Resolves: rhbz#895690 failure saving to gvfs mounts + +* Tue Mar 12 2013 Caolán McNamara <caolanm@redhat.com> - 1:4.0.1.2-3 +- Resolves: rhbz#920697 presentation not always full-screen + +* Thu Mar 07 2013 Caolán McNamara <caolanm@redhat.com> - 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 <dtardon@redhat.com> - 1:4.0.1.2-1 +- 4.0.1 rc2 + +* Tue Feb 26 2013 Eike Rathke <erack@redhat.com> - 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 <caolanm@redhat.com> - 1:4.0.0.3-7 +- Resolves: rhbz#895196 sc filter float a11y parent of itself + +* Tue Feb 19 2013 David Tardon <dtardon@redhat.com> - 1:4.0.0.3-6 +- Resolves: rhbz#911896 add Kazakh localization + +* Fri Feb 15 2013 Caolán McNamara <caolanm@redhat.com> - 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 <sbergman@redhat.com> - 1:4.0.0.3-4 +- Resolves: fdo#60491 missing libemboleobj.so +- Resolves: rhbz#908674 crash on start + +* Sat Feb 09 2013 Denis Arnaud <denis.arnaud_fedora@m4x.org> - 1:4.0.0.3-3 +- Rebuild for Boost-1.53.0 + +* Wed Feb 06 2013 David Tardon <dtardon@redhat.com> - 1:4.0.0.3-2 +- fix parsing errors in translated help + +* Fri Feb 01 2013 David Tardon <dtardon@redhat.com> - 1:4.0.0.3-1 +- 4.0.0 rc3 + +* Wed Jan 23 2013 David Tardon <dtardon@redhat.com> - 1:4.0.0.2-1 +- 4.0.0 rc2 +- use ucpp again + +* Tue Jan 22 2013 David Tardon <dtardon@redhat.com> - 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 <dtardon@redhat.com> - 1:4.0.0.1-2 +- Resolves: rhbz#901346 do not install 512x512 icons + +* Tue Jan 15 2013 David Tardon <dtardon@redhat.com> - 1:4.0.0.1-1 +- 4.0.0 rc1 + +* Sat Dec 22 2012 David Tardon <dtardon@redhat.com> - 1:4.0.0.0-4.beta2 +- use system cpp instead of ucpp + +* Wed Dec 19 2012 David Tardon <dtardon@redhat.com> - 1:4.0.0.0-3.beta2 +- 4.0.0 beta2 + +* Thu Dec 06 2012 David Tardon <dtardon@redhat.com> - 1:4.0.0.0-2.beta1 +- 4.0.0 beta1 + +* Thu Nov 29 2012 David Tardon <dtardon@redhat.com> - 1:3.6.4.3-1 +- 3.6.4 rc3 + +* Wed Nov 28 2012 Caolán McNamara <caolanm@redhat.com> - 1:3.6.4.1-2 +- fix docx import on big endian + +* Sun Nov 18 2012 David Tardon <dtardon@redhat.com> - 1:3.6.4.1-1 +- 3.6.4 rc1 + +* Wed Nov 14 2012 Caolán McNamara <caolanm@redhat.com> - 1:3.6.3.2-8 +- Resolves: rhbz#872815 ogltrans effects still suboptimal + +* Tue Nov 13 2012 Caolán McNamara <caolanm@redhat.com> - 1:3.6.3.2-7 +- big endian test failure + +* Thu Nov 08 2012 Caolán McNamara <caolanm@redhat.com> - 1:3.6.3.2-6 +- Resolves: fdo#56198/rhbz#868002 honour gtk-scrollbar-warp-preference + +* Tue Nov 06 2012 Caolán McNamara <caolanm@redhat.com> - 1:3.6.3.2-5 +- bump for libexttextcat + +* Fri Nov 02 2012 David Tardon <dtardon@redhat.com> - 1:3.6.3.2-4 +- Resolves: rhbz#871929 add keywords to desktop files +- fix debuginfo + +* Wed Oct 31 2012 Eike Rathke <erack@redhat.com> - 1:3.6.3.2-3 +- Resolves: rhbz#865058 increase number of user-defined format codes + +* Fri Oct 26 2012 David Tardon <dtardon@redhat.com> - 1:3.6.3.2-2 +- Resolves: rhbz#824035 do not bundle saxon + +* Wed Oct 24 2012 David Tardon <dtardon@redhat.com> - 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 <caolanm@redhat.com> - 1:3.6.3.1-3 +- Resolves: rhbz#868479 guard against duplicated ~ in OK/Cancel + +* Thu Oct 11 2012 David Tardon <dtardon@redhat.com> - 1:3.6.3.1-2 +- Resolves: rhbz#858641 backport gstreamer 1.0 support to F-18 + +* Thu Oct 11 2012 Caolán McNamara <caolanm@redhat.com> - 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 <sbergman@redhat.com> - 1:3.6.2.2-3 +- Resolves: fdo#46071 Do not hide windows based on nil Visible property + +* Fri Oct 05 2012 Stephan Bergmann <sbergman@redhat.com> - 1:3.6.2.2-2 +- Resolves: fdo#52022 Part of data in userdir is lost on upgrade + +* Wed Sep 26 2012 David Tardon <dtardon@redhat.com> - 1:3.6.2.2-1 +- 3.6.2 rc2 + +* Wed Sep 12 2012 Caolán McNamara <caolanm@redhat.com> - 1:3.6.2.1-2 +- Resolves: rhbz#855541 XIOError handler multithread woes + +* Wed Sep 12 2012 David Tardon <dtardon@redhat.com> - 1:3.6.2.1-1 +- 3.6.2 rc1 + +* Tue Sep 11 2012 Caolán McNamara <caolanm@redhat.com> - 1:3.6.1.2-4 +- Resolves: rhbz#855507 large ole2 compound files fail to load + +* Mon Sep 10 2012 Caolán McNamara <caolanm@redhat.com> - 1:3.6.1.2-3 +- Resolves: rhbz#855972 crash on switching to outline view + +* Wed Aug 29 2012 Caolán McNamara <caolanm@redhat.com> - 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 <dtardon@redhat.com> - 1:3.6.1.2-1 +- 3.6.1 rc2 + +* Wed Aug 22 2012 Caolán McNamara <caolanm@redhat.com> - 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 <dtardon@redhat.com> - 1:3.6.1.1-1 +- 3.6.1 rc1 + +* Sun Aug 12 2012 Kevin Fenzi <kevin@scrye.com> - 1:3.6.0.4-3 +- Rebuild for new boost + +* Sat Jul 28 2012 David Tardon <dtardon@redhat.com> - 1:3.6.0.4-2 +- rebuilt for boost 1.50 + +* Fri Jul 27 2012 David Tardon <dtardon@redhat.com> - 1:3.6.0.4-1 +- 3.6.0 rc4 + +* Thu Jul 26 2012 David Tardon <dtardon@redhat.com> - 1:3.6.0.3-2 +- Resolves: rhbz#842552 crash in pptx import + +* Wed Jul 25 2012 David Tardon <dtardon@redhat.com> - 1:3.6.0.3-1 +- 3.6.0 rc3 + +* Tue Jul 17 2012 David Tardon <dtardon@redhat.com> - 1:3.6.0.2-1 +- 3.6.0 rc2 + +* Mon Jul 16 2012 Caolán McNamara <caolanm@redhat.com> - 1:3.6.0.1-3 +- Resolves: rhbz#836937 insanely slow with Zemberek + +* Mon Jul 16 2012 David Tardon <dtardon@redhat.com> - 1:3.6.0.1-2 +- rebuild for new libexttextcat + +* Thu Jul 12 2012 David Tardon <dtardon@redhat.com> - 3.6.0.1-1 +- 3.6.0 rc1 + +* Mon Jul 09 2012 Caolán McNamara <caolanm@redhat.com> - 3.6.0.0-4 +- Resolves: rhbz#838368 --view ignored while -view accepted + +* Thu Jul 05 2012 David Tardon <dtardon@redhat.com> - 3.6.0.0-3 +- 3.6.0 beta3 + +* Mon Jul 2 2012 Marek Kasik <mkasik@redhat.com> - 3.6.0.0-2 +- Rebuild (poppler-0.20.1) + +* Wed Jun 27 2012 David Tardon <dtardon@redhat.com> - 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 <caolanm@redhat.com> - 3.5.5.1-2 +- Resolves: rhbz#830810 missing dependency on lucene-contrib + +* Thu Jun 14 2012 David Tardon <dtardon@redhat.com> - 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 <dtardon@redhat.com> - 3.5.4.2-3 +- make gdb pretty printers for URE libs usable again + +* Fri Jun 08 2012 Caolán McNamara <caolanm@redhat.com> - 3.5.4.2-2 +- Resolves: rhbz#826609, rhbz#820554 fix smoketest on ppc[64] and s390[x] + +* Wed May 23 2012 David Tardon <dtardon@redhat.com> - 3.5.4.2-1 +- 3.5.4 rc2 + +* Thu May 17 2012 Caolán McNamara <caolanm@redhat.com> - 3.5.4.1-2 +- Resolves: rhbz#811226 ARM FTBFS + +* Wed May 16 2012 David Tardon <dtardon@redhat.com> - 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 <caolanm@redhat.com> - 3.5.3.2-5 +- Resolves: fdo#49849 line breaking fixes for Hebrew + +* Fri May 11 2012 David Tardon <dtardon@redhat.com> - 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 <caolanm@redhat.com> - 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 <dtardon@redhat.com> - 3.5.3.2-2 +- rebuild for changed dependencies + +* Wed Apr 25 2012 David Tardon <dtardon@redhat.com> - 3.5.3.2-1 +- 3.5.3 rc2 +- fix broken test on 64bit big endian + +* Mon Apr 23 2012 David Tardon <dtardon@redhat.com> - 3.5.3.1-2 +- rebuild for icu +- fix UNO bridges for ppc and ppc64 + +* Thu Apr 19 2012 David Tardon <dtardon@redhat.com> - 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 <erack@redhat.com> - 3.5.2.1-7 +- Resolves: rhbz#813280 sheets cannot be moved in Calc + +* Wed Apr 11 2012 Eike Rathke <erack@redhat.com> - 3.5.2.1-6 +- Resolves: fdo#38088 rhbz#810267 better CSV import default separators + +* Tue Apr 10 2012 Caolán McNamara <caolanm@redhat.com> - 3.5.2.1-5 +- Resolves: rhbz#811226 FTBFS ARM + +* Thu Apr 05 2012 Stephan Bergmann <sbergman@redhat.com> - 3.5.2.1-4 +- Fix URIS_ONLY flag issue +- rebuild for db4 + +* Mon Apr 02 2012 Caolán McNamara <caolanm@redhat.com> - 3.5.2.1-3 +- Resolves: rhbz#708041 focus problems with tearable menus + +* Mon Mar 26 2012 Caolán McNamara <caolanm@redhat.com> - 3.5.2.1-2 +- Resolves: rhbz#806663 SlideshowImpl can outlive SdModule + +* Sun Mar 25 2012 David Tardon <dtardon@redhat.com> - 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 <dtardon@redhat.com> - 3.5.1.2-2 +- Resolves: rhbz#770209 can't change paper tray setting while printing + +* Thu Mar 08 2012 David Tardon <dtardon@redhat.com> - 3.5.1.2-1 +- 3.5.1 rc2 + +* Tue Mar 06 2012 Caolán McNamara <caolanm@redhat.com> - 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 <caolanm@redhat.com> - 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 <dtardon@redhat.com> - 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 <sbergman@redhat.com> - 3.5.0.3-5 +- Resolves rhbz#789622: Adapt SDK to changed paths in LO installation + +* Mon Feb 13 2012 Caolán McNamara <caolanm@redhat.com> - 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 <caolanm@redhat.com> - 3.5.0.3-3 +- make sure .tree files don't get busted again + +* Tue Feb 07 2012 Stephan Bergmann <sbergman@redhat.com> - 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 <dtardon@redhat.com> - 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 <sbergman@redhat.com> - 3.5.0.2-2 +- add libreoffice-postgresql subpackage + +* Wed Jan 25 2012 David Tardon <dtardon@redhat.com> - 3.5.0.2-1 +- 3.5.0 rc2 + +* Thu Jan 19 2012 David Tardon <dtardon@redhat.com> - 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 <dtardon@redhat.com> - 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 <dtardon@redhat.com> - 3.4.99.2-2 +- rebuild with gcc 4.7 + +* Wed Dec 21 2011 David Tardon <dtardon@redhat.com> - 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 <dtardon@redhat.com> - 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 <caolanm@redhat.com> - 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 <caolanm@redhat.com> - 3.4.4.2-5 +- Resolves: rhbz#757653 fix headless crash with cairo canvas + +* Tue Nov 22 2011 Lukas Tinkl <ltinkl@redhat.com> - 3.4.4.2-4 +- Resolves: rhbz#751290 - [kde] LibreOffice has black on dark-grey tooltip-texts + +* Fri Nov 11 2011 Caolán McNamara <caolanm@redhat.com> - 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 <sbergman@redhat.com> - 3.4.4.2-2 +- Patch to backport reading AES-encrypted ODF 1.2 documents + +* Thu Nov 03 2011 David Tardon <dtardon@redhat.com> - 3.4.4.2-1 +- 3.4.4 rc2 + +* Fri Oct 28 2011 Rex Dieter <rdieter@fedoraproject.org> - 1:3.4.4.1-4 +- rebuild(poppler) + +* Thu Oct 27 2011 Caolán McNamara <caolanm@redhat.com> - 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 <caolanm@redhat.com> - 3.4.4.1-2 +- possible fix for java 1.7.0 detection + + +* Wed Oct 26 2011 David Tardon <dtardon@redhat.com> - 3.4.4.1-1 +- 3.4.4 rc1 + +* Tue Oct 25 2011 Caolán McNamara <caolanm@redhat.com> - 3.4.3.2-16 +- allow building with gcj + +* Fri Oct 21 2011 Caolán McNamara <caolanm@redhat.com> - 3.4.3.2-15 +- Resolves: rhbz#747356 let Qt call XInitThreads +- fix .sdw import + +* Wed Oct 19 2011 Caolán McNamara <caolanm@redhat.com> - 3.4.3.2-14 +- Related: rhbz#743750 addXineramaScreenUnique issue + +* Fri Oct 07 2011 Stephan Bergmann <sbergman@redhat.com> - 3.4.3.2-13 +- Patches to build with GCC 6.4.1 + +* Fri Sep 30 2011 Marek Kasik <mkasik@redhat.com> - 3.4.3.2-12 +- Rebuild (poppler-0.18.0) + +* Tue Sep 20 2011 Caolán McNamara <caolanm@redhat.com> - 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 <mkasik@redhat.com> - 3.4.3.2-10 +- Rebuild (poppler-0.17.3) + +* Thu Sep 15 2011 Caolán McNamara <caolanm@redhat.com> - 3.4.3.2-9 +- Resolves: rhbz#738255 avoid crash on sc inputhdl + +* Tue Sep 13 2011 Caolán McNamara <caolanm@redhat.com> - 3.4.3.2-8 +- Resolves: rhbz#274631 remove NoDisplay from -math.desktop + +* Thu Sep 08 2011 David Tardon <dtardon@redhat.com> - 3.4.3.2-7 +- rebuild for new icu + +* Tue Sep 06 2011 David Tardon <dtardon@redhat.com> - 3.4.3.2-6 +- Resolves: rhbz#734976 libreoffice-langpack-*-* not pulled in by + yum install libreoffice + +* Fri Sep 02 2011 Caolán McNamara <caolanm@redhat.com> - 3.4.3.2-5 +- Resolves: rhbz#735182 be able to rebuild against poppler 0.17.3 + +* Tue Aug 30 2011 David Tardon <dtardon@redhat.com> - 3.4.3.2-4 +- Resolves: rhbz#734432 openoffice.org symlink broken + +* Mon Aug 29 2011 David Tardon <dtardon@redhat.com> - 3.4.3.2-3 +- add Latvian langpack + +* Fri Aug 26 2011 Caolán McNamara <caolanm@redhat.com> - 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 <dtardon@redhat.com> - 3.4.3.2-1 +- 3.4.3 rc2 + +* Mon Aug 22 2011 David Tardon <dtardon@redhat.com> - 3.4.3.1-2 +- add gdb pretty printers + +* Tue Aug 16 2011 David Tardon <dtardon@redhat.com> - 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 <caolanm@redhat.com> - 3.4.2.3-3 +- Related: rhbz#730225 avoid segv in ld + +* Tue Aug 02 2011 Caolán McNamara <caolanm@redhat.com> - 3.4.2.3-2 +- Resolves: rhbz#693265 fix crash from unhandled exception + +* Fri Jul 29 2011 David Tardon <dtardon@redhat.com> - 3.4.2.3-1 +- 3.4.2 rc3 + +* Mon Jul 25 2011 Caolán McNamara <caolanm@redhat.com> - 3.4.2.2-2 +- Resolves: rhbz#725144 wrong csh syntax + +* Wed Jul 20 2011 David Tardon <dtardon@redhat.com> - 3.4.2.2-1 +- 3.4.2 rc2 +- fix breakage in KDE4 plugin + +* Tue Jul 19 2011 Caolán McNamara <caolanm@redhat.com> - 3.4.2.1-3 +- Resolves: rhbz#715549 use fontconfig's detected format + +* Mon Jul 18 2011 Caolán McNamara <caolanm@redhat.com> - 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 <dtardon@redhat.com> - 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 <caolanm@redhat.com> - 3.4.1.3-3 +- fix regression in SvGlobalName operator + +* Tue Jul 05 2011 Caolán McNamara <caolanm@redhat.com> - 3.4.1.3-2 +- Related: rhbz#718976 crash in SwTxtSizeInfo::GetMultiCreator + +* Fri Jul 01 2011 David Tardon <dtardon@redhat.com> - 3.4.1.3-1 +- 3.4.1 rc3 + +* Thu Jun 23 2011 Caolán McNamara <caolanm@redhat.com> - 3.4.1.2-1 +- 3.4.1 rc2 +- drop integrated 0001-correctly-build-GTK-systray-icon.patch + +* Tue Jun 21 2011 David Tardon <dtardon@redhat.com> - 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 <caolanm@redhat.com> - 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 <caolanm@redhat.com> - 3.4.1.1-3 +- Related: rhbz#702833 addEventListener without removeEventListener + +* Thu Jun 16 2011 Caolán McNamara <caolanm@redhat.com> - 3.4.1.1-2 +- Resolves: rhbz#713154 pdf export dialog too tall to fit + +* Wed Jun 15 2011 David Tardon <dtardon@redhat.com> - 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 <caolanm@redhat.com> - 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 <caolanm@redhat.com> - 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 <caolanm@redhat.com> - 3.4.0.2-3 +- Resolves: rhbz#710004 band aid for crash + +* Mon May 30 2011 Caolán McNamara <caolanm@redhat.com> - 3.4.0.2-2 +- Resolves: rhbz#707317 avoid crash in getRowSpan + +* Fri May 27 2011 David Tardon <dtardon@redhat.com> - 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 <caolanm@redhat.com> - 3.4.0.1-3 +- rebuild for new hunspell + +* Tue May 24 2011 David Tardon <dtardon@redhat.com> - 3.4.0.1-2 +- Resolves: rhbz#706110 oosplash.bin segfault on every login + +* Fri May 20 2011 David Tardon <dtardon@redhat.com> - 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 <caillon@redhat.com> - 3.3.99.4-2 +- Update icon cache scriptlet + +* Sat May 07 2011 David Tardon <dtardon@redhat.com> 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 <caolanm@redhat.com> 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 <caolanm@redhat.com> 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 <caolanm@redhat.com> 3.3.2.2-6 +- Resolves: rhbz#655686 get order of shutdown correct + +* Wed Mar 30 2011 Caolán McNamara <caolanm@redhat.com> 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 <caolanm@redhat.com> 3.3.2.2-4 +- Resolves: rhbz#684580 improve X and / strike-through + +* Thu Mar 24 2011 David Tardon <dtardon@redhat.com> 3.3.2.2-3 +- Resolves: rhbz#680766 crash in mdds + +* Wed Mar 23 2011 David Tardon <dtardon@redhat.com> 3.3.2.2-2 +- Related: rhbz#689268 versioned deps need to contain epoch + +* Tue Mar 22 2011 Caolán McNamara <caolanm@redhat.com> 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 <caolanm@redhat.com> 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 <caolanm@redhat.com> 3.3.1.2-11 +- Resolves: rhbz#689268 autocorrs from OOo F14 not upgraded + +* Wed Mar 16 2011 Caolán McNamara <caolanm@redhat.com> 3.3.1.2-10 +- Resolves: rhbz#680460 honour lcdfilter and subpixeling + +* Tue Mar 15 2011 Caolán McNamara <caolanm@redhat.com> 3.3.1.2-9 +- Resolves: fdo#33947 sd print crash + +* Mon Mar 14 2011 Caolán McNamara <caolanm@redhat.com> 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 <mkasik@redhat.com> 3.3.1.2-7 +- Rebuild (poppler-0.16.3) + +* Wed Mar 09 2011 Caolán McNamara <caolanm@redhat.com> 3.3.1.2-6 +- Resolves: rhbz#682621 better resizing of overtall glyphsubs + +* Tue Mar 08 2011 Caolán McNamara <caolanm@redhat.com> 3.3.1.2-5 +- Resolves: rhbz#682716 pa-IN isn't handled well by fontconfig + +* Tue Mar 08 2011 David Tardon <dtardon@redhat.com> 3.3.1.2-4 +- install 128x128 px icons + +* Wed Mar 02 2011 Caolán McNamara <caolanm@redhat.com> 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 <caolanm@redhat.com> 3.3.1.2-2 +- Resolves: rhbz#678284 Calc crashes during cell select with keys + (dtardon) + +* Thu Feb 17 2011 Caolán McNamara <caolanm@redhat.com> 3.3.1.2-1 +- RC2 + +* Wed Feb 16 2011 Caolán McNamara <caolanm@redhat.com> 3.3.1.1-2 +- Resolves: rhbz#674330 dereference of NULL mpBase + +* Fri Feb 11 2011 Caolán McNamara <caolanm@redhat.com> 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 <caolanm@redhat.com> 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 <caolanm@redhat.com> 3.3.0.4-2 +- Resolves: rhbz#671540 fix lonely ) + +* Thu Jan 20 2011 Caolán McNamara <caolanm@redhat.com> 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 <caolanm@redhat.com> 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 <caolanm@redhat.com> 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 <caolanm@redhat.com> 3.3.0.2-5 +- Resolves: rhbz#666088 don't crash on clean up of search cache + +* Wed Jan 05 2011 Lukas Tinkl <ltinkl@redhat.com> 3.3.0.2-4 +- create a KDE integration subpackage + +* Mon Jan 03 2011 David Tardon <dtardon@redhat.com> 3.3.0.2-3 +- rebuild with new poppler + +* Wed Dec 22 2010 Caolán McNamara <caolanm@redhat.com> 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 <caolanm@redhat.com> 3.3.0.2-1 +- latest version + +* Sat Dec 18 2010 Caolán McNamara <caolanm@redhat.com> 3.3.0.1-4 +- Resolves: rhbz#663857 font color missing in transitions + +* Wed Dec 15 2010 Rex Dieter <rdieter@fedoraproject.org> - 3.3.0.1-3 +- rebuild (poppler) + +* Wed Dec 15 2010 Caolán McNamara <caolanm@redhat.com> 3.3.0.1-2 +- Fix up some doc imports + +* Sun Dec 05 2010 Caolán McNamara <caolanm@redhat.com> 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 <caolanm@redhat.com> 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 <caolanm@redhat.com 3.2.99.3-1 +- next Libreoffice milestone +- drop integrated openoffice.org-2.0.1.rhXXXXXX.extensions.defaulttoevo2.patch +- drop integrated openoffice.org-2.2.1.ooo7065.sw.titlepagedialog.patch +- drop integrated openoffice.org-3.2.0.ooo108846.sfx2.qstartfixes.patch +- drop integrated openoffice.org-3.3.0.ooo107490.cppu.lifecycle.patch +- drop integrated libreoffice-buildfix.patch +- drop integrated libreoffice-xdg632229.gnomeshell.patch +- drop integrated 0001-strcpy-cannot-be-used-with-overlapping-src-and-dest.patch +- drop integrated 0001-abort-doesn-t-gain-us-anything-here.patch +- drop integrated 0001-latest-libX11-changed-header-guards.patch + +* Sat Nov 06 2010 David Tardon <dtardon@redhat.com 3.2.99.2-6 +- turn script providers into extensions + +* Wed Nov 03 2010 Caolán McNamara <caolanm@redhat.com> 3.2.99.2-5 +- Resolves: rhbz#649210 add Sinhalese langpack + +* Sat Oct 30 2010 Caolán McNamara <caolanm@redhat.com> 3.2.99.2-4 +- langpack macro hard-coded version number + +* Fri Oct 22 2010 Caolán McNamara <caolanm@redhat.com> 3.2.99.2-3 +- Resolves: xdg632229 gnomeshell app tracking + +* Tue Oct 12 2010 David Tardon <dtardon@redhat.com> 3.2.99.2-2 +- use macros to define auto-correction and language pack subpackages + +* Mon Oct 11 2010 Caolán McNamara <caolanm@redhat.com> 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 <caolanm@redhat.com> 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 <caolanm@redhat.com> 3.2.99.1-1 +- initial import of the leviathan @@ -0,0 +1,8 @@ +17410483b5b5f267aa18b7e00b65e6e0 17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip +185d60944ea767075d27247c3162b3bc 185d60944ea767075d27247c3162b3bc-unowinreg.dll +a7983f859eafb2677d7ff386a023bc40 a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip +4295bad62b2524793d8a7ba3e7385501 dtoa-20180411.tgz +09c7414a011363c72248c7bf3a23d758 f543e6e2d7275557a839a164941c0a86e5f2c3f2a0042bfc434c88c6dde9e140-opens___.ttf +f80ae08177ffbf1404ecf57cb534d94e libreoffice-7.1.8.1.tar.xz +d66ae64561a9bccc27c8d0b9b3c691fd libreoffice-help-7.1.8.1.tar.xz +566cabebe62d53a2a62e73a413b3daeb libreoffice-translations-7.1.8.1.tar.xz |