aboutsummaryrefslogtreecommitdiffstats
path: root/testing/linux-asahi/APKBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'testing/linux-asahi/APKBUILD')
-rw-r--r--testing/linux-asahi/APKBUILD206
1 files changed, 108 insertions, 98 deletions
diff --git a/testing/linux-asahi/APKBUILD b/testing/linux-asahi/APKBUILD
index 0141c360449..2826dbc6962 100644
--- a/testing/linux-asahi/APKBUILD
+++ b/testing/linux-asahi/APKBUILD
@@ -2,30 +2,40 @@
_flavor=asahi
pkgname=linux-${_flavor}
-pkgver=5.17.0_rc7
+pkgver=6.6_p15
-_commit_id=00e23945f258f06ed0cb0dd9ea44272cbdfc7346
+_rel=${pkgver#*_p}
+kver=${pkgver%_p*}
+kver=${kver//_/-}
+_asahiver=$kver-$_rel
pkgdesc="Apple Silicon (M1 development kernel)"
-pkgrel=1
+pkgrel=2
url="https://www.kernel.org"
-depends="mkinitfs"
-_depends_dev="perl gmp-dev elfutils-dev bash flex bison"
-makedepends="$_depends_dev sed bc linux-headers
- linux-firmware-any openssl1.1-compat-dev diffutils findutils"
+depends="initramfs-generator speakersafetyd"
+_depends_dev="perl gmp-dev elfutils-dev flex bison"
+makedepends="$_depends_dev sed bc linux-headers installkernel
+ linux-firmware-any openssl-dev diffutils findutils
+ clang16-libclang
+ rust
+ rustfmt
+ rust-bindgen
+ rust-src
+ "
options="!strip !check"
_config=${config:-config-asahi.${CARCH}}
-
subpackages="$pkgname-dev:_dev:$CBUILD_ARCH"
-source="linux-asahi-$pkgver.tar.gz::https://github.com/AsahiLinux/linux/archive/${_commit_id}.tar.gz
+source="linux-asahi-$_asahiver.tar.gz::https://github.com/AsahiLinux/linux/archive/refs/tags/asahi-$_asahiver.tar.gz
config-asahi.aarch64
+
+ 385ea7b5023486aba7919cec8b6b3f6a843a1013.patch
+ 6a24102c06c95951ab992e2d41336cc6d4bfdf23.patch
"
-builddir="$srcdir/linux-${_commit_id}"
-_builddir="$srcdir/linux-${_commit_id}"
+builddir="$srcdir/linux-asahi-$_asahiver"
arch="aarch64"
-license="GPL-2.0"
+license="GPL-2.0-only"
-_flavors=
+unset _flavors
for _i in $source; do
case $_i in
config-*.$CARCH)
@@ -46,50 +56,20 @@ arm*) _carch="arm" ;;
esac
prepare() {
- local _patch_failed=
- cd "$srcdir"/linux-${_commit_id}
- case $pkgver in
- *.*.0);;
- *)
- msg "Applying patch-$pkgver.xz"
- # unxz -c < "$srcdir"/patch-$pkgver.xz | patch -p1 -N ;;
- esac
-
- # first apply patches in specified order
- for i in $source; do
- case $i in
- *.patch)
- msg "Applying $i..."
- if ! patch -s -p1 -N -i "$srcdir"/$i; then
- echo $i >>failed
- _patch_failed=1
- fi
- ;;
- esac
- done
-
- if ! [ -z "$_patch_failed" ]; then
- error "The following patches failed:"
- cat failed
- return 1
- fi
- sed -i 's/^#EXTRAVERSION =/EXTRAVERSION =/' "$srcdir"/linux-${_commit_id}/Makefile
- sed -i 's/^EXTRAVERSION :=/#EXTRAVERSION :=/' "$srcdir"/linux-${_commit_id}/Makefile
- # remove localversion from patch if any
- rm -f localversion*
+ default_prepare
+ rm "$builddir"/localversion*
+ echo "-$_rel-asahi" > "$builddir"/localversion-alpine
oldconfig
}
oldconfig() {
for i in $_flavors; do
local _config=config-$i.${CARCH}
- local _builddir="$srcdir"/build-$i.$CARCH
+ local _builddir="$srcdir"/build-$i
mkdir -p "$_builddir"
- echo "-$pkgrel-$i" > "$_builddir"/localversion-alpine \
- || return 1
cp "$srcdir"/$_config "$_builddir"/.config
- make -C "$srcdir"/linux-$_commit_id \
+ make -C $builddir \
O="$_builddir" \
ARCH="$_carch" \
listnewconfig oldconfig
@@ -100,48 +80,35 @@ build() {
unset LDFLAGS
export KBUILD_BUILD_TIMESTAMP="$(date -Ru${SOURCE_DATE_EPOCH:+d @$SOURCE_DATE_EPOCH})"
for i in $_flavors; do
- cd "$srcdir"/build-$i.$CARCH
- make ARCH="$_carch" CC="${CC:-gcc}" \
+ local _builddir="$srcdir"/build-$i
+ make -C "$srcdir"/build-$i \
+ ARCH="$_carch" CC="${CC:-gcc}" \
KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-Alpine"
done
}
_package() {
local _buildflavor="$1" _outdir="$2"
- local _abi_release=${pkgver}-${pkgrel}-${_buildflavor}
export KBUILD_BUILD_TIMESTAMP="$(date -Ru${SOURCE_DATE_EPOCH:+d @$SOURCE_DATE_EPOCH})"
- cd "$srcdir"/build-$_buildflavor.$CARCH
- # modules_install seems to regenerate a defect Modules.symvers on s390x. Work
- # around it by backing it up and restore it after modules_install
- cp Module.symvers Module.symvers.backup
+ cd "$srcdir"/build-$_buildflavor
+ local _abi_release="$(make -s kernelrelease)"
mkdir -p "$_outdir"/boot "$_outdir"/lib/modules
- local _install
- case "$CARCH" in
- arm*|aarch64) _install="zinstall dtbs_install";;
- *) _install=install;;
- esac
-
- make -j1 modules_install $_install \
+ make -j1 modules_install zinstall dtbs_install \
ARCH="$_carch" \
INSTALL_MOD_PATH="$_outdir" \
+ INSTALL_MOD_STRIP=1 \
INSTALL_PATH="$_outdir"/boot \
INSTALL_DTBS_PATH="$_outdir/boot/dtbs-$_buildflavor"
- cp Module.symvers.backup Module.symvers
-
- rm -f "$_outdir"/lib/modules/${_abi_release}/build \
+ rm -f -- "$_outdir"/lib/modules/${_abi_release}/build \
"$_outdir"/lib/modules/${_abi_release}/source
- rm -rf "$_outdir"/lib/firmware
+ rm -rf -- "$_outdir"/lib/firmware
install -D -m644 include/config/kernel.release \
"$_outdir"/usr/share/kernel/$_buildflavor/kernel.release
- mv $pkgdir/boot/vmlinuz-*asahi $pkgdir/boot/vmlinuz-asahi
- mv $pkgdir/boot/System.map-*asahi $pkgdir/boot/System.map-asahi
- cp "$srcdir"/build-$_flavor.$CARCH/.config $pkgdir/boot/config-$_flavor
-
}
# main flavor installs in $pkgdir
@@ -153,7 +120,8 @@ package() {
_dev() {
local _flavor=$(echo $subpkgname | sed -E 's/(^linux-|-dev$)//g')
- local _abi_release=${pkgver}-${pkgrel}-$_flavor
+ local O="$srcdir/build-$_flavor"
+ local _abi_release="$(make -C "$O" -s kernelrelease)"
# copy the only the parts that we really need for build 3rd party
# kernel modules and install those as /usr/src/linux-headers,
# simlar to what ubuntu does
@@ -166,44 +134,86 @@ _dev() {
local dir="$subpkgdir"/usr/src/linux-headers-${_abi_release}
export KBUILD_BUILD_TIMESTAMP="$(date -Ru${SOURCE_DATE_EPOCH:+d @$SOURCE_DATE_EPOCH})"
- # first we import config, run prepare to set up for building
- # external modules, and create the scripts
- mkdir -p "$dir"
- cp "$srcdir"/config-$_flavor.${CARCH} "$dir"/.config
- echo "-$pkgrel-$_flavor" > "$dir"/localversion-alpine
+ # kernel sources
+ cd "$builddir"
- make -j1 -C "$srcdir"/linux-${_commit_id} O="$dir" ARCH="$_carch" \
- syncconfig prepare modules_prepare scripts
+ msg "Installing build files"
+ install -Dt "$dir" -m644 Makefile localversion* \
+ "$O/.config" "$O/Module.symvers" "$O/System.map" \
+ "$O/vmlinux"
+ install -Dt "$dir"/kernel -m644 kernel/Makefile
+ cp -t "$dir" -a scripts "$O/scripts"
- # remove the stuff that points to real sources. we want 3rd party
- # modules to believe this is the soruces
- rm "$dir"/Makefile "$dir"/source
+ msg "Installing headers..."
+ cp -t "$dir" -a include "$O/include"
- # copy the needed stuff from real sources
- #
- # this is taken from ubuntu kernel build script
- # http://kernel.ubuntu.com/git/ubuntu/ubuntu-zesty.git/tree/debian/rules.d/3-binary-indep.mk
- cd "$srcdir"/linux-${_commit_id}
- find . -path './include/*' -prune \
- -o -path './scripts/*' -prune -o -type f \
- \( -name 'Makefile*' -o -name 'Kconfig*' -o -name 'Kbuild*' -o \
- -name '*.sh' -o -name '*.pl' -o -name '*.lds' -o -name 'Platform' \) \
- -print | cpio -pdm "$dir"
+ install -Dt "$dir/arch/$_carch" -m644 $builddir/arch/$_carch/Makefile
+ install -Dt "$dir/arch/$_carch/kernel" -m644 "$O"/arch/$_carch/kernel/asm-offsets.s
+ cp -t "$dir/arch/$_carch" -a arch/$_carch/include $O/arch/$_carch/include
+
+ install -Dt "$dir/drivers/md" -m644 drivers/md/*.h
+ install -Dt "$dir/net/mac80211" -m644 net/mac80211/*.h
+
+ # https://bugs.archlinux.org/task/13146
+ install -Dt "$dir/drivers/media/i2c" -m644 drivers/media/i2c/msp3400-driver.h
+
+ # https://bugs.archlinux.org/task/20402
+ install -Dt "$dir/drivers/media/usb/dvb-usb" -m644 drivers/media/usb/dvb-usb/*.h
+ install -Dt "$dir/drivers/media/dvb-frontends" -m644 drivers/media/dvb-frontends/*.h
+ install -Dt "$dir/drivers/media/tuners" -m644 drivers/media/tuners/*.h
+
+ # https://bugs.archlinux.org/task/71392
+ install -Dt "$dir/drivers/iio/common/hid-sensors" -m644 drivers/iio/common/hid-sensors/*.h
- cp -a scripts include "$dir"
+ msg "Installing KConfig files..."
+ find . -name 'Kconfig*' -exec install -Dm644 {} "$dir/{}" \;
- find $(find arch -name include -type d -print) -type f \
- | cpio -pdm "$dir"
+ msg "Removing unneeded architectures..."
+ local arch
+ for arch in "$dir"/arch/*/; do
+ case $(basename "$arch") in
+ $_carch) continue ;;
+ esac
+ echo " - Removing $(basename "$arch")"
+ rm -r "$arch"
+ done
+
+ msg "Removing documentation"
+ rm -r "$dir"/Documentation
+
+ msg "Removing broken symlinks..."
+ find -L "$dir" -type l -printf 'Removing %P\n' -delete
+
+ msg "Removing loose objects..."
+ find "$dir" -type f -name '*.o' -printf 'Removing %P\n' -delete
+
+ msg "Stripping build tools..."
+ local file
+ find "$dir" -type f -perm -u+x ! -name vmlinux -print0 | while read -rd '' file; do
+ case "$(file -bi "$file")" in
+ application/x-sharedlib\;*) # Libraries (.so)
+ strip -v $STRIP_SHARED "$file" ;;
+ application/x-archive\;*) # Libraries (.a)
+ strip -v $STRIP_STATIC "$file" ;;
+ application/x-executable\;*) # Binaries
+ strip -v $STRIP_BINARIES "$file" ;;
+ application/x-pie-executable\;*) # Relocatable binaries
+ strip -v $STRIP_SHARED "$file" ;;
+ esac
+ done
- install -Dm644 "$srcdir"/build-$_flavor.$CARCH/Module.symvers \
- "$dir"/Module.symvers
+ msg "Stripping vmlinux..."
+ strip -v $STRIP_STATIC "$dir/vmlinux"
+ msg "Adding symlink..."
mkdir -p "$subpkgdir"/lib/modules/${_abi_release}
ln -sf /usr/src/linux-headers-${_abi_release} \
"$subpkgdir"/lib/modules/${_abi_release}/build
}
sha512sums="
-7b02a46a2d94f4c7190444a0cb11c109c0f9d85cb7befcfa192a08a822d7dc648bc4a1876b3748a24dede9c941e987942b91b200b3f7bd8dcfab7e227b1ffd57 linux-asahi-5.17.0_rc7.tar.gz
-fddbb96b75eae4eb2e9d68198be5b25d5ad482c8567fc9a331f3aaa1644179c7dcc1322376f15309dee9728721ed769882287e2fe24873ef2a5fcae103c3f9ac config-asahi.aarch64
+b261e3813f1c0f5bae3a24e7ed0dce41470cfe2ee965ab0121d41793aa08f72d0d91be633f7ba0317f265a6e98a7a134cf86a29e7d48dbb58c5f5f7a3a13cc53 linux-asahi-6.6-15.tar.gz
+0ed687414c03c7ef83842b0bc1ff95ec4f2f73a7eb9b3ca28e0c3f78ad7f3f03cfcc5c1c216548d3f5ec2ff10f59314c44776418807959b04558632d7f683209 config-asahi.aarch64
+0ceb12811db6c517871bf741605055a2c970d045de582e37d8f05d8717e4b26f995f06d479be5c2e6c08a6eb6d00bd3cce6ed9ea8e416afb39c664cf571f480c 385ea7b5023486aba7919cec8b6b3f6a843a1013.patch
+ae7f79b79e695775ae81c2ef77b9009dfcee488e727fc2a543194a267c19dabf53f1d44bcc8bf8cfa3f388a84bf5658c1e0a8d291ec1005d668cfa5c7ee4fbb0 6a24102c06c95951ab992e2d41336cc6d4bfdf23.patch
"