aports/testing/polycule/APKBUILD
The one with the braid 5455cc13ec testing/polycule: upgrade to 0.2.5
Signed-off-by: The one with the braid <info@braid.business>
2025-03-18 11:36:17 +00:00

129 lines
4.4 KiB
Text

# Contributor: The one with the braid <info@braid.business>
# Maintainer: The one with the braid <info@braid.business>
pkgname=polycule
pkgver=0.2.5
pkgrel=1
pkgdesc="A geeky and efficient [matrix] client for power users."
url="https://gitlab.com/polycule_client/polycule"
arch="aarch64 x86_64" # flutter
license="EUPL-1.2"
# libsecret: pub/flutter_secure_storage
# xdg-user-dirs: pub/path_provider
# olm: pub/matrix
# mimalloc2: pub/media_kit
# libnotify: pub/flutter_local_notifications
# dbus: pub/flutter_local_notifications
# openssl-dev: pub/sqlcipher_flutter_libs
# mpv-dev: pub/media_kit
depends="
jsoncpp
libsecret
xdg-user-dirs
olm
mimalloc2
libnotify
dbus
"
makedepends="
ca-certificates
flutter-desktop
libsecret-dev
patchelf
openssl-dev
mpv-dev
"
sonameprefix="$pkgname:"
source="
https://gitlab.com/polycule_client/polycule/-/archive/${_rev:-"v$pkgver"}/polycule-${_rev:-v"$pkgver"}.tar.gz
system-flutter.patch
no-werror.patch
media-kit-broken-by-design.patch.pubdev
"
builddir="$srcdir/polycule-${_rev:-"v$pkgver"}"
# net: pub dependencies
# !check: no tests
options="net !check"
export _pkgorg="business.braid.polycule"
export _pkgexec="polycule"
case "$CARCH" in
aarch64) _flutter_arch="arm64" ;;
x86_64) _flutter_arch="x64" ;;
esac
export PUB_CACHE="$srcdir/pub_cache"
export CFLAGS="$CFLAGS -O2 -Wno-error -Wno-unknown-warning-option -Wno-unused-command-line-argument"
export CXXFLAGS="$CXXFLAGS -O2 -Wno-error -Wno-unknown-warning-option -Wno-unused-command-line-argument"
export CC=clang
export CXX=clang++
export AR=llvm-ar
export NM=llvm-nm
export LD=clang++
prepare() {
default_prepare
flutter pub get --enforce-lockfile
flutter gen-l10n
# if there is a binary in the pub_cache, we sure did not build it.
for elf in $(scanelf -RA -F "%F" "$PUB_CACHE"); do
rm -f "$elf"
done
# credits to jane400 <alpine@j4ne.de>
cd "$srcdir"
patch -p1 -i "$srcdir/media-kit-broken-by-design.patch.pubdev"
}
build() {
flutter build linux -v --release \
--dart-define=POLYCULE_IS_STABLE=true \
--dart-define=POLYCULE_VERSION=v$pkgver
local rpath="/usr/lib/$pkgname"
patchelf --set-rpath "$rpath/lib" build/linux/"$_flutter_arch"/release/bundle/$_pkgexec
for _elf in build/linux/"$_flutter_arch"/release/bundle/lib/lib*.so; do
# running patchelf on libapp (the AOT snapshot of the whole Dart codebase)
# breaks it with "[FATAL:flutter/runtime/dart_vm_initializer.cc(89)]
# Error while initializing the Dart VM: Invalid vm isolate snapshot seen".
#
# it has no rpath and only links to libc soname anyway. 🤷‍♀️
[ "$(basename "$_elf")" != "libapp.so" ] || continue
patchelf --set-rpath "$rpath" "$_elf"
done
}
package() {
local bundle="$builddir"/build/linux/$_flutter_arch/release/bundle
install -Dm755 "$bundle"/$_pkgexec "$pkgdir"/usr/lib/$pkgname/$_pkgexec
cp -rv "$bundle"/lib "$pkgdir"/usr/lib/$pkgname/lib
cp -rv "$bundle"/data "$pkgdir"/usr/lib/$pkgname/data
mkdir -p "$pkgdir"/usr/bin
ln -sv /usr/lib/$pkgname/$_pkgexec "$pkgdir"/usr/bin/$_pkgexec
install -Dm644 "$bundle"/data/flutter_assets/NOTICES.Z "$pkgdir"/usr/share/licenses/$pkgname/NOTICES.Z
install -Dm644 "$builddir"/LICENSE "$pkgdir"/usr/share/licenses/$pkgname/COPYING
for font in "$builddir"/assets/fonts/* ; do
install -Dm644 "$font"/LICENSE.txt "$pkgdir"/usr/share/licenses/$pkgname/"$(basename "$font")".txt
done
install -Dm644 linux/$_pkgorg.desktop "$pkgdir"/usr/share/applications/$_pkgorg.desktop
install -Dm644 linux/$_pkgorg-daemon.desktop "$pkgdir"/etc/xdg/autostart/$_pkgorg-daemon.desktop
install -Dm644 linux/$_pkgorg.service "$pkgdir"/usr/share/dbus-1/services/$_pkgorg.service
install -Dm644 linux/$_pkgorg.metainfo.xml "$pkgdir"/usr/share/metainfo/$_pkgorg.metainfo.xml
install -Dm644 assets/logo/logo-circle.svg "$pkgdir"/usr/share/icons/hicolor/scalable/apps/$_pkgorg.svg
}
sha512sums="
103cc574246364f35052d6d366034c47c04f32334a643d0dd5128060feff2661acf1415ef15156b9dcbb4aaa832630486d844c6a29b549bf0ef8f427482c3976 polycule-v0.2.5.tar.gz
00108c868dbb776ca4ce41861b31dd3e833b691d26f25a23c9b7a619be262f433ec655158c3e2e8dcb7c16ff900baf9e6eb51f7edadb945821df841e5e6b8bc2 system-flutter.patch
f1f9ed7c023024b11ea7ed4bfb02c8333e41c010b12c3ded816aae9ae947b8ccd0c9d2ca1e870fa92291553e75c7ba0b24c7be6e2d340c9d8de6a95f0d3410c8 no-werror.patch
159e717794811368df94401b0b18af01c835ac0da6b772026e95090699338cf10d05d494151f8c51409cf8440e32eeaba2d28f632ac3c288d5a7da4fa91f0b71 media-kit-broken-by-design.patch.pubdev
"