# Contributor: Jens Staal <staal1978@gmail.com>
# Contributor: Timo Teräs <timo.teras@iki.fi>
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=libreoffice
# "fresh" version. before, we used to package still, but community/ is only
# supported for 6 months and fresh works perfectly okay for that, while being
# more up to date and needing fewer dependency workarounds.
pkgver=25.2.4.3
pkgrel=0
pkgdesc="LibreOffice - Meta package for the full office suite"
url="https://www.libreoffice.org/"
# armhf disabled due to requiring armv6k as minimum arm architecture
# ppc64le: hangs forever in build on builders
arch="all !ppc64le !s390x !armhf"
license="MPL-2.0"
makedepends="
	abseil-cpp-dev
	argon2-dev
	autoconf
	automake
	bash
	bison
	bluez-dev
	boost-dev
	box2d-dev
	clucene-dev
	coreutils
	cppunit-dev
	cups-dev
	doxygen
	findutils
	flex
	freetype-dev
	glew-dev
	glm-dev
	glu-dev
	gperf
	gpgme-dev
	gst-plugins-base-dev
	gstreamer-dev
	gtk+3.0-dev
	gtk4.0-dev
	harfbuzz-dev
	hunspell-dev
	hyphen-dev
	icu-dev
	junit
	kconfig5-dev
	lcms2-dev
	libabw-dev
	libcdr-dev
	libcmis-dev
	libe-book-dev
	libepubgen-dev
	libetonyek-dev
	libexttextcat-dev
	libfreehand-dev
	libjpeg-turbo-dev
	libmspub-dev
	libmwaw-dev
	libnumbertext-dev
	libodfgen-dev
	liborcus-dev
	libpagemaker-dev
	libpq-dev
	libqxp-dev
	libstaroffice-dev
	libvisio-dev
	libwebp-dev
	libwpd-dev
	libwpg-dev
	libwps-dev
	libxml2-utils
	libxrandr-dev
	libxrender-dev
	libxslt-dev
	libzmf-dev
	mariadb-dev
	mdds-dev
	mythes-dev
	neon-dev
	nss-dev
	openjpeg-dev
	openldap-dev
	openssl-dev
	perl
	perl-archive-zip
	plasma-framework5-dev
	poppler-dev
	py3-setuptools
	python3-dev
	qt5-qtbase-dev
	qt5-qttools-dev
	qt6-qtbase-dev
	qt6-qtmultimedia-dev
	qt6-qttools-dev
	redland-dev
	sed
	tar
	unixodbc-dev
	vigra-dev
	xmlsec-dev
	xz
	zip
	zxing-cpp-dev
	"
# openjdk isn't available on 32-bit
case $CARCH in
x86|arm*|riscv64|loongarch64)
	_have_java=false
	;;
*)
	_have_java=true
	makedepends="$makedepends apache-ant openjdk21-jdk openjdk21-jre-headless"
	somask="libjawt.so"
	;;
esac
# GNU sed is needed for in i18npool/CustomTarget_localedata.mk
subpackages="
	$pkgname-common
	$pkgname-base
	$pkgname-calc
	$pkgname-draw
	$pkgname-gtk
	$pkgname-impress
	$pkgname-math
	$pkgname-connector-postgres
	$pkgname-writer
	libreofficekit::noarch
	$pkgname-qt5
	$pkgname-qt6
	$pkgname-kf5
	$pkgname-sdk
	$pkgname-bash-completion
	"
depends="
	$pkgname-base
	$pkgname-calc
	$pkgname-common
	$pkgname-draw
	$pkgname-impress
	$pkgname-math
	$pkgname-connector-postgres
	$pkgname-writer
	"
_addsrcurl="https://dev-www.libreoffice.org/src"
case $pkgver in
*.*.*.*) _v=${pkgver%.*};;
*.*.*) _v=$pkgver;;
esac

# grep _TARBALL download.lst
source="https://download.documentfoundation.org/libreoffice/src/$_v/libreoffice-$pkgver.tar.xz
	https://download.documentfoundation.org/libreoffice/src/$_v/libreoffice-dictionaries-$pkgver.tar.xz
	https://download.documentfoundation.org/libreoffice/src/$_v/libreoffice-translations-$pkgver.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/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/Java-WebSocket-1.6.0.tar.gz
	$_addsrcurl/bsh-2.1.1-src.zip
	$_addsrcurl/dragonbox-1.1.3.tar.gz
	$_addsrcurl/dtoa-20180411.tgz
	$_addsrcurl/frozen-1.2.0.tar.gz
	$_addsrcurl/lxml-4.1.1.tgz
	$_addsrcurl/pdfium-6764.tar.bz2
	$_addsrcurl/rhino-1.7.15.zip
	$_addsrcurl/skia-m130-3c64459d5df2fa9794b277f0959ed8a92552bf4c.tar.xz
	$_addsrcurl/zxcvbn-c-2.5.tar.gz
	https://dev-www.libreoffice.org/extern/185d60944ea767075d27247c3162b3bc-unowinreg.dll
	https://dev-www.libreoffice.org/extern/f543e6e2d7275557a839a164941c0a86e5f2c3f2a0042bfc434c88c6dde9e140-opens___.ttf

	linux-musl.patch
	musl-stacksize.patch
	musl-libintl.patch
	"
options="!check" # todo, huge testsuite, not much value, ..

# secfixes:
#   7.6.7.2-r0:
#     - CVE-2024-3044
#   7.3.6.2-r0:
#     - CVE-2022-3140
#   7.2.7.2-r0:
#     - CVE-2022-26305
#     - CVE-2022-26306
#     - CVE-2022-26307
#   7.2.5.2-r0:
#     - CVE-2021-25636
#   7.2.2.2-r0:
#     - CVE-2021-25631
#     - CVE-2021-25632
#     - CVE-2021-25633
#     - CVE-2021-25634
#     - CVE-2021-25635
#   6.4.4.2-r0:
#     - CVE-2020-12802
#     - CVE-2020-12803
#   6.4.3.2-r0:
#     - CVE-2020-12801
#   6.3.1.2-r0:
#     - CVE-2019-9854
#     - CVE-2019-9855
#   6.3.0.4-r0:
#     - CVE-2019-9850
#     - CVE-2019-9851
#     - CVE-2019-9852
#   6.2.5.2-r0:
#     - CVE-2019-9848
#     - CVE-2019-9849

add_lang() {
	local pkglang="${3:-$1}"
	subpackages="$subpackages $pkgname-lang-$1:_lang_$1"
	languages="$languages ${pkglang/_/-}"
	eval "_lang_$1() { pkgdesc=\"LibreOffice - $2 language pack\"; depends=\"\"; _split lang_${pkglang}; }"
}

add_lang af "Afrikaans"
add_lang am "Amharic"
add_lang ar "Arabic"
add_lang as "Assamese"
add_lang ast "Asturian"
add_lang be "Belarusian"
add_lang bg "Bulgarian"
add_lang bn "Bengali"
add_lang bn_in "Bengali (India)" bn_IN
add_lang bo "Tibetan"
add_lang br "Breton"
add_lang brx "Bodo"
add_lang bs "Bosnian"
add_lang ca "Catalan"
add_lang ca_valencia "Catalan (Valencian)"
add_lang ckb "Central Kurdish"
add_lang cs "Czech"
add_lang cy "Welsh (Cymraeg)"
add_lang da "Danish"
add_lang de "German"
add_lang dgo "Dogri proper"
add_lang dsb "Lower Sorbian"
add_lang dz "Dzongkha"
add_lang el "Greek"
add_lang en_gb "English (UK)" en_GB
add_lang en_us "English (US)" en_US
add_lang en_za "English (South Africa)" en_ZA
add_lang eo "Esperanto"
add_lang es "Spanish"
add_lang et "Estonian"
add_lang eu "Basque"
add_lang fa "Persian (Farsi)"
add_lang fi "Finnish"
add_lang fr "French"
add_lang fur "Friulian"
add_lang fy "Frisian"
add_lang ga "Irish"
add_lang gd "Scottish Gaelic"
add_lang gl "Galician"
add_lang gu "Gujarati"
add_lang gug "Guaraní (Paraguay)"
add_lang he "Hebrew"
add_lang hi "Hindi"
add_lang hr "Croatian"
add_lang hsb "Upper Sorbian"
add_lang hu "Hungarian"
add_lang id "Indonesian"
add_lang is "Icelandic"
add_lang it "Italian"
add_lang ja "Japanese"
add_lang ka "Georgian"
add_lang kab "Kabyle"
add_lang kk "Kazakh"
add_lang km "Khmer"
add_lang kmr_latn "Kurmanji Kurdish (Latin)" kmr_Latn
add_lang kn "Kannada"
add_lang ko "Korean"
add_lang kok "Konkani"
add_lang ks "Kashmiri"
add_lang lb "Luxembourgish"
add_lang lo "Lao"
add_lang lt "Lithuanian"
add_lang lv "Latvian"
add_lang mai "Maithili"
add_lang mk "Macedonian"
add_lang ml "Malayalam"
add_lang mn "Mongolian"
add_lang mni "Meithei (Manipuri)"
add_lang mr "Marathi"
add_lang my "Burmese"
add_lang nb "Norwegian (Bokmal)"
add_lang ne "Nepali"
add_lang nl "Dutch"
add_lang nn "Nynorsk"
add_lang nr "Ndebele (South)"
add_lang nso "Northern Sotho"
add_lang oc "Occitan"
add_lang om "Oromo"
add_lang or "Oriya"
add_lang pa_in "Punjabi (India)" pa_IN
add_lang pl "Polish"
add_lang pt "Portuguese"
add_lang pt_br "Portuguese (Brazil)" pt_BR
add_lang ro "Romanian"
add_lang ru "Russian"
add_lang rw "Kinyarwanda"
add_lang sa_in "Sanskrit (India)" sa_IN
add_lang sat "Santali"
add_lang sd "Sindhi"
add_lang si "Sinhala"
add_lang sid "Sidamo"
add_lang sk "Slovak"
add_lang sl "Slovenian"
add_lang sq "Albanian"
add_lang sr "Serbian"
add_lang sr_latn "Serbian (Latin)" sr_Latn
add_lang ss "Swati"
add_lang st "Southern Sotho"
add_lang sv "Swedish"
add_lang sw_tz "Swahili (Tanzania)" sw_TZ
add_lang ta "Tamil"
add_lang te "Telugu"
add_lang tg "Tajik"
add_lang th "Thai"
add_lang tn "Tswana"
add_lang tr "Turkish"
add_lang ts "Tsonga"
add_lang tt "Tatar"
add_lang ug "Uyghur"
add_lang uk "Ukrainian"
add_lang uz "Uzbek"
add_lang ve "Venda"
add_lang vec "Venetian"
add_lang vi "Vietnamese"
add_lang xh "Xhosa"
add_lang zh_cn "Simplified Chinese (Peoples Republic of China)" zh_CN
add_lang zh_tw "Traditional Chinese (Taiwan)" zh_TW
add_lang zu "Zulu"

# help abuild find shared objects in rpath
ldpath="/usr/lib/libreoffice/program:/usr/lib/libreoffice/ure/lib/"

unpack() {
	if [ -z "${force:-}" ]; then
		verify
		initdcheck
	fi
	mkdir -p "$srcdir"
	msg "Unpacking sources..."

	local u
	for u in $source; do
		local s="$SRCDEST/$(filename_from_uri $u)"
		case $s in
		*/libreoffice-*.tar.xz)
			msg "Unpacking $s..."
			unxz -c "$s" | tar -C "$srcdir" -x ;;
		esac
	done
}

prepare() {
	# the build includes execinfo in some places, but patching it is quite hard
	# due to self-patching build system
	cat > include/execinfo.h <<-EOF
	/* nothing */
	EOF

	default_prepare

	NOCONFIGURE=1 ./autogen.sh
}

build() {
	# https://bugs.documentfoundation.org/show_bug.cgi?id=78174
	# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64812
	# gcc with -Os will produce "undefined reference to non-virtual thunk to XXX"
	# errors. workaround by forcing -O2.
	# also this thing is huge and O2 makes more sense.
	export CFLAGS="${CFLAGS//-Os/-O2}"
	export CPPFLAGS="${CPPFLAGS//-Os/-O2}"
	export CXXFLAGS="${CXXFLAGS//-Os/-O2}"
	export QT6DIR=/usr/lib/qt6

	if [ "$_have_java" = true ]; then
		export JAVA_HOME=/usr/lib/jvm/java-21-openjdk
		local java="
			--with-jdk-home=$JAVA_HOME
			--with-ant-home=/usr/share/java/apache-ant
			--with-java
		"
	else
		local java="--without-java"
	fi

	case "$CARCH" in
	x86_64|aarch64)
		local lto="--enable-lto"
		;;
	esac

	local skia="--enable-skia"
	if [ "$CARCH" = "loongarch64" ]; then
		# skia fails to build on loongarch64 currently
		skia="--disable-skia"
	fi

	# force c++20 here since otherwise it's not set for abseil conftest
	export CXXFLAGS="$CXXFLAGS -std=c++20"

	# configure contains bashism
	bash ./configure \
		--build=$CBUILD \
		--host=$CHOST \
		--prefix=/usr \
		--sysconfdir=/etc \
		--mandir=/usr/share/man \
		--infodir=/usr/share/info \
		--localstatedir=/var \
		--disable-dependency-tracking \
		--disable-fetch-external \
		--disable-online-update \
		--enable-python=system \
		--enable-release-build \
		--enable-split-app-modules \
		--with-external-dict-dir=/usr/share/hunspell \
		--with-external-hyph-dir=/usr/share/hyphen \
		--with-external-tar="$srcdir" \
		--with-lang="$languages" \
		--with-system-dicts \
		--with-system-libcmis \
		--with-system-libs \
		--with-system-zxing \
		--with-tls=nss \
		--with-vendor="Alpine Linux" \
		--without-fonts \
		--without-junit \
		--without-myspell-dicts \
		--without-system-dragonbox \
		--without-system-frozen \
		--without-system-jars \
		--without-system-java-websocket \
		--without-system-libfixmath \
		--without-system-sane \
		--without-system-zxcvbn \
		--disable-coinmp \
		--disable-firebird-sdbc \
		--disable-lpsolve \
		--enable-gtk3 \
		--enable-gtk3-kde5 \
		--enable-gtk4 \
		--enable-kf5 \
		--enable-odk \
		--enable-qt5 \
		--enable-qt6 \
		$skia \
		$lto \
		$java

	make build
	# build libreofficekit
	cd libreofficekit && make
}

package() {
	make DESTDIR="$pkgdir"/../all distro-pack-install
}

_split() {
	local i
	grep "^[^% ]" "$builddir"/file-lists/${1}_list.txt | sort -u | while IFS= read -r i; do
		[ "$i" ] || continue
		dirname="$(dirname $i)"
		[ -d "$subpkgdir/$dirname" ] || install -dm755 "$subpkgdir/$dirname"
		mv "$pkgdir"/../all/"$i" "$subpkgdir"/"$i"
	done
}

base() {
	pkgdesc="LibreOffice - Database frontend"
	depends="libreoffice-common"
	_split base

	mkdir -p "$subpkgdir"/usr/lib/libreoffice/share/xdg
	mv "$pkgdir"/../all/usr/lib/libreoffice/share/xdg/base.desktop "$subpkgdir"/usr/lib/libreoffice/share/xdg
}

calc() {
	pkgdesc="LibreOffice - Spreadsheet"
	depends="libreoffice-common"
	_split calc

	mkdir -p "$subpkgdir"/usr/lib/libreoffice/share/xdg
	mv "$pkgdir"/../all/usr/lib/libreoffice/share/xdg/calc.desktop "$subpkgdir"/usr/lib/libreoffice/share/xdg
}

common() {
	pkgdesc="LibreOffice - Common files"
	depends="libreoffice-lang-en_us"
	_split common

	# The .desktop files for each app should be in the corrosponding subpackage
	mkdir -p "$pkgdir"/../all/usr/lib/libreoffice/share/xdg
	mv "$subpkgdir"/usr/lib/libreoffice/share/xdg/ "$pkgdir"/../all/usr/lib/libreoffice/share/
	mkdir -p "$subpkgdir"/usr/lib/libreoffice/share/xdg
	mv \
		"$pkgdir"/../all/usr/lib/libreoffice/share/xdg/startcenter.desktop \
		"$pkgdir"/../all/usr/lib/libreoffice/share/xdg/xsltfilter.desktop \
		"$subpkgdir"/usr/lib/libreoffice/share/xdg/

	# split bash-completion into a separate subpackage
	mkdir -p -- "$pkgdir"/usr/share/bash-completion/completions
	mv -t "$pkgdir"/usr/share/bash-completion/completions \
		-- "$subpkgdir"/usr/share/bash-completion/completions/*
	rmdir -p -- "$subpkgdir"/usr/share/bash-completion/completions || :

	# create system uno sitedir so "import uno" will work in python..
	local sitedir="$(python3 -c "import site; print(site.getsitepackages()[0])")"
	mkdir -p "$subpkgdir/$sitedir"/uno

	# create wrapper for libreoffice internals.. (use init.py to use a clean subdir)
	cat > "$subpkgdir/$sitedir"/uno/__init__.py <<-EOF
	import sys, os

	sys.path.append('/usr/lib/libreoffice/program')
	os.putenv('URE_BOOTSTRAP', 'vnd.sun.star.pathname:/usr/lib/libreoffice/program/fundamentalrc')
	EOF

	# append main uno startup to module..
	cat >> "$subpkgdir/$sitedir"/uno/__init__.py "$subpkgdir"/usr/lib/libreoffice/program/uno.py

	# link to helper imported from main uno.py
	ln -sfv /usr/lib/libreoffice/program/unohelper.py "$subpkgdir/$sitedir"/uno/unohelper.py
}

draw() {
	pkgdesc="LibreOffice - Drawing application"
	depends="libreoffice-common"
	_split draw

	mkdir -p "$subpkgdir"/usr/lib/libreoffice/share/xdg
	mv "$pkgdir"/../all/usr/lib/libreoffice/share/xdg/draw.desktop "$subpkgdir"/usr/lib/libreoffice/share/xdg
}

gtk() {
	pkgdesc="LibreOffice - GTK integration"
	depends="libreoffice-common"
	# pull this by default so people get an actually usable UI and not something unreadable
	install_if="$pkgname=$pkgver-r$pkgrel"

	provides="libreoffice-gtk4=$pkgver-r$pkgrel libreoffice-gtk3=$pkgver-r$pkgrel libreoffice-gnome=$pkgver-r$pkgrel"

	# used to be named with the versions
	# SAL_USE_VCLPLUGIN=gtk3 is default (and gets used), =gtk4 uses the gtk4 one (which is never default)
	# merged back into -gtk because only -gtk3 is ever loaded without explicit other vcl with this package
	replaces="libreoffice-gtk4 libreoffice-gtk3"
	_split gnome
}

qt5() {
	pkgdesc="LibreOffice - Qt5 integration"
	depends="libreoffice-common"

	mkdir -p "$subpkgdir"/usr/lib/libreoffice/program
	mv "$pkgdir"/../all/usr/lib/libreoffice/program/libvclplug_qt5lo.so "$subpkgdir"/usr/lib/libreoffice/program/
}

qt6() {
	pkgdesc="LibreOffice - Qt6 integration"
	depends="libreoffice-common"

	mkdir -p "$subpkgdir"/usr/lib/libreoffice/program
	mv "$pkgdir"/../all/usr/lib/libreoffice/program/libvclplug_qt6lo.so "$subpkgdir"/usr/lib/libreoffice/program/
}

kf5() {
	pkgdesc="LibreOffice - KDE integration"
	depends="libreoffice-common"
	install_if="$pkgname=$pkgver-r$pkgrel plasma-workspace"

	mkdir -p "$subpkgdir"/usr/lib/libreoffice/program
	mv "$pkgdir"/../all/usr/lib/libreoffice/program/libkf5be1lo.so "$subpkgdir"/usr/lib/libreoffice/program/
	mv "$pkgdir"/../all/usr/lib/libreoffice/program/libvclplug_kf5lo.so "$subpkgdir"/usr/lib/libreoffice/program/
	mv "$pkgdir"/../all/usr/lib/libreoffice/program/libvclplug_gtk3_kde5lo.so "$subpkgdir"/usr/lib/libreoffice/program/

}

impress() {
	pkgdesc="LibreOffice - Presentation application"
	depends="libreoffice-common"
	_split impress

	mkdir -p "$subpkgdir"/usr/lib/libreoffice/share/xdg
	mv "$pkgdir"/../all/usr/lib/libreoffice/share/xdg/impress.desktop "$subpkgdir"/usr/lib/libreoffice/share/xdg
}

libreofficekit() {
	pkgdesc="Access LibreOffice functionality through C/C++ without UNO"
	depends=
	mkdir -p "$subpkgdir"/usr/include
	cp -a "$builddir"/include/LibreOfficeKit "$subpkgdir"/usr/include
}

math() {
	pkgdesc="LibreOffice - Equation editor"
	depends="libreoffice-common"
	_split math

	mkdir -p "$subpkgdir"/usr/lib/libreoffice/share/xdg
	mv "$pkgdir"/../all/usr/lib/libreoffice/share/xdg/math.desktop "$subpkgdir"/usr/lib/libreoffice/share/xdg
}

postgres() {
	pkgdesc="LibreOffice - Connector for PostgreSQL database"
	depends="libreoffice-base"
	_split postgresql
}

writer() {
	pkgdesc="LibreOffice - Word Processor"
	depends="libreoffice-common"
	_split writer

	mkdir -p "$subpkgdir"/usr/lib/libreoffice/share/xdg
	mv "$pkgdir"/../all/usr/lib/libreoffice/share/xdg/writer.desktop "$subpkgdir"/usr/lib/libreoffice/share/xdg
}

sdk() {
	pkgdesc="LibreOffice - SDK"
	depends="libreoffice-common"
	_split sdk
}

sha512sums="
8a37036dc3751ed5f8488a86aa6db63b86dcf0d58339a322d7e97e345f72e46a5ff6c34cdfc47c378482422f3c69216e4b4b80e1ecc6142c40fdc0f48332bde7  libreoffice-25.2.4.3.tar.xz
9bfa5aad7070d3ed1bf9a954c6770c256d2179db56b97c09d8c8eefbffb6c69258960c71d54495a15fe4ad32c98f2f7de38c5870281e193db39caace56f2c5d4  libreoffice-dictionaries-25.2.4.3.tar.xz
c3c4c3f0c13f8ce10d49992de574ef7d99e43a26786c9e60b624c22127fd5fa8978280fd30ae2657b555320b213944ffd093d813900bead12b154e28e0dc0dea  libreoffice-translations-25.2.4.3.tar.xz
a231eba4a1baca11766ef292ab45e302081115477fe23018652882923308856835cf8c9ecba61a5cf22543474ccef3136965d794a90c9e4e9e6dcc21f9af6e1a  17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip
9fe106bbdb55365f589246e5a0d10bbe9b35224132b66a1823dc6361633a67f2acc0e8c393dc7ed70d086858d16d242b8806b8b2184c98e3d20d0be85bed9c44  3404ab6b1792ae5f16bbd603bd1e1d03-libformula-1.1.7.zip
4a48f1e32907fb2dee601cda3cd7a0d7198b2d51f2a572b647f1e93f901fd511eef3567676e52dfb1723a2cdfbc01f2015ca0bb22903b0bc1476dd618cc9aa8a  35c94d2df8893241173de1d16b6034c0-swingExSrc.zip
a7c3044a0a7c67881f78eddc4b3faf05e29b20755a59cdbb9a0a49bd21be5aaa95d4ea5eaabdd6f005a421981fb7c55fee590d4c9592fe363ba27ae590652bd4  39bb3fcea1514f1369fcfc87542390fd-sacjava-1.3.zip
8eaa9eed3bff16a16483d0754756c181089eb705ea34ded7f9f6db90a591cbce3f0551f28d097bd2f44de813cb818720c430e79e516939e0398b72bf4614f4cd  3bdf40c0d199af31923e900d082ca2dd-libfonts-1.1.6.zip
12ab17a4db3f7c834b21e59ff6f6f6456630d8626db7fb908867b20204295d4fba8969e79a3694ca66cb24e9f0e5a0fa4b9d2d3f748691b7f93985f9e666ce5f  8ce2fcd72becf06c41f7201d15373ed9-librepository-1.1.6.zip
17ba9d2c0376fb7326d53bb1e3796610176a1af426d1b9073b5f7cf06c93d865e585c495e75c52fb8e426d7c453e751356a9ca9a54dc821ddadb6c8160ed5ba6  97b2d4dba862397f446b217e2b623e71-libloader-1.1.6.zip
58c1aa3965bf3a5f5d0facb67a5e42cec04e3f74e59cd7348ea2a9f6d9cafdce5552677c6b6d9c4cf2b31f52751695f2e53b2cee658e5f2eacb1393534a53c0e  ace6ab49184e329db254e454a010f56d-libxml-1.1.7.zip
654d2408c11349c90ae7d80b0c1997ee831004bc4ee36a706a0d8a84617fd0f82a97c5b45ab2388d60085afaec59a02eada007a8a1e14c3b366cabd36b7607ec  ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip
a04eca6a57807358bd4f8d017a2eeaa58403ef51fab11fc46ab089113a0ff5f66aaa793d3fc57b484334cbf51ed388a90d8d72d1e5819c8248cc0113ac928a77  beeca87be45ec87d241ddd0e1bad80c1-bsh-2.0b6-src.zip
71164f5e052db4fc16d1eb6ceb66d2b483d4912d874e371399047761e1d82e95d14288be5a7952c40f0ce39366f0706e726720e6e7171a00ce7bb55632cbf10c  d8bd5eed178db6e2b18eeed243f85aa8-flute-1.1.6.zip
4476024e7f307617719714fbf0999409aa11d730bc316f833bb6627d1b83abb42460417be588c193ecb49d6b926dd1f411934d8a8abebe00a3e85c0047dad0a6  db60e4fde8dd6d6807523deb71ee34dc-liblayout-0.2.10.zip
9091d3628d9c75c068507537afc9e10bfb79c1abfd36ad697af3d592a1cc049ba6640f665bfc53cc520b6a26c21d70b0275106843444b441484c2178f2784743  eeb2c7ddf0d302fba4bfc6e97eac9624-libbase-1.1.6.zip
c1a15ebbfe817ec79d4b3f1c97d096bf8511737d7d35d97302856ccfb3de14a1cd16bd31000415d9ab24bbd9ef770d37855cee4b819ff0e8fca2f2766920a114  f94d9870737518e3b597f9265f4e9803-libserializer-1.1.6.zip
50b5cfccd9be0b23c97258fab752fb4a482f6496c80e7a25640c7cea35dca195240b6f260e4a435fe7f1cfdfc5b207b879a3b2bea10f7bb29425b2cc49653cc9  Java-WebSocket-1.6.0.tar.gz
9bf343c59a36c6512f58046ca2fafca881ba26b49d144b9fa3f57475446e650aae8cd9149daf7706c1942d1353273c18dcb85d6deb94ea7b0f654a07e94681fb  bsh-2.1.1-src.zip
41ac356ebced3312c0f9ea0f07ff372337ab78af69071f63f63dc12bd2b0088d5d89aae3792276599dd0393bfdfd2b979946c43d36042e43105080bcdcbe089d  dragonbox-1.1.3.tar.gz
722aa814c33a34bfffe6c0201b0035cc3b65854a0ba9ae2f51620a89d68019353e2c306651b35bca337186b22b2e9865ef3c5e3df8e9328006f882e4577f8c85  dtoa-20180411.tgz
644b29f60458fc5193a3fb16a347c190f9694d1bdbc75202aafe8d43eb72ce0433bbeaeb692f8ca485000d68b451ddc0236a1880ebbd64477f73198043d046b3  frozen-1.2.0.tar.gz
9542e5206f9b2f9e072c52ef8e6cf44d1aaae8ae3e7ca7e820c1fac12e716503308ccb3cebc52155b4c93799f3ebca247781fc491524d004378bd26f5cddb9d1  lxml-4.1.1.tgz
5987bf6b3beefb4726f82ed35a25cbfe67e901f747c44cc2022e2172b1cf5d7e7c9e4f07242c2a46fc3c0aacf3fc6e79548d78e92616f15e348c3286d9bc04cb  pdfium-6764.tar.bz2
a6a51aa9cdba57272a5da4f9193704be16e19ef2843fe2b93068e2b5321d9bc6bbd8e6715d093a9cba66013c46c6d9edf961f4ceaa51f66601b802099ba40a1a  rhino-1.7.15.zip
8739b2e8b578accae14928473fb479d7014e9181dc7f363230282d4282f950f1006b2bcd746c12028fb86aeffdfd7d837435d09480cfe94714e81f8365dcf954  skia-m130-3c64459d5df2fa9794b277f0959ed8a92552bf4c.tar.xz
d7199b3cc36cd0e401bd8f857132425908307aefcdb1bb635ee81c34cf71ccbcdf0fe36a336a55da1281692b508881b54773afa41379a448863095f4abd5c0e8  zxcvbn-c-2.5.tar.gz
854b8ae29b57b40ba6bb6ff66e723a0e8dad053fcc2849f0ad763cd8a31352f4aeba9636fd4e3f0f2a0cd985a6f49b4261b9ace68d6be821ed42cfa7a73eb13c  185d60944ea767075d27247c3162b3bc-unowinreg.dll
6a6d131dad5191614950a49323ae6d9385afe331983c1c85fde82ce6ee816051d95dde9ef90658b8f0a8a0a21754e72ff724bf41f6b96c046b7b4c2660f7095b  f543e6e2d7275557a839a164941c0a86e5f2c3f2a0042bfc434c88c6dde9e140-opens___.ttf
6789d1b4e5d9743b735c0773e35465398907394f4343f97ab3d0e4000debf3296c4865473c513408b9d335984c08fd422b2d8ae45c1cf774ed5481b975f2c248  linux-musl.patch
ef81793640bc647e076687d317cd8554520cf376e6876b98d0ac6432089805092cb75c9fca99a0e03ccaf929e55f991cf26e698599641f20fd1efc81087a6fa4  musl-stacksize.patch
d99d074e89e2713a3b6a56fa60d9d989ca6eefc8884ccbf88cb16c7b09da6dde4ba4ebc6a4d8408b61a08088df7cb1bcda60738f91e5569179fc45d7e9b901a3  musl-libintl.patch
"
