Merge pull request #2 from import/libreoffice:rosa2016.1

Backports and update
This commit is contained in:
djam 2021-06-22 20:35:29 +00:00
commit c4adb52875
18 changed files with 808 additions and 2847 deletions

View file

@ -1,31 +1,29 @@
sources:
048751f3271906db5126ab76870444c4-commons-codec-1.9-src.zip: 885cc4b6c9472d95e2515e777f6018a90657e974
09ec2dac030e1dcd5ef7fa1692691dc0-Sun-ODF-Template-Pack-hu_1.0.0.oxt: 42c9235d7f876645ea6553770e7572c1b0b8609a
17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip: 7168b0f40aa5c72267899601c116d2348d2f56ec
185d60944ea767075d27247c3162b3bc-unowinreg.dll: 0619ed3a89644bef318df67db12045b2b590585b
1be202fbbbc13f10592a98f70a4a87fb-OOOP-templates-pack-2.9.0.0.zip: 1dd5bd9962e851b5e487b0c2033b5a8951aaefad
1f467e5bb703f12cbbb09d5cf67ecf4a-converttexttonumber-1-5-0.oxt: 206a371b46a3d991722b059b5d6f3bb29f1fc48b
2c9b0f83ed5890af02c0df1c1776f39b-commons-httpclient-3.1-src.tar.gz: 5c604f102e0716597b3d2659ac3e77f80a02f22d
35c94d2df8893241173de1d16b6034c0-swingExSrc.zip: 1acea86fd399ed7817879d36370d3d1f8b109050
472ffb92d82cf502be039203c606643d-Sun-ODF-Template-Pack-en-US_1.0.0.oxt: d2b6a076b40d8d517075e52220ddd8f89f655c8f
4ad003e7bbda5715f5f38fde1f707af2-Sun-ODF-Template-Pack-es_1.0.0.oxt: bf25bef71f72a4622089c85958bfd6c58d8516a6
4b87018f7fff1d054939d19920b751a0-collada2gltf-master-cb1d97788a.tar.bz2: 1169780b4a0c515b23b96c913fd9bc52ceb7fb39
53ca5e56ccd4cab3693ad32c6bd13343-Sun-ODF-Template-Pack-de_1.0.0.oxt: 4fea33622d89c7ac62053e5ee3616cfe504e0f14
798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip: 8a90669029e107b61953b90ba11545fef586c2ca
8ab049135b2d15313da5d9f0656894a1-commons-lang3-3.3.1-src.tar.gz: c78ddd06845e267ba5bec20a38430f66eec3e0e4
884ed41809687c3e168fc7c19b16585149ff058eca79acbf3ee784f6630704cc-opens___.ttf: d336802a36ed2c87dd243e7c2f1d0542dace5cca
Mandriva-Rosa_Icons.tar.bz2: 53448c079fcb3008d1fdec7f95305fe392460c1f
OpenCOLLADA-master-6509aa13af.tar.bz2: c4f5760a1d21213dc52e2cf3ad9c0b9112585f36
a53080dc876edcddb26eb4c3c7537469-Sun-ODF-Template-Pack-fr_1.0.0.oxt: d831314cf4c74f5afb3b37ee718dd58f981b97a8
a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip: 2d49e11b0b711970f494294dc3698f05eb294853
af9314c5972d95a5d6da23ffad818f68-OOOP-gallery-pack-2.8.0.0.zip: c71f095bf032e29ab0afc277fd2718e592ba6ba4
apache-ant-1.10.5-bin.tar.bz2: 0a8b4cfc3c77bdd270fe1a618465de31e12fdbe5
apache-ant-1.8.1-bin.tar.bz2: 0e0359f04b3d84fed75b3a1ab02cbc415c8864a1
b33775feda3bcf823cad7ac361fd49a6-Sun-ODF-Template-Pack-it_1.0.0.oxt: 27847d6c320297905303ca7d2a45dbd0c492f705
b632bdd25649cc4067bcb410bae23d2b-hunart_0.3.oxt: a476a199de32a32221132c8e77fad96c88616b08
b63e6340a02ff1cacfeadb2c42286161-JLanguageTool-1.7.0.tar.bz2: aa8faa4f9e6721eed9bc6878862d74d0cb23251c
b7cae45ad2c23551fd6ccb8ae2c1f59e-numbertext_0.9.5.oxt: bdec3915c01cd60e20892376aa5e5a0d3980c389
commons-logging-1.2-src.tar.gz: 0a134d01e9aeb09b33f4c7450fb41abb7bed9db6
libreoffice-6.0.7.3.tar.xz: d4add57e7fb837ae6376bdd418704530e4950aa2
libreoffice-dictionaries-6.0.7.3.tar.xz: 92bf00132beb22abbb6515b7b0060347203ce08a
libreoffice-help-6.0.7.3.tar.xz: 9ace766d0965cfe7f29d9893c1af5cc852b93db6
libreoffice-translations-6.0.7.3.tar.xz: b364e99b615190256bfb271407c2ad4c184ffbfa
pdfium-3235.tar.bz2: 10a6525bf0c014556766a19912fa6a80849a9117
libreoffice-6.3.6.2.tar.xz: 79aa683b98c465ce570652852faead9f973f8d95
libreoffice-dictionaries-6.3.6.2.tar.xz: 6c2741ecf0d37efc8413ffcd8b7d331b505b64be
libreoffice-help-6.3.6.2.tar.xz: f6f94206dad1038c4369610a90e1727e4266ea80
libreoffice-translations-6.3.6.2.tar.xz: 52b483e3d868345f7aa9ed187fd8b59d713d24fc
lxml-4.1.1.tgz: 154279bc5939d7099697887ea15c5ca921abeaeb
pdfium-3794.tar.bz2: 41ff3c2291c99db71ddca1873115b7fc0bfb5065

View file

@ -0,0 +1,31 @@
From a1c8189f02ee694f049b2e04b9baffab3fafea22 Mon Sep 17 00:00:00 2001
From: Mikhail Novosyolov <m.novosyolov@rosalinux.ru>
Date: Sun, 5 Apr 2020 20:53:46 +0300
Subject: [PATCH] Force icons in menus in GTK+3 VCLs
By default both IsSystemIconsInMenus and ShowIconsInMenues are true,
but IsSystemIconsInMenus being true forces taking GTK 3 default to not show icons.
I beleive that icons help people to use menus.
Also, we are migrating users from libreoffice-kde4 to libreoffice-gtk3-kde5,
kde4 did show icons, so we would better keep them on.
---
officecfg/registry/schema/org/openoffice/Office/Common.xcs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/officecfg/registry/schema/org/openoffice/Office/Common.xcs b/officecfg/registry/schema/org/openoffice/Office/Common.xcs
index 130726976..4b8c9055d 100644
--- a/officecfg/registry/schema/org/openoffice/Office/Common.xcs
+++ b/officecfg/registry/schema/org/openoffice/Office/Common.xcs
@@ -2909,7 +2909,7 @@
<desc>Indicates whether icons in the office menus should
shown/hidden by following the System theme.</desc>
</info>
- <value>true</value>
+ <value>false</value>
</prop>
<prop oor:name="ShowIconsInMenues" oor:type="xs:boolean" oor:nillable="false">
<!-- OldPath: General/View -->
--
2.20.1

View file

@ -0,0 +1,61 @@
From 6fbfad6b00e8c35346ee59cd32a0d7ccc0d8c19c Mon Sep 17 00:00:00 2001
From: Stephan Bergmann <sbergman@redhat.com>
Date: Sat, 22 Feb 2020 17:29:15 +0100
Subject: [PATCH] Adapt o3tl::span to removal of std::span::cbegin et al
<https://cplusplus.github.io/LWG/issue3320> "span::cbegin/cend methods produce
different results than std::[ranges::]cbegin/cend", as implemented now in
<https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;a=commit;
h=247f410b83797a1840573840cc2a539ef9d7f96b> "libstdc++: Remove std::span::cbegin
and std::span::cend (LWG 3320)".
Turns out we only used the removed member functions in o3tl/qa/test-span.cxx.
Change-Id: I6c73797594b4e0e753a88840033d54961e271df5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89261
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
---
include/o3tl/span.hxx | 7 -------
o3tl/qa/test-span.cxx | 6 ------
2 files changed, 13 deletions(-)
--- libreoffice-6.3.5.2/include/o3tl/span.hxx.orig 2020-04-04 16:27:13.798399505 +0300
+++ libreoffice-6.3.5.2/include/o3tl/span.hxx 2020-04-04 16:28:05.080888607 +0300
@@ -60,18 +60,11 @@
constexpr iterator begin() const noexcept { return data_; }
constexpr iterator end() const noexcept { return begin() + size(); }
- constexpr const_iterator cbegin() const noexcept { return begin(); }
- constexpr const_iterator cend() const noexcept { return end(); }
-
reverse_iterator rbegin() const noexcept
{ return reverse_iterator(end()); }
reverse_iterator rend() const noexcept
{ return reverse_iterator(begin()); }
- constexpr const_reverse_iterator crbegin() const noexcept
- { return rbegin(); }
- constexpr const_reverse_iterator crend() const noexcept { return rend(); }
-
constexpr index_type size() const noexcept { return size_; }
constexpr reference operator [](index_type pos) const {
--- libreoffice-6.3.5.2/o3tl/qa/test-span.cxx.orig 2020-04-04 16:27:13.802399388 +0300
+++ libreoffice-6.3.5.2/o3tl/qa/test-span.cxx 2020-04-04 16:30:35.256474807 +0300
@@ -33,15 +33,9 @@
CPPUNIT_ASSERT_EQUAL(1, *v.begin());
CPPUNIT_ASSERT_EQUAL(
o3tl::span<int>::difference_type(3), v.end() - v.begin());
- CPPUNIT_ASSERT_EQUAL(1, *v.cbegin());
- CPPUNIT_ASSERT_EQUAL(
- o3tl::span<int>::difference_type(3), v.cend() - v.cbegin());
CPPUNIT_ASSERT_EQUAL(3, *v.rbegin());
CPPUNIT_ASSERT_EQUAL(
o3tl::span<int>::difference_type(3), v.rend() - v.rbegin());
- CPPUNIT_ASSERT_EQUAL(3, *v.crbegin());
- CPPUNIT_ASSERT_EQUAL(
- o3tl::span<int>::difference_type(3), v.crend() - v.crbegin());
CPPUNIT_ASSERT_EQUAL(o3tl::span<int>::index_type(3), v.size());
CPPUNIT_ASSERT(!v.empty());
CPPUNIT_ASSERT_EQUAL(2, v[1]);

View file

@ -1,36 +0,0 @@
Description: Explictly exclude LibreLogo from XScript usage
Author: Caolán McNamara <caolanm@redhat.com>
Upstream Commit: https://cgit.freedesktop.org/libreoffice/core/commit/?id=cb0024e3668979dfdef44db5aa15ddfaf035e695
Bug: https://www.libreoffice.org/about-us/security/advisories/cve-2019-9848/
diff --git a/sfx2/source/doc/objmisc.cxx b/sfx2/source/doc/objmisc.cxx
index a5e62da8c..02d79c356 100644
--- a/sfx2/source/doc/objmisc.cxx
+++ b/sfx2/source/doc/objmisc.cxx
@@ -1347,6 +1347,16 @@ namespace
}
}
+namespace {
+
+// don't allow LibreLogo to be used with our mouseover/etc dom-alike events
+bool UnTrustedScript(const OUString& rScriptURL)
+{
+ return rScriptURL.startsWithIgnoreAsciiCase("vnd.sun.star.script:LibreLogo");
+}
+
+}
+
ErrCode SfxObjectShell::CallXScript( const Reference< XInterface >& _rxScriptContext, const OUString& _rScriptURL,
const Sequence< Any >& aParams, Any& aRet, Sequence< sal_Int16 >& aOutParamIndex, Sequence< Any >& aOutParam, bool bRaiseError, const css::uno::Any* pCaller )
{
@@ -1359,6 +1369,9 @@ ErrCode SfxObjectShell::CallXScript( const Reference< XInterface >& _rxScriptCon
if ( bIsDocumentScript && !lcl_isScriptAccessAllowed_nothrow( _rxScriptContext ) )
return ERRCODE_IO_ACCESSDENIED;
+ if ( UnTrustedScript(_rScriptURL) )
+ return ERRCODE_IO_ACCESSDENIED;
+
bool bCaughtException = false;
Any aException;
try

View file

@ -1,141 +0,0 @@
Description: More uses of referer URL with SvxBrushItem
Author: Stephan Bergmann <sbergman@redhat.com>
Upstream Commit: https://cgit.freedesktop.org/libreoffice/core/commit/?id=b518882de8213ef71a8003f95fbdf7689069c06d
Bug: https://www.libreoffice.org/about-us/security/advisories/cve-2019-9849/
diff --git a/sw/inc/unosett.hxx b/sw/inc/unosett.hxx
index 295eb06fe..185b5bcb4 100644
--- a/sw/inc/unosett.hxx
+++ b/sw/inc/unosett.hxx
@@ -210,7 +210,7 @@ public:
static css::uno::Sequence<css::beans::PropertyValue> GetPropertiesForNumFormat(
const SwNumFormat& rFormat, OUString const& rCharFormatName,
- OUString const* pHeadingStyleName);
+ OUString const* pHeadingStyleName, OUString const & referer);
static void SetPropertiesToNumFormat(
SwNumFormat & aFormat,
OUString & rCharStyleName,
diff --git a/sw/source/core/text/porfld.cxx b/sw/source/core/text/porfld.cxx
index 777165819..b29cee3b5 100644
--- a/sw/source/core/text/porfld.cxx
+++ b/sw/source/core/text/porfld.cxx
@@ -755,7 +755,7 @@ SwBulletPortion::SwBulletPortion( const sal_Unicode cBullet,
SwGrfNumPortion::SwGrfNumPortion(
const OUString& rGraphicFollowedBy,
- const SvxBrushItem* pGrfBrush,
+ const SvxBrushItem* pGrfBrush, OUString const & referer,
const SwFormatVertOrient* pGrfOrient, const Size& rGrfSize,
const bool bLft, const bool bCntr, const sal_uInt16 nMinDst,
const bool bLabelAlignmentPosAndSpaceModeActive ) :
@@ -769,7 +769,7 @@ SwGrfNumPortion::SwGrfNumPortion(
if( pGrfBrush )
{
*pBrush = *pGrfBrush;
- const Graphic* pGraph = pGrfBrush->GetGraphic();
+ const Graphic* pGraph = pGrfBrush->GetGraphic(referer);
if( pGraph )
SetAnimated( pGraph->IsAnimated() );
else
diff --git a/sw/source/core/text/porfld.hxx b/sw/source/core/text/porfld.hxx
index 38fc08993..4ecf25e7d 100644
--- a/sw/source/core/text/porfld.hxx
+++ b/sw/source/core/text/porfld.hxx
@@ -168,6 +168,7 @@ class SwGrfNumPortion : public SwNumberPortion
public:
SwGrfNumPortion( const OUString& rGraphicFollowedBy,
const SvxBrushItem* pGrfBrush,
+ OUString const & referer,
const SwFormatVertOrient* pGrfOrient,
const Size& rGrfSize,
const bool bLeft,
diff --git a/sw/source/core/text/txtfld.cxx b/sw/source/core/text/txtfld.cxx
index 6b2b93886..14e396869 100644
--- a/sw/source/core/text/txtfld.cxx
+++ b/sw/source/core/text/txtfld.cxx
@@ -52,6 +52,7 @@
#include <flddat.hxx>
#include <fmtautofmt.hxx>
#include <IDocumentSettingAccess.hxx>
+#include <sfx2/docfile.hxx>
#include <svl/itemiter.hxx>
static bool lcl_IsInBody( SwFrame const *pFrame )
@@ -478,8 +479,17 @@ SwNumberPortion *SwTextFormatter::NewNumberPortion( SwTextFormatInfo &rInf ) con
if( SVX_NUM_BITMAP == rNumFormat.GetNumberingType() )
{
+ OUString referer;
+ if (auto const sh1 = rInf.GetVsh()) {
+ if (auto const doc = sh1->GetDoc()) {
+ auto const sh2 = doc->GetPersist();
+ if (sh2 != nullptr && sh2->HasName()) {
+ referer = sh2->GetMedium()->GetName();
+ }
+ }
+ }
pRet = new SwGrfNumPortion( pTextNd->GetLabelFollowedBy(),
- rNumFormat.GetBrush(),
+ rNumFormat.GetBrush(), referer,
rNumFormat.GetGraphicOrientation(),
rNumFormat.GetGraphicSize(),
bLeft, bCenter, nMinDist,
diff --git a/sw/source/core/unocore/unosett.cxx b/sw/source/core/unocore/unosett.cxx
index f7376b936..218afbdd9 100644
--- a/sw/source/core/unocore/unosett.cxx
+++ b/sw/source/core/unocore/unosett.cxx
@@ -57,6 +57,7 @@
#include <vcl/font.hxx>
#include <editeng/flstitem.hxx>
#include <vcl/metric.hxx>
+#include <sfx2/docfile.hxx>
#include <svtools/ctrltool.hxx>
#include <vcl/svapp.hxx>
#include <toolkit/helper/vclunohelper.hxx>
@@ -1316,13 +1317,21 @@ uno::Sequence<beans::PropertyValue> SwXNumberingRules::GetNumberingRuleByIndex(
SwStyleNameMapper::FillProgName(sValue, aUString, SwGetPoolIdFromName::TxtColl);
}
- return GetPropertiesForNumFormat(rFormat, CharStyleName, (pDocShell) ? & aUString : nullptr);
+ OUString referer;
+ if (pDoc != nullptr) {
+ auto const sh = pDoc->GetPersist();
+ if (sh != nullptr && sh->HasName()) {
+ referer = sh->GetMedium()->GetName();
+ }
+ }
+ return GetPropertiesForNumFormat(
+ rFormat, CharStyleName, pDocShell ? & aUString : nullptr, referer);
}
uno::Sequence<beans::PropertyValue> SwXNumberingRules::GetPropertiesForNumFormat(
const SwNumFormat& rFormat, OUString const& rCharFormatName,
- OUString const*const pHeadingStyleName)
+ OUString const*const pHeadingStyleName, OUString const & referer)
{
bool bChapterNum = pHeadingStyleName != nullptr;
@@ -1454,7 +1463,7 @@ uno::Sequence<beans::PropertyValue> SwXNumberingRules::GetPropertiesForNumFormat
//graphicbitmap
const Graphic* pGraphic = nullptr;
if(pBrush )
- pGraphic = pBrush->GetGraphic();
+ pGraphic = pBrush->GetGraphic(referer);
if(pGraphic)
{
uno::Reference<awt::XBitmap> xBmp = VCLUnoHelper::CreateBitmap( pGraphic->GetBitmapEx() );
diff --git a/sw/source/uibase/config/StoredChapterNumbering.cxx b/sw/source/uibase/config/StoredChapterNumbering.cxx
index c575863f0..b972ec5ed 100644
--- a/sw/source/uibase/config/StoredChapterNumbering.cxx
+++ b/sw/source/uibase/config/StoredChapterNumbering.cxx
@@ -129,7 +129,7 @@ public:
OUString dummy; // pass in empty HeadingStyleName - can't import anyway
uno::Sequence<beans::PropertyValue> const ret(
SwXNumberingRules::GetPropertiesForNumFormat(
- *pNumFormat, *pCharStyleName, &dummy));
+ *pNumFormat, *pCharStyleName, &dummy, ""));
return uno::makeAny(ret);
}

View file

@ -1,206 +0,0 @@
Description: - expand LibreLogo check to global events
- decode url escape codes and check each path segment
- keep name percent-encoded
- expand pyuno path separators
- construct final url from parsed output
Authors: - Caolán McNamara <caolanm@redhat.com>
- Stephan Bergmann <sbergman@redhat.com>
diff --git a/include/sfx2/objsh.hxx b/include/sfx2/objsh.hxx
index b51498905..35b3091e4 100644
--- a/include/sfx2/objsh.hxx
+++ b/include/sfx2/objsh.hxx
@@ -397,6 +397,8 @@ public:
*/
bool AdjustMacroMode();
+ static bool UnTrustedScript(const OUString& rScriptURL);
+
SvKeyValueIterator* GetHeaderAttributes();
void ClearHeaderAttributesForSourceViewHack();
void SetHeaderAttributesForSourceViewHack();
diff --git a/scripting/source/protocolhandler/scripthandler.cxx b/scripting/source/protocolhandler/scripthandler.cxx
index 150ffa052..751099d92 100644
--- a/scripting/source/protocolhandler/scripthandler.cxx
+++ b/scripting/source/protocolhandler/scripthandler.cxx
@@ -47,6 +47,7 @@
#include <com/sun/star/uno/XComponentContext.hpp>
#include <com/sun/star/uri/XUriReference.hpp>
+#include <com/sun/star/uri/XVndSunStarScriptUrlReference.hpp>
#include <com/sun/star/uri/UriReferenceFactory.hpp>
#include <memory>
@@ -133,8 +134,12 @@ void SAL_CALL ScriptProtocolHandler::dispatchWithNotification(
{
try
{
- bool bIsDocumentScript = ( aURL.Complete.indexOf( "document" ) !=-1 );
- // TODO: isn't this somewhat strange? This should be a test for a location=document parameter, shouldn't it?
+ css::uno::Reference<css::uri::XUriReferenceFactory> urifac(
+ css::uri::UriReferenceFactory::create(m_xContext));
+ css::uno::Reference<css::uri::XVndSunStarScriptUrlReference> uri(
+ urifac->parse(aURL.Complete), css::uno::UNO_QUERY_THROW);
+ auto const loc = uri->getParameter("location");
+ bool bIsDocumentScript = loc == "document";
if ( bIsDocumentScript )
{
diff --git a/scripting/source/pyprov/pythonscript.py b/scripting/source/pyprov/pythonscript.py
index f5aa21733..316c5012c 100644
--- a/scripting/source/pyprov/pythonscript.py
+++ b/scripting/source/pyprov/pythonscript.py
@@ -219,10 +219,18 @@ class MyUriHelper:
# path to the .py file + "$functionname, arguments, etc
xStorageUri = self.m_uriRefFac.parse(scriptURI)
- sStorageUri = xStorageUri.getName().replace( "|", "/" );
+ # getName will apply url-decoding to the name, so encode back
+ sStorageUri = xStorageUri.getName().replace("%", "%25")
+ sStorageUri = sStorageUri.replace( "|", "/" )
# path to the .py file, relative to the base
- sFileUri = sStorageUri[0:sStorageUri.find("$")]
+ funcNameStart = sStorageUri.find("$")
+ if funcNameStart != -1:
+ sFileUri = sStorageUri[0:funcNameStart]
+ sFuncName = sStorageUri[funcNameStart+1:]
+ else:
+ sFileUri = sStorageUri
+
xFileUri = self.m_uriRefFac.parse(sFileUri)
if not xFileUri:
message = "pythonscript: invalid relative uri '" + sFileUri+ "'"
@@ -239,7 +247,9 @@ class MyUriHelper:
log.debug( message )
raise RuntimeException( message )
- ret = sBaseUri + sStorageUri
+ ret = sAbsScriptUri
+ if funcNameStart != -1:
+ ret = ret + "$" + sFuncName
log.debug( "converting scriptURI="+scriptURI + " to storageURI=" + ret )
return ret
except UnoException as e:
diff --git a/sfx2/source/doc/objmisc.cxx b/sfx2/source/doc/objmisc.cxx
index 02d79c356..a508aea86 100644
--- a/sfx2/source/doc/objmisc.cxx
+++ b/sfx2/source/doc/objmisc.cxx
@@ -41,6 +41,8 @@
#include <com/sun/star/script/provider/XScriptProvider.hpp>
#include <com/sun/star/script/provider/XScriptProviderSupplier.hpp>
#include <com/sun/star/ucb/SimpleFileAccess.hpp>
+#include <com/sun/star/uri/UriReferenceFactory.hpp>
+#include <com/sun/star/uri/XVndSunStarScriptUrlReference.hpp>
#include <com/sun/star/util/XModifiable.hpp>
#include <toolkit/helper/vclunohelper.hxx>
@@ -1347,14 +1349,36 @@ namespace
}
}
-namespace {
-
// don't allow LibreLogo to be used with our mouseover/etc dom-alike events
-bool UnTrustedScript(const OUString& rScriptURL)
+bool SfxObjectShell::UnTrustedScript(const OUString& rScriptURL)
{
- return rScriptURL.startsWithIgnoreAsciiCase("vnd.sun.star.script:LibreLogo");
-}
+ if (!rScriptURL.startsWith("vnd.sun.star.script:"))
+ return false;
+
+ // ensure URL Escape Codes are decoded
+ css::uno::Reference<css::uri::XUriReference> uri(
+ css::uri::UriReferenceFactory::create(comphelper::getProcessComponentContext())->parse(rScriptURL));
+ css::uno::Reference<css::uri::XVndSunStarScriptUrl> sfUri(uri, css::uno::UNO_QUERY);
+
+ if (!sfUri.is())
+ return false;
+
+ // pyuno encodes path separator as |
+ OUString sScript = sfUri->getName().replace('|', '/');
+ // check if any path portion matches LibreLogo and ban it if it does
+ sal_Int32 nIndex = 0;
+ do
+ {
+ OUString aToken = sScript.getToken(0, '/', nIndex);
+ if (aToken.startsWithIgnoreAsciiCase("LibreLogo"))
+ {
+ return true;
+ }
+ }
+ while (nIndex >= 0);
+
+ return false;
}
ErrCode SfxObjectShell::CallXScript( const Reference< XInterface >& _rxScriptContext, const OUString& _rScriptURL,
@@ -1363,19 +1387,22 @@ ErrCode SfxObjectShell::CallXScript( const Reference< XInterface >& _rxScriptCon
SAL_INFO("sfx", "in CallXScript" );
ErrCode nErr = ERRCODE_NONE;
- bool bIsDocumentScript = ( _rScriptURL.indexOf( "location=document" ) >= 0 );
- // TODO: we should parse the URL, and check whether there is a parameter with this name.
- // Otherwise, we might find too much.
- if ( bIsDocumentScript && !lcl_isScriptAccessAllowed_nothrow( _rxScriptContext ) )
- return ERRCODE_IO_ACCESSDENIED;
-
- if ( UnTrustedScript(_rScriptURL) )
- return ERRCODE_IO_ACCESSDENIED;
-
bool bCaughtException = false;
Any aException;
try
{
+ css::uno::Reference<css::uri::XUriReferenceFactory> urifac(
+ css::uri::UriReferenceFactory::create(comphelper::getProcessComponentContext()));
+ css::uno::Reference<css::uri::XVndSunStarScriptUrlReference> uri(
+ urifac->parse(_rScriptURL), css::uno::UNO_QUERY_THROW);
+ auto const loc = uri->getParameter("location");
+ bool bIsDocumentScript = loc == "document";
+ if ( bIsDocumentScript && !lcl_isScriptAccessAllowed_nothrow( _rxScriptContext ) )
+ return ERRCODE_IO_ACCESSDENIED;
+
+ if ( UnTrustedScript(_rScriptURL) )
+ return ERRCODE_IO_ACCESSDENIED;
+
// obtain/create a script provider
Reference< provider::XScriptProvider > xScriptProvider;
Reference< provider::XScriptProviderSupplier > xSPS( _rxScriptContext, UNO_QUERY );
diff --git a/sfx2/source/notify/eventsupplier.cxx b/sfx2/source/notify/eventsupplier.cxx
index 69076ad01..d18724d74 100644
--- a/sfx2/source/notify/eventsupplier.cxx
+++ b/sfx2/source/notify/eventsupplier.cxx
@@ -209,18 +209,24 @@ void SfxEvents_Impl::Execute( uno::Any const & aEventData, const document::Docum
else if (aType == "Service" ||
aType == "Script")
{
- if ( !aScript.isEmpty() )
+ bool bAllowed = false;
+ util::URL aURL;
+ if (!aScript.isEmpty())
{
- SfxViewFrame* pView = pDoc ?
- SfxViewFrame::GetFirst( pDoc ) :
- SfxViewFrame::Current();
-
uno::Reference < util::XURLTransformer > xTrans( util::URLTransformer::create( ::comphelper::getProcessComponentContext() ) );
- util::URL aURL;
aURL.Complete = aScript;
xTrans->parseStrict( aURL );
+ bAllowed = !SfxObjectShell::UnTrustedScript(aURL.Complete);
+ }
+
+ if (bAllowed)
+ {
+ SfxViewFrame* pView = pDoc ?
+ SfxViewFrame::GetFirst( pDoc ) :
+ SfxViewFrame::Current();
+
uno::Reference
< frame::XDispatchProvider > xProv;

View file

@ -1,34 +0,0 @@
Description: - an absolute uri is invalid input
- improve check for absolute URI
Authors: - Caolán McNamara <caolanm@redhat.com>
- Stephan Bergmann <sbergman@redhat.com>
diff --git a/scripting/source/pyprov/pythonscript.py b/scripting/source/pyprov/pythonscript.py
index 316c5012c..c46565949 100644
--- a/scripting/source/pyprov/pythonscript.py
+++ b/scripting/source/pyprov/pythonscript.py
@@ -237,6 +237,11 @@ class MyUriHelper:
log.debug( message )
raise RuntimeException( message )
+ if not xFileUri.hasRelativePath():
+ message = "pythonscript: an absolute uri is invalid '" + sFileUri+ "'"
+ log.debug( message )
+ raise RuntimeException( message )
+
# absolute path to the .py file
xAbsScriptUri = self.m_uriRefFac.makeAbsolute(xBaseUri, xFileUri, True, RETAIN)
sAbsScriptUri = xAbsScriptUri.getUriReference()
diff --git a/sfx2/source/doc/objmisc.cxx b/sfx2/source/doc/objmisc.cxx
index a508aea86..3ec10565b 100644
--- a/sfx2/source/doc/objmisc.cxx
+++ b/sfx2/source/doc/objmisc.cxx
@@ -1371,7 +1371,7 @@ bool SfxObjectShell::UnTrustedScript(const OUString& rScriptURL)
do
{
OUString aToken = sScript.getToken(0, '/', nIndex);
- if (aToken.startsWithIgnoreAsciiCase("LibreLogo"))
+ if (aToken.startsWithIgnoreAsciiCase("LibreLogo") || aToken.indexOf('~') != -1)
{
return true;
}

21
gtk3_kde5-priority.patch Normal file
View file

@ -0,0 +1,21 @@
--- libreoffice-6.3.5.2/vcl/source/app/salplug.cxx.orig2 2020-04-04 20:44:52.950045617 +0300
+++ libreoffice-6.3.5.2/vcl/source/app/salplug.cxx 2020-04-04 20:44:55.713958634 +0300
@@ -151,12 +151,15 @@
{
static const char* const pKDEFallbackList[] =
{
-#if ENABLE_KDE5
- "kde5",
-#endif
#if ENABLE_GTK3_KDE5
+// prefer gtk3_kde5 over kde5 because of maturity of gtk3 rendering;
+// based on kde4 vcl experience, I don't trust kde5 VCL,
+// and other people wrote about problems in it //mikhailnov
"gtk3_kde5",
#endif
+#if ENABLE_KDE5
+ "kde5",
+#endif
"gtk3", "gtk", "gen", nullptr
};

View file

@ -5,8 +5,8 @@ diff -urN libreoffice-5.2.1.2/sysui/desktop/menus/base.desktop libreoffice-5.2.1
Keywords=Data;SQL;
InitialPreference=5
StartupWMClass=libreoffice-base
-X-KDE-Protocols=file,http,ftp,webdav
+X-KDE-Protocols=file,http,webdav,smb,remote
-X-KDE-Protocols=file,http,ftp,webdav,webdavs
+X-KDE-Protocols=file,http,webdav,smb,remote,webdavs
Actions=NewDocument;
[Desktop Action NewDocument]
@ -17,8 +17,8 @@ diff -urN libreoffice-5.2.1.2/sysui/desktop/menus/calc.desktop libreoffice-5.2.1
Keywords=Accounting;Stats;OpenDocument Spreadsheet;Chart;Microsoft Excel;Microsoft Works;OpenOffice Calc;ods;xls;xlsx;
InitialPreference=5
StartupWMClass=libreoffice-calc
-X-KDE-Protocols=file,http,ftp,webdav
+X-KDE-Protocols=file,http,webdav,smb,remote
-X-KDE-Protocols=file,http,ftp,webdav,webdavs
+X-KDE-Protocols=file,http,webdav,smb,remote,webdavs
Actions=NewDocument;
[Desktop Action NewDocument]
@ -29,8 +29,8 @@ diff -urN libreoffice-5.2.1.2/sysui/desktop/menus/draw.desktop libreoffice-5.2.1
Keywords=Vector;Schema;Diagram;Layout;OpenDocument Graphics;Microsoft Publisher;Microsoft Visio;Corel Draw;cdr;odg;svg;pdf;vsd;
InitialPreference=5
StartupWMClass=libreoffice-draw
-X-KDE-Protocols=file,http,ftp,webdav
+X-KDE-Protocols=file,http,webdav,smb,remote
-X-KDE-Protocols=file,http,ftp,webdav,webdavs
+X-KDE-Protocols=file,http,webdav,smb,remote,webdavs
Actions=NewDocument;
[Desktop Action NewDocument]
@ -41,8 +41,8 @@ diff -urN libreoffice-5.2.1.2/sysui/desktop/menus/impress.desktop libreoffice-5.
Keywords=Slideshow;Slides;OpenDocument Presentation;Microsoft PowerPoint;Microsoft Works;OpenOffice Impress;odp;ppt;pptx;
InitialPreference=5
StartupWMClass=libreoffice-impress
-X-KDE-Protocols=file,http,ftp,webdav
+X-KDE-Protocols=file,http,webdav,smb,remote
-X-KDE-Protocols=file,http,ftp,webdav,webdavs
+X-KDE-Protocols=file,http,webdav,smb,remote,webdavs
Actions=NewDocument;
[Desktop Action NewDocument]
@ -53,20 +53,11 @@ diff -urN libreoffice-5.2.1.2/sysui/desktop/menus/math.desktop libreoffice-5.2.1
Keywords=Equation;OpenDocument Formula;Formula;odf;MathML;
InitialPreference=5
StartupWMClass=libreoffice-math
-X-KDE-Protocols=file,http,ftp,webdav
+X-KDE-Protocols=file,http,webdav,smb,remote
-X-KDE-Protocols=file,http,ftp,webdav,webdavs
+X-KDE-Protocols=file,http,webdav,smb,remote,webdavs
Actions=NewDocument;
[Desktop Action NewDocument]
diff -urN libreoffice-5.2.1.2/sysui/desktop/menus/qstart.desktop libreoffice-5.2.1.2-patched/sysui/desktop/menus/qstart.desktop
--- libreoffice-5.2.1.2/sysui/desktop/menus/qstart.desktop 2016-08-25 10:26:36.000000000 +1000
+++ libreoffice-5.2.1.2-patched/sysui/desktop/menus/qstart.desktop 2016-09-06 12:22:41.354727943 +1000
@@ -25,4 +25,4 @@
Name=%PRODUCTNAME Quickstarter
Comment=Hook for quickstarter startup
X-GIO-NoFuse=true
-X-KDE-Protocols=file,http,ftp,webdav
+X-KDE-Protocols=file,http,webdav,smb,remote
diff -urN libreoffice-5.2.1.2/sysui/desktop/menus/startcenter.desktop libreoffice-5.2.1.2-patched/sysui/desktop/menus/startcenter.desktop
--- libreoffice-5.2.1.2/sysui/desktop/menus/startcenter.desktop 2016-08-25 10:26:36.000000000 +1000
+++ libreoffice-5.2.1.2-patched/sysui/desktop/menus/startcenter.desktop 2016-09-06 12:22:41.354727943 +1000
@ -74,8 +65,8 @@ diff -urN libreoffice-5.2.1.2/sysui/desktop/menus/startcenter.desktop libreoffic
StartupNotify=true
X-GIO-NoFuse=true
StartupWMClass=libreoffice-startcenter
-X-KDE-Protocols=file,http,ftp,webdav
+X-KDE-Protocols=file,http,webdav,smb,remote
-X-KDE-Protocols=file,http,ftp,webdav,webdavs
+X-KDE-Protocols=file,http,webdav,smb,remote,webdavs
##Define Actions
Actions=Writer;Calc;Impress;Draw;Base;Math;
@ -86,8 +77,8 @@ diff -urN libreoffice-5.2.1.2/sysui/desktop/menus/writer.desktop libreoffice-5.2
Keywords=Text;Letter;Fax;Document;OpenDocument Text;Microsoft Word;Microsoft Works;Lotus WordPro;OpenOffice Writer;CV;odt;doc;docx;rtf;
InitialPreference=5
StartupWMClass=libreoffice-writer
-X-KDE-Protocols=file,http,ftp,webdav
+X-KDE-Protocols=file,http,webdav,smb,remote
-X-KDE-Protocols=file,http,ftp,webdav,webdavs
+X-KDE-Protocols=file,http,webdav,smb,remote,webdavs
Actions=NewDocument;
[Desktop Action NewDocument]
@ -98,5 +89,5 @@ diff -urN libreoffice-5.2.1.2/sysui/desktop/menus/xsltfilter.desktop libreoffice
NoDisplay=true
StartupNotify=true
X-GIO-NoFuse=true
-X-KDE-Protocols=file,http,ftp,webdav
+X-KDE-Protocols=file,http,webdav,smb,remote
-X-KDE-Protocols=file,http,ftp,webdav,webdavs
+X-KDE-Protocols=file,http,webdav,smb,remote,webdavs

View file

@ -1,19 +0,0 @@
diff -urN libreoffice-5.4.0.1/vcl/unx/kde4/KDESalGraphics.cxx libreoffice-5.4.0.1-patched/vcl/unx/kde4/KDESalGraphics.cxx
--- libreoffice-5.4.0.1/vcl/unx/kde4/KDESalGraphics.cxx 2017-06-22 13:47:10.000000000 +0300
+++ libreoffice-5.4.0.1-patched/vcl/unx/kde4/KDESalGraphics.cxx 2017-07-07 20:59:40.651469448 +0300
@@ -138,8 +138,13 @@
option->state |= state;
option->rect = image->rect();
- QPainter painter(image);
- QApplication::style()->drawComplexControl(element, option, &painter);
+ // Hack: Don't display tiny useless scrollbars
+ // Impress is known to crash when adding effects (segfault is triggered by 15x18 scrollbar)
+ if (!((option->type == QStyleOption::SO_Slider) && ((option->rect.width() * option->rect.height()) < 300)))
+ {
+ QPainter painter(image);
+ QApplication::style()->drawComplexControl(element, option, &painter);
+ }
}
void lcl_drawFrame( QStyle::PrimitiveElement element, QImage* image, QStyle::State const & state,

View file

@ -1,12 +0,0 @@
diff -urN libreoffice-5.4.3.1/vcl/source/app/IconThemeSelector.cxx libreoffice-5.4.3.1-patched/vcl/source/app/IconThemeSelector.cxx
--- libreoffice-5.4.3.1/vcl/source/app/IconThemeSelector.cxx 2017-10-18 04:42:39.000000000 +1000
+++ libreoffice-5.4.3.1-patched/vcl/source/app/IconThemeSelector.cxx 2017-11-16 00:25:30.922971263 +1000
@@ -16,7 +16,7 @@
namespace vcl {
-/*static*/ const OUStringLiteral IconThemeSelector::FALLBACK_ICON_THEME_ID("tango");
+/*static*/ const OUStringLiteral IconThemeSelector::FALLBACK_ICON_THEME_ID("breeze");
namespace {

View file

@ -1,6 +1,6 @@
diff -urN libreoffice-5.3.1.1/sysui/desktop/menus/base.desktop libreoffice-5.3.1.1-patched/sysui/desktop/menus/base.desktop
--- libreoffice-5.3.1.1/sysui/desktop/menus/base.desktop 2017-02-20 16:24:34.000000000 +0300
+++ libreoffice-5.3.1.1-patched/sysui/desktop/menus/base.desktop 2017-03-12 14:41:46.552237494 +0300
diff -urN libreoffice-6.2.8.2/sysui/desktop/menus/base.desktop libreoffice-6.2.8.2-patched/sysui/desktop/menus/base.desktop
--- libreoffice-6.2.8.2/sysui/desktop/menus/base.desktop 2019-10-10 14:27:52.000000000 +0300
+++ libreoffice-6.2.8.2-patched/sysui/desktop/menus/base.desktop 2019-10-15 15:22:51.862066911 +0300
@@ -20,7 +20,7 @@
Terminal=false
Icon=base
@ -10,9 +10,9 @@ diff -urN libreoffice-5.3.1.1/sysui/desktop/menus/base.desktop libreoffice-5.3.1
Exec=${UNIXBASISROOTNAME} --base %%FILE%%
MimeType=application/vnd.oasis.opendocument.database;application/vnd.sun.xml.base;
Name=%PRODUCTNAME Base
diff -Naur libreoffice-5.4.5.1/sysui/desktop/menus/calc.desktop-orig libreoffice-5.4.5.1/sysui/desktop/menus/calc.desktop
--- libreoffice-5.4.5.1/sysui/desktop/menus/calc.desktop-orig 2018-01-30 20:22:07.000000000 +0300
+++ libreoffice-5.4.5.1/sysui/desktop/menus/calc.desktop 2018-02-12 12:18:52.915474626 +0300
diff -urN libreoffice-6.2.8.2/sysui/desktop/menus/calc.desktop libreoffice-6.2.8.2-patched/sysui/desktop/menus/calc.desktop
--- libreoffice-6.2.8.2/sysui/desktop/menus/calc.desktop 2019-10-10 14:27:52.000000000 +0300
+++ libreoffice-6.2.8.2-patched/sysui/desktop/menus/calc.desktop 2019-10-15 15:23:12.905195146 +0300
@@ -20,7 +20,7 @@
Terminal=false
Icon=calc
@ -22,9 +22,9 @@ diff -Naur libreoffice-5.4.5.1/sysui/desktop/menus/calc.desktop-orig libreoffice
Exec=${UNIXBASISROOTNAME} --calc %%FILE%%
MimeType=application/vnd.oasis.opendocument.spreadsheet;application/vnd.oasis.opendocument.spreadsheet-template;application/vnd.sun.xml.calc;application/vnd.sun.xml.calc.template;application/msexcel;application/vnd.ms-excel;application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;application/vnd.ms-excel.sheet.macroEnabled.12;application/vnd.openxmlformats-officedocument.spreadsheetml.template;application/vnd.ms-excel.template.macroEnabled.12;application/vnd.ms-excel.sheet.binary.macroEnabled.12;text/csv;application/x-dbf;text/spreadsheet;application/csv;application/excel;application/tab-separated-values;application/vnd.lotus-1-2-3;application/vnd.oasis.opendocument.chart;application/vnd.oasis.opendocument.chart-template;application/x-dbase;application/x-dos_ms_excel;application/x-excel;application/x-msexcel;application/x-ms-excel;application/x-quattropro;application/x-123;text/comma-separated-values;text/tab-separated-values;text/x-comma-separated-values;text/x-csv;application/vnd.oasis.opendocument.spreadsheet-flat-xml;application/vnd.ms-works;application/clarisworks;application/x-iwork-numbers-sffnumbers;application/x-starcalc;
Name=%PRODUCTNAME Calc
diff -urN libreoffice-5.3.1.1/sysui/desktop/menus/draw.desktop libreoffice-5.3.1.1-patched/sysui/desktop/menus/draw.desktop
--- libreoffice-5.3.1.1/sysui/desktop/menus/draw.desktop 2017-02-20 16:24:34.000000000 +0300
+++ libreoffice-5.3.1.1-patched/sysui/desktop/menus/draw.desktop 2017-03-12 14:45:42.671234840 +0300
diff -urN libreoffice-6.2.8.2/sysui/desktop/menus/draw.desktop libreoffice-6.2.8.2-patched/sysui/desktop/menus/draw.desktop
--- libreoffice-6.2.8.2/sysui/desktop/menus/draw.desktop 2019-10-10 14:27:52.000000000 +0300
+++ libreoffice-6.2.8.2-patched/sysui/desktop/menus/draw.desktop 2019-10-15 15:23:51.381487406 +0300
@@ -20,7 +20,7 @@
Terminal=false
Icon=draw
@ -32,11 +32,11 @@ diff -urN libreoffice-5.3.1.1/sysui/desktop/menus/draw.desktop libreoffice-5.3.1
-Categories=Office;FlowChart;Graphics;2DGraphics;VectorGraphics;X-Red-Hat-Base;X-MandrivaLinux-Office-Drawing;
+Categories=Office;FlowChart;
Exec=${UNIXBASISROOTNAME} --draw %%FILE%%
MimeType=application/vnd.oasis.opendocument.graphics;application/vnd.oasis.opendocument.graphics-flat-xml;application/vnd.oasis.opendocument.graphics-template;application/vnd.sun.xml.draw;application/vnd.sun.xml.draw.template;application/vnd.visio;application/x-wpg;application/vnd.corel-draw;application/vnd.ms-publisher;image/x-freehand;application/clarisworks;application/x-pagemaker;application/pdf;application/x-stardraw;
MimeType=application/vnd.oasis.opendocument.graphics;application/vnd.oasis.opendocument.graphics-flat-xml;application/vnd.oasis.opendocument.graphics-template;application/vnd.sun.xml.draw;application/vnd.sun.xml.draw.template;application/vnd.visio;application/x-wpg;application/vnd.corel-draw;application/vnd.ms-publisher;image/x-freehand;application/clarisworks;application/x-pagemaker;application/pdf;application/x-stardraw;image/x-emf;image/x-wmf;
Name=%PRODUCTNAME Draw
diff -Naur libreoffice-5.4.5.1/sysui/desktop/menus/impress.desktop-orig libreoffice-5.4.5.1/sysui/desktop/menus/impress.desktop
--- libreoffice-5.4.5.1/sysui/desktop/menus/impress.desktop-orig 2018-01-30 20:22:07.000000000 +0300
+++ libreoffice-5.4.5.1/sysui/desktop/menus/impress.desktop 2018-02-12 12:25:14.439535365 +0300
diff -urN libreoffice-6.2.8.2/sysui/desktop/menus/impress.desktop libreoffice-6.2.8.2-patched/sysui/desktop/menus/impress.desktop
--- libreoffice-6.2.8.2/sysui/desktop/menus/impress.desktop 2019-10-10 14:27:52.000000000 +0300
+++ libreoffice-6.2.8.2-patched/sysui/desktop/menus/impress.desktop 2019-10-15 15:24:15.991248327 +0300
@@ -20,7 +20,7 @@
Terminal=false
Icon=impress
@ -46,9 +46,9 @@ diff -Naur libreoffice-5.4.5.1/sysui/desktop/menus/impress.desktop-orig libreoff
Exec=${UNIXBASISROOTNAME} --impress %%FILE%%
MimeType=application/vnd.oasis.opendocument.presentation;application/vnd.oasis.opendocument.presentation-template;application/vnd.sun.xml.impress;application/vnd.sun.xml.impress.template;application/mspowerpoint;application/vnd.ms-powerpoint;application/vnd.openxmlformats-officedocument.presentationml.presentation;application/vnd.ms-powerpoint.presentation.macroEnabled.12;application/vnd.openxmlformats-officedocument.presentationml.template;application/vnd.ms-powerpoint.template.macroEnabled.12;application/vnd.openxmlformats-officedocument.presentationml.slide;application/vnd.openxmlformats-officedocument.presentationml.slideshow;application/vnd.ms-powerpoint.slideshow.macroEnabled.12;application/vnd.oasis.opendocument.presentation-flat-xml;application/x-iwork-keynote-sffkey;
Name=%PRODUCTNAME Impress
diff -urN libreoffice-5.3.1.1/sysui/desktop/menus/math.desktop libreoffice-5.3.1.1-patched/sysui/desktop/menus/math.desktop
--- libreoffice-5.3.1.1/sysui/desktop/menus/math.desktop 2017-02-20 16:24:34.000000000 +0300
+++ libreoffice-5.3.1.1-patched/sysui/desktop/menus/math.desktop 2017-03-12 14:45:15.964235140 +0300
diff -urN libreoffice-6.2.8.2/sysui/desktop/menus/math.desktop libreoffice-6.2.8.2-patched/sysui/desktop/menus/math.desktop
--- libreoffice-6.2.8.2/sysui/desktop/menus/math.desktop 2019-10-10 14:27:52.000000000 +0300
+++ libreoffice-6.2.8.2-patched/sysui/desktop/menus/math.desktop 2019-10-15 15:26:38.666534230 +0300
@@ -21,7 +21,7 @@
NoDisplay=false
Icon=math
@ -58,9 +58,9 @@ diff -urN libreoffice-5.3.1.1/sysui/desktop/menus/math.desktop libreoffice-5.3.1
Exec=${UNIXBASISROOTNAME} --math %%FILE%%
MimeType=application/vnd.oasis.opendocument.formula;application/vnd.sun.xml.math;application/vnd.oasis.opendocument.formula-template;text/mathml;application/mathml+xml;
Name=%PRODUCTNAME Math
diff -urN libreoffice-5.3.1.1/sysui/desktop/menus/startcenter.desktop libreoffice-5.3.1.1-patched/sysui/desktop/menus/startcenter.desktop
--- libreoffice-5.3.1.1/sysui/desktop/menus/startcenter.desktop 2017-02-20 16:24:34.000000000 +0300
+++ libreoffice-5.3.1.1-patched/sysui/desktop/menus/startcenter.desktop 2017-03-12 14:46:27.341234338 +0300
diff -urN libreoffice-6.2.8.2/sysui/desktop/menus/startcenter.desktop libreoffice-6.2.8.2-patched/sysui/desktop/menus/startcenter.desktop
--- libreoffice-6.2.8.2/sysui/desktop/menus/startcenter.desktop 2019-10-10 14:27:52.000000000 +0300
+++ libreoffice-6.2.8.2-patched/sysui/desktop/menus/startcenter.desktop 2019-10-15 15:27:32.279350728 +0300
@@ -21,7 +21,7 @@
NoDisplay=false
Icon=startcenter
@ -70,9 +70,9 @@ diff -urN libreoffice-5.3.1.1/sysui/desktop/menus/startcenter.desktop libreoffic
Exec=${UNIXBASISROOTNAME} %%FILE%%
MimeType=application/vnd.openofficeorg.extension;x-scheme-handler/vnd.libreoffice.cmis;
Name=%PRODUCTNAME
diff -Naur libreoffice-5.4.5.1/sysui/desktop/menus/writer.desktop-orig libreoffice-5.4.5.1/sysui/desktop/menus/writer.desktop
--- libreoffice-5.4.5.1/sysui/desktop/menus/writer.desktop-orig 2018-01-30 20:22:07.000000000 +0300
+++ libreoffice-5.4.5.1/sysui/desktop/menus/writer.desktop 2018-02-12 12:29:38.212419191 +0300
diff -urN libreoffice-6.2.8.2/sysui/desktop/menus/writer.desktop libreoffice-6.2.8.2-patched/sysui/desktop/menus/writer.desktop
--- libreoffice-6.2.8.2/sysui/desktop/menus/writer.desktop 2019-10-10 14:27:52.000000000 +0300
+++ libreoffice-6.2.8.2-patched/sysui/desktop/menus/writer.desktop 2019-10-15 15:27:50.282510723 +0300
@@ -20,7 +20,7 @@
Terminal=false
Icon=writer

View file

@ -0,0 +1,203 @@
diff -urN libreoffice-6.3.5.2/vcl/inc/unx/desktops.hxx libreoffice-6.3.5.2-patched/vcl/inc/unx/desktops.hxx
--- libreoffice-6.3.5.2/vcl/inc/unx/desktops.hxx 2020-02-11 22:14:56.000000000 +1000
+++ libreoffice-6.3.5.2-patched/vcl/inc/unx/desktops.hxx 2020-03-25 22:24:27.343432021 +1000
@@ -31,6 +31,7 @@
DESKTOP_UNITY,
DESKTOP_XFCE,
DESKTOP_MATE,
+ DESKTOP_KDE4,
DESKTOP_KDE5,
DESKTOP_LXQT
}; // keep in sync with desktop_strings[] in salplug.cxx
diff -urN libreoffice-6.3.5.2/vcl/source/app/IconThemeSelector.cxx libreoffice-6.3.5.2-patched/vcl/source/app/IconThemeSelector.cxx
--- libreoffice-6.3.5.2/vcl/source/app/IconThemeSelector.cxx 2020-02-11 22:14:56.000000000 +1000
+++ libreoffice-6.3.5.2-patched/vcl/source/app/IconThemeSelector.cxx 2020-03-25 22:24:27.343432021 +1000
@@ -56,7 +56,8 @@
return OUString("colibre");
#else
OUString r;
- if ( desktopEnvironment.equalsIgnoreAsciiCase("kde5") ||
+ if ( desktopEnvironment.equalsIgnoreAsciiCase("kde4") ||
+ desktopEnvironment.equalsIgnoreAsciiCase("kde5") ||
desktopEnvironment.equalsIgnoreAsciiCase("lxqt") ) {
r = "breeze";
}
diff -urN libreoffice-6.3.5.2/vcl/source/app/salplug.cxx libreoffice-6.3.5.2-patched/vcl/source/app/salplug.cxx
--- libreoffice-6.3.5.2/vcl/source/app/salplug.cxx 2020-02-11 22:14:56.000000000 +1000
+++ libreoffice-6.3.5.2-patched/vcl/source/app/salplug.cxx 2020-03-25 22:41:24.079451287 +1000
@@ -95,6 +95,8 @@
* not access the 'gnome_accessibility_module_shutdown' anymore.
* So make sure libgtk+ & co are still mapped into memory when
* atk-bridge's atexit handler gets called.
+ * #i109007# KDE3 seems to have the same problem.
+ * And same applies for KDE4.
*/
if( rModuleBase == "gtk" || rModuleBase == "gtk3" || rModuleBase == "gtk3_kde5" || rModuleBase == "win" )
{
@@ -185,7 +187,8 @@
desktop == DESKTOP_XFCE ||
desktop == DESKTOP_MATE )
pList = pStandardFallbackList;
- else if( desktop == DESKTOP_KDE5 ||
+ else if( desktop == DESKTOP_KDE4 ||
+ desktop == DESKTOP_KDE5 ||
desktop == DESKTOP_LXQT )
pList = pKDEFallbackList;
@@ -318,7 +321,8 @@
// Order to match desktops.hxx' DesktopType
static const char * const desktop_strings[] = {
"none", "unknown", "GNOME", "UNITY",
- "XFCE", "MATE", "KDE5", "LXQT" };
+ "XFCE", "MATE", "KDE4", "KDE5",
+ "LXQT" };
static OUString aDesktopEnvironment;
if( aDesktopEnvironment.isEmpty())
{
diff -urN libreoffice-6.3.5.2/vcl/unx/generic/desktopdetect/desktopdetector.cxx libreoffice-6.3.5.2-patched/vcl/unx/generic/desktopdetect/desktopdetector.cxx
--- libreoffice-6.3.5.2/vcl/unx/generic/desktopdetect/desktopdetector.cxx 2020-02-11 22:14:56.000000000 +1000
+++ libreoffice-6.3.5.2-patched/vcl/unx/generic/desktopdetect/desktopdetector.cxx 2020-03-25 22:28:24.099436507 +1000
@@ -116,6 +116,80 @@
}
+static bool bWasXError = false;
+
+static bool WasXError()
+{
+ bool bRet = bWasXError;
+ bWasXError = false;
+ return bRet;
+}
+
+extern "C"
+{
+ static int autodect_error_handler( Display*, XErrorEvent* )
+ {
+ bWasXError = true;
+ return 0;
+ }
+
+ typedef int(* XErrorHandler)(Display*,XErrorEvent*);
+}
+
+static int KDEVersion( Display* pDisplay )
+{
+ int nRet = 0;
+
+ Atom nFullSession = XInternAtom( pDisplay, "KDE_FULL_SESSION", True );
+ Atom nKDEVersion = XInternAtom( pDisplay, "KDE_SESSION_VERSION", True );
+
+ if( nFullSession )
+ {
+ if( !nKDEVersion )
+ return 3;
+
+ Atom aRealType = None;
+ int nFormat = 8;
+ unsigned long nItems = 0;
+ unsigned long nBytesLeft = 0;
+ unsigned char* pProperty = nullptr;
+ XGetWindowProperty( pDisplay,
+ DefaultRootWindow( pDisplay ),
+ nKDEVersion,
+ 0, 1,
+ False,
+ AnyPropertyType,
+ &aRealType,
+ &nFormat,
+ &nItems,
+ &nBytesLeft,
+ &pProperty );
+ if( !WasXError() && nItems != 0 && pProperty )
+ {
+ nRet = *reinterpret_cast< sal_Int32* >( pProperty );
+ }
+ if( pProperty )
+ {
+ XFree( pProperty );
+ pProperty = nullptr;
+ }
+ }
+ return nRet;
+}
+
+static bool is_kde4_desktop( Display* pDisplay )
+{
+ static const char * pFullVersion = getenv( "KDE_FULL_SESSION" );
+ static const char * pSessionVersion = getenv( "KDE_SESSION_VERSION" );
+ if ( pFullVersion && pSessionVersion && strcmp(pSessionVersion, "4") == 0 )
+ return true;
+
+ if ( KDEVersion( pDisplay ) == 4 )
+ return true;
+
+ return false;
+}
+
static bool is_kde5_desktop()
{
static const char * pFullVersion = getenv( "KDE_FULL_SESSION" );
@@ -141,6 +215,8 @@
return DESKTOP_LXQT;
if ( aOver.equalsIgnoreAsciiCase( "kde5" ) )
return DESKTOP_KDE5;
+ if ( aOver.equalsIgnoreAsciiCase( "kde4" ) )
+ return DESKTOP_KDE4;
if ( aOver.equalsIgnoreAsciiCase( "gnome" ) )
return DESKTOP_GNOME;
if ( aOver.equalsIgnoreAsciiCase( "gnome-wayland" ) )
@@ -248,10 +324,16 @@
return DESKTOP_NONE;
DesktopType ret;
- if ( is_gnome_desktop( pDisplay ) )
- ret = DESKTOP_GNOME;
- else
- ret = DESKTOP_UNKNOWN;
+ XErrorHandler pOldHdl = XSetErrorHandler( autodect_error_handler );
+ if ( is_kde4_desktop( pDisplay ) )
+ ret = DESKTOP_KDE4;
+ else if ( is_gnome_desktop( pDisplay ) )
+ ret = DESKTOP_GNOME;
+ else
+ ret = DESKTOP_UNKNOWN;
+
+ // set the default handler again
+ XSetErrorHandler( pOldHdl );
XCloseDisplay( pDisplay );
diff -urN libreoffice-6.3.5.2/vcl/unx/gtk3_kde5/kde5_filepicker.cxx libreoffice-6.3.5.2-patched/vcl/unx/gtk3_kde5/kde5_filepicker.cxx
--- libreoffice-6.3.5.2/vcl/unx/gtk3_kde5/kde5_filepicker.cxx 2020-02-11 22:14:56.000000000 +1000
+++ libreoffice-6.3.5.2-patched/vcl/unx/gtk3_kde5/kde5_filepicker.cxx 2020-03-29 18:18:56.397261034 +1000
@@ -248,7 +248,7 @@
// dialog there in order not to lose the custom controls and insert the custom
// widget in the layout returned by QFileDialog::layout()
// (which returns nullptr for native file dialogs)
- if (Application::GetDesktopEnvironment() == "KDE5")
+ if (Application::GetDesktopEnvironment() == "KDE5" || Application::GetDesktopEnvironment() == "KDE4")
{
qApp->installEventFilter(this);
}
diff -urN libreoffice-6.3.5.2/vcl/unx/kde5/KDE5SalInstance.cxx libreoffice-6.3.5.2-patched/vcl/unx/kde5/KDE5SalInstance.cxx
--- libreoffice-6.3.5.2/vcl/unx/kde5/KDE5SalInstance.cxx 2020-02-11 22:14:56.000000000 +1000
+++ libreoffice-6.3.5.2-patched/vcl/unx/kde5/KDE5SalInstance.cxx 2020-03-29 18:16:44.371267490 +1000
@@ -52,7 +52,7 @@
bool KDE5SalInstance::hasNativeFileSelection() const
{
- if (Application::GetDesktopEnvironment() == "KDE5")
+ if (Application::GetDesktopEnvironment() == "KDE5" || Application::GetDesktopEnvironment() == "KDE4")
return true;
return Qt5Instance::hasNativeFileSelection();
}
@@ -73,7 +73,7 @@
// In order to insert custom controls, KDE5FilePicker currently relies on KFileWidget
// being used in the native file picker, which is only the case for KDE Plasma.
// Therefore, return the plain qt5 one in order to not lose custom controls.
- if (Application::GetDesktopEnvironment() == "KDE5")
+ if (Application::GetDesktopEnvironment() == "KDE5" || Application::GetDesktopEnvironment() == "KDE4")
return new KDE5FilePicker(context, eMode);
return Qt5Instance::createPicker(context, eMode);
}

67
libreoffice-help-package Normal file
View file

@ -0,0 +1,67 @@
#!/bin/sh
l=`echo $1 |sed -e 's,-,_,g'`
case $1 in
ar) ln="Arabic";;
bg) ln="Bulgarian";;
bn) ln="Bengali";;
bs) ln="Bosnian";;
ca) ln="Catalan";;
cs) ln="Czech";;
da) ln="Danish";;
de) ln="German";;
dz) ln="Dzongkha";;
el) ln="Greek";;
en-GB) ln="British English";;
es) ln="Spanish";;
et) ln="Estonian";;
eu) ln="Basque";;
fi) ln="Finnish";;
fr) ln="French";;
gl) ln="Galician";;
gu) ln="Gujarati";;
he) ln="Hebrew";;
hi) ln="Hindi";;
hr) ln="Croatian";;
hu) ln="Hungarian";;
it) ln="Italian";;
lt) ln="Lithuanian";;
lv) ln="Latvian";;
ja) ln="Japanese";;
ko) ln="Korean";;
mk) ln="Macedonian";;
nb) ln="Norwegian (Bokmal)";;
nl) ln="Dutch";;
nn) ln="Norwegian (Nynorsk)";;
pl) ln="Polish";;
pt) ln="Portuguese";;
pt-BR) ln="Brazilian";;
ro) ln="Romanian";;
ru) ln="Russian";;
si) ln="Sinhalese";;
sk) ln="Slovak";;
sl) ln="Slovenian";;
sv) ln="Swedish";;
ta) ln="Tamil";;
tr) ln="Turkish";;
uk) ln="Ukrainian";;
zh-CN) ln="Simplified Chinese";;
zh-TW) ln="Traditional Chinese";;
en-US) ln="English";;
*) ln="$l";;
esac
cat <<EOF
%package help-$l
Summary: ${ln} help for LibreOffice
Group: Office
Provides: %{ooname}-help = %{EVRD}
Provides: LibreOffice-help-${l} = %{EVRD}
EOF
[ "$l" != "en_US" ] && echo "Requires: %{ooname}-l10n-${l} = %{EVRD}"
cat <<EOF
%description help-${l}
This package contains the localized help files of LibreOffice in
${ln}
EOF
echo "%files help-$l -f file-lists/help_${l}_list.txt"

File diff suppressed because it is too large Load diff

71
locales.csv Normal file
View file

@ -0,0 +1,71 @@
af;Afrikaans
ar;Arabic
as;Assamese
bg;Bulgarian
bn;Bengali
br;Breton
bs;Bosnian
ca;Catalan
cs;Czech
cy;Welsh
da;Danish
de;German
dz;Dzongkha
el;Greek
en_GB;British English
en_US;American English
es;Spanish
et;Estonian
eu;Basque
fa;Farsi
fi;Finnish
fr;French
ga;Irish
gl;Galician
gu;Gujarati
he;Hebrew
hi;Hindi
hr;Croatian
hu;Hungarian
it;Italian
ja;Japanese
kn;Kannada
ko;Korean
lt;Lithuanian
lv;Latvian
mai;Maithili
ml;Malayalam
mk;Macedonian
mr;Marathi
nb;Norwegian Bokmal
nl;Dutch
nn;Norwegian Nynorsk
nr;Ndebele
nso;Northern Shoto
or;Oriya
pa_IN;Punjabi
pl;Polish
pt;Portuguese
pt_BR;Portuguese Brazilian
ro;Romanian
ru;Russian
shs;Secwepemctsin
si;Sinhalese
sk;Slovak
sl;Slovenian
sr;Serbian
st;Sotho
ss;Swati
sv;Swedish
ta;Tamil
te;Telugu
th;Thai
tn;Tswana
tr;Turkish
ts;Tsonga
uk;Ukrainian
ve;Venda
xh;Xhosa
zh_CN;Chinese Simplified
zh_TW;Chinese Traditional
zu;Zulu
1 af Afrikaans
2 ar Arabic
3 as Assamese
4 bg Bulgarian
5 bn Bengali
6 br Breton
7 bs Bosnian
8 ca Catalan
9 cs Czech
10 cy Welsh
11 da Danish
12 de German
13 dz Dzongkha
14 el Greek
15 en_GB British English
16 en_US American English
17 es Spanish
18 et Estonian
19 eu Basque
20 fa Farsi
21 fi Finnish
22 fr French
23 ga Irish
24 gl Galician
25 gu Gujarati
26 he Hebrew
27 hi Hindi
28 hr Croatian
29 hu Hungarian
30 it Italian
31 ja Japanese
32 kn Kannada
33 ko Korean
34 lt Lithuanian
35 lv Latvian
36 mai Maithili
37 ml Malayalam
38 mk Macedonian
39 mr Marathi
40 nb Norwegian Bokmal
41 nl Dutch
42 nn Norwegian Nynorsk
43 nr Ndebele
44 nso Northern Shoto
45 or Oriya
46 pa_IN Punjabi
47 pl Polish
48 pt Portuguese
49 pt_BR Portuguese Brazilian
50 ro Romanian
51 ru Russian
52 shs Secwepemctsin
53 si Sinhalese
54 sk Slovak
55 sl Slovenian
56 sr Serbian
57 st Sotho
58 ss Swati
59 sv Swedish
60 ta Tamil
61 te Telugu
62 th Thai
63 tn Tswana
64 tr Turkish
65 ts Tsonga
66 uk Ukrainian
67 ve Venda
68 xh Xhosa
69 zh_CN Chinese Simplified
70 zh_TW Chinese Traditional
71 zu Zulu

View file

@ -0,0 +1,5 @@
#!/bin/sh
linker_flags="$(echo "$@" | tr ' ' '\n' | grep '^\-l' | tr '\n' ' ')"
/usr/bin/clang++ "$@" $LIBCCX_LIBS $linker_flags

22
span-old-compilers.patch Normal file
View file

@ -0,0 +1,22 @@
In rosa2016.1, we are building LibreOffice with clang 8 and libstdc++ from GCC 10.
Seems that libstdc++-gcc-10 does have the span header, but clang 8 is not capable of std::span:
"error: no member named 'span' in namespace 'std'"
(I am not sure)
include/o3tl/span.hxx tries to use system <span> when available and uses the built in implementation when it is not available.
This patch tricks the compiler to always use the built in implementation.
TODO: maybe fix libstdc++-gcc10 so that it by default reports that <span> header does not exist.
// mikhailnov, 04.04.2020
--- libreoffice-6.3.5.2/include/o3tl/span.hxx.orig2 2020-04-04 17:41:58.575172521 +0300
+++ libreoffice-6.3.5.2/include/o3tl/span.hxx 2020-04-04 18:17:09.141934433 +0300
@@ -12,7 +12,7 @@
#include <sal/config.h>
-#if __has_include(<span>)
+#if 0
#include <span>