Select Git revision
make.sh 3.42 KiB
#!/bin/bash
set -x
# Otestujeme, ze je dostatek mista na extremni build (potrebuje cca. 60G tak tu mame 80, at je rezerva i pro ostatni)
df -m
while read _ _ _ SPACE _; do
if [ "$SPACE" -lt "80000" ]; then
echo "Malo mista, je potreba alespon 80GB, tady koncim!"
exit 1
fi
done <<<$(df -m . | tail -n+2)
# Nastaveni promennych
export DEBIAN_FRONTEND=noninteractive
export DEBEMAIL="Pavel Vondruska <vondruska@cesnet.cz>"
# Nacteni promennych o bezicim systemu vcetne verzi
. /etc/os-release
# Od Debian 11 Bullseye ma debian-security trochu jinou cestu, abychom mohli pouzit heredoc, rozskocime si pres funkci
function get_debian_security() {
if [ "${VERSION_ID}" -lt "11" ]; then echo "${VERSION_CODENAME}/updates"; else echo "${VERSION_CODENAME}-security"; fi
}
# Vygenerovani sources.list podle verze Debianu
cat > /etc/apt/sources.list << EOSOURCES
deb http://ftp.zcu.cz/pub/linux/debian ${VERSION_CODENAME} main contrib non-free
deb http://ftp.zcu.cz/pub/linux/debian ${VERSION_CODENAME}-updates main contrib non-free
deb http://deb.debian.org/debian-security/ $(get_debian_security) main contrib non-free
deb-src http://ftp.zcu.cz/pub/linux/debian ${VERSION_CODENAME} main contrib non-free
deb-src http://ftp.zcu.cz/pub/linux/debian ${VERSION_CODENAME}-updates main contrib non-free
deb-src http://deb.debian.org/debian-security/ $(get_debian_security) main contrib non-free
EOSOURCES
# Instalace buildovacich veci a zavislosti
apt update -qqq
apt install -yqqq git devscripts build-essential gpg dpkg-dev wget
apt source linux
LINDIR=$(find . -maxdepth 1 -name 'linux-*' -type d)
cp -rv meta ${LINDIR}/debian/patches
cd ${LINDIR}
cd debian/patches
echo '# META' >> series
for i in `find meta -type f`; do echo $i; done >> series
cd ..
cd ..
dch -l "+zs" "MetaCentrum patches"
for i in `ls debian/patches/meta`; do dch -a "$i"; done
VER_PKG=$(head -1 debian/changelog | grep -Po "\d[^\)]+")
VER_KER=$(ls debian/linux-headers-*-cloud-amd64.postinst | grep -Po "\d.+(?=-cloud)")
cd ..
./make_pkg ${VER_PKG} ${VER_KER}
cd ${LINDIR}
mk-build-deps --install --tool='apt-get -o Debug::pkgProblemResolver=yes --yes' debian/control
# Build balicku (poprve skonci hned chybou)
dpkg-buildpackage -uc -us -b || true
dpkg-buildpackage -uc -us -b > ../build.log 2>&1 || true
cd ..
mkdir build
mv build.log build/
mv *.deb build/
cp -v generate-release.sh build/
cd build
dpkg-scanpackages . /dev/null > Packages
gzip -9k Packages
./generate-release.sh > Release
export GNUPGHOME=$PWD
export GPG_TTY=$(tty)
mkdir -p private-keys-v1.d
gpg --list-keys
wget --header "PRIVATE-TOKEN: ${PRIVATE_TOKEN_PASS}" https://gitlab.cesnet.cz/api/v4/projects/702%2Fprovoz%2Fkernel-debian-private/repository/files/pgp-key.public/raw?ref=master -O pgp-key.public
wget --header "PRIVATE-TOKEN: ${PRIVATE_TOKEN_PASS}" https://gitlab.cesnet.cz/api/v4/projects/702%2Fprovoz%2Fkernel-debian-private/repository/files/pgp-key.private/raw?ref=master -O pgp-key.private
cat pgp-key.private | gpg --import --pinentry-mode=loopback --passphrase "$PASS"
gpg --list-keys
cat Release | gpg --default-key gitlab --digest-algo SHA256 --cert-digest-algo SHA256 --pinentry-mode=loopback --passphrase "$PASS" -abs > Release.gpg
cat Release | gpg --default-key gitlab --digest-algo SHA256 --cert-digest-algo SHA256 --pinentry-mode=loopback --passphrase "$PASS" -abs --clearsign > InRelease
rm -vrf private-keys-v1.d pubring.kbx trustdb.gpg pgp-key.private pubring.kbx~ generate-release.sh