summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2012-09-30functions: always treat ADDED_MODULES as a hashDave Reisner2-5/+5
Overlooked in b8d9c5cd2753e9. This change also assigns a value of "2" to builtin modules which are added to the the ADDED_MODULES array, to distinguish them from actual modules on disk. Using this, we can avoid adding builtins to the image's runtime config. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-09-24mkinitcpio: protect module install on $MODPATHSDave Reisner1-1/+1
This was always wrong and should have been braced by MODPATHS rather than ADDED_MODULES. However, since ADDED_MODULES now possibly contains modules that weren't actually added (builtins), creating an initramfs without modules causes cp to be passed a null string to be copied. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-09-24force bsdcpio to run with LANG=CDave Reisner1-1/+1
In case mkinitcpio is in run via chroot(1), this possibly silences a harmless warning about bsdcpio failing to set the default locale. This comes up fairly often with the recent install media and users think that it's something to be concerned about. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-09-17silently ignore builtin modulesDave Reisner1-0/+7
Assuming modules.builtin exists, add the module names it contains to the ADDED_MODULES hash so that we silently skip over them. Suggested-by: Matthew Monaco <dgbaley27@0x01b.net> Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-09-17declare ADDED_MODULES as associative arrayDave Reisner2-4/+4
Lookups in the hash table are far faster than traversing the entire array, as this grows O(n) and introduces a particularly noticeable slowdown on larger images. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-09-17install/base: update help verbiageDave Reisner1-2/+2
This hasn't provided actual directories in a while. Reword it to point out that it's only providing the critical scripts and binaries for booting. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-09-17functions: allow add_symlink to only take a single argDave Reisner2-10/+24
In the case of a single arg, use readlink(1) to resolve the target of the symlink. Document this, and additionally note the lack of guarantee about the target of the symlink. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-09-17mkinitcpio.8: add missing doc for add_symlinkDave Reisner1-0/+5
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-09-17install fstab/mtab as part of base layoutDave Reisner2-5/+4
These are low level enough that they should be part of the base layout, similar to the filesystem package in userspace. Later hooks can easily override these, if they really want to. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-09-01mkinitcpio: refuse to run if image path isn't writeableDave Reisner1-0/+7
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-08-30init: add support for root=PARTLABEL=fooDave Reisner1-1/+1
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-08-27mkinitcpio.8: fix typoDave Reisner1-1/+1
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-08-19init: avoid needlessly trimming PATHDave Reisner1-1/+0
busybox gives us something sane which doesn't need setting, or resetting. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-08-19functions: avoid creating /usr/sbinDave Reisner1-1/+1
Booo. This broke my boot. Should never have been added in f3638aaa0937. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-08-13shutdown: add hack workaround for broken dm/kernelDave Reisner1-0/+4
This is already fixed elsewhere, and eventually this hack needs to be removed. However, for now, it seems that some kernels (3.4 and 3.0) will hang on shutdown with the combination of systemd and lvm/crypt. Removing evidence of udev being alive in /run seems to fix this. Fixes FS#30995. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-08-13functions: symlink /usr/local/sbin -> /usr/binDave Reisner1-1/+2
This was overlooked in 5f81d06e8b87. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-08-11install/consolefont: support .fnt filesDave Reisner1-2/+2
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-07-29autodetect: fix wrong flag passed to modprobe0.10Dave Reisner1-1/+1
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-07-28mkinitcpio: rename longopt for --add to --addhooksDave Reisner3-9/+9
Rename this option so that it mirrors the longopt name for -S, --skiphooks. The original --add option remains behind in the option parser for backwards compatability, but no other references remain. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-07-28implement --moduleroot optionDave Reisner5-9/+16
This might be useful for creating an initramfs image as part of a kernel package. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-07-24baseroot: add flagfile to indicate we're in an initramfsTom Gundersen1-1/+4
This is used by udev to deal with firmware requests for firmware that is not available until the real root. It will also be used by systemd to detect what to do, if that is ever used. ref: http://www.spinics.net/lists/linux-wireless/msg94522.html Signed-off-by: Tom Gundersen <teg@jklm.no>
2012-07-24init_functions: use a consistent default rootdelayDave Reisner1-1/+1
init defaults to a rootdelay of 10, but poll_device falls back on a default of 5 if rootdelay is somehow manage during the hook run. Keep this consistent and use 10 seconds in both places. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-07-15lsinitcpio: comment on why bsdtar alone isn't good enoughDave Reisner1-1/+3
I almost deleted this, replacing it with only bsdtar. Add a comment so I'm not tempted to do this again. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-07-15initalize buildroot later, and out outside of hooksDave Reisner3-36/+36
mkinitcpio needs to be able to more tightly control the layout of the image. By moving this outside the control of the base hook, it's more reasonable to believe that a drop-in replacement for the base hook could be written, as it now only contains the utilities required for the /init that it provides. Being that initialize_buildroot is outside of a hook, we can make "raw" calls to coreutils that create the directories and symlinks, saving some overhead and forking. This also symlinks /usr/local/{lib,bin} into the common /usr/lib and /usr/bin, respectively, so that there's always a way to override libs and bins, and they're automatically pulled into our strict early init path of /usr/bin. Finally, we lump all this generally a little "later" in the early setup. This addresses an unseen "bug" wherein an extra temp directory that never gets used is created when leveraging a preset. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-07-15use last exit status as default arg for cleanupDave Reisner1-1/+3
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-07-15add 'strip' install hookDave Reisner1-0/+32
Mostly a convenience for myself, and anyone else who runs builds of things like util-linux or kmod, where having debug symbols on these libraries can add a large amount of weight to the image. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-06-13shutdown: don't alert udev on disable VGsDave Reisner1-1/+1
Fixes FS#30271. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-06-12Update module filter to be aware of hyphens in the MODULES arrayBrian Parsons1-1/+1
[dave: fix whitespace and re-add needed quoting] Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-06-08lsinitcpio: show only regular files as binaries0.9.2Dave Reisner1-2/+1
Show only regular files in /usr/bin instead of everything (including the mess of symlinks to busybox and kmod). It's also a nice to have since we're showing more about the multiple hook points now. This mostly restores the behavior prior to f7b8a6f0fd. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-06-08update dev PKGBUILDDave Reisner1-3/+1
- remove replaces - exchange udev with systemd-tools Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-06-08avoid reliance on sed, embrace awkDave Reisner2-3/+3
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-06-08remove redundant header commentDave Reisner1-8/+1
I've adopted the convention of specifying the shebang for the interpreter any given install or runtime hook that a script runs under. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-06-08bump copyright yearDave Reisner1-1/+1
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-06-08Use declare -f over type -t to avoid subshellsDave Reisner2-2/+2
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-06-08functions: avoid adding nonexistant modules to configDave Reisner1-2/+6
If we didn't actually add a module to the image, avoid adding it to the runtime config for probing. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-06-08functions: style nitsDave Reisner1-3/+11
Avoid using compound commands where one side runs a command group. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-06-07init: run late/cleanup hooks before checking for initDave Reisner1-4/+3
This fixes a bug that made it impossible for systemd to be booted with a separate /usr partition. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-06-05fix doc error for add_full_dirDave Reisner1-3/+4
This function was incorrectly named in the manpage, and is misleading since it will add symlinks, rather than follow them, as of 96e616f06785. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-06-05explicitly unset build function before sourcingDave Reisner1-0/+1
This fixes an unlikely (and likely unseen) regression from 9a20048c6279cd. Without unsetting the build function before sourcing the hook file, we can't guarantee that we're running the build function tied to that specific file. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-06-02Don't report success when builderrors > 00.9.1Dave Reisner1-1/+1
Technically, we report success when we wrote an image to disk, but this might not be obvious to users, even with a blaring warning right before this line. If in the event builderrors is incremented at all, avoid reporting any sort of "success", since there might be cause for concern. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-06-02catch errors in ldd ELF dep resolutionDave Reisner1-1/+7
ldd reporting a library to be 'not found' is dangerous, and should be reported. Consider this a build error, which will hopefully prompt the user to reconsider before rebooting. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-06-01add hookpoints to --hookhelp outputDave Reisner2-6/+25
Generalize the awk program embedded in add_runscript and create a separate function which can be reused to display the specific hooks that a script has. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-06-01avoid subshell in adding --quiet to bsdcpioDave Reisner1-4/+13
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-06-01move running of hooks to separate functionDave Reisner2-42/+39
This allows us to declare sourced variables that we want to shield from stomping on our config variables, and without needing to use a subshell. Incidentally, this also fixes FS#29992 in a more permanent way. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-05-30update comments in configDave Reisner1-8/+5
This really should be moved into a man page. FS#30042. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-05-30add_full_dir: properly handle symlinks and empty dirsDave Reisner1-2/+5
Note that we're intentionally very liberal about what we accept for symlinks, and don't actually care if the target exists. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-05-19manpage: remove explcit author list0.9.0Dave Reisner2-11/+3
This is what git is for. At this point, I've (re)written the majority of the page anyways. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-05-19manpage: expand doc on build and runtime hooksDave Reisner1-10/+98
Fully document the recommended API for install hooks, and the various hook points available for early userspace hooks. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-05-18init: add timestamp at start of initramfs if binary existsTom Gundersen1-1/+8
This will allow us to tell how much time was spent in the initramfs, which might be good for working on optimizations and making sure we don't regress. If a binary able to produce the timestamp is not installed this is a noop. I'll post separately an install hook to the systemd package that will install systemd-timestamp. However, it would be trivial to replace this by an independent implementation if people want to use this without systemd. With this patch I get the following on my (ancient) laptop: $ systemd-analyze Startup finished in 294ms (kernel) + 2684ms (initramfs) + 15741ms (userspace) = 18720ms FWIW, 1 second is spent on inserting the needed modules, and 1.5 seconds on mounting the rootfs (mounting btrfs is slow!). Signed-off-by: Tom Gundersen <teg@jklm.no> Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-05-18usr: add usr mounting as a late running hookDave Reisner5-12/+33
Mount separate /usr partitions voluntarily, as a late running hook. This is an unfortunate patch that will no doubt result in some hatemail, though it won't thoroughly break anyone to the point of not booting. As a side effect, findmnt is no longer a requisite of the core /init, so move it to the shutdown and usr hooks where it's required. Signed-off-by: Dave Reisner <dreisner@archlinux.org>