[pacman-dev] [PATCH] makepkg: treat pkgrel more similarly to pkgver

Dan McGee dpmcgee at gmail.com
Fri Aug 29 18:16:11 EDT 2014


On Fri, Aug 29, 2014 at 1:07 PM, Luke Shumaker <lukeshu at sbcglobal.net>
wrote:

> This is perfectly fine with libalpm; it was only makepkg that was more
> strict with pkgrel than pkgver.
>
Correct.

However, did you look at the NEWS file? This was an explicit change made in
pacman 4.1.0 (commit 708a22757) to tighten the format of this value. I'd be
-1 on this change, unless someone can show me a real reason pkgrel should
be complicated, given this is something the packager influences and we're
not trying to copy or match an upstream value.


>
> Further, the former error message about invalid pkgrel formats claimed that
> pkgrel was a "decimal", which would mean that `1.1 == 1.10`.  This was not
> the case; alpm parsed pkgrel as a version, not a decimal.  In that light,
> enforcing /[0-9]+(\.([0-9]+)?/ on a version spec seems silly.
> ---
>  doc/PKGBUILD.5.txt      |  4 ++--
>  scripts/makepkg.sh.in   |  5 +----
>  test/util/vercmptest.sh | 18 ++++++++++++++++++
>  3 files changed, 21 insertions(+), 6 deletions(-)
>
> diff --git a/doc/PKGBUILD.5.txt b/doc/PKGBUILD.5.txt
> index e2389cb..159adbb 100644
> --- a/doc/PKGBUILD.5.txt
> +++ b/doc/PKGBUILD.5.txt
> @@ -48,7 +48,7 @@ similar to `$_basekernver`.
>
>  *pkgver*::
>         The version of the software as released from the author (e.g.,
> '2.7.1').
> -       The variable is not allowed to contain colons or hyphens.
> +       The variable is not allowed to contain colons, hyphens or
> whitespace.
>  +
>  The `pkgver` variable can be automatically updated by providing a
> `pkgver()`
>  function in the PKGBUILD that outputs the new package version.
> @@ -62,7 +62,7 @@ below).
>         allows package maintainers to make updates to the package's
> configure
>         flags, for example. This is typically set to '1' for each new
> upstream
>         software release and incremented for intermediate PKGBUILD
> updates. The
> -       variable is not allowed to contain hyphens.
> +       variable is not allowed to contain colons, hyphens or whitespace.
>
>  *pkgdesc*::
>         This should be a brief description of the package and its
> functionality.
> diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
> index 8e8a64c..552d305 100644
> --- a/scripts/makepkg.sh.in
> +++ b/scripts/makepkg.sh.in
> @@ -2337,10 +2337,7 @@ lint_pkgrel() {
>                 return 1
>         fi
>
> -       if [[ $pkgrel != +([0-9])?(.+([0-9])) ]]; then
> -               error "$(gettext "%s must be a decimal, not %s.")"
> "pkgrel" "$pkgrel"
> -               return 1
> -       fi
> +       validate_pkgver "$pkgrel"
>  }
>
>  lint_pkgver() {
> diff --git a/test/util/vercmptest.sh b/test/util/vercmptest.sh
> index 9032cbf..32fb3e7 100755
> --- a/test/util/vercmptest.sh
> +++ b/test/util/vercmptest.sh
> @@ -142,6 +142,24 @@ runtest 1:1.0    1.0   1
>  runtest 1:1.0    1.1   1
>  runtest 1:1.1    1.1   1
>
> +# complex pkgrel values
> +runtest 1-1.5.0    1-1.5.0     0
> +runtest 1-1.5.1    1-1.5.0     1
> +runtest 1-1.5.1    1-1.5       1
> +runtest 1-1.5b     1-1.5      -1
> +runtest 1-1.5b     1-1.5.1    -1
> +runtest 1-1.0a     1-1.0alpha -1
> +runtest 1-1.0alpha 1-1.0b     -1
> +runtest 1-1.0b     1-1.0beta  -1
> +runtest 1-1.0beta  1-1.0rc    -1
> +runtest 1-1.0rc    1-1.0      -1
> +runtest 1-1.5.a    1-1.5       1
> +runtest 1-1.5.b    1-1.5.a     1
> +runtest 1-1.5.1    1-1.5.b     1
> +runtest 1-2        1-2.par1    1
> +runtest 1-2        1-2.par1    1
> +runtest 1-3        1-2.par1   -1
> +
>  #END TESTS
>
>  if [[ $failure -eq 0 ]]; then
> --
> 2.1.0
>
>


More information about the pacman-dev mailing list