1
0
Fork 0
mirror of https://github.com/pygos/build.git synced 2024-05-09 15:26:13 +02:00
build/pkg/linux/build
David Oberhollenzer c8d01f966a Use pkgtool to resolve and manage dependencies, add sub package support
Been working on this for too long, don't remember the specifics, will add
documentation.

Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-03-03 17:47:02 +01:00

100 lines
2.7 KiB
Plaintext
Executable file

MAJOR="4"
MINOR="19"
RELEASE="13"
VERSION="$MAJOR.$MINOR.$RELEASE"
SRCDIR="linux-$VERSION"
TARBALL="linux-$VERSION.tar.xz"
URL="https://www.kernel.org/pub/linux/kernel/v$MAJOR.x"
SHA256SUM="f50a77fc40e13fc406791346fa91926394205874cd50246c7c2374006bacc0c2"
DEPENDS="initrd"
get_linux_cpu() {
case "$TARGET" in
i*86-*)
echo "x86"
;;
x86_64-*)
echo "x86_64"
;;
arm-*)
echo "arm"
;;
*)
echo "don't know how to map $TARGET to Linux arch" >&2
exit 1
;;
esac
}
prepare() {
return
}
build() {
local SOURCE="$1"
local DEPLOY="$2"
local INITRDDIR="$DEPLOY/initrd"
local INITRDLIST="$INITRDDIR/initrd.list"
local LINUX_CPU=$(get_linux_cpu)
pkg install -omLD -R "$REPODIR" -r "$INITRDDIR" initrd
pkg install -R "$REPODIR" -r "$INITRDDIR" -l -F initrd initrd > "$INITRDLIST"
export KBUILD_OUTPUT="$PKGBUILDDIR"
make -C "$1" O="$PKGBUILDDIR" ARCH="$LINUX_CPU" CROSS_COMPILE="${TARGET}-" mrproper
cat_file_override "linux.config" > "$PKGBUILDDIR/.config"
sed -i "$PKGBUILDDIR/.config" -e 's,^CONFIG_CROSS_COMPILE=.*,CONFIG_CROSS_COMPILE="'$TARGET'-",'
sed -i "$PKGBUILDDIR/.config" -e 's,^CONFIG_INITRAMFS_SOURCE=.*,CONFIG_INITRAMFS_SOURCE="'$INITRDLIST'",'
sed -i "$PKGBUILDDIR/.config" -e 's,^CONFIG_LOCALVERSION=.*,CONFIG_LOCALVERSION="-'${OS_NAME}-${OS_RELEASE}'",'
make -C "$1" O="$PKGBUILDDIR" ARCH="$LINUX_CPU" CROSS_COMPILE="${TARGET}-" oldconfig
make -C "$1" O="$PKGBUILDDIR" ARCH="$LINUX_CPU" CROSS_COMPILE="${TARGET}-" -j $NUMJOBS $LINUX_TGT
rm -rf "$INITRDDIR"
}
deploy() {
local SOURCE="$1"
local DEPLOY="$2"
local LINUX_CPU=$(get_linux_cpu)
local target
mkdir -p "$DEPLOY/boot" "$DEPLOY/lib/modules"
for target in $LINUX_TGT; do
case $target in
*Image)
cp "arch/$LINUX_CPU/boot/$target" "$DEPLOY/boot/vmlinuz"
echo "dir boot 0755 0 0" >> "$DEPLOY/$PKGNAME.files"
echo "file boot/vmlinuz 0755 0 0" >> "$DEPLOY/$PKGNAME.files"
;;
modules)
export KBUILD_OUTPUT="$PKGBUILDDIR"
make -C "$SOURCE" O="$PKGBUILDDIR" ARCH="$LINUX_CPU" CROSS_COMPILE="${TARGET}-" INSTALL_MOD_PATH="$DEPLOY" modules_install
echo "dir lib 0755 0 0" >> "$DEPLOY/$PKGNAME.files"
echo "dir lib/modules 0755 0 0" >> "$DEPLOY/$PKGNAME.files"
find -H "$DEPLOY/lib" -type d -printf "dir %p 0%m 0 0\\n" |\
tail -n +2 | sed "s#^$DEPLOY/##g" >> "$DEPLOY/$PKGNAME.files"
find -H "$DEPLOY/lib" -type l -printf "slink %p 0%m 0 0 %l\\n" |\
sed "s#^$DEPLOY/##g" >> "$DEPLOY/$PKGNAME.files"
find -H "$DEPLOY/lib" -type f -printf "file %p 0%m 0 0\\n" |\
sed "s#^$DEPLOY/##g" >> "$DEPLOY/$PKGNAME.files"
;;
esac
done
cp $SCRIPTDIR/pkg/$PKGNAME/*.desc "$DEPLOY"
}
check_update() {
curl --silent -L https://www.kernel.org/feeds/kdist.xml | \
grep -o "[0-9.]*: longterm" | grep -o "[0-9.]*" | \
verson_find_greatest "$VERSION"
}