[pacman-dev] [PATCH] makepkg: create tar file for bogus PKGEXT

Allan McRae allan at archlinux.org
Fri Sep 30 02:20:39 EDT 2011


On 30/09/11 15:23, lolilolicon wrote:
> If PKGEXT is not one of the recognized tar*'s, create_package() would
> create an empty package file and fail, since bsdtar on the left side of
> the pipe returns 141 on SIGPIPE (broken pipe).
> This patch changes the behavior for an invalid PKGEXT.  A warning is
> printed on stderr, and a tar file is created.
> Also retire the obsolete $EXT variable.
> Also add the obligatory comment why we don't use bsdtar's compression.
>
> Signed-off-by: lolilolicon<lolilolicon at gmail.com>
> ---
>   scripts/makepkg.sh.in |   26 ++++++++++----------------
>   1 files changed, 10 insertions(+), 16 deletions(-)
>
> diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
> index cc06baa..213ac32 100644
> --- a/scripts/makepkg.sh.in
> +++ b/scripts/makepkg.sh.in
> @@ -1256,17 +1256,6 @@ create_package() {
>   	# tar it up
>   	msg2 "$(gettext "Compressing package...")"
>
> -	local EXT
> -	case "$PKGEXT" in
> -		*tar.gz)  EXT=${PKGEXT%.gz} ;;
> -		*tar.bz2) EXT=${PKGEXT%.bz2} ;;
> -		*tar.xz)  EXT=${PKGEXT%.xz} ;;
> -		*tar.Z)   EXT=${PKGEXT%.Z} ;;
> -		*tar)     EXT=${PKGEXT} ;;
> -		*) warning "$(gettext "'%s' is not a valid archive extension.")" \
> -		"$PKGEXT" ; EXT=$PKGEXT ;;
> -	esac
> -
>   	local fullver=$(get_full_version)
>   	local pkg_file="$PKGDEST/${nameofpkg}-${fullver}-${PKGARCH}${PKGEXT}"
>   	local ret=0
> @@ -1279,13 +1268,18 @@ create_package() {
>   	shopt -s nullglob
>   	# TODO: Maybe this can be set globally for robustness
>   	shopt -s -o pipefail
> +	# bsdtar's gzip compression always saves the time stamp, making one
> +	# archive created using the same command line distinct from another.
> +	# Disable bsdtar compression and use gzip -n for now.
>   	bsdtar -cf - $comp_files * |
>   	case "$PKGEXT" in
> -	    *tar.gz)  gzip -c -f -n ;;
> -	    *tar.bz2) bzip2 -c -f ;;
> -	    *tar.xz)  xz -c -z - ;;
> -	    *tar.Z)   compress -c -f ;;
> -	    *tar)     cat ;;
> +		*tar.gz)  gzip -c -f -n ;;
> +		*tar.bz2) bzip2 -c -f ;;
> +		*tar.xz)  xz -c -z - ;;
> +		*tar.Z)   compress -c -f ;;
> +		*tar)     cat ;;
> +		*) warning "$(gettext "'%s' is not a valid archive extension."<&-)" \
> +		"$PKGEXT"<&->&2; cat ;;

I have no idea what all the <&- etc does here...

>   	esac>  "${pkg_file}" || ret=$?
>
>   	shopt -u nullglob



More information about the pacman-dev mailing list