[pacman-dev] [PATCH 2/7] libmakepkg: stop printsrcinfo generating empty values
Morgan Adamiec
morganamilo at gmail.com
Fri Jun 8 19:42:11 UTC 2018
On Fri, 8 Jun 2018 at 20:33, Eli Schwartz <eschwartz at archlinux.org> wrote:
>
> On 06/08/2018 02:18 PM, morganamilo wrote:
> > When a split package overriddes an array using += and the array does not
> > exist globally, makepkg --printsrcinfo will print the field with an
> > empty vlaue before printing the acual values.
> >
> > For exampple: having `depends+=(foo bar)` will generate:
> > depends =
> > depends = foo
> > depends = bar
> >
> > Explicity check for empty array values and only print the values that
> > are not empty.
> >
> > Signed-off-by: morganamilo <morganamilo at gmail.com>
> > ---
> > scripts/libmakepkg/srcinfo.sh.in | 6 +++++-
> > 1 file changed, 5 insertions(+), 1 deletion(-)
> >
> > diff --git a/scripts/libmakepkg/srcinfo.sh.in b/scripts/libmakepkg/srcinfo.sh.in
> > index 509c4860..6a49be37 100644
> > --- a/scripts/libmakepkg/srcinfo.sh.in
> > +++ b/scripts/libmakepkg/srcinfo.sh.in
> > @@ -44,7 +44,11 @@ srcinfo_write_attr() {
> > attrvalues=("${attrvalues[@]#[[:space:]]}")
> > attrvalues=("${attrvalues[@]%[[:space:]]}")
> >
> > - printf "\t$attrname = %s\n" "${attrvalues[@]}"
> > + for val in "${attrvalues[@]}"; do
> > + if [[ ! -z ${val// /} ]]; then
> > + printf "\t$attrname = %s\n" "$val"
> > + fi
> > + done
>
> This is odd, I wonder why get_pkgbuild_attribute is returning an
> array=('' foo bar) in this case? We should probably fix it more directly.
>
> --
> Eli Schwartz
> Bug Wrangler and Trusted User
>
In my investigation it came down to lines like this
https://git.archlinux.org/pacman.git/tree/scripts/libmakepkg/srcinfo.sh.in#n55
It seems appending an array to a non array value generates an array
with the first value being an empty string then the values appended.
You can reproduce it with:
foo=
foo+=(bar)
echo "${#foo[@]}"
I did think about fixing it there, but that function is used all over
and I didn't want to break something.
More information about the pacman-dev
mailing list