From 0b269a560168206b5a03bcd56e8b9a5862118d8b Mon Sep 17 00:00:00 2001 From: Minecrell Date: Tue, 19 Oct 2021 10:20:17 +0200 Subject: [PATCH] firmware-: squash firmware blobs (MR 2619) Squash the packaged venus firmware blobs using pil-squasher so only one file needs to be loaded rather than many small ones. Linux detects squashed (.mbn) vs non-squashed (.mdt + .b*) based on file contents (not file name) so it is fine to install venus.mbn to venus.mdt. --- .../firmware-motorola-harpia/APKBUILD | 21 ++++++++++++------- .../firmware-wileyfox-crackling/APKBUILD | 18 +++++++++++----- .../testing/firmware-alcatel-idol347/APKBUILD | 19 ++++++++++++----- device/testing/firmware-asus-z010d/APKBUILD | 15 +++++++++---- 4 files changed, 52 insertions(+), 21 deletions(-) diff --git a/device/community/firmware-motorola-harpia/APKBUILD b/device/community/firmware-motorola-harpia/APKBUILD index a7a108c29..34f77b6d9 100644 --- a/device/community/firmware-motorola-harpia/APKBUILD +++ b/device/community/firmware-motorola-harpia/APKBUILD @@ -1,6 +1,6 @@ # Maintainer: Ruby Iris Juric pkgname=firmware-motorola-harpia -pkgver=2 +pkgver=3 pkgrel=0 pkgdesc="Firmware for Motorola Moto G4 Play" url="https://github.com/Sorixelle/vendor_motorola_harpia" @@ -8,28 +8,35 @@ subpackages="$pkgname-wcnss-nv:wcnss_nv $pkgname-venus" arch="aarch64" license="proprietary" options="!check !strip !archcheck !tracedeps pmb:cross-native" +makedepends="pil-squasher" _commit="a81be710b0ff4ee7e5fd1962184dcd882cc13efc" source="$pkgname-$_commit.tar.gz::$url/archive/$_commit.tar.gz" +builddir="$srcdir/vendor_motorola_harpia-$_commit" _fwdir="/lib/firmware/postmarketos" +build() { + # venus.mbn exists already but seems a bit different + pil-squasher venus2.mbn venus.mdt +} + package() { mkdir -p "$pkgdir" } wcnss_nv() { - pkgdesc="Motorola Moto G4 Play Wi-Fi/Bluetooth firmware configuration" + pkgdesc="Motorola Moto G4 Play WiFi/BT firmware configuration" replaces="firmware-motorola-harpia-wcnss" - cd "$srcdir/vendor_motorola_harpia-$_commit" - install -Dm644 wlan/prima/WCNSS_qcom_wlan_nv.bin -t "$subpkgdir/$_fwdir/wlan/prima" + install -Dm644 "$builddir"/wlan/prima/WCNSS_qcom_wlan_nv.bin -t "$subpkgdir/$_fwdir/wlan/prima" } venus() { pkgdesc="Motorola Moto G4 Play video firmware" - cd "$srcdir/vendor_motorola_harpia-$_commit" - install -Dm644 venus.b* -t "$subpkgdir/$_fwdir/qcom/venus-1.8" - install -Dm644 venus.mdt -t "$subpkgdir/$_fwdir/qcom/venus-1.8" + + # Linux detects squashed (.mbn) vs non-squashed (.mdt + .b*) based on + # file contents, so it is fine to install venus.mbn to venus.mdt + install -Dm644 "$builddir"/venus2.mbn "$subpkgdir/$_fwdir"/qcom/venus-1.8/venus.mdt } sha512sums="56a7f815bea3d20a5ef0241ae109ac3823c6ac433e2a05389035b7005c7966d7a0a7719dbf5a562c6cf53c18cebd6893d31d27a6efc1a50c307565f873b1aa54 firmware-motorola-harpia-a81be710b0ff4ee7e5fd1962184dcd882cc13efc.tar.gz" diff --git a/device/community/firmware-wileyfox-crackling/APKBUILD b/device/community/firmware-wileyfox-crackling/APKBUILD index 1d9f59517..5f672a3c0 100644 --- a/device/community/firmware-wileyfox-crackling/APKBUILD +++ b/device/community/firmware-wileyfox-crackling/APKBUILD @@ -1,16 +1,22 @@ pkgname=firmware-wileyfox-crackling -pkgver=3 -pkgrel=1 +pkgver=4 +pkgrel=0 pkgdesc="Firmware for Wileyfox Swift" url="https://rizzotherat.gitlab.io/firmware/" subpackages="$pkgname-venus $pkgname-wcnss-nv:wcnss_nv" arch="aarch64" license="proprietary" options="!check !strip !archcheck !tracedeps pmb:cross-native" +makedepends="pil-squasher" source="https://rizzotherat.gitlab.io/firmware/crackling.tar.xz" _fwdir="/lib/firmware/postmarketos" +build() { + # venus.mbn exists already but seems a bit different + pil-squasher venus2.mbn venus.mdt +} + package() { # parent package is empty mkdir -p "$pkgdir" @@ -18,14 +24,16 @@ package() { venus() { pkgdesc="Wileyfox Swift video firmware" - install -Dm644 "$srcdir"/venus.* -t "$subpkgdir/$_fwdir"/qcom/venus-1.8 + + # Linux detects squashed (.mbn) vs non-squashed (.mdt + .b*) based on + # file contents, so it is fine to install venus.mbn to venus.mdt + install -Dm644 "$srcdir"/venus2.mbn "$subpkgdir/$_fwdir"/qcom/venus-1.8/venus.mdt } wcnss_nv() { pkgdesc="Wileyfox Swift WiFi/BT firmware configuration" replaces="firmware-wileyfox-crackling-wcnss" - cd "$srcdir" - install -Dm644 WCNSS_* -t "$subpkgdir/$_fwdir"/wlan/prima + install -Dm644 "$srcdir"/WCNSS_qcom_wlan_nv.bin -t "$subpkgdir/$_fwdir"/wlan/prima } sha512sums="44e5c6d2ab28576548689bf43ecf5ac0a2ee42a49e0f993a459a59f80063775a00976bfe1a7db8d82ff82b92bf502832bf1c61ab456a131696f2fa5e09af16b3 crackling.tar.xz" diff --git a/device/testing/firmware-alcatel-idol347/APKBUILD b/device/testing/firmware-alcatel-idol347/APKBUILD index 312d60662..73bd052f1 100644 --- a/device/testing/firmware-alcatel-idol347/APKBUILD +++ b/device/testing/firmware-alcatel-idol347/APKBUILD @@ -1,18 +1,25 @@ pkgname=firmware-alcatel-idol347 -pkgver=2 -pkgrel=1 +pkgver=3 +pkgrel=0 pkgdesc="Firmware for Alcatel OneTouch Idol 3 (4.7)" url="https://github.com/vknecht/" subpackages="$pkgname-venus $pkgname-wcnss-nv:wcnss_nv" arch="aarch64" license="proprietary" options="!check !strip !archcheck !tracedeps pmb:cross-native" +makedepends="pil-squasher" _repository="firmware-alcatel-idol347" _commit="28317ed89bb9b568191ce2a6a5f4745a4c67b30f" source="$pkgname-$_commit.tar.gz::$url/$_repository/archive/$_commit.tar.gz" +builddir="$srcdir/$_repository-$_commit" _fwdir="/lib/firmware/postmarketos" +build() { + # venus.mbn exists already but seems a bit different + pil-squasher venus2.mbn venus.mdt +} + package() { # parent package is empty mkdir -p "$pkgdir" @@ -20,14 +27,16 @@ package() { venus() { pkgdesc="Alcatel OneTouch Idol 3 (4.7) video firmware" - install -Dm644 "$srcdir"/"$_repository"-"$_commit"/venus.* -t "$subpkgdir/$_fwdir"/qcom/venus-1.8 + + # Linux detects squashed (.mbn) vs non-squashed (.mdt + .b*) based on + # file contents, so it is fine to install venus.mbn to venus.mdt + install -Dm644 "$builddir"/venus2.mbn "$subpkgdir/$_fwdir"/qcom/venus-1.8/venus.mdt } wcnss_nv() { pkgdesc="Alcatel OneTouch Idol 3 (4.7) WiFi/BT firmware configuration" replaces="firmware-alcatel-idol347-wcnss" - cd "$srcdir"/"$_repository"-"$_commit" - install -Dm644 WCNSS_* -t "$subpkgdir/$_fwdir"/wlan/prima + install -Dm644 "$builddir"/WCNSS_qcom_wlan_nv.bin -t "$subpkgdir/$_fwdir"/wlan/prima } sha512sums="2199c08b6e07f1b11579c3acd70a4343e5b6a486b563039383450fc5a74584d3e62df63d5ac32592893460617990d9226b0178e4ebed507569321d027e995872 firmware-alcatel-idol347-28317ed89bb9b568191ce2a6a5f4745a4c67b30f.tar.gz" diff --git a/device/testing/firmware-asus-z010d/APKBUILD b/device/testing/firmware-asus-z010d/APKBUILD index 665122903..3adbf56aa 100644 --- a/device/testing/firmware-asus-z010d/APKBUILD +++ b/device/testing/firmware-asus-z010d/APKBUILD @@ -1,5 +1,5 @@ pkgname=firmware-asus-z010d -pkgver=2 +pkgver=3 pkgrel=0 pkgdesc="Firmware for Asus Zenfone Max ZC550KL" url="https://gitlab.com/camillathechicken/firmware-max" @@ -7,6 +7,7 @@ subpackages="$pkgname-wcnss-nv:wcnss_nv $pkgname-venus" arch="aarch64" license="proprietary" options="!check !strip !archcheck !tracedeps pmb:cross-native" +makedepends="pil-squasher" _tag="v0.1" _repo="firmware-max" @@ -16,6 +17,10 @@ builddir="$srcdir/$_repo-$_tag" _fwdir="/lib/firmware/postmarketos" +build() { + pil-squasher venus2.mbn venus.mdt +} + package() { # parent package is empty mkdir -p "$pkgdir" @@ -24,13 +29,15 @@ package() { wcnss_nv() { pkgdesc="Asus Zenfone Max ZC550KL WiFi/BT firmware configuration" replaces="firmware-asus-z010d-wcnss" - cd "$builddir" - install -Dm644 WCNSS_* -t "$subpkgdir/$_fwdir"/wlan/prima + install -Dm644 "$builddir"/WCNSS_qcom_wlan_nv.bin -t "$subpkgdir/$_fwdir"/wlan/prima } venus() { pkgdesc="Asus Zenfone Max ZC550KL video firmware" - install -Dm644 "$builddir"/venus.* -t "$subpkgdir/$_fwdir"/qcom/venus-1.8 + + # Linux detects squashed (.mbn) vs non-squashed (.mdt + .b*) based on + # file contents, so it is fine to install venus.mbn to venus.mdt + install -Dm644 "$builddir"/venus2.mbn "$subpkgdir/$_fwdir"/qcom/venus-1.8/venus.mdt } sha512sums="870c4835de86aac68f29249d6f1545dc8b9ccdb4c3a19ed19eb3429c5d0ab40ed3ffceba36bf54b69a9e3ca2170fde66b2e357a8686580865bfa38e8b99e0cd6 firmware-asus-z010d-v0.1.tar.gz"