[darcs-users] [1.0.1] darcs dist and tar

Ralph Corderoy ralph at inputplus.co.uk
Fri Jan 28 00:25:12 UTC 2005


Hi Thomas,

> On Thursday 27 January 2005 17:55, Ralph Corderoy wrote:
> > > Ralph; you might want to build your shipment script to start with
> > > a 'darcs dist' and then add files like configure with a simple tar
> > > update command.
> >
> > Only if I want to create a broken tarball.  Most tarballs are
> > shipped with a license allowing modification of the source and
> > further distribution.
> 
> Right.  I hold the CHANGES file (the GPL license document) in my repo.
> Which means its put in the tarball.

Normally LICENSE is the file containing the GNU GPL.  Anyway, you may
have missed my point:  the license allows others to modify the source
and to distribute their modifications.

> > Requiring dist and tar to do `make dist', when just tar normally
> > does, forces any recipient to install darcs.  :-(
> 
> Sorry. I don't follow.

I mean to write `Requiring darcs and tar'.  Sorry.

> All recipients that want to do create a distribution tarball need to
> get the darcs checkout; which kind of implies you have darcs :)

Who's talking about hacking darcs?

> After the tarball is created you can ship it.

OK, I get the source of foowonder from darcs, do a `make all distcheck'
and send Sally foowonder.0.1.tar.gz.

> No darcs needed for anyone on the receiving end.

Not to unpack, no, because they have gzip and tar.  Nor to build because
autoconf assumes only sh, sed, etc., not that Sally has autoconf
installed.

But once Sally edits the source, and wants to distribute
foowonder-sally.0.1.tar.gz, see finds that the provided makefile assumes
darcs is installed in order to create a tar file!  I won't suggest
Sally's thoughts at this point :-) but she probably sends me a patch to
use plain tar.

> The only extra step you want to do is between the darcs dist and the
> actual shipping of that tarball you add some extra files; like
> Configure.  A simple 'tar Azf foo.tar.gz myFiles'

Hmm.  Do you mean `tar rzf' there?  Either way, tar's -r, -u, or -A
options don't work with -z, at least on this GNU tar (1.13.25).  And if
I don't have GNU tar, but say AIX 3.2.5's tar, there's even less chance.

And where would I place this command?  In my makefile, as part of the
`dist' target?  Is that the same makefile that has lists of all the C
source to compile, all the man pages to format, etc.?  In other words,
the makefile that can readily do `tar czf foo.tar.gz $(DIST_FILES)'?

> If you feel the command is ugly, or it does not fit in your preferred
> way of working; then simply don't use it. It is by no means implied
> usage of darcs.

I'm arguing from a perspective of wanting darcs to be a good fit in the
Unix philosophy.  For the same reason it's now silent if all goes well
with a `darcs init', it shouldn't wrap the role of tar.  A `darcs list
[dir...]' that lists the files under its stewardship in the directories
specified, default `.', would allow the user a simple way of shipping
all darcs'd files without darcs having to know about tar and its
relations.  Plus it would be more generally useful, e.g. in combination
with grep.

Cheers,


Ralph.





More information about the darcs-users mailing list