*** This is long -- if you read nothing else, read the early section about backwards incompatible changes *** I'll be tagging mkinitcpio 0.9.0 this weekend and pushing it into [testing] with a rebuild of udev. For those of you who read arch-projects, this will be mostly a recap of a cover letter to a large patchset. Since not everyone reads it and there's been changes since the initial post, it bears repeating. It's mentioned below, but no one will read that far. This release will support /usr/lib/modules for kernel modules as well as /lib/modules, meaning that, barring a kmod rebuild, we'll be able to move kernel modules to /usr. I'll happilly make the rounds and ninja update the assorted mkinitcpio hooks that exist in the repos once this hits core. udev has the only hook that needs an immediate update. Backwards Incompatible Changes - If you have a separate /usr partition, it will no longer be mounted automatically. You MUST add the new 'usr' hook. It should be one of the last hooks in the HOOKS setting of the config file. I'll make sure there's a news item ready when mkinitcpio is moved to core. - The --basedir option has been removed [1]. Deprecated Install Hook API - MODULES=, FILES=, BINARIES=, and SCRIPT= in install hooks should not be used. In a future release, the first three vars will only be valid in the config. SCRIPT= will disappear entirely. - 'checked_modules' in install hooks should not be used. Additionally, while 'all_modules' may not go away, it should not be used either. New Install Hook API - add_checked_modules: Very similar to checked_modules with the advantage that matching modules will be automatically added. An optional '-f' flag allows further filtering via an extended regex and can be specified multiple times. - add_all_modules: Identical to add_checked_modules but with no expectation of using the autodetect whitelist. - add_runscript: takes no arguments, and addes a runtime hook to the image. Via some bash magic, this function figures out who called it and adds the right filename. New Runtime Hooks - I've added a bunch a new options for early userspace hooks: runtime hooks can now, in addition to run_hook, define run_earlyhook, run_latehook, and run_cleanuphook. I've changed how the config is written to the image in order to minimize the amount of re-sourcing of hook files is done. For full details about these, see the manpage [2]. You're still reading? Here's the rest of the new features... - Expanded documentation. Hooks are more thoroughly explained by the man page, and lsinitcpio now has a man page as well. - Error tracking in hooks has been refactored, so that any function named add_* returning non-zero will be caught. - Support for kernel modules in /lib/modules and /usr/lib/modules. This is mostly a hack to support the /usr move and may eventually go away. - Support for RD_TIMESTAMP. A hook will be shipped with systemd to support this. - lsinitcpio keeps pace with the hook changes and will show each individual hook run order on analyze output, should it apply to the image. - lsinitcpio's analyze mode should run faster, especially on larger images. - the shutdown hook no longer copies all modules to /run/initramfs, saving a few MiB of RAM. Cheers, Dave [1] http://mailman.archlinux.org/pipermail/arch-projects/2012-May/002778.html [2] http://projects.archlinux.org/mkinitcpio.git/tree/mkinitcpio.8.txt#n151