[pacman-dev] [PATCH] makepkg: allow epoch to be overridden

Dave Reisner d at falconindy.com
Fri Jul 22 09:55:03 EDT 2011


On Fri, Jul 22, 2011 at 10:04:31PM +1000, Allan McRae wrote:
> We can override pkgver and pkgrel so it is only logical to add epoch
> to that list
> 
> Signed-off-by: Allan McRae <allan at archlinux.org>
> ---
>  scripts/makepkg.sh.in |   17 ++++++++++-------
>  1 files changed, 10 insertions(+), 7 deletions(-)
> 
> diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
> index 4b8f167..88afe7b 100644
> --- a/scripts/makepkg.sh.in
> +++ b/scripts/makepkg.sh.in
> @@ -44,9 +44,9 @@ startdir="$PWD"
>  
>  packaging_options=('strip' 'docs' 'libtool' 'emptydirs' 'zipman' 'purge' 'upx')
>  other_options=('ccache' 'distcc' 'buildflags' 'makeflags')
> -splitpkg_overrides=('pkgver' 'pkgrel' 'pkgdesc' 'arch' 'license' 'groups' \
> -                    'depends' 'optdepends' 'provides' 'conflicts' 'replaces' \
> -                    'backup' 'options' 'install' 'changelog')
> +splitpkg_overrides=('pkgver' 'pkgrel' 'epoch' 'pkgdesc' 'arch' 'license' \
> +                    'groups' 'depends' 'optdepends' 'provides' 'conflicts' \
> +                    'replaces' 'backup' 'options' 'install' 'changelog')
>  readonly -a packaging_options other_options splitpkg_overrides
>  
>  # Options
> @@ -1455,10 +1455,13 @@ check_sanity() {
>  		fi
>  	done || ret=1
>  
> -	if [[ ! $epoch =~ ^[0-9]*$ ]]; then
> -		error "$(gettext "%s must be an integer.")" "epoch"
> -		ret=1
> -	fi
> +	awk -F'=' '/^[[:space:]]*epoch=/ { $1=""; print $0 }' "$BUILDFILE" |
> +	while read i; do
> +		if [[ ! $i =~ ^[0-9]*$ ]]; then
> +			error "$(gettext "%s must be an integer.")" "epoch"
> +			return 1
> +		fi
> +	done || ret=1
>  
>  	if [[ $arch != 'any' ]]; then
>  		if ! in_array $CARCH ${arch[@]}; then
> -- 
> 1.7.6
> 
> 

I see 2 issues:
1) s/return/exit/ or remove the '|| ret=1'. Both are not needed. return,
even from inside a subshell will work as expected.
2) This doesn't handle comments after the epoch value.

  awk -F'=' '/^[[:space:]]*epoch=/ { $1=""; print $0 }' "$BUILDFILE" | {
    read i _
    if [[ $i != +([[:digit:]]) ]]; then
      error "$(gettext "%s must be an integer.")" "epoch"
      return 1
    fi
  }



More information about the pacman-dev mailing list