mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2026-02-11 19:02:42 +01:00
153 lines
5.2 KiB
Plaintext
153 lines
5.2 KiB
Plaintext
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
|
|
|
|
_flavor=vserver
|
|
pkgname=linux-${_flavor}
|
|
pkgver=3.4.60
|
|
pkgrel=0
|
|
_vsver=vs2.3.3.9
|
|
|
|
if [ "${pkgver##*.*.*}" = "$pkgver" ]; then
|
|
_kernver=$pkgver
|
|
else
|
|
_kernver=${pkgver%.*}
|
|
fi
|
|
|
|
pkgdesc="Linux kernel with vserver"
|
|
url="http://linux-vserver.org/"
|
|
depends="mkinitfs linux-firmware"
|
|
makedepends="perl installkernel"
|
|
options="!strip"
|
|
_config=${config:-kernelconfig.${CARCH}}
|
|
install=
|
|
source="http://www.kernel.org/pub/linux/kernel/v3.x/linux-$_kernver.tar.xz
|
|
http://www.kernel.org/pub/linux/kernel/v3.x/patch-$pkgver.xz
|
|
patch-$pkgver-$_vsver.diff
|
|
kernelconfig.x86
|
|
kernelconfig.x86_64
|
|
"
|
|
subpackages="$pkgname-dev"
|
|
arch="all"
|
|
license="GPL-2"
|
|
|
|
_abi_release=${pkgver}-${_vsver}
|
|
|
|
prepare() {
|
|
cd "$srcdir"/linux-$_kernver
|
|
if [ "${pkgver%.0}" = "$pkgver" ]; then
|
|
msg "Applying $i"
|
|
unxz -c < ../patch-$pkgver.xz | patch -p1 -N || return 1
|
|
fi
|
|
|
|
# ERR is no valid signal
|
|
sed -i -e '/^trap/s/ERR//' scripts/link-vmlinux.sh
|
|
|
|
# first apply patches in specified order
|
|
for i in $source; do
|
|
i=${i##*/}
|
|
case $i in
|
|
*.patch|*.diff)
|
|
msg "Applying $i..."
|
|
patch -s -p1 -i "$srcdir"/$i || return 1
|
|
;;
|
|
esac
|
|
done
|
|
|
|
mkdir -p "$srcdir"/build
|
|
cp "$srcdir"/$_config "$srcdir"/build/.config || return 1
|
|
make -C "$srcdir"/linux-$_kernver O="$srcdir"/build HOSTCC="${CC:-gcc}" \
|
|
silentoldconfig
|
|
}
|
|
|
|
# this is so we can do: 'abuild menuconfig' to reconfigure kernel
|
|
menuconfig() {
|
|
cd "$srcdir"/build
|
|
make menuconfig
|
|
cp .config "$startdir"/$_config || return 1
|
|
}
|
|
|
|
build() {
|
|
cd "$srcdir"/build
|
|
export GCC_SPECS=hardenednopie.specs
|
|
make CC="${CC:-gcc}" \
|
|
KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-Alpine" \
|
|
|| return 1
|
|
}
|
|
|
|
package() {
|
|
cd "$srcdir"/build
|
|
mkdir -p "$pkgdir"/boot "$pkgdir"/lib/modules
|
|
make -j1 modules_install install \
|
|
INSTALL_MOD_PATH="$pkgdir" \
|
|
INSTALL_PATH="$pkgdir"/boot \
|
|
|| return 1
|
|
|
|
rm -rf "$pkgdir"/lib/modules/*/build \
|
|
"$pkgdir"/lib/modules/*/source
|
|
rm -rf "$pkgdir"/lib/firmware
|
|
|
|
install -D include/config/kernel.release \
|
|
"$pkgdir"/usr/share/kernel/$_flavor/kernel.release
|
|
}
|
|
|
|
dev() {
|
|
# 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
|
|
#
|
|
# this way you dont need to install the 300-400 kernel sources to
|
|
# build a tiny kernel module
|
|
#
|
|
pkgdesc="Headers and script for third party modules for grsec kernel"
|
|
local dir="$subpkgdir"/usr/src/linux-headers-${_abi_release}
|
|
|
|
# first we import config, run prepare to set up for building
|
|
# external modules, and create the scripts
|
|
mkdir -p "$dir"
|
|
cp "$srcdir"/$_config "$dir"/.config
|
|
make -j1 -C "$srcdir"/linux-$_kernver O="$dir" HOSTCC="${CC:-gcc}" \
|
|
silentoldconfig prepare scripts
|
|
|
|
# remove the stuff that poits to real sources. we want 3rd party
|
|
# modules to believe this is the soruces
|
|
rm "$dir"/Makefile "$dir"/source
|
|
|
|
# copy the needed stuff from real sources
|
|
#
|
|
# this is taken from ubuntu kernel build script
|
|
# http://kernel.ubuntu.com/git?p=ubuntu/ubuntu-jaunty.git;a=blob;f=debian/rules.d/3-binary-indep.mk;hb=HEAD
|
|
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' \) | cpio -pdm "$dir"
|
|
cp -a drivers/media/dvb/dvb-core/*.h "$dir"/drivers/media/dvb/dvb-core
|
|
cp -a drivers/media/video/*.h "$dir"/drivers/media/video
|
|
cp -a drivers/media/dvb/frontends/*.h "$dir"/drivers/media/dvb/frontends
|
|
cp -a scripts include "$dir"
|
|
find $(find arch -name include -type d -print) -type f \
|
|
| cpio -pdm "$dir"
|
|
|
|
install -Dm644 "$srcdir"/build/Module.symvers \
|
|
"$dir"/Module.symvers
|
|
|
|
mkdir -p "$subpkgdir"/lib/modules/${_abi_release}
|
|
ln -sf /usr/src/linux-headers-${_abi_release} \
|
|
"$subpkgdir"/lib/modules/${_abi_release}/build
|
|
}
|
|
|
|
md5sums="967f72983655e2479f951195953e8480 linux-3.4.tar.xz
|
|
8adcc50b2e43bd710b8d8f67a39e3432 patch-3.4.60.xz
|
|
074e210e1923b923659491456d8b745e patch-3.4.60-vs2.3.3.9.diff
|
|
1fce2ef2e47d19c150ab0b2df3373a57 kernelconfig.x86
|
|
b6a18f4cb2523bbd2500809e61172f8f kernelconfig.x86_64"
|
|
sha256sums="ff3dee6a855873d12487a6f4070ec2f7996d073019171361c955639664baa0c6 linux-3.4.tar.xz
|
|
40b5864c8ebc0f0c72a592c997fbd9163afd0599f95941fed1384da079b3ef32 patch-3.4.60.xz
|
|
3c8e55c49d6b0e9aface29d2fcac431e8a9dc267da2ffb18e094c29309abd4dc patch-3.4.60-vs2.3.3.9.diff
|
|
e97b45a117671c5a87a9ba4a1f946125053eac078d297f61f9c8d4594acbf830 kernelconfig.x86
|
|
d44d1a1be3402847f540cc0cfb201deec7084b4c516e592b92e115ab3f71d4b5 kernelconfig.x86_64"
|
|
sha512sums="1c49b336750c9c2b49d21e54126f22a800367296be0d57e6df28b1532cbeba7fc3bdf4cfe27d9810576e76c2db2e9c2493f0804451c915137cb78d7aa61f236c linux-3.4.tar.xz
|
|
15f4eb0cbc4e1240902e4de6cda729f128b7cb138b28bfd987cfc6033556d0e0e76e13b62c1d640cb13592a039d05747461480daa94eb021a57fd2d04b16101d patch-3.4.60.xz
|
|
57847c9021f583522cdaf3c4adc5d1eb376190d4487def130a89dd740e9ae0e599ca1f8a58438be4f8c1b8003d72866bac3905389c845b5483f26b6150f55fc7 patch-3.4.60-vs2.3.3.9.diff
|
|
f12f999c84f724a4ac20a736c7f56671e23b2a9ddce4b0576dc17d0b3e8f319f5c4bc40b58992eba75ace44148018d85de24b2516d0a83240cd0ca3803606eae kernelconfig.x86
|
|
4cf43a7fc609e9822919e5706f38c03ef72deae2eae6b7d4c4ca7f9f29bccd1f01c0d65660a0c5234df6c2123a1d0c797dbdcb57ca5559e39644704426657f3e kernelconfig.x86_64"
|