On 10/4/19 3:50 pm, Eli Schwartz wrote:
> In commit b5191ea140386dd9b73e4509ffa9a6d347c1b5fa we moved to using
> shell globbing to print package files for a couple of reasons including
> reproducible packaging of .METADATA files.
> 
> Unfortunately, this only works reliably when the glob pattern does not
> resolve to a symlinked directory due to a change in the bash 5.0
> release. Note that the previous, desired behavior was rather to merely
> refuse to recurse into symlinked directories, but due to an unrelated
> issue, the symlink handling for globstar was reworked in a way that had
> this side effect.
> See https://lists.gnu.org/archive/html/bug-bash/2019-04/msg00015.html
> for discussion; this may be fixed at some point, but bash 5.0 is broken
> either way.
> 
> The appropriate way of handling this seems to be to use **/* to match
> instead; this produces the same results on both bash 4 and bash 5, as
> the ** matches any leading directory component (or none), and the *
> matches any file, directory, or symlink to either one.
> 
> Fixes FS#62278
> 
> Signed-off-by: Eli Schwartz <[email protected]>

OK.

> ---
>  scripts/makepkg.sh.in | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
> index 4f096a36..fd06ce02 100644
> --- a/scripts/makepkg.sh.in
> +++ b/scripts/makepkg.sh.in
> @@ -666,7 +666,8 @@ list_package_files() {
>       (
>               export LC_COLLATE=C
>               shopt -s dotglob globstar
> -             printf '%s\0' **
> +             # bash 5.0 only works with combo directory + file globs
> +             printf '%s\0' **/*
>       )
>  }
>  
> 

Reply via email to