summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlolilolicon <lolilolicon@gmail.com>2011-10-01 15:31:00 +0800
committerDan McGee <dan@archlinux.org>2011-10-03 10:59:10 -0500
commit94bc64ae1bd6a51d71829a58a2e1972f629d47fb (patch)
tree99f5823b8099b0205bd4e5491c668d7fa44f7936
parentc4d6688694975c877e6bff3d6147ae23207a0cbe (diff)
downloadpacman-94bc64ae1bd6a51d71829a58a2e1972f629d47fb.tar.xz
makepkg: create tar file for bogus PKGEXT
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. Add the obligatory comment why we don't use bsdtar's compression. Finally, fix mixed-tab-space indentation. Signed-off-by: lolilolicon <lolilolicon@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
-rw-r--r--scripts/makepkg.sh.in26
1 files changed, 10 insertions, 16 deletions
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index 30658b57..84221d0f 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"; cat ;;
esac > "${pkg_file}" || ret=$?
shopt -u nullglob