summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2013-08-28mkinitcpio: preserve permissions if run as rootDave Reisner1-1/+5
Running as non-root is usually for my own dev purposes, but someone might do this and be surprised when a directory/file that needs permissions other than root isn't preserved. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2013-08-28rely on libmount defaults for file locationsDave Reisner2-2/+3
Using --tab-file for findmnt calls is redundant if we can rely on the defaults. Sanitize the environment from any LIBMOUNT_* variables so that we can be sure of what file we're reading. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2013-08-28autodetect: search for /usr explicitly using -TDave Reisner1-1/+1
Doing this oddly results in findmnt never stat(2)'ing the target directory, which might be problematic with stale NFS mounts and maybe autofs. Fixes FS#36629, I suppose. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2013-07-27init: avoid passing empty RD_TIMESTAMP variableDave Reisner1-1/+0
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2013-07-18init: rely on ConditionPathIsReadWrite for root fsck flag0.15.0Dave Reisner1-3/+13
Add an annoying warning in case the root device is fsck'd and about to be mounted RO. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2013-07-08Generate /etc/ld.so.cache for imageDave Reisner2-0/+6
Shaves a trivial, but measurable, amount of time off of early userspace at the cost of a small cache file. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2013-07-01rdlogger: log messages which would have been hidden by quietDave Reisner2-1/+7
This allows 'quiet rd.log=kmsg' to produce a silent boot while still logging the full output that would have been written to the console. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2013-06-25init: remove unneeded intermediate variableDave Reisner1-3/+2
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2013-06-25init: merge duped code, use bitfield_has_bit in fsck_rootDave Reisner1-14/+8
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2013-06-25init: allow for logging of early userspaceDave Reisner3-2/+176
This introduces support for the rd.log and rd.debug kernel command line options, which log early userspace activity to /run/initramfs/init.log. Code is largely inspired by Dracut's implementation of early userspace logging, but without needless complexity and redundancies. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2013-06-19init: throw error on unknown fsck.modeDave Reisner1-2/+9
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2013-05-07move install_modules to functions to allow for testingDave Reisner2-41/+41
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2013-05-07remove "arbitrary" limit from index_of()Dave Reisner2-11/+13
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2013-05-07init: redirect /proc/cmdline to parse_cmdlineDave Reisner2-2/+2
This makes it easier to test parse_cmdline. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2013-05-07README: its 2013, year of the ponyDave Reisner1-1/+1
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2013-05-07lsinitcpio: remove unused variablesDave Reisner1-3/+0
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2013-05-02shutdown: include umount from util-linux0.14.0Dave Reisner1-0/+1
This is needed for the --recursive flag. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2013-05-02mkinitcpio: ensure ERR trap propagates to install_modulesDave Reisner1-0/+2
Without this flag set, errors in install_modules are ignored, and mkinitcpio potentially exits without complaining about build problems when foolish people run out of disk (presumably after using /tmp as a build directory). Fixes FS#35037. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2013-04-24shutdown: use umount --recursiveDave Reisner2-16/+2
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2013-04-24hooks/memdisk: scope variables, use newer syntaxDave Reisner1-6/+9
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2013-04-24hooks/usr: conditionally fsck /usr based on fstabDave Reisner1-2/+8
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2013-04-24functions: implement add_firmwareDave Reisner2-8/+26
Add this as an abstraction for the various places firmware might exist. Additionally, don't complain about missing firmware unless *none* of it can be found -- and even then, only throw a warning. NB: this means that users building images without the autodetect hook and a rudimentary hook like "block" will see warnings which are going to cause panic, chaos, and upheaval. I fully expect that this will result in extra non-work for me in the form of closing invalid bug reports. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2013-04-21functions: return a count of failures from map, if possibleDave Reisner1-1/+1
I don't have any particular use case for this, but it might be nice to have this available in the future. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2013-03-13autodetect: allow whitelisting by MODULE_FS_ALIASDave Reisner1-3/+5
Linux 3.9 adds a filesystem alias in the supporting module in the form of fs-$filesystem. While this is mainly aimed at security/paranoia, it does mean that we can make better use of the fact that we always resolve filesystem as aliases to filesystem modules. Do an additional lookup in add_if_avail to resolve the new alias in addition to the filesystem name itself. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2013-03-13mkinitcpio: honor updates directory for firmwareDave Reisner2-2/+6
This also removes a check which would have otherwise hidden a missing firmware error from the user. FS#34255. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2013-03-13mkinitcpio: fix reference to bad variable nameDave Reisner1-1/+1
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2013-03-09lsinitcpio: shortcut lzop involvement to bsdtarDave Reisner1-8/+4
libarchive 3.1 supports LZO now, so we no longer need this indirection everywhere. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2013-02-28PKGBUILD: depend on systemd, not systemd-toolsDave Reisner1-1/+1
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2013-02-28mkinitcpio: use consistent style in case statementDave Reisner1-18/+36
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2013-02-28add zsh completionDaniel Wallace2-0/+65
add zsh completion for lsinitcpio and mkinitcpio Signed-off-by: Daniel Wallace <danielwallace@gtmanfred.com>
2013-02-28bash-completion: use kernel versions from detectionDave Reisner1-8/+2
Instead of rummaging through /lib for kernel versions, just use the validated versions from the hunt through /boot. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2013-02-11fsck: add fsck config if it existsDave Reisner1-3/+8
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2013-02-05Move preset examples from /etc/mkinitcpio.dSébastien Luttringer1-2/+3
to $(DESTDIR)/usr/share/mkinitcpio to avoid use in mkinicpio -P. Signed-off-by: Sébastien Luttringer <seblu@seblu.net>
2013-02-05Add -P, --allpresets optionDave Reisner3-13/+24
As a logical extension, allow the -p option to be specified multiple times in order to process several presets at once. Original-patch-by: Sébastien Luttringer <seblu@seblu.net> Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2013-02-03bash-completion: detect_kver -> _detect_kverDave Reisner1-2/+2
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2013-01-31functions: add /usr/lib64 -> lib symlink0.13.0Dave Reisner1-2/+8
Relegate this and the other lib64 symlink to x86_64, too, since we have no business creating this on i686. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2013-01-24symlink /lib64 -> usr/lib in imageDave Reisner1-0/+1
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2013-01-21Do more to determine the color caps of the termDave Reisner3-32/+20
823e24 wasn't really correct, since running 'tput setaf 0' effectively sanity checks the terminfo as well as checking existance. However, it does nothing to affirm that the terminal is capable of supporting colors. Moreover, *never* fall back on the hardcoded escapes as doing so implies that we've found a broken terminfo and we have no idea what the terminal is capable of doing. This reverts commit 823e2454176d4381cd3acc30481e9d84cdc298b1.
2013-01-18mkinitcpio.8: we support PARTLABEL tooDave Reisner1-2/+3
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2013-01-13factor out kver detection to functions fileDave Reisner4-23/+24
This leaves bash completion with a duplication, but this is intentional to avoid pulling in the entire functions file and worrying about pollution. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2013-01-12parseopts: remove superfluous continue/shift statementsDave Reisner1-5/+1
Found via apron. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2013-01-12functions: remove broken symlink errorDave Reisner1-4/+1
Due to using PATH lookups for hooks, we can't possibly end up with a broken symlink. The build will just error out on the hook not being found. Found via apron. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2013-01-12init_functions: namespace parsed vars from cmdlineDave Reisner1-23/+23
It's possible, though unlikely, that someone expecting a variable of the name, e.g. "rhs" or "lhs" to be propagated from the kernel cmdline could be sadly let down because of the local scoping. Give our localized vars names less likely to clash. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2013-01-12use type to determine availability of tputDave Reisner2-2/+2
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2013-01-12functions: always force a PATH lookup for typeDave Reisner1-3/+3
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2013-01-12lsinitcpio: further cut out dependency on fileDave Reisner2-13/+53
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2013-01-12lsinitcpio: avoid redundanciesDave Reisner1-2/+2
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2013-01-12lsinitcpio: abort on unknown file formatsDave Reisner1-1/+6
Specficially, abort when a user tries to run lsinitcpio on a kernel image. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2013-01-12lsinitcpio: fail hard if the image can't be extractedDave Reisner1-2/+4
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2013-01-12mkinitcpio: avoid using 'file' to get kernel versionsDave Reisner2-10/+33
The kernel defines an offset at a fixed location within the bzImage which we can use to find the kernel version string. Since this is fairly important, reimplement the algorithm (which file almost surely uses) using low level tools to avoid the possibility that file may break or change its output, critically wounding mkinitcpio. Note that this change leaves 'file' in use for lsinitcpio compression detection. Signed-off-by: Dave Reisner <dreisner@archlinux.org>