Beefy Boxes and Bandwidth Generously Provided by pair Networks Bob
Keep It Simple, Stupid
 
PerlMonks  

Comment on

( #3333=superdoc: print w/ replies, xml ) Need Help??

So I use my laptop for all CPAN development and testing before I release anything to the production machines or to CPAN. I test my releases on Linux, HP-UX and AIX (and sometimes when I am near one, on Windows with Strawberry perl), but even that - and the invaluable cpantesters, do not reveal upcoming problems :(

I just noted by accident that CPANTS turned mostly red for my latest upload of Text::CSV_XS. As I know how many others depend on that, I rushed to analyse why it got red and did not find any clue. All the "fail"s did not show on my box, so I reverted to IRC on #perl-qa to ask what this distro did on their boxes and we found horror!

On my machine(s), that distro looks like:

$ gzip -d <Text-CSV_XS-0.92.tgz | tar tvf - tar: Record size = 16 blocks drwxr-xr-x merijn/users 0 2012-11-13 10:28 Text-CSV_XS-0.92/ drwxr-xr-x merijn/users 0 2012-11-13 10:28 Text-CSV_XS-0.92/examp +les/ -rwxr-xr-x merijn/users 1966 2012-01-11 09:38 Text-CSV_XS-0.92/examp +les/parser-xs.pl -rw-r--r-- merijn/users 2282 2012-05-30 09:04 Text-CSV_XS-0.92/examp +les/speed.pl -rwxr-xr-x merijn/users 5846 2012-01-11 09:40 Text-CSV_XS-0.92/examp +les/csv2xls -rwxr-xr-x merijn/users 3733 2012-03-08 12:27 Text-CSV_XS-0.92/examp +les/csvdiff -rwxr-xr-x merijn/users 4043 2012-03-20 10:09 Text-CSV_XS-0.92/examp +les/csv-check -rw-r--r-- merijn/users 22087 2012-11-13 10:17 Text-CSV_XS-0.92/Chang +eLog -rw-r--r-- merijn/users 881 2012-11-13 10:28 Text-CSV_XS-0.92/META. +yml -rw-r--r-- merijn/users 1731 2012-11-13 10:28 Text-CSV_XS-0.92/MANIF +EST -rw-r--r-- merijn/users 180260 2012-05-28 11:45 Text-CSV_XS-0.92/pppor +t.h -rw-r--r-- merijn/users 3115 2012-06-15 16:33 Text-CSV_XS-0.92/Makef +ile.PL -rw-r--r-- merijn/users 43306 2012-11-13 10:17 Text-CSV_XS-0.92/CSV_X +S.xs drwxr-xr-x merijn/users 0 2012-11-13 10:28 Text-CSV_XS-0.92/files +/ -rw-r--r-- merijn/users 931 2008-12-20 10:24 Text-CSV_XS-0.92/files +/macosx.csv -rw-r--r-- merijn/users 12 2008-06-04 12:52 Text-CSV_XS-0.92/files +/utf8.csv -rw-r--r-- merijn/users 1706 2012-05-28 12:53 Text-CSV_XS-0.92/READM +E -rw-r--r-- merijn/users 1463 2012-11-13 10:28 Text-CSV_XS-0.92/META. +json drwxr-xr-x merijn/users 0 2012-11-13 10:28 Text-CSV_XS-0.92/t/ -rw-r--r-- merijn/users 5379 2012-06-16 10:36 Text-CSV_XS-0.92/t/46_ +eol_si.t -rw-r--r-- merijn/users 4341 2012-06-16 19:55 Text-CSV_XS-0.92/t/20_ +file.t -rw-r--r-- merijn/users 1925 2012-06-14 20:13 Text-CSV_XS-0.92/t/76_ +magic.t -rw-r--r-- merijn/users 544 2012-06-07 15:08 Text-CSV_XS-0.92/t/81_ +subclass.t -rw-r--r-- merijn/users 489 2007-06-09 12:39 Text-CSV_XS-0.92/t/uti +l.pl -rw-r--r-- merijn/users 1705 2012-06-07 15:07 Text-CSV_XS-0.92/t/40_ +misc.t -rw-r--r-- merijn/users 25550 2012-11-13 10:17 Text-CSV_XS-0.92/t/70_ +rt.t -rw-r--r-- merijn/users 4924 2012-08-27 13:39 Text-CSV_XS-0.92/t/22_ +scalario.t -rw-r--r-- merijn/users 4374 2012-06-16 19:56 Text-CSV_XS-0.92/t/21_ +lexicalio.t -rw-r--r-- merijn/users 1709 2012-06-16 19:53 Text-CSV_XS-0.92/t/77_ +getall.t -rw-r--r-- merijn/users 5609 2012-06-07 15:07 Text-CSV_XS-0.92/t/12_ +acc.t -rw-r--r-- merijn/users 175 2012-06-07 15:07 Text-CSV_XS-0.92/t/00_ +pod.t -rw-r--r-- merijn/users 782 2012-06-07 15:08 Text-CSV_XS-0.92/t/60_ +samples.t -rw-r--r-- merijn/users 245 2012-06-07 15:07 Text-CSV_XS-0.92/t/01_ +pod.t -rw-r--r-- merijn/users 4404 2012-06-16 19:52 Text-CSV_XS-0.92/t/75_ +hashref.t -rw-r--r-- merijn/users 13126 2012-06-16 10:50 Text-CSV_XS-0.92/t/65_ +allow.t -rw-r--r-- merijn/users 4244 2012-06-16 20:09 Text-CSV_XS-0.92/t/50_ +utf8.t -rw-r--r-- merijn/users 2022 2012-06-16 10:30 Text-CSV_XS-0.92/t/41_ +null.t -rw-r--r-- merijn/users 1702 2012-06-15 15:57 Text-CSV_XS-0.92/t/30_ +types.t -rw-r--r-- merijn/users 3274 2012-06-07 15:07 Text-CSV_XS-0.92/t/51_ +utf8.t -rw-r--r-- merijn/users 3920 2012-06-15 15:56 Text-CSV_XS-0.92/t/10_ +base.t -rw-r--r-- merijn/users 2333 2012-06-07 15:08 Text-CSV_XS-0.92/t/55_ +combi.t -rw-r--r-- merijn/users 4597 2012-06-16 10:22 Text-CSV_XS-0.92/t/80_ +diag.t -rw-r--r-- merijn/users 7711 2012-06-16 10:30 Text-CSV_XS-0.92/t/45_ +eol.t -rw-r--r-- merijn/users 10320 2012-06-07 15:07 Text-CSV_XS-0.92/t/15_ +flags.t -rw-r--r-- merijn/users 56767 2012-08-27 14:25 Text-CSV_XS-0.92/CSV_X +S.pm

Whereas on someone else's laptop it showed as:

$ gzip -d <Text-CSV_XS-0.92.tgz | tar tvf - rw-r--r-- 203/100 85 Nov 13 10:28 2012 ./PaxHeaders.23664/Text-CSV +_XS-0.92 rwxr-xr-x 203/20 0 Nov 13 10:28 2012 Text-CSV_XS-0.92/ rw-r--r-- 203/100 90 Nov 13 10:28 2012 Text-CSV_XS-0.92/PaxHeaders +.23664/examples rwxr-xr-x 203/20 0 Nov 13 10:28 2012 Text-CSV_XS-0.92/examples/ rw-r--r-- 203/100 89 Jan 11 09:38 2012 Text-CSV_XS-0.92/examples/P +axHeaders.23664/parser-xs.pl rwxr-xr-x 203/20 1966 Jan 11 09:38 2012 Text-CSV_XS-0.92/examples/p +arser-xs.pl rw-r--r-- 203/100 89 May 30 09:04 2012 Text-CSV_XS-0.92/examples/P +axHeaders.23664/speed.pl rw-r--r-- 203/20 2282 May 30 09:04 2012 Text-CSV_XS-0.92/examples/s +peed.pl rw-r--r-- 203/100 89 Jan 11 09:40 2012 Text-CSV_XS-0.92/examples/P +axHeaders.23664/csv2xls rwxr-xr-x 203/20 5846 Jan 11 09:40 2012 Text-CSV_XS-0.92/examples/c +sv2xls rw-r--r-- 203/100 89 Mar 8 12:27 2012 Text-CSV_XS-0.92/examples/P +axHeaders.23664/csvdiff rwxr-xr-x 203/20 3733 Mar 8 12:27 2012 Text-CSV_XS-0.92/examples/c +svdiff rw-r--r-- 203/100 89 Mar 20 10:09 2012 Text-CSV_XS-0.92/examples/P +axHeaders.23664/csv-check rwxr-xr-x 203/20 4043 Mar 20 10:09 2012 Text-CSV_XS-0.92/examples/c +sv-check rw-r--r-- 203/100 89 Nov 13 10:17 2012 Text-CSV_XS-0.92/PaxHeaders +.23664/ChangeLog rw-r--r-- 203/20 22087 Nov 13 10:17 2012 Text-CSV_XS-0.92/ChangeLog rw-r--r-- 203/100 84 Nov 13 10:28 2012 Text-CSV_XS-0.92/PaxHeaders +.23664/META.yml rw-r--r-- 203/20 881 Nov 13 10:28 2012 Text-CSV_XS-0.92/META.yml rw-r--r-- 203/100 90 Nov 13 10:28 2012 Text-CSV_XS-0.92/PaxHeaders +.23664/MANIFEST rw-r--r-- 203/20 1731 Nov 13 10:28 2012 Text-CSV_XS-0.92/MANIFEST rw-r--r-- 203/100 89 May 28 11:45 2012 Text-CSV_XS-0.92/PaxHeaders +.23664/ppport.h rw-r--r-- 203/20 180260 May 28 11:45 2012 Text-CSV_XS-0.92/ppport.h rw-r--r-- 203/100 87 Jun 15 16:33 2012 Text-CSV_XS-0.92/PaxHeaders +.23664/Makefile.PL rw-r--r-- 203/20 3115 Jun 15 16:33 2012 Text-CSV_XS-0.92/Makefile.P +L rw-r--r-- 203/100 89 Nov 13 10:17 2012 Text-CSV_XS-0.92/PaxHeaders +.23664/CSV_XS.xs rw-r--r-- 203/20 43306 Nov 13 10:17 2012 Text-CSV_XS-0.92/CSV_XS.xs rw-r--r-- 203/100 90 Nov 13 10:28 2012 Text-CSV_XS-0.92/PaxHeaders +.23664/files rwxr-xr-x 203/20 0 Nov 13 10:28 2012 Text-CSV_XS-0.92/files/ rw-r--r-- 203/100 59 Dec 20 10:24 2008 Text-CSV_XS-0.92/files/PaxH +eaders.23664/macosx.csv rw-r--r-- 203/20 931 Dec 20 10:24 2008 Text-CSV_XS-0.92/files/maco +sx.csv rw-r--r-- 203/100 59 Jun 4 12:52 2008 Text-CSV_XS-0.92/files/PaxH +eaders.23664/utf8.csv rw-r--r-- 203/20 12 Jun 4 12:52 2008 Text-CSV_XS-0.92/files/utf8 +.csv rw-r--r-- 203/100 89 May 28 12:53 2012 Text-CSV_XS-0.92/PaxHeaders +.23664/README rw-r--r-- 203/20 1706 May 28 12:53 2012 Text-CSV_XS-0.92/README rw-r--r-- 203/100 84 Nov 13 10:28 2012 Text-CSV_XS-0.92/PaxHeaders +.23664/META.json rw-r--r-- 203/20 1463 Nov 13 10:28 2012 Text-CSV_XS-0.92/META.json rw-r--r-- 203/100 90 Nov 13 10:28 2012 Text-CSV_XS-0.92/PaxHeaders +.23664/t rwxr-xr-x 203/20 0 Nov 13 10:28 2012 Text-CSV_XS-0.92/t/ rw-r--r-- 203/100 89 Jun 16 10:36 2012 Text-CSV_XS-0.92/t/PaxHeade +rs.23664/46_eol_si.t rw-r--r-- 203/20 5379 Jun 16 10:36 2012 Text-CSV_XS-0.92/t/46_eol_s +i.t rw-r--r-- 203/100 89 Jun 16 19:55 2012 Text-CSV_XS-0.92/t/PaxHeade +rs.23664/20_file.t rw-r--r-- 203/20 4341 Jun 16 19:55 2012 Text-CSV_XS-0.92/t/20_file. +t rw-r--r-- 203/100 89 Jun 14 20:13 2012 Text-CSV_XS-0.92/t/PaxHeade +rs.23664/76_magic.t rw-r--r-- 203/20 1925 Jun 14 20:13 2012 Text-CSV_XS-0.92/t/76_magic +.t rw-r--r-- 203/100 89 Jun 7 15:08 2012 Text-CSV_XS-0.92/t/PaxHeade +rs.23664/81_subclass.t rw-r--r-- 203/20 544 Jun 7 15:08 2012 Text-CSV_XS-0.92/t/81_subcl +ass.t rw-r--r-- 203/100 59 Jun 9 12:39 2007 Text-CSV_XS-0.92/t/PaxHeade +rs.23664/util.pl rw-r--r-- 203/20 489 Jun 9 12:39 2007 Text-CSV_XS-0.92/t/util.pl rw-r--r-- 203/100 89 Jun 7 15:07 2012 Text-CSV_XS-0.92/t/PaxHeade +rs.23664/40_misc.t rw-r--r-- 203/20 1705 Jun 7 15:07 2012 Text-CSV_XS-0.92/t/40_misc. +t rw-r--r-- 203/100 89 Nov 13 10:17 2012 Text-CSV_XS-0.92/t/PaxHeade +rs.23664/70_rt.t rw-r--r-- 203/20 25550 Nov 13 10:17 2012 Text-CSV_XS-0.92/t/70_rt.t rw-r--r-- 203/100 89 Aug 27 13:39 2012 Text-CSV_XS-0.92/t/PaxHeade +rs.23664/22_scalario.t rw-r--r-- 203/20 4924 Aug 27 13:39 2012 Text-CSV_XS-0.92/t/22_scala +rio.t rw-r--r-- 203/100 87 Jun 16 19:56 2012 Text-CSV_XS-0.92/t/PaxHeade +rs.23664/21_lexicalio.t rw-r--r-- 203/20 4374 Jun 16 19:56 2012 Text-CSV_XS-0.92/t/21_lexic +alio.t rw-r--r-- 203/100 89 Jun 16 19:53 2012 Text-CSV_XS-0.92/t/PaxHeade +rs.23664/77_getall.t rw-r--r-- 203/20 1709 Jun 16 19:53 2012 Text-CSV_XS-0.92/t/77_getal +l.t rw-r--r-- 203/100 89 Jun 7 15:07 2012 Text-CSV_XS-0.92/t/PaxHeade +rs.23664/12_acc.t rw-r--r-- 203/20 5609 Jun 7 15:07 2012 Text-CSV_XS-0.92/t/12_acc.t rw-r--r-- 203/100 89 Jun 7 15:07 2012 Text-CSV_XS-0.92/t/PaxHeade +rs.23664/00_pod.t rw-r--r-- 203/20 175 Jun 7 15:07 2012 Text-CSV_XS-0.92/t/00_pod.t rw-r--r-- 203/100 89 Jun 7 15:08 2012 Text-CSV_XS-0.92/t/PaxHeade +rs.23664/60_samples.t rw-r--r-- 203/20 782 Jun 7 15:08 2012 Text-CSV_XS-0.92/t/60_sampl +es.t rw-r--r-- 203/100 89 Jun 7 15:07 2012 Text-CSV_XS-0.92/t/PaxHeade +rs.23664/01_pod.t rw-r--r-- 203/20 245 Jun 7 15:07 2012 Text-CSV_XS-0.92/t/01_pod.t rw-r--r-- 203/100 89 Jun 16 19:52 2012 Text-CSV_XS-0.92/t/PaxHeade +rs.23664/75_hashref.t rw-r--r-- 203/20 4404 Jun 16 19:52 2012 Text-CSV_XS-0.92/t/75_hashr +ef.t rw-r--r-- 203/100 89 Jun 16 10:50 2012 Text-CSV_XS-0.92/t/PaxHeade +rs.23664/65_allow.t rw-r--r-- 203/20 13126 Jun 16 10:50 2012 Text-CSV_XS-0.92/t/65_allow +.t rw-r--r-- 203/100 89 Jun 16 20:09 2012 Text-CSV_XS-0.92/t/PaxHeade +rs.23664/50_utf8.t rw-r--r-- 203/20 4244 Jun 16 20:09 2012 Text-CSV_XS-0.92/t/50_utf8. +t rw-r--r-- 203/100 89 Jun 16 10:30 2012 Text-CSV_XS-0.92/t/PaxHeade +rs.23664/41_null.t rw-r--r-- 203/20 2022 Jun 16 10:30 2012 Text-CSV_XS-0.92/t/41_null. +t rw-r--r-- 203/100 89 Jun 15 15:57 2012 Text-CSV_XS-0.92/t/PaxHeade +rs.23664/30_types.t rw-r--r-- 203/20 1702 Jun 15 15:57 2012 Text-CSV_XS-0.92/t/30_types +.t rw-r--r-- 203/100 88 Jun 7 15:07 2012 Text-CSV_XS-0.92/t/PaxHeade +rs.23664/51_utf8.t rw-r--r-- 203/20 3274 Jun 7 15:07 2012 Text-CSV_XS-0.92/t/51_utf8. +t rw-r--r-- 203/100 89 Jun 15 15:56 2012 Text-CSV_XS-0.92/t/PaxHeade +rs.23664/10_base.t rw-r--r-- 203/20 3920 Jun 15 15:56 2012 Text-CSV_XS-0.92/t/10_base. +t rw-r--r-- 203/100 89 Jun 7 15:08 2012 Text-CSV_XS-0.92/t/PaxHeade +rs.23664/55_combi.t rw-r--r-- 203/20 2333 Jun 7 15:08 2012 Text-CSV_XS-0.92/t/55_combi +.t rw-r--r-- 203/100 89 Jun 16 10:22 2012 Text-CSV_XS-0.92/t/PaxHeade +rs.23664/80_diag.t rw-r--r-- 203/20 4597 Jun 16 10:22 2012 Text-CSV_XS-0.92/t/80_diag. +t rw-r--r-- 203/100 89 Jun 16 10:30 2012 Text-CSV_XS-0.92/t/PaxHeade +rs.23664/45_eol.t rw-r--r-- 203/20 7711 Jun 16 10:30 2012 Text-CSV_XS-0.92/t/45_eol.t rw-r--r-- 203/100 89 Jun 7 15:07 2012 Text-CSV_XS-0.92/t/PaxHeade +rs.23664/15_flags.t rw-r--r-- 203/20 10320 Jun 7 15:07 2012 Text-CSV_XS-0.92/t/15_flags +.t rw-r--r-- 203/100 87 Aug 27 14:25 2012 Text-CSV_XS-0.92/PaxHeaders +.23664/CSV_XS.pm rw-r--r-- 203/20 56767 Aug 27 14:25 2012 Text-CSV_XS-0.92/CSV_XS.pm

That does not make me happy. I used GNU tar version 1.26, which is default on my OpenSUSE 12.2 and without it being documented, it produces the latest POSIX 1003.1-2001 (pax) format by default.

You won't notice if you have a "modern" tar (or ptar), but you will with tar versions that only support the older POSIX 1003.1-1988 (ustar) format.

With the generation of distribution well hidden behind ExtUtils::MakeMaker, Module::Build or whatever tool one prefers to use, what is the "best" way to attack this problem?

My choice might not be the best, but for me it is the simplest: set TARFLAGS in my Makefile.PL to force the older format like this (stripped for clarity):

use ExtUtils::MakeMaker;
WriteMakefile (
    ABSTRACT     => "Comma-Separated Values manipulation routines",
    VERSION_FROM => "CSV_XS.pm",
    macro        => { TARFLAGS   => "--format=ustar -c -v -f",
                    },
    );

I just hope this post will enlighten those that are bound to hit the same.


Enjoy, Have FUN! H.Merijn

In reply to Living on the edge by Tux

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • Outside of code tags, you may need to use entities for some characters:
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.
  • Log In?
    Username:
    Password:

    What's my password?
    Create A New User
    Chatterbox?
    and the web crawler heard nothing...

    How do I use this? | Other CB clients
    Other Users?
    Others examining the Monastery: (18)
    As of 2014-04-16 14:01 GMT
    Sections?
    Information?
    Find Nodes?
    Leftovers?
      Voting Booth?

      April first is:







      Results (427 votes), past polls