# Maintainer: John Vogel # This APKBUILD borrows heavily from the jool-lts and jool-rpi aports. # AIC8800 version # Keep _ver in sync with radxa/aic8800 # When changing _ver we *must* bump _rel! _name=aic8800 _ver=5.0_git20260429 _srcver=5.0+git20260123.5f7be68d-5 _rel=0 _flavor=dragon # For custom kernels set $FLAVOR. _flavor="$FLAVOR" _extra_flavors="" if [ -z "$FLAVOR" ]; then _flavor="dragon" fi # Kernel version # Keep in sync with radxa/linux-dragon! _kpkg=linux-$_flavor _kver=7.0.11 _krel=0 _kpkgver="$_kver-r$_krel" maintainer="John Vogel " pkgname=$_name-$_flavor pkgver=$_kver pkgrel=$(( _krel + _rel )) pkgdesc="Aicsemi AIC8800 drivers for Linux (kernel modules for linux-$_flavor)" url="https://github.com/radxa-pkg/aic8800" arch="aarch64" license="GPL-3.0-or-later" makedepends="$_kpkg-dev=$_kpkgver linux-headers xz" subpackages="$pkgname-doc $pkgname-firmware" source="aic8800-$_srcver.tar.gz::https://github.com/radxa-pkg/aic8800/archive/refs/tags/$_srcver.tar.gz" builddir="$srcdir/$_name-${_srcver/+/-}" options="!strip !check !usrmerge" for _f in $_extra_flavors; do makedepends="$makedepends linux-$_f-dev=$_kpkgver" subpackages="$subpackages $_name-$_f:_extra" done prepare() { default_prepare dos2unix src/USB/driver_fw/drivers/aic8800/aic_load_fw/aicbluetooth.c dos2unix src/USB/driver_fw/drivers/aic_btusb/aic_btusb.h dos2unix src/USB/driver_fw/drivers/aic8800/aic_load_fw/aic_bluetooth_main.c while read -r p; do printf 'applying %s\n' "$p" patch -Np1 -i debian/patches/$p done < debian/patches/series # verify the kernel version local _kapkbuild="$startdir"/../../testing/linux-$_flavor/APKBUILD if [ -f $_kapkbuild ]; then ( . $_kapkbuild pkgname=$_name-$_flavor [ "$_kver" != "$pkgver" ] && die "please update _kver to $pkgver" [ "$_krel" != "$pkgrel" ] && die "please update _krel to $pkgrel" return 0 ) fi } _kernelarch() { local arch="$1" case "$arch" in aarch64*) arch="arm64" ;; arm*) arch="arm" ;; ppc*) arch="powerpc" ;; s390*) arch="s390" ;; riscv*) arch="riscv" ;; loongarch64) arch="loongarch" ;; esac echo "$arch" } build() { local flavor= kabi= for flavor in $_flavor $_extra_flavors; do kabi="${_kver/_rc/-rc}-$_krel-$flavor" cp -a -l "$builddir" "$srcdir"/"$kabi" cd "$srcdir"/"$kabi" make -C "/lib/modules/$_kver-$_krel-$flavor/build" \ M="$srcdir/$kabi/src/USB/driver_fw/drivers/aic_btusb" \ ARCH="$(_kernelarch $CBUILD)" \ CROSS_COMPILE= \ modules make -C "/lib/modules/$_kver-$_krel-$flavor/build" \ M="$srcdir/$kabi/src/USB/driver_fw/drivers/aic8800" \ ARCH="$(_kernelarch $CBUILD)" \ CROSS_COMPILE= \ modules done } package() { install -Dm644 -t "$pkgdir"/usr/share/licenses/"$pkgname" LICENSE local flavor= kabi= for flavor in $_flavor $_extra_flavors; do kabi="${_kver/_rc/-rc}-$_krel-$flavor" cd "$srcdir"/"$kabi" make -C "/lib/modules/$_kver-$_krel-$flavor/build" \ M="$srcdir/$kabi/src/USB/driver_fw/drivers/aic_btusb" \ ARCH="$(_kernelarch $CBUILD)" \ CROSS_COMPILE= \ INSTALL_MOD_PATH="$pkgdir" \ CONFIG_MODULE_SIG_KEY="/lib/modules/$_kver-$_krel-$flavor/build/certs/signing_key.x509" \ modules_install make -C "/lib/modules/$_kver-$_krel-$flavor/build" \ M="$srcdir/$kabi/src/USB/driver_fw/drivers/aic8800" \ ARCH="$(_kernelarch $CBUILD)" \ CROSS_COMPILE= \ INSTALL_MOD_PATH="$pkgdir" \ CONFIG_MODULE_SIG_KEY="/lib/modules/$_kver-$_krel-$flavor/build/certs/signing_key.x509" \ modules_install done } _extra() { local flavor=${subpkgname##*-} local kabi="${_kver/_rc/-rc}-$_krel-$flavor" depends="linux-$flavor=$_kpkgver" install_if="linux-$flavor=$_kpkgver" pkgdesc="Aicsemi AIC8800 drivers for Linux (kernel modules for linux-$flavor)" install -dm755 "$subpkgdir"/lib/modules mv "$pkgdir"/lib/modules/"$kabi" "$subpkgdir"/lib/modules } firmware() { pkgdesc="Aicsemi AIC8800 drivers for Linux (usb firmware)" install -Dm644 -t "$subpkgdir"/lib/firmware/aic8800_fw/USB/aic8800D80 \ "$builddir"/src/USB/driver_fw/fw/aic8800D80/*.bin install -Dm644 -t "$subpkgdir"/lib/firmware/aic8800_fw/USB/aic8800D80 \ "$builddir"/src/USB/driver_fw/fw/aic8800D80/*.txt } sha512sums=" d99215a577ebc65d275c00298e7ddd8819e3ecd16f0db352dd7b2a3665d12da80ee62c97e7f7de96c62b7237c0f6b7d1dffc13e6d16bac86fd2d052432772be8 aic8800-5.0+git20260123.5f7be68d-5.tar.gz "