[pacman-dev] [PATCH] makepkg: allow specifying compression options

Allan McRae allan at archlinux.org
Sat Feb 11 04:56:24 EST 2012


From: Christian Hesse <mail at earthworm.de>

Adds the ability to override the commands used to compressing
compiled and source packages.  This is useful for those wanting
to use alternative implementations of the compression tools or
non-default compression options.

Allan: documented options in man page

Signed-off-by: Allan McRae <allan at archlinux.org>
---

Adjust patch from FS#27430.  Sending to list for final comments.

 doc/makepkg.conf.5.txt |    4 ++++
 etc/makepkg.conf.in    |   10 ++++++++++
 scripts/makepkg.sh.in  |    8 ++++----
 3 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/doc/makepkg.conf.5.txt b/doc/makepkg.conf.5.txt
index db1e6d5..5970946 100644
--- a/doc/makepkg.conf.5.txt
+++ b/doc/makepkg.conf.5.txt
@@ -213,6 +213,10 @@ Options
 	This value is used when querying a package to see who was the builder.
 	It is recommended you change this to your name and email address.
 
+**COMPRESSGZ=**"(gzip -c -f -n)", **COMPRESSBZ2=**"(bzip2 -c -f)", **COMPRESSXZ=**"(xz -c -z -)", **COMPRESSZ=**"(compress -c -f)"::
+	Sets the command and options used when compressing compiled or source
+	packages in the named format.
+
 **PKGEXT=**".pkg.tar.gz", **SRCEXT=**".src.tar.gz"::
 	Sets the compression used when making compiled or source packages. The
 	current valid suffixes are `.tar`, `.tar.gz`, `.tar.bz2`, `.tar.xz`, and
diff --git a/etc/makepkg.conf.in b/etc/makepkg.conf.in
index e9152c8..6c87ea4 100644
--- a/etc/makepkg.conf.in
+++ b/etc/makepkg.conf.in
@@ -107,6 +107,16 @@ PURGE_TARGETS=(usr/{,share}/info/dir .packlist *.pod)
 #GPGKEY=""
 
 #########################################################################
+# COMPRESSION DEFAULTS
+#########################################################################
+#
+COMPRESSGZ=(gzip -c -f -n)
+COMPRESSBZ2=(bzip2 -c -f)
+COMPRESSXZ=(xz -c -z -)
+COMPRESSZ=(compress -c -f)
+
+
+#########################################################################
 # EXTENSION DEFAULTS
 #########################################################################
 #
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index aa98cfa..0fab2a1 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -1292,10 +1292,10 @@ create_package() {
 	# 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.gz)  "${COMPRESSGZ[@]:-gzip -c -f -n}" ;;
+		*tar.bz2) "${COMPRESSBZ2[@]:-bzip2 -c -f}" ;;
+		*tar.xz)  "${COMPRESSXZ[@]:-xz -c -z -}" ;;
+		*tar.Z)   "${COMPRESSZ[@]:-compress -c -f}" ;;
 		*tar)     cat ;;
 		*) warning "$(gettext "'%s' is not a valid archive extension.")" \
 			"$PKGEXT"; cat ;;
-- 
1.7.9



More information about the pacman-dev mailing list