For deploying Debian/bookworm (see MT#55524), we'd like to have an
updated Grml ISO. With such a Debian/bookworm based live system, we can
still deploy older target systems (like Debian/bullseye).
Relevant changes:
1) Ad jo as new build-dependency, to generate build information in
conf/buildinfo.json (new dependency of grml-live)
2) Always include ca-certificates, as this is required with more recent
mmdebstrap versions (>=0.8.0), when using apt repositories with
https, otherwise bootstrapping Debian fails.
3) Update to latest stable grml-live version v0.42.0, which:
a) added support for "bookworm" as suite name
cff66073a7
b) provides corresponding templates for memtest support:
c01a86b3fc
c) and a workaround for a kmod/initramfs-tools issue with PXE/NFS boot:
ea1e5ea330
4) Update memtest86+ to v6.00-1 as present in Debian/bookworm and
add corresponding UEFI support (based on grml-live's upstream change,
though as we don't support i386, dropped the 32bit related bits)
Change-Id: I327c0e25c28f46e097212ef4329d75fc8d34767c
Add options to install bullseye in all places where buster is used, use
it as default when possible, and keep these for the moment.
Switch to bullseye in Dockerfile.
Change-Id: I2f693982ba92a671a6f2254c5a245a1d05231404
grml2usb v0.18.1 included a regression that caused us to revert to
grml2usb v0.17.0 in commmit 9fbc9afeda.
The according fix for our needs is
657b880f02
and was released as v0.18.2
grml2usb v0.18.3 supports Grml's new Secure Boot approach and switches
in grml2iso from isohybrid to xorriso/isohybrid to properly support EFI
boot, besides some further code cleanups, docs improvements and
bugfixes.
Change-Id: I0ce25d05825767120144315f07ded2c66bfffc0f
This is revert of commit aadbef82b0
The version 0.18.1 fails during the building of mr8.5.1:
===============================
10:59:57 Executing grml2usb version v0.18.1 (git)
10:59:57 Checking for boot flag
10:59:57 Fatal: /tmp/grml2iso.tmp/cddir: unrecognised disk label
===============================
So restore working 0.17.0 version.
Change-Id: Ib5b3369152378dc3aeb7282d098383c5df82904d
This grml2usb version is supposed to be used for releasing
the upcoming Grml stable release and its related release candidate.
Change-Id: I172cabb02d245794856f2101990e5a445325f7c2
grml2usb <=0.14.14 works when building with ISO grml64-small_2018.04.11-efi.
Newer grml2usb versions provide SecureBoot support (which was introduced in
grml2usb v0.16.0). This is failing with our grml64-small_2018.04.11-efi ISO
though, because its provided EFI image doesn't contain a valid/mountable FAT
file system:
| % file /tmp/grml2iso.tmp/grml2usb55ey_q68/boot/efi.img
| /tmp/grml2iso.tmp/grml2usb55ey_q68/boot/efi.img: PE32+ executable (EFI application) x86-64 (stripped to external PDB), for MS Windows
Whereas the efi file from more recent Grml(-Sipwise) ISOs like
https://deb.sipwise.com/deployment-iso/grml/grml-sipwise-buster-20191022_addons.iso
looks like this:
| % file /mnt/test1/boot/efi.img
| /mnt/test1/boot/efi.img: DOS/MBR boot sector, code offset 0x3c+2, OEM-ID "mkfs.fat", sectors/cluster 4, root entries 512, sectors 8192 (volumes <=32 MB) , Media descriptor 0xf8, sectors/FAT 6, sectors/track 32, heads 64, serial number 0xef681600, label: "GRML ", FAT (12 bit)
and can be properly mounted for further adjusting by grml2usb/grml2iso.
So use grml2usb version v0.17.0 except when handling ISO
grml64-small_2018.04.11-efi ISO, then we use the version we had available on
our Debian/stretch environments back then, AKA grml2usb v0.14.14.
Change-Id: I452d7cbac138d59dc11fb1773ca3d6f6c307a6df
* Addon fixes:
* Provide custom addon template according to our needs, instead of
relying on the default one being present in grml-live.git/templates
* Install memtest86+ as addon for BIOS usage
* Install netboot.xyz.lkrn for BIOS usage and netboot.xyz.efi for EFI usage
* Install ipxe.lkrn for BIOS usage and ipxe.efi for EFI usage
* Stick grml-live version to v0.34.3, instead of relying on some random
git master version
* Stick grml2usb version to v0.17.0, instead of relying on the grml2usb
version available on the host system (being 0.14.14 on Debian/stretch as
present on our current build hosts). For arbitrary addon file names we
need grml2iso (which uses grml2usb underneath) from grml2usb >=0.17.0.
FTR, grml2iso and grml2usb can be executed from within the git repository,
assuming all relevant tools are present
* No longer invoke isohybrid on the resulting ISO, instead rely on
grml2iso behaviour (which also checks for EFI support and enables
according switches as needed)
* Fix usage instructions in t/Dockerfile:
* it's "deployment-iso-buster" and not "lua-ngcp-kamailio-buster"
* refer to working directory instead of "deployment-iso.git",
which very probably isn't named as such on any of our systems,
while the $(pwd) approach works for c/p
* Fix docker build usage in grml_build/Dockerfile (for building we need
to provide a PATH (being current working directory for us)
* Provide testing tools in grml-build-buster docker environment
* Provide new testing script t/iso-tester to compare generated ISO
against pre-defined screenshot (only testing memtest feature using
./t/screenshots/01-memtest.jpg for now)
Change-Id: I67e3f85bbe86bd1b3ee709161504b5250ca5d7fe
It is useful to build sipwise image based on some custom grml image
which is absent on deb.sipwise.com.
Check if the specified file is already here in dir so do not need to
download it.
Change-Id: Ief24f7c42a1e5abce5af7c0aac93a5399b8294a1
We are using not stable GRML release so there is no
grml64-small_2018.04.11.iso.sha1 on download.grml.org
Change-Id: I080f8b77d7373c6529164f483f055bf1f7e1c7ef
We don't need 'daily' disk type anymore
Remove usage of 1st parameter of build_iso.sh - it is kept only
for backward compatibility
GRML_URL and GRML_HASH_URL can be redefined to support build
from the latest grml image
Change-Id: I6e4ec2754965775fa2437bdc658049a7be5aede3
Use a single (prev CE like) approach
GRML -> main.sh -> deployment.sh -> ngcp-installer
All SP versions can be installed from a single image
Remove network configuration points from GRML installer
Change-Id: I9a56c12ca3f42d055303e5a0b08691de3560fe2c
Setting options via shebang line is discouraged, as the options
don't apply if the script is executed explicitely with an
interpreter on the command line. This is exactly what happens in
jenkins-configs' jobs/internal/grml/release.sh:
/bin/bash -x ./build_iso.sh "private" "${GRML_ISO}"
As a result it's *not* executed under `set -e`, instead it
continuous even though there have been fatal errors already.
While at it fix shellcheck warnings, otherwise jenkins doesn't
set +1 :)
Change-Id: Ic9bd0afcf401e34cd536d76f4d114fbcfff0ba7c
mirror.inode.at is currently not available while we need to build
mr3.8.5 install CD ad test it to release in time.
At the same time we are updating GRML ISO very rarely, so it is
easier for us to store GRML for private and public jobs locally.
At the same time daily job will still use daily.grml.org
Change-Id: I8ef67d8e1b6d5b1caa0caf968ead780826728081