Your message dated Sun, 24 Oct 2010 10:32:14 +0000
with message-id <[email protected]>
and subject line Bug#600230: fixed in reprepro 4.3.0-1
has caused the Debian Bug report #600230,
regarding please add support for lzip
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
600230: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=600230
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: reprepro
Severity: wishlist
Tag: patch

Hi,

it would be nice if reprepro would support managing lzip compress debian
packages[0].

Eventhough lzip support seems to not be accepted anytime soon in dpkg,
it would make my life easier if reprepro would support it anyway, so it
don't need to carry along the patch all the time seperately.

Let me know if there's anything missing in the attached patch that you
would like me to correct.

Regards,
Daniel

[0] http://bugs.debian.org/556960, http://bugs.debian.org/600094

-- 
Address:        Daniel Baumann, Burgunderstrasse 3, CH-4562 Biberist
Email:          [email protected]
Internet:       http://people.panthera-systems.net/~daniel-baumann/
diff --git a/Makefile.in b/Makefile.in
index e223162..e83dc1e 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -706,6 +706,10 @@ dist-xz: distdir
 	tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
 	$(am__remove_distdir)
 
+dist-lzip: distdir
+	tardir=$(distdir) && $(am__tar) | lzip -c >$(distdir).tar.lz
+	$(am__remove_distdir)
+
 dist-tarZ: distdir
 	tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
 	$(am__remove_distdir)
@@ -736,6 +740,8 @@ distcheck: dist
 	  lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
 	*.tar.xz*) \
 	  xz -dc $(distdir).tar.xz | $(am__untar) ;;\
+	*.tar.lz*) \
+	  lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
 	*.tar.Z*) \
 	  uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
 	*.shar.gz*) \
@@ -912,7 +918,7 @@ uninstall-am: uninstall-binPROGRAMS
 	all all-am am--refresh check check-am clean clean-binPROGRAMS \
 	clean-generic clean-local ctags ctags-recursive dist dist-all \
 	dist-bzip2 dist-gzip dist-lzma dist-shar dist-tarZ dist-xz \
-	dist-zip distcheck distclean distclean-compile \
+	dist-lzip dist-zip distcheck distclean distclean-compile \
 	distclean-generic distclean-hdr distclean-tags distcleancheck \
 	distdir distuninstallcheck dvi dvi-am html html-am info \
 	info-am install install-am install-binPROGRAMS install-data \
diff --git a/debian/control b/debian/control
index 318fe4e..4a5d75c 100644
--- a/debian/control
+++ b/debian/control
@@ -16,7 +16,7 @@ Package: reprepro
 Architecture: any
 Depends: ${shlibs:Depends}, ${reprepro:Depends}, ${misc:Depends}
 Recommends: apt
-Suggests: gnupg-agent, inoticoming, lzma, xz-utils
+Suggests: gnupg-agent, inoticoming, lzip (>= 1.11-2), lzma, xz-utils
 Description: Debian package repository producer
  reprepro is a tool to manage a repository of Debian packages
  (.deb, .udeb, .dsc, ...). It stores files either being
diff --git a/docs/changestool.1 b/docs/changestool.1
index 1fffc8c..aa3cc6d 100644
--- a/docs/changestool.1
+++ b/docs/changestool.1
@@ -80,6 +80,10 @@ into .diff.lzma, .tar.lzma or .tar.lzma within .debs.
 External uncompressor used to uncompress xz files to look
 into .diff.xz, .tar.xz or .tar.xz within .debs.
 .TP
+.B \-\-lunzip \fIcommand\fP
+External uncompressor used to uncompress lzip files to look
+into .diff.lz, .tar.lz or .tar.lz within .debs.
+.TP
 .B \-\-bunzip2 \fIcommand\fP
 External uncompressor used to uncompress bz2 when compiled without
 libbz2.
diff --git a/docs/reprepro.1 b/docs/reprepro.1
index 1784ea5..022e2bc 100644
--- a/docs/reprepro.1
+++ b/docs/reprepro.1
@@ -374,6 +374,15 @@ xz files will not be possible.
 The program has to accept the compressed file as stdin and write
 the uncompressed file into stdout.
 .TP
+.BI \-\-lunzip " lzip-uncompressor"
+When trying to uncompress or read \fPlzip\fP compressed files, this program
+will be used.
+The default value is \fBlunzip\fP.
+If the program is not found or is \fBNONE\fP (all-uppercase) then uncompressing
+lz files will not be possible.
+The program has to accept the compressed file as stdin and write
+the uncompressed file into stdout.
+.TP
 .BI \-\-list\-max " count"
 Limits the output of \fBlist\fP, \fBlistmatched\fP and \fBlistfilter\fP to the first \fIcount\fP
 results.
diff --git a/docs/reprepro.bash_completion b/docs/reprepro.bash_completion
index 51396da..8c07ca8 100644
--- a/docs/reprepro.bash_completion
+++ b/docs/reprepro.bash_completion
@@ -118,7 +118,7 @@ _reprepro()
 	--section -S --priority -P --component -C\
 	--architecture -A --type -T --export --waitforlock \
 	--spacecheck --safetymargin --dbsafetymargin\
-	--gunzip --bunzip2 --unlzma --unxz --gnupghome --list-format --list-skip --list-max'
+	--gunzip --bunzip2 --unlzma --unxz --lunzip --gnupghome --list-format --list-skip --list-max'
 
 	i=1
 	prev=""
@@ -166,7 +166,7 @@ _reprepro()
 				confdir="${COMP_WORDS[i+1]}"
 				i=$((i+2))
 				;;
-			-i|--ignore|--unignore|--methoddir|--distdir|--dbdir|--listdir|--section|-S|--priority|-P|--component|-C|--architecture|-A|--type|-T|--export|--waitforlock|--spacecheck|--checkspace|--safetymargin|--dbsafetymargin|--logdir|--gunzip|--bunzip2|--unlzma|--unxz|--gnupghome|--morguedir)
+			-i|--ignore|--unignore|--methoddir|--distdir|--dbdir|--listdir|--section|-S|--priority|-P|--component|-C|--architecture|-A|--type|-T|--export|--waitforlock|--spacecheck|--checkspace|--safetymargin|--dbsafetymargin|--logdir|--gunzip|--bunzip2|--unlzma|--unxz|--lunzip|--gnupghome|--morguedir)
 
 				prev="$cur"
 				i=$((i+2))
@@ -419,7 +419,7 @@ _reprepro()
 		__uncompress)
 			# first argument is method
 			if [[ $i -eq $COMP_CWORD ]] ; then
-				COMPREPLY=( $( compgen -W ".gz .bz2 .lzma .xz" -- $cur ) )
+				COMPREPLY=( $( compgen -W ".gz .bz2 .lzma .xz .lz" -- $cur ) )
 				return 0
 			fi
 			if [[ $(( $i + 1 )) -eq $COMP_CWORD ]] ; then
diff --git a/docs/reprepro.zsh_completion b/docs/reprepro.zsh_completion
index 9a11a42..c55c5ab 100644
--- a/docs/reprepro.zsh_completion
+++ b/docs/reprepro.zsh_completion
@@ -328,6 +328,7 @@ _arguments \
 	'--bunzip2[external Program to extract .bz2 files]:bunzip binary:_files' \
 	'--unlzma[external Program to extract .lzma files]:unlzma binary:_files' \
 	'--unxz[external Program to extract .xz files]:unxz binary:_files' \
+	'--lunzip[external Program to extract .lz files]:lunzip binary:_files' \
 	'--list-format[Format for list output]:listfilter format:' \
 	'--list-skip[Number of packages to skip in list output]:list skip:' \
 	'--list-max[Maximum number of packages in list output]:list max:' \
@@ -484,7 +485,7 @@ case "$state" in
 		;;
 	  (__uncompress)
 		if [[ "$state" = "first argument" ]] ; then
-			uncompressions=(.gz .bz2 .lzma .xz)
+			uncompressions=(.gz .bz2 .lzma .xz .lz)
 		      	_wanted -V 'uncompressions' expl 'uncompression' compadd -a uncompressions
 		elif [[ "$state" = "second argument" ]] ; then
 			_files
diff --git a/globals.h b/globals.h
index f2eb855..4f0da3e 100644
--- a/globals.h
+++ b/globals.h
@@ -84,6 +84,6 @@ extern struct global_config {
 	int showdownloadpercent;
 } global;
 
-enum compression { c_none, c_gzip, c_bzip2, c_lzma, c_xz, c_COUNT };
+enum compression { c_none, c_gzip, c_bzip2, c_lzma, c_xz, c_lunzip, c_COUNT };
 
 #endif
diff --git a/main.c b/main.c
index 68f2b57..838f82f 100644
--- a/main.c
+++ b/main.c
@@ -108,6 +108,7 @@ static char /*...@only@*/
 	*bunzip2 = NULL,
 	*unlzma = NULL,
 	*unxz = NULL,
+	*lunzip = NULL,
 	*gnupghome = NULL;
 static int 	listmax = -1;
 static int 	listskip = 0;
@@ -134,7 +135,7 @@ static off_t reservedotherspace = 1024*1024;
  * to change something owned by lower owners. */
 enum config_option_owner config_state,
 #define O(x) owner_ ## x = CONFIG_OWNER_DEFAULT
-O(fast), O(x_morguedir), O(x_outdir), O(x_basedir), O(x_distdir), O(x_dbdir), O(x_listdir), O(x_confdir), O(x_logdir), O(x_methoddir), O(x_section), O(x_priority), O(x_component), O(x_architecture), O(x_packagetype), O(nothingiserror), O(nolistsdownload), O(keepunusednew), O(keepunreferenced), O(keeptemporaries), O(keepdirectories), O(askforpassphrase), O(skipold), O(export), O(waitforlock), O(spacecheckmode), O(reserveddbspace), O(reservedotherspace), O(guessgpgtty), O(verbosedatabase), O(gunzip), O(bunzip2), O(unlzma), O(unxz), O(gnupghome), O(listformat), O(listmax), O(listskip), O(onlysmalldeletes);
+O(fast), O(x_morguedir), O(x_outdir), O(x_basedir), O(x_distdir), O(x_dbdir), O(x_listdir), O(x_confdir), O(x_logdir), O(x_methoddir), O(x_section), O(x_priority), O(x_component), O(x_architecture), O(x_packagetype), O(nothingiserror), O(nolistsdownload), O(keepunusednew), O(keepunreferenced), O(keeptemporaries), O(keepdirectories), O(askforpassphrase), O(skipold), O(export), O(waitforlock), O(spacecheckmode), O(reserveddbspace), O(reservedotherspace), O(guessgpgtty), O(verbosedatabase), O(gunzip), O(bunzip2), O(unlzma), O(unxz), O(lunzip), O(gnupghome), O(listformat), O(listmax), O(listskip), O(onlysmalldeletes);
 #undef O
 
 #define CONFIGSET(variable,value) if(owner_ ## variable <= config_state) { \
@@ -282,6 +283,8 @@ ACTION_N(n, n, n, dumpuncompressors) {
 			case c_xz:
 				printf("not supported (install xz-utils or use --unxz to tell where unxz is).\n");
 				break;
+			case c_lunzip:
+				printf("not supported (install lzip or use --lunzip to tell where lunzip is).\n");
 			default:
 				printf("not supported\n");
 		}
@@ -3211,7 +3214,7 @@ static const struct action {
 	{"__dumpuncompressors",	A_N(dumpuncompressors),
 		0, 0, "__dumpuncompressors"},
 	{"__uncompress",	A_N(uncompress),
-		3, 3, "__uncompress .gz|.bz2|.lzma|.xz <compressed-filename> <into-filename>"},
+		3, 3, "__uncompress .gz|.bz2|.lzma|.xz|.lz <compressed-filename> <into-filename>"},
 	{"__extractsourcesection", A_N(extractsourcesection),
 		1, 1, "__extractsourcesection <.dsc-file>"},
 	{"__extractcontrol",	A_N(extractcontrol),
@@ -3651,6 +3654,7 @@ LO_GUNZIP,
 LO_BUNZIP2,
 LO_UNLZMA,
 LO_UNXZ,
+LO_LZIP,
 LO_GNUPGHOME,
 LO_LISTFORMAT,
 LO_LISTSKIP,
@@ -3926,6 +3930,9 @@ static void handle_option(int c, const char *argument) {
 				case LO_UNXZ:
 					CONFIGDUP(unxz, argument);
 					break;
+				case LO_LZIP:
+					CONFIGDUP(lunzip, argument);
+					break;
 				case LO_GNUPGHOME:
 					CONFIGDUP(gnupghome, argument);
 					break;
@@ -4183,6 +4190,7 @@ int main(int argc,char *argv[]) {
 		{"bunzip2", required_argument, &longoption, LO_BUNZIP2},
 		{"unlzma", required_argument, &longoption, LO_UNLZMA},
 		{"unxz", required_argument, &longoption, LO_UNXZ},
+		{"lunzip", required_argument, &longoption, LO_LZIP},
 		{"gnupghome", required_argument, &longoption, LO_GNUPGHOME},
 		{"list-format", required_argument, &longoption, LO_LISTFORMAT},
 		{"list-skip", required_argument, &longoption, LO_LISTSKIP},
@@ -4306,11 +4314,14 @@ int main(int argc,char *argv[]) {
 		unlzma = expand_plus_prefix(unlzma, "unlzma", "boc", true);
 	if( unxz != NULL && unxz[0] == '+' )
 		unxz = expand_plus_prefix(unxz, "unxz", "boc", true);
-	uncompressions_check(gunzip, bunzip2, unlzma, unxz);
+	if( lunzip != NULL && lunzip[0] == '+' )
+		lunzip = expand_plus_prefix(lunzip, "lunzip", "boc", true);
+	uncompressions_check(gunzip, bunzip2, unlzma, unxz, lunzip);
 	free(gunzip);
 	free(bunzip2);
 	free(unlzma);
 	free(unxz);
+	free(lunzip);
 
 	a = all_actions;
 	while( a->name != NULL ) {
diff --git a/remoterepository.c b/remoterepository.c
index 5881296..b56d0f6 100644
--- a/remoterepository.c
+++ b/remoterepository.c
@@ -900,7 +900,8 @@ static retvalue queue_next_without_release(struct remote_distribution *rd, struc
 			{ .diff = false, .force = false, .compression = c_bzip2 },
 			{ .diff = false, .force = false, .compression = c_none },
 			{ .diff = false, .force = false, .compression = c_lzma },
-			{ .diff = false, .force = false, .compression = c_xz }
+			{ .diff = false, .force = false, .compression = c_xz },
+			{ .diff = false, .force = false, .compression = c_lunzip }
 		}
 	};
 	int e;
diff --git a/tool.c b/tool.c
index b6ab2f2..758fc59 100644
--- a/tool.c
+++ b/tool.c
@@ -2864,12 +2864,13 @@ int main(int argc,char *argv[]) {
 	static const struct option longopts[] = {
 		{"help", no_argument, NULL, 'h'},
 		{"create", no_argument, NULL, 'C'},
-		{"create-with-all-fields", no_argument, &longoption, 5},
+		{"create-with-all-fields", no_argument, &longoption, 6},
 		{"searchpath", required_argument, NULL, 's'},
 		{"gunzip", required_argument, &longoption, 1},
 		{"bunzip2", required_argument, &longoption, 2},
 		{"unlzma", required_argument, &longoption, 3},
 		{"unxz", required_argument, &longoption, 4},
+		{"lunzip", required_argument, &longoption, 5},
 		{NULL, 0, NULL, 0},
 	};
 	int c;
@@ -2879,7 +2880,7 @@ int main(int argc,char *argv[]) {
 	bool all_fields = false;
 	struct strlist searchpath;
 	struct changes *changesdata IFSTUPIDCC(=NULL);
-	char *gunzip = NULL, *bunzip2 = NULL, *unlzma = NULL, *unxz = NULL;
+	char *gunzip = NULL, *bunzip2 = NULL, *unlzma = NULL, *unxz = NULL, *lunzip = NULL;
 	retvalue r;
 
 	strlist_init(&searchpath);
@@ -2901,6 +2902,9 @@ int main(int argc,char *argv[]) {
 						unxz = strdup(optarg);
 						break;
 					case 5:
+						lunzip = strdup(optarg);
+						break;
+					case 6:
 						create_file = true;
 						all_fields = true;
 						break;
@@ -2925,7 +2929,7 @@ int main(int argc,char *argv[]) {
 		about(false);
 	}
 	signature_init(false);
-	uncompressions_check(gunzip, bunzip2, unlzma, unxz);
+	uncompressions_check(gunzip, bunzip2, unlzma, unxz, lunzip);
 
 	changesfilename = argv[optind];
 	if( strcmp(changesfilename,"-") != 0 && !endswith(changesfilename,".changes") ) {
diff --git a/uncompression.c b/uncompression.c
index f6699c2..1d12f5a 100644
--- a/uncompression.c
+++ b/uncompression.c
@@ -39,14 +39,14 @@
 #include "uncompression.h"
 
 const char * const uncompression_suffix[c_COUNT] = {
-	"", ".gz", ".bz2", ".lzma", ".xz" };
+	"", ".gz", ".bz2", ".lzma", ".xz", ".lz" };
 
 /* So help messages can hint what option to try */
 const char * const uncompression_option[c_COUNT] = {
-	NULL, NULL, "--bunzip2", "--unlzma", "--unxz" };
+	NULL, NULL, "--bunzip2", "--unlzma", "--unxz", "--lunzip" };
 /* how those are called in the config file */
 const char * const uncompression_config[c_COUNT] = {
-	".", ".gz", ".bz2", ".lzma", ".xz" };
+	".", ".gz", ".bz2", ".lzma", ".xz", "lz" };
 
 
 /*...@null@*/ char *extern_uncompressors[c_COUNT] = {
@@ -340,11 +340,12 @@ static void search_binary(/*...@null@*/const char *setting, const char *default_pro
 }
 
 /* check for existance of external programs */
-void uncompressions_check(const char *gunzip, const char *bunzip2, const char *unlzma, const char *unxz) {
+void uncompressions_check(const char *gunzip, const char *bunzip2, const char *unlzma, const char *unxz, const char *lunzip) {
 	search_binary(gunzip,  "gunzip",  &extern_uncompressors[c_gzip]);
 	search_binary(bunzip2, "bunzip2", &extern_uncompressors[c_bzip2]);
 	search_binary(unlzma,  "unlzma",  &extern_uncompressors[c_lzma]);
 	search_binary(unxz,    "unxz",    &extern_uncompressors[c_xz]);
+	search_binary(lunzip,    "lunzip",    &extern_uncompressors[c_lunzip]);
 }
 
 static inline retvalue builtin_uncompress(const char *compressed, const char *destination, enum compression compression) {
diff --git a/uncompression.h b/uncompression.h
index ba8a671..c77c519 100644
--- a/uncompression.h
+++ b/uncompression.h
@@ -55,7 +55,7 @@ retvalue uncompress_fdopen(/*...@out@*/struct compressedfile **, int, off_t, enum c
 /**** general initialisation ****/
 
 /* check for existance of external programs */
-void uncompressions_check(const char *gunzip, const char *bunzip2, const char *unlzma, const  char *unxz);
+void uncompressions_check(const char *gunzip, const char *bunzip2, const char *unlzma, const  char *unxz, const char *lunzip);
 
 #endif
 

--- End Message ---
--- Begin Message ---
Source: reprepro
Source-Version: 4.3.0-1

We believe that the bug you reported is fixed in the latest version of
reprepro, which is due to be installed in the Debian FTP archive:

reprepro_4.3.0-1.debian.tar.gz
  to main/r/reprepro/reprepro_4.3.0-1.debian.tar.gz
reprepro_4.3.0-1.dsc
  to main/r/reprepro/reprepro_4.3.0-1.dsc
reprepro_4.3.0-1_sparc.deb
  to main/r/reprepro/reprepro_4.3.0-1_sparc.deb
reprepro_4.3.0.orig.tar.gz
  to main/r/reprepro/reprepro_4.3.0.orig.tar.gz



A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Bernhard R. Link <[email protected]> (supplier of updated reprepro package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Format: 1.8
Date: Sun, 24 Oct 2010 11:06:48 +0200
Source: reprepro
Binary: reprepro
Architecture: source sparc
Version: 4.3.0-1
Distribution: experimental
Urgency: low
Maintainer: Bernhard R. Link <[email protected]>
Changed-By: Bernhard R. Link <[email protected]>
Description: 
 reprepro   - Debian package repository producer
Closes: 590477 600230 600358 600982
Changes: 
 reprepro (4.3.0-1) experimental; urgency=low
 .
   * new upstream release
   - add support for lzip compressed files (Closes: 600230)
   - add support for ButAutomaticUpgrades field (Closes: 600358)
   - fix compiling with gcc4.5 (Closes: 600982)
   - add 'unusedsources' and 'sourcemissing' commands (Closes: 590477)
   - fix handling of packages with a $Component override but no real ones
Checksums-Sha1: 
 088acc09f7473a8b28baa2e5670b9d81e4ec53c0 1363 reprepro_4.3.0-1.dsc
 3ffd2bf193ad364381f6d00d68ffd6cc7af24f08 604535 reprepro_4.3.0.orig.tar.gz
 178c117411104c5111dd61a153d2651d0ca4bef0 12310 reprepro_4.3.0-1.debian.tar.gz
 81edb7910458596f1ef26fb558d4ec3d68711f43 455776 reprepro_4.3.0-1_sparc.deb
Checksums-Sha256: 
 afccfc791a8fe226ce14da06dcacb823578d8f04f4074505878cde0f305781a7 1363 
reprepro_4.3.0-1.dsc
 6bfb8b520154635704019a37680d6a3057638be38199055d00dcb2023cc62ce0 604535 
reprepro_4.3.0.orig.tar.gz
 151aed42e19f62e8f294579e11846509ffdeb79902d19806a65043e6b65f3656 12310 
reprepro_4.3.0-1.debian.tar.gz
 18fb7f03f313abab632e4fd7e93f76317c90e1ca37bb5a36c939ff230f397ae5 455776 
reprepro_4.3.0-1_sparc.deb
Files: 
 1620ec44f5e1fce59e2990222758e17b 1363 utils extra reprepro_4.3.0-1.dsc
 c84f119eae08c9abd7517fc676e7c008 604535 utils extra reprepro_4.3.0.orig.tar.gz
 b5c9f608db9dfc1dcf4cdddbfe5fecd0 12310 utils extra 
reprepro_4.3.0-1.debian.tar.gz
 323a820ac4ec2b387f2ca8a2b6f089f4 455776 utils extra reprepro_4.3.0-1_sparc.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iJwEAQECAAYFAkzEBUUACgkQWzIpWA8dktoYMgQAnNfm3OstsC5wrPOYBbBUmiBO
fqn612qxpOP1gBye+IYQKMhV7v5GdoEnOiMZ61A7vrX/Koi6Dw0qTrQwHCxkV2iJ
oRViAqHTWoo8/9Jv3ykQrw8rNo0Lr1+znLKvvwrQs9PBrKd0yagTDvoXXC5f9Bgi
vFytBatiHUMA61WG7xQ=
=0oMB
-----END PGP SIGNATURE-----



--- End Message ---

Reply via email to