Fix -dev and clean up pkgs

This commit is contained in:
Alex D. 2021-08-01 00:36:16 +00:00
parent 99214c1e9c
commit 82684bb769
Signed by: caskd
GPG Key ID: F92BA85F61F4C173
13 changed files with 131 additions and 74 deletions

View File

@ -2,16 +2,12 @@
# Contributor: Alex Denes <caskd@redxen.eu> # Contributor: Alex Denes <caskd@redxen.eu>
# Maintainer: Alex Denes <caskd@redxen.eu> # Maintainer: Alex Denes <caskd@redxen.eu>
_kernver=5.10 pkgname=linux
_kernpatch=52 _kver=5.10
_kpatch=55
pkgname=linux _ksupport=lts
pkgver=$_kernver.$_kernpatch pkgver=$_kver.$_kpatch
pkgrel=0 pkgrel=0
arch="noarch"
subpackages="
$pkgname-headers:_headerspkg:$CBUILD_ARCH
"
_configs=" _configs="
config-full.aarch64 config-full.aarch64
@ -34,23 +30,13 @@ source="
$_configs $_configs
" "
_archflavors() { _kabi= _klocalver= _kconfig= _kbdmain= _kbddev= _kflavor=
for i in $_configs; do _kdir_src="$srcdir/linux-$pkgver"
local _nocfg="${i#config-}"
local _arch="${_nocfg#*.}"
local _flavour="${_nocfg%.*}"
[ "$_arch" == "$CARCH" ] && echo "$_flavour"
done
}
for i in $(_archflavors); do
subpackages="
$subpackages
$pkgname-$i:_flavorpkg:$CBUILD_ARCH
$pkgname-$i-dev:_devpkg:$CBUILD_ARCH
"
done
arch="noarch"
subpackages="
$pkgname-$_ksupport-headers:_pkg_header:$CBUILD_ARCH
"
_depends_dev=" _depends_dev="
perl perl
gmp-dev gmp-dev
@ -59,7 +45,6 @@ _depends_dev="
flex flex
bison bison
" "
makedepends=" makedepends="
$_depends_dev $_depends_dev
sed sed
@ -76,7 +61,7 @@ pkgdesc="Linux Kernel - Metapackage"
url="https://www.kernel.org" url="https://www.kernel.org"
license="GPL-2.0" license="GPL-2.0"
options="!strip" options="!strip"
builddir="$srcdir/" builddir="$_kdir_src"
_carch=${CARCH} # abuild to kernel arch mapping _carch=${CARCH} # abuild to kernel arch mapping
case "$_carch" in case "$_carch" in
@ -86,53 +71,94 @@ case "$_carch" in
ppc*) _carch="powerpc" ;; ppc*) _carch="powerpc" ;;
s390*) _carch="s390" ;; s390*) _carch="s390" ;;
esac 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})" export KBUILD_BUILD_TIMESTAMP="$(date -Ru${SOURCE_DATE_EPOCH:+d @$SOURCE_DATE_EPOCH})"
prepare() { prepare() {
default_prepare default_prepare
for i in $(_archflavors); do
local _builddir= for _kflavor in $(_archflavors); do
local _config="config-$i.$CARCH"
for _builddir in "$srcdir/build-$i.$CARCH" "$srcdir/build-$i-dev.$CARCH"; do _bvars
mkdir -p "$_builddir"
echo "-$pkgrel-$i" > "$_builddir"/localversion-alpine \ for _kbuilddir in "$_kdir_main" "$_kdir_dev"; do
mkdir -p "$_kbuilddir"
echo "$_klocalver" > "$_kbuilddir"/localversion-alpine \
|| return 1 || return 1
cp "$srcdir"/"$_config" "$_builddir"/.config cp "$srcdir"/"$_kconfig" "$_kbuilddir"/.config
make -C "$srcdir"/"linux-$pkgver" \
O="$_builddir" \ make -C "$_kdir_src" \
O="$_kbuilddir" \
ARCH="$_carch" \ ARCH="$_carch" \
listnewconfig oldconfig listnewconfig oldconfig
done done
done done
} }
build() { build() {
unset LDFLAGS unset LDFLAGS
for i in $(_archflavors); do
for _kflavor in $(_archflavors); do
_bvars
# Build kernel and modules # Build kernel and modules
msg "Building $i for $CARCH" msg "Building $_kflavor for $CARCH"
cd "$srcdir"/"build-$i.$CARCH" cd "$_kdir_main"
make \ make \
ARCH="$_carch" \ ARCH="$_carch" \
CC="${CC:-gcc}" \ CC="${CC:-gcc}" \
KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-Alpine" KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-Alpine"
# Build out-of-tree builder # Build out-of-tree builder
msg "Building $i=dev for $CARCH" msg "Building $_kflavor-dev for $CARCH"
cd "$srcdir"/"build-$i-dev.$CARCH" cd "$_kdir_dev"
make syncconfig \ make syncconfig \
O="$_outdir" \
ARCH="$_carch" ARCH="$_carch"
make prepare \ make prepare \
O="$_outdir" \
ARCH="$_carch" ARCH="$_carch"
make modules_prepare \ make modules_prepare \
O="$_outdir" \
ARCH="$_carch" ARCH="$_carch"
make scripts \ make scripts \
O="$_outdir" \
ARCH="$_carch" ARCH="$_carch"
done done
} }
@ -140,72 +166,103 @@ package() {
mkdir -p "$pkgdir" mkdir -p "$pkgdir"
} }
_flavorpkg() { _pkg_kernel() {
local _buildflavor="${subpkgname##$pkgname-}" _outdir="$subpkgdir"
local _abi_release="$pkgver-$pkgrel-$_buildflavor"
cd "$srcdir"/"build-$_buildflavor.$CARCH" _spvars
_bvars
mkdir -p "$_outdir"/boot "$_outdir"/lib/modules local _install=
local _install
case "$CARCH" in case "$CARCH" in
arm*|aarch64) _install="zinstall dtbs_install";; arm*|aarch64) _install="zinstall dtbs_install";;
*) _install=install;; *) _install=install;;
esac esac
# Install kernel local _outdir="$subpkgdir"
make "$_install" \ mkdir -p "$_outdir"/boot "$_outdir"/lib/modules
ARCH="$_carch" \
INSTALL_PATH="$_outdir"/boot \
INSTALL_DTBS_PATH="$_outdir/boot/dtbs-$_buildflavor"
cd "$_kdir_main"
# Install modules # Install modules
make modules_install \ make modules_install \
ARCH="$_carch" \ ARCH="$_carch" \
INSTALL_MOD_PATH="$_outdir" 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 # Remove incorrect build-time symlinks
rm -f "$_outdir"/lib/modules/"$_abi_release"/build \ rm -f "$_outdir"/lib/modules/"$_kabi"/build \
"$_outdir"/lib/modules/"$_abi_release"/source "$_outdir"/lib/modules/"$_kabi"/source
rm -rf "$_outdir"/lib/firmware rm -rf "$_outdir"/lib/firmware
# Install release file
install -D -m644 include/config/kernel.release \ install -D -m644 include/config/kernel.release \
"$_outdir"/usr/share/kernel/"$_buildflavor"/kernel.release "$_outdir"/usr/share/kernel/"$_kflavor"/kernel.release
} }
_devpkg() { _pkg_extmod() {
_spvars
_bvars
depends="$_depends_dev" depends="$_depends_dev"
local _pkgnodev="${subpkgname%-dev}" local _outdir="$subpkgdir/usr/src/linux-headers-$_kabi" _builddir="$subpkgdir/lib/modules/$_kabi"
local _buildflavor="${_pkgnodev##$pkgname-}"
local _config="config-$_buildflavor.$CARCH" _abi_release="$pkgver-$pkgrel-$_buildflavor"
local _outdir="$subpkgdir/usr/src/linux-headers-$_abi_release" _builddir="$subpkgdir/lib/modules/$_abi_release"
mkdir -p "$_outdir" mkdir -p "$_outdir"
cd "$srcdir"/"build-$_buildflavor-dev.$CARCH"
cp -a . "$_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" mkdir -p "$_builddir"
ln -sf "$_outdir" "$_builddir"/build ln -sf "/usr/src/linux-headers-$_kabi" "$_builddir"/build
} }
_headerspkg() { _pkg_header() {
provides="linux-headers=$pkgver-r$pkgrel"
_spvars
_bvars
local _outdir="$subpkgdir/usr" local _outdir="$subpkgdir/usr"
cd "$srcdir"/"linux-$pkgver"
mkdir -p "$_outdir" mkdir -p "$_outdir"
cd "$_kdir_src"
make headers_install \ make headers_install \
ARCH="$_carch" \ ARCH="$_carch" \
INSTALL_HDR_PATH="$_outdir" INSTALL_HDR_PATH="$_outdir"
rm -f **/.install **/install.cmd rm -f **/.install **/install.cmd
rm -rf "$subpkgdir/usr/include/drm" # provided by libdrm-dev rm -rf "$_outdir/include/drm" # provided by libdrm-dev
} }
sha512sums=" sha512sums="
37262e3793ed433ee619e7b08c0ab64d34bbc66e29229025ada498edf45ab2c870569c0a3b17f026379c67153f277e90e1b301c95711638645bde025230201ef linux-5.10.52.tar.xz 53b80d1027c6df6a4f13237a21a3ea69bfe51ba12dd4bf4e984da29150e457fea6fdc493542e4b86a04a9ba1481ae0db866bd883767f7107c323b41fb9fe022c linux-5.10.55.tar.xz
7ae670f2dbbdec616becce3944fe190a797a19346b4fa266deae71d4c1ccd7b0e60e400bde47d32261cb15c1b2f1579a2848adace3397d82552c52bff1421f0a config-full.aarch64 7ae670f2dbbdec616becce3944fe190a797a19346b4fa266deae71d4c1ccd7b0e60e400bde47d32261cb15c1b2f1579a2848adace3397d82552c52bff1421f0a config-full.aarch64
84aaad1001be4e55c5885dcf27a4647028319123bf54195f8c1233287bec9c890dbb131920976e950136d5eacc7ff153fc9ad305cfd0ca28fd0194a263e8be4f config-full.armv7 84aaad1001be4e55c5885dcf27a4647028319123bf54195f8c1233287bec9c890dbb131920976e950136d5eacc7ff153fc9ad305cfd0ca28fd0194a263e8be4f config-full.armv7
0caf98dec1162b1ba4e4bb4e198d0a34e59ac022532d562961cf9b22cbdb930675ff3a845bb17ddff83b91a84ad61df9d607f175c34133916e0a3cdbb4c13786 config-full.mips64 0caf98dec1162b1ba4e4bb4e198d0a34e59ac022532d562961cf9b22cbdb930675ff3a845bb17ddff83b91a84ad61df9d607f175c34133916e0a3cdbb4c13786 config-full.mips64