2021-03-15 18:31:04 +01:00
#!/bin/bash
2020-09-16 22:24:33 +02:00
# Script to prepare update for new kernel release
2021-03-15 20:34:24 +01:00
set -e
2020-09-16 22:24:33 +02:00
set -o pipefail
2021-03-15 20:34:24 +01:00
LINUX_REPOSITORY = linux
2021-03-27 16:07:46 +01:00
LINUX_VERSION_PREVIOUS = $( scripts/version.sh -L)
2020-09-16 22:24:33 +02:00
2021-03-27 16:01:11 +01:00
while getopts "R:t:v:r:h" OPTION; do
2020-09-16 22:24:33 +02:00
case $OPTION in
2020-09-17 17:24:01 +02:00
R)
2020-09-16 22:24:33 +02:00
LINUX_REPOSITORY = $OPTARG
; ;
t)
LINUX_TAG = $OPTARG
; ;
v)
LINUX_VERSION = $OPTARG
; ;
2020-09-17 17:24:01 +02:00
r)
LINUX_PACKAGE_RELEASE = $OPTARG
; ;
2020-09-16 22:24:33 +02:00
h)
2021-03-27 16:01:11 +01:00
echo "update.sh -Rrtvh"
2020-09-17 17:24:01 +02:00
echo " -R path to Linux Git repository"
2020-09-16 22:24:33 +02:00
echo " -t tag in Linux Git repository to pick"
echo " -v manual version for this kernel"
2020-09-17 17:24:01 +02:00
echo " -r manual release version for this kernel"
2020-09-16 22:24:33 +02:00
echo " -h this help message"
exit 1
; ;
*)
echo "Incorrect options provided"
exit 1
; ;
esac
done
# Fetch from Git repository
echo " Fetching $LINUX_TAG from Linux Git repository... "
2021-05-02 14:38:44 +02:00
git --git-dir $LINUX_REPOSITORY /.git fetch origin --depth 1 $LINUX_TAG
2020-09-16 22:24:33 +02:00
git --git-dir $LINUX_REPOSITORY /.git checkout FETCH_HEAD
if [ [ -z " $LINUX_VERSION " ] ] ; then
# Parse the Linux version from the Linux repository if it not provided by the user
2021-03-27 16:07:46 +01:00
LINUX_VERSION = $( scripts/version.sh -L)
2020-09-16 22:24:33 +02:00
fi
2021-03-27 16:01:11 +01:00
echo " Using Linux $LINUX_VERSION . "
2020-09-16 22:24:33 +02:00
# Prepare Debian changelog
2021-04-22 14:16:09 +02:00
sed -e " s/@KVNAME@/ $LINUX_VERSION /g " -e " s/@KVMAJMIN@/ $LINUX_VERSION_MAJOR . $LINUX_VERSION_MINOR /g " < debian/templates/control.in > debian/control
2020-09-16 22:24:33 +02:00
LINUX_VERSION_MAJOR = $( echo $LINUX_VERSION | cut -d. -f1)
LINUX_VERSION_MINOR = $( echo $LINUX_VERSION | cut -d. -f2)
LINUX_VERSION_PATCH = $( echo $LINUX_VERSION | cut -d. -f3)
LINUX_VERSION_PATCH = ${ LINUX_VERSION_PATCH :- 0 } # Default to 0
LINUX_PACKAGE_RELEASE_PREVIOUS = $( scripts/version.sh -r)
# Check whether we need to increment the package release
2020-09-17 17:24:01 +02:00
if [ [ -n $LINUX_PACKAGE_RELEASE ] ] ; then
echo " Using custom package release $LINUX_PACKAGE_RELEASE "
2021-03-27 16:07:46 +01:00
elif [ [ $LINUX_VERSION = = " $LINUX_VERSION_PREVIOUS " ] ] ; then
2020-09-16 22:24:33 +02:00
LINUX_PACKAGE_RELEASE = $(( LINUX_PACKAGE_RELEASE_PREVIOUS + 1 ))
echo " Incrementing package release to $LINUX_PACKAGE_RELEASE "
else
LINUX_PACKAGE_RELEASE = 1
echo "New package release"
fi
2021-03-27 16:07:46 +01:00
echo "Updating crack.bundle..."
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v$LINUX_VERSION /crack.bundle -O crack.bundle
2020-09-16 22:24:33 +02:00
echo "Generating entry for change log..."
# Generate a changelog entry
2023-12-19 13:28:22 +08:00
debchange -v $LINUX_VERSION -$LINUX_PACKAGE_RELEASE -D generic --force-distribution -U -M " Update to Linux $LINUX_VERSION . "
2020-09-16 22:24:33 +02:00
echo "Cleaning up"
rm -f debian/control