[arch-projects] [mkinitcpio][PATCH 1/3] Handle softdeps in modules
Dave Reisner
d at falconindy.com
Mon Jun 27 12:27:40 UTC 2016
On Mon, Jun 27, 2016 at 08:19:35AM -0400, Dave Reisner wrote:
> modinfo outputs softdeps which we can add if they exist (failing
> quietly on not-found). this obviates the need for some of our own
> module quirks.
>
> The output of modinfo can take many forms, as it's nearly freeform text
> in the .modinfo section of the kernel module. The basic form is:
>
> softdep: pre: foo
>
> But it might also be:
>
> softdep: pre: foo bar post: baz
>
> Or:
>
> softdep: pre: foo
> softdep: post: bar
>
> So just parse the entire line, discarding anything that ends with a ':'.
> ---
Replying to myself, because apparently I'm bad at rebasing my own work.
> functions | 17 ++++++++++++-----
> 1 file changed, 12 insertions(+), 5 deletions(-)
>
> diff --git a/functions b/functions
> index 362d07b..500dcc0 100644
> --- a/functions
> +++ b/functions
> @@ -348,7 +348,7 @@ add_module() {
> # discovered and added.
> # $1: module name
>
> - local module= path= deps= field= value= firmware=()
> + local module= path= softdeps= deps= field= value= firmware=()
> local ign_errors=0
>
> [[ $KERNELVERSION == none ]] && return 0
> @@ -375,6 +375,14 @@ add_module() {
> firmware)
> firmware+=("$value")
> ;;
> + softdep)
> + read -ra softdeps <<<"$value"
> + for module in "${softdeps[@]}"; do
> + [[ $module == *: ]] && continue
> + add_module "$module"
The arg to add_module needs to be suffixed with '?'
> + done
> + add_module "$softdep?"
This add_module call doesn't belong here...
> + ;;
> esac
> done < <(modinfo -b "$_optmoduleroot" -k "$KERNELVERSION" -0 "$module" 2>/dev/null)
>
> @@ -403,9 +411,8 @@ add_module() {
> ocfs2)
> add_module "configfs?"
> ;;
> - btrfs|libcrc32c)
> - add_module "crc32c_intel?"
> - add_module "crc32c?"
> + btrfs)
> + add_module "libcrc32c?"
> ;;
> esac
> }
> @@ -780,7 +787,7 @@ install_modules() {
> depmod -b "$BUILDROOT" "$KERNELVERSION"
>
> # remove all non-binary module.* files (except devname for on-demand module loading)
> - rm "$moduledest"/modules.!(*.bin|devname)
> + rm "$moduledest"/modules.!(*.bin|devname|softdep)
> }
>
> # vim: set ft=sh ts=4 sw=4 et:
> --
> 2.8.3
More information about the arch-projects
mailing list