diff options
Diffstat (limited to 'repo/libreoffice')
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: |