From 0a91d18ebebaef23c0fbdcc4cfdaaf6415aca756dd3e5f286f9f81b7cd585735 Mon Sep 17 00:00:00 2001 From: Danilo Spinella Date: Mon, 14 Feb 2022 17:48:53 +0000 Subject: [PATCH 1/2] Accepting request 954361 from LibreOffice:7.3 - Update to 7.3.1.1 - Removed uneeded patches: * 0001-Missing-includes-for-libstdc-12.patch * bsc1183308.patch * fix-wayland-scaling-in-plasma.patch * pld-skia-patches.patch * skia-freetype2.11.patch OBS-URL: https://build.opensuse.org/request/show/954361 OBS-URL: https://build.opensuse.org/package/show/LibreOffice:Factory/libreoffice?expand=0&rev=991 --- 0001-Missing-includes-for-libstdc-12.patch | 354 ----- boost_1_75_0.tar.xz | 3 - boost_1_77_0.tar.xz | 3 + bsc1183308.patch | 1325 ----------------- fix-wayland-scaling-in-plasma.patch | 79 - gpgme-1.13.1.tar.bz2 | 3 - gpgme-1.16.0.tar.bz2 | 3 + icu4c-69_1-data.zip | 3 - icu4c-69_1-src.tgz | 3 - icu4c-70_1-data.zip | 3 + icu4c-70_1-src.tgz | 3 + libassuan-2.5.3.tar.bz2 | 3 - libassuan-2.5.5.tar.bz2 | 3 + libgpg-error-1.37.tar.bz2 | 3 - libgpg-error-1.43.tar.bz2 | 3 + libreoffice-7.2.5.1.tar.xz | 3 - libreoffice-7.2.5.1.tar.xz.asc | 16 - libreoffice-7.3.1.1.tar.xz | 3 + libreoffice-7.3.1.1.tar.xz.asc | 16 + libreoffice-help-7.2.5.1.tar.xz | 3 - libreoffice-help-7.2.5.1.tar.xz.asc | 16 - libreoffice-help-7.3.1.1.tar.xz | 3 + libreoffice-help-7.3.1.1.tar.xz.asc | 16 + libreoffice-translations-7.2.5.1.tar.xz | 3 - libreoffice-translations-7.2.5.1.tar.xz.asc | 16 - libreoffice-translations-7.3.1.1.tar.xz | 3 + libreoffice-translations-7.3.1.1.tar.xz.asc | 16 + libreoffice.changes | 11 + libreoffice.spec | 48 +- pdfium-4500.tar.bz2 | 3 - pdfium-4699.tar.bz2 | 3 + pld-skia-patches.patch | 10 - skia-freetype2.11.patch | 37 - ...e116ee0ce214bdf78405a4762722e4507d9.tar.xz | 3 - ...803d64ae9d44f4e1282444801119a3ae967.tar.xz | 3 + 35 files changed, 110 insertions(+), 1916 deletions(-) delete mode 100644 0001-Missing-includes-for-libstdc-12.patch delete mode 100644 boost_1_75_0.tar.xz create mode 100644 boost_1_77_0.tar.xz delete mode 100644 bsc1183308.patch delete mode 100644 fix-wayland-scaling-in-plasma.patch delete mode 100644 gpgme-1.13.1.tar.bz2 create mode 100644 gpgme-1.16.0.tar.bz2 delete mode 100644 icu4c-69_1-data.zip delete mode 100644 icu4c-69_1-src.tgz create mode 100644 icu4c-70_1-data.zip create mode 100644 icu4c-70_1-src.tgz delete mode 100644 libassuan-2.5.3.tar.bz2 create mode 100644 libassuan-2.5.5.tar.bz2 delete mode 100644 libgpg-error-1.37.tar.bz2 create mode 100644 libgpg-error-1.43.tar.bz2 delete mode 100644 libreoffice-7.2.5.1.tar.xz delete mode 100644 libreoffice-7.2.5.1.tar.xz.asc create mode 100644 libreoffice-7.3.1.1.tar.xz create mode 100644 libreoffice-7.3.1.1.tar.xz.asc delete mode 100644 libreoffice-help-7.2.5.1.tar.xz delete mode 100644 libreoffice-help-7.2.5.1.tar.xz.asc create mode 100644 libreoffice-help-7.3.1.1.tar.xz create mode 100644 libreoffice-help-7.3.1.1.tar.xz.asc delete mode 100644 libreoffice-translations-7.2.5.1.tar.xz delete mode 100644 libreoffice-translations-7.2.5.1.tar.xz.asc create mode 100644 libreoffice-translations-7.3.1.1.tar.xz create mode 100644 libreoffice-translations-7.3.1.1.tar.xz.asc delete mode 100644 pdfium-4500.tar.bz2 create mode 100644 pdfium-4699.tar.bz2 delete mode 100644 pld-skia-patches.patch delete mode 100644 skia-freetype2.11.patch delete mode 100644 skia-m90-45c57e116ee0ce214bdf78405a4762722e4507d9.tar.xz create mode 100644 skia-m97-a7230803d64ae9d44f4e1282444801119a3ae967.tar.xz diff --git a/0001-Missing-includes-for-libstdc-12.patch b/0001-Missing-includes-for-libstdc-12.patch deleted file mode 100644 index aba7d8a..0000000 --- a/0001-Missing-includes-for-libstdc-12.patch +++ /dev/null @@ -1,354 +0,0 @@ -From 83af781196f819f15c519c5e0c60758323e0e633 Mon Sep 17 00:00:00 2001 -From: Stephan Bergmann -Date: Mon, 9 Aug 2021 23:07:12 +0200 -Subject: [PATCH] Missing includes for libstdc++ 12 - -(for std::unique_ptr, with recent libstdc++ 12 trunk) - -Change-Id: I61b7823dd740ea7cdfe0d7403a50ac73b24d1c4e -Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120229 -Tested-by: Jenkins -Reviewed-by: Stephan Bergmann -(cherry picked from commit 43542cc07ee110abe25a1e176238fd6d921d593b) -Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128447 -Reviewed-by: Michael Stahl ---- - chart2/source/view/inc/PlottingPositionHelper.hxx | 4 ++++ - compilerplugins/clang/test/unusedfields.cxx | 1 + - connectivity/source/inc/java/tools.hxx | 4 ++++ - extensions/source/propctrlr/handlerhelper.hxx | 1 + - filter/source/xsltdialog/xmlfilterjar.hxx | 1 + - forms/source/component/EventThread.hxx | 1 + - forms/source/xforms/propertysetbase.hxx | 1 + - fpicker/source/office/contentenumeration.hxx | 4 ++++ - framework/inc/uielement/toolbarwrapper.hxx | 2 ++ - include/oox/crypto/StrongEncryptionDataSpace.hxx | 4 ++++ - include/sfx2/sidebar/SidebarPanelBase.hxx | 4 ++++ - include/svtools/imageresourceaccess.hxx | 4 ++++ - include/vcl/BitmapBuffer.hxx | 4 ++++ - include/vcl/filter/PngImageReader.hxx | 4 ++++ - shell/source/backends/kf5be/kf5backend.cxx | 2 ++ - sot/source/unoolestorage/xolesimplestorage.hxx | 2 ++ - starmath/inc/token.hxx | 1 + - .../textconversiondlgs/chinese_translation_unodialog.hxx | 4 ++++ - sw/source/uibase/docvw/OverlayRanges.hxx | 1 + - sw/source/uibase/docvw/ShadowOverlayObject.hxx | 4 ++++ - xmlsecurity/source/gpg/SecurityEnvironment.hxx | 3 +++ - xmlsecurity/source/helper/ooxmlsecparser.hxx | 1 + - xmlsecurity/source/helper/xsecparser.hxx | 1 + - 23 files changed, 58 insertions(+) - -diff --git a/chart2/source/view/inc/PlottingPositionHelper.hxx b/chart2/source/view/inc/PlottingPositionHelper.hxx -index 0962868b0f31..d687cb902453 100644 ---- a/chart2/source/view/inc/PlottingPositionHelper.hxx -+++ b/chart2/source/view/inc/PlottingPositionHelper.hxx -@@ -18,6 +18,10 @@ - */ - #pragma once - -+#include -+ -+#include -+ - #include - - #include -diff --git a/compilerplugins/clang/test/unusedfields.cxx b/compilerplugins/clang/test/unusedfields.cxx -index 5305b4aec964..6ff9189eab27 100644 ---- a/compilerplugins/clang/test/unusedfields.cxx -+++ b/compilerplugins/clang/test/unusedfields.cxx -@@ -14,6 +14,7 @@ - // expected-no-diagnostics - #else - -+#include - #include - #include - #include -diff --git a/connectivity/source/inc/java/tools.hxx b/connectivity/source/inc/java/tools.hxx -index bc9759fa9a88..44a35ecee3f9 100644 ---- a/connectivity/source/inc/java/tools.hxx -+++ b/connectivity/source/inc/java/tools.hxx -@@ -19,6 +19,10 @@ - - #pragma once - -+#include -+ -+#include -+ - #include - #include - -diff --git a/extensions/source/propctrlr/handlerhelper.hxx b/extensions/source/propctrlr/handlerhelper.hxx -index a53a24a9256f..1d32db9c0573 100644 ---- a/extensions/source/propctrlr/handlerhelper.hxx -+++ b/extensions/source/propctrlr/handlerhelper.hxx -@@ -26,6 +26,7 @@ - #include - #include - -+#include - #include - - namespace weld { class Builder; class Widget; class Window; } -diff --git a/filter/source/xsltdialog/xmlfilterjar.hxx b/filter/source/xsltdialog/xmlfilterjar.hxx -index 6f02e5f99de0..1d8e52fc3e18 100644 ---- a/filter/source/xsltdialog/xmlfilterjar.hxx -+++ b/filter/source/xsltdialog/xmlfilterjar.hxx -@@ -22,6 +22,7 @@ - #include - #include - -+#include - #include - - class filter_info_impl; -diff --git a/forms/source/component/EventThread.hxx b/forms/source/component/EventThread.hxx -index be9e9696734e..20aff73113db 100644 ---- a/forms/source/component/EventThread.hxx -+++ b/forms/source/component/EventThread.hxx -@@ -21,6 +21,7 @@ - - #include - -+#include - #include - - #include -diff --git a/forms/source/xforms/propertysetbase.hxx b/forms/source/xforms/propertysetbase.hxx -index bb27f8460fea..969253a04d62 100644 ---- a/forms/source/xforms/propertysetbase.hxx -+++ b/forms/source/xforms/propertysetbase.hxx -@@ -26,6 +26,7 @@ - #include - - #include -+#include - - namespace com::sun::star::uno { - class Any; -diff --git a/fpicker/source/office/contentenumeration.hxx b/fpicker/source/office/contentenumeration.hxx -index 9dcfae687883..bc2180c53c47 100644 ---- a/fpicker/source/office/contentenumeration.hxx -+++ b/fpicker/source/office/contentenumeration.hxx -@@ -19,6 +19,10 @@ - - #pragma once - -+#include -+ -+#include -+ - #include - #include - #include -diff --git a/framework/inc/uielement/toolbarwrapper.hxx b/framework/inc/uielement/toolbarwrapper.hxx -index 55142f98d500..da90455b21da 100644 ---- a/framework/inc/uielement/toolbarwrapper.hxx -+++ b/framework/inc/uielement/toolbarwrapper.hxx -@@ -25,6 +25,8 @@ - #include - #include - -+#include -+ - namespace weld - { - class Builder; -diff --git a/include/oox/crypto/StrongEncryptionDataSpace.hxx b/include/oox/crypto/StrongEncryptionDataSpace.hxx -index 59be5c9832a0..cd7156515ab3 100644 ---- a/include/oox/crypto/StrongEncryptionDataSpace.hxx -+++ b/include/oox/crypto/StrongEncryptionDataSpace.hxx -@@ -11,6 +11,10 @@ - #ifndef INCLUDED_OOX_CRYPTO_STRONGENCRYPTINDATASPACE_HXX - #define INCLUDED_OOX_CRYPTO_STRONGENCRYPTINDATASPACE_HXX - -+#include -+ -+#include -+ - #include - #include - #include -diff --git a/include/sfx2/sidebar/SidebarPanelBase.hxx b/include/sfx2/sidebar/SidebarPanelBase.hxx -index 971e286ca74f..8164244e796a 100644 ---- a/include/sfx2/sidebar/SidebarPanelBase.hxx -+++ b/include/sfx2/sidebar/SidebarPanelBase.hxx -@@ -18,6 +18,10 @@ - */ - #pragma once - -+#include -+ -+#include -+ - #include - - #include -diff --git a/include/svtools/imageresourceaccess.hxx b/include/svtools/imageresourceaccess.hxx -index d7e8a5629b11..ccb5b6b69bce 100644 ---- a/include/svtools/imageresourceaccess.hxx -+++ b/include/svtools/imageresourceaccess.hxx -@@ -19,6 +19,10 @@ - - #pragma once - -+#include -+ -+#include -+ - #include - #include - -diff --git a/include/vcl/BitmapBuffer.hxx b/include/vcl/BitmapBuffer.hxx -index 79f202cdfa2d..7468cb987f95 100644 ---- a/include/vcl/BitmapBuffer.hxx -+++ b/include/vcl/BitmapBuffer.hxx -@@ -20,6 +20,10 @@ - #ifndef INCLUDED_VCL_BITMAPBUFFER_HXX - #define INCLUDED_VCL_BITMAPBUFFER_HXX - -+#include -+ -+#include -+ - #include - #include - #include -diff --git a/include/vcl/filter/PngImageReader.hxx b/include/vcl/filter/PngImageReader.hxx -index 2615fd961bd4..bbb5b7c8d672 100644 ---- a/include/vcl/filter/PngImageReader.hxx -+++ b/include/vcl/filter/PngImageReader.hxx -@@ -11,6 +11,10 @@ - #ifndef INCLUDED_VCL_FILTER_PNGIMAGEREADER_HXX - #define INCLUDED_VCL_FILTER_PNGIMAGEREADER_HXX - -+#include -+ -+#include -+ - #include - - #include -diff --git a/shell/source/backends/kf5be/kf5backend.cxx b/shell/source/backends/kf5be/kf5backend.cxx -index 47c829dc5f9b..e448c124d88a 100644 ---- a/shell/source/backends/kf5be/kf5backend.cxx -+++ b/shell/source/backends/kf5be/kf5backend.cxx -@@ -19,6 +19,8 @@ - - #include - -+#include -+ - #include - - #include -diff --git a/sot/source/unoolestorage/xolesimplestorage.hxx b/sot/source/unoolestorage/xolesimplestorage.hxx -index ef0214ba61c3..2ec9f715d873 100644 ---- a/sot/source/unoolestorage/xolesimplestorage.hxx -+++ b/sot/source/unoolestorage/xolesimplestorage.hxx -@@ -22,6 +22,8 @@ - - #include - -+#include -+ - #include - #include - #include -diff --git a/starmath/inc/token.hxx b/starmath/inc/token.hxx -index e38b3e5afb5a..808195dca9d3 100644 ---- a/starmath/inc/token.hxx -+++ b/starmath/inc/token.hxx -@@ -35,6 +35,7 @@ - - // std imports - #include -+#include - #include - #include - #include -diff --git a/svx/source/unodialogs/textconversiondlgs/chinese_translation_unodialog.hxx b/svx/source/unodialogs/textconversiondlgs/chinese_translation_unodialog.hxx -index 8d2e29f1317a..dbfae4d74697 100644 ---- a/svx/source/unodialogs/textconversiondlgs/chinese_translation_unodialog.hxx -+++ b/svx/source/unodialogs/textconversiondlgs/chinese_translation_unodialog.hxx -@@ -19,6 +19,10 @@ - - #pragma once - -+#include -+ -+#include -+ - #include - #include - #include -diff --git a/sw/source/uibase/docvw/OverlayRanges.hxx b/sw/source/uibase/docvw/OverlayRanges.hxx -index e086b8462ea2..829f0c4001dc 100644 ---- a/sw/source/uibase/docvw/OverlayRanges.hxx -+++ b/sw/source/uibase/docvw/OverlayRanges.hxx -@@ -22,6 +22,7 @@ - #include - #include - -+#include - #include - - class SwView; -diff --git a/sw/source/uibase/docvw/ShadowOverlayObject.hxx b/sw/source/uibase/docvw/ShadowOverlayObject.hxx -index df8e27009f5e..cd612f7ce50e 100644 ---- a/sw/source/uibase/docvw/ShadowOverlayObject.hxx -+++ b/sw/source/uibase/docvw/ShadowOverlayObject.hxx -@@ -19,6 +19,10 @@ - - #pragma once - -+#include -+ -+#include -+ - #include - - class SwView; -diff --git a/xmlsecurity/source/gpg/SecurityEnvironment.hxx b/xmlsecurity/source/gpg/SecurityEnvironment.hxx -index 83b4f38b41c8..262578682274 100644 ---- a/xmlsecurity/source/gpg/SecurityEnvironment.hxx -+++ b/xmlsecurity/source/gpg/SecurityEnvironment.hxx -@@ -10,6 +10,9 @@ - #pragma once - - #include -+ -+#include -+ - #include - #include - -diff --git a/xmlsecurity/source/helper/ooxmlsecparser.hxx b/xmlsecurity/source/helper/ooxmlsecparser.hxx -index 4f11302ff765..9193d7b7e180 100644 ---- a/xmlsecurity/source/helper/ooxmlsecparser.hxx -+++ b/xmlsecurity/source/helper/ooxmlsecparser.hxx -@@ -16,6 +16,7 @@ - - #include - -+#include - #include - - class XSecController; -diff --git a/xmlsecurity/source/helper/xsecparser.hxx b/xmlsecurity/source/helper/xsecparser.hxx -index 86f6154ddc93..0e0ee8291f65 100644 ---- a/xmlsecurity/source/helper/xsecparser.hxx -+++ b/xmlsecurity/source/helper/xsecparser.hxx -@@ -26,6 +26,7 @@ - - #include - -+#include - #include - - class XMLSignatureHelper; --- -2.35.1 - diff --git a/boost_1_75_0.tar.xz b/boost_1_75_0.tar.xz deleted file mode 100644 index c2f1564..0000000 --- a/boost_1_75_0.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:cc378a036a1cfd3af289f3da24deeb8dba7a729f61ab104c7b018a622e22d21b -size 19322176 diff --git a/boost_1_77_0.tar.xz b/boost_1_77_0.tar.xz new file mode 100644 index 0000000..fabd397 --- /dev/null +++ b/boost_1_77_0.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9b334d6c6d7af5a0687280788cd84444398b8e0b472cd88e52bbc3c3ef11d98e +size 17548708 diff --git a/bsc1183308.patch b/bsc1183308.patch deleted file mode 100644 index 6bdcce5..0000000 --- a/bsc1183308.patch +++ /dev/null @@ -1,1325 +0,0 @@ -From 80d99306107ce3335b1eafa14e880b814eddb98c Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Lubo=C5=A1=20Lu=C5=88=C3=A1k?= -Date: Fri, 7 Jan 2022 10:01:46 +0100 -Subject: [PATCH] improve loading and rendering of many small shapes - (bsc#1183308) - -Change-Id: I1e4d3b219e0d35be040c7a675b6c668e677acba8 ---- - comphelper/source/misc/anycompare.cxx | 207 ++++++++++++++++++ - .../processor2d/vclhelperbufferdevice.cxx | 34 ++- - include/com/sun/star/uno/Sequence.hxx | 2 + - include/comphelper/anycompare.hxx | 22 ++ - include/svx/sdasitm.hxx | 13 ++ - .../svx/sdr/properties/defaultproperties.hxx | 3 +- - include/svx/sdr/properties/properties.hxx | 3 +- - include/svx/svdoashp.hxx | 4 +- - include/svx/svdobj.hxx | 4 +- - include/vcl/outdev.hxx | 3 + - solenv/clang-format/excludelist | 1 + - .../sdr/properties/attributeproperties.hxx | 3 +- - svx/inc/sdr/properties/captionproperties.hxx | 3 +- - svx/inc/sdr/properties/circleproperties.hxx | 3 +- - .../sdr/properties/connectorproperties.hxx | 3 +- - .../sdr/properties/customshapeproperties.hxx | 3 +- - svx/inc/sdr/properties/e3dsceneproperties.hxx | 3 +- - svx/inc/sdr/properties/emptyproperties.hxx | 3 +- - svx/inc/sdr/properties/graphicproperties.hxx | 3 +- - svx/inc/sdr/properties/groupproperties.hxx | 3 +- - svx/inc/sdr/properties/measureproperties.hxx | 3 +- - svx/inc/sdr/properties/pageproperties.hxx | 3 +- - .../sdr/properties/rectangleproperties.hxx | 3 +- - svx/inc/sdr/properties/textproperties.hxx | 3 +- - svx/source/items/customshapeitem.cxx | 129 +++++++---- - .../sdr/properties/attributeproperties.cxx | 6 +- - .../sdr/properties/captionproperties.cxx | 5 +- - .../sdr/properties/circleproperties.cxx | 5 +- - .../sdr/properties/connectorproperties.cxx | 5 +- - .../sdr/properties/customshapeproperties.cxx | 5 +- - .../sdr/properties/defaultproperties.cxx | 3 +- - .../sdr/properties/e3dsceneproperties.cxx | 8 +- - svx/source/sdr/properties/emptyproperties.cxx | 3 +- - .../sdr/properties/graphicproperties.cxx | 7 +- - svx/source/sdr/properties/groupproperties.cxx | 8 +- - .../sdr/properties/measureproperties.cxx | 5 +- - svx/source/sdr/properties/oleproperties.cxx | 2 +- - svx/source/sdr/properties/pageproperties.cxx | 3 +- - svx/source/sdr/properties/properties.cxx | 2 +- - .../sdr/properties/rectangleproperties.cxx | 5 +- - svx/source/sdr/properties/textproperties.cxx | 5 +- - svx/source/svdraw/svdoashp.cxx | 4 +- - svx/source/svdraw/svdobj.cxx | 9 +- - svx/source/table/cell.cxx | 2 +- - vcl/headless/svpvd.cxx | 37 ++-- - vcl/source/outdev/outdev.cxx | 9 + - 46 files changed, 490 insertions(+), 112 deletions(-) - -diff --git a/comphelper/source/misc/anycompare.cxx b/comphelper/source/misc/anycompare.cxx -index d802024e7502..2758062a1915 100644 ---- a/comphelper/source/misc/anycompare.cxx -+++ b/comphelper/source/misc/anycompare.cxx -@@ -286,4 +286,211 @@ namespace comphelper - } // namespace comphelper - - -+#include -+#include -+ -+#include -+ -+using namespace ::com::sun::star; -+using ::com::sun::star::uno::TypeDescription; -+ -+namespace comphelper { -+namespace { -+ -+// This is like com::sun::star::uno::TypeDescription, but it uses TYPELIB_DANGER_GET -+// (which the code used originally, but it's easier to have a class to handle ownership). -+class TypeDescriptionRef -+{ -+public: -+ TypeDescriptionRef(typelib_TypeDescriptionReference* typeDef) -+ { -+ TYPELIB_DANGER_GET(&typeDescr, typeDef); -+ } -+ ~TypeDescriptionRef() { TYPELIB_DANGER_RELEASE(typeDescr); } -+ typelib_TypeDescription* get() { return typeDescr; } -+ typelib_TypeDescription* operator->() { return typeDescr; } -+ bool is() { return typeDescr != nullptr; } -+ bool equals(const TypeDescriptionRef& other) const -+ { -+ return typeDescr && other.typeDescr -+ && typelib_typedescription_equals(typeDescr, other.typeDescr); -+ } -+ -+private: -+ typelib_TypeDescription* typeDescr = nullptr; -+}; -+ -+std::optional hashValue( size_t hash, -+ void const * val, typelib_TypeDescriptionReference * typeRef ) -+{ -+ o3tl::hash_combine( hash, typeRef->eTypeClass ); -+ if (typeRef->eTypeClass == typelib_TypeClass_VOID) { -+ return hash; -+ } -+ assert(val != nullptr); -+ -+ switch (typeRef->eTypeClass) { -+ case typelib_TypeClass_INTERFACE: { -+ return std::nullopt; // not implemented -+ } -+ case typelib_TypeClass_STRUCT: -+ case typelib_TypeClass_EXCEPTION: { -+ TypeDescription typeDescr( typeRef ); -+ if (!typeDescr.is()) -+ typeDescr.makeComplete(); -+ if (!typeDescr.is()) -+ return std::nullopt; -+ -+ typelib_CompoundTypeDescription * compType = -+ reinterpret_cast< typelib_CompoundTypeDescription * >( -+ typeDescr.get() ); -+ sal_Int32 nDescr = compType->nMembers; -+ -+ if (compType->pBaseTypeDescription) { -+ std::optional tmpHash = hashValue( -+ hash, val, reinterpret_cast< -+ typelib_TypeDescription * >( -+ compType->pBaseTypeDescription)->pWeakRef); -+ if(!tmpHash.has_value()) -+ return std::nullopt; -+ hash = *tmpHash; -+ } -+ -+ typelib_TypeDescriptionReference ** ppTypeRefs = -+ compType->ppTypeRefs; -+ sal_Int32 * memberOffsets = compType->pMemberOffsets; -+ -+ for ( sal_Int32 nPos = 0; nPos < nDescr; ++nPos ) -+ { -+ TypeDescriptionRef memberType( ppTypeRefs[ nPos ] ); -+ if (!memberType.is()) -+ return std::nullopt; -+ -+ std::optional tmpHash = hashValue( hash, -+ static_cast< char const * >( -+ val ) + memberOffsets[ nPos ], -+ memberType->pWeakRef ); -+ if(!tmpHash.has_value()) -+ return std::nullopt; -+ hash = *tmpHash; -+ } -+ break; -+ } -+ case typelib_TypeClass_SEQUENCE: { -+ TypeDescriptionRef typeDescr( typeRef ); -+ if (!typeDescr.is()) -+ return std::nullopt; -+ -+ typelib_TypeDescriptionReference * elementTypeRef = -+ reinterpret_cast< -+ typelib_IndirectTypeDescription * >(typeDescr.get())->pType; -+ TypeDescriptionRef elementTypeDescr( elementTypeRef ); -+ if (!elementTypeDescr.is()) -+ return std::nullopt; -+ -+ sal_Int32 nElementSize = elementTypeDescr->nSize; -+ uno_Sequence * seq = -+ *static_cast< uno_Sequence * const * >(val); -+ sal_Int32 nElements = seq->nElements; -+ -+ if (nElements > 0) -+ { -+ char const * pElements = seq->elements; -+ for ( sal_Int32 nPos = 0; nPos < nElements; ++nPos ) -+ { -+ std::optional tmpHash = hashValue( hash, -+ pElements + (nElementSize * nPos), -+ elementTypeDescr->pWeakRef ); -+ if(!tmpHash.has_value()) -+ return std::nullopt; -+ hash = *tmpHash; -+ } -+ } -+ break; -+ } -+ case typelib_TypeClass_ANY: { -+ uno_Any const * pAny = static_cast< uno_Any const * >(val); -+ return hashValue( hash, pAny->pData, pAny->pType ); -+ } -+ case typelib_TypeClass_TYPE: { -+ OUString const & str = OUString::unacquired( -+ &(*static_cast< -+ typelib_TypeDescriptionReference * const * >(val) -+ )->pTypeName ); -+ o3tl::hash_combine( hash, str.hashCode() ); -+ break; -+ } -+ case typelib_TypeClass_STRING: { -+ OUString const & str = OUString::unacquired( -+ static_cast< rtl_uString * const * >(val) ); -+ o3tl::hash_combine( hash, str.hashCode() ); -+ break; -+ } -+ case typelib_TypeClass_ENUM: { -+ TypeDescription typeDescr( typeRef ); -+ if (!typeDescr.is()) -+ typeDescr.makeComplete(); -+ if (!typeDescr.is()) -+ return std::nullopt; -+ -+ o3tl::hash_combine( hash, *static_cast< int const * >(val)); -+ break; -+ } -+ case typelib_TypeClass_BOOLEAN: -+ if (*static_cast< sal_Bool const * >(val)) -+ o3tl::hash_combine( hash, true ); -+ else -+ o3tl::hash_combine( hash, false ); -+ break; -+ case typelib_TypeClass_CHAR: { -+ o3tl::hash_combine( hash, *static_cast< sal_Unicode const * >(val)); -+ break; -+ } -+ case typelib_TypeClass_FLOAT: -+ o3tl::hash_combine( hash, *static_cast< float const * >(val) ); -+ break; -+ case typelib_TypeClass_DOUBLE: -+ o3tl::hash_combine( hash, *static_cast< double const * >(val) ); -+ break; -+ case typelib_TypeClass_BYTE: -+ o3tl::hash_combine( hash, *static_cast< sal_Int8 const * >(val) ); -+ break; -+ case typelib_TypeClass_SHORT: -+ o3tl::hash_combine( hash, *static_cast< sal_Int16 const * >(val) ); -+ break; -+ case typelib_TypeClass_UNSIGNED_SHORT: -+ o3tl::hash_combine( hash, *static_cast< sal_uInt16 const * >(val) ); -+ break; -+ case typelib_TypeClass_LONG: -+ o3tl::hash_combine( hash, *static_cast< sal_Int32 const * >(val) ); -+ break; -+ case typelib_TypeClass_UNSIGNED_LONG: -+ o3tl::hash_combine( hash, *static_cast< sal_uInt32 const * >(val) ); -+ break; -+ case typelib_TypeClass_HYPER: -+ o3tl::hash_combine( hash, *static_cast< sal_Int64 const * >(val) ); -+ break; -+ case typelib_TypeClass_UNSIGNED_HYPER: -+ o3tl::hash_combine( hash, *static_cast< sal_uInt64 const * >(val) ); -+ break; -+// case typelib_TypeClass_UNKNOWN: -+// case typelib_TypeClass_SERVICE: -+// case typelib_TypeClass_MODULE: -+ default: -+ return std::nullopt; -+ } -+ return hash; -+} -+ -+} // anon namespace -+ -+ -+std::optional anyToHash( uno::Any const & value ) -+{ -+ size_t hash = 0; -+ return hashValue( hash, value.getValue(), value.getValueTypeRef()); -+} -+ -+} // namespace comphelper -+ - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -diff --git a/drawinglayer/source/processor2d/vclhelperbufferdevice.cxx b/drawinglayer/source/processor2d/vclhelperbufferdevice.cxx -index f6bf0f10c9f7..c80c8206a87f 100644 ---- a/drawinglayer/source/processor2d/vclhelperbufferdevice.cxx -+++ b/drawinglayer/source/processor2d/vclhelperbufferdevice.cxx -@@ -63,6 +63,8 @@ private: - // virtualdevice because that isn't safe to do at least for Gtk2 - std::map, VclPtr> maDeviceTemplates; - -+ static bool isSizeSuitable(const VclPtr& device, const Size& size); -+ - public: - VDevBuffer(); - virtual ~VDevBuffer() override; -@@ -101,6 +103,28 @@ VDevBuffer::~VDevBuffer() - } - } - -+bool VDevBuffer::isSizeSuitable(const VclPtr& device, const Size& rSizePixel) -+{ -+ if (device->GetOutputWidthPixel() >= rSizePixel.getWidth() -+ && device->GetOutputHeightPixel() >= rSizePixel.getHeight()) -+ { -+#if defined(UNX) -+ // HACK: See the small size handling in SvpSalVirtualDevice::CreateSurface(). -+ // Make sure to not reuse a larger device when a small one should be preferred. -+ if (device->GetRenderBackendName() == "svp") -+ { -+ if (rSizePixel.getWidth() <= 32 && rSizePixel.getHeight() <= 32 -+ && (device->GetOutputWidthPixel() > 32 || device->GetOutputHeightPixel() > 32)) -+ { -+ return false; -+ } -+ } -+#endif -+ return true; -+ } -+ return false; -+} -+ - VclPtr VDevBuffer::alloc(OutputDevice& rOutDev, const Size& rSizePixel, - bool bTransparent) - { -@@ -127,9 +151,7 @@ VclPtr VDevBuffer::alloc(OutputDevice& rOutDev, const Size& rSize - if (bOkay) - { - // found is valid -- const bool bCandidateOkay( -- a->buf->GetOutputWidthPixel() >= rSizePixel.getWidth() -- && a->buf->GetOutputHeightPixel() >= rSizePixel.getHeight()); -+ const bool bCandidateOkay = isSizeSuitable(a->buf, rSizePixel); - - if (bCandidateOkay) - { -@@ -154,16 +176,14 @@ VclPtr VDevBuffer::alloc(OutputDevice& rOutDev, const Size& rSize - { - // found is invalid, use candidate - aFound = a; -- bOkay = aFound->buf->GetOutputWidthPixel() >= rSizePixel.getWidth() -- && aFound->buf->GetOutputHeightPixel() >= rSizePixel.getHeight(); -+ bOkay = isSizeSuitable(aFound->buf, rSizePixel); - } - } - else - { - // none yet, use candidate - aFound = a; -- bOkay = aFound->buf->GetOutputWidthPixel() >= rSizePixel.getWidth() -- && aFound->buf->GetOutputHeightPixel() >= rSizePixel.getHeight(); -+ bOkay = isSizeSuitable(aFound->buf, rSizePixel); - } - } - } -diff --git a/include/com/sun/star/uno/Sequence.hxx b/include/com/sun/star/uno/Sequence.hxx -index 26a51350815b..891f631aa9f3 100644 ---- a/include/com/sun/star/uno/Sequence.hxx -+++ b/include/com/sun/star/uno/Sequence.hxx -@@ -138,6 +138,8 @@ inline bool Sequence< E >::operator == ( const Sequence & rSeq ) const - { - if (_pSequence == rSeq._pSequence) - return true; -+ if (_pSequence->nElements != rSeq._pSequence->nElements) -+ return false; - const Type & rType = ::cppu::getTypeFavourUnsigned( this ); - return ::uno_type_equalData( - const_cast< Sequence * >( this ), rType.getTypeLibType(), -diff --git a/include/comphelper/anycompare.hxx b/include/comphelper/anycompare.hxx -index 782c7f19951f..d0dbd3cf8d49 100644 ---- a/include/comphelper/anycompare.hxx -+++ b/include/comphelper/anycompare.hxx -@@ -212,6 +212,28 @@ namespace comphelper - - } // namespace comphelper - -+#include -+ -+#include -+ -+namespace com::sun::star::uno -+{ -+class Any; -+} -+ -+namespace comphelper -+{ -+/** Tries to get a hash value for an ANY value. -+ -+ Not all cases may be implemented, in which case no value is returned. -+ -+ @param value -+ ANY value -+ @return -+ hash of given ANY value, or not available -+*/ -+COMPHELPER_DLLPUBLIC std::optional anyToHash(css::uno::Any const& value); -+} - - #endif // INCLUDED_COMPHELPER_ANYCOMPARE_HXX - -diff --git a/include/svx/sdasitm.hxx b/include/svx/sdasitm.hxx -index e8db1996a9c8..b6ac7404b088 100644 ---- a/include/svx/sdasitm.hxx -+++ b/include/svx/sdasitm.hxx -@@ -48,6 +48,16 @@ private: - - css::uno::Sequence< css::beans::PropertyValue > aPropSeq; - -+ // For fast comparisons keep a hash of the content, computed on demand -+ // (unusable state is if anyToHash() returns no hash). -+ enum HashState { Unknown, Valid, Unusable }; -+ mutable HashState aHashState = HashState::Unknown; -+ mutable size_t aHash; -+ -+ void SetPropSeq( const css::uno::Sequence< css::beans::PropertyValue >& rPropSeq ); -+ inline void UpdateHash() const; -+ inline void InvalidateHash(); -+ - public: - - SdrCustomShapeGeometryItem(); -@@ -60,6 +70,9 @@ private: - SdrCustomShapeGeometryItem & operator =(SdrCustomShapeGeometryItem &&) = delete; // due to SfxPoolItem - - virtual bool operator==( const SfxPoolItem& ) const override; -+ virtual bool operator<( const SfxPoolItem& ) const override; -+ virtual bool IsSortable() const override { return true; } -+ - virtual bool GetPresentation(SfxItemPresentation ePresentation, - MapUnit eCoreMetric, MapUnit ePresentationMetric, - OUString &rText, const IntlWrapper&) const override; -diff --git a/include/svx/sdr/properties/defaultproperties.hxx b/include/svx/sdr/properties/defaultproperties.hxx -index e901278d3b3e..54d50ae611fd 100644 ---- a/include/svx/sdr/properties/defaultproperties.hxx -+++ b/include/svx/sdr/properties/defaultproperties.hxx -@@ -92,7 +92,8 @@ namespace sdr::properties - virtual void SetObjectItemSet(const SfxItemSet& rSet) override; - - // set a new StyleSheet and broadcast -- virtual void SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr) override; -+ virtual void SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr, -+ bool bBroadcast) override; - - // get the installed StyleSheet - virtual SfxStyleSheet* GetStyleSheet() const override; -diff --git a/include/svx/sdr/properties/properties.hxx b/include/svx/sdr/properties/properties.hxx -index 600522981dc0..8ee9573b0972 100644 ---- a/include/svx/sdr/properties/properties.hxx -+++ b/include/svx/sdr/properties/properties.hxx -@@ -162,7 +162,8 @@ namespace sdr::properties - - // Set a new StyleSheet. Registers as listener at the StyleSheet to get knowledge - // of StyleSheet changes. -- virtual void SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr) = 0; -+ virtual void SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr, -+ bool bBroadcast) = 0; - - // Get the installed StyleSheet. - virtual SfxStyleSheet* GetStyleSheet() const = 0; -diff --git a/include/svx/svdoashp.hxx b/include/svx/svdoashp.hxx -index 65540e93a9d5..bd0dba17deb5 100644 ---- a/include/svx/svdoashp.hxx -+++ b/include/svx/svdoashp.hxx -@@ -132,6 +132,8 @@ protected: - // protected destructor - virtual ~SdrObjCustomShape() override; - -+ virtual void InternalSetStyleSheet( SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr, bool bBroadcast ) override; -+ - public: - bool UseNoFillStyle() const; - -@@ -184,8 +186,6 @@ public: - - virtual SdrGluePoint GetVertexGluePoint(sal_uInt16 nNum) const override; - -- virtual void NbcSetStyleSheet( SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr ) override; -- - // special drag methods - virtual bool hasSpecialDrag() const override; - virtual bool beginSpecialDrag(SdrDragStat& rDrag) const override; -diff --git a/include/svx/svdobj.hxx b/include/svx/svdobj.hxx -index 0960826d2c63..8843a8debf6e 100644 ---- a/include/svx/svdobj.hxx -+++ b/include/svx/svdobj.hxx -@@ -623,7 +623,7 @@ public: - // if bDontRemoveHardAttr is false, set all attributes, which were set in the style sheet, to their default value - // if true, all hard attributes keep their values - void SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr); -- virtual void NbcSetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr); -+ void NbcSetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr); - SfxStyleSheet* GetStyleSheet() const; - - virtual bool HasTextEdit() const; -@@ -944,6 +944,8 @@ protected: - - const SfxItemSet* getBackgroundFillSet() const; - -+ virtual void InternalSetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr, bool bBroadcast); -+ - private: - struct Impl; - std::unique_ptr mpImpl; -diff --git a/include/vcl/outdev.hxx b/include/vcl/outdev.hxx -index 7c5f28455b25..fc83a67740c8 100644 ---- a/include/vcl/outdev.hxx -+++ b/include/vcl/outdev.hxx -@@ -280,6 +280,9 @@ public: - const AllSettings& GetSettings() const { return *mxSettings; } - - SystemGraphicsData GetSystemGfxData() const; -+ OUString GetRenderBackendName() const; -+ -+ // Used by the canvas module. Despite the name it does not always return true if Cairo is supported. - bool SupportsCairo() const; - /// Create Surface from given cairo surface - cairo::SurfaceSharedPtr CreateSurface(const cairo::CairoSurfaceSharedPtr& rSurface) const; -diff --git a/solenv/clang-format/excludelist b/solenv/clang-format/excludelist -index 6d6605c30c3a..c26903dfbd39 100644 ---- a/solenv/clang-format/excludelist -+++ b/solenv/clang-format/excludelist -@@ -1382,6 +1382,7 @@ comphelper/source/misc/accessibletexthelper.cxx - comphelper/source/misc/accessiblewrapper.cxx - comphelper/source/misc/accimplaccess.cxx - comphelper/source/misc/anycompare.cxx -+comphelper/source/misc/anytohash.cxx - comphelper/source/misc/anytostring.cxx - comphelper/source/misc/asyncnotification.cxx - comphelper/source/misc/backupfilehelper.cxx -diff --git a/svx/inc/sdr/properties/attributeproperties.hxx b/svx/inc/sdr/properties/attributeproperties.hxx -index 9633257c5a63..3ec46eb9b62a 100644 ---- a/svx/inc/sdr/properties/attributeproperties.hxx -+++ b/svx/inc/sdr/properties/attributeproperties.hxx -@@ -69,7 +69,8 @@ namespace sdr::properties - virtual ~AttributeProperties() override; - - // set a new StyleSheet and broadcast -- virtual void SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr) override; -+ virtual void SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr, -+ bool bBroadcast) override; - - // get the installed StyleSheet - virtual SfxStyleSheet* GetStyleSheet() const override; -diff --git a/svx/inc/sdr/properties/captionproperties.hxx b/svx/inc/sdr/properties/captionproperties.hxx -index c6f71529e181..c8f3fb4f30f5 100644 ---- a/svx/inc/sdr/properties/captionproperties.hxx -+++ b/svx/inc/sdr/properties/captionproperties.hxx -@@ -47,7 +47,8 @@ namespace sdr::properties - virtual std::unique_ptr Clone(SdrObject& rObj) const override; - - // set a new StyleSheet and broadcast -- virtual void SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr) override; -+ virtual void SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr, -+ bool bBroadcast) override; - - // force default attributes for a specific object type, called from - // DefaultProperties::GetObjectItemSet() if a new ItemSet is created -diff --git a/svx/inc/sdr/properties/circleproperties.hxx b/svx/inc/sdr/properties/circleproperties.hxx -index 2227817d1b49..348c57d1933d 100644 ---- a/svx/inc/sdr/properties/circleproperties.hxx -+++ b/svx/inc/sdr/properties/circleproperties.hxx -@@ -47,7 +47,8 @@ namespace sdr::properties - virtual std::unique_ptr Clone(SdrObject& rObj) const override; - - // set a new StyleSheet and broadcast -- virtual void SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr) override; -+ virtual void SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr, -+ bool bBroadcast) override; - - // force default attributes for a specific object type, called from - // DefaultProperties::GetObjectItemSet() if a new ItemSet is created -diff --git a/svx/inc/sdr/properties/connectorproperties.hxx b/svx/inc/sdr/properties/connectorproperties.hxx -index 8d6e14ffb64b..1577da3fb948 100644 ---- a/svx/inc/sdr/properties/connectorproperties.hxx -+++ b/svx/inc/sdr/properties/connectorproperties.hxx -@@ -47,7 +47,8 @@ namespace sdr::properties - virtual std::unique_ptr Clone(SdrObject& rObj) const override; - - // set a new StyleSheet and broadcast -- virtual void SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr) override; -+ virtual void SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr, -+ bool bBroadcast) override; - }; - } // end of namespace sdr::properties - -diff --git a/svx/inc/sdr/properties/customshapeproperties.hxx b/svx/inc/sdr/properties/customshapeproperties.hxx -index 8fa29e117bd7..0974a7facd37 100644 ---- a/svx/inc/sdr/properties/customshapeproperties.hxx -+++ b/svx/inc/sdr/properties/customshapeproperties.hxx -@@ -56,7 +56,8 @@ namespace sdr::properties - public: - - // set a new StyleSheet and broadcast -- virtual void SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr) override; -+ virtual void SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr, -+ bool bBroadcast) override; - - // force default attributes for a specific object type, called from - // DefaultProperties::GetObjectItemSet() if a new ItemSet is created -diff --git a/svx/inc/sdr/properties/e3dsceneproperties.hxx b/svx/inc/sdr/properties/e3dsceneproperties.hxx -index e1192d022756..4606499bdffe 100644 ---- a/svx/inc/sdr/properties/e3dsceneproperties.hxx -+++ b/svx/inc/sdr/properties/e3dsceneproperties.hxx -@@ -60,7 +60,8 @@ namespace sdr::properties - virtual void ClearMergedItem(const sal_uInt16 nWhich) override; - - // set a new StyleSheet and broadcast -- virtual void SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr) override; -+ virtual void SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr, -+ bool bBroadcast) override; - - // get the installed StyleSheet - virtual SfxStyleSheet* GetStyleSheet() const override; -diff --git a/svx/inc/sdr/properties/emptyproperties.hxx b/svx/inc/sdr/properties/emptyproperties.hxx -index 250c23deac0e..14af28d8a532 100644 ---- a/svx/inc/sdr/properties/emptyproperties.hxx -+++ b/svx/inc/sdr/properties/emptyproperties.hxx -@@ -78,7 +78,8 @@ namespace sdr::properties - virtual void SetObjectItemSet(const SfxItemSet& rSet) override; - - // set a new StyleSheet and broadcast -- virtual void SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr) override; -+ virtual void SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr, -+ bool bBroadcast) override; - - // get the installed StyleSheet - virtual SfxStyleSheet* GetStyleSheet() const override; -diff --git a/svx/inc/sdr/properties/graphicproperties.hxx b/svx/inc/sdr/properties/graphicproperties.hxx -index 3a424f7e921d..39e4c66d237a 100644 ---- a/svx/inc/sdr/properties/graphicproperties.hxx -+++ b/svx/inc/sdr/properties/graphicproperties.hxx -@@ -50,7 +50,8 @@ namespace sdr::properties - virtual std::unique_ptr Clone(SdrObject& rObj) const override; - - // set a new StyleSheet and broadcast -- virtual void SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr) override; -+ virtual void SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr, -+ bool bBroadcast) override; - - // force default attributes for a specific object type, called from - // DefaultProperties::GetObjectItemSet() if a new ItemSet is created -diff --git a/svx/inc/sdr/properties/groupproperties.hxx b/svx/inc/sdr/properties/groupproperties.hxx -index 32fe503d1dd2..36ce508a8777 100644 ---- a/svx/inc/sdr/properties/groupproperties.hxx -+++ b/svx/inc/sdr/properties/groupproperties.hxx -@@ -91,7 +91,8 @@ namespace sdr::properties - virtual void SetObjectItemSet(const SfxItemSet& rSet) override; - - // set a new StyleSheet -- virtual void SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr) override; -+ virtual void SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr, -+ bool bBroadcast) override; - - // get the local StyleSheet - virtual SfxStyleSheet* GetStyleSheet() const override; -diff --git a/svx/inc/sdr/properties/measureproperties.hxx b/svx/inc/sdr/properties/measureproperties.hxx -index 77cb253be45a..0927bc89b19c 100644 ---- a/svx/inc/sdr/properties/measureproperties.hxx -+++ b/svx/inc/sdr/properties/measureproperties.hxx -@@ -47,7 +47,8 @@ namespace sdr::properties - virtual std::unique_ptr Clone(SdrObject& rObj) const override; - - // set a new StyleSheet and broadcast -- virtual void SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr) override; -+ virtual void SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr, -+ bool bBroadcast) override; - - // force default attributes for a specific object type, called from - // DefaultProperties::GetObjectItemSet() if a new ItemSet is created -diff --git a/svx/inc/sdr/properties/pageproperties.hxx b/svx/inc/sdr/properties/pageproperties.hxx -index 7bd5c213fbc4..be85ed0e40f9 100644 ---- a/svx/inc/sdr/properties/pageproperties.hxx -+++ b/svx/inc/sdr/properties/pageproperties.hxx -@@ -57,7 +57,8 @@ namespace sdr::properties - virtual SfxStyleSheet* GetStyleSheet() const override; - - // set the installed StyleSheet -- virtual void SetStyleSheet(SfxStyleSheet* pStyleSheet, bool bDontRemoveHardAttr) override; -+ virtual void SetStyleSheet(SfxStyleSheet* pStyleSheet, bool bDontRemoveHardAttr, -+ bool bBroadcast) override; - - // clear single item - virtual void ClearObjectItem(const sal_uInt16 nWhich = 0) override; -diff --git a/svx/inc/sdr/properties/rectangleproperties.hxx b/svx/inc/sdr/properties/rectangleproperties.hxx -index 1af85d786d9b..831e0b703c38 100644 ---- a/svx/inc/sdr/properties/rectangleproperties.hxx -+++ b/svx/inc/sdr/properties/rectangleproperties.hxx -@@ -45,7 +45,8 @@ namespace sdr::properties - virtual std::unique_ptr Clone(SdrObject& rObj) const override; - - // set a new StyleSheet and broadcast -- virtual void SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr) override; -+ virtual void SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr, -+ bool bBroadcast) override; - }; - } // end of namespace sdr::properties - -diff --git a/svx/inc/sdr/properties/textproperties.hxx b/svx/inc/sdr/properties/textproperties.hxx -index ea587a8996fb..70e5b2131381 100644 ---- a/svx/inc/sdr/properties/textproperties.hxx -+++ b/svx/inc/sdr/properties/textproperties.hxx -@@ -59,7 +59,8 @@ namespace sdr::properties - virtual std::unique_ptr Clone(SdrObject& rObj) const override; - - // set a new StyleSheet and broadcast -- virtual void SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr) override; -+ virtual void SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr, -+ bool bBroadcast) override; - - // force default attributes for a specific object type, called from - // DefaultProperties::GetObjectItemSet() if a new ItemSet is created -diff --git a/svx/source/items/customshapeitem.cxx b/svx/source/items/customshapeitem.cxx -index 9a86a3bdb4aa..b5dbb2374f80 100644 ---- a/svx/source/items/customshapeitem.cxx -+++ b/svx/source/items/customshapeitem.cxx -@@ -20,6 +20,8 @@ - #include - - #include -+#include -+#include - #include - - #include -@@ -35,30 +37,7 @@ SdrCustomShapeGeometryItem::SdrCustomShapeGeometryItem() - SdrCustomShapeGeometryItem::SdrCustomShapeGeometryItem( const uno::Sequence< beans::PropertyValue >& rVal ) - : SfxPoolItem( SDRATTR_CUSTOMSHAPE_GEOMETRY ) - { -- sal_Int32 i, j; -- aPropSeq = rVal; -- -- for ( i = 0; i < aPropSeq.getLength(); i++ ) -- { -- beans::PropertyValue& rPropVal = aPropSeq[ i ]; -- std::pair const ret( -- aPropHashMap.insert(std::make_pair(rPropVal.Name, i))); -- assert(ret.second); // serious bug: duplicate xml attribute exported -- if (!ret.second) -- { -- throw uno::RuntimeException( -- "CustomShapeGeometry has duplicate property " + rPropVal.Name); -- } -- if (auto rPropSeq = o3tl::tryAccess>( -- rPropVal.Value)) -- { -- for ( j = 0; j < rPropSeq->getLength(); j++ ) -- { -- beans::PropertyValue const & rPropVal2 = (*rPropSeq)[ j ]; -- aPropPairHashMap[ PropertyPair( rPropVal.Name, rPropVal2.Name ) ] = j; -- } -- } -- } -+ SetPropSeq( rVal ); - } - - css::uno::Any* SdrCustomShapeGeometryItem::GetPropertyValueByName( const OUString& rPropName ) -@@ -150,6 +129,7 @@ void SdrCustomShapeGeometryItem::SetPropertyValue( const css::beans::PropertyVal - - aPropHashMap[ rPropVal.Name ] = nIndex; - } -+ InvalidateHash(); - } - - void SdrCustomShapeGeometryItem::SetPropertyValue( const OUString& rSequenceName, const css::beans::PropertyValue& rPropVal ) -@@ -197,6 +177,7 @@ void SdrCustomShapeGeometryItem::SetPropertyValue( const OUString& rSequenceName - } - } - } -+ InvalidateHash(); - } - - void SdrCustomShapeGeometryItem::ClearPropertyValue( const OUString& rPropName ) -@@ -232,17 +213,65 @@ void SdrCustomShapeGeometryItem::ClearPropertyValue( const OUString& rPropName ) - aPropSeq.realloc( nLength - 1 ); - } - aPropHashMap.erase( aHashIter ); // removing property from hashmap -+ InvalidateHash(); - } - - SdrCustomShapeGeometryItem::~SdrCustomShapeGeometryItem() - { - } -+ - bool SdrCustomShapeGeometryItem::operator==( const SfxPoolItem& rCmp ) const - { -- bool bRet = SfxPoolItem::operator==( rCmp ); -- if ( bRet ) -- bRet = static_cast(rCmp).aPropSeq == aPropSeq; -- return bRet; -+ if( !SfxPoolItem::operator==( rCmp )) -+ return false; -+ const SdrCustomShapeGeometryItem& other = static_cast(rCmp); -+ // This is called often by SfxItemPool, and comparing uno sequences is relatively slow. -+ // So keep a hash of the sequence and if either of the sequences has a usable hash, -+ // compare using that. -+ UpdateHash(); -+ other.UpdateHash(); -+ if( aHashState != other.aHashState ) -+ return false; -+ if( aHashState == HashState::Valid && aHash != other.aHash ) -+ return false; -+ -+ return aPropSeq == other.aPropSeq; -+} -+ -+bool SdrCustomShapeGeometryItem::operator<( const SfxPoolItem& rCmp ) const -+{ -+ assert(dynamic_cast( &rCmp )); -+ const SdrCustomShapeGeometryItem& other = static_cast(rCmp); -+ // Again, try to optimize by checking hashes first (this is operator< for sorting purposes, -+ // so the ordering can be somewhat arbitrary). -+ UpdateHash(); -+ other.UpdateHash(); -+ if( aHashState != other.aHashState ) -+ return aHashState < other.aHashState; -+ if( aHashState == HashState::Valid ) -+ return aHash < other.aHash; -+ -+ return comphelper::anyLess( css::uno::makeAny( aPropSeq ), -+ css::uno::makeAny( other.aPropSeq )); -+} -+ -+void SdrCustomShapeGeometryItem::UpdateHash() const -+{ -+ if( aHashState != HashState::Unknown ) -+ return; -+ std::optional< size_t > hash = comphelper::anyToHash( css::uno::makeAny( aPropSeq )); -+ if( hash.has_value()) -+ { -+ aHash = *hash; -+ aHashState = HashState::Valid; -+ } -+ else -+ aHashState = HashState::Unusable; -+} -+ -+void SdrCustomShapeGeometryItem::InvalidateHash() -+{ -+ aHashState = HashState::Unknown; - } - - bool SdrCustomShapeGeometryItem::GetPresentation( -@@ -273,24 +302,46 @@ bool SdrCustomShapeGeometryItem::QueryValue( uno::Any& rVal, sal_uInt8 /*nMember - - bool SdrCustomShapeGeometryItem::PutValue( const uno::Any& rVal, sal_uInt8 /*nMemberId*/ ) - { -- if ( ! ( rVal >>= aPropSeq ) ) -+ css::uno::Sequence< css::beans::PropertyValue > propSeq; -+ if ( ! ( rVal >>= propSeq ) ) - return false; - -- for (sal_Int32 i = 0; i < aPropSeq.getLength(); ++i) -+ SetPropSeq( propSeq ); -+ return true; -+} -+ -+void SdrCustomShapeGeometryItem::SetPropSeq( const css::uno::Sequence< css::beans::PropertyValue >& rVal ) -+{ -+ if( aPropSeq == rVal ) -+ return; -+ -+ aPropSeq = rVal; -+ aPropHashMap.clear(); -+ aPropPairHashMap.clear(); -+ sal_Int32 i, j; -+ -+ for ( i = 0; i < aPropSeq.getLength(); i++ ) - { -- const auto& rName = aPropSeq[i].Name; -- bool isDuplicated = std::any_of(std::next(aPropSeq.begin(), i + 1), aPropSeq.end(), -- [&rName](const css::beans::PropertyValue& rProp) { return rProp.Name == rName; }); -- if (isDuplicated) -+ beans::PropertyValue& rPropVal = aPropSeq[ i ]; -+ std::pair const ret( -+ aPropHashMap.insert(std::make_pair(rPropVal.Name, i))); -+ assert(ret.second); // serious bug: duplicate xml attribute exported -+ if (!ret.second) - { -- assert(false); // serious bug: duplicate xml attribute exported -- OUString const name(aPropSeq[i].Name); -- aPropSeq.realloc(0); - throw uno::RuntimeException( -- "CustomShapeGeometry has duplicate property " + name); -+ "CustomShapeGeometry has duplicate property " + rPropVal.Name); -+ } -+ if (auto rPropSeq = o3tl::tryAccess>( -+ rPropVal.Value)) -+ { -+ for ( j = 0; j < rPropSeq->getLength(); j++ ) -+ { -+ beans::PropertyValue const & rPropVal2 = (*rPropSeq)[ j ]; -+ aPropPairHashMap[ PropertyPair( rPropVal.Name, rPropVal2.Name ) ] = j; -+ } - } - } -- return true; -+ InvalidateHash(); - } - - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -diff --git a/svx/source/sdr/properties/attributeproperties.cxx b/svx/source/sdr/properties/attributeproperties.cxx -index 2dfd9e819981..8b5d6050e6a2 100644 ---- a/svx/source/sdr/properties/attributeproperties.cxx -+++ b/svx/source/sdr/properties/attributeproperties.cxx -@@ -268,8 +268,7 @@ namespace sdr::properties - // problem with constructors and virtual functions in C++), - // thus DontRemoveHardAttr is not needed. - const_cast< AttributeProperties* >(this)->SetStyleSheet( -- mpStyleSheet, -- true); -+ mpStyleSheet, true, true); - } - } - -@@ -360,7 +359,8 @@ namespace sdr::properties - } - } - -- void AttributeProperties::SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr) -+ void AttributeProperties::SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr, -+ bool /*bBroadcast*/) - { - // guarantee SfxItemSet existence - GetObjectItemSet(); -diff --git a/svx/source/sdr/properties/captionproperties.cxx b/svx/source/sdr/properties/captionproperties.cxx -index d073aa91b91e..ea573c6a5252 100644 ---- a/svx/source/sdr/properties/captionproperties.cxx -+++ b/svx/source/sdr/properties/captionproperties.cxx -@@ -73,10 +73,11 @@ namespace sdr::properties - RectangleProperties::ItemSetChanged(rSet); - } - -- void CaptionProperties::SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr) -+ void CaptionProperties::SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr, -+ bool bBroadcast) - { - // call parent (always first thing to do, may create the SfxItemSet) -- RectangleProperties::SetStyleSheet(pNewStyleSheet, bDontRemoveHardAttr); -+ RectangleProperties::SetStyleSheet(pNewStyleSheet, bDontRemoveHardAttr, bBroadcast); - - // local changes - SdrCaptionObj& rObj = static_cast(GetSdrObject()); -diff --git a/svx/source/sdr/properties/circleproperties.cxx b/svx/source/sdr/properties/circleproperties.cxx -index dab008ff6957..c40d5dfc87a3 100644 ---- a/svx/source/sdr/properties/circleproperties.cxx -+++ b/svx/source/sdr/properties/circleproperties.cxx -@@ -77,10 +77,11 @@ namespace sdr::properties - rObj.ImpSetAttrToCircInfo(); - } - -- void CircleProperties::SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr) -+ void CircleProperties::SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr, -+ bool bBroadcast) - { - // call parent (always first thing to do, may create the SfxItemSet) -- RectangleProperties::SetStyleSheet(pNewStyleSheet, bDontRemoveHardAttr); -+ RectangleProperties::SetStyleSheet(pNewStyleSheet, bDontRemoveHardAttr, bBroadcast); - - // local changes - SdrCircObj& rObj = static_cast(GetSdrObject()); -diff --git a/svx/source/sdr/properties/connectorproperties.cxx b/svx/source/sdr/properties/connectorproperties.cxx -index 97063011f79c..3323c40f47f3 100644 ---- a/svx/source/sdr/properties/connectorproperties.cxx -+++ b/svx/source/sdr/properties/connectorproperties.cxx -@@ -74,10 +74,11 @@ namespace sdr::properties - rObj.ImpSetAttrToEdgeInfo(); - } - -- void ConnectorProperties::SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr) -+ void ConnectorProperties::SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr, -+ bool bBroadcast) - { - // call parent (always first thing to do, may create the SfxItemSet) -- TextProperties::SetStyleSheet(pNewStyleSheet, bDontRemoveHardAttr); -+ TextProperties::SetStyleSheet(pNewStyleSheet, bDontRemoveHardAttr, bBroadcast); - - // local changes - SdrEdgeObj& rObj = static_cast(GetSdrObject()); -diff --git a/svx/source/sdr/properties/customshapeproperties.cxx b/svx/source/sdr/properties/customshapeproperties.cxx -index 07c893d1cf51..04b3c579bab7 100644 ---- a/svx/source/sdr/properties/customshapeproperties.cxx -+++ b/svx/source/sdr/properties/customshapeproperties.cxx -@@ -161,10 +161,11 @@ namespace sdr::properties - UpdateTextFrameStatus(true); - } - -- void CustomShapeProperties::SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr) -+ void CustomShapeProperties::SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr, -+ bool bBroadcast) - { - // call parent (always first thing to do, may create the SfxItemSet) -- TextProperties::SetStyleSheet( pNewStyleSheet, bDontRemoveHardAttr ); -+ TextProperties::SetStyleSheet( pNewStyleSheet, bDontRemoveHardAttr, bBroadcast ); - - // update bTextFrame and RenderGeometry - UpdateTextFrameStatus(true); -diff --git a/svx/source/sdr/properties/defaultproperties.cxx b/svx/source/sdr/properties/defaultproperties.cxx -index b12e7bd5b82d..7b4d9f5e6892 100644 ---- a/svx/source/sdr/properties/defaultproperties.cxx -+++ b/svx/source/sdr/properties/defaultproperties.cxx -@@ -227,7 +227,8 @@ namespace sdr::properties - CleanupFillProperties(*mxItemSet); - } - -- void DefaultProperties::SetStyleSheet(SfxStyleSheet* /*pNewStyleSheet*/, bool /*bDontRemoveHardAttr*/) -+ void DefaultProperties::SetStyleSheet(SfxStyleSheet* /*pNewStyleSheet*/, bool /*bDontRemoveHardAttr*/, -+ bool /*bBroadcast*/) - { - // no StyleSheet in DefaultProperties - } -diff --git a/svx/source/sdr/properties/e3dsceneproperties.cxx b/svx/source/sdr/properties/e3dsceneproperties.cxx -index 7635f32f806d..f911bc67aef6 100644 ---- a/svx/source/sdr/properties/e3dsceneproperties.cxx -+++ b/svx/source/sdr/properties/e3dsceneproperties.cxx -@@ -230,7 +230,8 @@ namespace sdr::properties - } - } - -- void E3dSceneProperties::SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr) -+ void E3dSceneProperties::SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr, -+ bool bBroadcast) - { - const SdrObjList* pSub(static_cast(GetSdrObject()).GetSubList()); - OSL_ENSURE(nullptr != pSub, "Children of SdrObject expected (!)"); -@@ -238,7 +239,10 @@ namespace sdr::properties - - for(size_t a = 0; a < nCount; ++a) - { -- pSub->GetObj(a)->SetStyleSheet(pNewStyleSheet, bDontRemoveHardAttr); -+ if(bBroadcast) -+ pSub->GetObj(a)->SetStyleSheet(pNewStyleSheet, bDontRemoveHardAttr); -+ else -+ pSub->GetObj(a)->NbcSetStyleSheet(pNewStyleSheet, bDontRemoveHardAttr); - } - } - -diff --git a/svx/source/sdr/properties/emptyproperties.cxx b/svx/source/sdr/properties/emptyproperties.cxx -index 3837b23bfeec..c2043768e06a 100644 ---- a/svx/source/sdr/properties/emptyproperties.cxx -+++ b/svx/source/sdr/properties/emptyproperties.cxx -@@ -103,7 +103,8 @@ namespace sdr::properties - assert(!"EmptyProperties::PostItemChange() should never be called"); - } - -- void EmptyProperties::SetStyleSheet(SfxStyleSheet* /*pNewStyleSheet*/, bool /*bDontRemoveHardAttr*/) -+ void EmptyProperties::SetStyleSheet(SfxStyleSheet* /*pNewStyleSheet*/, bool /*bDontRemoveHardAttr*/, -+ bool /*bBroadcast*/) - { - assert(!"EmptyProperties::SetStyleSheet() should never be called"); - } -diff --git a/svx/source/sdr/properties/graphicproperties.cxx b/svx/source/sdr/properties/graphicproperties.cxx -index c7a9b6913ad0..f75e9bc08616 100644 ---- a/svx/source/sdr/properties/graphicproperties.cxx -+++ b/svx/source/sdr/properties/graphicproperties.cxx -@@ -45,7 +45,7 @@ namespace sdr::properties - if(pStyleSheet) - { - // do not delete hard attributes when setting dsefault Style -- SetStyleSheet(pStyleSheet, true); -+ SetStyleSheet(pStyleSheet, true, true); - } - else - { -@@ -111,10 +111,11 @@ namespace sdr::properties - RectangleProperties::ItemSetChanged(rSet); - } - -- void GraphicProperties::SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr) -+ void GraphicProperties::SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr, -+ bool bBroadcast) - { - // call parent (always first thing to do, may create the SfxItemSet) -- RectangleProperties::SetStyleSheet(pNewStyleSheet, bDontRemoveHardAttr); -+ RectangleProperties::SetStyleSheet(pNewStyleSheet, bDontRemoveHardAttr, bBroadcast); - - // local changes - SdrGrafObj& rObj = static_cast(GetSdrObject()); -diff --git a/svx/source/sdr/properties/groupproperties.cxx b/svx/source/sdr/properties/groupproperties.cxx -index 5f197c417688..176cce3dca53 100644 ---- a/svx/source/sdr/properties/groupproperties.cxx -+++ b/svx/source/sdr/properties/groupproperties.cxx -@@ -243,7 +243,8 @@ namespace sdr::properties - return pRetval; - } - -- void GroupProperties::SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr) -+ void GroupProperties::SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr, -+ bool bBroadcast) - { - const SdrObjList* pSub(static_cast(GetSdrObject()).GetSubList()); - OSL_ENSURE(nullptr != pSub, "Children of SdrObject expected (!)"); -@@ -251,7 +252,10 @@ namespace sdr::properties - - for(size_t a = 0; a < nCount; ++a) - { -- pSub->GetObj(a)->SetStyleSheet(pNewStyleSheet, bDontRemoveHardAttr); -+ if(bBroadcast) -+ pSub->GetObj(a)->SetStyleSheet(pNewStyleSheet, bDontRemoveHardAttr); -+ else -+ pSub->GetObj(a)->NbcSetStyleSheet(pNewStyleSheet, bDontRemoveHardAttr); - } - } - -diff --git a/svx/source/sdr/properties/measureproperties.cxx b/svx/source/sdr/properties/measureproperties.cxx -index e503c5710810..d1eef829ddf9 100644 ---- a/svx/source/sdr/properties/measureproperties.cxx -+++ b/svx/source/sdr/properties/measureproperties.cxx -@@ -83,10 +83,11 @@ namespace sdr::properties - rObj.SetTextDirty(); - } - -- void MeasureProperties::SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr) -+ void MeasureProperties::SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr, -+ bool bBroadcast) - { - // call parent (always first thing to do, may create the SfxItemSet) -- TextProperties::SetStyleSheet(pNewStyleSheet, bDontRemoveHardAttr); -+ TextProperties::SetStyleSheet(pNewStyleSheet, bDontRemoveHardAttr, bBroadcast); - - // local changes - // get access to dimension line object -diff --git a/svx/source/sdr/properties/oleproperties.cxx b/svx/source/sdr/properties/oleproperties.cxx -index 2cdb55b70dde..587ff1d3f880 100644 ---- a/svx/source/sdr/properties/oleproperties.cxx -+++ b/svx/source/sdr/properties/oleproperties.cxx -@@ -32,7 +32,7 @@ namespace sdr::properties - if(pStyleSheet) - { - // do not delete hard attributes when setting dsefault Style -- SetStyleSheet(pStyleSheet, true); -+ SetStyleSheet(pStyleSheet, true, true); - } - else - { -diff --git a/svx/source/sdr/properties/pageproperties.cxx b/svx/source/sdr/properties/pageproperties.cxx -index ed75133f929f..a0cb3dd10902 100644 ---- a/svx/source/sdr/properties/pageproperties.cxx -+++ b/svx/source/sdr/properties/pageproperties.cxx -@@ -79,7 +79,8 @@ namespace sdr::properties - return nullptr; - } - -- void PageProperties::SetStyleSheet(SfxStyleSheet* /*pStyleSheet*/, bool /*bDontRemoveHardAttr*/) -+ void PageProperties::SetStyleSheet(SfxStyleSheet* /*pStyleSheet*/, bool /*bDontRemoveHardAttr*/, -+ bool /*bBroadcast*/) - { - // override to legally ignore the StyleSheet here - } -diff --git a/svx/source/sdr/properties/properties.cxx b/svx/source/sdr/properties/properties.cxx -index 353cdc5ede36..70baecd06420 100644 ---- a/svx/source/sdr/properties/properties.cxx -+++ b/svx/source/sdr/properties/properties.cxx -@@ -52,7 +52,7 @@ namespace sdr::properties - if(pDefaultStyleSheet != GetStyleSheet()) - { - // do not delete hard attributes when setting dsefault Style -- SetStyleSheet(pDefaultStyleSheet, true); -+ SetStyleSheet(pDefaultStyleSheet, true, true); - } - } - -diff --git a/svx/source/sdr/properties/rectangleproperties.cxx b/svx/source/sdr/properties/rectangleproperties.cxx -index 84b4fc17e23e..0f31491c0f8b 100644 ---- a/svx/source/sdr/properties/rectangleproperties.cxx -+++ b/svx/source/sdr/properties/rectangleproperties.cxx -@@ -54,10 +54,11 @@ namespace sdr::properties - } - - // set a new StyleSheet and broadcast -- void RectangleProperties::SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr) -+ void RectangleProperties::SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr, -+ bool bBroadcast) - { - // call parent (always first thing to do, may create the SfxItemSet) -- TextProperties::SetStyleSheet(pNewStyleSheet, bDontRemoveHardAttr); -+ TextProperties::SetStyleSheet(pNewStyleSheet, bDontRemoveHardAttr, bBroadcast); - - // local changes - SdrRectObj& rObj = static_cast(GetSdrObject()); -diff --git a/svx/source/sdr/properties/textproperties.cxx b/svx/source/sdr/properties/textproperties.cxx -index de5c6765de75..a81ee01f1169 100644 ---- a/svx/source/sdr/properties/textproperties.cxx -+++ b/svx/source/sdr/properties/textproperties.cxx -@@ -238,10 +238,11 @@ namespace sdr::properties - return static_cast(GetSdrObject()); - } - -- void TextProperties::SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr) -+ void TextProperties::SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr, -+ bool bBroadcast) - { - // call parent (always first thing to do, may create the SfxItemSet) -- AttributeProperties::SetStyleSheet(pNewStyleSheet, bDontRemoveHardAttr); -+ AttributeProperties::SetStyleSheet(pNewStyleSheet, bDontRemoveHardAttr, bBroadcast); - - // #i101556# StyleSheet has changed -> new version - SdrTextObj& rObj = static_cast(GetSdrObject()); -diff --git a/svx/source/svdraw/svdoashp.cxx b/svx/source/svdraw/svdoashp.cxx -index 86819350e946..5eb1ea2eac31 100644 ---- a/svx/source/svdraw/svdoashp.cxx -+++ b/svx/source/svdraw/svdoashp.cxx -@@ -2853,11 +2853,11 @@ SdrObjectUniquePtr SdrObjCustomShape::DoConvertToPolyObj(bool bBezier, bool bAdd - return pRetval; - } - --void SdrObjCustomShape::NbcSetStyleSheet( SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr ) -+void SdrObjCustomShape::InternalSetStyleSheet( SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr, bool bBroadcast ) - { - // #i40944# - InvalidateRenderGeometry(); -- SdrObject::NbcSetStyleSheet( pNewStyleSheet, bDontRemoveHardAttr ); -+ SdrObject::InternalSetStyleSheet( pNewStyleSheet, bDontRemoveHardAttr, bBroadcast ); - } - - void SdrObjCustomShape::handlePageChange(SdrPage* pOldPage, SdrPage* pNewPage) -diff --git a/svx/source/svdraw/svdobj.cxx b/svx/source/svdraw/svdobj.cxx -index 15b9cc6dcfcf..ef2deb6a4cb4 100644 ---- a/svx/source/svdraw/svdobj.cxx -+++ b/svx/source/svdraw/svdobj.cxx -@@ -2237,7 +2237,7 @@ void SdrObject::SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHar - if(m_pUserCall) - aBoundRect0 = GetLastBoundRect(); - -- NbcSetStyleSheet(pNewStyleSheet, bDontRemoveHardAttr); -+ InternalSetStyleSheet(pNewStyleSheet, bDontRemoveHardAttr, true); - SetChanged(); - BroadcastObjectChange(); - SendUserCall(SdrUserCallType::ChangeAttr, aBoundRect0); -@@ -2245,7 +2245,12 @@ void SdrObject::SetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHar - - void SdrObject::NbcSetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr) - { -- GetProperties().SetStyleSheet(pNewStyleSheet, bDontRemoveHardAttr); -+ InternalSetStyleSheet(pNewStyleSheet, bDontRemoveHardAttr, false); -+} -+ -+void SdrObject::InternalSetStyleSheet(SfxStyleSheet* pNewStyleSheet, bool bDontRemoveHardAttr, bool bBroadcast) -+{ -+ GetProperties().SetStyleSheet(pNewStyleSheet, bDontRemoveHardAttr, bBroadcast); - } - - // Broadcasting while setting attributes is managed by the AttrObj. -diff --git a/svx/source/table/cell.cxx b/svx/source/table/cell.cxx -index eafaea0a1fa7..6e5125c5844c 100644 ---- a/svx/source/table/cell.cxx -+++ b/svx/source/table/cell.cxx -@@ -650,7 +650,7 @@ void Cell::SetStyleSheet( SfxStyleSheet* pStyleSheet, bool bDontRemoveHardAttr ) - - if( mpProperties && (mpProperties->GetStyleSheet() != pStyleSheet) ) - { -- mpProperties->SetStyleSheet( pStyleSheet, bDontRemoveHardAttr ); -+ mpProperties->SetStyleSheet( pStyleSheet, bDontRemoveHardAttr, true ); - } - } - -diff --git a/vcl/headless/svpvd.cxx b/vcl/headless/svpvd.cxx -index f8e9cb5e6874..4d82a46e50c4 100644 ---- a/vcl/headless/svpvd.cxx -+++ b/vcl/headless/svpvd.cxx -@@ -76,29 +76,38 @@ void SvpSalVirtualDevice::CreateSurface(tools::Long nNewDX, tools::Long nNewDY, - cairo_surface_destroy(m_pSurface); - } - -- if (pBuffer) -+ double fXScale, fYScale; -+ if (comphelper::LibreOfficeKit::isActive()) -+ { -+ // Force scaling of the painting -+ fXScale = fYScale = comphelper::LibreOfficeKit::getDPIScale(); -+ } -+ else - { -- double fXScale, fYScale; -- if (comphelper::LibreOfficeKit::isActive()) -- { -- // Force scaling of the painting -- fXScale = fYScale = comphelper::LibreOfficeKit::getDPIScale(); -- } -- else -- { -- dl_cairo_surface_get_device_scale(m_pRefSurface, &fXScale, &fYScale); -- nNewDX *= fXScale; -- nNewDY *= fYScale; -- } -+ dl_cairo_surface_get_device_scale(m_pRefSurface, &fXScale, &fYScale); -+ nNewDX *= fXScale; -+ nNewDY *= fYScale; -+ } - -+ if (pBuffer) -+ { - m_pSurface = cairo_image_surface_create_for_data(pBuffer, CAIRO_FORMAT_ARGB32, - nNewDX, nNewDY, cairo_format_stride_for_width(CAIRO_FORMAT_ARGB32, nNewDX)); -- -+ dl_cairo_surface_set_device_scale(m_pSurface, fXScale, fYScale); -+ } -+ else if(nNewDX <= 32 && nNewDY <= 32) -+ { -+ // Force image-based surface if small. Small VirtualDevice instances are often used for small -+ // temporary bitmaps that will eventually have GetBitmap() called on them, which would cause -+ // X Server roundtrip with Xlib-based surface, which may be way more costly than doing the drawing -+ // in software (which should be fairly cheap for small surfaces anyway). -+ m_pSurface = cairo_surface_create_similar_image(m_pRefSurface, CAIRO_FORMAT_ARGB32, nNewDX, nNewDY); - dl_cairo_surface_set_device_scale(m_pSurface, fXScale, fYScale); - } - else - { - m_pSurface = cairo_surface_create_similar(m_pRefSurface, CAIRO_CONTENT_COLOR_ALPHA, nNewDX, nNewDY); -+ // Device scale is inherited in this case. - } - } - -diff --git a/vcl/source/outdev/outdev.cxx b/vcl/source/outdev/outdev.cxx -index 71ec101f4dd1..60d945e3465c 100644 ---- a/vcl/source/outdev/outdev.cxx -+++ b/vcl/source/outdev/outdev.cxx -@@ -231,6 +231,15 @@ SystemGraphicsData OutputDevice::GetSystemGfxData() const - return mpGraphics->GetGraphicsData(); - } - -+OUString OutputDevice::GetRenderBackendName() const -+{ -+ if (!mpGraphics && !AcquireGraphics()) -+ return {}; -+ assert(mpGraphics); -+ -+ return mpGraphics->getRenderBackendName(); -+} -+ - #if ENABLE_CAIRO_CANVAS - - bool OutputDevice::SupportsCairo() const --- -2.31.1 - diff --git a/fix-wayland-scaling-in-plasma.patch b/fix-wayland-scaling-in-plasma.patch deleted file mode 100644 index e75b1ba..0000000 --- a/fix-wayland-scaling-in-plasma.patch +++ /dev/null @@ -1,79 +0,0 @@ -From dc0016bc8d7e6c4456f4442c7ccf287bfc0c2e9b Mon Sep 17 00:00:00 2001 -From: Michael Weghorn -Date: Thu, 18 Nov 2021 21:15:10 +0100 -Subject: [PATCH] tdf#137924 qt (>=5.14): Use proper DPI without requiring - window handle - -For Qt >= 5.14, don't require a window handle to retrieve -the screen and then the associated DPI value from that one, -but directly use 'QWidget::screen' (introduced in QT 5.14) -to retrieve the screen. - -Previously, no DPI values would be set in case there was -no window handle. - -This makes UI scaling work without having to manually set -'SAL_FORCEDPI' on Wayland. - -While various UI elements (like e.g. the "Help" -> "About LibreOffice" -still look quite broken with the qt5 and kf5 VCL plugins -in a Plasma Wayland session (at least on my Debian testing with -Qt 5.15.2 and Plasma 5.23), they look OK -when using the qt6 VCL plugin with a custom build of qtbase -and qtwayland from Qt's "dev" git branches. - -Change-Id: I5feae46ed86a8b7d3cf92d4a973f7a0f9a9f95de -Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125507 -Tested-by: Jenkins -Reviewed-by: Michael Weghorn ---- - vcl/qt5/QtGraphics_GDI.cxx | 9 ++++++++- - vcl/qt5/QtSvpGraphics.cxx | 9 ++++++++- - 2 files changed, 16 insertions(+), 2 deletions(-) - -diff --git a/vcl/qt5/Qt5Graphics_GDI.cxx b/vcl/qt5/QtGraphics_GDI.cxx -index 0f9faa022d0b5..f87de50827dfc 100644 ---- a/vcl/qt5/Qt5Graphics_GDI.cxx -+++ b/vcl/qt5/Qt5Graphics_GDI.cxx -@@ -746,10 +746,17 @@ void QtGraphics::GetResolution(sal_Int32& rDPIX, sal_Int32& rDPIY) - return; - } - -- if (!m_pFrame || !m_pFrame->GetQWidget()->window()->windowHandle()) -+ if (!m_pFrame) -+ return; -+ -+#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0) -+ QScreen* pScreen = m_pFrame->GetQWidget()->screen(); -+#else -+ if (!m_pFrame->GetQWidget()->window()->windowHandle()) - return; - - QScreen* pScreen = m_pFrame->GetQWidget()->window()->windowHandle()->screen(); -+#endif - rDPIX = pScreen->logicalDotsPerInchX() * pScreen->devicePixelRatio() + 0.5; - rDPIY = pScreen->logicalDotsPerInchY() * pScreen->devicePixelRatio() + 0.5; - } -diff --git a/vcl/qt5/Qt5SvpGraphics.cxx b/vcl/qt5/QtSvpGraphics.cxx -index b6018a95e2997..3632c8990706c 100644 ---- a/vcl/qt5/Qt5SvpGraphics.cxx -+++ b/vcl/qt5/Qt5SvpGraphics.cxx -@@ -102,10 +102,17 @@ void QtSvpGraphics::GetResolution(sal_Int32& rDPIX, sal_Int32& rDPIY) - return; - } - -- if (!m_pFrame || !m_pFrame->GetQWidget()->window()->windowHandle()) -+ if (!m_pFrame) -+ return; -+ -+#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0) -+ QScreen* pScreen = m_pFrame->GetQWidget()->screen(); -+#else -+ if (!m_pFrame->GetQWidget()->window()->windowHandle()) - return; - - QScreen* pScreen = m_pFrame->GetQWidget()->window()->windowHandle()->screen(); -+#endif - rDPIX = pScreen->logicalDotsPerInchX() * pScreen->devicePixelRatio() + 0.5; - rDPIY = pScreen->logicalDotsPerInchY() * pScreen->devicePixelRatio() + 0.5; - } diff --git a/gpgme-1.13.1.tar.bz2 b/gpgme-1.13.1.tar.bz2 deleted file mode 100644 index 98872f6..0000000 --- a/gpgme-1.13.1.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c4e30b227682374c23cddc7fdb9324a99694d907e79242a25a4deeedb393be46 -size 1759616 diff --git a/gpgme-1.16.0.tar.bz2 b/gpgme-1.16.0.tar.bz2 new file mode 100644 index 0000000..40e00db --- /dev/null +++ b/gpgme-1.16.0.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6c8cc4aedb10d5d4c905894ba1d850544619ee765606ac43df7405865de29ed0 +size 1718913 diff --git a/icu4c-69_1-data.zip b/icu4c-69_1-data.zip deleted file mode 100644 index 6609722..0000000 --- a/icu4c-69_1-data.zip +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4fc2d8cfc3343673123586fca3967404abd4e346fba5515829204533b3bae4bf -size 16865417 diff --git a/icu4c-69_1-src.tgz b/icu4c-69_1-src.tgz deleted file mode 100644 index d1716ea..0000000 --- a/icu4c-69_1-src.tgz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4cba7b7acd1d3c42c44bb0c14be6637098c7faf2b330ce876bc5f3b915d09745 -size 24814903 diff --git a/icu4c-70_1-data.zip b/icu4c-70_1-data.zip new file mode 100644 index 0000000..ee115a1 --- /dev/null +++ b/icu4c-70_1-data.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c72723ddba3300ffb231d6b09e2a728ea6e89de10ed5927f74bacbd77042336e +size 18770261 diff --git a/icu4c-70_1-src.tgz b/icu4c-70_1-src.tgz new file mode 100644 index 0000000..d550234 --- /dev/null +++ b/icu4c-70_1-src.tgz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8d205428c17bf13bb535300669ed28b338a157b1c01ae66d31d0d3e2d47c3fd5 +size 25449582 diff --git a/libassuan-2.5.3.tar.bz2 b/libassuan-2.5.3.tar.bz2 deleted file mode 100644 index 54ddf0e..0000000 --- a/libassuan-2.5.3.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:91bcb0403866b4e7c4bc1cc52ed4c364a9b5414b3994f718c70303f7f765e702 -size 572348 diff --git a/libassuan-2.5.5.tar.bz2 b/libassuan-2.5.5.tar.bz2 new file mode 100644 index 0000000..17eaf44 --- /dev/null +++ b/libassuan-2.5.5.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8e8c2fcc982f9ca67dcbb1d95e2dc746b1739a4668bc20b3a3c5be632edb34e4 +size 572263 diff --git a/libgpg-error-1.37.tar.bz2 b/libgpg-error-1.37.tar.bz2 deleted file mode 100644 index 1777c3b..0000000 --- a/libgpg-error-1.37.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b32d6ff72a73cf79797f7f2d039e95e9c6f92f0c1450215410840ab62aea9763 -size 937282 diff --git a/libgpg-error-1.43.tar.bz2 b/libgpg-error-1.43.tar.bz2 new file mode 100644 index 0000000..24a416a --- /dev/null +++ b/libgpg-error-1.43.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a9ab83ca7acc442a5bd846a75b920285ff79bdb4e3d34aa382be88ed2c3aebaf +size 999006 diff --git a/libreoffice-7.2.5.1.tar.xz b/libreoffice-7.2.5.1.tar.xz deleted file mode 100644 index 5bff4be..0000000 --- a/libreoffice-7.2.5.1.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:20fd51ecce5906b32a1a33817c7f6c7917558e67a93072826c41bfef0115493c -size 252956132 diff --git a/libreoffice-7.2.5.1.tar.xz.asc b/libreoffice-7.2.5.1.tar.xz.asc deleted file mode 100644 index c5ef969..0000000 --- a/libreoffice-7.2.5.1.tar.xz.asc +++ /dev/null @@ -1,16 +0,0 @@ ------BEGIN PGP SIGNATURE----- - -iQIzBAABCAAdFiEEwoOeytlAj76VMcPp9DSh76/urqMFAmG44Z8ACgkQ9DSh76/u -rqNLvA//agFf6ZTkJfe5yd+sVaUB9lmSDpYrPLOsB0WkYIAHQclbCWdmupfc6U3L -Msg02srrxxnECXkNnseWhjLYdPlnZwmaw3m5tpjh0UlMHue4gkdO3Rdv8GRc7+mR -GgcD1/OJms0KEW/KoUNQ/3pEMXkN8YWtMgKGASZOz6uKC0WjhXUMcHyiInefU8nt -veVyLV1iYJMzPFROeoN4ejWRi2DUozmIdMzrkig9yzZMB8gL89yfsDe/mFp5mpia -TSjNzLro2bwJGZyKHEd6eFLC8gvzWcCwNV6yDSWy4lIPnlPEubYl5MDU+tmZhwtP -tJAtjfL31Vj4XlLcZy+NudY83e5+XpCjultuz6pjy0NBkIa16dphtWCvQmbKYhR5 -9DX555oYesmQRIwGu1krxgKXXfneiqNEjnxX7kF3yRG56kOIqEaEwoyJVRgBVCWc -fhZVY+jbRsn06QwelHncjBSW9wnBQFyNgTJ93hQwaf/VJCgzNXauKjl5CE79/l+t -m4Oy4J4ldoPLOkUC4QAaroYwXsp3/9OP8cCaT5iHH2XSp6XV1MSI+AJ5B3j9/g6X -N+AO57uJ123fHJVqNvXj5PhYitSna7o6zrXq65sFGlzfgoJAPHIhkx0hxo1znaqo -qV7A9jqeKUkFbNpMh62mteY1BhZJISRCzbXgpktouuY1rJ5mwLU= -=Z/OR ------END PGP SIGNATURE----- diff --git a/libreoffice-7.3.1.1.tar.xz b/libreoffice-7.3.1.1.tar.xz new file mode 100644 index 0000000..80c13be --- /dev/null +++ b/libreoffice-7.3.1.1.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:db554117cd690d48a2e69cb6190603981c9ba5e70d4bbe162f0ae31b397f1443 +size 255263512 diff --git a/libreoffice-7.3.1.1.tar.xz.asc b/libreoffice-7.3.1.1.tar.xz.asc new file mode 100644 index 0000000..d42f1ad --- /dev/null +++ b/libreoffice-7.3.1.1.tar.xz.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCAAdFiEEwoOeytlAj76VMcPp9DSh76/urqMFAmIGT40ACgkQ9DSh76/u +rqOpmA/+NV5aSLZw4naApHPyClF0ujVBKTFKprLtpeu+1mg32Z9+/9kW6FYr0Oev +iUxTCmzvzvhgWhmuZ6F25ibnHfmmn2zOjMy+SRV1B6fEqDnFJc3V/JYdBb+oLuSt +la31Uy8Qbt8mcSiO6pM9aox+g34DlRTXnf/JnHKY06mOMqggHeACzqjYncpspsOt +fmZhOcIMrkpxccchEel4AQxbLveJf7omFrCS1H4SEWapIog5I1hyC9S3iqQWgdtp +x4p3NEDqV+npjsbIjI4qUaQCpgQIBDClP4ivK1ESpWCoF4IvcrzgPXdFnc1H0c6d +kxD3vXd0TIX/mDOoWpz7AQM/HgHtLVkDHwEBZI9mdi8kLh8k9dNEA2hgiR8vfubb +fl2KMlQJxWqYEdoKpDEEMjMSp48fAyoz8b5CXuOBoowRJkFVYvtDanB5NXevMvws +h5bQGqk2RmYjI+20HNlgSbHZLIfqviiwECZdAK6TiVsU/UkNREwlgV0Aqb1OHOXf +rcI4OLW3IwKUV7t8e8XStJIoZidzDOMcqO569yuiWqY9WQSAZT6nz1pY7+1fpYJm +lismZ6vaBAVLriUr//k9S80gYsscKkbjqnLz6jFL7VCJgVSNC5LCVMJXpeJvnNz3 +UG1MIsNF/QbBf2dBgCr3f9Fqxpbr0tUHI8sg1PFZ4k5UE7gtJ60= +=N8ct +-----END PGP SIGNATURE----- diff --git a/libreoffice-help-7.2.5.1.tar.xz b/libreoffice-help-7.2.5.1.tar.xz deleted file mode 100644 index 129771e..0000000 --- a/libreoffice-help-7.2.5.1.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:16d00f492518a73de8f9936b58b59b2d60265945bc5d1f2cb53324592ca80a4a -size 112081364 diff --git a/libreoffice-help-7.2.5.1.tar.xz.asc b/libreoffice-help-7.2.5.1.tar.xz.asc deleted file mode 100644 index e70f029..0000000 --- a/libreoffice-help-7.2.5.1.tar.xz.asc +++ /dev/null @@ -1,16 +0,0 @@ ------BEGIN PGP SIGNATURE----- - -iQIzBAABCAAdFiEEwoOeytlAj76VMcPp9DSh76/urqMFAmG44asACgkQ9DSh76/u -rqMlsg//dMMdlqmtuWjOW1j3dk9nXuFrBulhGUmTwGZNnl/oWraCNpc3ynPOEtBR -EOFTyTKl6mIzg/MqM9K+4CFmSdkPQ2tgXq7eMYSAPdwUF8vf8K1S2oHpRkkUOPPp -hk+qhW7/pa/A/cEzG+dr5jrtx+lKachhIJep0JcqB6ACtmtg5Xj59M0Q7qJfCJQI -JymekgfD763ED5/OSA1Cx9gyg87UbJuvcqxJj38Tr+9qxYf0+sxb9t6FtS0aWZ2Y -ftnpKYNWZkf0E8et3PXtlXDtSo8tk8OTRghlqHvTZZgWvl+1fUfSA/qzqilPITgf -6fZiP12mrJ6R1fMd7uziot/WyZU84xzYnK5t5KEP7vno/6PK22z6XIhHbFWsVyQH -KTxHFoy4zZgiS8njFdSiExyPRtlLSSwtGy/YW18rws6tRmpbTBP0UWuWf/LyUZyP -B44qmE+/zWE5O810e0m+P9JQvD1W6JLbWdB7GEs+yso74tNmaITxvNYhLla1QW3c -rsnHWrKoVsRH4L5c0ijwfa4ug9xT8aYcIovegRd9mXhc25WcOYRhiFaI7R7Pv7cy -MRCdw1Fl+NSYo5mkAyCTuLi03cL1+xm6o7Le7olnPbGRSD7D8M7vj8nhoH24oIzU -/vy8hUjbDJEKhhikOky/0WagFsNGeItqOwi3fhT19dkWQmdYpyM= -=oL9w ------END PGP SIGNATURE----- diff --git a/libreoffice-help-7.3.1.1.tar.xz b/libreoffice-help-7.3.1.1.tar.xz new file mode 100644 index 0000000..cde3382 --- /dev/null +++ b/libreoffice-help-7.3.1.1.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a67efaabaddd57377af18e0e86aedb397b27ca83b09263a6bdc3264f9a8cb302 +size 112208076 diff --git a/libreoffice-help-7.3.1.1.tar.xz.asc b/libreoffice-help-7.3.1.1.tar.xz.asc new file mode 100644 index 0000000..65a9491 --- /dev/null +++ b/libreoffice-help-7.3.1.1.tar.xz.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCAAdFiEEwoOeytlAj76VMcPp9DSh76/urqMFAmIGT5IACgkQ9DSh76/u +rqMjBQ/9HeJmIMCGcvoC0ql4kIge9hul3bwJtwfSzSX54Cz+SvVLtEiXGiA+Hs6X +A50mbGeQeuFByhNzxuw40bJz8gIE+Bu3I9MG0wTHLDCbO4/yzw0xnUz4DJIVTG+U +V2t+g9rewilWi55JUkfAGLeUA3SefbUSLKB2zwk9WXb2EMSabdO7+bb5hp+k0tP0 +R23I2hfc15OTtancSrNW5GRI1PI3IBk7RsFffKaqnRJqfKDBiYsT6OpdQYCzR+5p +4NqXTPcYxiWyRXdYl5KNdozln3GMJTirKE5kx3FPiTldEMc1JtFdngUY8UwMDfhb +XYykj0dtOY1UfLpv8GRJ0SbjemKcCTqIOSxmCudoDFkXub77RN2khPyF0ZuMB4ry +eD9N+lyfa4S4BCG+2oSR3DcNnMBGUfvZP+EG4kHLOcfjdCV38HKcgzkJ0HXTgPLx +CQmbvPKjpoc/d8M7uSd6G8YRh/SOB53zaGz0UU/aBh2gt1wGLJ1LXBxzEOtDdtkb +7lLbDDjefCD6brAkinPxK17UXgiEZIcItY7fFIQVGO391tWAJuLTJtEIsPIznkkm +PzGn+9w7qvq/PKZxhtcwCHDyEV6bVtdaVu/xekjXYiWmGCRj6ZCCuUjIKxEiD3ep +2PhWX0bERc0IVMsooD3ce+TkOBY+OsbG9Ztr40kaPPpJ0BBiSrs= +=lYoZ +-----END PGP SIGNATURE----- diff --git a/libreoffice-translations-7.2.5.1.tar.xz b/libreoffice-translations-7.2.5.1.tar.xz deleted file mode 100644 index 7ad3157..0000000 --- a/libreoffice-translations-7.2.5.1.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:989ee335ebc8d30a2bfc302aa4e9e47fd2cff83acfaf3f0d3caf8fc931923908 -size 192789608 diff --git a/libreoffice-translations-7.2.5.1.tar.xz.asc b/libreoffice-translations-7.2.5.1.tar.xz.asc deleted file mode 100644 index 4dca83c..0000000 --- a/libreoffice-translations-7.2.5.1.tar.xz.asc +++ /dev/null @@ -1,16 +0,0 @@ ------BEGIN PGP SIGNATURE----- - -iQIzBAABCAAdFiEEwoOeytlAj76VMcPp9DSh76/urqMFAmG44awACgkQ9DSh76/u -rqOjVw/9HtOad+Rfqe3BdwlPmnVES9LQQg6HCi4VF9t57EvRr0y/+LijBnzjuZe1 -A+MoycvX9d4X8EM0yw3/00WOMGFE0FsJ/mXL+PeLzS0gDSu1xD5ajNGHjG25wtxp -A9WrUTuVDUqojzsgANlb3YI5tY5BSowfTuQfO+AS7lXv2ykUn+ope0jAwLlj6eRm -NxmLwMFClpJYjXYo6rMXKG1/aG/dfOTOZApVsPk3mEPdM1sVA6stJcfi55KcD9ez -J3+oibnnQoXh/0sFH1aZ9FWaaiOlyfMki5CPl+lOGZWXNEryY0uS5n2OQ4D/yc65 -d9qkb2MV2QYoWh8yE0fkeO/MrdCAFcmuFrEjegSs+DntCXzq8p7QuqDBmn1b7QQv -NHLQg5GUqgRpJcBSBV6a8qcR/0g8w4jbGGqGP2tqzNhCHdW5dwELwNryY9VUfibQ -JCTV6pXLAU2QZY33Rkc+oFWVoIWNZH6g72AR9rUUlHglpE+/kgcG/sqErICBvILM -7VXEjb4qU/kD2drc5gIIp8wSVSVuWHuSJ9mNcXh6ySp9bfG7xvOKP1soFBzM1vJ7 -D/BhPFjrlLT8rNPT7v37oDjbx1SxZ5PkxGgtGSUC0q9SLuoCgPQHnP+oDEjIof+n -qX7y0aIJaw9+cILfCKwTYISVfquoUWUOV8nVo8C2gXQaIB8RBFA= -=uFbB ------END PGP SIGNATURE----- diff --git a/libreoffice-translations-7.3.1.1.tar.xz b/libreoffice-translations-7.3.1.1.tar.xz new file mode 100644 index 0000000..b566237 --- /dev/null +++ b/libreoffice-translations-7.3.1.1.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7b0a10b73eb0e7e3781eae61d18edf8d9f279700d86ccc0963e6dffff09668ae +size 196019764 diff --git a/libreoffice-translations-7.3.1.1.tar.xz.asc b/libreoffice-translations-7.3.1.1.tar.xz.asc new file mode 100644 index 0000000..d758f2e --- /dev/null +++ b/libreoffice-translations-7.3.1.1.tar.xz.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCAAdFiEEwoOeytlAj76VMcPp9DSh76/urqMFAmIGT5QACgkQ9DSh76/u +rqPG/g//dkKs6bhQlEQ8T7pU7xN+vif99akisTOJ3qlCuo0ky+lOw8M3lFzMKxnH +/ZbwgOCpO3vLt5mCzhv0TGpXVHCaiFF14aYIV8wFK2UPqvsUTgPf5V6PwncIn7/z +uw1m0NGEdjtNlIjlm6O/5DCaPSOWPn/dbe4I+aiMSNfOhf9KunViRf/kKjkreUQY +Rt0OFiAAqm5f64SloO0q/Ecmr8zbav8I57e/9LoiqPb+pC/GdjWgQpRxUwXXabLy +m8MbiNknnIXNZaFogrN3KDJ3+Sf+1dSpFPAOwfUi+5FNhZJvIYOyl+Kx0led+tXk +CS6E+LnzAyzsUMqaF8fImj+r4A7Q+nsCCiG/G5hsyFNgufyhVP3I8eQ83tq6z1DM +DtZUnOsh0Yi/hqTcUDKbgHLimo79c+38BqDl+Ed+OL0FUWWCxFLEvWazrkYcjAqQ ++SPdPEaHfIfks3D7NbztJpCbQx2ig0i/8KXIt1qSh5BvoejpyUwqlhFtCfDuGqAW +CswCKWTWp/yseRz2DfD2ibOw76FM9oxmg79nnBZqtG4ojFB1tvwJltGd5NzAKrsk +pgmpRHvD1Kq9hbAOIBtW+39gNwtHvklbbzx3EjkAflM1SsKDQepymGP/GHdNKxTq +81tmszm/ZFGGuLj4LrklzygfjcqxTb3xrSVnBAlqf89Gym80UkI= +=zr9T +-----END PGP SIGNATURE----- diff --git a/libreoffice.changes b/libreoffice.changes index 1bf09cd..6cc0b40 100644 --- a/libreoffice.changes +++ b/libreoffice.changes @@ -1,3 +1,14 @@ +------------------------------------------------------------------- +Fri Feb 14 10:22:01 UTC 2022 - Danilo Spinella + +- Update to 7.3.1.1 +- Removed uneeded patches: + * 0001-Missing-includes-for-libstdc-12.patch + * bsc1183308.patch + * fix-wayland-scaling-in-plasma.patch + * pld-skia-patches.patch + * skia-freetype2.11.patch + ------------------------------------------------------------------- Sat Feb 5 15:29:22 UTC 2022 - Michael Gorse diff --git a/libreoffice.spec b/libreoffice.spec index 3bfbc9d..865d603 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -46,7 +46,7 @@ %endif %bcond_with firebird Name: libreoffice -Version: 7.2.5.1 +Version: 7.3.1.1 Release: 0 Summary: A Free Office Suite (Framework) License: LGPL-3.0-or-later AND MPL-2.0+ @@ -70,9 +70,9 @@ Source402: %{external_url}/b7cae45ad2c23551fd6ccb8ae2c1f59e-numbertext_%{nu Source450: %{external_url}/1f467e5bb703f12cbbb09d5cf67ecf4a-converttexttonumber-1-5-0.oxt Source452: %{external_url}/90401bca927835b6fbae4a707ed187c8-nlpsolver-0.9.tar.bz2 # GPGME bundle list -Source1000: %{external_url}/gpgme-1.13.1.tar.bz2 -Source1001: %{external_url}/libgpg-error-1.37.tar.bz2 -Source1002: %{external_url}/libassuan-2.5.3.tar.bz2 +Source1000: %{external_url}/gpgme-1.16.0.tar.bz2 +Source1001: %{external_url}/libgpg-error-1.43.tar.bz2 +Source1002: %{external_url}/libassuan-2.5.5.tar.bz2 # Internal bundled stuff we can't remove # To build this we would pull cygwin; not worth it Source2001: https://dev-www.libreoffice.org/extern/185d60944ea767075d27247c3162b3bc-unowinreg.dll @@ -87,13 +87,11 @@ Source2005: %{external_url}/a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zi Source2006: https://dev-www.libreoffice.org/extern/8249374c274932a21846fa7629c2aa9b-officeotron-0.7.4-master.jar Source2007: https://dev-www.libreoffice.org/extern/odfvalidator-0.9.0-RC2-SNAPSHOT-jar-with-dependencies-2726ab578664434a545f8379a01a9faffac0ae73.jar # PDFium is bundled everywhere -Source2008: %{external_url}/pdfium-4500.tar.bz2 +Source2008: %{external_url}/pdfium-4699.tar.bz2 # Single C file with patches from LO Source2009: %{external_url}/dtoa-20180411.tgz # Skia is part of chromium and bundled everywhere as by google only way is monorepo way -Source2010: %{external_url}/skia-m90-45c57e116ee0ce214bdf78405a4762722e4507d9.tar.xz -# Fix the build with freetype-2.11 -Source2011: skia-freetype2.11.patch +Source2010: %{external_url}/skia-m97-a7230803d64ae9d44f4e1282444801119a3ae967.tar.xz Source2012: %{external_url}/libcmis-0.5.2.tar.xz # change user config dir name from ~/.libreoffice/3 to ~/.libreoffice/3-suse # to avoid BerkleyDB incompatibility with the plain build @@ -104,14 +102,8 @@ Patch2: nlpsolver-no-broken-help.diff Patch3: mediawiki-no-broken-help.diff # PATCH-FIX-OPENSUSE boo#1186110 fix GCC 11 error Patch6: gcc11-fix-error.patch -Patch7: pld-skia-patches.patch -# PATCH-FIX-UPSTREAM https://bugs.documentfoundation.org/show_bug.cgi?id=137924 Use proper DPI without requiring window handle -Patch8: fix-wayland-scaling-in-plasma.patch Patch9: fix_math_desktop_file.patch Patch10: fix_gtk_popover_on_3.20.patch -# LO-L3: bsc#1183308 Simple, seven page slide deck of 3.7MB takes looong to open, start presentation mode, or move back to slide 1 -Patch11: bsc1183308.patch -Patch12: 0001-Missing-includes-for-libstdc-12.patch # Build with java 8 Patch101: 0001-Revert-java-9-changes.patch # try to save space by using hardlinks @@ -127,7 +119,7 @@ BuildRequires: bison BuildRequires: bsh2 BuildRequires: commons-logging BuildRequires: cups-devel -BuildRequires: curl-devel +BuildRequires: curl-devel >= 7.68.0 # Needed for tests BuildRequires: dejavu-fonts BuildRequires: doxygen >= 1.8.4 @@ -138,12 +130,14 @@ BuildRequires: fontforge BuildRequires: glm-devel # Needed for tests BuildRequires: google-carlito-fonts +BuildRequires: abseil-cpp-devel BuildRequires: gperf >= 3.1 BuildRequires: graphviz BuildRequires: hyphen-devel BuildRequires: junit4 BuildRequires: libbase BuildRequires: libcppunit-devel >= 1.14.0 +BuildRequires: libcuckoo-devel BuildRequires: liberation-fonts BuildRequires: libexif BuildRequires: libfonts @@ -205,7 +199,8 @@ BuildRequires: pkgconfig(libmspub-0.1) >= 0.1 BuildRequires: pkgconfig(libmwaw-0.3) >= 0.3.19 BuildRequires: pkgconfig(libnumbertext) >= 1.0.6 BuildRequires: pkgconfig(libodfgen-0.1) >= 0.1.4 -BuildRequires: pkgconfig(liborcus-0.16) +BuildRequires: pkgconfig(libopenjp2) +BuildRequires: pkgconfig(liborcus-0.17) BuildRequires: pkgconfig(libpagemaker-0.0) BuildRequires: pkgconfig(libpng) BuildRequires: pkgconfig(libpq) @@ -220,14 +215,13 @@ BuildRequires: pkgconfig(libwps-0.4) >= 0.4.11 BuildRequires: pkgconfig(libxml-2.0) BuildRequires: pkgconfig(libxslt) BuildRequires: pkgconfig(libzmf-0.0) -BuildRequires: pkgconfig(mdds-1.5) >= 1.5.0 +BuildRequires: pkgconfig(mdds-2.0) BuildRequires: pkgconfig(mythes) BuildRequires: pkgconfig(nspr) >= 4.8 BuildRequires: pkgconfig(nss) >= 3.9.3 BuildRequires: pkgconfig(python3) BuildRequires: pkgconfig(redland) BuildRequires: pkgconfig(sane-backends) -BuildRequires: pkgconfig(serf-1) >= 1.3.9 BuildRequires: pkgconfig(xmlsec1-nss) >= 1.2.28 BuildRequires: pkgconfig(xrandr) BuildRequires: pkgconfig(xt) @@ -264,7 +258,7 @@ Obsoletes: %{name}-icon-theme-oxygen < %{version} ExclusiveArch: aarch64 %{ix86} x86_64 ppc64le %if 0%{?suse_version} < 1550 # Too old boost on the system -Source2020: %{external_url}/boost_1_75_0.tar.xz +Source2020: %{external_url}/boost_1_77_0.tar.xz Source2023: %{external_url}/poppler-21.11.0.tar.xz Source2024: %{external_url}/poppler-data-0.4.10.tar.gz %else @@ -278,8 +272,8 @@ BuildRequires: pkgconfig(poppler-cpp) %endif %if 0%{?suse_version} < 1500 # Too old icu on the system -Source2021: %{external_url}/icu4c-69_1-src.tgz -Source2022: %{external_url}/icu4c-69_1-data.zip +Source2021: %{external_url}/icu4c-70_1-src.tgz +Source2022: %{external_url}/icu4c-70_1-data.zip BuildRequires: gcc7 BuildRequires: gcc7-c++ BuildRequires: java-devel >= 1.8 @@ -1011,22 +1005,14 @@ Provides %{langname} translations and additional resources (help files, etc.) fo %patch2 %patch3 %patch6 -p1 -%patch7 -p1 -%patch8 -p1 %patch9 -p1 %if 0%{?suse_version} < 1500 %patch10 -p1 -%patch11 -p1 -%endif -%patch12 -p1 -%if 0%{?suse_version} < 1500 %patch101 -p1 %endif %patch990 -p1 %patch991 -p1 -cp %{SOURCE2011} external/skia - # Disable some of the failing tests (some are random) %if 0%{?suse_version} < 1330 sed -i -e '/CppunitTest_desktop_lib/d' desktop/Module_desktop.mk @@ -1042,6 +1028,8 @@ sed -i -e /CppunitTest_sw_uiwriter/d sw/Module_sw.mk sed -i -e /CPPUNIT_TEST\(testODFEncryptedGPG\)/d xmlsecurity/qa/unit/signing/signing.cxx # breaks on LTO https://bugs.documentfoundation.org/show_bug.cgi?id=126442 sed -i -e /CppunitTest_sw_apitests/d sw/Module_sw.mk +# -flto=thin is not supported by gcc +sed -i -e s/-flto=thin/-flto/ solenv/gbuild/platform/com_GCC_defs.mk # Disable failing tests on ppc64le for now %ifarch ppc64le sed -i -e /CppunitTest_sc_addin_functions_test/d sc/Module_sc.mk @@ -1145,7 +1133,7 @@ export NOCONFIGURE=yes --without-fonts \ --without-myspell-dicts \ --with-jdk-home=$JAVA_HOME \ - --with-webdav=serf \ + --with-webdav=curl \ --with-beanshell-jar=%{_datadir}/java/bsh2/bsh.jar \ --with-ant-home=%{_datadir}/ant \ --with-external-dict-dir=%{_datadir}/hunspell \ diff --git a/pdfium-4500.tar.bz2 b/pdfium-4500.tar.bz2 deleted file mode 100644 index 842e6ea..0000000 --- a/pdfium-4500.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:26a03dd60e5ed0979cdaba9cc848242895110ddfdf347d40989ce2f14020f304 -size 7275062 diff --git a/pdfium-4699.tar.bz2 b/pdfium-4699.tar.bz2 new file mode 100644 index 0000000..bf71d64 --- /dev/null +++ b/pdfium-4699.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ee80fe0a3b20ef5c5babc494cd655d1b1a0bdec710acb04524789df500c563bf +size 8780890 diff --git a/pld-skia-patches.patch b/pld-skia-patches.patch deleted file mode 100644 index 313b61e..0000000 --- a/pld-skia-patches.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- libreoffice-7.2.0.3/external/skia/UnpackedTarball_skia.mk.orig 2021-08-10 19:27:48.000000000 +0200 -+++ libreoffice-7.2.0.3/external/skia/UnpackedTarball_skia.mk 2021-08-12 18:09:22.813517161 +0200 -@@ -39,6 +39,7 @@ - fix-warnings.patch.1 \ - disable-freetype-colrv1.1 \ - windows-libraries-system32.patch.1 \ -+ skia-freetype2.11.patch \ - - $(eval $(call gb_UnpackedTarball_set_patchlevel,skia,1)) - diff --git a/skia-freetype2.11.patch b/skia-freetype2.11.patch deleted file mode 100644 index 65f429f..0000000 --- a/skia-freetype2.11.patch +++ /dev/null @@ -1,37 +0,0 @@ ---- skia/src/ports/SkFontHost_FreeType_common.cpp.orig 2021-03-01 15:53:09.178606791 +0100 -+++ skia/src/ports/SkFontHost_FreeType_common.cpp 2021-08-12 17:48:32.358901987 +0200 -@@ -665,8 +665,13 @@ - canvas->drawPaint(paint); - break; - } -+#if FREETYPE_MAJOR == 2 && FREETYPE_MINOR >= 11 -+ case FT_COLR_PAINTFORMAT_TRANSFORM: { -+ SkMatrix transform = ToSkMatrix(colrv1_paint.u.transform.affine); -+#else - case FT_COLR_PAINTFORMAT_TRANSFORMED: { - SkMatrix transform = ToSkMatrix(colrv1_paint.u.transformed.affine); -+#endif - - canvas->concat(transform); - break; -@@ -760,12 +765,20 @@ - traverse_result = colrv1_start_glyph(canvas, palette, face, paint.u.colr_glyph.glyphID, - FT_COLOR_NO_ROOT_TRANSFORM); - break; -+#if FREETYPE_MAJOR == 2 && FREETYPE_MINOR >= 11 -+ case FT_COLR_PAINTFORMAT_TRANSFORM: -+#else - case FT_COLR_PAINTFORMAT_TRANSFORMED: -+#endif - canvas->saveLayer(nullptr, nullptr); - // Traverse / draw operation will apply transform. - colrv1_draw_paint(canvas, palette, face, paint); - traverse_result = -+#if FREETYPE_MAJOR == 2 && FREETYPE_MINOR >= 11 -+ colrv1_traverse_paint(canvas, palette, face, paint.u.transform.paint); -+#else - colrv1_traverse_paint(canvas, palette, face, paint.u.transformed.paint); -+#endif - canvas->restore(); - break; - case FT_COLR_PAINTFORMAT_ROTATE: diff --git a/skia-m90-45c57e116ee0ce214bdf78405a4762722e4507d9.tar.xz b/skia-m90-45c57e116ee0ce214bdf78405a4762722e4507d9.tar.xz deleted file mode 100644 index abff8e4..0000000 --- a/skia-m90-45c57e116ee0ce214bdf78405a4762722e4507d9.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:abe0b94d54edb717c58d74263f4ed3d27824d2ce9e9f2ce85a21ab38d993f94d -size 10630696 diff --git a/skia-m97-a7230803d64ae9d44f4e1282444801119a3ae967.tar.xz b/skia-m97-a7230803d64ae9d44f4e1282444801119a3ae967.tar.xz new file mode 100644 index 0000000..1dcc9d9 --- /dev/null +++ b/skia-m97-a7230803d64ae9d44f4e1282444801119a3ae967.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:97e859e8467eca9d2441cd23079b61c2c3863b5687620f18cc31a9f966740177 +size 11826600 From 7f96aeb0d46a4386238c0d2ba7b165892aed6d9380798d71519653d81de085cd Mon Sep 17 00:00:00 2001 From: Danilo Spinella Date: Thu, 17 Feb 2022 11:12:36 +0000 Subject: [PATCH 2/2] Accepting request 955602 from home:cgiboudeaux:branches:LibreOffice:Factory - Add upstream change to fix KDE Frameworks detection (boo#1196017) * 0001-configure.ac-Update-kf5-include-lib-check-to-work-wi.patch OBS-URL: https://build.opensuse.org/request/show/955602 OBS-URL: https://build.opensuse.org/package/show/LibreOffice:Factory/libreoffice?expand=0&rev=992 --- ...ate-kf5-include-lib-check-to-work-wi.patch | 57 +++++++++++++++++++ libreoffice.changes | 6 ++ libreoffice.spec | 9 +++ 3 files changed, 72 insertions(+) create mode 100644 0001-configure.ac-Update-kf5-include-lib-check-to-work-wi.patch diff --git a/0001-configure.ac-Update-kf5-include-lib-check-to-work-wi.patch b/0001-configure.ac-Update-kf5-include-lib-check-to-work-wi.patch new file mode 100644 index 0000000..7811e48 --- /dev/null +++ b/0001-configure.ac-Update-kf5-include-lib-check-to-work-wi.patch @@ -0,0 +1,57 @@ +From 5fd5e42bf28a7910321c6b6d76257e7386839fbc Mon Sep 17 00:00:00 2001 +From: Michael Weghorn +Date: Wed, 16 Feb 2022 13:38:47 +0100 +Subject: [PATCH] configure.ac: Update kf5 include/lib check to work with KF5 + >= 5.91 + +The 'kcoreaddons_version.h' header was moved to the 'KCoreAddons' +subdirectory in kcoreaddons commit + + commit d971ba9bb27a3e8f18a116692fdf98c1729ac244 + Author: Ahmad Samir + Date: Sat Jan 15 14:14:13 2022 +0200 + + Install kcoreaddons_version.h in /usr/include/KF5/KCoreAddons/ + + Instead of /usr/include/KF5/kcoreaddons_version.h. + + For more details see: + https://invent.kde.org/frameworks/kservice/-/merge_requests/79 + + GIT_SILENT + +Adapt the KF5 check to check for the 'KFileWidget' header and +the 'libKF5KIOFileWidgets.so' library instead. +This is more exact anyway, since we require KIOFileWidgets, +and the previous check didn't ensure that. +(So in case only KF5CoreAddons but not KIOFileWidgets was installed, +configure would previously pass, but the build fail.) + +[1] https://invent.kde.org/frameworks/kcoreaddons/-/commit/d971ba9bb27a3e8f18a116692fdf98c1729ac244 + +Change-Id: I7ecf7f29dce85e1a6e6b0d4f2519fa37ab04ca84 +Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129996 +Tested-by: Jenkins +Reviewed-by: Michael Weghorn +--- + configure.ac | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 6acb3107cea3..4e84f9a33980 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -13017,8 +13017,8 @@ then + kf5_libdirs="$kf5_libdirs /usr/lib64 /usr/lib64/kf5 /usr/lib64/kf5/devel" + fi + +- kf5_test_include="KF5/kcoreaddons_version.h" +- kf5_test_library="libKF5CoreAddons.so" ++ kf5_test_include="KF5/KIOFileWidgets/KFileWidget" ++ kf5_test_library="libKF5KIOFileWidgets.so" + kf5_libdirs="$qt5_libdir $kf5_libdirs" + + dnl kf5 KDE4 support compatibility installed +-- +2.35.1 + diff --git a/libreoffice.changes b/libreoffice.changes index 6cc0b40..171e7fa 100644 --- a/libreoffice.changes +++ b/libreoffice.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Thu Feb 17 10:10:53 UTC 2022 - Christophe Giboudeaux + +- Add upstream change to fix KDE Frameworks detection (boo#1196017) + * 0001-configure.ac-Update-kf5-include-lib-check-to-work-wi.patch + ------------------------------------------------------------------- Fri Feb 14 10:22:01 UTC 2022 - Danilo Spinella diff --git a/libreoffice.spec b/libreoffice.spec index 865d603..6ca244f 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -104,6 +104,8 @@ Patch3: mediawiki-no-broken-help.diff Patch6: gcc11-fix-error.patch Patch9: fix_math_desktop_file.patch Patch10: fix_gtk_popover_on_3.20.patch +# PATCH-FIX-UPSTREAM boo#1196017 Fix KDE Frameworks 5.91 detection +Patch11: 0001-configure.ac-Update-kf5-include-lib-check-to-work-wi.patch # Build with java 8 Patch101: 0001-Revert-java-9-changes.patch # try to save space by using hardlinks @@ -1006,6 +1008,7 @@ Provides %{langname} translations and additional resources (help files, etc.) fo %patch3 %patch6 -p1 %patch9 -p1 +%patch11 -p1 %if 0%{?suse_version} < 1500 %patch10 -p1 %patch101 -p1 @@ -1573,11 +1576,17 @@ exit 0 %files -f file-lists/sdk_doc_list.txt sdk-doc %files calc-extensions +%dir %{_libdir}/%{name} +%dir %{_libdir}/%{name}/share +%dir %{_libdir}/%{name}/share/extensions %{_libdir}/%{name}/share/extensions/ConvertTextToNumber %{_libdir}/%{name}/share/extensions/nlpsolver %{_libdir}/%{name}/share/extensions/numbertext %files writer-extensions +%dir %{_libdir}/%{name} +%dir %{_libdir}/%{name}/share +%dir %{_libdir}/%{name}/share/extensions %{_libdir}/%{name}/share/extensions/wiki-publisher %files icon-themes