live-build 3.x
live-build 2.x is a pain to install on Wheezy and later, so we have to find a solution to that (be it migrating to live-build 3.x, or to something else). For Tails 1.1, we have kept live-build 2.x, and we provide a custom package thereof, with a version greater than Wheezy’s 3.x (https://tails.boum.org/contribute/build/#manual).
Next thing to do is to decide if we go for live-build 3.x, on the longer term, or something else.
If we go with live-build 3.x:
- compare the resulting packages list with an ISO built with live-build 2.x (the tasks support was removed, so we could lack a few standard priority packages)
- review all our lb config options, and make sure they are still valid and taking effect
- fix the resulting ISO file naming
- verify that one can still build offline (unsure, given how lb 3.x
cleans
http_proxy
, combined with the brokenenvironment.binary
support) - patch and/or overlay syslinux config to bring back our preferences that lb 3.x does not support directly anymore (see commit 3458797)
- see what breaks, report bugs upstream and possibly fix them.
Benefits from live-build 3.x improvements:
- inject variables through
config/environment.chroot
into the chroot environment (note:environment.binary
is broken for us, andenvironemnt.chroot
can’t be used for variables whose value contains spaces) - use
--firmware-chroot true
instead of manually listing all firmware packages (not usable for us, see commit 3dee0470) - save more disk space at build time (#5940 (closed))
- the configuration tree is bind-mounted on
/root/config
in the chroot, and available for hooks
Cons of switching to live-build 3.x:
- basically all configuration files were renamed, which makes it a pain to migrate our many branches; same for a bunch of command-line switches;
- interestingly, live-build 4.x (alpha) has renamed some more files already, and we cannot safely assume this won’t go any further.
- Even if we move to live-build 3.x, we still realistically can neither contribute upstream our changes based on this branch, nor backport improvements we might implement in the upstream 4.x branch to the 3.x used in production: in the meantime, quite a bit was rewritten in Python, and source files renamed along the way.
Feature Branch: feature/live-build-3.x
Related issues
- Related to #5570 (closed)
- Related to #12146 (closed)
- Copied to #7217 (closed)
Original created by @tails on 5691 (Redmine)