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 broken
- 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.chrootinto the chroot environment (note:
environment.binaryis broken for us, and
environemnt.chrootcan't be used for variables whose value contains spaces)
--firmware-chroot trueinstead of manually listing all firmware packages (not usable for us, see commit 3dee0470)
- save more disk space at build time (#5940)
- the configuration tree is bind-mounted on
/root/configin 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.
#8 Updated by intrigeri about 5 years ago
- Feature Branch set to feature/live-build-3.x
After many hours of work, I've got a live-build 3.x config tree that builds fine until the binary hooks. I expected this process to be painful. It was worse. And I've no idea how one could review the current devel..feature/live-build-3.x diff.
Anyway, I'll try to get something that works out of it, we'll see.