Debian Bug report logs - #556960
please add support for lzip

version graph

Package: dpkg; Maintainer for dpkg is Dpkg Developers <debian-dpkg@lists.debian.org>; Source for dpkg is src:dpkg.

Reported by: Antonio Diaz Diaz <ant_diaz@teleline.es>

Date: Wed, 18 Nov 2009 16:06:01 UTC

Severity: wishlist

Tags: wontfix

Merged with 600094

Found in version dpkg/1.15.5.1

Done: Guillem Jover <guillem@debian.org>

Bug is archived. No further changes may be made.

Toggle useless messages

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to debian-bugs-dist@lists.debian.org, Dpkg Developers <debian-dpkg@lists.debian.org>:
Bug#556960; Package dpkg. (Wed, 18 Nov 2009 16:06:04 GMT) Full text and rfc822 format available.

Acknowledgement sent to Antonio Diaz Diaz <ant_diaz@teleline.es>:
New Bug report received and forwarded. Copy sent to Dpkg Developers <debian-dpkg@lists.debian.org>. (Wed, 18 Nov 2009 16:06:04 GMT) Full text and rfc822 format available.

Message #5 received at submit@bugs.debian.org (full text, mbox):

From: Antonio Diaz Diaz <ant_diaz@teleline.es>
To: submit@bugs.debian.org
Subject: dpkg: please support lzip compressed packages
Date: Wed, 18 Nov 2009 16:45:05 +0100
[Message part 1 (text/plain, inline)]
Package: dpkg
Version: 1.15.5.1
Severity: wishlist

Lzip is a lossless data compressor based on the LZMA algorithm, with 
very safe integrity checking and a user interface similar to the one of 
gzip or bzip2. Lzip decompresses almost as fast as gzip and compresses 
better than bzip2, which makes it well suited for software distribution 
and data archiving.

The lzip file format (.lz) is an improved successor of the lzma_alone 
file format (.lzma), providing magic bytes and integrity checking. 
Software tools that (de)compress both formats or can convert lzma_alone 
files to lzip format are listed in the Links section of 
http://www.nongnu.org/lzip/lzip.html.

Lzip is stable, distributed by many GNU/Linux distributions (including 
Debian) and used to distribute software from ftp.gnu.org.

Best regards,
Antonio.
[dpkg-1.15.5.1-lzip.patch (text/x-c, inline)]
diff -urdN dpkg-1.15.5.1/debian/control dpkg-1.15.5.1.new/debian/control
--- dpkg-1.15.5.1/debian/control	2009-11-17 08:18:00.000000000 +0100
+++ dpkg-1.15.5.1.new/debian/control	2009-11-18 13:50:00.000000000 +0100
@@ -39,7 +39,7 @@
 Section: utils
 Priority: optional
 Architecture: all
-Depends: dpkg (>= 1.15.4), perl5, perl-modules, bzip2, lzma, xz-utils,
+Depends: dpkg (>= 1.15.4), perl5, perl-modules, bzip2, lzip, lzma, xz-utils,
  patch (>= 2.2-1), make, binutils, libtimedate-perl, base-files (>= 5.0.0)
 Recommends: gcc | c-compiler, build-essential, fakeroot, gnupg, gpgv
 Suggests: debian-keyring, debian-maintainers
diff -urdN dpkg-1.15.5.1/dpkg-deb/build.c dpkg-1.15.5.1.new/dpkg-deb/build.c
--- dpkg-1.15.5.1/dpkg-deb/build.c	2009-11-17 08:18:00.000000000 +0100
+++ dpkg-1.15.5.1.new/dpkg-deb/build.c	2009-11-18 13:50:00.000000000 +0100
@@ -542,6 +542,9 @@
     case compress_type_bzip2:
       datamember = DATAMEMBER_BZ2;
       break;
+    case compress_type_lzip:
+      datamember = DATAMEMBER_LZ;
+      break;
     case compress_type_lzma:
       datamember = DATAMEMBER_LZMA;
       break;
diff -urdN dpkg-1.15.5.1/dpkg-deb/dpkg-deb.h dpkg-1.15.5.1.new/dpkg-deb/dpkg-deb.h
--- dpkg-1.15.5.1/dpkg-deb/dpkg-deb.h	2009-11-17 08:18:00.000000000 +0100
+++ dpkg-1.15.5.1.new/dpkg-deb/dpkg-deb.h	2009-11-18 13:59:11.000000000 +0100
@@ -59,6 +59,8 @@
 #define DATAMEMBER_COMPAT_GZ	"data.tar.gz/    "
 #define DATAMEMBER_BZ2   	"data.tar.bz2    "
 #define DATAMEMBER_COMPAT_BZ2  	"data.tar.bz2/   "
+#define DATAMEMBER_LZ   	"data.tar.lz     "
+#define DATAMEMBER_COMPAT_LZ  	"data.tar.lz/    "
 #define DATAMEMBER_LZMA		"data.tar.lzma   "
 #define DATAMEMBER_COMPAT_LZMA	"data.tar.lzma/  "
 #define DATAMEMBER_CAT   	"data.tar        "
diff -urdN dpkg-1.15.5.1/dpkg-deb/extract.c dpkg-1.15.5.1.new/dpkg-deb/extract.c
--- dpkg-1.15.5.1/dpkg-deb/extract.c	2009-11-17 08:18:00.000000000 +0100
+++ dpkg-1.15.5.1.new/dpkg-deb/extract.c	2009-11-18 13:50:00.000000000 +0100
@@ -181,6 +181,10 @@
 		     !memcmp(arh.ar_name,DATAMEMBER_COMPAT_BZ2,sizeof(arh.ar_name))) {
 	    adminmember= 0;
 	    compress_type = compress_type_bzip2;
+	  } else if (!memcmp(arh.ar_name,DATAMEMBER_LZ,sizeof(arh.ar_name)) ||
+		     !memcmp(arh.ar_name,DATAMEMBER_COMPAT_LZ,sizeof(arh.ar_name))) {
+	    adminmember= 0;
+	    compress_type = compress_type_lzip;
 	  } else if (!memcmp(arh.ar_name, DATAMEMBER_LZMA, sizeof(arh.ar_name)) ||
 		     !memcmp(arh.ar_name, DATAMEMBER_COMPAT_LZMA, sizeof(arh.ar_name))) {
 	    adminmember = 0;
diff -urdN dpkg-1.15.5.1/dpkg-deb/main.c dpkg-1.15.5.1.new/dpkg-deb/main.c
--- dpkg-1.15.5.1/dpkg-deb/main.c	2009-11-17 08:18:00.000000000 +0100
+++ dpkg-1.15.5.1.new/dpkg-deb/main.c	2009-11-18 14:07:03.000000000 +0100
@@ -105,7 +105,8 @@
 "                                     packages).\n"
 "  -z#                              Set the compression level when building.\n"
 "  -Z<type>                         Set the compression type used when building.\n"
-"                                     Allowed values: gzip, bzip2, lzma, none.\n"
+"                                     Allowed values: gzip, bzip2, lzip, lzma,\n"
+"                                                     none.\n"
 "\n"));
 
   printf(_(
@@ -197,6 +198,8 @@
     compress_type = compress_type_gzip;
   else if (!strcmp(value, "bzip2"))
     compress_type = compress_type_bzip2;
+  else if (!strcmp(value, "lzip"))
+    compress_type = compress_type_lzip;
   else if (!strcmp(value, "lzma"))
     compress_type = compress_type_lzma;
   else if (!strcmp(value, "none"))
diff -urdN dpkg-1.15.5.1/lib/dpkg/compression.c dpkg-1.15.5.1.new/lib/dpkg/compression.c
--- dpkg-1.15.5.1/lib/dpkg/compression.c	2009-11-17 08:18:01.000000000 +0100
+++ dpkg-1.15.5.1.new/lib/dpkg/compression.c	2009-11-18 13:50:00.000000000 +0100
@@ -111,6 +111,8 @@
 #else
       fd_fd_filter(fd_in, fd_out, BZIP2, "bzip2", "-dc", v.buf);
 #endif
+    case compress_type_lzip:
+      fd_fd_filter(fd_in, fd_out, LZIP, "lzip", "-dc", v.buf);
     case compress_type_lzma:
       fd_fd_filter(fd_in, fd_out, LZMA, "lzma", "-dc", v.buf);
     case compress_type_cat:
@@ -208,6 +210,10 @@
       combuf[1]= *compression;
       fd_fd_filter(fd_in, fd_out, BZIP2, "bzip2", combuf, v.buf);
 #endif
+    case compress_type_lzip:
+      strncpy(combuf, "-9c", sizeof(combuf));
+      combuf[1]= *compression;
+      fd_fd_filter(fd_in, fd_out, LZIP, "lzip", combuf, v.buf);
     case compress_type_lzma:
       strncpy(combuf, "-9c", sizeof(combuf));
       combuf[1] = *compression;
diff -urdN dpkg-1.15.5.1/lib/dpkg/dpkg.h dpkg-1.15.5.1.new/lib/dpkg/dpkg.h
--- dpkg-1.15.5.1/lib/dpkg/dpkg.h	2009-11-17 08:18:01.000000000 +0100
+++ dpkg-1.15.5.1.new/lib/dpkg/dpkg.h	2009-11-18 13:50:00.000000000 +0100
@@ -108,6 +108,7 @@
 #define TAR		"tar"
 #define GZIP		"gzip"
 #define BZIP2		"bzip2"
+#define LZIP		"lzip"
 #define LZMA		"lzma"
 #define RM		"rm"
 #define FIND		"find"
@@ -218,6 +219,7 @@
   compress_type_cat,
   compress_type_gzip,
   compress_type_bzip2,
+  compress_type_lzip,
   compress_type_lzma,
 };
 
diff -urdN dpkg-1.15.5.1/man/deb.5 dpkg-1.15.5.1.new/man/deb.5
--- dpkg-1.15.5.1/man/deb.5	2009-11-17 08:18:01.000000000 +0100
+++ dpkg-1.15.5.1.new/man/deb.5	2009-11-18 14:03:39.000000000 +0100
@@ -1,4 +1,4 @@
-.TH deb 5 "2009-02-27" "Debian Project" "Debian"
+.TH deb 5 "2009-11-18" "Debian Project" "Debian"
 .SH NAME
 deb \- Debian binary package format
 .SH SYNOPSIS
@@ -56,7 +56,8 @@
 It contains the filesystem as a tar archive, either
 not compressed (supported since dpkg 1.10.24), or compressed with
 gzip (with \fB.gz\fP extension),
-bzip2 (with \fB.bz2\fP extension, supported since dpkg 1.10.24) or
+bzip2 (with \fB.bz2\fP extension, supported since dpkg 1.10.24),
+lzip (with \fB.lz\fP extension, supported since dpkg 1.15.6) or
 lzma (with \fB.lzma\fP extension, supported since dpkg 1.13.25).
 .PP
 These members must occur in this exact order. Current implementations
diff -urdN dpkg-1.15.5.1/man/dpkg-deb.1 dpkg-1.15.5.1.new/man/dpkg-deb.1
--- dpkg-1.15.5.1/man/dpkg-deb.1	2009-11-17 08:18:01.000000000 +0100
+++ dpkg-1.15.5.1.new/man/dpkg-deb.1	2009-11-18 13:50:00.000000000 +0100
@@ -1,4 +1,4 @@
-.TH dpkg\-deb 1 "2009-01-07" "Debian Project" "dpkg suite"
+.TH dpkg\-deb 1 "2009-11-18" "Debian Project" "dpkg suite"
 .SH NAME
 dpkg\-deb \- Debian package archive (.deb) manipulation tool
 .
@@ -194,8 +194,8 @@
 .TP
 .BI \-Z compress_type
 Specify which compression type to use when building a package. Allowed
-values are \fIgzip\fP, \fIbzip2\fP, \fIlzma\fP, and \fInone\fP (default
-is \fIgzip\fP).
+values are \fIgzip\fP, \fIbzip2\fP, \fIlzip\fP, \fIlzma\fP, and \fInone\fP
+(default is \fIgzip\fP).
 .TP
 .BR \-\-new
 Ensures that
diff -urdN dpkg-1.15.5.1/man/dpkg-source.1 dpkg-1.15.5.1.new/man/dpkg-source.1
--- dpkg-1.15.5.1/man/dpkg-source.1	2009-11-17 10:03:39.000000000 +0100
+++ dpkg-1.15.5.1.new/man/dpkg-source.1	2009-11-18 13:59:11.000000000 +0100
@@ -1,5 +1,5 @@
 .\" Authors: Ian Jackson, Raphael Hertzog
-.TH dpkg\-source 1 "2009-11-11" "Debian Project" "dpkg utilities"
+.TH dpkg\-source 1 "2009-11-18" "Debian Project" "dpkg utilities"
 .SH NAME
 dpkg\-source \- Debian source package (.dsc) manipulation tool
 .
@@ -120,7 +120,7 @@
 Specify the compression to use for created files (tarballs and diffs).
 Note that this option will not cause existing tarballs to be recompressed,
 it only affects new files. Supported values are:
-.IR gzip ", " bzip2 ", " lzma " and " xz .
+.IR gzip ", " bzip2 ", " lzip ", " lzma " and " xz .
 \fIgzip\fP is the default. \fIxz\fP is only supported since
 dpkg-dev 1.15.5.
 .TP
@@ -363,7 +363,7 @@
 .SS Format: 3.0 (quilt)
 A source package in this format contains at least
 an original tarball (\fB.orig.tar.\fP\fIext\fP where \fIext\fP can be
-\fBgz\fP, \fBbz2\fP, \fBlzma\fP and \fBxz\fP) and a debian tarball
+\fBgz\fP, \fBbz2\fP, \fBlz\fP, \fBlzma\fP and \fBxz\fP) and a debian tarball
 (\fB.debian.tar.\fP\fIext\fP). It can also contain additional original
 tarballs (\fB.orig-\fP\fIcomponent\fP\fB.tar.\fP\fIext\fP).
 \fIcomponent\fP can only contain alphanumeric characters and dashes ("-").
diff -urdN dpkg-1.15.5.1/scripts/Dpkg/Compression.pm dpkg-1.15.5.1.new/scripts/Dpkg/Compression.pm
--- dpkg-1.15.5.1/scripts/Dpkg/Compression.pm	2009-11-17 08:18:01.000000000 +0100
+++ dpkg-1.15.5.1.new/scripts/Dpkg/Compression.pm	2009-11-18 13:50:00.000000000 +0100
@@ -21,14 +21,15 @@
 		 %comp_prog %comp_decomp_prog
 		 get_compression_from_filename);
 
-our @comp_supported = qw(gzip bzip2 lzma xz);
+our @comp_supported = qw(gzip bzip2 lzip lzma xz);
 our %comp_supported = map { $_ => 1 } @comp_supported;
-our %comp_ext = (gzip => 'gz', bzip2 => 'bz2', lzma => 'lzma', xz => 'xz');
-our $comp_regex = '(?:gz|bz2|lzma|xz)';
-our %comp_prog = (gzip => 'gzip', bzip2 => 'bzip2', lzma => 'lzma',
-		  xz => 'xz');
-our %comp_decomp_prog = (gzip => 'gunzip', bzip2 => 'bunzip2', lzma => 'unlzma',
-			 xz => 'unxz');
+our %comp_ext = (gzip => 'gz', bzip2 => 'bz2', lzip => 'lz', lzma => 'lzma',
+                 xz => 'xz');
+our $comp_regex = '(?:gz|bz2|lz|lzma|xz)';
+our %comp_prog = (gzip => 'gzip', bzip2 => 'bzip2', lzip => 'lzip',
+		  lzma => 'lzma', xz => 'xz');
+our %comp_decomp_prog = (gzip => 'gunzip', bzip2 => 'bunzip2',
+			 lzip => 'lzip -d', lzma => 'unlzma', xz => 'unxz');
 
 sub get_compression_from_filename {
     my $filename = shift;

Reply sent to Guillem Jover <guillem@debian.org>:
You have taken responsibility. (Sat, 20 Feb 2010 22:00:06 GMT) Full text and rfc822 format available.

Notification sent to Antonio Diaz Diaz <ant_diaz@teleline.es>:
Bug acknowledged by developer. (Sat, 20 Feb 2010 22:00:06 GMT) Full text and rfc822 format available.

Message #10 received at 556960-done@bugs.debian.org (full text, mbox):

From: Guillem Jover <guillem@debian.org>
To: Antonio Diaz Diaz <ant_diaz@teleline.es>, 556960-done@bugs.debian.org
Subject: Re: Bug#556960: dpkg: please support lzip compressed packages
Date: Sat, 20 Feb 2010 22:59:05 +0100
Hi Antonio!

On Wed, 2009-11-18 at 16:45:05 +0100, Antonio Diaz Diaz wrote:
> Package: dpkg
> Version: 1.15.5.1
> Severity: wishlist
> 
> Lzip is a lossless data compressor based on the LZMA algorithm, with
> very safe integrity checking and a user interface similar to the one
> of gzip or bzip2. Lzip decompresses almost as fast as gzip and
> compresses better than bzip2, which makes it well suited for
> software distribution and data archiving.
> 
> The lzip file format (.lz) is an improved successor of the
> lzma_alone file format (.lzma), providing magic bytes and integrity
> checking. Software tools that (de)compress both formats or can
> convert lzma_alone files to lzip format are listed in the Links
> section of http://www.nongnu.org/lzip/lzip.html.
> 
> Lzip is stable, distributed by many GNU/Linux distributions
> (including Debian) and used to distribute software from ftp.gnu.org.

I fear I'll have to decline the patch. For the deb packages we are
going to have xz support in next release, adding another lzma variant
does not make sense, and we should probably deprecate the lzma format
at some point instead, maybe just disable compression, but keep
decompression.

For the source packages we already support xz now. One differences to
consider when allowing new compression formats here is that the source
package relies on the upstream tarballs, which might be compressed with
anything (we tend to repackage those with unsupported formats, though).
But we don't really want to keep adding any existing compression format,
as it makes extracting source packages by 3rd parties with standard tools
more difficult. If lzip would be getting adopted massively, then we
could maybe reconsider this, but I've not seen any indication of that,
and I have the perception lots of projects are starting to support xz
instead. I'd also rather keep the set of supported compressors
identical for source and binary packages.

I'm thus closing this bug report.

thanks,
guillem




Message #11 received at 556960-done@bugs.debian.org (full text, mbox):

From: Antonio Diaz Diaz <ant_diaz@teleline.es>
To: Guillem Jover <guillem@debian.org>
Cc: 556960-done@bugs.debian.org
Subject: Re: Bug#556960: dpkg: please support lzip compressed packages
Date: Sun, 21 Feb 2010 00:38:43 +0100
Hello Guillem,

Guillem Jover wrote:
> I fear I'll have to decline the patch. For the deb packages we are
> going to have xz support in next release, adding another lzma variant
> does not make sense, and we should probably deprecate the lzma format
> at some point instead,

I respect your decision, but do not agree with it. Just as everybody 
sees now that using lzma was a mistake, xz will be considered a mistake 
in the future.

Xz is not a general-purpose LZMA compressor, it also includes lots of 
special-purpose filters, useful each of them to very few people, and 
prone to obsolescence. Both, format and tool, resemble more windows 
style of "one program to do all" than unix philosophy of "do one thing, 
and do it well".

Moreover, xz is not only beta, but also unfinished. I really can't 
understand why people makes essential features of their systems depend 
on beta software.


> If lzip would be getting adopted massively, then we
> could maybe reconsider this, but I've not seen any indication of that,
> and I have the perception lots of projects are starting to support xz
> instead.

I find it pretty disturbing that everyone using lzip does it because 
they think it is "the currently best free compression program"[1], while 
everyone using xz does it because other people seem to doing the same. 
Maybe Stallman is right and "the computer industry is the only industry 
that is more fashion-driven than women's fashion"[2].
[1]ftp://ftp.gmplib.org/pub/snapshot/README
[2]http://www.guardian.co.uk/technology/2008/sep/29/cloud.computing.richard.stallman


Best regards,
Antonio.




Bug archived. Request was from Debbugs Internal Request <owner@bugs.debian.org> to internal_control@bugs.debian.org. (Sun, 21 Mar 2010 07:38:41 GMT) Full text and rfc822 format available.

Bug unarchived. Request was from Daniel Baumann <daniel@debian.org> to control@bugs.debian.org. (Thu, 14 Oct 2010 06:39:04 GMT) Full text and rfc822 format available.

Did not alter fixed versions and reopened. Request was from Debbugs Internal Request <owner@bugs.debian.org> to internal_control@bugs.debian.org. (Thu, 14 Oct 2010 06:39:05 GMT) Full text and rfc822 format available.

Changed Bug title to 'please add support for lzip' from 'dpkg: please support lzip compressed packages' Request was from Daniel Baumann <daniel@debian.org> to control@bugs.debian.org. (Thu, 14 Oct 2010 06:39:05 GMT) Full text and rfc822 format available.

Forcibly Merged 556960 600094. Request was from Daniel Baumann <daniel@debian.org> to control@bugs.debian.org. (Thu, 14 Oct 2010 06:39:06 GMT) Full text and rfc822 format available.

Removed tag(s) patch. Request was from Raphaël Hertzog <hertzog@debian.org> to control@bugs.debian.org. (Wed, 09 Mar 2011 17:45:05 GMT) Full text and rfc822 format available.

Bug reopened Request was from Daniel Baumann <daniel.baumann@progress-technologies.net> to control@bugs.debian.org. (Wed, 11 Apr 2012 06:03:09 GMT) Full text and rfc822 format available.

Bug archived. Request was from Debbugs Internal Request <owner@bugs.debian.org> to internal_control@bugs.debian.org. (Thu, 10 May 2012 07:43:53 GMT) Full text and rfc822 format available.

Send a report that this bug log contains spam.


Debian bug tracking system administrator <owner@bugs.debian.org>. Last modified: Thu Apr 17 19:16:43 2014; Machine Name: buxtehude.debian.org

Debian Bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.