mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2026-04-30 10:01:37 +02: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.56
|
|
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
|
|
d13507089f1c81a5f00c510144ae4f2d patch-3.4.56.xz
|
|
28aca79d0c947ca90d80d96f24a020f5 patch-3.4.56-vs2.3.3.9.diff
|
|
1fce2ef2e47d19c150ab0b2df3373a57 kernelconfig.x86
|
|
b6a18f4cb2523bbd2500809e61172f8f kernelconfig.x86_64"
|
|
sha256sums="ff3dee6a855873d12487a6f4070ec2f7996d073019171361c955639664baa0c6 linux-3.4.tar.xz
|
|
71980cb04968fe5141be9f370d542deb767c8c2de8b68073c25035790900cd56 patch-3.4.56.xz
|
|
9c44202e615937d338ed5be1dc2f517f3a48b9c100788a1d840aae2f98d196cd patch-3.4.56-vs2.3.3.9.diff
|
|
e97b45a117671c5a87a9ba4a1f946125053eac078d297f61f9c8d4594acbf830 kernelconfig.x86
|
|
d44d1a1be3402847f540cc0cfb201deec7084b4c516e592b92e115ab3f71d4b5 kernelconfig.x86_64"
|
|
sha512sums="1c49b336750c9c2b49d21e54126f22a800367296be0d57e6df28b1532cbeba7fc3bdf4cfe27d9810576e76c2db2e9c2493f0804451c915137cb78d7aa61f236c linux-3.4.tar.xz
|
|
608e165b38e6fff0341369e3793edf8675cb5d0d4b123338f446424b4fe4c52050fce2a281a3ebb7d04f45e9fc5f5c9ec9d01c407261194385f60fc35a705726 patch-3.4.56.xz
|
|
02a9cd3c7f7dd131e26a8d4512530b054d2b5c61e07995fd1fca5b1b76cbd96c4e12252866f52077626179e40040be5e8ede0af910a1915d2f64679e05e8c7e0 patch-3.4.56-vs2.3.3.9.diff
|
|
f12f999c84f724a4ac20a736c7f56671e23b2a9ddce4b0576dc17d0b3e8f319f5c4bc40b58992eba75ace44148018d85de24b2516d0a83240cd0ca3803606eae kernelconfig.x86
|
|
4cf43a7fc609e9822919e5706f38c03ef72deae2eae6b7d4c4ca7f9f29bccd1f01c0d65660a0c5234df6c2123a1d0c797dbdcb57ca5559e39644704426657f3e kernelconfig.x86_64"
|