Since the previous blog post, two Debian Installer release candidates were published, so both will be mentioned in this blog post.
As mentioned in the
Plans section of the Stretch Alpha 8 summary: with the full freeze coming up, it
made sense to switch from the
Alpha numbering to the
Release Candidate one. That’s why Cyril
published the Debian Installer
Stretch RC 1 release on 2017-01-15.
Unfortunately, some blockers were found with merged-
/usr setups, so the new
debootstrap default was reverted. Even if some of these bugs were fixed in the meanwhile, it seemed
unreasonable to enable the new code again near the end of the
stretch release cycle, so it’s going
to be postponed until after the
buster release cycle has started.
Here is a list of other changes:
apt-setupcomponent has been tweaked so that it offers to scan more discs depending on the installation image. This should make it easier to handle several installation media, for example when extra firmwares are needed.
netcfg) will now write fewer lines in
/etc/network/interfaceswhen a static configuration has been chosen: netmask, network, and broadcast lines are going away, since setting the prefix length is likely sufficient.
HTTPSrepositories, through the addition of a
wgetudeb (along with trusted certificate authorities through another
ca-certificatesudeb), which replaces the
wgetcommand provided by the
busyboxpackage (which only comes with a limited set of features).
softWavestheme happened, and the bug fix for the remote installations has been merged as well.
Since the Linux kernel team was finally moving towards the target kernel version for Stretch (4.9, even if
earlier discussions mentioned 4.10), it seemed like a good idea to get a new Debian Installer released as soon as
possible, which explains why Debian Installer Stretch RC 2 was
released on 2017-02-02, only a few weeks after
Stretch RC 1.
Another significant change happened besides the Linux kernel update, with the
receiving major changes. Let’s have a look at its description:
Package: os-prober Description: utility to detect other OSes on a set of drives This package detects other OSes available on a system and outputs the results in a generic machine-readable format.
This component is used to determine which other operating systems might be hanging around on various
partitions and discs, and it’s used e.g. by
update-grub to include menu entries for other
Linux distributions, Windows, etc. Unfortunately, its historical operating system detection code has been
triggering issues in some environments involving virtualization, which ended up in data loss in some cases.
The relevant code was heavily overhauled, and one might hit some regressions with new versions of this
component (1.72 and later). Details about these significant changes can be found in the changelog entry for the
1.72 upload, and one might notice that the preparations for
this new release candidate resulted in a last-minute regression fix in the 1.74 upload. Similar issues have been reported with the
dmsetup create command hanging, leading to a frozen progress indicator when
being set up (see bug report #853927). This can be worked around by
switching to a console and killing the
dmsetup process (see this message for more details), until this issue is fully diagnosed and
With the full freeze in effect, Debamax is trying to make sure Cyril can spend as much time as possible on two complementary tasks:
Stretch RC 1and
Stretch RC 2which have been filed lately. That’s usually how the Debian Installer team learns about regressions and use cases for which the installation process isn’t flawless.
More to come in our next Debian Installer report!
It took a few months after Stretch Alpha 7 (published 2016-07-04), but the Stretch Alpha 8 release of the
Debian Installer happened a few days ago. Release
preparations had to be delayed a bit because a fix was needed in the
linux packaging (see bug report
#839552) so that mounting FAT partitions worked again, since this is
needed for EFI support.
As a release manager, Cyril has to make sure things look good enough for a release. This usually involves freezing udeb-producing packages for a while, so that the main set of packages used to build the Debian Installer doesn’t get any last minute changes that might bring some regressions while stabilization is in progress.
debian-installer package got uploaded on 2016-10-27 but two major issues popped up:
debian-installerbuilds got rejected by dak, because they contained an invalid
Built-Usingfield (only on some architectures).
debootstrapversion triggered a regression, making it impossible to validate
InReleasefiles and therefore impossible to trust repositories.
The first issue was due to the rather recent
linux-signed split. The idea
behind this move is preparing for Secure Boot support, with
linux being used to build linux kernel and modules as usual, and
extra signatures for them, so that they can be verified cryptographically. This exposed an awful
and old bug which hadn’t been detected until now. Then an
extra commit got added as a work around for the
situation: code comes from the
linux source package, so that’s what needs to be listed in
Built-Using. Further improvements are planned (see bug report #842719), by checking for a possible
Built-Using field in each
udeb, so that this workaround can be replaced by some more generic code.
The second issue was due to the reintroduction of
InRelease support. There are two ways of
validating the contents of a given distribution on a Debian mirror: checking the
against its detached signature (
Release.gpg), or checking the
InRelease file alone, as
it contains an inline signature. Since only
gpgv is available in a Debian Installer environment, the
idea was to split the
InRelease file into two files: the
Release file and its
signature. The tricky part is that the final newline is dropped by GnuPG, so a little
tr … | sed … | tr
… dance was added to do the same. Unfortunately, while it works fine with usual implementations of those
commands, that’s not the case with the
busybox implementation used in Debian Installer, leading to a
bad signature result during the installation process (see bug report #842591). Thankfully Ansgar Burchardt had a proof of concept ready with a
simple state machine in POSIX shell, which Cyril could merge and upload to fix
fixing this showstopper.
As mentioned above,
debootstrap was updated, but not only for
InRelease support. It
received a number of fixes and improvements (see the release announce for the details), but
the biggest change deserves a longer explanation:
debootstrap now defaults to
Once upon a time, UNIX systems were booted from a floppy disk, and once the boot sequence had finished, one
would mount extra resources onto the
/usr directory: programs, libraries, home directories, etc.
Nowadays, it makes little sense to keep the distinction between boot-time and non-boot-time tools, and it was
proposed to get rid of this distinction entirely. One way to achieve this is as simple as setting up symlinks for
a number of directories:
lib, and other
lib64, etc. depending on the architecture), respectively pointing at
usr/lib, etc. This approach means there’s no need to
change any single package, it’s just about using a specific directories+symlinks setup at installation time.
The options to enable or disable this feature are
respectively. The Debian script (shared across many versions) was updated to default to merged-
stretch and later, which explains why this Debian Installer Stretch Alpha 8 release now defaults
to a merged-
Credits: This change was driven by both Marco d’Itri and Ansgar Burchardt, while Julien Cristau worked on most other changes. Thanks!
Some final notes:
usrmergepackage, making it possible to convert an existing system to this new scheme. As noted in its description: use it at your own risk, no going back is implemented there!
usrmergepackage has a number of
Conflictsdeclared. One particular case is
dpkg-devpackage) which is used to resolve library packages when building Debian packages (see bug report #843073), but patches were published already.
A few things are planned for the next release:
linuxmaintainers: A new upstream major release was getting ready to migrate to
testingwhile Debian Installer was being prepared, and it migrated right after the release was published. As a result, the Stretch Alpha 8
netbootimages were broken almost instantly: they can’t find the 4.7 linux module udebs in
testinganymore since those got replaced with 4.8 udebs. Of course we could have switched to 4.8 but experience suggests releasing when things look good enough instead of taking new code at the last minute and hoping for the best (especially when considering the large codebase that the Linux kernel is). Anyway, this issue will be avoided by waiting for the upcoming
ABI bumpannounced by Ben Hutchings.
screen(a terminal multiplexer) was added, but a further commit unfortunately broke
network-console-based installations altogether (see bug report #844549). This will be fixed in the next release.
rootskel-gtk. Things are getting polished and the theme switch will be effective in the next release.
Release Candidateversioning at some point. New features are going to be less likely anyway, so
RClooks like a reasonable name for further versions.
Debamax SAS has been successfully registered with the Trade and Company Register in Rennes, and has officially started operating in October! The legal notices page has further information regarding this registration and identification numbers.