summaryrefslogtreecommitdiffstats
path: root/external
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 09:44:04 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 09:44:04 +0000
commiteb358d77291eba677141bab113dc27d7aabb0f3e (patch)
tree2e96f3b5d0c79beaeb536bbf05c3b8564846e65f /external
parentAdding debian version 4:24.2.1-4. (diff)
downloadlibreoffice-eb358d77291eba677141bab113dc27d7aabb0f3e.tar.xz
libreoffice-eb358d77291eba677141bab113dc27d7aabb0f3e.zip
Merging upstream version 4:24.2.2.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'external')
-rw-r--r--external/boost/UnpackedTarball_boost.mk1
-rw-r--r--external/boost/windows-no-utf8-locales.patch.023
-rw-r--r--external/expat/0001-Fix-compiler-warnings.patch47
-rw-r--r--external/expat/UnpackedTarball_expat.mk3
-rw-r--r--external/gpgmepp/ExternalPackage_gpgmepp.mk4
-rw-r--r--external/gpgmepp/Library_gpgmepp.mk1
-rw-r--r--external/gpgmepp/UnpackedTarball_gpgmepp.mk1
-rwxr-xr-xexternal/gpgmepp/Wincompatible-function-pointer-types.patch4
-rw-r--r--external/gpgmepp/macos-tdf152524.patch102
-rw-r--r--external/gpgmepp/w32-build-fixes.patch.119
-rw-r--r--external/libvisio/UnpackedTarball_libvisio.mk2
-rw-r--r--external/libvisio/solid-fill-style.patch198
-rw-r--r--external/libvisio/tdf-77915-fix-import-of-default-shape-fill-color.patch13
-rw-r--r--external/libxml2/UnpackedTarball_libxml2.mk2
-rw-r--r--external/more_fonts/ExternalPackage_noto_kufi_arabic.mk4
-rw-r--r--external/more_fonts/UnpackedTarball_noto_kufi_arabic.mk2
-rw-r--r--external/skia/Library_skia.mk5
17 files changed, 356 insertions, 75 deletions
diff --git a/external/boost/UnpackedTarball_boost.mk b/external/boost/UnpackedTarball_boost.mk
index d8bd131ac8..8ab4d79499 100644
--- a/external/boost/UnpackedTarball_boost.mk
+++ b/external/boost/UnpackedTarball_boost.mk
@@ -26,6 +26,7 @@ boost_patches += boost_1_59_0.property_tree.wreturn-type.patch
boost_patches += clang-cl.patch.0
boost_patches += boost_1_63_0.undef.warning.patch.1
+boost_patches += windows-no-utf8-locales.patch.0
boost_patches += msvc2017.patch.0
diff --git a/external/boost/windows-no-utf8-locales.patch.0 b/external/boost/windows-no-utf8-locales.patch.0
new file mode 100644
index 0000000000..519d8bde2f
--- /dev/null
+++ b/external/boost/windows-no-utf8-locales.patch.0
@@ -0,0 +1,23 @@
+Don't ever attempt to initialise a std::locale with a UTF-8 locale on Windows -*- Mode: Diff -*-
+
+--- libs/locale/src/boost/locale/std/std_backend.cpp
++++ libs/locale/src/boost/locale/std/std_backend.cpp
+@@ -86,6 +86,7 @@
+ #endif
+ utf_mode_ = utf8_support::none;
+ } else {
++ #if !defined(BOOST_WINDOWS)
+ if(loadable(lid)) {
+ name_ = lid;
+ utf_mode_ = utf8_support::native_with_wide;
+@@ -98,8 +99,8 @@
+ utf_mode_ = utf8_support::from_wide;
+ #endif
+ }
+-#if defined(BOOST_WINDOWS)
+- else if(loadable(win_name))
++ #else
++ if(loadable(win_name))
+ {
+ name_ = win_name;
+ utf_mode_ = utf8_support::from_wide;
diff --git a/external/expat/0001-Fix-compiler-warnings.patch b/external/expat/0001-Fix-compiler-warnings.patch
deleted file mode 100644
index adec5ed0d9..0000000000
--- a/external/expat/0001-Fix-compiler-warnings.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 3f60a47cb5716bb810789a12ef6024c1dc448164 Mon Sep 17 00:00:00 2001
-From: Taichi Haradaguchi <20001722@ymail.ne.jp>
-Date: Fri, 9 Feb 2024 19:28:35 +0900
-Subject: [PATCH] Fix compiler warnings
-
-> In file included from ./../lib/internal.h:149,
-> from codepage.c:38:
-> ./../lib/expat.h:1045:5: warning: "XML_GE" is not defined, evaluates to 0 [-Wundef]
-> 1045 | #if XML_GE == 1
-> | ^~~~~~
-> ./../lib/internal.h:158:5: warning: "XML_GE" is not defined, evaluates to 0 [-Wundef]
-> 158 | #if XML_GE == 1
-> | ^~~~~~
----
- expat/lib/expat.h | 2 +-
- expat/lib/internal.h | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/expat/lib/expat.h b/expat/lib/expat.h
-index 95464b0d..79bbfb61 100644
---- a/expat/lib/expat.h
-+++ b/expat/lib/expat.h
-@@ -1042,7 +1042,7 @@ typedef struct {
- XMLPARSEAPI(const XML_Feature *)
- XML_GetFeatureList(void);
-
--#if XML_GE == 1
-+#if defined(XML_GE) && XML_GE == 1
- /* Added in Expat 2.4.0 for XML_DTD defined and
- * added in Expat 2.6.0 for XML_GE == 1. */
- XMLPARSEAPI(XML_Bool)
-diff --git a/expat/lib/internal.h b/expat/lib/internal.h
-index cce71e4c..208c6b67 100644
---- a/expat/lib/internal.h
-+++ b/expat/lib/internal.h
-@@ -155,7 +155,7 @@ extern "C" {
- void _INTERNAL_trim_to_complete_utf8_characters(const char *from,
- const char **fromLimRef);
-
--#if XML_GE == 1
-+#if defined(XML_GE) && XML_GE == 1
- unsigned long long testingAccountingGetCountBytesDirect(XML_Parser parser);
- unsigned long long testingAccountingGetCountBytesIndirect(XML_Parser parser);
- const char *unsignedCharToPrintable(unsigned char c);
---
-2.43.1
-
diff --git a/external/expat/UnpackedTarball_expat.mk b/external/expat/UnpackedTarball_expat.mk
index 465105f2ca..5d4f41f6d1 100644
--- a/external/expat/UnpackedTarball_expat.mk
+++ b/external/expat/UnpackedTarball_expat.mk
@@ -13,10 +13,7 @@ $(eval $(call gb_UnpackedTarball_set_tarball,expat,$(EXPAT_TARBALL)))
$(eval $(call gb_UnpackedTarball_update_autoconf_configs,expat,conftools))
-# * external/expat/0001-Fix-compiler-warnings.patch was sent to upstream as
-# <https://github.com/libexpat/libexpat/pull/819> "Fix compiler warnings":
$(eval $(call gb_UnpackedTarball_add_patches,expat,\
- external/expat/0001-Fix-compiler-warnings.patch \
external/expat/expat-winapi.patch \
))
diff --git a/external/gpgmepp/ExternalPackage_gpgmepp.mk b/external/gpgmepp/ExternalPackage_gpgmepp.mk
index ef49c398d2..be32afd6b3 100644
--- a/external/gpgmepp/ExternalPackage_gpgmepp.mk
+++ b/external/gpgmepp/ExternalPackage_gpgmepp.mk
@@ -15,8 +15,8 @@ ifneq ($(DISABLE_DYNLOADING),TRUE)
ifeq ($(OS),LINUX)
-$(eval $(call gb_ExternalPackage_add_file,gpgmepp,$(LIBO_LIB_FOLDER)/libgpgmepp.so.6,lang/cpp/src/.libs/libgpgmepp.so.6.17.0))
-$(eval $(call gb_ExternalPackage_add_file,gpgmepp,$(LIBO_LIB_FOLDER)/libgpgme.so.11,src/.libs/libgpgme.so.11.29.0))
+$(eval $(call gb_ExternalPackage_add_file,gpgmepp,$(LIBO_LIB_FOLDER)/libgpgmepp.so.6,lang/cpp/src/.libs/libgpgmepp.so.6.20.1))
+$(eval $(call gb_ExternalPackage_add_file,gpgmepp,$(LIBO_LIB_FOLDER)/libgpgme.so.11,src/.libs/libgpgme.so.11.32.1))
else ifeq ($(OS),MACOSX)
diff --git a/external/gpgmepp/Library_gpgmepp.mk b/external/gpgmepp/Library_gpgmepp.mk
index ac71cf8b90..8191e55d47 100644
--- a/external/gpgmepp/Library_gpgmepp.mk
+++ b/external/gpgmepp/Library_gpgmepp.mk
@@ -72,6 +72,7 @@ $(eval $(call gb_Library_add_generated_exception_objects,gpgmepp,\
UnpackedTarball/gpgmepp/lang/cpp/src/keylistresult \
UnpackedTarball/gpgmepp/lang/cpp/src/scdgetinfoassuantransaction \
UnpackedTarball/gpgmepp/lang/cpp/src/signingresult \
+ UnpackedTarball/gpgmepp/lang/cpp/src/statusconsumerassuantransaction \
UnpackedTarball/gpgmepp/lang/cpp/src/swdbresult \
UnpackedTarball/gpgmepp/lang/cpp/src/tofuinfo \
UnpackedTarball/gpgmepp/lang/cpp/src/trustitem \
diff --git a/external/gpgmepp/UnpackedTarball_gpgmepp.mk b/external/gpgmepp/UnpackedTarball_gpgmepp.mk
index d7b7a8ab4d..dcbda38d59 100644
--- a/external/gpgmepp/UnpackedTarball_gpgmepp.mk
+++ b/external/gpgmepp/UnpackedTarball_gpgmepp.mk
@@ -34,5 +34,6 @@ $(eval $(call gb_UnpackedTarball_add_patches,gpgmepp, \
external/gpgmepp/w32-include.patch \
external/gpgmepp/Wincompatible-function-pointer-types.patch \
external/gpgmepp/macos-macports-path.patch \
+ external/gpgmepp/macos-tdf152524.patch \
))
# vim: set noet sw=4 ts=4:
diff --git a/external/gpgmepp/Wincompatible-function-pointer-types.patch b/external/gpgmepp/Wincompatible-function-pointer-types.patch
index 050d2e55cf..cd4f1117fd 100755
--- a/external/gpgmepp/Wincompatible-function-pointer-types.patch
+++ b/external/gpgmepp/Wincompatible-function-pointer-types.patch
@@ -20,8 +20,8 @@
(void)ctx;
--- src/gpgme-w32spawn.c
+++ src/gpgme-w32spawn.c
-@@ -243,7 +243,7 @@
- handle = LoadLibrary ("user32.dll");
+@@ -24,7 +249,7 @@
+ handle = LoadLibraryA ("user32.dll");
if (handle)
{
- func = GetProcAddress (handle, "AllowSetForegroundWindow");
diff --git a/external/gpgmepp/macos-tdf152524.patch b/external/gpgmepp/macos-tdf152524.patch
new file mode 100644
index 0000000000..c1cdd047db
--- /dev/null
+++ b/external/gpgmepp/macos-tdf152524.patch
@@ -0,0 +1,102 @@
+--- src/posix-io.c 2023-02-01 11:50:48
++++ src/posix-io.c 2024-03-21 09:50:24
+@@ -67,6 +67,13 @@
+ #include "priv-io.h"
+ #include "sema.h"
+ #include "debug.h"
++
++#if HAVE_MACOS_SYSTEM
++#include <dispatch/dispatch.h>
++#include <spawn.h>
++
++extern char **environ;
++#endif
+
+
+ #ifdef USE_LINUX_GETDENTS
+@@ -515,6 +522,15 @@
+ }
+ return 0;
+ }
++
++
++#if HAVE_MACOS_SYSTEM
++static int
++_gpgme_io_spawn_macos (const char *path, char *const argv[], unsigned int flags,
++ struct spawn_fd_item_s *fd_list,
++ void (*atfork) (void *opaque, int reserved),
++ void *atforkvalue, pid_t *r_pid);
++#endif /*HAVE_MACOS_SYSTEM*/
+
+
+ /* Returns 0 on success, -1 on error. */
+@@ -523,6 +539,35 @@
+ struct spawn_fd_item_s *fd_list,
+ void (*atfork) (void *opaque, int reserved),
+ void *atforkvalue, pid_t *r_pid)
++#if HAVE_MACOS_SYSTEM
++{
++ /* tdf#152524 fork() and exec() in a separate libdispatch queue
++ * This is another attempt to stop the crashing in libdispatch by
++ * running fork() and exec() within a libdispatch task that will
++ * run in a sequential queue in a non-main thread. */
++ static dispatch_queue_t queue = NULL;
++ if (!queue)
++ queue = dispatch_queue_create ("gpgmepp",
++ DISPATCH_QUEUE_CONCURRENT);
++ if (!queue)
++ return -1;
++
++ __block int ret = -1;
++ dispatch_sync(queue, ^{
++ ret = _gpgme_io_spawn_macos (path, argv, flags,
++ fd_list, atfork,
++ atforkvalue, r_pid);
++ });
++
++ return ret;
++}
++
++static int
++_gpgme_io_spawn_macos (const char *path, char *const argv[], unsigned int flags,
++ struct spawn_fd_item_s *fd_list,
++ void (*atfork) (void *opaque, int reserved),
++ void *atforkvalue, pid_t *r_pid)
++#endif /*HAVE_MACOS_SYSTEM*/
+ {
+ pid_t pid;
+ int i;
+@@ -552,8 +597,15 @@
+ if (!pid)
+ {
+ /* Intermediate child to prevent zombie processes. */
++#if HAVE_MACOS_SYSTEM
++ /* tdf#152524 fix crash by skipping second fork()
++ * Instead of calling a second fork() in the child process, replace
++ * execv() with posix_spawn(). posix_spawn() does not call any atfork
++ * handlers so the atfork handler that crashes will be skipped. */
++#else /*HAVE_MACOS_SYSTEM*/
+ if ((pid = fork ()) == 0)
+ {
++#endif /*HAVE_MACOS_SYSTEM*/
+ /* Child. */
+ int max_fds = -1;
+ int fd;
+@@ -664,6 +716,9 @@
+ close (fd);
+ }
+
++#if HAVE_MACOS_SYSTEM
++ _exit(posix_spawn(NULL, path, NULL, NULL, argv, environ));
++#else /*HAVE_MACOS_SYSTEM*/
+ execv (path, (char *const *) argv);
+ /* Hmm: in that case we could write a special status code to the
+ status-pipe. */
+@@ -674,6 +729,7 @@
+ _exit (1);
+ else
+ _exit (0);
++#endif /*HAVE_MACOS_SYSTEM*/
+ }
+
+ TRACE_LOG ("waiting for child process pid=%i", pid);
diff --git a/external/gpgmepp/w32-build-fixes.patch.1 b/external/gpgmepp/w32-build-fixes.patch.1
index 4d9428781c..250b2022c5 100644
--- a/external/gpgmepp/w32-build-fixes.patch.1
+++ b/external/gpgmepp/w32-build-fixes.patch.1
@@ -24,6 +24,19 @@ diff -ru gpgme.orig/src/dirinfo.c gpgme/src/dirinfo.c
/* Constants used internally to select the data. */
enum
{
+diff -ru gpgme.orig/src/gpgme-w32spawn.c gpgme/src/gpgme-w32spawn.c
+--- gpgme.orig/src/gpgme-w32spawn.c 2023-10-27 21:27:30.000000000 +0900
++++ gpgme/src/gpgme-w32spawn.c 2024-02-26 17:32:59.949338645 +0900
+@@ -52,6 +52,9 @@
+ #define mystderr stderr
+ #endif
+
++#ifdef _MSC_VER
++#define snwprintf _snwprintf
++#endif
+
+
+ static wchar_t *
diff -ru gpgme.orig/src/mbox-util.c gpgme/src/mbox-util.c
--- gpgme.orig/src/mbox-util.c 2016-11-16 13:22:41.000000000 +0100
+++ gpgme/src/mbox-util.c 2017-09-30 08:18:29.270567500 +0200
@@ -53,16 +66,16 @@ diff -ru gpgme.orig/src/priv-io.h gpgme/src/priv-io.h
diff -ru gpgme.orig/src/util.h gpgme/src/util.h
--- gpgme.orig/src/util.h 2017-03-28 11:41:30.000000000 +0200
+++ gpgme/src/util.h 2017-09-30 08:10:54.194049100 +0200
-@@ -35,6 +35,9 @@
- #ifdef HAVE_UNISTD_H
+@@ -36,6 +36,9 @@
# include <unistd.h>
#endif
+ #include <stdint.h>
+#ifdef _MSC_VER
+typedef int pid_t;
+#endif
- #include "gpgme.h"
+ #include "gpgme.h"
diff -ru gpgme.orig/src/w32-util.c gpgme/src/w32-util.c
--- gpgme.orig/src/w32-util.c 2017-03-09 09:01:10.000000000 +0100
+++ gpgme/src/w32-util.c 2017-09-30 08:32:02.114330500 +0200
diff --git a/external/libvisio/UnpackedTarball_libvisio.mk b/external/libvisio/UnpackedTarball_libvisio.mk
index 85e356db88..b5f530fb27 100644
--- a/external/libvisio/UnpackedTarball_libvisio.mk
+++ b/external/libvisio/UnpackedTarball_libvisio.mk
@@ -17,7 +17,7 @@ $(eval $(call gb_UnpackedTarball_update_autoconf_configs,libvisio))
$(eval $(call gb_UnpackedTarball_add_patches,libvisio, \
external/libvisio/ubsan.patch \
- external/libvisio/tdf-77915-fix-import-of-default-shape-fill-color.patch \
+ external/libvisio/solid-fill-style.patch \
))
# vim: set noet sw=4 ts=4:
diff --git a/external/libvisio/solid-fill-style.patch b/external/libvisio/solid-fill-style.patch
new file mode 100644
index 0000000000..53dc6a405e
--- /dev/null
+++ b/external/libvisio/solid-fill-style.patch
@@ -0,0 +1,198 @@
+--- src/lib/VSDStyles.h
++++ src/lib/VSDStyles.h
+@@ -179,14 +177,13 @@ struct VSDFillStyle
+ ASSIGN_OPTIONAL(style.qsFillMatrix, qsFillMatrix);
+ if (theme)
+ {
+- if (!!style.qsFillColour && style.qsFillColour.get() >= 0)
+- ASSIGN_OPTIONAL(theme->getThemeColour(style.qsFillColour.get()), fgColour);
+-
+- if (!!style.qsFillColour && style.qsFillColour.get() >= 0)
+- ASSIGN_OPTIONAL(theme->getThemeColour(style.qsFillColour.get()), bgColour);
+-
+- if (!!style.qsShadowColour && style.qsShadowColour.get() >= 0)
+- ASSIGN_OPTIONAL(theme->getThemeColour(style.qsShadowColour.get()), shadowFgColour);
++ // Quick Style Colour 100 is special. It is the default,
++ // and it is not saved explicitely in the VSDX file.
++ ASSIGN_OPTIONAL(theme->getThemeColour(style.qsFillColour.value_or(100)), fgColour);
++ ASSIGN_OPTIONAL(theme->getThemeColour(style.qsFillColour.value_or(100)), bgColour);
++ ASSIGN_OPTIONAL(theme->getThemeColour(style.qsShadowColour.value_or(100)), shadowFgColour);
++ if (!!style.qsFillMatrix && style.qsFillMatrix.get() >= 0)
++ ASSIGN_OPTIONAL(theme->getFillStyleColour(style.qsFillMatrix.get()), fgColour);
+ }
+ ASSIGN_OPTIONAL(style.fgColour, fgColour);
+ ASSIGN_OPTIONAL(style.bgColour, bgColour);
+--- src/lib/VSDXTheme.cpp
++++ src/lib/VSDXTheme.cpp
+@@ -63,7 +63,8 @@ libvisio::VSDXFontScheme::VSDXFontScheme()
+
+ libvisio::VSDXTheme::VSDXTheme()
+ : m_clrScheme(),
+- m_fontScheme()
++ m_fontScheme(),
++ m_fillStyleLst(std::vector<boost::optional<libvisio::Colour>>(6))
+ {
+ }
+
+@@ -102,6 +103,9 @@ bool libvisio::VSDXTheme::parse(librevenge::RVNGInputStream *input)
+ case XML_A_FONTSCHEME:
+ readFontScheme(reader.get());
+ break;
++ case XML_A_FMTSCHEME:
++ readFmtScheme(reader.get());
++ break;
+ default:
+ break;
+ }
+@@ -320,7 +324,7 @@ void libvisio::VSDXTheme::readClrScheme(xmlTextReaderPtr reader)
+ while ((XML_A_CLRSCHEME != tokenId || XML_READER_TYPE_END_ELEMENT != tokenType) && 1 == ret);
+ }
+
+-void libvisio::VSDXTheme::readThemeColour(xmlTextReaderPtr reader, int idToken, Colour &clr)
++bool libvisio::VSDXTheme::readThemeColour(xmlTextReaderPtr reader, int idToken, Colour &clr)
+ {
+ int ret = 1;
+ int tokenId = XML_TOKEN_INVALID;
+@@ -350,7 +354,11 @@ void libvisio::VSDXTheme::readThemeColour(xmlTextReaderPtr reader, int idToken,
+ while ((idToken != tokenId || XML_READER_TYPE_END_ELEMENT != tokenType) && 1 == ret);
+
+ if (colour)
++ {
+ clr = *colour;
++ return true;
++ }
++ return false;
+ }
+
+ void libvisio::VSDXTheme::readVariationClrSchemeLst(xmlTextReaderPtr reader)
+@@ -491,4 +499,96 @@ boost::optional<libvisio::Colour> libvisio::VSDXTheme::getThemeColour(unsigned v
+ return boost::optional<libvisio::Colour>();
+ }
+
++void libvisio::VSDXTheme::readFmtScheme(xmlTextReaderPtr reader)
++{
++ VSD_DEBUG_MSG(("VSDXTheme::readFmtScheme\n"));
++ int ret = 1;
++ int tokenId = XML_TOKEN_INVALID;
++ int tokenType = -1;
++ do
++ {
++ ret = xmlTextReaderRead(reader);
++ tokenId = getElementToken(reader);
++ if (XML_TOKEN_INVALID == tokenId)
++ {
++ VSD_DEBUG_MSG(("VSDXTheme::readFmtScheme: unknown token %s\n", xmlTextReaderConstName(reader)));
++ }
++ tokenType = xmlTextReaderNodeType(reader);
++ switch (tokenId)
++ {
++ case XML_A_FILLSTYLELST:
++ {
++ readFillStyleLst(reader);
++ break;
++ }
++ default:
++ // Other style lists not implemented
++ break;
++ }
++ } while ((XML_A_FMTSCHEME != tokenId || XML_READER_TYPE_END_ELEMENT != tokenType) && 1 == ret);
++}
++
++void libvisio::VSDXTheme::skipUnimplemented(xmlTextReaderPtr reader, int idToken)
++{
++ int ret = 1;
++ int tokenId = XML_TOKEN_INVALID;
++ int tokenType = -1;
++ do
++ {
++ ret = xmlTextReaderRead(reader);
++ tokenId = getElementToken(reader);
++ if (XML_TOKEN_INVALID == tokenId)
++ {
++ VSD_DEBUG_MSG(("VSDXTheme::skipUnimplemented: unknown token %s\n", xmlTextReaderConstName(reader)));
++ }
++ tokenType = xmlTextReaderNodeType(reader);
++ } while ((idToken != tokenId || XML_READER_TYPE_END_ELEMENT != tokenType) && 1 == ret);
++}
++
++void libvisio::VSDXTheme::readFillStyleLst(xmlTextReaderPtr reader)
++{
++ VSD_DEBUG_MSG(("VSDXTheme::readFillStyleLst\n"));
++ int ret = xmlTextReaderRead(reader);
++ int tokenId = getElementToken(reader);
++ if (XML_TOKEN_INVALID == tokenId)
++ {
++ VSD_DEBUG_MSG(("VSDXTheme::readFillStyleLst: unknown token %s\n", xmlTextReaderConstName(reader)));
++ }
++ int tokenType = xmlTextReaderNodeType(reader);
++ int i = 0;
++ while ((XML_A_FILLSTYLELST != tokenId || XML_READER_TYPE_END_ELEMENT != tokenType) && 1 == ret)
++ {
++ switch (tokenId)
++ {
++ case XML_A_SOLIDFILL:
++ {
++ Colour colour;
++ if (readThemeColour(reader, tokenId, colour))
++ {
++ m_fillStyleLst[i] = colour;
++ }
++ break;
++ }
++ default:
++ // Skip unimplemented fill type
++ skipUnimplemented(reader, tokenId);
++ break;
++ }
++ ret = xmlTextReaderRead(reader);
++ tokenId = getElementToken(reader);
++ if (XML_TOKEN_INVALID == tokenId)
++ {
++ VSD_DEBUG_MSG(("VSDXTheme::readFillStyleLst: unknown token %s\n", xmlTextReaderConstName(reader)));
++ }
++ tokenType = xmlTextReaderNodeType(reader);
++ }
++}
++
++boost::optional<libvisio::Colour> libvisio::VSDXTheme::getFillStyleColour(unsigned value) const
++{
++ if (value == 0 || value > m_fillStyleLst.size())
++ return boost::optional<libvisio::Colour>();
++ return m_fillStyleLst[value - 1];
++}
++
+ /* vim:set shiftwidth=2 softtabstop=2 expandtab: */
+--- src/lib/VSDXTheme.h
++++ src/lib/VSDXTheme.h
+@@ -80,6 +80,7 @@ public:
+ ~VSDXTheme();
+ bool parse(librevenge::RVNGInputStream *input);
+ boost::optional<Colour> getThemeColour(unsigned value, unsigned variationIndex = 0) const;
++ boost::optional<Colour> getFillStyleColour(unsigned value) const;
+
+ private:
+ VSDXTheme(const VSDXTheme &);
+@@ -89,18 +90,22 @@ private:
+ boost::optional<Colour> readSysClr(xmlTextReaderPtr reader);
+
+ void readClrScheme(xmlTextReaderPtr reader);
+- void readThemeColour(xmlTextReaderPtr reader, int idToken, Colour &clr);
++ bool readThemeColour(xmlTextReaderPtr reader, int idToken, Colour &clr);
+ void readVariationClrSchemeLst(xmlTextReaderPtr reader);
+ void readVariationClrScheme(xmlTextReaderPtr reader, VSDXVariationClrScheme &varClrSch);
+ void readFontScheme(xmlTextReaderPtr reader);
+ void readFont(xmlTextReaderPtr reader, int idToken, VSDXFont &font);
+ bool readTypeFace(xmlTextReaderPtr reader, librevenge::RVNGString &typeFace);
+ bool readTypeFace(xmlTextReaderPtr reader, int &script, librevenge::RVNGString &typeFace);
++ void readFmtScheme(xmlTextReaderPtr reader);
++ void readFillStyleLst(xmlTextReaderPtr reader);
+
+ int getElementToken(xmlTextReaderPtr reader);
++ void skipUnimplemented(xmlTextReaderPtr reader, int idToken);
+
+ VSDXClrScheme m_clrScheme;
+ VSDXFontScheme m_fontScheme;
++ std::vector<boost::optional<Colour>> m_fillStyleLst;
+ };
+
+ } // namespace libvisio
diff --git a/external/libvisio/tdf-77915-fix-import-of-default-shape-fill-color.patch b/external/libvisio/tdf-77915-fix-import-of-default-shape-fill-color.patch
deleted file mode 100644
index 68c0c2c88b..0000000000
--- a/external/libvisio/tdf-77915-fix-import-of-default-shape-fill-color.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- src/lib/VSDStyles.h
-+++ src/lib/VSDStyles.h
-@@ -129,7 +129,9 @@ struct VSDOptionalFillStyle
- ASSIGN_OPTIONAL(style.qsFillColour, qsFillColour);
- ASSIGN_OPTIONAL(style.qsShadowColour, qsShadowColour);
- ASSIGN_OPTIONAL(style.qsFillMatrix, qsFillMatrix);
-- ASSIGN_OPTIONAL(style.fgColour, fgColour);
-+ // Colour 'Blue, Variant 1' is special. It is the default,
-+ // and it is not saved explicitely in the VSDX file.
-+ ASSIGN_OPTIONAL(style.fgColour, fgColour);else fgColour = Colour(0x5b, 0x9b, 0xd5, 0);
- ASSIGN_OPTIONAL(style.bgColour, bgColour);
- ASSIGN_OPTIONAL(style.shadowFgColour, shadowFgColour);
- }
diff --git a/external/libxml2/UnpackedTarball_libxml2.mk b/external/libxml2/UnpackedTarball_libxml2.mk
index d50d52cbee..489fb00757 100644
--- a/external/libxml2/UnpackedTarball_libxml2.mk
+++ b/external/libxml2/UnpackedTarball_libxml2.mk
@@ -14,7 +14,7 @@ $(eval $(call gb_UnpackedTarball_set_tarball,libxml2,$(LIBXML_TARBALL),,libxml2)
$(eval $(call gb_UnpackedTarball_update_autoconf_configs,libxml2))
$(eval $(call gb_UnpackedTarball_add_patches,libxml2,\
- external/libxml2/libxml2-global-symbols.patch \
+ $(if $(filter SOLARIS,$(OS)),external/libxml2/libxml2-global-symbols.patch) \
external/libxml2/libxml2-vc10.patch \
external/libxml2/libxml2-XMLCALL-redefine.patch.0 \
$(if $(filter ANDROID,$(OS)),external/libxml2/libxml2-android.patch) \
diff --git a/external/more_fonts/ExternalPackage_noto_kufi_arabic.mk b/external/more_fonts/ExternalPackage_noto_kufi_arabic.mk
index 300e0c8efb..2a9a053b48 100644
--- a/external/more_fonts/ExternalPackage_noto_kufi_arabic.mk
+++ b/external/more_fonts/ExternalPackage_noto_kufi_arabic.mk
@@ -10,8 +10,8 @@
$(eval $(call gb_ExternalPackage_ExternalPackage,fonts_noto_kufi_arabic,font_noto_kufi_arabic))
$(eval $(call gb_ExternalPackage_add_unpacked_files,fonts_noto_kufi_arabic,$(LIBO_SHARE_FOLDER)/fonts/truetype,\
- NotoKufiArabic-Bold.ttf \
- NotoKufiArabic-Regular.ttf \
+ NotoKufiArabic/full/ttf/NotoKufiArabic-Bold.ttf \
+ NotoKufiArabic/full/ttf/NotoKufiArabic-Regular.ttf \
))
# vim: set noet sw=4 ts=4:
diff --git a/external/more_fonts/UnpackedTarball_noto_kufi_arabic.mk b/external/more_fonts/UnpackedTarball_noto_kufi_arabic.mk
index 482727dd62..f5e70d0c5e 100644
--- a/external/more_fonts/UnpackedTarball_noto_kufi_arabic.mk
+++ b/external/more_fonts/UnpackedTarball_noto_kufi_arabic.mk
@@ -9,6 +9,6 @@
$(eval $(call gb_UnpackedTarball_UnpackedTarball,font_noto_kufi_arabic))
-$(eval $(call gb_UnpackedTarball_set_tarball,font_noto_kufi_arabic,$(FONT_NOTO_KUFI_ARABIC_TARBALL)))
+$(eval $(call gb_UnpackedTarball_set_tarball,font_noto_kufi_arabic,$(FONT_NOTO_KUFI_ARABIC_TARBALL),0))
# vim: set noet sw=4 ts=4:
diff --git a/external/skia/Library_skia.mk b/external/skia/Library_skia.mk
index c2163d2993..55af14cd2d 100644
--- a/external/skia/Library_skia.mk
+++ b/external/skia/Library_skia.mk
@@ -23,6 +23,7 @@ $(eval $(call gb_Library_add_defs,skia,\
-DSK_USER_CONFIG_HEADER="<$(BUILDDIR)/config_host/config_skia.h>" \
$(if $(filter INTEL,$(CPUNAME)),$(if $(filter WNT,$(OS)),-DSK_CPU_SSE_LEVEL=SK_CPU_SSE_LEVEL_SSE1,-DSK_CPU_SSE_LEVEL=0)) \
$(if $(filter X86_64,$(CPUNAME)),-DSK_CPU_SSE_LEVEL=SK_CPU_SSE_LEVEL_SSE2) \
+ -DSK_ENABLE_SKSL_IN_RASTER_PIPELINE \
))
# SK_DEBUG controls runtime checks and is controlled by config_skia.h and depends on DBG_UTIL.
@@ -565,6 +566,8 @@ $(eval $(call gb_Library_add_generated_exception_objects,skia,\
UnpackedTarball/skia/src/sksl/analysis/SkSLReturnsInputAlpha \
UnpackedTarball/skia/src/sksl/analysis/SkSLSymbolTableStackBuilder \
UnpackedTarball/skia/src/sksl/analysis/SkSLSwitchCaseContainsExit \
+ UnpackedTarball/skia/src/sksl/analysis/SkSLGetLoopControlFlowInfo \
+ UnpackedTarball/skia/src/sksl/analysis/SkSLIsDynamicallyUniformExpression \
UnpackedTarball/skia/src/sksl/codegen/SkSLGLSLCodeGenerator \
UnpackedTarball/skia/src/sksl/codegen/SkSLMetalCodeGenerator \
UnpackedTarball/skia/src/sksl/codegen/SkSLPipelineStageCodeGenerator \
@@ -572,6 +575,8 @@ $(eval $(call gb_Library_add_generated_exception_objects,skia,\
UnpackedTarball/skia/src/sksl/codegen/SkSLSPIRVtoHLSL \
UnpackedTarball/skia/src/sksl/codegen/SkSLVMCodeGenerator \
UnpackedTarball/skia/src/sksl/codegen/SkSLWGSLCodeGenerator \
+ UnpackedTarball/skia/src/sksl/codegen/SkSLRasterPipelineBuilder \
+ UnpackedTarball/skia/src/sksl/codegen/SkSLRasterPipelineCodeGenerator \
UnpackedTarball/skia/src/sksl/transform/SkSLAddConstToVarModifiers \
UnpackedTarball/skia/src/sksl/transform/SkSLEliminateDeadFunctions \
UnpackedTarball/skia/src/sksl/transform/SkSLEliminateDeadGlobalVariables \