Archive::Tar::Pain

kane on 2003-05-13T16:53:58

So progress on CPANPLUS has been slow lately.

Of course, I have plenty of places to point my finger.

Mostly to Archive::Tar, which was so broken (and had been for three years), that CPANPLUS was having trouble extracting some newer releases with it.

So I stupidly volunteered to take over maintainership, since the last author was MIA for well, 3 years. It's only then you realise exactly what can of worms you precisely opened;

For example, it had no idea what '././@LongLink' files were [0], plus it had interesting code in it like:

system( ... ) or die "error: $!";

I hear you thinking, "but sureley the test suite would have caught that".. but if you're smart you don't bring that up to my face ;)

I'll try and refrain myself from rants on the tar-format but trust me, it's really quite screwy.
It feels much like a '512 bytes should be enough for everyone'-quote

In the end I decided a complete rewrite was probably best, since every bug fix on the old code made me find two more bugs.

So right now, there's a totally rewritten version on the CPAN which should be fixing all these nasty things.

I invite everyone to bash it some, so we can hopefully take out all the bugs, and enjoy the new features

--Jos

[0] I hope you don't either, but if you must know


Bravery

Ovid on 2003-05-13T21:23:42

You're a braver man than I. I have spotted more than one unmaintained module on the CPAN that I've thought about volunteering to fix, but I chickened out. Nice job!

And in the unlikely event that you're ever in this neck of the woods again, give me a shout. I don't think I bought you any beer last time :( (and I just realizedy how many of my posts seem to mention beer ...)

Re:Bravery

kane on 2003-05-14T13:46:01

Bravery or stupidity? I keep being undecided :)

Although, I have received quite a few thank-you mails, so it's somewhat rewarding.

I suggest, in the interest of timely beer drinking, we move this event to this coming Yapc::EU, if you can at all make it ;)

Win32

bart on 2003-05-13T23:03:46

Will it work on Win32?

The reason I ask, is because the old Archive::Tar used fcntl(), to duplicate a filehandle for example, which works on Unix etc., but not on Win32. That's why Win32 users were stuck with version 0.072.

I hope life will get better, for these poor marginalised programmers, as well.

Re:Win32

kane on 2003-05-14T07:27:58

The short answer would be 'yes, it will work on win32 now'.

You don't want the long answer ;)

Re:Win32

bart on 2003-05-14T10:03:09

But I do! I often wondered: why are these file handles duped, in the first place?

Oh, and one more thing... I often find people (on Perlmonks, for example) wish to use a tied handle, or another non-standard handle, with this module, and this module rejects that, for the same reason, really. Will that work, now, too?

Re:Win32

kane on 2003-05-14T12:46:28

It's not supported as a filehandle as such, but there's other ways to do it ($tar->add_data is probably your friend).

The reason for this is simple -- to keep everything managable, I use IO::File and IO::Zlib under the hood, which saves a lot of overhead and keeps for a standard interface.
So if those modules don't supported tied filehandles, neither will Archive::Tar.