Subject: why does pkg_install continue to use GNU Tar?!?!?!?!
To: NetBSD Userlevel Technical Discussion List <tech-userlevel@NetBSD.ORG>
From: Greg A. Woods <woods@weird.com>
List: tech-userlevel
Date: 05/07/2002 17:14:42
I just finally encountered a forced pkg_install upgrade on a system that
doesn't have GNU Tar (and doesn't want it). I was rather surprised and
dismayed to find that pkg_create still requires GNU Tar. I haven't been
paying particular attention to changes in pkg_install, since I've been
using my own version for a year now, but I though this issue would have
been taken care of long ago.
Isn't "pax" the primary officially supported archiver on NetBSD? It's
in /bin ([g]tar isn't), after all, and it's been there for years. The
in-tree GNU Tar is also very OLD! It's based on the 1.11.2 1993
release, while 1.12 has been out since 1997!
A simple link to /bin/tar and /bin/cpio pretty much eliminates any need
for GNU Tar entirely. Although I'm not 100% certain I believe all the
necessary fixes to make the pax front-end to 'tar' sufficiently
compliant with GNU Tar have been available since 1999/10/22 (not long
after 1.4.1 was tagged, IIUC), and one final desirable cleanup (-O) has
been available since 2000/03/30. All of these fixes have been in 1.5
from the very beginning of its branch. These fixes correspond with the
fixes I made to my own copy of pax and I've used it successfully for
nearly a year now with my own version of pkg_install.
I also submitted a PR last year (# 13699) including those fixes from my
pkg_install so that it could use the 'tar' front-end to 'pax'
exclusively. The only reply to the pax-related portion of that PR was
an informal question about testing (and the answer is easy enough to
find with a trivial test of pax directly).
The only thing that makes this tricky in pkgsrc is that supported
systems have a /usr/bin/tar which is GNU Tar. My PR#13699 recommended
instead that the /bin/tar link to /bin/pax be created. This could be
done by a new pkgsrc/pkgtools/pkg_install "INSTALL" script, but it would
leave older systems with two slightly disparate "tar" commands. I don't
think this would be a "bad" thing, but it might confuse some folks. The
more certain fix though would be to modify pkg_create to use the 'pax'
command-line directly instead of relying on the 'tar' front-end. I'm
considering updating my pkg_create patches to use the native pax
interface, but I've not done that yet....
As for systems too old to have a modern enoung 'pax', well even a
"DEPENDS" added to pkg_install right now to require a new & similar
pkgsrc/pkgtools/pax module to upgrade ancient systems....
--
Greg A. Woods
+1 416 218-0098; <gwoods@acm.org>; <g.a.woods@ieee.org>; <woods@robohack.ca>
Planix, Inc. <woods@planix.com>; VE3TCP; Secrets of the Weird <woods@weird.com>