This is required because lh_binary_rootfs removes /boot if minimal or
stripped is the only packages list.
Signed-off-by: Chris Lamb <chris@chris-lamb.co.uk>
* lh_config system-wide configuration file, like an implicit specification
of '--conffile=/etc/live-helper' to each lh_config call.
Signed-off-by: Marco Amadori <marco.amadori@gmail.com>
Without this, a modified version of the (say) "gnome" list inside
chroot_package-lists would be completely ignored when installing binary
packagelists.
Signed-off-by: Chris Lamb <chris@chris-lamb.co.uk>
This patch installs (almost) all chroot packages by queueing the package
names into a single file and then installing that. It depends on my
previous patch to install local packages by using an APT mirror.
This speeds up image build causes even greater speedups once more packages
adopt triggers.
(Packages installed by debconf preseeding are not touched, nor are packages
installed by tasks.)
Signed-off-by: Chris Lamb <chris@chris-lamb.co.uk>
This patch modifies chroot_sources to build a small APT repo of the
local-packages and use that for local package installation instead of
"dpkg -i". This has a few advantages:
* Removes the true ugliness that is "dpkg -i *.deb && apt-get install -f".
This not only is slow and brittle, it causes scary "dpkg dependency
error" messages to appear in build logs.
* We can (ie. not implemented here) move to installing all the packages
from:
- lh_chroot_packages (ie. ${LH_PACKAGES})
- lh_chroot_local-packages (ie. config/chroot_local-packages/*.deb)
- lh_chroot_local-packageslists
- lh_chroot_packages-lists
- lh_chroot_linux-image
.. in one shot. This would primarily improve speed as we would not keep
invoking ${LH_APT}, and package installations can share triggers and
suchlike -- installing a custom live-initramfs via local packages
currently costs an additional "update-initramfs -u" call.
It would also fix a number of obscure dependency cases, such as the one
documented in #475739, and--if the user is using aptitude--may even
result in better resolution choices.
* Removes some messy and somewhat brittle code in lh_chroot_linux-image
that edgecases a local live-initramfs.
The disadvantages are:
* If local packages are being used and we are building in a chroot, we
must refresh the sources list and rebuild the repo before building the
binary images. (However, before this patch, we had to do this anyway if
the binary mirrors were different from the chroot ones.)
* We must add a little hack to the minimal hook to detect whether we are
using local packages and not remove apt-utils (which creates the
repository in lh_chroot_sources) if that is the case -- we cannot simply
use "Install_package" inside lh_chroot_sources as we are not guaranteed
to have working APT data because the minimal hook deliberately removes
them!
Signed-off-by: Chris Lamb <chris@chris-lamb.co.uk>
This fixes:
* The ugly "toboot" and "to\nboot" problems
* Mistitled F4 page
* Ugly line-breaking of Debian Live URL
Signed-off-by: Chris Lamb <chris@chris-lamb.co.uk>
This means that /isolinux/isolinux.bin and /boot/grub/stage2_eltorito are
not included in md5sum files anymore as intended. It also prevents a
strange and verbose warning from appearing in build logs.
Signed-off-by: Chris Lamb <chris@chris-lamb.co.uk>
This patch catches the case when LH_APT is "apt", its default value. This
was causing build failures when using a local live-initramfs .deb.
Signed-off-by: Chris Lamb <chris@chris-lamb.co.uk>
The loop-aes-utils sets a umask in its update-initramfs configuration,
causing initrds to have "0600" permissions which causes boot failures
when offering the files over netboot or similar.
The justification given by loop-aes is that, as it supports encrypting
against embedded GPG keyrings, the keys would be compromised if the files
were group- or world- readable. However, as live-helper does not support
this feature, it is safe to simply correct the permissions.
Signed-off-by: Chris Lamb <chris@chris-lamb.co.uk>
mksquashfs has a nasty habit of segfaulting when creating an image where
an image already exists. This can happen, for example, if you are
performing multiple runs of lh_binary and the build breaks for some reason.
This is almost certainly a bug in mksquashfs; I will look into finding a
suitable testcase.
This patch repacks the initrd when using the d-i netboot images in order
to incorporate a preseed.cfg if it exists. Before this patch, preseeding
of d-i netboot images was not possible.
Repacking the initrd has the additional advantage of being able to preseed
the first few questions of the installation process.
Signed-off-by: Chris Lamb <chris@chris-lamb.co.uk>
The code which determined whether to use the netboot d-i images was the
inverse of the code which determined whether to create a local package
pool: this patch merges the two.
This patch additionally ensures that setting "businesscard" whilst building
an ISO image will install the d-i netboot images; this was causing d-i
failures when it couldn't find its (non-existent) package pool.
Signed-off-by: Chris Lamb <chris@chris-lamb.co.uk>
We must use "aptitude install <pkgname>" to install dependencies of a
dpkg-installed <pkgname>, or aptitude's resolver will remove it. apt-get
does not have this "feature".
This was causing a problem when using a custom versions of live-initramfs
as they would be removed, causing a boot failure.
Signed-off-by: Chris Lamb <chris@chris-lamb.co.uk>
Using --no-clobber at the same time as -O<file> results in <file> being
created with no contents, which was resulting in (broken) zero-byte d-i
kernels and initrds.
The patch is simple -- simply remove --no-clobber: wget -O<file> <url> will always download <url> to <file>, regardless of how
many times it is run.
Signed-off-by: Chris Lamb <chris@chris-lamb.co.uk>
There is no need to create a package pool when creating a netboot Debian
Live image or when the LH_DEBIAN_INSTALLER is set to "businesscard".
Signed-off-by: Chris Lamb <chris@chris-lamb.co.uk>
This patch also modifies the configuration logic to ensure that setting
LH_DEBIAN_INSTALLER="enabled" whilst creating a netboot image will install
the netboot variety of d-i.
Signed-off-by: Chris Lamb <chris@chris-lamb.co.uk>
This patch alters the syslinux labels to follow the "expert" and
"expertgui" style in favour of "TextExpert" and "GUIExpert".
This makes the names match Live Helper's syslinux templates, as well as the
more typical d-i installations and numerious sources that claim that one
should "just type 'expert' at the syslinux prompt", etc.
Signed-off-by: Chris Lamb <chris@chris-lamb.co.uk>
When building a very minimal live system on a usb-hdd target, the generated
image is too small. A very minimal system is smaller than 50MB, and so this is
the same as DU_DIM for such a system. This is too small. Unconditionally adding
one solves the problem.
${@} expands to "<arg1>" "<arg2>" ... etc., which causes the -z test to
encounter too many arguments and thus fail with an error.
Signed-off-by: Chris Lamb <chris@chris-lamb.co.uk>
Marco sais, that flash devices often need a different erase size than mkfs.jffs2
defaults to. Hence, this parameter passes the blocksize to the mkfs.jffs2 call
through --eraseblock option.
By using APT_OPTIONS and APTITUDE_OPTIONS in config/common,
one can manipulate the default options wich is made to each
and every apt and aptitude call.
Since debootstrap 1.0.8 there's a variant called minbase that installs
just essentials packages so base's size is greatly reduced. Use this
variant when producing reduced images.
New debootstrap has change the scripts to /usr/share since they're
architecture independent code. The support for it has been added
however it fallback to /usr/lib to keep backward compatibility.