config: add old kernel build capability for development

This commit is contained in:
Luis Guzmán 2025-01-01 08:12:47 +00:00
parent 60b1c33a70
commit 04b7fe41f7

View file

@ -49,6 +49,19 @@ export UPSTREAMRELEASE=22.04
MIRROR=http://archive.ubuntu.com/ubuntu
LOCALMIRROR=http://archive.trisquel.org/trisquel
LOCAL_APT=`mktemp -d`
if [[ "$PACKAGE" =~ ^linux(-hwe-[0-9]+\.[0-9]+)?$ && -n "$LP_VERSION" ]]; then
# Function to truncate the version string to the major version (e.g., 6.5.0)
truncate_version() {
full_version=$1
# Match the first three components of the version (X.Y.0)
echo "$full_version" | sed -E 's/^([^_]+_[0-9]+\.[0-9]+\.0).*/\1/'
}
LP_ARCHIVE_URL="https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/${PACKAGE}/${LP_VERSION}"
TRUNCATED_VERSION=$(truncate_version "${PACKAGE}_${LP_VERSION}")
LP_TARBALL="${TRUNCATED_VERSION}.orig.tar.gz"
LP_DIFF_FILE="${PACKAGE}_${LP_VERSION}.diff.gz"
LP_DSC_FILE="${PACKAGE}_${LP_VERSION}.dsc"
fi
if [ -n "$BUILD_UNTIL" ] && (( $(echo "$BUILD_UNTIL $REVISION" | awk '{print ($1 > $2)}') )); then
echo "Skipping build of helper with BUILD_UNTIL=$BUILD_UNTIL > REVISION=$REVISION"
@ -61,7 +74,7 @@ $RPL "$@"
}
pkgversion(){
dpkg-parsechangelog --show-field Version
dpkg-parsechangelog --show-field Version
}
replace(){
find ${@:3} -type f -not -iregex '.*changelog.*' -not -iregex '.*copyright.*' -execdir /bin/sed --follow-symlinks -i s^"$1"^"$2"^g {} \;
@ -146,22 +159,32 @@ cd PACKAGES/$PACKAGE
[ $UID = 0 ] && id _apt > /dev/null 2>&1 && chown _apt .
#Get package and uncompress it
apt-get update -c $LOCAL_APT/etc/apt.conf
if [ -n "$FIXED_VER" ]; then
apt-get source --only-source $PACKAGE=$FIXED_VER --download-only -c ${LOCAL_APT}/etc/apt.conf
if [[ "$PACKAGE" =~ ^linux(-hwe-[0-9]+\.[0-9]+)?$ && -n "$LP_VERSION" ]]; then
for file in "${LP_TARBALL}" "${LP_DIFF_FILE}" "${LP_DSC_FILE}"; do
echo "Downloading ${file} from ${LP_ARCHIVE_URL}"
if ! wget "${LP_ARCHIVE_URL}/${file}" -O "${file}"; then
echo "Error: Failed to download ${file}."
exit 1
fi
done
else
apt-get source --only-source $PACKAGE --download-only -c ${LOCAL_APT}/etc/apt.conf
fi
# Verify it first
if grep -q "BEGIN PGP SIGNATURE" *.dsc; then
KEY=$(gpg2 --keyid-format 0xlong --verify *.dsc 2>&1 | grep 0x | sed 's/.*0x//' || true)
[ -z "$KEY" ] && KEY=$(gpgv --keyring ${LOCAL_APT}/etc/apt/trusted.gpg.d/keyring *.dsc 2>&1 | egrep ".SA key" | sed 's/.*.SA key //' || true)
fetchkey $KEY
gpg2 --verify --keyring ${LOCAL_APT}/etc/apt/trusted.gpg.d/keyring.gpg *.dsc
[ -n SCHROOT_COMMAND ] && gpgconf --kill gpg-agent
else
echo WARNING! The dsc file is not gpg signed!
[ -z "$EXTERNAL" ] && exit 1
apt-get update -c $LOCAL_APT/etc/apt.conf
if [ -n "$FIXED_VER" ]; then
apt-get source --only-source $PACKAGE=$FIXED_VER --download-only -c ${LOCAL_APT}/etc/apt.conf
else
apt-get source --only-source $PACKAGE --download-only -c ${LOCAL_APT}/etc/apt.conf
fi
# Verify it first
if grep -q "BEGIN PGP SIGNATURE" *.dsc; then
KEY=$(gpg2 --keyid-format 0xlong --verify *.dsc 2>&1 | grep 0x | sed 's/.*0x//' || true)
[ -z "$KEY" ] && KEY=$(gpgv --keyring ${LOCAL_APT}/etc/apt/trusted.gpg.d/keyring *.dsc 2>&1 | egrep ".SA key" | sed 's/.*.SA key //' || true)
fetchkey $KEY
gpg2 --verify --keyring ${LOCAL_APT}/etc/apt/trusted.gpg.d/keyring.gpg *.dsc
[ -n SCHROOT_COMMAND ] && gpgconf --kill gpg-agent
else
echo WARNING! The dsc file is not gpg signed!
[ -z "$EXTERNAL" ] && exit 1
fi
fi
dpkg-source --no-check -x --skip-patches *.dsc source
@ -175,13 +198,6 @@ UPSTREAMVERSION=$(dpkg-parsechangelog --show-field Version)
[ "$REVISION" == 12.0 ] && echo Review version string generation before building t12 packages! && exit 1
export FULLVERSION=$(dpkg-parsechangelog --show-field Version)+${REVISION}trisquel${VERSION}
[ "$PACKAGE" == "console-setup" ] && export FULLVERSION=$(dpkg-parsechangelog --show-field Version)-${REVISION}trisquel${VERSION}
# This is the proposed method:
#if echo $UPSTREAMVERSION | grep -q '-'; then
# export FULLVERSION=$(dpkg-parsechangelog --show-field Version)+${REVISION}trisquel${VERSION}
#else
# export FULLVERSION=$(dpkg-parsechangelog --show-field Version)-${REVISION}trisquel${VERSION}
#fi
# IMPORTANT: the build watchdog would need to be modified to match any changes done here
# Use 3.0 (native) deb source format
[ -f debian/source/format ] && echo "3 (native)" > debian/source/format
@ -286,3 +302,4 @@ patch_Rp1() {
echo "> Rolling back $(echo $1|xargs basename):"
patch --no-backup-if-mismatch -R -p1 < $1
}