ports/kernel/linux-lts/APKBUILD

279 lines
6.7 KiB
Plaintext

# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Contributor: Alex Denes <caskd@redxen.eu>
# Maintainer: Alex Denes <caskd@redxen.eu>
pkgname=linux
_kver=5.10
_kpatch=55
_ksupport=lts
pkgver=$_kver.$_kpatch
pkgrel=0
_configs="
config-full.aarch64
config-full.armv7
config-full.mips64
config-full.ppc64le
config-full.x86
config-full.x86_64
config-virt.aarch64
config-virt.armv7
config-virt.ppc64le
config-virt.s390x
config-virt.x86
config-virt.x86_64
"
source="
https://cdn.kernel.org/pub/linux/kernel/v${pkgver%%.*}.x/linux-$pkgver.tar.xz
$_configs
"
_kabi= _klocalver= _kconfig= _kbdmain= _kbddev= _kflavor=
_kdir_src="$srcdir/linux-$pkgver"
arch="noarch"
subpackages="
$pkgname-$_ksupport-headers:_pkg_header:$CBUILD_ARCH
"
_depends_dev="
perl
gmp-dev
elfutils-dev
bash
flex
bison
"
makedepends="
$_depends_dev
sed
installkernel
bc
linux-headers
linux-firmware-any
openssl-dev
diffutils
findutils
"
pkgdesc="Linux Kernel - Metapackage"
url="https://www.kernel.org"
license="GPL-2.0"
options="!strip"
builddir="$_kdir_src"
_carch=${CARCH} # abuild to kernel arch mapping
case "$_carch" in
aarch64*) _carch="arm64" ;;
arm*) _carch="arm" ;;
mips*) _carch="mips" ;;
ppc*) _carch="powerpc" ;;
s390*) _carch="s390" ;;
esac
_archflavors() {
for i in $_configs; do
local _nocfg="${i#config-}"
local _arch="${_nocfg#*.}"
local _flavour="${_nocfg%.*}"
[ "$_arch" == "$CARCH" ] && echo "$_flavour"
done
}
_bvars() {
_kconfig="config-$_kflavor.$CARCH"
_kdir_main="$srcdir/build-$_kflavor.$CARCH"
_kdir_dev="$srcdir/build-$_kflavor-dev.$CARCH"
_ksaf="$_ksupport-$_kflavor"
_kabi="$pkgver-$pkgrel-$_ksaf"
_klocalver="-$pkgrel-$_ksaf"
}
_spvars() {
_kflavor="$(echo $subpkgname | cut -d- -f3)"
}
for _kflavor in $(_archflavors); do
_bvars
subpackages="
$subpackages
$pkgname-$_ksaf:_pkg_kernel:$CBUILD_ARCH
$pkgname-$_ksaf-dev:_pkg_extmod:$CBUILD_ARCH
"
done
export KBUILD_BUILD_TIMESTAMP="$(date -Ru${SOURCE_DATE_EPOCH:+d @$SOURCE_DATE_EPOCH})"
prepare() {
default_prepare
for _kflavor in $(_archflavors); do
_bvars
for _kbuilddir in "$_kdir_main" "$_kdir_dev"; do
mkdir -p "$_kbuilddir"
echo "$_klocalver" > "$_kbuilddir"/localversion-alpine \
|| return 1
cp "$srcdir"/"$_kconfig" "$_kbuilddir"/.config
make -C "$_kdir_src" \
O="$_kbuilddir" \
ARCH="$_carch" \
listnewconfig oldconfig
done
done
}
build() {
unset LDFLAGS
for _kflavor in $(_archflavors); do
_bvars
# Build kernel and modules
msg "Building $_kflavor for $CARCH"
cd "$_kdir_main"
make \
ARCH="$_carch" \
CC="${CC:-gcc}" \
KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-Alpine"
# Build out-of-tree builder
msg "Building $_kflavor-dev for $CARCH"
cd "$_kdir_dev"
make syncconfig \
ARCH="$_carch"
make prepare \
ARCH="$_carch"
make modules_prepare \
ARCH="$_carch"
make scripts \
ARCH="$_carch"
done
}
package() {
mkdir -p "$pkgdir"
}
_pkg_kernel() {
_spvars
_bvars
local _install=
case "$CARCH" in
arm*|aarch64) _install="zinstall dtbs_install";;
*) _install=install;;
esac
local _outdir="$subpkgdir"
mkdir -p "$_outdir"/boot "$_outdir"/lib/modules
cd "$_kdir_main"
# Install modules
make modules_install \
ARCH="$_carch" \
INSTALL_MOD_PATH="$_outdir"
# Install kernel
make "$_install" \
ARCH="$_carch" \
INSTALL_PATH="$_outdir"/boot \
INSTALL_DTBS_PATH="$_outdir/boot/dtbs-$_ksaf"
# Remove incorrect build-time symlinks
rm -f "$_outdir"/lib/modules/"$_kabi"/build \
"$_outdir"/lib/modules/"$_kabi"/source
rm -rf "$_outdir"/lib/firmware
# Install release file
install -D -m644 include/config/kernel.release \
"$_outdir"/usr/share/kernel/"$_kflavor"/kernel.release
}
_pkg_extmod() {
_spvars
_bvars
depends="$_depends_dev"
local _outdir="$subpkgdir/usr/src/linux-headers-$_kabi" _builddir="$subpkgdir/lib/modules/$_kabi"
mkdir -p "$_outdir"
cd "$_kdir_dev"
msg "Copying kernel out-of-tree build files"
rm Makefile source
cp -t "$_outdir" -a .
cd "$_kdir_src"
msg "Copying kernel out-of-tree build tree"
cp -t "$_outdir" -a scripts include
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 "$_outdir"
find ./arch \
-path './arch/*/include/*' \
-type f -print | \
cpio -pdm "$_outdir"
mkdir -p "$_builddir"
ln -sf "/usr/src/linux-headers-$_kabi" "$_builddir"/build
}
_pkg_header() {
provides="linux-headers=$pkgver-r$pkgrel"
_spvars
_bvars
local _outdir="$subpkgdir/usr"
mkdir -p "$_outdir"
cd "$_kdir_src"
make headers_install \
ARCH="$_carch" \
INSTALL_HDR_PATH="$_outdir"
rm -f **/.install **/install.cmd
rm -rf "$_outdir/include/drm" # provided by libdrm-dev
}
sha512sums="
53b80d1027c6df6a4f13237a21a3ea69bfe51ba12dd4bf4e984da29150e457fea6fdc493542e4b86a04a9ba1481ae0db866bd883767f7107c323b41fb9fe022c linux-5.10.55.tar.xz
7ae670f2dbbdec616becce3944fe190a797a19346b4fa266deae71d4c1ccd7b0e60e400bde47d32261cb15c1b2f1579a2848adace3397d82552c52bff1421f0a config-full.aarch64
84aaad1001be4e55c5885dcf27a4647028319123bf54195f8c1233287bec9c890dbb131920976e950136d5eacc7ff153fc9ad305cfd0ca28fd0194a263e8be4f config-full.armv7
0caf98dec1162b1ba4e4bb4e198d0a34e59ac022532d562961cf9b22cbdb930675ff3a845bb17ddff83b91a84ad61df9d607f175c34133916e0a3cdbb4c13786 config-full.mips64
35b8424024af2fdcd93a8f2062f6b55bdfe65daf4d0a160e5b217df122dbb1727ef899636ba18d063af0e0c02a5bd57ba414466264f82c4525dd20e54d6b4b82 config-full.ppc64le
35bce78364f269e5e1fa07d36614a0204b4e180239a83d793e118c461eaf0e305e4ed3821bcfa8be128b79bf1837be5248c13c44817c8038cd80806dfb06525c config-full.x86
6984f5fa18a0b15929b80f5480072c40cf153b96e1fbb9adf626fc9707cd2df2b702d5925fecd32362c02b28b9109c603ce520d26924105f4f9513b309949d47 config-full.x86_64
078e2b8ac688c79728c388f6cd87633b7835f19a5b3842b8ab97ef961d8b537e377e4acef4c0e65d94a686525a345586d9c31898c37a75075b5c0e5c8b6db748 config-virt.aarch64
3ce5419983ec07d3ae525fed81f26bc4b08e829d5128d6fb76d2ee707343c1ed1efbc03ca53910d406a4c6d303a01e3d2eed8af5257e134083434de0ccede5eb config-virt.armv7
287cf039eb8a5df7844559812f9eb5cb0ce41bd47c96132e3d234d2a2b28a883cd59d7964682a530da2e482d49e2bb94601e84085cac0b631c7bf858b4f3f7c6 config-virt.ppc64le
e2657b50b1844710cc29b545e4b560b7b79827b9005c6b1ccc7e5c89de31ce0a2a169407b0bff1e3cd9a1bcaa88745c149092d45029ca13bcc2b56a2b6d77ac6 config-virt.s390x
3eba52caf34ec45f0cdaa2606643b98f46f8a19251ea3ab9d6fbe9def714674c28388be825dddeed4085eda865c63d321884ad435529b14f0fb04310d7275b31 config-virt.x86
acc7f183a6773d3de0e10c808cbfadb7b54b6f9fcf891234473adef449f87e04a486ed6ec3fae106d0ff10f0c4bc3224971319aeba03fbcaafb1590e89c5ae84 config-virt.x86_64
"