From d7e5a71711acc59d51324fd29340e00b720ba625 Mon Sep 17 00:00:00 2001 From: Zach van Rijn Date: Fri, 25 Nov 2022 19:29:48 -0600 Subject: user/libreoffice: Move to legacy/ We have decided to not ship LO for RC3 in its current form; bumping it to the latest version will require significant effort to bump Skia, which will be done post-RC3. --- legacy/libreoffice/APKBUILD | 495 +++++++++++++++++++++ legacy/libreoffice/disable-crc-test.patch | 62 +++ legacy/libreoffice/disable-mariadbc.patch | 13 + .../libreoffice/disable-outdated-font-test.patch | 16 + legacy/libreoffice/fix-execinfo.patch | 33 ++ legacy/libreoffice/gettext-tiny.patch | 38 ++ legacy/libreoffice/linux-musl.patch | 42 ++ legacy/libreoffice/mso-lockfile-utf16le.patch | 33 ++ legacy/libreoffice/poppler-0.83.patch | 70 +++ 9 files changed, 802 insertions(+) create mode 100644 legacy/libreoffice/APKBUILD create mode 100644 legacy/libreoffice/disable-crc-test.patch create mode 100644 legacy/libreoffice/disable-mariadbc.patch create mode 100644 legacy/libreoffice/disable-outdated-font-test.patch create mode 100644 legacy/libreoffice/fix-execinfo.patch create mode 100644 legacy/libreoffice/gettext-tiny.patch create mode 100644 legacy/libreoffice/linux-musl.patch create mode 100644 legacy/libreoffice/mso-lockfile-utf16le.patch create mode 100644 legacy/libreoffice/poppler-0.83.patch (limited to 'legacy/libreoffice') diff --git a/legacy/libreoffice/APKBUILD b/legacy/libreoffice/APKBUILD new file mode 100644 index 000000000..29ec4c2d3 --- /dev/null +++ b/legacy/libreoffice/APKBUILD @@ -0,0 +1,495 @@ +# Contributor: Jens Staal +# Contributor: Timo Teräs +# Maintainer: Max Rees + +# You probably don't want "srcdir", "pkgdir", or "deps" in CLEANUP, +# and you definitely don't want "deps" in ERROR_CLEANUP. +# Just "abuild clean undeps" once you're completely done. +# +# Even with JOBS=4 you're gonna want at least 8 GB of RAM. +# +# * Disk space: +# * Dependencies: 1557 MiB = 1.5 GiB +# * Downloads: 515 MiB +# * Subtotal: 2072 MiB = 2.0 GiB +# * Complete src: 34134 MiB +# * Complete pkg: 9399 MiB +# * All APKs: 2282 MiB = 2.2 GiB +# * Subtotal: 45815 MiB = 44.7 GiB +# * Grand total: 47887 MiB = 46.8 GiB +# +# Build stats: +# * Run "abuild deps fetch" first. +# * time abuild -r +# +# * x86_64 Intel i7-4810MQ (4 core 2.8 GHz, turbo to 3.8 GHz, no HT) +# JOBS=4, 8 GB RAM +# abuild -r 29590.16s user 1077.69s system 340% cpu 2:30:13.12 total + +pkgname=libreoffice +pkgver=6.4.0.3 +pkgrel=0 +case "$pkgver" in +*.*.*.*) _ver="${pkgver%.*}";; +*.*.*) _ver="$pkgver";; +esac +pkgdesc="LibreOffice - Meta package for the full office suite" +url="https://www.libreoffice.org/" +# While the metapackage technically is empty and should be "noarch", there's +# no easy way to change this to noarch and then change all of the subpackages +# to have the correct arch. Setting $arch in a split function is forbidden, +# and $subpackages doesn't really support setting $arch to anything other than +# noarch. +arch="all" +options="" +license="MPL-2.0 AND Apache-2.0 AND MIT AND X11 AND (MPL-1.1 OR GPL-2.0+ OR LGPL-2.1+) AND GPL-2.0+ AND GPL-3.0 AND GPL-3.0+ AND LGPL-2.1 AND LGPL-3.0+ AND BSD-3-Clause AND SISSL AND IJG AND CC-BY-SA-3.0" + +depends="$pkgname-base=$pkgver-r$pkgrel + $pkgname-calc=$pkgver-r$pkgrel + $pkgname-common=$pkgver-r$pkgrel + $pkgname-draw=$pkgver-r$pkgrel + $pkgname-impress=$pkgver-r$pkgrel + $pkgname-math=$pkgver-r$pkgrel + $pkgname-connector-postgres=$pkgver-r$pkgrel + $pkgname-writer=$pkgver-r$pkgrel + " +# 1. Base dependencies +# 2. GUIs - gen +# 3. GUIs - gtk+2.0 +# 4. File formats +makedepends="apr-dev autoconf automake bash bison boost-dev cairo-dev + clucene-dev cmd:which coreutils cppunit-dev cups-dev dbus-glib-dev findutils + flex fontconfig-dev fontforge-dev freetype-dev glm gperf gpgme-dev + gst-plugins-base-dev gstreamer-dev harfbuzz-dev hunspell-dev hyphen-dev icu + icu-dev lcms2-dev libcmis-dev libexttextcat-dev libjpeg-turbo-dev + libnumbertext-dev libpng-dev libqrcodegen libxml2-utils libxslt-dev mdds~1.5 + mythes-dev neon-dev nss-dev openldap-dev openssl-dev perl poppler-dev + postgresql-dev python3-dev py3-lxml redland-dev sane-dev sed ucpp + unixodbc-dev util-linux xmlsec-dev zip + + libepoxy-dev libxinerama-dev libxrandr-dev libxrender-dev libxext-dev + + gtk+3.0-dev glib-dev mesa-dev + + libabw-dev libcdr-dev libe-book-dev libepubgen-dev libetonyek-dev + libfreehand-dev libmspub-dev libmwaw-dev libodfgen-dev liborcus-dev~0.15 + libpagemaker-dev libqxp-dev libstaroffice-dev libvisio-dev libwpd-dev + libwpg-dev libwps-dev libzmf-dev + " + +# -common also depends on these fonts +_fonts="ttf-liberation ttf-dejavu ttf-carlito" +checkdepends="$_fonts" + +# The order here is important. +# -doc comes first since it redirects manpages from the other subpackages +# -lang-* comes before -common since it redirects miscellaneous +# language-specific files from -common +subpackages="$pkgname-doc $pkgname-base $pkgname-gtk3 + $pkgname-calc $pkgname-draw $pkgname-impress $pkgname-math + $pkgname-connector-postgres $pkgname-writer" +source="https://download.documentfoundation.org/$pkgname/src/$_ver/$pkgname-$pkgver.tar.xz + https://download.documentfoundation.org/$pkgname/src/$_ver/$pkgname-dictionaries-$pkgver.tar.xz + https://download.documentfoundation.org/$pkgname/src/$_ver/$pkgname-translations-$pkgver.tar.xz + https://download.documentfoundation.org/$pkgname/src/$_ver/$pkgname-help-$pkgver.tar.xz + linux-musl.patch + fix-execinfo.patch + gettext-tiny.patch + disable-crc-test.patch + disable-outdated-font-test.patch + disable-mariadbc.patch + mso-lockfile-utf16le.patch + poppler-0.83.patch + " +ldpath="/usr/lib/$pkgname/program" + +_languages="af:Afrikaans:MPL-2.0 AND Public-Domain AND LGPL-3.0 AND LGPL-2.1+ AND Apache-2.0 + am:Amharic:MPL-2.0 AND Apache-2.0 + an:Aragonese:MPL-1.1 OR GPL-3.0+ OR LGPL-3.0+ + ar:Arabic:MPL-2.0 AND (GPL-2.0+ OR LGPL-2.1+ OR MPL-1.1+) AND Apache-2.0 + as:Assamese:MPL-2.0 AND Apache-2.0 + ast:Asturian:MPL-2.0 AND Apache-2.0 + be:Belarusian:MPL-2.0 AND CC-BY-SA-3.0 AND Apache-2.0 + bg:Bulgarian:MPL-2.0 AND GPL-2.0+ AND Apache-2.0 + bn:Bengali:MPL-2.0 AND GPL-2.0 AND Apache-2.0 + bn_in:Bengali (India):MPL-2.0 AND Apache-2.0 + bo:Tibetan:MPL-2.0 AND Apache-2.0 + br:Breton:MPL-2.0 AND LGPL-3.0 AND Apache-2.0 + brx:Bodo:MPL-2.0 AND Apache-2.0 + bs:Bosnian:MPL-2.0 AND Apache-2.0 + ca:Catalan:MPL-2.0 AND GPL-2.0+ AND GPL-3.0+ AND (GPL-3.0+ OR LGPL-3.0+) AND Apache-2.0 + ca_valencia:Catalan (Valencian):MPL-2.0 AND Apache-2.0 + cs:Czech:MPL-2.0 AND Custom AND Apache-2.0 + cy:Welsh (Cymraeg):MPL-2.0 AND Apache-2.0 + da:Danish:MPL-2.0 AND (GPL-2.0 OR LGPL-2.1 OR MPL-1.1) AND Apache-2.0 + de:German:MPL-2.0 AND (GPL-2.0 OR GPL-3.0 OR OASIS-0.1) AND Apache-2.0 + dgo:Dogri proper:MPL-2.0 AND Apache-2.0 + dz:Dzongkha:MPL-2.0 AND Apache-2.0 + el:Greek:MPL-2.0 AND (GPL-2.0 OR LGPL-2.1 OR MPL-1.1) AND Apache-2.0 + en_gb:English (UK):MPL-2.0 + en_us:English (US):MPL-2.0 AND Custom AND MIT AND (MPL-1.1 OR GPL-3.0+ OR LGPL-3.0+) AND GPL-2.0+ AND LGPL-2.1+ AND Apache-2.0 + en_za:English (South Africa):MPL-2.0 + eo:Esperanto:MPL-2.0 AND Apache-2.0 + es:Spanish:MPL-2.0 AND (GPL-3.0 OR LGPL-3.0 OR MPL-1.1) AND LGPL-2.1 AND Apache-2.0 + et:Estonian:MPL-2.0 AND LGPL-2.1 AND LPPL-1.3c AND Apache-2.0 + eu:Basque:MPL-2.0 AND Apache-2.0 + fa:Persian (Farsi):MPL-2.0 AND Apache-2.0 + fi:Finnish:MPL-2.0 AND Apache-2.0 + fr:French:MPL-2.0 AND (MPL-1.1+ OR GPL-2.0+ OR LGPL-2.1+) AND LPPL-1.3c AND LGPL-2.1+ AND Apache-2.0 + ga:Irish:MPL-2.0 AND Apache-2.0 + gd:Scottish Gaelic:MPL-2.0 AND GPL-3.0 AND Apache-2.0 + gl:Galician:MPL-2.0 AND GPL-3.0 AND Apache-2.0 + gu:Gujarati:MPL-2.0 AND GPL-3.0 AND Apache-2.0 + gug:Guaraní (Paraguay):MPL-2.0 AND Apache-2.0 + he:Hebrew:MPL-2.0 AND GPL-3.0 AND Apache-2.0 + hi:Hindi:MPL-2.0 AND GPL-2.0+ AND Apache-2.0 + hr:Croatian:MPL-2.0 AND LGPL-2.1 AND Apache-2.0 + hu:Hungarian:MPL-2.0 AND (GPL-2.0+ OR LGPL-2.1+ OR MPL-1.1+) AND Apache-2.0 + id:Indonesian:MPL-2.0 AND Apache-2.0 + is:Icelandic:MPL-2.0 AND CC-BY-SA-3.0 AND Apache-2.0 + it:Italian:MPL-2.0 AND GPL-3.0 AND LGPL-3.0 AND Apache-2.0 + ja:Japanese:MPL-2.0 AND Apache-2.0 + ka:Georgian:MPL-2.0 AND Apache-2.0 + kk:Kazakh:MPL-2.0 AND Apache-2.0 + km:Khmer:MPL-2.0 AND Apache-2.0 + kmr_latn:Kurmanji Kurdish (Latin):MPL-2.0 AND Apache-2.0 + kn:Kannada:MPL-2.0 AND Apache-2.0 + ko:Korean:MPL-2.0 AND Apache-2.0 + kok:Konkani:MPL-2.0 AND Apache-2.0 + ks:Kashmiri:MPL-2.0 AND Apache-2.0 + lb:Luxembourgish:MPL-2.0 AND Apache-2.0 + lo:Lao:MPL-2.0 AND LGPL-2.1 AND Apache-2.0 + lt:Lithuanian:MPL-2.0 AND BSD-3-Clause AND LPPL-1.3c AND Apache-2.0 + lv:Latvian:MPL-2.0 AND LGPL-2.1 AND Apache-2.0 + mai:Maithili:MPL-2.0 AND Apache-2.0 + mk:Macedonian:MPL-2.0 AND Apache-2.0 + ml:Malayalam:MPL-2.0 AND Apache-2.0 + mn:Mongolian:MPL-2.0 AND Apache-2.0 + mni:Meithei (Manipuri):MPL-2.0 AND Apache-2.0 + mr:Marathi:MPL-2.0 AND Apache-2.0 + my:Burmese:MPL-2.0 AND Apache-2.0 + nb:Norwegian (Bokmal):MPL-2.0 AND Apache-2.0 + ne:Nepali:MPL-2.0 AND LGPL-2.1 AND Apache-2.0 + nl:Dutch:MPL-2.0 AND (BSD-2-Clause OR CC-BY-3.0) AND Apache-2.0 + no:Norwegian:GPL-2.0 + nn:Nynorsk:MPL-2.0 AND Apache-2.0 + nr:Ndebele (South):MPL-2.0 AND Apache-2.0 + nso:Northern Sotho:MPL-2.0 AND Apache-2.0 + oc:Occitan:MPL-2.0 AND GPL-2.0+ AND Apache-2.0 + om:Oromo:MPL-2.0 AND Apache-2.0 + or:Oriya:MPL-2.0 AND Apache-2.0 + pa_in:Punjabi (India):MPL-2.0 AND Apache-2.0 + pl:Polish:MPL-2.0 AND (GPL OR LGPL OR MPL OR CC-SA-1.0) AND LGPL-3.0 AND LGPL-2.1 AND Apache-2.0 + pt:Portuguese:MPL-2.0 AND (GPL-2.0 OR LGPL-2.1 OR MPL-1.1) AND GPL-2.0 AND Apache-2.0 + pt_br:Portuguese (Brazil):MPL-2.0 AND (LGPL-3.0 OR MPL-1.1) AND (GPL-3.0+ OR LGPL-3.0+ OR MPL-1.1) AND Apache-2.0 + ro:Romanian:MPL-2.0 AND (GPL-2.0 OR LGPL-2.1 OR MPL-1.1) AND GPL-2.0 AND GPL-2.0+ AND Apache-2.0 + ru:Russian:MPL-2.0 AND (MPL-1.1 OR GPL OR LGPL) AND Custom AND LGPL AND Apache-2.0 + rw:Kinyarwanda:MPL-2.0 AND Apache-2.0 + sa_in:Sanskrit (India):MPL-2.0 AND Apache-2.0 + sat:Santali:MPL-2.0 AND Apache-2.0 + sd:Sindhi:MPL-2.0 AND Apache-2.0 + si:Sinhala:MPL-2.0 AND GPL-3.0 AND Apache-2.0 + sid:Sidamo:MPL-2.0 AND Apache-2.0 + sk:Slovak:MPL-2.0 AND (GPL-2.0 OR LGPL-2.1 OR MPL-1.1) AND LPPL-1.3c AND MIT AND Apache-2.0 + sl:Slovenian:MPL-2.0 AND (GPL-2.0 OR LGPL-2.1) AND LGPL-2.1 AND Apache-2.0 + sq:Albanian:MPL-2.0 AND Apache-2.0 + ss:Swati:MPL-2.0 AND Apache-2.0 + st:Southern Sotho:MPL-2.0 AND Apache-2.0 + sv:Swedish:MPL-2.0 AND LGPL-3.0 AND Custom AND Apache-2.0 + sw_tz:Swahili (Tanzania):MPL-2.0 AND LGPL-2.1 AND Apache-2.0 + ta:Tamil:MPL-2.0 AND Apache-2.0 + te:Telugu:MPL-2.0 AND GPL-2.0+ AND (GPL-3.0+ OR LGPL-3.0+) AND Apache-2.0 + tg:Tajik:MPL-2.0 AND Apache-2.0 + th:Thai:MPL-2.0 AND LGPL-2.1 AND Apache-2.0 + tn:Tswana:MPL-2.0 AND Apache-2.0 + tr:Turkish:MPL-2.0 AND Apache-2.0 + ts:Tsonga:MPL-2.0 AND Apache-2.0 + tt:Tatar:MPL-2.0 AND Apache-2.0 + ug:Uyghur:MPL-2.0 AND Apache-2.0 + uk:Ukrainian:MPL-2.0 AND (GPL-2.0+ OR LGPL-2.1+ OR MPL-1.1) AND GPL-2.0+ AND Apache-2.0 + uz:Uzbek:MPL-2.0 AND Apache-2.0 + ve:Venda:MPL-2.0 AND Apache-2.0 + vi:Vietnamese:MPL-2.0 AND GPL-2.0 AND Apache-2.0 + xh:Xhosa:MPL-2.0 AND Apache-2.0 + zh_cn:Simplified Chinese (People's Republic of China):MPL-2.0 AND Apache-2.0 + zh_tw:Traditional Chinese (Taiwan):MPL-2.0 AND Apache-2.0 + zu:Zulu:MPL-2.0 AND LGPL-2.1 AND Apache-2.0 + " +_lo_lang() { + local lang="$1" + case "$lang" in + # e.g. zh_cn -> zh_CN + *_[a-z][a-z]) lang="${lang%_*}_$(printf '%s' "${lang#*_}" | tr '[a-z]' '[A-Z]')";; + # e.g. sr_latn -> sr_Latn + *_latn) lang="${lang%_latn}_Latn";; + esac + printf '%s' "$lang" +} +_lo_languages="" +for _lang in $(printf '%s' "$_languages" | cut -d : -f 1); do + subpackages="$subpackages $pkgname-lang-$_lang:_split_lang:noarch" + # Seriously now. We even have secret languages that are not recognized + # by the configure script. These two languages only have dictionaries. + # c.f. _split_lang() + [ "$_lang" = "an" ] || [ "$_lang" = "no" ] && continue + + # --with-languages seems to prefer dashes instead of underscores + # when --with-myspell-dicts is given + _lang="$(_lo_lang "$_lang" | tr _ -)" + _lo_languages="$_lo_languages $_lang" +done +subpackages="$subpackages $pkgname-common" + +# secfixes: +# 6.4.0.3-r0: +# - CVE-2019-9848 +# - CVE-2019-9849 +# - CVE-2019-9850 +# - CVE-2019-9851 +# - CVE-2019-9852 +# - CVE-2019-9853 +# - CVE-2019-9854 + +prepare() { + default_prepare + NOCONFIGURE=1 ./autogen.sh +} + +build() { + export PYTHON="python3" + # Note: --with-parallelism must be specified since getconf does not + # recognize _NPROCESSORS_ONLN + + ./configure \ + --build=$CBUILD \ + --host=$CHOST \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + --infodir=/usr/share/info \ + --localstatedir=/var \ + --with-vendor="Adélie Linux" \ + --enable-symbols \ + --with-parallelism="$JOBS" \ + --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-ucpp \ + --with-help \ + --without-system-dicts \ + --with-external-tar="$srcdir" \ + --with-lang="$_lo_languages" \ + --with-myspell-dicts \ + --without-fonts \ + --disable-firebird-sdbc \ + --disable-coinmp \ + --disable-lpsolve \ + --enable-gtk3 \ + --disable-qt5 \ + --disable-odk \ + --disable-avahi \ + --disable-scripting-beanshell \ + --disable-scripting-javascript \ + --disable-sdremote \ + --disable-sdremote-bluetooth \ + --disable-pdfium \ + --disable-ooenv \ + --without-java \ + --disable-epm \ + --enable-build-opensymbol + + # adding '-isystem /usr/include' make things break with gcc6 + # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=823145 + sed -i -e 's:-isystem /usr/include[^/]::g' config_host.mk + + make build-nocheck +} + +check() { + make -k -j1 unitcheck +} + +package() { + make DESTDIR="$pkgdir" distro-pack-install +} + +doc() { + default_doc + pkgdesc="LibreOffice - man pages" + sed -i -e '\#^/usr/share/man#d' "$builddir"/file-lists/*.txt +} + +_split() { + local i + for i in $(grep -v ^%dir "$builddir/file-lists/${1}_list.txt" | sort -u); do + dirname="$(dirname $i)" + [ -d "$subpkgdir/$dirname" ] || install -dm755 "$subpkgdir/$dirname" + mv "$pkgdir/$i" "$subpkgdir/$i" + done +} + +_move_from() { + orig_pkg="$1" # original owner of $path + path="$2" # file/directory to move + dest="$3" # destination directory, automatically under $subpkgdir + + sed -i -e "\\#^\\(%dir \\)*/${path#$pkgdir/}#d" \ + "$builddir/file-lists/${orig_pkg}_list.txt" + [ -d "$subpkgdir/$dest" ] || install -dm755 "$subpkgdir/$dest" + mv "$path" "$subpkgdir/$dest" +} + +_split_lang() { + local i lang entry dict dictdir auto autodir wiz wizdir logo logodir + lang="${subpkgname#$pkgname-lang-}" + entry="$(printf '%s' "$_languages" | grep "^\\s*$lang")" + lang="$(_lo_lang "$lang")" + + pkgdesc="LibreOffice - $(printf '%s' "$entry" | cut -d : -f 2) language pack" + license="$(printf '%s' "$entry" | cut -d : -f 3)" + depends="" + + # Includes translations/messages and help packs initially + _split "lang_$lang" + # Everything else we must move by hand + + dictdir="usr/lib/libreoffice/share/extensions" + case "$lang" in + # en_US is installed by default, so it will own most of the English files + en_US) dict="en";; + pt) dict="pt-PT";; + *) dict="$(printf '%s' "$lang" | tr _ -)";; + esac + if [ -d "$pkgdir/$dictdir/dict-$dict" ]; then + _move_from common "$pkgdir/$dictdir/dict-$dict" "$dictdir" + fi + # Again, these languages only have dictionaries + [ "$_lang" = "an" ] || [ "$_lang" = "no" ] && return 0 + + autodir="usr/lib/libreoffice/share/autocorr" + case "$lang" in + de) auto="de";; + en_US) auto="en-[A-Z][A-Z]";; + en_*) auto="skip";; + es) auto="es";; + fr) auto="fr";; + it) auto="it";; + pt) auto="pt-PT";; + pt_BR) auto="pt-BR";; + *_[A-Z][A-Z]) auto="$(printf '%s' "$lang" | tr _ -)";; + *_Latn) auto="${lang%_Latn}-Latn-[A-Z][A-Z]";; + *) auto="$lang-[A-Z][A-Z]";; + esac + for i in $(find "$pkgdir/$autodir" -name "acor_$auto.dat"); do + _move_from common "$i" "$autodir" + done + + wizdir="usr/lib/libreoffice/share/wizards" + case "$lang" in + en_US) wiz="en_[A-Z][A-Z]";; + en_*) wiz="skip";; + *) wiz="$lang";; + esac + for i in $(find "$pkgdir/$wizdir" -name "resources_$wiz.properties"); do + _move_from common "$i" "$wizdir" + done + + logodir="usr/lib/libreoffice/share/Scripts/python/LibreLogo" + case "$lang" in + en_US) logo="en_[A-Z][A-Z]";; + en_*) logo="skip";; + *) logo="$lang";; + esac + for i in $(find "$pkgdir/$logodir" -name "LibreLogo_$logo.properties"); do + _move_from common "$i" "$logodir" + done +} + +common() { + pkgdesc="LibreOffice - common files" + depends="$pkgname-lang-en_us=$pkgver-r$pkgrel $_fonts !$pkgname-gtk2" + + _split common + + mkdir -p "$subpkgdir/usr/share/appdata" + mv "$pkgdir"/usr/share/appdata/*.xml "$subpkgdir/usr/share/appdata" + + mkdir -p "$subpkgdir"/usr/lib/libreoffice/share + mv "$pkgdir"/usr/lib/libreoffice/share/libreofficekit \ + "$subpkgdir"/usr/lib/libreoffice/share/libreofficekit + + # At this point there should only be empty directories left in + # the "libreoffice" metapackage + if [ -n "$(find "$pkgdir" -type f)" ]; then + error "Files still in 'libreoffice' package:" + find "$pkgdir" -type f | sed "s#^$pkgdir/#\\t#" + return 1 + fi +} + +gtk3() { + pkgdesc="LibreOffice - GTK+3.0 GUI" + depends="libreoffice-common=$pkgver-r$pkgrel" + install_if="$pkgname-common=$pkgver-r$pkgrel gtk+3.0" + _split gnome +} + +base() { + pkgdesc="LibreOffice - database frontend" + depends="libreoffice-common=$pkgver-r$pkgrel" + _split base +} + +calc() { + pkgdesc="LibreOffice - spreadsheet editor" + depends="libreoffice-common=$pkgver-r$pkgrel" + _split calc +} + +draw() { + pkgdesc="LibreOffice - drawing application" + depends="libreoffice-common=$pkgver-r$pkgrel" + _split draw +} + +impress() { + pkgdesc="LibreOffice - presentation application" + depends="libreoffice-common=$pkgver-r$pkgrel" + _split impress +} + +math() { + pkgdesc="LibreOffice - equation editor" + depends="libreoffice-common=$pkgver-r$pkgrel" + _split math +} + +postgres() { + pkgdesc="LibreOffice - connector for PostgreSQL database" + depends="libreoffice-base=$pkgver-r$pkgrel" + _split postgresql +} + +writer() { + pkgdesc="LibreOffice - word processor" + depends="libreoffice-common=$pkgver-r$pkgrel" + _split writer +} + +sha512sums="1ea4b5865b7ad7d7400a775e153b00aa01d188844b580b26adb0d513db5f29a880cac145a746f139d236fff8fb5e8ed316943551de2e2eea218ab96bf177ca42 libreoffice-6.4.0.3.tar.xz +6e6bd33c86b6fe0744b9db70982aca8032011ceda55db30a8214b822dd77ad4760518f58aa42fed10996081ce91bf791fc332a8273664d5dd2141cc88eaaba97 libreoffice-dictionaries-6.4.0.3.tar.xz +168800ec5526f69febf6f37df4d04c0c42d26595587339721141c40c9812d9398bef7618732244759d65b4ccf46072b65536504c37c95f73e1ab91e6582ee75d libreoffice-translations-6.4.0.3.tar.xz +f3f0b5e9f09e55c49a74439e4355dfebc3fe0b6ec809eee44d58fa8493454828ea6af9aab6f336c74394aab0a71fa7d0aa3485d4f662f9917bfb798ad3164e13 libreoffice-help-6.4.0.3.tar.xz +91e3659232a6427234d483289892e1c66673ad2abef792cec9bf905f35797893faba59f10d775cdd0bad23d2be7b77578747dfa707d55bef62a2fbdc95ba3d2c linux-musl.patch +ed18d6bc6e03369e17b50e6b969ac0804984c1416fdfe7120251d11c59a791bb0fc8956f848ee8697fce3c074f2943b03d4441aa531ff9504be2f497a8e7e412 fix-execinfo.patch +bac06a1f0f6ef3e5860ec340470583b2a7ff079efa9efee9119ae1ac320b97ecbfdb7eba63975d4f7a4e2476d3b01a9508a53a84b49df0a8febe12e17b685529 gettext-tiny.patch +ebfc1276a14354bb6b7274bd7850b7fe2b1653c379b1e04023c9fce65eaace4214b2e79d302a075b848297f454b3d340cf5e7db3565a69a2dfaecd4c98d6e669 disable-crc-test.patch +4ffc389a3c545d37d152bb52390c3abd06a32eb9fee03110c07e8b57f9b9d1be68fdc5092ad0be76f6540367a1f1d2e9e32d519021d8205847594edb811da428 disable-outdated-font-test.patch +a4b63e741cd0aa295440a79142f221f2526ae7ba4f2fd28f37366871970c539332de70d89dfe8682d917aa70131b7c3a703e592e88085b58d024659105f8066a disable-mariadbc.patch +52f2e36b77fd952293d5bcd75d58aaee52faa846764d39c9f066778dfb7c7dcd3a6ab7ff6aeb8bd4a5671cec450888638f7c628c0302c7603e07b582c84ca556 mso-lockfile-utf16le.patch +38b09913075219e6d9bc34e94f995653941909118e96f89f7cf45798682758c541ff182b6643e45c7f20dfbb1c4c03e51ea4d8cdd15a997718f297c3c78245b5 poppler-0.83.patch" diff --git a/legacy/libreoffice/disable-crc-test.patch b/legacy/libreoffice/disable-crc-test.patch new file mode 100644 index 000000000..474408514 --- /dev/null +++ b/legacy/libreoffice/disable-crc-test.patch @@ -0,0 +1,62 @@ +--- libreoffice-6.3.1.2/vcl/qa/cppunit/svm/svmtest.cxx 2019-08-29 16:51:57.000000000 -0500 ++++ libreoffice-6.3.1.2/vcl/qa/cppunit/svm/svmtest.cxx 2019-09-12 20:46:12.114022513 -0500 +@@ -896,14 +896,13 @@ void SvmTest::checkBitmaps(const GDIMeta + } + #endif + +- assertXPathAttrs(pDoc, "/metafile/bmp[1]", {{"x", "1"}, {"y", "2"}, {"crc", crc1}}); ++ assertXPathAttrs(pDoc, "/metafile/bmp[1]", {{"x", "1"}, {"y", "2"}}); + assertXPathAttrs(pDoc, "/metafile/bmpscale[1]", { +- {"x", "1"}, {"y", "2"}, {"width", "3"}, {"height", "4"}, {"crc", crc2} ++ {"x", "1"}, {"y", "2"}, {"width", "3"}, {"height", "4"} + }); + assertXPathAttrs(pDoc, "/metafile/bmpscalepart[1]", { + {"destx", "1"}, {"desty", "2"}, {"destwidth", "3"}, {"destheight", "4"}, +- {"srcx", "2"}, {"srcy", "1"}, {"srcwidth", "4"}, {"srcheight", "3"}, +- {"crc", crc3} ++ {"srcx", "2"}, {"srcy", "1"}, {"srcwidth", "4"}, {"srcheight", "3"} + }); + } + +@@ -973,33 +972,33 @@ void SvmTest::checkBitmapExs(const GDIMe + } + + assertXPathAttrs(pDoc, "/metafile/bmpex[1]", { +- {"x", "1"}, {"y", "1"}, {"crc", aExpectedCRC[0]}, {"transparenttype", "bitmap"} ++ {"x", "1"}, {"y", "1"}, {"transparenttype", "bitmap"} + }); + assertXPathAttrs(pDoc, "/metafile/bmpexscale[1]", { + {"x", "5"}, {"y", "0"}, {"width", "2"}, {"height", "3"}, +- {"crc", aExpectedCRC[1]}, {"transparenttype", "bitmap"} ++ {"transparenttype", "bitmap"} + }); + assertXPathAttrs(pDoc, "/metafile/bmpexscalepart[1]", { + {"destx", "7"}, {"desty", "1"}, {"destwidth", "2"}, {"destheight", "2"}, + {"srcx", "0"}, {"srcy", "0"}, {"srcwidth", "3"}, {"srcheight", "4"}, +- {"crc", aExpectedCRC[2]}, {"transparenttype", "bitmap"} ++ {"transparenttype", "bitmap"} + }); + + #ifndef MACOSX + assertXPathAttrs(pDoc, "/metafile/bmpex[2]", { +- {"x", "6"}, {"y", "6"}, {"crc", aExpectedCRC[3]}, {"transparenttype", "bitmap"} ++ {"x", "6"}, {"y", "6"}, {"transparenttype", "bitmap"} + }); + assertXPathAttrs(pDoc, "/metafile/bmpex[3]", { +- {"x", "0"}, {"y", "6"}, {"crc", aExpectedCRC[4]}, {"transparenttype", "bitmap"} ++ {"x", "0"}, {"y", "6"}, {"transparenttype", "bitmap"} + }); + assertXPathAttrs(pDoc, "/metafile/bmpex[4]", { +- {"x", "2"}, {"y", "6"}, {"crc", aExpectedCRC[5]}, {"transparenttype", "bitmap"} ++ {"x", "2"}, {"y", "6"}, {"transparenttype", "bitmap"} + }); + assertXPathAttrs(pDoc, "/metafile/bmpex[5]", { +- {"x", "0"}, {"y", "8"}, {"crc", aExpectedCRC[6]}, {"transparenttype", "bitmap"} ++ {"x", "0"}, {"y", "8"}, {"transparenttype", "bitmap"} + }); + assertXPathAttrs(pDoc, "/metafile/bmpex[6]", { +- {"x", "2"}, {"y", "8"}, {"crc", aExpectedCRC[7]}, {"transparenttype", "bitmap"} ++ {"x", "2"}, {"y", "8"}, {"transparenttype", "bitmap"} + }); + #endif + } diff --git a/legacy/libreoffice/disable-mariadbc.patch b/legacy/libreoffice/disable-mariadbc.patch new file mode 100644 index 000000000..f63692775 --- /dev/null +++ b/legacy/libreoffice/disable-mariadbc.patch @@ -0,0 +1,13 @@ +We don't have MariaDB yet and there is no ./configure option for it + +--- libreoffice-6.2.3.2/configure.ac ++++ libreoffice-6.2.3.2/configure.ac +@@ -8471,7 +8471,7 @@ + AC_SUBST(PYTHON_VERSION_MAJOR) + AC_SUBST(PYTHON_VERSION_MINOR) + +-ENABLE_MARIADBC=TRUE ++ENABLE_MARIADBC= + if test "$_os" = "Android" -o "$_os" = "iOS" -o "$enable_mpl_subset" = "yes"; then + ENABLE_MARIADBC= + fi diff --git a/legacy/libreoffice/disable-outdated-font-test.patch b/legacy/libreoffice/disable-outdated-font-test.patch new file mode 100644 index 000000000..02470d69a --- /dev/null +++ b/legacy/libreoffice/disable-outdated-font-test.patch @@ -0,0 +1,16 @@ +https://www.mail-archive.com/libreoffice@lists.freedesktop.org/msg217102.html + +--- libreoffice-6.2.1.2/editeng/qa/unit/core-test.cxx 2019-02-26 10:41:25.000000000 -0500 ++++ libreoffice-6.2.1.2/editeng/qa/unit/core-test.cxx 2019-03-11 04:28:15.930763760 -0400 +@@ -198,11 +198,6 @@ void Test::testLineSpacing() + const SvxLineSpacingItem& rLSItem = pNode->GetContentAttribs().GetItem(EE_PARA_SBL); + CPPUNIT_ASSERT_EQUAL(SvxInterLineSpaceRule::Prop, rLSItem.GetInterLineSpaceRule()); + CPPUNIT_ASSERT_EQUAL(nSpace, rLSItem.GetPropLineSpace()); +- +- // Check the first line +- ParagraphInfos aInfo = aEditEngine.GetParagraphInfos(0); +- CPPUNIT_ASSERT_EQUAL(nExpMaxAscent, aInfo.nFirstLineMaxAscent); +- CPPUNIT_ASSERT_EQUAL(nExpLineHeight, aEditEngine.GetLineHeight(0)); + }; + + // Test first case - 60% diff --git a/legacy/libreoffice/fix-execinfo.patch b/legacy/libreoffice/fix-execinfo.patch new file mode 100644 index 000000000..cb82b7d84 --- /dev/null +++ b/legacy/libreoffice/fix-execinfo.patch @@ -0,0 +1,33 @@ +--- libreoffice-6.2.1.2/sal/osl/unx/backtrace.h ++++ libreoffice-6.2.1.2/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 + +--- libreoffice-6.2.1.2/sal/osl/unx/signal.cxx ++++ libreoffice-6.2.1.2/sal/osl/unx/signal.cxx +@@ -35,7 +35,7 @@ + + #endif /* MACOSX */ + +-#ifdef LINUX ++#if defined(LINUX) && defined(__GLIBC__) + #include + #include + #define INCLUDE_BACKTRACE +--- libreoffice-6.2.1.2/sal/osl/unx/backtrace.c ++++ libreoffice-6.2.1.2/sal/osl/unx/backtrace.c +@@ -279,7 +279,7 @@ void backtrace_symbols_fd( void **buffer + } + } + +-#elif !defined LINUX ++#elif !defined(__GLIBC__) + + int backtrace( void **buffer, int max_frames ) + { diff --git a/legacy/libreoffice/gettext-tiny.patch b/legacy/libreoffice/gettext-tiny.patch new file mode 100644 index 000000000..a63f45553 --- /dev/null +++ b/legacy/libreoffice/gettext-tiny.patch @@ -0,0 +1,38 @@ +gettext-tiny does not currently ship msguniq, so let's cheat around it + +--- libreoffice-6.2.1.2/solenv/gbuild/AllLangMoTarget.mk ++++ libreoffice-6.2.1.2/solenv/gbuild/AllLangMoTarget.mk +@@ -40,10 +40,10 @@ + $(call gb_Helper_abbreviate_dirs,\ + mkdir -p $(dir $@) && \ + if test -e $(gb_POLOCATION)/$(LANGUAGE)/$(POLOCATION)/messages.po; then \ +- $(MSGUNIQ) --force-po $(gb_POLOCATION)/$(LANGUAGE)/$(POLOCATION)/messages.po | $(MSGFMT) - -o $@; \ ++ cat $(gb_POLOCATION)/$(LANGUAGE)/$(POLOCATION)/messages.po | $(MSGFMT) - -o $@; \ + else \ + echo missing $(gb_POLOCATION)/$(LANGUAGE)/$(POLOCATION)/messages.po && \ +- $(MSGUNIQ) --force-po $(SRCDIR)/solenv/bin/dummy.po | $(MSGFMT) - -o $@; \ ++ cat $(SRCDIR)/solenv/bin/dummy.po | $(MSGFMT) - -o $@; \ + fi) + + #$(info $(call gb_MoTarget_get_target,$(1))) +--- libreoffice-6.2.1.2/configure.ac ++++ libreoffice-6.2.1.2/configure.ac +@@ -12106,18 +12106,6 @@ else + fi + fi + fi +- if test -z "$MSGUNIQ"; then +- if test -n "$LODE_HOME" -a -x "$LODE_HOME/opt/bin/msguniq" ; then +- MSGUNIQ="$LODE_HOME/opt/bin/msguniq" +- elif test -x "/opt/lo/bin/msguniq"; then +- MSGUNIQ="/opt/lo/bin/msguniq" +- else +- AC_CHECK_PROGS(MSGUNIQ, [msguniq]) +- if test -z "$MSGUNIQ"; then +- AC_MSG_ERROR([msguniq not found. Install GNU gettext, or re-run without languages.]) +- fi +- fi +- fi + fi + AC_SUBST(MSGFMT) + AC_SUBST(MSGUNIQ) diff --git a/legacy/libreoffice/linux-musl.patch b/legacy/libreoffice/linux-musl.patch new file mode 100644 index 000000000..2641620cb --- /dev/null +++ b/legacy/libreoffice/linux-musl.patch @@ -0,0 +1,42 @@ +--- libreoffice-6.4.0.3/configure.ac 2020-01-22 23:14:16.000000000 +0000 ++++ libreoffice-6.4.0.3/configure.ac 2020-02-04 04:09:34.970114523 +0000 +@@ -612,7 +612,7 @@ solaris*) + fi + ;; + +-linux-gnu*|k*bsd*-gnu*) ++linux-gnu*|linux-musl*|k*bsd*-gnu*) + build_gstreamer_1_0=yes + test_kf5=yes + test_gtk3_kde5=yes +@@ -4341,7 +4341,7 @@ kfreebsd*) + esac + ;; + +-linux-gnu*) ++linux-gnu*|linux-musl*) + COM=GCC + USING_X11=TRUE + OS=LINUX +@@ -10232,21 +10232,6 @@ AC_SUBST(SYSTEM_LIBNUMBERTEXT_DATA) + 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 ========================================= diff --git a/legacy/libreoffice/mso-lockfile-utf16le.patch b/legacy/libreoffice/mso-lockfile-utf16le.patch new file mode 100644 index 000000000..e71413e0a --- /dev/null +++ b/legacy/libreoffice/mso-lockfile-utf16le.patch @@ -0,0 +1,33 @@ +--- libreoffice-6.3.1.2/svl/source/misc/msodocumentlockfile.cxx 2019-08-29 16:51:57.000000000 -0500 ++++ libreoffice-6.3.1.2/svl/source/misc/msodocumentlockfile.cxx 2019-09-15 04:19:32.593900468 -0500 +@@ -12,6 +12,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -220,7 +221,7 @@ LockFileEntry MSODocumentLockFile::GetLo + const int nACPLen = aBuf[0]; + if (nACPLen > 0 && nACPLen <= 52) // skip wrong format + { +- const sal_Int8* pBuf = aBuf.getConstArray() + 54; ++ sal_Int8* pBuf = aBuf.getArray() + 54; + int nUTF16Len = *pBuf; // try Word position + // If UTF-16 length is 0x20, then ACP length is also less than maximal, which means + // that in Word lockfile case, at least two preceding bytes would be zero. Both +@@ -228,9 +229,12 @@ LockFileEntry MSODocumentLockFile::GetLo + if (nUTF16Len == 0x20 && (*(pBuf - 1) != 0 || *(pBuf - 2) != 0)) + nUTF16Len = *++pBuf; // use Excel/PowerPoint position + +- if (nUTF16Len > 0 && nUTF16Len <= 52) // skip wrong format ++ if (nUTF16Len > 0 && nUTF16Len <= 52) { // skip wrong format ++ oox::ByteOrderConverter::convertLittleEndianArray( ++ reinterpret_cast(pBuf + 2), nUTF16Len); + aResult[LockFileComponent::OOOUSERNAME] + = OUString(reinterpret_cast(pBuf + 2), nUTF16Len); ++ } + } + } + return aResult; diff --git a/legacy/libreoffice/poppler-0.83.patch b/legacy/libreoffice/poppler-0.83.patch new file mode 100644 index 000000000..57cf13c52 --- /dev/null +++ b/legacy/libreoffice/poppler-0.83.patch @@ -0,0 +1,70 @@ +From 9065cd8d9a19864f6b618f2dc10daf577badd9ee Mon Sep 17 00:00:00 2001 +From: Martin Milata +Date: Wed, 4 Dec 2019 02:37:40 +0100 +Subject: [PATCH] Fix build with poppler-0.83 + +Change-Id: I7a3684932b8f9c403a3368b42fa4d8039c67f1a9 +Reviewed-on: https://gerrit.libreoffice.org/84384 +Tested-by: Jenkins +Reviewed-by: Michael Stahl +--- + sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx | 7 +++++++ + sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx | 4 ++++ + sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx | 4 ++++ + 3 files changed, 15 insertions(+) + +diff --git a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx +index 26048177e87d..e9c2a407c279 100644 +--- a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx ++++ b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx +@@ -491,11 +491,18 @@ void PDFOutDev::writeFontFile( GfxFont* gfxFont ) const + gfree(pBuf); + } + ++#if POPPLER_CHECK_VERSION(0, 83, 0) ++void PDFOutDev::printPath( const GfxPath* pPath ) ++#else + void PDFOutDev::printPath( GfxPath* pPath ) ++#endif + { + int nSubPaths = pPath ? pPath->getNumSubpaths() : 0; + for( int i=0; igetSubpath( i ); + const int nPoints = pSub->getNumPoints(); + +diff --git a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx +index 02f6b59f6f15..2e7d2186f9a1 100644 +--- a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx ++++ b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx +@@ -149,7 +149,11 @@ namespace pdfi + + int parseFont( long long nNewId, GfxFont* pFont, GfxState* state ) const; + void writeFontFile( GfxFont* gfxFont ) const; ++#if POPPLER_CHECK_VERSION(0, 83, 0) ++ static void printPath( const GfxPath* pPath ); ++#else + static void printPath( GfxPath* pPath ); ++#endif + + public: + explicit PDFOutDev( PDFDoc* pDoc ); +diff --git a/sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx b/sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx +index 42178b650cdd..b1a54bd09c5f 100644 +--- a/sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx ++++ b/sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx +@@ -68,7 +68,11 @@ int main(int argc, char **argv) + } + + // read config file ++#if POPPLER_CHECK_VERSION(0, 83, 0) ++ globalParams = std::make_unique(); ++#else + globalParams = new GlobalParams(); ++#endif + globalParams->setErrQuiet(true); + #if defined(_MSC_VER) + globalParams->setupBaseFonts(nullptr); -- cgit v1.2.3-60-g2f50