From owner-cvs-all Sat Mar 27 17: 3:54 1999 Delivered-To: cvs-all@freebsd.org Received: from picnic.mat.net (picnic.mat.net [206.246.122.133]) by hub.freebsd.org (Postfix) with ESMTP id 1CAB014BEA; Sat, 27 Mar 1999 17:03:51 -0800 (PST) (envelope-from chuckr@mat.net) Received: from localhost (chuckr@localhost) by picnic.mat.net (8.9.3/8.8.5) with ESMTP id TAA86126; Sat, 27 Mar 1999 19:57:13 -0500 (EST) Date: Sat, 27 Mar 1999 19:57:13 -0500 (EST) From: Chuck Robey To: Jacques Vidrine Cc: Doug Rabson , Poul-Henning Kamp , obrien@NUXI.com, Adrian Penisoara , cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: bzip2/tar/pkg_add (was Re: cvs commit: ports/news/tin ...) In-Reply-To: <199903280012.SAA93384@spawn.nectar.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk On Sat, 27 Mar 1999, Jacques Vidrine wrote: > On 27 March 1999 at 17:37, Doug Rabson wrote: > > On Sat, 27 Mar 1999, Poul-Henning Kamp wrote: > > > How hard would it be to make pkg_add aware of both formats and "DTRT" ? > > And make 'tar xvfz' understand it too. > > Ideally, applications that decompress files (zcat et. al., tar, > pkg_add) should work with compress'd, gzip'd, and bzip2'd files. > > Today, ``tar -zx'' will extract files that have been compressed with > compress or gzip, because gunzip understands those formats (and > others). Because pkg_add simply executes ``tar -zx'' on package > files, they can be compressed in either format as well. To allow > pkg_add and tar to use bzip2'd files, we could use one of the > following solutions: I'd like to have bzcat, bunzip and bzip, and let tar be intelligent about which program to use to handle things. I would not want to modify the gzip/gunzip stuff, it's GNU, and I would simply like a little more definite line drawn between BSD code and GNU code. Besides, I think it somewhat more closely follows the tool philosophy, without losing functionality. No new flags to tar for decompression. For compression only, let tar depend on: 1) an added flag, for what kind of compression OR 2) environmental var, TAR_COMPRESSOR, which would be a path to the compressor to use, OR 3) a compiled in default, if no flag AND no env var is available. This would be the order checked. don't modify zcat. Add a bzcat. > > a) Add a new flag to tar to decompress bzip2 files (already done > in -CURRENT, ``tar -yx''), and frob pkg_add so that it will > use ``tar -yx'' or ``tar -zx'' depending on the package file > extension. This is easy to implement, but I don't like it > much. It means more special cases in pkg_add and more tar > flags for users to remember. > > b) Teach tar to use the correct decompression program based on > file extension or file ``magic'' instead of using command line > flags (the command line flags would still be needed to specify > compression program when creating archives, of course). Then > pkg_add would work magically. This is a reasonable solution, > I think, though I haven't looked at tar to see how much trouble > it might be. > > c) Teach gunzip to uncompress bzip2'd files. It already knows how > to deal with compress'd and gzip'd files. One approach would be > to link gzip with the bzip2 library. This loses for two reasons. > It would require bzip2 to be in the base system. More importantly, > you can't do it because the licenses are incompatible. Another > approach would be to fork off bzip2 when needed. This seemed > reasonable to me, so I spent 40 minutes to hack gzip to do exactly > that. Unfortunately, I don't like the result. Because gzip sets > up the file handling, if exec'ing bzip2 fails you will loose the > file. Some more special checking could fix this, but it just gets > uglier. > > d) Put our own ``zcat'' in the base system. It would use file magic > to determine which of gzip, bzip2, or whatever else comes along to > decompress a file. Modify our tar so that for decompressing > archives, it uses our new ``zcat''. This seems cleanest to me. It > can be extended with more file formats. It can be done so that > ``zcat'', ``zmore'', ``zgrep'', ``tar'', ``pkg_add'' and whatever > Just Work with a variety of compressed file types. It will also be > able to give an informative message to users who have not yet > installed bzip2, or theNextBestCompressionApp. > > I'd like to hear any comments before I go ahead and implement solution > d. > > Jacques Vidrine / n@nectar.com / nectar@FreeBSD.org > > ----------------------------+----------------------------------------------- Chuck Robey | Interests include any kind of voice or data chuckr@glue.umd.edu | communications topic, C programming, and Unix. 213 Lakeside Drive Apt T-1 | Greenbelt, MD 20770 | I run picnic (FreeBSD-current) (301) 220-2114 | and jaunt (Solaris7). ----------------------------+----------------------------------------------- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message