update kernel builder

Signed-off-by: Jess Frazelle <jess@mesosphere.com>
This commit is contained in:
Jess Frazelle 2016-03-23 10:42:00 -07:00
parent d5dbee9c86
commit 1faa831e49
No known key found for this signature in database
GPG Key ID: 18F3685C0022BFF3

View File

@ -39,6 +39,7 @@ linux_next(){
install_kernel(){ install_kernel(){
local VERSION=$1 local VERSION=$1
local OPT=$2
if [[ -z $VERSION ]]; then if [[ -z $VERSION ]]; then
echo "Please specify a kernel version." echo "Please specify a kernel version."
@ -61,13 +62,16 @@ install_kernel(){
[ -d /usr/src/linux-${VERSION} ] || curl -sSL https://cdn.kernel.org/pub/linux/kernel/v${MAJOR_VERSION}.x/linux-${VERSION}.tar.xz | tar -v -C /usr/src -xJ [ -d /usr/src/linux-${VERSION} ] || curl -sSL https://cdn.kernel.org/pub/linux/kernel/v${MAJOR_VERSION}.x/linux-${VERSION}.tar.xz | tar -v -C /usr/src -xJ
fi fi
if [[ "$OPT" == "aufs" ]]; then
# get the aufs standalone source # get the aufs standalone source
aufsdir=/tmp/aufs4-standalone aufsdir=/tmp/aufs4-standalone
if [[ -d $aufsdir ]]; then if [[ -d $aufsdir ]]; then
rm -rf $aufsdir rm -rf $aufsdir
fi fi
git clone -b aufs${MAJOR_MINOR_VERSION} --single-branch --depth 1 https://github.com/sfjro/aufs4-standalone.git $aufsdir git clone -b aufs${MAJOR_MINOR_VERSION} --single-branch --depth 1 https://github.com/sfjro/aufs4-standalone.git $aufsdir
fi
if [[ "$OPT" == "grsec" ]]; then
# get the grsec patches # get the grsec patches
grsecdir=/tmp/grsec grsecdir=/tmp/grsec
if [[ -d $grsecdir ]]; then if [[ -d $grsecdir ]]; then
@ -80,28 +84,39 @@ install_kernel(){
gpg --keyserver pgp.mit.edu --recv-keys "DE94 52CE 46F4 2094 907F 108B 44D1 C0F8 2525 FE49" gpg --keyserver pgp.mit.edu --recv-keys "DE94 52CE 46F4 2094 907F 108B 44D1 C0F8 2525 FE49"
# verify the patch # verify the patch
gpg --verify $grsecdir/grsecurity.patch.sig gpg --verify $grsecdir/grsecurity.patch.sig
fi
# apply the patches and compile the kernel # apply the patches and compile the kernel
cd /usr/src/linux-${VERSION} cd /usr/src/linux-${VERSION}
# apply the aufs patches # apply the patches
if [[ "$OPT" == "grsec" ]]; then
patch -p1 < $grsecdir/grsecurity.patch || true patch -p1 < $grsecdir/grsecurity.patch || true
fi
if [[ "$OPT" == "aufs" ]]; then
git apply $aufsdir/aufs4-kbuild.patch git apply $aufsdir/aufs4-kbuild.patch
git apply $aufsdir/aufs4-base.patch git apply $aufsdir/aufs4-base.patch
git apply $aufsdir/aufs4-mmap.patch git apply $aufsdir/aufs4-mmap.patch
cp -r $aufsdir/{Documentation,fs} . cp -r $aufsdir/{Documentation,fs} .
cp $aufsdir/include/uapi/linux/aufs_type.h include/uapi/linux/ cp $aufsdir/include/uapi/linux/aufs_type.h include/uapi/linux/
fi
if [[ "$OPT" == "aufs" ]]; then
# remove aufs source # remove aufs source
rm -rf $aufsdir rm -rf $aufsdir
fi
if [[ "$OPT" == "grsec" ]]; then
# remove grsecdir # remove grsecdir
rm -rf $grsecdir rm -rf $grsecdir
fi
if [[ ! -f .config ]] && [[ -f ../config ]]; then if [[ ! -f .config ]] && [[ -f ../config ]]; then
cp ../config .config cp ../config .config
if [[ "$OPT" == "aufs" ]]; then
echo "CONFIG_AUFS_FS=y" >> .config echo "CONFIG_AUFS_FS=y" >> .config
fi fi
fi
nice -19 make -j$JOBS KDEB_PKGVERSION=$PKGVERSION DISABLE_PAX_PLUGINS=y INSTALL_MOD_STRIP=1 deb-pkg nice -19 make -j$JOBS KDEB_PKGVERSION=$PKGVERSION DISABLE_PAX_PLUGINS=y INSTALL_MOD_STRIP=1 deb-pkg
} }