diff options
Diffstat (limited to 'community/linux-edge/APKBUILD')
-rw-r--r-- | community/linux-edge/APKBUILD | 148 |
1 files changed, 93 insertions, 55 deletions
diff --git a/community/linux-edge/APKBUILD b/community/linux-edge/APKBUILD index 9eaa56a53e8..52fe7beb17c 100644 --- a/community/linux-edge/APKBUILD +++ b/community/linux-edge/APKBUILD @@ -4,7 +4,7 @@ _flavor=edge pkgname=linux-${_flavor} # NOTE: this kernel is intended for testing # please resist urge to upgrade it blindly -pkgver=5.15.6 +pkgver=6.8.7 case $pkgver in *.*.*) _kernver=${pkgver%.*};; *.*) _kernver=$pkgver;; @@ -12,15 +12,15 @@ esac pkgrel=0 pkgdesc="Linux latest stable kernel" url="https://www.kernel.org" -depends="mkinitfs" -_depends_dev="perl gmp-dev elfutils-dev bash flex bison" +depends="initramfs-generator" +_depends_dev="perl gmp-dev elfutils-dev flex bison" makedepends="$_depends_dev sed installkernel bc linux-headers linux-firmware-any - openssl1.1-compat-dev diffutils findutils xz" + openssl-dev diffutils findutils xz" options="!strip !check" # no tests _config=${config:-config-edge.${CARCH}} install= -subpackages="$pkgname-dev:_dev:$CBUILD_ARCH" +subpackages="$pkgname-dev:_dev:$CBUILD_ARCH $pkgname-doc:_doc" source="https://cdn.kernel.org/pub/linux/kernel/v${pkgver%%.*}.x/linux-$_kernver.tar.xz" case $pkgver in *.*.0) source="$source";; @@ -28,17 +28,14 @@ case $pkgver in https://cdn.kernel.org/pub/linux/kernel/v${pkgver%%.*}.x/patch-$pkgver.xz" ;; esac - source="$source +source="$source config-edge.aarch64 config-edge.armv7 config-edge.x86_64 config-edge.riscv64 - config-edge4virt.aarch64 - config-edge4virt.armv7 - config-edge4virt.x86_64 - config-edge4virt.riscv64 " +builddir="$srcdir/linux-${_kernver}" arch="armv7 aarch64 x86_64 riscv64" license="GPL-2.0" @@ -65,7 +62,7 @@ esac prepare() { local _patch_failed= - cd "$srcdir"/linux-$_kernver + cd $builddir case $pkgver in *.*.0);; *) @@ -100,14 +97,13 @@ prepare() { oldconfig() { for i in $_flavors; do local _config=config-$i.${CARCH} - local _builddir="$srcdir"/build-$i.$CARCH - mkdir -p "$_builddir" - echo "-$pkgrel-$i" > "$_builddir"/localversion-alpine \ + mkdir -p "$builddir" + echo "-$pkgrel-$i" > "$builddir"/localversion-alpine \ || return 1 - cp "$srcdir"/$_config "$_builddir"/.config - make -C "$srcdir"/linux-$_kernver \ - O="$_builddir" \ + cp "$srcdir"/$_config "$builddir"/.config + make -C $builddir \ + O="$builddir" \ ARCH="$_carch" \ listnewconfig oldconfig done @@ -117,8 +113,8 @@ 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}" \ + cd "$builddir" + make ARCH="$_carch" DTC_FLAGS="-@" CC="${CC:-gcc}" \ KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-Alpine" done } @@ -128,7 +124,7 @@ _package() { local _abi_release=${pkgver}-${pkgrel}-${_buildflavor} export KBUILD_BUILD_TIMESTAMP="$(date -Ru${SOURCE_DATE_EPOCH:+d @$SOURCE_DATE_EPOCH})" - cd "$srcdir"/build-$_buildflavor.$CARCH + cd "$builddir" # 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 @@ -165,11 +161,6 @@ package() { _package edge "$pkgdir" } -# subflavors install in $subpkgdir -edge4virt() { - _package edge4virt "$subpkgdir" -} - _dev() { local _flavor=$(echo $subpkgname | sed -E 's/(^linux-|-dev$)//g') local _abi_release=${pkgver}-${pkgrel}-$_flavor @@ -190,47 +181,94 @@ _dev() { mkdir -p "$dir" cp "$srcdir"/config-$_flavor.${CARCH} "$dir"/.config echo "-$pkgrel-$_flavor" > "$dir"/localversion-alpine + cd $builddir + + echo "Installing headers..." + case "$_carch" in + x86_64) + _carch="x86" + install -Dt "${dir}/tools/objtool" $builddir/tools/objtool/objtool + ;; + esac + cp -t "$dir" -a $builddir/include - make -j1 -C "$srcdir"/linux-$_kernver O="$dir" ARCH="$_carch" \ - syncconfig prepare modules_prepare scripts + install -Dt "${dir}" -m644 $builddir/Makefile + install -Dt "${dir}" -m644 $builddir/Module.symvers + install -Dt "${dir}" -m644 $builddir/System.map + cp -t "$dir" -a $builddir/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 + install -Dt "${dir}/arch/${_carch}" -m644 $builddir/arch/${_carch}/Makefile + install -Dt "${dir}/arch/${_carch}/kernel" -m644 $builddir/arch/${_carch}/kernel/asm-offsets.s + cp -t "${dir}/arch/${_carch}" -a $builddir/arch/${_carch}/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-$_kernver - 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/drivers/md" -m644 drivers/md/*.h + install -Dt "$dir/net/mac80211" -m644 net/mac80211/*.h - cp -a scripts include "$dir" + # https://bugs.archlinux.org/task/13146 + install -Dt "$dir/drivers/media/i2c" -m644 drivers/media/i2c/msp3400-driver.h - find $(find arch -name include -type d -print) -type f \ - | cpio -pdm "$dir" + # 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 - install -Dm644 "$srcdir"/build-$_flavor.$CARCH/Module.symvers \ - "$dir"/Module.symvers + # https://bugs.archlinux.org/task/71392 + install -Dt "$dir/drivers/iio/common/hid-sensors" -m644 drivers/iio/common/hid-sensors/*.h + echo "Installing KConfig files..." + find . -name 'Kconfig*' -exec install -Dm644 {} "$builddir/{}" \; + + echo "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 + + echo "Removing broken symlinks..." + find -L "$builddir" -type l -printf 'Removing %P\n' -delete + + echo "Removing loose objects..." + find "$builddir" -type f -name '*.o' -printf 'Removing %P\n' -delete + + echo "Stripping build tools..." + local file + 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 < <(find "$builddir" -type f -perm -u+x ! -name vmlinux -print0) + + echo "Stripping vmlinux..." + strip -v $STRIP_STATIC "$builddir/vmlinux" + + echo "Adding symlink..." mkdir -p "$subpkgdir"/lib/modules/${_abi_release} ln -sf /usr/src/linux-headers-${_abi_release} \ "$subpkgdir"/lib/modules/${_abi_release}/build } +_doc() { + pkgdesc="documentation for $_flavor kernel" + mkdir -p "$subpkgdir"/usr/share/doc/linux-edge-doc + cp -r "$builddir"/Documentation \ + "$subpkgdir"/usr/share/doc/linux-edge-doc/ + +} + sha512sums=" -d25ad40b5bcd6a4c6042fd0fd84e196e7a58024734c3e9a484fd0d5d54a0c1d87db8a3c784eff55e43b6f021709dc685eb0efa18d2aec327e4f88a79f405705a linux-5.15.tar.xz -926403406c82f4589bb872cb74ff21dc4729184a3dd5293ba0cc201c13a5c3917b231721be551a6f19fb1d93e443b8ebac557df2a9cc265967a693b4031cedb3 patch-5.15.6.xz -2f6ab097d7d926092c64129dd25a160062813ac7fccaa8e2890a7c90533e1f926b6fb13966f108f65f16a515cca206f96830f684f4006225e091da6cad41db3f config-edge.aarch64 -569fe29aa0f495027e511141f8edbb4e086a82dae27ebb014e73640d8685de6e40c9d2ccf31179349a5c04e3920161d0c45df68189172c693b76e95e05501608 config-edge.armv7 -116db4d290b06ee38cb1b67613504771a3392be390a096f88955c088e02d7ce07a6d164fb1ac7caa87dbc21cecec389722b26404130b66a7f4cbab4e4ba350a4 config-edge.x86_64 -783f3c2bce1332d17aa6b89dec836c8726ceab82f5752b13f4d36ba4fdca3eaf801dfbb244c0f6f6c7c504dbb214021fe6c70cf04f2dc0a056ca372c9707f0bb config-edge.riscv64 -59a71ed1aef773cab28c946290b0e3f6ce03e75dbea89d8adfe7b0e032045cb0772312063e2719598ad6f0e19b41a534b1ac868f0c529ae602d1525f57ca8c13 config-edge4virt.aarch64 -31fe4129ad106b32e98feee0c1ff34fb4a835961f268dbcf8cd7d03873b752eb6187e70be1c6ee7cbde2067c88cce00bad342e835d50946954680e149dc11bc6 config-edge4virt.armv7 -2960b24bcbdda01933e301d9f5f8ff3761b615037943870a2b9293314017efadb7445a47d818f38061a00cf836078e0862b264e40a06d8a7ec7f2b50df86d81c config-edge4virt.x86_64 -b8eff40fa2bca9358310c663ce0ca0adf79d3a4111cf98ac3d849de57d7203e9907ae445a2c43e6cb554a510d55e8ec36a4ccde3d4e7f9d738417dfa1b7ea865 config-edge4virt.riscv64 +5c4eb4aa1d3f7d1ea01c0f7ddeadacdece6e144fd4bdfc16b2b925d3e10dc04de3a6db69320b79a96c3560052616f001d2c09e7a1bb4f7b731e2380a7ecce068 linux-6.8.tar.xz +19f6ff889e643bd46bce57ff9312900ab2bf866a8c2eaf0ab545bd6f4189872346c861672babbff991dbb04e3ef1a9b805aaac491d660482bdedc30af5922a0c patch-6.8.7.xz +bb50b625a8ad09437cdc9728db390329a19a1f1133d399de59defa57cf598ab7eeda9e00cbbbe2788fd880bf64e8adc2a7d50e9749a4c279b0f86900edf0b33f config-edge.aarch64 +305a6916440027d1247b39d504acfe544de798a0ed20b52ba5c18c6541066edc362ace8d5d208ce33994c3732366c0fffe94ab1983785d098f97cf80152899ed config-edge.armv7 +e66c2f8801e2f30a594479cfc2f3a8e794531f5d6521b7ab32171a0fd207c2b8472dc7c2efa289a3ae49248585eb7fb60cc73afa05ef6d7beb79b222600ba5f3 config-edge.x86_64 +91fc33060be048e9a2cee820f5502cec14782eff285bfb1da556d4e53b9e2df7c8d25539a7f634a9b1d59a308964075d9c473f0eba0cd2afb540fd446b2fa796 config-edge.riscv64 " |