[arch-projects] [mkinitcpio] [PATCH] Rely on ldconfig to generate library symlinks

Dave Reisner d at falconindy.com
Sun Mar 23 11:45:36 EDT 2014


On Sun, Mar 23, 2014 at 11:43:50AM -0400, Dave Reisner wrote:
> Ignore the intermediate garbage and just let ldconfig do the right
> thing. Because we now depend on ldconfig, subject it to the standard
> error handlers.
> 
> Fixes FS#39560
> ---

Nevermind. I'm not sure this works in all cases...

>  functions  | 9 ++++++---
>  mkinitcpio | 5 ++---
>  2 files changed, 8 insertions(+), 6 deletions(-)
> 
> diff --git a/functions b/functions
> index 2d38815..78ba4c8 100644
> --- a/functions
> +++ b/functions
> @@ -587,9 +587,12 @@ add_binary() {
>              if [[ ! -L $sodep ]]; then
>                  add_file "$sodep" "$sodep" "$(stat -c %a "$sodep")"
>              else
> -                resolved=$(readlink -e "$sodep")
> -                add_symlink "$sodep" "$(readlink "$sodep")"
> -                add_file "$resolved" "$resolved" 755
> +                if resolved=$(readlink -e "$sodep"); then
> +                    add_file "$resolved"
> +                else
> +                    error 'Failed to resolve the symlink target of %s' "$sodep"
> +                    (( ++builderrors ))
> +                fi
>              fi
>          fi
>      done <<< "$lddout"
> diff --git a/mkinitcpio b/mkinitcpio
> index 42abde7..cec9ffb 100755
> --- a/mkinitcpio
> +++ b/mkinitcpio
> @@ -496,14 +496,13 @@ set -o errtrace
>  
>  install_modules "${!_modpaths[@]}"
>  
> +ldconfig -r "$BUILDROOT"
> +
>  # unset errtrace and trap
>  set +o functrace
>  set +o errtrace
>  trap -- ERR
>  
> -# this is simply a nice-to-have -- it doesn't matter if it fails.
> -ldconfig -r "$BUILDROOT" &>/dev/null
> -
>  if [[ $_optgenimg ]]; then
>      build_image "$_optgenimg" "$_optcompress"
>  elif [[ $_opttargetdir ]]; then
> -- 
> 1.9.1
> 


More information about the arch-projects mailing list