On some system the output from the new lddtree does not match with what
genkernel expects, however lddtree have insted gained a new option that
essentially gives what we want with less code.
Signed-off-by: Peter Hjalmarsson <xake@rymdraket.net>
Whenever /etc/zfs/{zdev.conf,zpool.cache} was missing, we would fail.
zpool.cache is not generated during cross compilation, which causes a
failure in Catalyst when building LiveCDs. Users that do not follow a
strict set of installation instructions can also suffer failures as a
consequence of this.
zpool.cache includes information about known pools that enables ZFS to
detect situations where an entire pool disappears. It is also required
to do pool import in corner cases, such as those those involving
file-based pools, and has the beneficial effect of reducing pool import
times. Unconditional omission of zpool.cache in general is not an
option, but for the situations identified, it is okay to convert the
failure into a warning, which is what we do.
Reported-by: Rick Farina <zero_chaos@gentoo.org>
Reported-by: Alexander Zubkov <green@msu.ru>
Signed-off-by: Richard Yao <ryao@gentoo.org>
Somewhere in the mists of time we lost part of the multipath patch, so
we were bundling the userspace, but not the kernel modules, or ever
using it.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
The copy_binaries function is explicitly released into the public domain to
encourage wide adoption and re-use.
This is to enable use in some cases of BSD and other licensing, and
specifically avoiding the need to be party to any contributor agreements.
Additionally, the code could be considered of trivial length in some regions.
Written by:
- Robin H. Johnson <robbat2@gentoo.org> (complete rewrite)
- Richard Yao <ryao@cs.stonybrook.edu> (original concept)
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
dmraid is entirely broken if you try to use the system static
LVM/device-mapper. Instead, always build our own LVM2 for the initramfs,
using DESTDIR for cleaner install. Dead code paths for old LVM2 build
not removed yet until more users have tested.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
This implements customizable initramfs compression, based on the Pentoo
genkernel fork (SVN revs r2142, r2145, by Jens Pranaitis
<jens@chaox.net>).
New configuration option COMPRESS_INITRD_TYPE to allow manual selection,
whereas the Pentoo fork provided auto-selection based on what was
available in the kernel configuration. Auto-selection is used by
default, and is available with the argument of 'best' to the new option.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
The existing multipath functionality manually picks up a binary and lots
of needed libraries manually, and sometimes misses libraries if the
binary was linked against something else.
Use lddtree from app-misc/pax-utils to get all libraries with the
binary. The only ones that will be missed are those that are dlopen()ed.
cpio is used for copying to preserve directory structure.
lddtree usage replaces a larger manual function from calling ldd, that
was also vulnerable to injections.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
(commit message rewritten)
When using an integrated initramfs (including in kernel during build),
it's better NOT to compress the initramfs, as the kernel build process
will then be re-compressing it. This can provide space savings on disk
as well as potential time & memory savings (one less decompress pass is
needed before the kernel can use the initramfs).
This functionality was previously available in the undocumented
COMPRESS_INITRD variable.
Code-by: Richard Yao <ryao@cs.stonybrook.edu>
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
(commit message rewritten).
Provide real boolean commandline options for options that were
previously only available as booleans in the config, so that they can be
enable in configuration and overridden to disable on the commandline.
Remove negation on options: NOINSTALL, NORAMDISKMODULES,
NO_KERNEL_SOURCES.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
Make it possible to choose a custom mdadm.conf for your ramdisk.
If not set, no mdadm.conf will be copied, and ramdisk will auto-detect.
This also fixes a regression where genkernel always tried to copy
/etc/mdadm.conf to the ramdisk, failing if it was non-existant.