summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2012-11-26shutdown: teardown loop devices only after umountDave Reisner1-6/+6
This still isn't really ideal, but attempting to detach loops while they're still mounted will definitely fail. Ideally, the loop device is in autoclear mode and dropping its refcount to 0 on umount will cause the backing file to be detached from the loop. Of course, this all gets way too complicated for userspace to handle when dealing with the sort of rat's nest of loop devices that ArchISO sets up. The kernel doesn't help us out here by populating things like holders/ and slaves/, but I'm not sure it could. Maybe there's a better way... Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-11-26selectively decompress modules on installDave Reisner1-6/+19
Don't make any assumptions about the compression on modules and scan the passed in module list for telltale extensions. This has the benefit of doing nothing when modules are uncompressed, and adds support for decompression of XZ modules. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-11-26unique _modpaths arrays in during buildDave Reisner2-11/+12
Declaring _modpaths as an associative array allows us to forego the printf|sort -u|xargs cp pipeline as we can guarantee that the array is already prepared. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-11-26modconf: add new hook to simply inclusion of modprobe configDave Reisner2-4/+16
Add this as a default in the config file. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-11-26merge most storage hooks into a single 'block' hookDave Reisner9-147/+57
As the autodetect hook gets better with every kernel release, we can "afford" to remove the needless segregation of block device driver hooks and simply merge all the "vanilla" or "unstacked" block device drivers. This should make a lot of setups, like usb or virtio, easier as you won't need to remember to add the hook. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-11-24Makefile: copy directories, not individual files on installDave Reisner1-3/+2
This allow preservation of symlinks. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-11-24functions: only show the basename of a deprecated hookDave Reisner1-1/+2
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-11-24build: move manpages to subdirDave Reisner4-7/+7
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-11-24obsolete old-style install hook APIDave Reisner3-52/+22
This removes any meaning from the definitions of MODULES, BINARIES, FILES, and SCRIPT within install hooks. It also removed the deprecated checked_modules() function, which is replaced by add_checked_modules(). Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-11-24drop support for reading /etc/rc.confDave Reisner2-10/+4
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-11-24init: remove unneeded variable expansionDave Reisner1-3/+3
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-11-24init: declare defaults earlierDave Reisner1-2/+3
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-11-24init: remove needless workaround for empty rootdelayDave Reisner2-6/+2
Adjust the test in poll_device to look for either an unset OR an empty 2nd parameter. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-11-24init: use exponential backoff in poll_deviceDave Reisner1-3/+13
Start at .1 second and double the interval, capping at 1s. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-11-24init: condense early module loadingDave Reisner1-2/+3
Since mkinitcpio rewrites its runtime config, we can guarantee that these variable are sanitized of extraneous whitespace. Meld the two calls together, ensuring that we retain the ordering, but only call modprobe once. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-11-24usbinput: use autodetection on newer kernelsDave Reisner1-2/+13
This is a partial "revert" of 822a88700e since kernels as of 3.5 add module aliases for hid devices. Fixes FS#32575. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-11-24shutdown: copy kexec from host if requested and not availableDave Reisner1-0/+18
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-11-24shutdown: avoid talking to udev via dmsetupDave Reisner1-1/+1
Similar to c257b0d7b4dd. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-11-24shutdown: share dm teardown with lvmDave Reisner1-9/+1
lvm is a chatty bitch and wants to tell all its friends about what it's doing. Mostly this just goes poorly with udev, but now its lvmetad as well. Use dmsetup as a shortcut and just tear down the volumes without worrying about the needless accounting. Guys? GUYS?!?! GUYS IM TEARING STUFF DOWN NOW!!!11!!!111 Fixes FS#32680. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-11-12Makefile: remove non-existing files from clean target0.11.2Dave Reisner1-1/+0
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-11-12shutdown: fix awful typo in reading metadataDave Reisner1-1/+1
Reported-by: Jan Steffens <heftig@archlinux.org> Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-11-12lsinitcpio: initialize _opt_verbose to empty stringDave Reisner1-1/+1
FS#32605. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-11-11shutdown: chdir to /sys/class/block earlier0.11.1Dave Reisner1-3/+3
This gives the loop detach logic an actual chance of working. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-11-11functions: avoid printing empty autodetect arrayDave Reisner1-2/+1
Fixes FS#32532. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-11-11shutdown: simplify recursive disassembleDave Reisner1-6/+1
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-11-11shutdown: pamper RAID devices with external metadataDave Reisner1-0/+8
Ensure that these devices (likely FakeRAID) are clean before stopping, to avoid leaving them in the dirty state and forcing a rebuild. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-11-11manpages: fix typos and grammatical errors.Dave Reisner2-9/+9
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-10-28mkinitcpio.8: update link to wiki to avoid redirectDave Reisner1-1/+1
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-10-25update bash completion for -V, --versionDave Reisner1-2/+2
2012-10-25man-pages: Add entry for -V/--version optionEric Bélanger2-0/+6
Signed-off-by: Eric Bélanger <snowmaniscool@gmail.com>
2012-10-25lsinitcpio: Add -V/--version option to display versionEric Bélanger1-2/+12
Signed-off-by: Eric Bélanger <snowmaniscool@gmail.com>
2012-10-25Add -V/--version option to display version informationEric Bélanger1-2/+12
Signed-off-by: Eric Bélanger <snowmaniscool@gmail.com>
2012-10-21function: add a map() utility function0.11.0Dave Reisner2-27/+16
map() runs the first argument (a function) with each of the remaining arguments as $1. The return value of map() is only 0 if all the calls succeeded. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-10-21install/ide: remove this crufty old hookDave Reisner1-15/+0
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-10-21convert autodetect cache to hashDave Reisner3-24/+29
If mkinitcpio -s is run, we still flush this cache to disk before exiting. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-10-21functions: trim path of resolved symlinkDave Reisner1-1/+1
When reporting that a hook is deprecated, only show the hook name, not the full resolved path. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-10-21add manpage for mkinitcpio.confDave Reisner4-1/+86
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-10-21makefile: spring cleaningDave Reisner1-40/+32
- use MANPAGES instead of DIST_EXTRA (it's only manpages anyways) - uniformly use $(var) instead of ${var} - consolidate manpage generate rules - prefer cp over install when symlinks might be involved
2012-10-07ensure builtins are dash/underscore translatedDave Reisner1-2/+4
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-10-07mkinitcpio: remove find_moduledirDave Reisner1-20/+2
Using anything but /lib/modules isn't really sane, and it shouldn't be supported. If you want to use /usr/lib/modules, then /lib must be a symlink to usr/lib. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-10-07separate image building to functionsDave Reisner1-129/+137
Mostly in favor of scoping out some variables further. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-10-07honor -n for presetsDave Reisner1-0/+1
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-10-07mkinitcpio: check for preset file by sourcing itDave Reisner1-42/+44
Instead of using a bash test, just source the preset file. If it fails, exit. This patch is a bit ugly because it remove a level of indentation.
2012-10-07commit to some level of style in variable namingDave Reisner6-217/+285
This is an ugly patch, and probably does more than I'd like it to. The idea is that mkinitcpio adopts some sort of consistent style which I'm actually happy with. I define 3 kinds of variables: 1) local variables: all lower case, and scoped within functions. Use freely, as they're well contained. 2) global variables: these are known to mkinitcpio internally, but are global in scope. They mainly carry runtime configuration and collected data during the image generation process. These are always lower case, but carry a leading underscore to denote that they're global. 3) "API" variables: also global in scope, but exist "outside" of mkinitcpio -- either drawn in from the configuration file, or "exported" to the install hooks. These are always all upper case. When introducing new variables, extreme care must be taken to pick names that will not conflict with the environment inherited by mkinitcpio. A HACKING file is introduced with a similar description of the above, and more. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-09-30functions: avoid fully resolving soname symlinksDave Reisner1-4/+2
It's okay to fully resolve the symlink to add the regular file it points to, but avoid mangling the symlink name to try and preserve relative links. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-09-30lsinitcpio: add -l, --list option; define as defaultDave Reisner3-11/+32
This is the default action for lsinitcpio. Add it just for the purpose of clarity. This change also separates out true options from 'actions' and validates that the user only passed a single action to lsinitcpio. Update the manpage accordingly. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-09-30lsinitcpio: add -c, --config option to dump configDave Reisner3-4/+13
Now that mkinitcpio stores the build time config file in the image, we should have a way of easily getting it back out. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-09-30lsinitcpio: move image analysis to separate functionDave Reisner1-66/+70
git (at least version 1.7.12.1) does a great job of showing the absolute wrong code moving around in this patch. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-09-30functions: include image config on image itselfDave Reisner1-7/+6
For the purposes of accounting and debugging, it's nice to have this around. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
2012-09-30mkinitcpio: munge modules.order before calling depmodDave Reisner1-1/+7
The initramfs installs all modules to kernel/ which devalues the modules.order file. To avoid any edge cases with the wrong module being loaded (because all matching modules for a given alias will be added), make sure that the modules.order file is actually valid. Signed-off-by: Dave Reisner <dreisner@archlinux.org>