summaryrefslogtreecommitdiff
path: root/repo/libreoffice
diff options
context:
space:
mode:
authordavidovski <david@davidovski.xyz>2022-06-15 20:02:02 +0100
committerdavidovski <david@davidovski.xyz>2022-06-15 20:02:02 +0100
commitd2567bfbdf0e9fa6db0a6ed1534831ec859a3e03 (patch)
tree684a17eebf446aa1adab1097616f1882c8d51568 /repo/libreoffice
parentd1fc3393cca72e8e432f827f7624e38734fad6dc (diff)
added deps for qemu
Diffstat (limited to 'repo/libreoffice')
-rw-r--r--repo/libreoffice/autoconf-boost-macros.patch152
-rw-r--r--repo/libreoffice/disable-liborcus-unittest.patch13
-rw-r--r--repo/libreoffice/fix-execinfo.patch34
-rw-r--r--repo/libreoffice/libreoffice-base.xibuild11
-rw-r--r--repo/libreoffice/libreoffice-calc.xibuild11
-rw-r--r--repo/libreoffice/libreoffice-common.xibuild10
-rw-r--r--repo/libreoffice/libreoffice-draw.xibuild11
-rw-r--r--repo/libreoffice/libreoffice-impress.xibuild11
-rw-r--r--repo/libreoffice/libreoffice-math.xibuild11
-rw-r--r--repo/libreoffice/libreoffice-postgres.xibuild10
-rw-r--r--repo/libreoffice/libreoffice-sdk.xibuild10
-rw-r--r--repo/libreoffice/libreoffice-writer.xibuild11
-rw-r--r--repo/libreoffice/libreoffice.xibuild136
-rw-r--r--repo/libreoffice/linux-musl.patch60
-rw-r--r--repo/libreoffice/musl-libintl.patch15
-rw-r--r--repo/libreoffice/musl-stacksize.patch40
-rw-r--r--repo/libreoffice/pld-skia-patches.patch10
-rw-r--r--repo/libreoffice/poppler-22.03.patch39
-rw-r--r--repo/libreoffice/remove-backtrace.patch163
-rw-r--r--repo/libreoffice/skia-freetype2.11.diff37
20 files changed, 795 insertions, 0 deletions
diff --git a/repo/libreoffice/autoconf-boost-macros.patch b/repo/libreoffice/autoconf-boost-macros.patch
new file mode 100644
index 0000000..41dda98
--- /dev/null
+++ b/repo/libreoffice/autoconf-boost-macros.patch
@@ -0,0 +1,152 @@
+Fix language context when testing linking against boost, by moving
+the AC_LANG_PUSH and AC_LANG_POP macros into a macro-wide scope for the
+AX_BOOST_FOO macros.
+
+Upstream: Pending
+--- libreoffice-7.2.2.2.orig/m4/ax_boost_date_time.m4
++++ libreoffice-7.2.2.2/m4/ax_boost_date_time.m4
+@@ -62,15 +62,15 @@
+ LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
+ export LDFLAGS
+
++ AC_LANG_PUSH([C++])
++
+ AC_CACHE_CHECK(whether the Boost::Date_Time library is available,
+ ax_cv_boost_date_time,
+- [AC_LANG_PUSH([C++])
+- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <boost/date_time/gregorian/gregorian_types.hpp>]],
++ [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <boost/date_time/gregorian/gregorian_types.hpp>]],
+ [[using namespace boost::gregorian; date d(2002,Jan,10);
+ return 0;
+ ]])],
+ ax_cv_boost_date_time=yes, ax_cv_boost_date_time=no)
+- AC_LANG_POP([C++])
+ ])
+ if test "x$ax_cv_boost_date_time" = "xyes"; then
+ AC_DEFINE(HAVE_BOOST_DATE_TIME,,[define if the Boost::Date_Time library is available])
+@@ -110,4 +110,6 @@
+ CPPFLAGS="$CPPFLAGS_SAVED"
+ LDFLAGS="$LDFLAGS_SAVED"
+ fi
++
++ AC_LANG_POP([C++])
+ ])
+--- libreoffice-7.2.2.2.orig/m4/ax_boost_filesystem.m4
++++ libreoffice-7.2.2.2/m4/ax_boost_filesystem.m4
+@@ -67,15 +67,15 @@
+ LIBS="$LIBS $BOOST_SYSTEM_LIB"
+ export LIBS
+
++ AC_LANG_PUSH([C++])
++
+ AC_CACHE_CHECK(whether the Boost::Filesystem library is available,
+ ax_cv_boost_filesystem,
+- [AC_LANG_PUSH([C++])
+- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <boost/filesystem/path.hpp>]],
++ [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <boost/filesystem/path.hpp>]],
+ [[using namespace boost::filesystem;
+ path my_path( "foo/bar/data.txt" );
+ return 0;]])],
+ ax_cv_boost_filesystem=yes, ax_cv_boost_filesystem=no)
+- AC_LANG_POP([C++])
+ ])
+ if test "x$ax_cv_boost_filesystem" = "xyes"; then
+ AC_DEFINE(HAVE_BOOST_FILESYSTEM,,[define if the Boost::Filesystem library is available])
+@@ -115,4 +115,6 @@
+ LDFLAGS="$LDFLAGS_SAVED"
+ LIBS="$LIBS_SAVED"
+ fi
++
++ AC_LANG_POP([C++])
+ ])
+--- libreoffice-7.2.2.2.orig/m4/ax_boost_iostreams.m4
++++ libreoffice-7.2.2.2/m4/ax_boost_iostreams.m4
+@@ -61,10 +61,11 @@
+ LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
+ export LDFLAGS
+
++ AC_LANG_PUSH([C++])
++
+ AC_CACHE_CHECK(whether the Boost::IOStreams library is available,
+ ax_cv_boost_iostreams,
+- [AC_LANG_PUSH([C++])
+- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <boost/iostreams/filtering_stream.hpp>
++ [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <boost/iostreams/filtering_stream.hpp>
+ @%:@include <boost/range/iterator_range.hpp>
+ ]],
+ [[std::string input = "Hello World!";
+@@ -73,7 +74,6 @@
+ return 0;
+ ]])],
+ ax_cv_boost_iostreams=yes, ax_cv_boost_iostreams=no)
+- AC_LANG_POP([C++])
+ ])
+ if test "x$ax_cv_boost_iostreams" = "xyes"; then
+ AC_DEFINE(HAVE_BOOST_IOSTREAMS,,[define if the Boost::IOStreams library is available])
+@@ -113,4 +113,6 @@
+ CPPFLAGS="$CPPFLAGS_SAVED"
+ LDFLAGS="$LDFLAGS_SAVED"
+ fi
++
++ AC_LANG_POP([C++])
+ ])
+--- libreoffice-7.2.2.2.orig/m4/ax_boost_locale.m4
++++ libreoffice-7.2.2.2/m4/ax_boost_locale.m4
+@@ -62,9 +62,11 @@
+ LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
+ export LDFLAGS
+
++ AC_LANG_PUSH([C++])
++
+ AC_CACHE_CHECK(whether the Boost::Locale library is available,
+ ax_cv_boost_locale,
+- [AC_LANG_PUSH([C++])
++ [
+ CXXFLAGS_SAVE=$CXXFLAGS
+
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <boost/locale.hpp>]],
+@@ -72,7 +74,6 @@
+ std::locale::global(gen(""));]])],
+ ax_cv_boost_locale=yes, ax_cv_boost_locale=no)
+ CXXFLAGS=$CXXFLAGS_SAVE
+- AC_LANG_POP([C++])
+ ])
+ if test "x$ax_cv_boost_locale" = "xyes"; then
+ AC_SUBST(BOOST_CPPFLAGS)
+@@ -116,4 +117,6 @@
+ CPPFLAGS="$CPPFLAGS_SAVED"
+ LDFLAGS="$LDFLAGS_SAVED"
+ fi
++
++ AC_LANG_POP([C++])
+ ])
+--- libreoffice-7.2.2.2.orig/m4/ax_boost_system.m4
++++ libreoffice-7.2.2.2/m4/ax_boost_system.m4
+@@ -64,9 +64,11 @@
+ LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
+ export LDFLAGS
+
++ AC_LANG_PUSH([C++])
++
+ AC_CACHE_CHECK(whether the Boost::System library is available,
+ ax_cv_boost_system,
+- [AC_LANG_PUSH([C++])
++ [
+ CXXFLAGS_SAVE=$CXXFLAGS
+ CXXFLAGS=
+
+@@ -74,7 +76,6 @@
+ [[boost::system::error_category *a = 0;]])],
+ ax_cv_boost_system=yes, ax_cv_boost_system=no)
+ CXXFLAGS=$CXXFLAGS_SAVE
+- AC_LANG_POP([C++])
+ ])
+ if test "x$ax_cv_boost_system" = "xyes"; then
+ AC_SUBST(BOOST_CPPFLAGS)
+@@ -118,4 +119,6 @@
+ CPPFLAGS="$CPPFLAGS_SAVED"
+ LDFLAGS="$LDFLAGS_SAVED"
+ fi
++
++ AC_LANG_POP([C++])
+ ])
diff --git a/repo/libreoffice/disable-liborcus-unittest.patch b/repo/libreoffice/disable-liborcus-unittest.patch
new file mode 100644
index 0000000..318d508
--- /dev/null
+++ b/repo/libreoffice/disable-liborcus-unittest.patch
@@ -0,0 +1,13 @@
+--- a/sc/qa/unit/subsequent_filters-test.cxx
++++ b/sc/qa/unit/subsequent_filters-test.cxx
+@@ -2546,7 +2546,9 @@
+ CPPUNIT_ASSERT_MESSAGE("Style Name1 : Doesn't have Attribute background, but it should have.",
+ pStyleSheet->GetItemSet().HasItem(ATTR_BACKGROUND, &pItem));
+ const SvxBrushItem* pBackground = static_cast<const SvxBrushItem*>(pItem);
+- CPPUNIT_ASSERT_EQUAL(Color(254, 255, 204), pBackground->GetColor());
++ /* This test fails with liborcus >= 0.13.3
++ * CPPUNIT_ASSERT_EQUAL(Color(254, 255, 204), pBackground->GetColor());
++ */
+
+ CPPUNIT_ASSERT_MESSAGE("Style Name1 : Doesn't have Attribute border, but it should have.",
+ pStyleSheet->GetItemSet().HasItem(ATTR_BORDER, &pItem));
diff --git a/repo/libreoffice/fix-execinfo.patch b/repo/libreoffice/fix-execinfo.patch
new file mode 100644
index 0000000..84f3687
--- /dev/null
+++ b/repo/libreoffice/fix-execinfo.patch
@@ -0,0 +1,34 @@
+--- a/sal/osl/unx/backtrace.h
++++ b/sal/osl/unx/backtrace.h
+@@ -20,7 +20,7 @@
+ #ifndef INCLUDED_SAL_OSL_UNX_BACKTRACE_H
+ #define INCLUDED_SAL_OSL_UNX_BACKTRACE_H
+
+-#if defined (LINUX)
++#if defined (LINUX) && defined (__GLIBC__)
+
+ #include <execinfo.h>
+
+--- a/sal/osl/unx/signal.cxx
++++ b/sal/osl/unx/signal.cxx
+@@ -36,7 +36,7 @@
+
+ #endif /* MACOSX */
+
+-#ifdef LINUX
++#if defined(LINUX) && defined(__GLIBC__)
+ #include <execinfo.h>
+ #include <link.h>
+ #define INCLUDE_BACKTRACE
+
+--- a/sal/osl/unx/backtrace.c
++++ b/sal/osl/unx/backtrace.c
+@@ -279,7 +279,7 @@ void backtrace_symbols_fd( void **buffer, int size, int fd )
+ }
+ }
+
+-#elif !defined LINUX && !defined MACOSX && !defined IOS
++#elif !defined LINUX && !defined MACOSX && !defined IOS && !defined(__GLIBC__)
+
+ int backtrace( void **buffer, int max_frames )
+ {
diff --git a/repo/libreoffice/libreoffice-base.xibuild b/repo/libreoffice/libreoffice-base.xibuild
new file mode 100644
index 0000000..b38a445
--- /dev/null
+++ b/repo/libreoffice/libreoffice-base.xibuild
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+DEPS="libreoffice-common"
+DESC="LibreOffice - Database frontend"
+
+splitname="base"
+
+package () {
+ libreoffice_split $splitname
+ add_from_main usr/lib/libreoffice/share/xdg/$splitname.desktop
+}
diff --git a/repo/libreoffice/libreoffice-calc.xibuild b/repo/libreoffice/libreoffice-calc.xibuild
new file mode 100644
index 0000000..c7bc5b2
--- /dev/null
+++ b/repo/libreoffice/libreoffice-calc.xibuild
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+DEPS="libreoffice-common"
+DESC="LibreOffice - Spreadsheet"
+
+splitname="calc"
+
+package () {
+ libreoffice_split $splitname
+ add_from_main usr/lib/libreoffice/share/xdg/$splitname.desktop
+}
diff --git a/repo/libreoffice/libreoffice-common.xibuild b/repo/libreoffice/libreoffice-common.xibuild
new file mode 100644
index 0000000..b726db5
--- /dev/null
+++ b/repo/libreoffice/libreoffice-common.xibuild
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+DEPS="libreoffice-common"
+DESC="LibreOffice - Common Files"
+
+splitname="common"
+
+package () {
+ libreoffice_split $splitname
+}
diff --git a/repo/libreoffice/libreoffice-draw.xibuild b/repo/libreoffice/libreoffice-draw.xibuild
new file mode 100644
index 0000000..cc73569
--- /dev/null
+++ b/repo/libreoffice/libreoffice-draw.xibuild
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+DEPS="libreoffice-common"
+DESC="LibreOffice - Drawing application"
+
+splitname="draw"
+
+package () {
+ libreoffice_split $splitname
+ add_from_main usr/lib/libreoffice/share/xdg/$splitname.desktop
+}
diff --git a/repo/libreoffice/libreoffice-impress.xibuild b/repo/libreoffice/libreoffice-impress.xibuild
new file mode 100644
index 0000000..482203c
--- /dev/null
+++ b/repo/libreoffice/libreoffice-impress.xibuild
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+DEPS="libreoffice-common"
+DESC="LibreOffice - Presentation application"
+
+splitname="impress"
+
+package () {
+ libreoffice_split $splitname
+ add_from_main usr/lib/libreoffice/share/xdg/$splitname.desktop
+}
diff --git a/repo/libreoffice/libreoffice-math.xibuild b/repo/libreoffice/libreoffice-math.xibuild
new file mode 100644
index 0000000..8b4d0a4
--- /dev/null
+++ b/repo/libreoffice/libreoffice-math.xibuild
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+DEPS="libreoffice-common"
+DESC="LibreOffice - Equation Editor"
+
+splitname="math"
+
+package () {
+ libreoffice_split $splitname
+ add_from_main usr/lib/libreoffice/share/xdg/$splitname.desktop
+}
diff --git a/repo/libreoffice/libreoffice-postgres.xibuild b/repo/libreoffice/libreoffice-postgres.xibuild
new file mode 100644
index 0000000..2cac487
--- /dev/null
+++ b/repo/libreoffice/libreoffice-postgres.xibuild
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+DEPS="libreoffice-common"
+DESC="LibreOffice - Connector for postgresql database"
+
+splitname="postgresql"
+
+package () {
+ libreoffice_split $splitname
+}
diff --git a/repo/libreoffice/libreoffice-sdk.xibuild b/repo/libreoffice/libreoffice-sdk.xibuild
new file mode 100644
index 0000000..2106fb0
--- /dev/null
+++ b/repo/libreoffice/libreoffice-sdk.xibuild
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+DEPS="libreoffice-common"
+DESC="LibreOffice - SDK"
+
+splitname="sdk"
+
+package () {
+ libreoffice_split $splitname
+}
diff --git a/repo/libreoffice/libreoffice-writer.xibuild b/repo/libreoffice/libreoffice-writer.xibuild
new file mode 100644
index 0000000..e2c1b74
--- /dev/null
+++ b/repo/libreoffice/libreoffice-writer.xibuild
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+DEPS="libreoffice-common"
+DESC="LibreOffice - Word Processor"
+
+splitname="writer"
+
+package () {
+ libreoffice_split $splitname
+ add_from_main usr/lib/libreoffice/share/xdg/$splitname.desktop
+}
diff --git a/repo/libreoffice/libreoffice.xibuild b/repo/libreoffice/libreoffice.xibuild
new file mode 100644
index 0000000..2cdf242
--- /dev/null
+++ b/repo/libreoffice/libreoffice.xibuild
@@ -0,0 +1,136 @@
+#!/bin/sh
+
+NAME="libreoffice"
+DESC="LibreOffice - Meta package for the full office suite"
+
+MAKEDEPS="apache-ant apr autoconf automake bison bluez boost box2d clucene cppunit cups doxygen findutils flex freetype2 glew glm glu gperf gpgme gst-plugins-base gstreamer gtk3 harfbuzz hunspell hyphen icu junit kconfig lcms2 libabw libcdr libepubgen libetonyek libexecinfo libexttextcat libfreehand libjpeg-turbo libmspub libmwaw libnumbertext libodfgen liborcus libpagemaker libqxp libstaroffice libvisio libwpd libwpg libwps libxml2 libxrandr libxrender libxslt libzmf mdds mythes neon nss libldap openssl perl perl-archive-zip poppler python qt5-qtbase redland sed tar ucpp unixodbc vigra xmlsec xz zip zxing-cpp adoptopenjdk11"
+
+PKG_VER=7.2.6.2
+
+addsrcurl="https://dev-www.libreoffice.org/src"
+case $PKG_VER in
+*.*.*.*) v=${PKG_VER%.*};;
+*.*.*) v=$PKG_VER;;
+esac
+
+SOURCE="https://download.documentfoundation.org/libreoffice/src/$v/libreoffice-$PKG_VER.tar.xz"
+ADDITIONAL="
+ https://download.documentfoundation.org/libreoffice/src/$v/libreoffice-dictionaries-$PKG_VER.tar.xz
+ https://download.documentfoundation.org/libreoffice/src/$v/libreoffice-translations-$PKG_VER.tar.xz
+ $addsrcurl/17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip
+ $addsrcurl/3404ab6b1792ae5f16bbd603bd1e1d03-libformula-1.1.7.zip
+ $addsrcurl/35c94d2df8893241173de1d16b6034c0-swingExSrc.zip
+ $addsrcurl/39bb3fcea1514f1369fcfc87542390fd-sacjava-1.3.zip
+ $addsrcurl/3bdf40c0d199af31923e900d082ca2dd-libfonts-1.1.6.zip
+ $addsrcurl/798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip
+ $addsrcurl/8ce2fcd72becf06c41f7201d15373ed9-librepository-1.1.6.zip
+ $addsrcurl/97b2d4dba862397f446b217e2b623e71-libloader-1.1.6.zip
+ $addsrcurl/ace6ab49184e329db254e454a010f56d-libxml-1.1.7.zip
+ $addsrcurl/ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip
+ $addsrcurl/beeca87be45ec87d241ddd0e1bad80c1-bsh-2.0b6-src.zip
+ $addsrcurl/d8bd5eed178db6e2b18eeed243f85aa8-flute-1.1.6.zip
+ $addsrcurl/db60e4fde8dd6d6807523deb71ee34dc-liblayout-0.2.10.zip
+ $addsrcurl/eeb2c7ddf0d302fba4bfc6e97eac9624-libbase-1.1.6.zip
+ $addsrcurl/f94d9870737518e3b597f9265f4e9803-libserializer-1.1.6.zip
+ $addsrcurl/commons-logging-1.2-src.tar.gz
+ $addsrcurl/dtoa-20180411.tgz
+ $addsrcurl/lxml-4.1.1.tgz
+ $addsrcurl/pdfium-4500.tar.bz2
+ $addsrcurl/skia-m90-45c57e116ee0ce214bdf78405a4762722e4507d9.tar.xz
+ $addsrcurl/QR-Code-generator-1.4.0.tar.gz
+ $addsrcurl/libcmis-0.5.2.tar.xz
+ https://dev-www.libreoffice.org/extern/185d60944ea767075d27247c3162b3bc-unowinreg.dll
+ https://dev-www.libreoffice.org/extern/f543e6e2d7275557a839a164941c0a86e5f2c3f2a0042bfc434c88c6dde9e140-opens___.ttf
+
+autoconf-boost-macros.patch
+disable-liborcus-unittest.patch
+fix-execinfo.patch
+linux-musl.patch
+musl-libintl.patch
+musl-stacksize.patch
+pld-skia-patches.patch
+poppler-22.03.patch
+remove-backtrace.patch
+skia-freetype2.11.diff
+"
+
+unpack() {
+ mkdir -p "$BUILD_ROOT"
+ for u in libreoffice-*.tar.xz; do
+ unxz -c "$s" | tar -C "$BUILD_ROOT" -x
+ done
+}
+
+prepare() {
+ unpack
+ mv "$BUILD_ROOT/skia-freetype2.11.diff" external/skia/"skia-freetype2.11.patch"
+
+ apply_patches
+ NOCONFIGURE=1 ./autogen.sh
+}
+
+build() {
+ export CFLAGS="$CFLAGS -O2"
+ export CPPFLAGS="$CPPFLAGS -O2"
+ export CXXFLAGS="$CXXFLAGS -O2"
+
+ # boost-1.59
+ export CPPFLAGS="$CPPFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY -DBOOST_SYSTEM_NO_DEPRECATED"
+
+ export JAVA_HOME=/usr/lib/jvm/adoptopenjdk11
+ java_conf="
+ "
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --localstatedir=/var \
+ --disable-online-update \
+ --disable-fetch-external \
+ --disable-dependency-tracking \
+ --enable-release-build \
+ --enable-split-app-modules \
+ --enable-python=system \
+ --with-tls=nss \
+ --with-system-libs \
+ --with-system-dicts \
+ --with-system-ucpp \
+ --with-external-dict-dir=/usr/share/hunspell \
+ --with-external-hyph-dir=/usr/share/hyphen \
+ --with-external-tar="$BUILD_ROOT" \
+ --without-system-jars \
+ --without-system-libcmis \
+ --without-junit \
+ --without-fonts \
+ --without-system-sane \
+ --without-myspell-dicts \
+ --disable-firebird-sdbc \
+ --disable-coinmp \
+ --disable-lpsolve \
+ --enable-gtk3 \
+ --enable-odk \
+ --enable-skia \
+ --enable-gtk3-kde5 \
+ --enable-kf5 \
+ --enable-qt5 \
+ --with-jdk-home=$JAVA_HOME \
+ --with-ant-home=/usr/share/java/apache-ant \
+ --with-java
+
+ make build-nocheck
+}
+
+package() {
+ make DESTDIR="$PKG_DEST"/../all distro-pack-install
+}
+
+libreoffice_split() {
+ local i
+ grep "^[^% ]" $BUILD_ROOT/file-lists/${1}_list.txt | sort -u | while IFS= read -r i; do
+ [ "$i" ] || continue
+ dirname="$(dirname $i)"
+ [ -d "$PKG_DEST/$dirname" ] || install -dm755 "$PKG_DEST/$dirname"
+ add_from_main $i
+ done
+}
diff --git a/repo/libreoffice/linux-musl.patch b/repo/libreoffice/linux-musl.patch
new file mode 100644
index 0000000..9e192bc
--- /dev/null
+++ b/repo/libreoffice/linux-musl.patch
@@ -0,0 +1,60 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -612,7 +612,7 @@
+ fi
+ ;;
+
+-linux-gnu*|k*bsd*-gnu*)
++linux-gnu*|linux-musl*|k*bsd*-gnu*)
+ using_freetype_fontconfig=yes
+ using_x11=yes
+ build_skia=yes
+@@ -4353,7 +4353,7 @@
+ esac
+ ;;
+
+-linux-gnu*)
++linux-gnu*|linux-musl*)
+ COM=GCC
+ USING_X11=TRUE
+ OS=LINUX
+@@ -7672,7 +7672,7 @@
+ test -d "$JAVA_HOME/include/native_thread" && JAVAINC="$JAVAINC -I$JAVA_HOME/include/native_thread"
+ ;;
+
+- linux-gnu*)
++ linux-gnu*|linux-musl*)
+ JAVAINC="-I$JAVA_HOME/include"
+ JAVAINC="$JAVAINC -I$JAVA_HOME/include/linux"
+ test -d "$JAVA_HOME/include/native_thread" && JAVAINC="$JAVAINC -I$JAVA_HOME/include/native_thread"
+@@ -10260,21 +10260,6 @@
+ AC_SUBST(ENABLE_LIBNUMBERTEXT)
+ AC_SUBST(LIBNUMBERTEXT_CFLAGS)
+
+-dnl ***************************************
+-dnl testing libc version for Linux...
+-dnl ***************************************
+-if test "$_os" = "Linux"; then
+- AC_MSG_CHECKING([whether libc is >= 2.1.1])
+- exec 6>/dev/null # no output
+- AC_CHECK_LIB(c, gnu_get_libc_version, HAVE_LIBC=yes; export HAVE_LIBC)
+- exec 6>&1 # output on again
+- if test "$HAVE_LIBC"; then
+- AC_MSG_RESULT([yes])
+- else
+- AC_MSG_ERROR([no, upgrade libc])
+- fi
+-fi
+-
+ dnl =========================================
+ dnl Check for uuidgen
+ dnl =========================================
+@@ -12812,7 +12812,7 @@
+
+ case "$host_os" in
+
+- aix*|dragonfly*|freebsd*|linux-gnu*|*netbsd*|openbsd*)
++ aix*|dragonfly*|freebsd*|linux-gnu*|linux-musl*|*netbsd*|openbsd*)
+ if test "$ENABLE_JAVA" != ""; then
+ pathmunge "$JAVA_HOME/bin" "after"
+ fi
diff --git a/repo/libreoffice/musl-libintl.patch b/repo/libreoffice/musl-libintl.patch
new file mode 100644
index 0000000..ceaaaff
--- /dev/null
+++ b/repo/libreoffice/musl-libintl.patch
@@ -0,0 +1,15 @@
+diff --git a/unotools/Library_utl.mk b/unotools/Library_utl.mk
+index 0bfcbad..99acee1 100644
+--- a/unotools/Library_utl.mk
++++ b/unotools/Library_utl.mk
+@@ -16,6 +16,10 @@ $(eval $(call gb_Library_use_externals,utl,\
+ boost_locale \
+ ))
+
++$(eval $(call gb_Library_add_libs,utl,\
++ -lintl \
++))
++
+ $(eval $(call gb_Library_use_custom_headers,utl,\
+ officecfg/registry \
+ ))
diff --git a/repo/libreoffice/musl-stacksize.patch b/repo/libreoffice/musl-stacksize.patch
new file mode 100644
index 0000000..5e72205
--- /dev/null
+++ b/repo/libreoffice/musl-stacksize.patch
@@ -0,0 +1,40 @@
+--- a/sal/osl/unx/thread.cxx
++++ b/sal/osl/unx/thread.cxx
+@@ -250,7 +250,7 @@
+ short nFlags)
+ {
+ Thread_Impl* pImpl;
+-#if defined OPENBSD || ((defined MACOSX || defined LINUX) && !ENABLE_RUNTIME_OPTIMIZATIONS)
++#if defined OPENBSD || ((defined MACOSX || defined LINUX) && !ENABLE_RUNTIME_OPTIMIZATIONS) || (defined LINUX && !defined __GLIBC__)
+ pthread_attr_t attr;
+ size_t stacksize;
+ #endif
+
+@@ -266,7 +266,7 @@
+
+ pthread_mutex_lock (&(pImpl->m_Lock));
+
+-#if defined OPENBSD || ((defined MACOSX || defined LINUX) && !ENABLE_RUNTIME_OPTIMIZATIONS)
++#if defined OPENBSD || ((defined MACOSX || defined LINUX) && !ENABLE_RUNTIME_OPTIMIZATIONS) || (defined LINUX && !defined __GLIBC__)
+ if (pthread_attr_init(&attr) != 0)
+ return nullptr;
+
+@@ -283,7 +283,7 @@
+
+ if ((nRet = pthread_create (
+ &(pImpl->m_hThread),
+-#if defined OPENBSD || ((defined MACOSX || defined LINUX) && !ENABLE_RUNTIME_OPTIMIZATIONS)
++#if defined OPENBSD || ((defined MACOSX || defined LINUX) && !ENABLE_RUNTIME_OPTIMIZATIONS) || (defined LINUX && !defined __GLIBC__)
+ &attr,
+ #else
+ PTHREAD_ATTR_DEFAULT,
+
+@@ -301,7 +301,7 @@
+ return nullptr;
+ }
+
+-#if defined OPENBSD || ((defined MACOSX || defined LINUX) && !ENABLE_RUNTIME_OPTIMIZATIONS)
++#if defined OPENBSD || ((defined MACOSX || defined LINUX) && !ENABLE_RUNTIME_OPTIMIZATIONS) || (defined LINUX && !defined __GLIBC__)
+ pthread_attr_destroy(&attr);
+ #endif
+
diff --git a/repo/libreoffice/pld-skia-patches.patch b/repo/libreoffice/pld-skia-patches.patch
new file mode 100644
index 0000000..b54dfe4
--- /dev/null
+++ b/repo/libreoffice/pld-skia-patches.patch
@@ -0,0 +1,10 @@
+--- libreoffice-7.2.2.2/external/skia/UnpackedTarball_skia.mk.orig 2021-08-10 19:27:48.000000000 +0200
++++ libreoffice-7.2.2.2/external/skia/UnpackedTarball_skia.mk 2021-08-12 18:09:22.813517161 +0200
+@@ -41,6 +41,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/repo/libreoffice/poppler-22.03.patch b/repo/libreoffice/poppler-22.03.patch
new file mode 100644
index 0000000..daa16a2
--- /dev/null
+++ b/repo/libreoffice/poppler-22.03.patch
@@ -0,0 +1,39 @@
+Patch-Source: https://github.com/archlinux/svntogit-packages/blob/2c89c1f968a5f8a6f260a4b91f19f43fae433520/trunk/poppler-22.03.0.patch
+edited to add <memory> import
+diff --git a/sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx b/sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx
+index ad6320139..e5f6d9c68 100644
+--- a/sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx
++++ b/sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx
+@@ -28,6 +28,8 @@
+ #include <config_folders.h> //LIBO_SHARE_FOLDER
+ #endif
+
++#include <memory>
++
+ FILE* g_binary_out=stderr;
+
+ static const char *ownerPassword = "\001";
+@@ -138,6 +138,15 @@ int main(int argc, char **argv)
+ _setmode( _fileno( g_binary_out ), _O_BINARY );
+ #endif
+
++#if POPPLER_CHECK_VERSION(22, 3, 0)
++ PDFDoc aDoc( std::make_unique<GooString>(pFileName),
++ GooString(pOwnerPasswordStr),
++ GooString(pUserPasswordStr) );
++
++ PDFDoc aErrDoc( std::make_unique<GooString>(pErrFileName),
++ GooString(pOwnerPasswordStr),
++ GooString(pUserPasswordStr) );
++#else
+ PDFDoc aDoc( pFileName,
+ pOwnerPasswordStr,
+ pUserPasswordStr );
+@@ -145,6 +154,7 @@ int main(int argc, char **argv)
+ PDFDoc aErrDoc( pErrFileName,
+ pOwnerPasswordStr,
+ pUserPasswordStr );
++#endif
+
+ // Check various permissions for aDoc.
+ PDFDoc &rDoc = aDoc.isOk()? aDoc: aErrDoc;
diff --git a/repo/libreoffice/remove-backtrace.patch b/repo/libreoffice/remove-backtrace.patch
new file mode 100644
index 0000000..f4eda53
--- /dev/null
+++ b/repo/libreoffice/remove-backtrace.patch
@@ -0,0 +1,163 @@
+diff --git a/sal/Library_sal.mk b/sal/Library_sal.mk
+index d783c84e3..555efd664 100644
+--- a/sal/Library_sal.mk
++++ b/sal/Library_sal.mk
+@@ -156,7 +156,6 @@ endif
+
+ ifneq ($(OS),WNT)
+ $(eval $(call gb_Library_add_exception_objects,sal,\
+- sal/osl/unx/backtraceapi \
+ sal/osl/unx/conditn \
+ sal/osl/unx/file \
+ sal/osl/unx/file_error_transl \
+diff --git a/sal/osl/all/log.cxx b/sal/osl/all/log.cxx
+index c493f4ddf..f8f4fab62 100644
+--- a/sal/osl/all/log.cxx
++++ b/sal/osl/all/log.cxx
+@@ -283,9 +283,6 @@ void sal_detail_log(
+ ? nStrLen : 0));
+ }
+ s << message;
+- if (backtraceDepth != 0) {
+- s << " at:\n" << osl::detail::backtraceAsString(backtraceDepth);
+- }
+
+ #if defined ANDROID
+ int android_log_level;
+diff --git a/sal/osl/unx/backtraceapi.cxx b/sal/osl/unx/backtraceapi.cxx
+deleted file mode 100644
+index d11128353..000000000
+--- a/sal/osl/unx/backtraceapi.cxx
++++ /dev/null
+@@ -1,72 +0,0 @@
+-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+-/*
+- * This file is part of the LibreOffice project.
+- *
+- * This Source Code Form is subject to the terms of the Mozilla Public
+- * License, v. 2.0. If a copy of the MPL was not distributed with this
+- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+- */
+-
+-#include <sal/config.h>
+-
+-#include <cassert>
+-#include <cstdlib>
+-#include <limits>
+-#include <memory>
+-
+-#include <o3tl/runtimetooustring.hxx>
+-#include <rtl/ustrbuf.hxx>
+-#include <rtl/ustring.hxx>
+-#include <sal/types.h>
+-#include <sal/backtrace.hxx>
+-
+-#include "backtrace.h"
+-#include <backtraceasstring.hxx>
+-
+-namespace {
+-
+-struct FreeGuard {
+- FreeGuard(char ** theBuffer): buffer(theBuffer) {}
+-
+- ~FreeGuard() { std::free(buffer); }
+-
+- char ** buffer;
+-};
+-
+-}
+-
+-OUString osl::detail::backtraceAsString(sal_uInt32 maxDepth) {
+- std::unique_ptr<sal::BacktraceState> backtrace = sal::backtrace_get( maxDepth );
+- return sal::backtrace_to_string( backtrace.get());
+-}
+-
+-std::unique_ptr<sal::BacktraceState> sal::backtrace_get(sal_uInt32 maxDepth)
+-{
+- assert(maxDepth != 0);
+- auto const maxInt = static_cast<unsigned int>(
+- std::numeric_limits<int>::max());
+- if (maxDepth > maxInt) {
+- maxDepth = static_cast<sal_uInt32>(maxInt);
+- }
+- auto b1 = new void *[maxDepth];
+- int n = backtrace(b1, static_cast<int>(maxDepth));
+- return std::unique_ptr<BacktraceState>(new BacktraceState{ b1, n });
+-}
+-
+-OUString sal::backtrace_to_string(BacktraceState* backtraceState)
+-{
+- FreeGuard b2(backtrace_symbols(backtraceState->buffer, backtraceState->nDepth));
+- if (b2.buffer == nullptr) {
+- return OUString();
+- }
+- OUStringBuffer b3;
+- for (int i = 0; i != backtraceState->nDepth; ++i) {
+- if (i != 0) {
+- b3.append("\n");
+- }
+- b3.append(o3tl::runtimeToOUString(b2.buffer[i]));
+- }
+- return b3.makeStringAndClear();
+-}
+-
+-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
+diff --git a/svl/source/notify/lstner.cxx b/svl/source/notify/lstner.cxx
+index 40a59960a..3efcc004c 100644
+--- a/svl/source/notify/lstner.cxx
++++ b/svl/source/notify/lstner.cxx
+@@ -80,13 +80,6 @@ void SfxListener::StartListening(SfxBroadcaster& rBroadcaster, DuplicateHandling
+ {
+ bool bListeningAlready = IsListening( rBroadcaster );
+
+-#ifdef DBG_UTIL
+- if (bListeningAlready && eDuplicateHanding == DuplicateHandling::Unexpected)
+- {
+- auto f = maCallStacks.find( &rBroadcaster );
+- SAL_WARN("svl", "previous StartListening call came from: " << sal::backtrace_to_string(f->second.get()));
+- }
+-#endif
+ assert(!(bListeningAlready && eDuplicateHanding == DuplicateHandling::Unexpected) && "duplicate listener, try building with DBG_UTIL to find the other insert site.");
+
+ if (!bListeningAlready || eDuplicateHanding != DuplicateHandling::Prevent)
+diff --git a/sw/source/core/attr/calbck.cxx b/sw/source/core/attr/calbck.cxx
+index 3f4253cd2..8af3ee184 100644
+--- a/sw/source/core/attr/calbck.cxx
++++ b/sw/source/core/attr/calbck.cxx
+@@ -170,18 +170,6 @@ bool SwModify::GetInfo( SfxPoolItem& rInfo ) const
+ void SwModify::Add( SwClient* pDepend )
+ {
+ DBG_TESTSOLARMUTEX();
+-#ifdef DBG_UTIL
+- // You should not EVER use SwModify directly in new code:
+- // - Preexisting SwModifys should only ever be used via sw::BroadcastingModify.
+- // This includes sw::BroadcastMixin, which is the long-term target (without
+- // SwModify).
+- // - New classes should use sw::BroadcastMixin alone.
+- if(!dynamic_cast<sw::BroadcastingModify*>(this))
+- {
+- auto pBT = sal::backtrace_get(20);
+- SAL_WARN("sw.core", "Modify that is not broadcasting used!\n" << sal::backtrace_to_string(pBT.get()));
+- }
+-#endif
+
+ if(pDepend->m_pRegisteredIn == this)
+ return;
+diff --git a/sw/source/core/docnode/node.cxx b/sw/source/core/docnode/node.cxx
+index 4f7b18ba3..fbd2eb361 100644
+--- a/sw/source/core/docnode/node.cxx
++++ b/sw/source/core/docnode/node.cxx
+@@ -1164,13 +1164,6 @@ void SwContentNode::SwClientNotify( const SwModify&, const SfxHint& rHint)
+ // This makes the crude "WhichId" type divert from the true type, which is bad.
+ // Thus we are asserting here, but falling back to an proper
+ // hint instead. so that we at least will not spread such poison further.
+-#ifdef DBG_UTIL
+- if(pLegacyHint->m_pNew != pLegacyHint->m_pOld)
+- {
+- auto pBT = sal::backtrace_get(20);
+- SAL_WARN("sw.core", "UpdateAttr not matching! " << sal::backtrace_to_string(pBT.get()));
+- }
+-#endif
+ assert(pLegacyHint->m_pNew == pLegacyHint->m_pOld);
+ assert(dynamic_cast<const SwUpdateAttr*>(pLegacyHint->m_pNew));
+ const SwUpdateAttr aFallbackHint(0,0,0);
diff --git a/repo/libreoffice/skia-freetype2.11.diff b/repo/libreoffice/skia-freetype2.11.diff
new file mode 100644
index 0000000..97be7f2
--- /dev/null
+++ b/repo/libreoffice/skia-freetype2.11.diff
@@ -0,0 +1,37 @@
+--- 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: