[pacman-dev] [PATCH] Add 'compress' compression format as an available option

Dan McGee dan at archlinux.org
Thu Jul 14 16:38:03 EDT 2011


This adds the '.tar.Z' option to both repo-add and makepkg for no other
reason than "why not", and because bsdtar supports it natively with the
'-Z' flag. Also update the documentation accordingly.

Signed-off-by: Dan McGee <dan at archlinux.org>
---

This is about as random as it gets. Did notice we lack some consistency in our
doc/ directory regarding extension quoting, as you can see the two different
styles below (and a third in use elsewhere).

 doc/makepkg.conf.5.txt |    3 ++-
 doc/pacman.conf.5.txt  |   11 ++++++-----
 doc/repo-add.8.txt     |    4 ++--
 scripts/makepkg.sh.in  |    2 ++
 scripts/repo-add.sh.in |    1 +
 5 files changed, 13 insertions(+), 8 deletions(-)

diff --git a/doc/makepkg.conf.5.txt b/doc/makepkg.conf.5.txt
index aa0174c..dce9b59 100644
--- a/doc/makepkg.conf.5.txt
+++ b/doc/makepkg.conf.5.txt
@@ -215,7 +215,8 @@ Options
 
 **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` and `.tar.xz`.
+	current valid suffixes are `.tar`, `.tar.gz`, `.tar,bz2`, `.tar.xz`, and
+	`.tar.Z`.
 	Do not touch these unless you know what you are doing.
 
 See Also
diff --git a/doc/pacman.conf.5.txt b/doc/pacman.conf.5.txt
index bdf0bc8..a28e00f 100644
--- a/doc/pacman.conf.5.txt
+++ b/doc/pacman.conf.5.txt
@@ -225,11 +225,12 @@ directory with these packages so pacman can find it when run with '\--refresh'.
 
 The above command will generate a compressed database named
 '/home/pkgs/custom.db.tar.gz'. Note that the database must be of the form
-'\{treename\}.db.tar.gz', where '\{treename\}' is the name of the section defined in
-the configuration file. That's it! Now configure your custom section in the
-configuration file as shown in the config example above. Pacman will now use your
-package repository. If you add new packages to the repository, remember to
-re-generate the database and use pacman's '\--refresh' option.
+'\{treename\}.db.tar.{ext}', where '\{treename\}' is the name of the section
+defined in the configuration file and '\{ext\}' is a valid compression type as
+documented in linkman:repo-add[8]. That's it! Now configure your custom section
+in the configuration file as shown in the config example above. Pacman will now
+use your package repository. If you add new packages to the repository,
+remember to re-generate the database and use pacman's '\--refresh' option.
 
 For more information on the repo-add command, see ``repo-add \--help'' or
 linkman:repo-add[8].
diff --git a/doc/repo-add.8.txt b/doc/repo-add.8.txt
index 2de5be8..e03384f 100644
--- a/doc/repo-add.8.txt
+++ b/doc/repo-add.8.txt
@@ -31,8 +31,8 @@ can be specified on the command line.
 
 A package database is a tar file, optionally compressed. Valid extensions are
 ``.db'' or ``.files'' followed by an archive extension of ``.tar'',
-``.tar.gz'', ``.tar.bz2'', or ``.tar.xz''. The file does not need to exist, but
-all parent directories must exist.
+``.tar.gz'', ``.tar.bz2'', ``.tar.xz'', or ``.tar.Z''. The file does not need
+to exist, but all parent directories must exist.
 
 
 Common Options
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index 1b132a9..5d9a382 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -1152,6 +1152,7 @@ create_package() {
 		*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 ;;
@@ -1174,6 +1175,7 @@ create_package() {
 	    *tar.gz)  gzip -c -f -n ;;
 	    *tar.bz2) bzip2 -c -f ;;
 	    *tar.xz)  xz -c -z - ;;
+	    *tar.Z)   compress -c -f ;;
 	    *tar)     cat ;;
 	esac > "${pkg_file}" || ret=$?
 
diff --git a/scripts/repo-add.sh.in b/scripts/repo-add.sh.in
index 474e21d..19fe660 100644
--- a/scripts/repo-add.sh.in
+++ b/scripts/repo-add.sh.in
@@ -228,6 +228,7 @@ verify_repo_extension() {
 		*.@(db|files).tar.gz)  TAR_OPT="z" ;;
 		*.@(db|files).tar.bz2) TAR_OPT="j" ;;
 		*.@(db|files).tar.xz)  TAR_OPT="J" ;;
+		*.@(db|files).tar.Z)   TAR_OPT="Z" ;;
 		*.@(db|files).tar)     TAR_OPT="" ;;
 		*) error "$(gettext "'%s' does not have a valid archive extension.")" \
 				"$repofile"
-- 
1.7.6



More information about the pacman-dev mailing list