On Thu, Nov 17, 2011 at 08:28:27PM -0600, Dan McGee wrote: > On Thu, Nov 17, 2011 at 1:09 PM, Dave Reisner <[email protected]> wrote: > > Declarations such as: > > > > pkgver=2.11 # foo > > > > will work, but trimming off the comment (without trimming the trailing > > whitespace) will result in an incorrect validation error. Bash automatically > > trims this trailing whitespace and does the right thing under the covers, > > so we should honor this as well. > > > > NB: We don't need to worry about leading whitespace because it will cause a > > syntax error (when unquoted), or fail validation (when quoted). > > > > Signed-off-by: Dave Reisner <[email protected]> > > --- > > Too late to squeeze this into maint? > Nope, no string changes. Normally a test and signoff from Allan would > go a long way to boost my confidence in last-minute changes, but he is > gone, right? Anyone else want to give this patch a spin with PKGBUILDs > testing the above cases?
Just gave it a try and tested it with a couple of PKGBUILDs in the Arch repositories, as well as test cases for the above-mentioned issue. The only thing I would change is the commit message: This only fixes cases of trailing whitespace if there is *no* comment (whitespace followed by a comment is already trimmed by `sed "s/[[:space:]]*#.*//"`). Apart from that: Signed-off-by: Lukas Fleischer <[email protected]> > > > scripts/makepkg.sh.in | 4 ++-- > > 1 files changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in > > index 085fbb9..39ce017 100644 > > --- a/scripts/makepkg.sh.in > > +++ b/scripts/makepkg.sh.in > > @@ -1441,7 +1441,7 @@ check_sanity() { > > > > awk -F'=' '$1 ~ /^[[:space:]]*pkgver$/' "$BUILDFILE" | sed > > "s/[[:space:]]*#.*//" | > > while IFS='=' read -r _ i; do > > - eval i=\"$(sed 's/^\(['\''"]\)\(.*\)\1$/\2/' <<< "$i")\" > > + eval i=\"$(sed 's/^\(['\''"]\)\(.*\)\1$/\2/' <<< > > "${i%%+([[:space:]])}")\" > > if [[ $i = *[[:space:]:-]* ]]; then > > error "$(gettext "%s is not allowed to contain > > colons, hyphens or whitespace.")" "pkgver" > > return 1 > > @@ -1450,7 +1450,7 @@ check_sanity() { > > > > awk -F'=' '$1 ~ /^[[:space:]]*pkgrel$/' "$BUILDFILE" | sed > > "s/[[:space:]]*#.*//" | > > while IFS='=' read -r _ i; do > > - eval i=\"$(sed 's/^\(['\''"]\)\(.*\)\1$/\2/' <<< "$i")\" > > + eval i=\"$(sed 's/^\(['\''"]\)\(.*\)\1$/\2/' <<< > > "${i%%+([[:space:]])}")\" > > if [[ $i = *[[:space:]-]* ]]; then > > error "$(gettext "%s is not allowed to contain > > hyphens or whitespace.")" "pkgrel" > > return 1 > > -- > > 1.7.7.3 >
