slackbuilds/a/kernel-gwh/SlackBuild

137 lines
4 KiB
Text
Raw Normal View History

2021-06-15 10:26:26 +02:00
#!/bin/bash
2020-06-08 11:36:26 +02:00
set -e
2020-12-14 09:33:12 +01:00
set -x
2020-06-08 11:36:26 +02:00
CWD=$(pwd)
2020-12-14 09:33:12 +01:00
THIS_HOST=${THIS_HOST:-$(hostname -s)}
2022-12-21 12:25:39 +01:00
PRGNAM=$(basename "$CWD")-$THIS_HOST
BUILD=${BUILD:-6}
BRANCH=${BRANCH:-mainline} # stable ; mainline
ARCH=$(uname -m)
2020-06-25 11:23:11 +02:00
TAG=gwh
TMP=/tmp/$TAG
PKG=$TMP/pkg-$PRGNAM
OUTPUT=/tmp
2022-12-21 12:25:39 +01:00
NUMJOBS=${NUMJOBS:-$(nproc)}
2020-12-07 10:29:33 +01:00
ANEW=${ANEW:-true}
CONFIG=${CONFIG:-""}
2022-12-21 12:25:39 +01:00
rm -fr "$PKG"
VERSION=${VERSION:-$(curl https://www.kernel.org/feeds/kdist.xml | grep -o "[0-9.rc-]*: $BRANCH" | head -n1 | cut -d: -f1)}
2022-12-21 12:25:39 +01:00
mkdir -p "$PKG/usr/src/"
if [ -e "/usr/src/linux-$VERSION" ] && [[ "$ANEW" != "true" ]]; then
cp -a "/usr/src/linux-$VERSION" "$PKG/usr/src/"
else
2022-12-21 12:25:39 +01:00
if [ "$BRANCH" == "stable" ]; then
SRC_URL="https://cdn.kernel.org/pub/linux/kernel/v$(echo "$VERSION" | cut -d. -f1).x"
else
SRC_URL="https://git.kernel.org/torvalds/t"
fi
[ ! -e "$CWD"/linux-"$VERSION".tar.gz ] && wget -c "$SRC_URL/linux-$VERSION.tar.gz" -O "$CWD/linux-$VERSION.tar.gz"
tar xf "$CWD/linux-$VERSION.tar.gz" -C "$PKG/usr/src/"
fi
2022-12-21 12:25:39 +01:00
cd "$PKG/usr/src/" || exit 1
mv "linux-$VERSION" "linux-${VERSION}-gwh"
#ln -s "linux-$VERSION" linux
cd "linux-${VERSION}-gwh"
if [ -n "$CONFIG" ] && [ -e "$CONFIG" ]; then
cat "$CONFIG" > .config
fi
if [ ! -f .config ]; then
zcat /proc/config.gz > .config
fi
read
2022-12-21 12:25:39 +01:00
make oldconfig "$@"
2022-12-21 12:25:39 +01:00
make -j"$NUMJOBS"
make modules -j"$NUMJOBS"
make modules_install INSTALL_MOD_PATH="$PKG"
if [ -z "${HEADERS_ARCH}" ]; then
case "$(uname -m)" in
i?86) HEADERS_ARCH=x86 ;;
x86_64) HEADERS_ARCH=x86 ;;
aarch64) HEADERS_ARCH=arm64 ;;
# Use uname -m for all other archs:
*) HEADERS_ARCH=$(uname -m) ;;
esac
fi
# Generate the kernel headers and clean them up:
( echo "Generating headers from the Linux kernel source tree in ${KERNEL_SOURCE}:"
2022-12-21 12:25:39 +01:00
make headers_install ARCH="${HEADERS_ARCH}" INSTALL_HDR_PATH="$PKG/usr"
cd "$PKG/usr/include" || exit 1
# You won't want these files. The ones in libdrm work better.
rm -rf drm
# This next part seems pretty much cosmetic, but since we've been doing this
# for a long time (and others also do), we'll stick with it:
2022-12-21 12:25:39 +01:00
mv asm "asm-${HEADERS_ARCH}"
ln -sf "asm-${HEADERS_ARCH}" asm
# Remove unneeded dotfiles:
find . -name ".??*" -exec rm -f {} \+
)
2022-12-21 12:25:39 +01:00
VERSION=$(basename "$(find "$PKG/lib/modules/" -type d -maxdepth 1 -mindepth 1 | head -n1)")
2020-08-10 21:42:27 +02:00
2022-12-21 12:25:39 +01:00
mkdir -p "$PKG/boot/"
# cp System.map "$PKG/boot/System.map-gwh-$VERSION"
# cp .config "$PKG/boot/config-gwh-$VERSION"
# cp "arch/${ARCH}/boot/bzImage" "$PKG/boot/vmlinuz-gwh-$VERSION"
cp System.map "$PKG/boot/System.map-gwh"
cp .config "$PKG/boot/config-gwh"
cp "arch/${ARCH}/boot/bzImage" "$PKG/boot/vmlinuz-gwh"
2022-07-08 22:36:47 +02:00
make clean
2022-07-08 22:36:47 +02:00
2022-12-21 12:25:39 +01:00
cd "$PKG/boot/" || exit 1
# ln -s "vmlinuz-gwh-$VERSION" vmlinuz-gwh
# ln -s "config-gwh-$VERSION" config-gwh
# ln -s "System.map-gwh-$VERSION" System.map-gwh
ln -s vmlinuz-gwh "vmlinuz-gwh-$VERSION"
ln -s config-gwh "config-gwh-$VERSION"
ln -s System.map-gwh "System.map-gwh-$VERSION"
2022-12-21 12:25:39 +01:00
mkdir -p "$PKG/install"
cat <<EOF > "$PKG/install/doinst.sh"
2022-07-08 22:36:47 +02:00
echo -n "updating grub... "
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=grub
echo OK
echo -n "building initrd… "
2023-04-24 20:25:38 +02:00
cd /
eval \$(/usr/share/mkinitrd/mkinitrd_command_generator.sh -k $VERSION -r | sed "s|/boot/initrd.gz|/boot/initrd-gwh-${VERSION}.gz|")
echo "OK"
2022-07-08 22:36:47 +02:00
[ -L /boot/initrd-gwh.gz ] && rm /boot/initrd-gwh.gz
2022-07-08 22:36:47 +02:00
ln -s /boot/initrd-gwh-${VERSION}.gz /boot/initrd-gwh.gz
grub-mkconfig -o /boot/grub/grub.cfg
2022-07-08 22:36:47 +02:00
EOF
2022-12-21 12:25:39 +01:00
cat <<EOF > "$PKG/install/slack-desc"
2020-08-10 21:42:27 +02:00
$PRGNAM: $PRGNAM (kernel)
$PRGNAM:
$PRGNAM: Linux is a clone of the operating system Unix, written from scratch by
$PRGNAM: Linus Torvalds with assistance from a loosely-knit team of hackers
$PRGNAM: across the Net. It aims towards POSIX and Single UNIX Specification
$PRGNAM: compliance.
$PRGNAM:
$PRGNAM: It has all the features you would expect in a modern fully-fledged Unix
$PRGNAM:
$PRGNAM: http://www.kernel.org
$PRGNAM:
EOF
2022-12-21 12:25:39 +01:00
cd "$PKG" || exit 1
rm -f "$PKG/{,usr/}lib$(uname -m | grep -o 64)/*.la"
/sbin/makepkg --linkadd y --prepend --chown n "$OUTPUT/$PRGNAM-$(echo "$VERSION" | tr - _)-$ARCH-$BUILD$TAG.txz"