Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
into Foxboron-morten/copyright
|
|
|
|
mkinitcpio: Produce reproducible initramfs images
|
|
|
|
We achieve this by stripping timestamps from within the filesystem,
and by using a pipeline to strip inodes from the cpio archive.
It functions for at least the 'gzip', 'xz', 'bzip2', 'lz4' and 'cat'
compressors. The 'lzop' compressor embeds a runtime timestamp.
Motivation: https://reproducible-builds.org
Signed-off-by: Daniel Edgecumbe <git@esotericnonsense.com>
|
|
Avoid over-optimizing autodetect and always add these. This allows
storage drivers to be builtins and still trigger addition of the block
node driver.
|
|
This might not strictly be strictly needed, but systemd documents it as
being a requirement, else it adds a var-run-bad taint flag.
|
|
These have been deprecated since 2012. I think that's enough time for
people to migrate.
|
|
|
|
|
|
Read time is constant between compression methods and we can't possibly
estimate this accurately since reading the image from disk doesn't
happen with kernel userland functions, but instead UEFI or 16-bit
realmode capabilities.
ref: https://bugs.archlinux.org/task/56417
|
|
Broken by c5ad00c2.
ref: https://bugs.archlinux.org/task/55870
|
|
|
|
Might be needed for ext4 filesystems formatted with the metadata_csum
option.
ref: https://bugs.archlinux.org/task/54091
|
|
Consistently handle hooks as symlinks by relying on the exit status of
readlink instead of an lstat and always, additionally, examine the hooks
basenames to ensure that we aren't warning about foo deprecating foo
(because the hook is a symlink to somewhere else that the hook is
actually stored on disk.
ref: https://bugs.archlinux.org/task/55323
|
|
ref: https://bugs.archlinux.org/task/54460
|
|
https://sourceware.org/git/?p=glibc.git;a=commit;h=eedca9772e99c72ab4c3c34e43cc764250aa3e3c
|
|
Add third argument to add_full_dir: strip_prefix.
The strip_prefix will be stripped off from the destination
path (path in the initramfs image) when adding files.
Rationale: Make it easier to add rootfs overlay hooks when
generating images.
add_full_dir can be invoked in this way:
add_full_dir /path/on/parent/rootfs-overlay * /path/on/parent/rootfs-overlay
The above invocation will add all content of */path/on/parent/rootfs-overlay*
into */* in the initramfs image.
Signed-off-by: Erik Stromdahl <erik.stromdahl@gmail.com>
|
|
By passing the filter glob in all recursive invocations of
add_full_dir, the filtering is performed on all subdirs and
not just the top dir.
This makes the implementation correspond to the documented
behavior in the man page.
Signed-off-by: Erik Stromdahl <erik.stromdahl@gmail.com>
|
|
allows for backwards compat by detecting and converting old-style
string-based configs.
|
|
ref: https://bugs.archlinux.org/task/53343
|
|
This is harmless fallout from 5249350, which tries harder to re-add
aliases of builtins.
|
|
Not all root devices are block devices, after all. Rely on mount doing
the right thing (or not).
ref: https://bugs.archlinux.org/task/45118
ref: https://bugs.archlinux.org/task/35529
|
|
On compressed images, bash 4.3 gets salty:
$ lsinitcpio initrd.gz >/dev/null
/usr/bin/lsinitcpio: line 78: warning: command substitution: ignored null byte in input
/usr/bin/lsinitcpio: line 90: warning: command substitution: ignored null byte in input
Tidy up all of our hexdump comparisons via command substitution to use
process substitution instead.
|
|
ref: https://bugs.archlinux.org/task/52768
|
|
crc32 is a builtin module in the Arch kernel but also a crypto module.
Resolve by this only noting that a module is added if the value in the
has is 1, and not 2 (indicating a builtin).
While we're here, change the f2fs softdep of crc32 to crypto-crc32.
ref: https://bugs.archlinux.org/task/49380
|
|
|
|
this is no longer needed -- we get softdeps from the kernel.
|
|
|
|
systemd v232 only activates systemd-vconsole-setup via udev. Follow this
to make sure things work properly. This also obsoletes the modules-load
hack.
https://github.com/systemd/systemd/issues/4699
|
|
This really ought to be fixed in the module, but here we are again
guessing at module requirements.
ref: https://bugs.archlinux.org/task/49380
|
|
builderrors -> _builderrors -- this makes binary dep resolution
properly a builderror. As seen in:
https://bugs.archlinux.org/task/51818
|
|
Arch's binaries are all in /usr/bin, so let's not bother searching in
duplicates of this directory.
|
|
|
|
It's been too long and I've forgotten how to hack on mkinitcpio...
|
|
...and mine too, now that he points it out.
|
|
|
|
These were curiously omitted from the documentation.
ref: https://bugs.archlinux.org/task/50470
|
|
If the MODULES contain a GPU driver like i915, wait for it
to be loaded. This avoids the font configuration being lost.
|
|
ref: https://bugs.archlinux.org/task/50700
|
|
Arch might not really support some of these, but mkinitcpio can.
|
|
This prevents having unquoted expansion in the bsdcpio commandline
|
|
This refactors parse_cmdline into a few chunks of code, mainly to
separate the work of parsing from the handling of the actual parsed
parameters. By default, parse_cmdline_item is used as the callback for
handling the parameters, but this could be overriden by other code
sourcing init_functions if desirable.
Our test harness passes more tests, but we leave behind some expected
failures to describe the cases where it still fails. Fortunately I've
not yet been able to find any cases which warrant --expect-parse-fail.
|
|
Some of these tests currently fail including hard failures where the
shell quits entirely (this would lead to a kernel panic). A followup
commit will rewrite the parse_cmdline function to improve it and fix
these deficiencies.
|
|
Version extraction only works on x86 (i686 and x86_64) kernels.
ref: https://bugs.archlinux.org/task/43256
|
|
rootfstype is handled by the kernel, so we should handle it, too.
ref: https://bugs.archlinux.org/task/45117
|
|
ref: https://bugs.archlinux.org/task/44805
|
|
ref: https://bugs.archlinux.org/task/49380
|
|
This is true of more and more modules with the advent of aliases, e.g.
$ modinfo -F filename crc32c
/lib/modules/4.6.2-rampage/kernel/arch/x86/crypto/crc32c-intel.ko.gz
/lib/modules/4.6.2-rampage/kernel/crypto/crc32c_generic.ko.gz
|