pmaports/device/main/device-purism-librem5/APKBUILD
Clayton Craft cc4c164c58
device-purism-librem5: remove craftyguy as maintainer (MR 5223)
I'm not able to give this device the attention it deserves.

This also removes me from maintaining fw and kernel packages used by the
L5, and adds the current L5 maintainers to those packages.

[ci:skip-vercheck]
[ci:skip-build]: already built successfully in CI
2024-06-17 14:20:57 -07:00

215 lines
8.7 KiB
Text

# Reference: <https://postmarketos.org/devicepkg>
# Maintainer: Alistair Francis <alistair@alistair23.me>
# Co-Maintainer: Newbyte <newbyte@postmarketos.org>
# Contributor: Clayton Craft <clayton@craftyguy.net>
pkgname=device-purism-librem5
pkgver=3
pkgrel=0
_confver=64
_purismrel=1
# <librem5-base ver>.<purism release>
_purismver=${_confver}pureos$_purismrel
pkgdesc="Purism Librem 5 Phone (librem5-base: $_purismver)"
url="https://postmarketos.org"
license="MIT"
arch="aarch64"
options="!check !archcheck"
depends="
alsa-ucm-conf
bluez
bm818-tools
gnss-share
i2c-tools
iw
linux-purism-librem5>=6.3
mesa-egl
postmarketos-base
u-boot-librem5
u-boot-tools
"
makedepends="devicepkg-dev"
builddir=$srcdir/librem5-base-pureos-$_confver
source="
https://source.puri.sm/Librem5/librem5-base/-/archive/pureos/$_purismver/librem5-base-pureos-$_purismver.tar.gz
00-mesa.sh
deviceinfo
modules-initfs
flash_script.lst
modprobe.d_rsi.conf
modules-load.d_librem5.conf
pcscd-librem5-reader.conf
pcscd-librem5.initd
uboot-script.cmd
xorg.conf
70-librem5-xwayland-accel.sh
0001-udev-cameras-use-correct-path-for-modprobe-on-Alpine.patch
l5-brcm-bt-enable.initd
l5-lockdown-support.initd
l5-ship-mode.initd
modemmanager.conf
udev/70-brcm-bluetooth.rules
udev/70-wifi-pm.rules
"
subpackages="
$pkgname-camera
$pkgname-gnome
$pkgname-nonfree-firmware:nonfree_firmware
$pkgname-pulseaudio
$pkgname-smartcard
$pkgname-tinydm
$pkgname-usbguard
$pkgname-x11
"
# TODO: remove "replaces" when upstream ucm has proper L5 support...
replaces="alsa-ucm-conf"
install="$pkgname.post-install $pkgname.post-upgrade"
builddir="$srcdir/librem5-base-pureos-$_purismver"
build() {
mkimage -A arm64 -C none -O linux -T script -d "$srcdir/uboot-script.cmd" "$srcdir/boot.scr"
devicepkg_build $startdir $pkgname
}
gnome() {
install_if="$pkgname=$pkgver-r$pkgrel postmarketos-base-ui-gnome"
depends="
wys
"
install -D -m644 "$builddir"/default/org.freedesktop.ModemManager1.pkla \
"$subpkgdir"/var/lib/polkit-1/localauthority/10-vendor.d/org.freedesktop.ModemManager1.pkla
}
camera() {
install_if="$pkgname=$pkgver-r$pkgrel postmarketos-default-camera"
depends="millipixels"
mkdir -p "$subpkgdir"
}
pulseaudio() {
pkgdesc="Pulseaudio support for the Librem 5"
install_if="$pkgname pulseaudio"
# install config files from upstream Purism
mkdir -p "$subpkgdir"/etc/pulse/
cp -r "$builddir"/default/audio/pulse/daemon.conf.d "$subpkgdir"/etc/pulse/
install -D -m644 "$builddir"/default/audio/pulse/librem5.pa "$subpkgdir"/etc/pulse/librem5.pa
mkdir -p "$subpkgdir"/usr/share/pulseaudio/alsa-mixer
cp -r "$builddir"/default/audio/profile-sets "$subpkgdir"/usr/share/pulseaudio/alsa-mixer/
}
tinydm() {
pkgdesc="Tinydm config for the Librem 5"
install_if="$pkgname tinydm"
install -Dm755 "$srcdir"/70-librem5-xwayland-accel.sh \
"$subpkgdir"/etc/tinydm.d/env-wayland.d/70-librem5-xwayland-accel.sh
}
smartcard() {
pkgdesc="OpenPGP SmartCard support for the Librem 5"
depends="$pkgname ccid gnupg-scdaemon pcsc-lite pcsc-tools"
install_if="$pkgname pcsc-tools"
install="$install $subpkgname.post-install"
install -D -m644 "$srcdir"/pcscd-librem5-reader.conf \
"$subpkgdir"/etc/reader.conf.d/librem5-ttxs-reader
install -D -m755 "$srcdir"/pcscd-librem5.initd \
"$subpkgdir"/etc/init.d/pcscd-librem5
}
usbguard() {
pkgdesc="USB guard support for the Librem 5"
install_if="$pkgname usbguard"
install -Dm600 "$builddir"/default/usbguard/librem5.conf \
-t "$subpkgdir"/etc/usbguard/rules.d/
}
x11() {
install_if="$pkgname xorg-server"
install -Dm644 "$srcdir"/xorg.conf \
"$subpkgdir"/etc/X11/xorg.conf.d/10-video.conf
}
package() {
install -D -m644 "$srcdir"/boot.scr \
"$pkgdir"/boot/boot.scr
install -D -m644 "$srcdir"/modprobe.d_rsi.conf "$pkgdir"/etc/modprobe.d/rsi.conf
install -D -m644 "$srcdir"/modules-load.d_librem5.conf "$pkgdir"/etc/modules-load.d/librem5.conf
install -D -m644 "$srcdir"/00-mesa.sh "$pkgdir"/etc/profile.d/00-mesa.sh
install -D -m644 "$srcdir"/flash_script.lst "$pkgdir"/usr/share/uuu/flash_script.lst
# udev
for f in "$builddir"/debian/*.udev; do
# rename the udev rules, dropping the default prefix and (arbitrarily...) using "85-"
install -Dm644 "$f" \
"$pkgdir"/usr/lib/udev/rules.d/85-"$(basename ${f//librem5-base-defaults./}).rules"
done
for f in "$srcdir"/*.rules; do
# rename the udev rules, dropping the default prefix and (arbitrarily...) using "85-"
install -Dm644 "$f" \
"$pkgdir"/usr/lib/udev/rules.d/"$(basename $f)"
done
# Bluetooth (Sparklan)
install -Dm755 "$srcdir"/l5-brcm-bt-enable.initd \
"$pkgdir"/etc/init.d/l5-brcm-bt-enable
# install audio config files from Purism
install -Dm644 "$builddir"/default/audio/ucm2/simple-card/Librem\ 5.conf \
"$pkgdir"/usr/share/alsa/ucm2/NXP/iMX8/Librem_5/Librem\ 5.conf
install -Dm644 "$builddir"/default/audio/ucm2/simple-card/HiFi.conf \
"$pkgdir"/usr/share/alsa/ucm2/NXP/iMX8/Librem_5/HiFi.conf
mkdir -p "$pkgdir"/usr/share/alsa/ucm2/conf.d/simple-card
# relative path seems to be required or else alsa-lib can't figure it out
ln -s ../../NXP/iMX8/Librem_5/Librem\ 5.conf \
"$pkgdir"/usr/share/alsa/ucm2/conf.d/simple-card/Librem\ 5.conf
# ship mode service
install -Dm755 "$builddir"/default/shipmode/l5-poweroff-shipmode \
-t "$pkgdir"/usr/sbin/
install -D -m755 "$srcdir"/l5-ship-mode.initd \
"$pkgdir"/etc/init.d/l5-ship-mode
# lockdown support
install -Dm755 "$builddir"/default/lockdown-support/lockdown-support.sh \
-t "$pkgdir"/usr/sbin/
install -Dm755 "$builddir"/default/lockdown-support/modprobe.d/librem5-lsm9ds1.conf \
-t "$pkgdir"/etc/modprobe.d/
install -Dm755 "$srcdir"/l5-lockdown-support.initd \
"$pkgdir"/etc/init.d/l5-lockdown-support
# Modem
install -Dm644 "$srcdir"/modemmanager.conf \
"$pkgdir"/etc/conf.d/modemmanager
devicepkg_package $startdir $pkgname
}
nonfree_firmware() {
pkgdesc="Wifi and Bluetooth firmware"
depends="firmware-siliconlabs-rs9116 firmware-brcm43752"
mkdir "$subpkgdir"
}
sha512sums="
46bff1208af87c9b6b2c61daaeeb95c3ff30617dce548a5877ea279ff9ced5338caaa32827bfbd98f3cb7c92d3535c27224c55bf1c03bf82f99e8ca53fe4cf6c librem5-base-pureos-64pureos1.tar.gz
2e72d9a084ecd6c96cafbbd8fda461ae8b2ebd14ffda601d9f36d73f08f04088213de17da078293ddd958d4c76d33148c7af6e252eb0709f6934855a55578509 00-mesa.sh
703d12826464eb2bdb6bf4a7d10adb73b37564d3792794523b252f0f7cb66184add150a6938580cc33615281d1c0abd7ff158ae2143b89fa28c0cd3dc367e5ff deviceinfo
138ed85e6509e4611bf21a0061c312e6c2ce60f722ee9e4565d19c5f025301d4df3fa321343524219a54b20c5288dc6ed1b058ac66f4d608af22eb5bc83e84c6 modules-initfs
ccb47fd421c5e35a8def8e6fb61dad99e42cf542690068a68f90c257e41d33f45f1069db0a8d89372d9029681812957033995639a6a8a5e3eed48019325e0f4d flash_script.lst
3f62c04eb92d850e32d5e1b17534dec753563342ea6c4f9dc2572700d4f6eeb8ae8cd8e8e4f1b0f5c61f21d87bc61c02212f27313986157220003d78e2d69505 modprobe.d_rsi.conf
a0740e405781ec6ef765fdc9f5700c95adbb241c45c97b9384ba68cdece662cb216ca5918640042f6e65a5d1b1a9099936382c99b49a44303f7b6d77a075a471 modules-load.d_librem5.conf
8ef4ec7a9e9a4fb801d207e7d94b627aacc9243a93b0ec28e0823a6f44b8102416c040e4ddf499f87bb9dfa960cf6f627b008b79f197f6814b3fd881e18ae8ef pcscd-librem5-reader.conf
2618b40eebd3602066ee75ab85cbdbb4cfee498def9879c95a304f05a6eeedf1ab28c5dd9fa5efc8f88c790f49c96458c61d5dfe8a3ca0f96bcc0e244313ab01 pcscd-librem5.initd
659c1801b6172c137db091a5850b467b5c667a5d0392c3d4f9cd767916ded20f09a494ad3c07cae09e9151909aca13208d3d0c681e9d4ec15681078c7046444b uboot-script.cmd
1cbc65cf2cb8fad4b0332d012a0256a266205b9b64371f5c0dae09dbb7f1e45b254e8c43993b896097e9d7035a72d547d9bce1ab2133addc56a5abdb80b44616 xorg.conf
fad386071fc45f9880a94cc8004fabd5d98b3e6a12606c98d8e72e0208f22ab54f03b921f5967a959782507e2bff67d2fa92e46d8cd242011a3afcdbda529279 70-librem5-xwayland-accel.sh
b45749fcddfd65a302b502bcabfa5828d1b63e45d844fd50e44009a756b919db20fe9526102947c0f0dfcdffe4a037e5050fe1b24fb915933ce0837f49759378 0001-udev-cameras-use-correct-path-for-modprobe-on-Alpine.patch
d9ebb7acddce8005909505b245140913ea3096a3ab8658ecbe2bf905953ba51aed4188b1d006d4d5bfd10c5e0ebca0150fec67d8c6d156d105021e9e4598b878 l5-brcm-bt-enable.initd
f4b314d553655f7975445ac0a33099923e20dabb082c07e2cf6a78e4118c143d777dd4ad2c09cbc388600bdefe8deb3073fbd15b238772ddf09c66ac46415590 l5-lockdown-support.initd
c723764d507ccd4b04aa5ce79b1d1ebc131873cdc37a943cb0f92b8a08a3c69eb9e0d31fcd4589fd8c40a9676bae9897e4f12ec2ebe4db8214ac85669ef35a53 l5-ship-mode.initd
e089b0c4320c8cb5a6bd1e85f12b6afb24d035958f2bdc7a8ed2cee5b0f379e6fdfad876d8d22c03c9cb0576b4aa7c20c3e9986ba8147500add6d93b44e5f266 modemmanager.conf
b7f5ecd0fefe8a122ed20e7ac21a23a65e007f62a7343c7178712955ed580f5473ca923cedb9f86cd10ecb13a76ab50c91a2f7b8b2fd456ee8420aeca75f3fec 70-brcm-bluetooth.rules
8b6fa7b12c15f439c561901f3ffe24a1ef2a0c343401c0a79281060854ab29e08a1fb5e7adae8684b12aa9f535ed99e2dad993dce9724822cb0fbf2497dd86e5 70-wifi-pm.rules
"