This is an automated email from the git hooks/post-receive script. sebastic pushed a commit to branch master in repository pdl.
commit 978d1a9e5bc7b8a50a24a5c61be5080c228662f2 Author: Andreas Tille <[email protected]> Date: Fri Jan 15 13:24:10 2016 +0100 Inject current Debian packaging --- debian/changelog | 65 ++++++++ debian/control | 15 +- debian/extract_testsuite_results_from_buildlog.pl | 12 ++ debian/f77conf.pl | 1 + debian/filter-test.pl | 47 ++++++ .../patches/build-pdl-wrapper-via-makefile.patch | 58 +++++++ debian/patches/callext_compile_options.patch | 17 ++ debian/patches/doc_dirlist.patch | 57 +++++++ debian/patches/dumper_gnukfreebsd.patch | 20 +++ debian/patches/fix_manifest.patch | 24 +++ debian/patches/fix_pod2man_errors.patch | 95 +++++++++++ debian/patches/minuit_default_integer_8.patch | 176 +++++++++++++++++++++ debian/patches/series | 9 ++ debian/patches/slatec_default_integer_8.patch | 109 +++++++++++++ debian/patches/testsuite_fixes.patch | 118 ++++++++++++++ debian/pdl.dirs | 1 + debian/pdl.docs | 2 +- debian/pdl.install.in | 3 + debian/pdl.links.in | 4 + debian/pdl.lintian-overrides.in | 9 ++ debian/pdl.postinst.in | 47 ++++++ debian/pdl.triggers.in | 2 + debian/perldl.conf | 19 +-- debian/rules | 31 ++-- debian/which_tests_failed.pl | 107 +++++++++++++ 25 files changed, 1016 insertions(+), 32 deletions(-) diff --git a/debian/changelog b/debian/changelog index 998cee5..8024826 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,68 @@ +pdl (1:2.007-4) unstable; urgency=high + + * Fix "problems upgrading from wheezy due to triggers"; print warning + to STDERR if doc index could not be updated instead of causing + postinst failure. (Closes: #729220) + This will apply only in subsequent releases, as the upgrade problem + is caused by the pdl package in wheezy. + Cloned bug to perl (#773323), in order to have a 'Breaks: pdl (<<1:2.007)' + for smooth wheezy->jessie updates. + Changes to pdl.postinst have been tested by backporting to wheezy's pdl + version, which solved the wheezy->jessie upgrade issues. + + -- Henning Glawe <[email protected]> Wed, 17 Dec 2014 10:29:01 +0100 + +pdl (1:2.007-3) unstable; urgency=low + + * Acknowledge NMU + * For the time being, always use 64bit integers in Fortran libs + slatec and minuit by default, as debian perl packages switched + to ivsize=8 on all arches, implying a 64bit index type in PDL + + -- Henning Glawe <[email protected]> Wed, 24 Sep 2014 20:14:23 +0200 + +pdl (1:2.007-2.1) unstable; urgency=medium + + [ gregor herrmann ] + * Non-maintainer upload. + * Fix "hardcodes /usr/lib/perl5": + - rename files in debian/ which contain "/usr/lib/perl5" to .in, replace + "/usr/lib/perl5" with a variable + - create original files from debian/rules, replacing the variable with + the current value of $Config{vendorarch} + (Closes: #752351) + + -- Damyan Ivanov <[email protected]> Mon, 04 Aug 2014 07:54:19 +0000 + +pdl (1:2.007-2) unstable; urgency=low + + * successfully built with gcc 4.8 (closes: #701335, #713346) + * add build log evalution helpers to source package: extract + test suite output from buildlog, cross-refernce test/subtest + failures between architectures + * use shell to join stderr into stdout while running test suite + * fix Dumper.pm on kfreebsd: 'gnukfreebsd' was assumed as a bsd + userland, which disabled/broke calls to 'uuencode' and 'uudecode' + * fix debian/filter-test.pl, which cut the test log too early + due to a too-unspecific regex + * prefer F77Conf over ExtUtils::F77 in t/flexraw_fortran.t in order + to prevent test failures on kfreebsd* and hurd* + + -- Henning Glawe <[email protected]> Mon, 11 Nov 2013 13:34:09 +0100 + +pdl (1:2.007-1) unstable; urgency=low + + * new upstream release + * upstream now builds with gcc 4.8 and perl 5.18 (closes: #721589) + * disable PDL::FFTW and PDL::Graphics::PLplot, both are depreciated + upstream and are available as separate module distributions + * make successful testsuite run mandatory + * include /usr/share/perl5/PDL in trigger modify upstream's + scantree.pl to accept comma-separated directory lists + (closes: #681937) + + -- Henning Glawe <[email protected]> Thu, 07 Nov 2013 09:23:38 +0100 + pdl (1:2.4.11-4) unstable; urgency=low * fix pdl versioned dep in dh_pdl diff --git a/debian/control b/debian/control index a316ee4..dfe6f2f 100644 --- a/debian/control +++ b/debian/control @@ -2,7 +2,7 @@ Source: pdl Section: math Priority: optional Maintainer: Henning Glawe <[email protected]> -Standards-Version: 3.9.3 +Standards-Version: 3.9.4 Build-Depends: gfortran, dpkg-dev (>= 1.16.1~), @@ -10,10 +10,8 @@ Build-Depends: libncurses-dev, perl (>= 5.8.0-3), debhelper (>= 9), - libplplot-dev, libinline-perl (>= 0.43), libgsl0-dev, - fftw-dev, libxext-dev, libhdf4-alt-dev | libhdf4g-dev, libproj-dev | proj, @@ -21,7 +19,7 @@ Build-Depends: libgd2-xpm-dev, libastro-fits-header-perl, sharutils, - libopengl-perl (>= 0.65), + libopengl-perl (>= 0.6702), libxi-dev, libxmu-dev, freeglut3-dev, @@ -37,7 +35,6 @@ Depends: ${perl:Depends}, libterm-readkey-perl, ${shlibs:Depends}, - libopengl-perl (>=0.62), ${misc:Depends} Recommends: libterm-readline-gnu-perl | libterm-readline-perl-perl @@ -46,11 +43,15 @@ Suggests: netpbm | imagemagick, libastro-fits-header-perl, libinline-perl, - libplplot-dev, doc-base, libextutils-f77-perl, proj-bin | proj, - libdevel-repl-perl (>=1.003011) + libdevel-repl-perl (>=1.003011), + libopengl-perl (>= 0.6702), + libhdf4-0-alt, + libgl1-mesa-glx | libgl1, + libpdl-fftw-perl, + libpdl-graphics-plplot-perl Conflicts: r-pdl Replaces: r-pdl Provides: diff --git a/debian/extract_testsuite_results_from_buildlog.pl b/debian/extract_testsuite_results_from_buildlog.pl new file mode 100755 index 0000000..3843a96 --- /dev/null +++ b/debian/extract_testsuite_results_from_buildlog.pl @@ -0,0 +1,12 @@ +#!/usr/bin/perl +use strict; +use warnings; +my $hot=0; +while (<>) { + last if (/^END test verbose/); + if (/^BEGIN test verbose/) { + $hot = 1; + next; + } + print if ($hot); +} diff --git a/debian/f77conf.pl b/debian/f77conf.pl index d27f9ae..93d7a55 100644 --- a/debian/f77conf.pl +++ b/debian/f77conf.pl @@ -35,6 +35,7 @@ sub cflags { my $fflags = ''; $fflags = $ENV{FFLAGS} if (defined $ENV{FFLAGS}); $fflags.=' -fPIC'; + $fflags.=' -fdefault-integer-8'; return($fflags); } diff --git a/debian/filter-test.pl b/debian/filter-test.pl new file mode 100755 index 0000000..c93ed7d --- /dev/null +++ b/debian/filter-test.pl @@ -0,0 +1,47 @@ +#!/usr/bin/perl +use strict; +use warnings; + +my @cmdline=('make','TEST_VERBOSE=1','LC_ALL=C'); +push @cmdline,"LDFLAGS=$ENV{LDFLAGS}" if (defined $ENV{LDFLAGS}); +push @cmdline,'test'; +push @cmdline,'2>&1'; + +my $cmdline=join(' ',@cmdline); + +open(my $fh_test,'-|',$cmdline); +my $hot=0; +my $last_enter_dir; +my $debug = 0; +print "BEGIN test verbose\n"; +while (<$fh_test>) { + if (/^make\[\d+\]: Entering directory/) { + $last_enter_dir=$_; + $hot=0; + next; + } + if (/\"test_harness\(/) { + $hot=2; + if ($debug) { + print "ADDHOT: " . $last_enter_dir; + } else { + print $last_enter_dir; + } + } + if ($hot) { + $hot-- if ($hot < 2); + if ($debug) { + print " HOT: " . $_; + } else { + print; + } + if (/^Result:\s*(?:PASS|FAIL)/) { + $hot--; + } + } elsif ($debug) { + print " COLD: " . $_ unless ($hot); + } +} +print "END test verbose\n"; +my $status=close($fh_test); +exit($status ? 0 : 1); diff --git a/debian/patches/build-pdl-wrapper-via-makefile.patch b/debian/patches/build-pdl-wrapper-via-makefile.patch new file mode 100644 index 0000000..e1ca960 --- /dev/null +++ b/debian/patches/build-pdl-wrapper-via-makefile.patch @@ -0,0 +1,58 @@ +--- a/Makefile.PL ++++ b/Makefile.PL +@@ -508,7 +508,7 @@ + my $cleanup = 'pdl perldl pdldoc pdldoc.db pdldoc.pod perldl.pod '; + + if($^O !~ /mswin32/i) { +- $cleanup = 'pdl.c ' . $cleanup; ++ $cleanup = 'pdl.c pdl.o ' . $cleanup; + } + + +@@ -709,6 +709,21 @@ + + if($Config{make} =~ /\bdmake/i) { + foreach $target (@$list) { ++ if ($target eq 'pdl') { ++ next if ($^O =~ /mswin32/i); ++ push @m, " ++all :: $target ++ \$(NOECHO) \$(NOOP) ++ ++$target: $target.o ++ mkdir -p blib/bin ++ \$(LD) -o blib/bin/$target $target.o ++ ++$target.c: $plfile ++ \$(PERLRUNINST) $plfile $target ++"; ++ next; ++ } + push @m, " + all :: $target + \$(NOECHO) \$(NOOP) +@@ -726,7 +741,9 @@ + # why it still doesn't. (CED 2012-11-12) + my $compilestr; + if($plfile eq "pdl.PL" && $Config{make} !~ /\bnmake/i) { +- $compilestr = "\n\t\$(CC) -o pdl pdl.c\n"; ++ $compilestr = "\n\t\$(CC) \$(CFLAGS) \$(CPPFLAGS) -c -o pdl.o pdl.c\n"; ++ $compilestr.= "\t\$(LD) -o pdl pdl.o\n"; ++ $compilestr.= "\tcp -a pdl blib/bin\n"; + } else { + $compilestr = ""; + } +--- a/pdl.PL ++++ b/pdl.PL +@@ -84,11 +84,4 @@ + nosubs + ; + +-use Config; +-my $dir = 'blib/bin'; +-#manually create directory. Older versions of EU::MM (at least as late +-#as 6.17 which ships with perl 5.8.6) don't automatically create it. +-mkdir $dir unless -e $dir && -d $dir; +-`$Config{cc} -o $dir/pdl pdl.c`; +- + exit 0; diff --git a/debian/patches/callext_compile_options.patch b/debian/patches/callext_compile_options.patch new file mode 100644 index 0000000..ca14cc1 --- /dev/null +++ b/debian/patches/callext_compile_options.patch @@ -0,0 +1,17 @@ +--- a/t/callext.t ++++ b/t/callext.t +@@ -34,8 +34,12 @@ + my $out = File::Spec->catfile('t', 'callext.'.$Config{dlext}); + + # Compile the code +- +-callext_cc($cfile, "-I$inc", '', $out); ++my $cflags="-I$inc"; ++$cflags.=" $ENV{CPPFLAGS}" if (defined $ENV{CPPFLAGS}); ++$cflags.=" $ENV{CFLAGS}" if (defined $ENV{CFLAGS}); ++my $ldflags=''; ++$ldflags.=" $ENV{LDFLAGS}" if (defined $ENV{LDFLAGS}); ++callext_cc($cfile, $cflags, $ldflags, $out); + + my $y = sequence(5,4)+2; # Create PDL + my $x = $y*20+100; # Another diff --git a/debian/patches/doc_dirlist.patch b/debian/patches/doc_dirlist.patch new file mode 100644 index 0000000..388cbee --- /dev/null +++ b/debian/patches/doc_dirlist.patch @@ -0,0 +1,57 @@ +--- a/Doc/scantree.pl ++++ b/Doc/scantree.pl +@@ -8,39 +8,42 @@ + $opt_v = 0; + + getopts('v'); +-$dir = shift @ARGV; ++$dirarg = shift @ARGV; + $outdb = shift @ARGV; + $outindex = shift @ARGV; + +-unless (defined $dir) { +- ($dir = $INC{'PDL.pm'}) =~ s/PDL\.pm$//i; ++unless (defined $dirarg) { ++ ($dirarg = $INC{'PDL.pm'}) =~ s/PDL\.pm$//i; + umask 0022; +- print "DIR = $dir\n"; ++ print "DIR = $dirarg\n"; + } ++my @dirs = split /,/,$dirarg; + unless (defined $outdb) { +- $outdb = "$dir/PDL/pdldoc.db"; ++ $outdb = "$dirs[0]/PDL/pdldoc.db"; + print "DB = $outdb\n"; + } + + $currdir = getcwd; + +-chdir $dir or die "can't change to $dir"; +-$dir = getcwd; +- + unlink $outdb if -e $outdb; + $onldc = new PDL::Doc(); + $onldc->outfile($outdb); +-$onldc->scantree($dir."/PDL",$opt_v); +-$onldc->scan($dir."/PDL.pm",$opt_v); + +-chdir $currdir; ++foreach $dir (@dirs) { ++ chdir $dir or die "can't change to $dir"; ++ $dir = getcwd; ++ ++ $onldc->scantree($dir."/PDL",$opt_v); ++ $onldc->scan($dir."/PDL.pm",$opt_v) if (-s $dir."/PDL.pm"); ++ chdir $currdir; ++} + + print STDERR "saving...\n"; + $onldc->savedb(); + @mods = $onldc->search('module:',['Ref'],1); + @mans = $onldc->search('manual:',['Ref'],1); + @scripts = $onldc->search('script:',['Ref'],1); +-$outdir = "$dir/PDL"; ++$outdir = "$dirs[0]/PDL"; + # ($outdir = $INC{'PDL.pm'}) =~ s/\.pm$//i; + $outindex="$outdir/Index.pod" unless (defined $outindex); + unlink $outindex if -e $outindex; # Handle read only file diff --git a/debian/patches/dumper_gnukfreebsd.patch b/debian/patches/dumper_gnukfreebsd.patch new file mode 100644 index 0000000..df29ba1 --- /dev/null +++ b/debian/patches/dumper_gnukfreebsd.patch @@ -0,0 +1,20 @@ +--- a/IO/Dumper.pm ++++ b/IO/Dumper.pm +@@ -118,7 +118,7 @@ + # make sure not to use uuencode/uudecode + # on MSWin32 systems (it doesn't work) + # Force Convert::UU for BSD systems to see if that fixes uudecode problem +- if ($^O !~ /(MSWin32|bsd)$/) { ++ if (($^O !~ /(MSWin32|bsd)$/) or ($^O eq 'gnukfreebsd')) { + $PDL::IO::Dumper::uudecode_ok = &$checkprog('uudecode') and &$checkprog('uuencode') and ($^O !~ /MSWin32/); + } + +@@ -424,7 +424,7 @@ + # so we go this way for now as it is less-likely to break things + # + my $uudecode_string = "|uudecode"; +-$uudecode_string .= " -s" if $^O =~ m/darwin|((free|open)bsd)|dragonfly/; ++$uudecode_string .= " -s" if (($^O =~ m/darwin|((free|open)bsd)|dragonfly/) and ($^O ne 'gnukfreebsd')); + + sub PDL::IO::Dumper::uudecode_PDL { + my $lines = shift; diff --git a/debian/patches/fix_manifest.patch b/debian/patches/fix_manifest.patch new file mode 100644 index 0000000..8d655cd --- /dev/null +++ b/debian/patches/fix_manifest.patch @@ -0,0 +1,24 @@ +--- a/MANIFEST ++++ b/MANIFEST +@@ -650,8 +650,6 @@ + debian/copyright + debian/dh_pdl + debian/f77conf.pl +-debian/fix_man_encoding.sed +-debian/fix_man_name.sed + debian/patches/series + debian/pdl.dirs + debian/pdl.doc-base +--- a/MANIFEST.SKIP ++++ b/MANIFEST.SKIP +@@ -267,3 +267,10 @@ + ~$ + ^work + ^pdl.*-log.txt$ ++^\.pc/.*$ ++^debian/pdl/.*$ ++^debian/dh_pdl\.1$ ++^debian/files$ ++^debian/pdl\.debhelper\.log$ ++^debian/pdl\..*\.debhelper$ ++^debian/pdl\.substvars$ diff --git a/debian/patches/fix_pod2man_errors.patch b/debian/patches/fix_pod2man_errors.patch new file mode 100644 index 0000000..c5ec87f --- /dev/null +++ b/debian/patches/fix_pod2man_errors.patch @@ -0,0 +1,95 @@ +--- a/Basic/Pod/PP.pod ++++ b/Basic/Pod/PP.pod +@@ -347,7 +347,7 @@ + For the above situation, my compiler tells me: + + ... +- test.pd:15: error: ‘rmp’ undeclared (first use in this function) ++ test.pd:15: error: 'rmp' undeclared (first use in this function) + ... + + In my example script (called test.pd), line 15 is exactly the line at which +--- a/Basic/Complex/complex.pd ++++ b/Basic/Complex/complex.pd +@@ -20,6 +20,8 @@ + + + pp_addpm {At => Top}, <<'EOD'; ++=encoding utf8 ++ + =head1 NAME + + PDL::Complex - handle complex numbers +@@ -72,7 +74,7 @@ + + =item * + +-This module has received some testing by Vanuxem Gr�gory ++This module has received some testing by Vanuxem Grégory + (g.vanuxem at wanadoo dot fr). Please report any other errors you + come across! + +--- a/Lib/Func.pm ++++ b/Lib/Func.pm +@@ -1,3 +1,4 @@ ++=encoding utf-8 + + =head1 NAME + +@@ -931,7 +932,7 @@ + to form C<PDL::Func>. Comments greatly appreciated on the + current implementation, as it is not too sensible. + +-Thanks to Robin Williams, Halld�r Olafsson, and Vince McIntyre. ++Thanks to Robin Williams, Halldór Olafsson, and Vince McIntyre. + + =head1 AUTHOR + +--- a/Basic/Slices/slices.pd ++++ b/Basic/Slices/slices.pd +@@ -169,7 +169,7 @@ + dimension and C<$ind> has more than 0 dimensions, they must agree in + a threading sense. + +-C<index1d> uses a single active dim in C<$ind> to produce a list of ++=item C<index1d> uses a single active dim in C<$ind> to produce a list of + indexed values in the 0 dim of the output - it is useful for + collapsing C<$source> by indexing with a single row of values long + C<$source>'s 0 dimension. The output has the same number of dims as +@@ -178,11 +178,13 @@ + C<$ind> and $<source> both have more than 1 dim, then all dims higher + than 0 must agree in a threading sense. + +-C<index2d> works like C<index> but uses separate piddles for X and Y ++=item C<index2d> works like C<index> but uses separate piddles for X and Y + coordinates. For more general N-dimensional indexing, see the + L<PDL::NiceSlice> syntax or L<PDL::Slices> (in particular C<slice>, + C<indexND>, and C<range>). + ++=back ++ + These functions are two-way, i.e. after + + $c = $a->index(pdl[0,5,8]); +--- a/Lib/Transform/Cartography/Cartography.pm ++++ b/Lib/Transform/Cartography/Cartography.pm +@@ -323,7 +323,7 @@ + + =item dup - if true, the meridian at the far boundary is duplicated. + +-==back ++=back + + =cut + +--- a/Basic/Ufunc/ufunc.pd ++++ b/Basic/Ufunc/ufunc.pd +@@ -801,7 +801,7 @@ + percentile must be between 0.0 and 1.0. When the specified percentile + falls between two values, the nearest data value is the result. + The algorithm implemented is from the textbook version described +-first at L< http://en.wikipedia.org/wiki/Percentile>. ++first at L<http://en.wikipedia.org/wiki/Percentile>. + + By using L<xchg|PDL::Slices/xchg> etc. it is possible to use + I<any> dimension. diff --git a/debian/patches/minuit_default_integer_8.patch b/debian/patches/minuit_default_integer_8.patch new file mode 100644 index 0000000..2089c10 --- /dev/null +++ b/debian/patches/minuit_default_integer_8.patch @@ -0,0 +1,176 @@ +Index: pdl-2.007/Lib/Minuit/FCN.c +=================================================================== +--- pdl-2.007.orig/Lib/Minuit/FCN.c 2013-09-21 13:45:48.000000000 +0000 ++++ pdl-2.007/Lib/Minuit/FCN.c 2014-09-25 07:43:14.000000000 +0000 +@@ -35,15 +35,15 @@ + #endif + + static SV* mnfunname; +-static int ene; ++static long long ene; + +-void FCN(int* npar,double* grad,double* fval,double* xval,int* iflag,double* futil); ++void FCN(long long* npar,double* grad,double* fval,double* xval,long long* iflag,double* futil); + +-void FCN(int* npar,double* grad,double* fval,double* xval,int* iflag,double* futil){ ++void FCN(long long* npar,double* grad,double* fval,double* xval,long long* iflag,double* futil){ + + SV* funname; + +- int count,i; ++ long long count,i; + double* x; + + I32 ax ; +@@ -54,7 +54,7 @@ + pdl* pxval; + SV* pxvalsv; + +- int ndims; ++ long long ndims; + PDL_Indx *pdims; + + dSP; +Index: pdl-2.007/Lib/Minuit/minuit.pd +=================================================================== +--- pdl-2.007.orig/Lib/Minuit/minuit.pd 2013-08-07 11:52:26.000000000 +0000 ++++ pdl-2.007/Lib/Minuit/minuit.pd 2014-09-25 08:33:12.469144306 +0000 +@@ -6,18 +6,18 @@ + #include<string.h> + #include "FCN.c" + +-extern void MNINIT(int*,int*,int*); +-extern void MNSETI(char*,int); +-extern void MNPARM(int*,char*,double*,double*,double*,double*,int*,int); +-extern void MNEXCM(void* f,char*,double*,int*,int*,double* futil,int); +-extern void MNPOUT(int*,char*,double*,double*,double*,double*,int*,int); +-extern void MNSTAT(double*,double*,double*,int*,int*,int*); +-extern void MNEMAT(double*,int*); /* Matrix here! */ +-extern void MNERRS(int*,double*,double*,double*,double*); +-extern void MNCONT(void* f,int*,int*,int*,double*,double*,int*,double* futil); ++extern void MNINIT(long long*,long long*,long long*); ++extern void MNSETI(char*,long); ++extern void MNPARM(long long*,char*,double*,double*,double*,double*,long long*,long); ++extern void MNEXCM(void* f,char*,double*,long long*,long long*,double* futil,long); ++extern void MNPOUT(long long*,char*,double*,double*,double*,double*,long long*,long); ++extern void MNSTAT(double*,double*,double*,long long*,long long*,long long*); ++extern void MNEMAT(double*,long long*); /* Matrix here! */ ++extern void MNERRS(long long*,double*,double*,double*,double*); ++extern void MNCONT(void* f,long long*,long long*,long long*,double*,double*,long long*,double* futil); + +-extern void ABRE(int*,char*,char*,int,int); +-extern void CIERRA(int*); ++extern void ABRE(long*,char*,char*,long,long); ++extern void CIERRA(long long*); + '); + # add C code to the section preceding + # the first MODULE keyword +@@ -367,7 +367,7 @@ + '); + + pp_def('mninit', +- Pars => 'int a();int b(); int c();', ++ Pars => 'longlong a();longlong b(); longlong c();', + Code => 'MNINIT($P(a),$P(b),$P(c)); + '); + pp_addxs('',' +@@ -375,7 +375,7 @@ + mnseti(str) + char* str; + CODE: +- int largo; ++ long largo; + largo = strlen(str); + MNSETI(str,largo); + '); +@@ -388,14 +388,14 @@ + # '); + + pp_def('mn_abre', +- Pars => 'int l();', ++ Pars => 'longlong l();', + OtherPars => 'char* nombre; char* mode;', + Code => ' +- int l1,l2; l1 = strlen($COMP(nombre)); l2 = strlen($COMP(mode)); ++ long l1,l2; l1 = strlen($COMP(nombre)); l2 = strlen($COMP(mode)); + ABRE($P(l),$COMP(nombre),$COMP(mode),l1,l2); + '); + pp_def('mn_cierra', +- Pars => 'int l();', ++ Pars => 'longlong l();', + Code => 'CIERRA($P(l));' + ); + +@@ -449,9 +449,9 @@ + '); + + pp_def('mnparm', +- Pars => 'int a(); double b(); double c(); double d(); double e(); int [o] ia()', ++ Pars => 'longlong a(); double b(); double c(); double d(); double e(); longlong [o] ia()', + OtherPars => "char* str", +- Code => ' int largo; largo=strlen($COMP(str)); ++ Code => ' long largo; largo=strlen($COMP(str)); + MNPARM($P(a),$COMP(str),$P(b),$P(c),$P(d),$P(e),$P(ia),largo); + '); + +@@ -487,10 +487,10 @@ + '); + + pp_def('mnexcm', +- Pars =>'double a(n); int ia(); int [o] ib();', +- OtherPars => 'char* str; SV* funcion; int numelem;', ++ Pars =>'double a(n); longlong ia(); longlong [o] ib();', ++ OtherPars => 'char* str; SV* funcion; IV numelem;', + Code => 'double zero; +- int largo; largo=strlen($COMP(str)); ++ long largo; largo=strlen($COMP(str)); + ene = $COMP(numelem); + zero = 0.0; + mnfunname = $COMP(funcion); +@@ -525,7 +525,7 @@ + '); + + pp_def('mnpout', +- Pars => 'int ia(); double [o] a(); double [o] b(); double [o] c(); double [o] d();int [o] ib();', ++ Pars => 'longlong ia(); double [o] a(); double [o] b(); double [o] c(); double [o] d();longlong [o] ib();', + OtherPars => 'SV* str;', + Code => 'STRLEN largo; SV* tempo; char* uuu; + tempo = SvRV($COMP(str)); +@@ -551,7 +551,7 @@ + } + '); + pp_def('mnstat', +- Pars => 'double [o] a(); double [o] b(); double [o] c(); int [o] ia(); int [o] ib(); int [o] ic();', ++ Pars => 'double [o] a(); double [o] b(); double [o] c(); longlong [o] ia(); longlong [o] ib(); longlong [o] ic();', + Code => 'MNSTAT($P(a),$P(b),$P(c),$P(ia),$P(ib),$P(ic)); + '); + +@@ -579,7 +579,7 @@ + '); + pp_def('mnemat', + Pars => 'double [o] mat(n,n);', +- Code => 'int numrows; numrows = $SIZE(n); ++ Code => 'long long numrows; numrows = $SIZE(n); + MNEMAT($P(mat),&numrows); + '); + +@@ -607,7 +607,7 @@ + } + '); + pp_def('mnerrs', +- Pars => 'int ia(); double [o] a(); double [o] b(); double [o] c(); double [o] d();', ++ Pars => 'longlong ia(); double [o] a(); double [o] b(); double [o] c(); double [o] d();', + Code => 'MNERRS($P(ia),$P(a),$P(b),$P(c),$P(d)); + '); + +@@ -641,8 +641,8 @@ + '); + + pp_def('mncont', +- Pars => 'int ia(); int ib(); int ic(); double [o] a(n); double [o] b(n); int [o] id();', +- OtherPars => 'SV* funcion; int numelem;', ++ Pars => 'longlong ia(); longlong ib(); longlong ic(); double [o] a(n); double [o] b(n); longlong [o] id();', ++ OtherPars => 'SV* funcion; IV numelem;', + Code => ' double zero; + zero = 0.0; + mnfunname = $COMP(funcion); diff --git a/debian/patches/series b/debian/patches/series index 8b13789..563575e 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1 +1,10 @@ +build-pdl-wrapper-via-makefile.patch +fix_pod2man_errors.patch +callext_compile_options.patch +doc_dirlist.patch +dumper_gnukfreebsd.patch +fix_manifest.patch +testsuite_fixes.patch +slatec_default_integer_8.patch +minuit_default_integer_8.patch diff --git a/debian/patches/slatec_default_integer_8.patch b/debian/patches/slatec_default_integer_8.patch new file mode 100644 index 0000000..f4fe40e --- /dev/null +++ b/debian/patches/slatec_default_integer_8.patch @@ -0,0 +1,109 @@ +--- a/Lib/Slatec/slatec.pd ++++ b/Lib/Slatec/slatec.pd +@@ -369,7 +369,7 @@ + (($_->[0] eq "Mat" or $_->[0] eq "FuncRet") + and join '',@{$_}[1,2,3]) or + (($_->[0] eq "IntFlag" or $_->[0] eq "FortranIndex" or $_->[0] eq "CheckFlag") +- and "int ".join '',@{$_}[1,2,3]) or ++ and "longlong ".join '',@{$_}[1,2,3]) or + die "Invalid ppars ",(join ',',@$_),"\n"; + } + } @args2; +@@ -417,12 +417,12 @@ + my @ifincode; + foreach ( @args2 ) { + if ( $_->[0] eq "Incfd" ) { +- push @ifincode, "int _" . lc($_->[0]) . " = 1;"; ++ push @ifincode, "long long _" . lc($_->[0]) . " = 1;"; + } elsif ( $_->[0] eq "CheckFlag" ) { +- push @ifincode, "int _" . lc($_->[0]) . " = \$$_->[2]();"; ++ push @ifincode, "long long _" . lc($_->[0]) . " = \$$_->[2]();"; + } elsif ( $_->[0] eq "FortranIndex" ) { + # convert from C to F77 index +- push @ifincode, "int _$_->[2] = \$$_->[2]() + 1;" ++ push @ifincode, "long long _$_->[2] = \$$_->[2]() + 1;" + } + } + +@@ -502,7 +502,7 @@ + $h = float($h); + rs($h, + (my $eigval=PDL->null), +- (long (pdl (1))),(my $eigmat=PDL->null), ++ (longlong (pdl (1))),(my $eigmat=PDL->null), + (my $fvone = PDL->null),(my $fvtwo = PDL->null), + (my $errflag=PDL->null) + ); +@@ -528,7 +528,7 @@ + if(sum($info) > 0) { + barf("Uninvertible matrix given to inv: $m\n"); + } +- gedi($m,$ipvt,(pdl 0,0),(null),(long( pdl (1)))); ++ gedi($m,$ipvt,(pdl 0,0),(null),(longlong( pdl (1)))); + $m; + } + +@@ -540,7 +540,7 @@ + if(sum($info) > 0) { + barf("Uninvertible matrix given to inv: $m\n"); + } +- gedi($m,$ipvt,(my $det=null),(null),(long( pdl (10)))); ++ gedi($m,$ipvt,(my $det=null),(null),(longlong( pdl (10)))); + return $det->slice('(0)')*10**$det->slice('(1)'); + } + +@@ -1569,12 +1569,12 @@ + # bar runs across polynomial coefficients. + # + pp_def('polfit', +- Pars => 'x(n); y(n); w(n); int maxdeg(); int [o]ndeg(); [o]eps(); [o]r(n); int [o]ierr(); [o]a(foo); [o]coeffs(bar);[t]xtmp(n);[t]ytmp(n);[t]wtmp(n);[t]rtmp(n)', ++ Pars => 'x(n); y(n); w(n); longlong maxdeg(); longlong [o]ndeg(); [o]eps(); [o]r(n); longlong [o]ierr(); [o]a(foo); [o]coeffs(bar);[t]xtmp(n);[t]ytmp(n);[t]wtmp(n);[t]rtmp(n)', + OtherPars => '', + Code => ' +- int maxord; +- int ord; +- int k; ++ long long maxord; ++ long long ord; ++ long long k; + $GENERIC() zero = 0; + + $TFD(polfit'.$uscore.',dpolft'.$uscore.') (&$PRIV(__n_size),$P(x),$P(y),$P(w),$P(maxdeg),$P(ndeg),$P(eps),$P(r),$P(ierr),$P(a)); +@@ -1590,9 +1590,9 @@ + GenericTypes => ['F','D'], + HandleBad => 1, + NoBadifNaN => 1, +- BadCode => 'int ns = $SIZE(n); +- int i; +- int j = 0; ++ BadCode => 'long long ns = $SIZE(n); ++ long long i; ++ long long j = 0; + if($SIZE(n)<$maxdeg()) { + barf("polfit: Must have at least <n> points to fit <n> coefficients"); + } +@@ -1613,9 +1613,9 @@ + $ierr() = 2; + } else { + /* Found enough good datapoints for a fit -- do the fit */ +- int k; +- int ord; +- int maxord; ++ long long k; ++ long long ord; ++ long long maxord; + $GENERIC() zero = 0; + + /* Do the fit */ +--- a/t/slatec.t ++++ b/t/slatec.t +@@ -237,7 +237,8 @@ + ( $ismon, $err ) = chcm($x, $f, $d, 1); + + ok(($err->getndims==0) & ($err->sum == 0)); +-ok($ismon->get_datatype == 3); ++# HG: datatype has been forced to longlong ++ok($ismon->get_datatype == 5); + ok(tapprox($ismon,$ans)); + + ## Test: chia diff --git a/debian/patches/testsuite_fixes.patch b/debian/patches/testsuite_fixes.patch new file mode 100644 index 0000000..a7e819a --- /dev/null +++ b/debian/patches/testsuite_fixes.patch @@ -0,0 +1,118 @@ +Index: pdl-2.007/t/config.t +=================================================================== +--- pdl-2.007.orig/t/config.t 2013-05-12 20:09:47.000000000 +0000 ++++ pdl-2.007/t/config.t 2014-09-25 07:43:14.000000000 +0000 +@@ -19,7 +19,7 @@ + local $TODO = 'Known_problem sf.net bug #3030998' if ($PDL::Config{SKIP_KNOWN_PROBLEMS} or exists $ENV{SKIP_KNOWN_PROBLEMS} ); + + # generate list of WITH_* keys from PDL::Config +- my @keys = grep { /^WITH_/ } keys %PDL::Config; ++ my @keys = sort grep { /^WITH_/ } keys %PDL::Config; + foreach my $key ( @keys ) { + # there should be no undef values + ok( defined $PDL::Config{$key} , "check $key in Config.pm" ); +Index: pdl-2.007/t/flexraw_fortran.t +=================================================================== +--- pdl-2.007.orig/t/flexraw_fortran.t 2013-09-14 15:07:45.000000000 +0000 ++++ pdl-2.007/t/flexraw_fortran.t 2014-09-25 09:04:08.959415513 +0000 +@@ -28,6 +28,8 @@ + + my $exec = $^O =~ /win32/i ? '.exe' : ''; + my $null = $^O =~ /win32/i ? ' 2>nul' : ' 2>/dev/null'; ++my $F77; ++my $F77flags; + + BEGIN{ + +@@ -44,13 +46,30 @@ + } elsif ($datalen > 70) { + plan skip_all => "TEMPDIR path too long for f77 ($datalen chars), skipping all tests"; + } else { +- eval " use ExtUtils::F77; "; +- if ( $@ ) { +- plan skip_all => "Skip all tests as ExtUtils::F77 not found"; +- exit 0; ++ if (exists $PDL::Config{F77CONF} && -f $PDL::Config{F77CONF}) { ++ print "loading F77 configuration from $PDL::Config{F77CONF}...\n"; ++ eval "require '$PDL::Config{F77CONF}'"; ++ if ($@ ne "") { ++ plan skip_all => "F77CONF file not loaded"; ++ } ++ $F77 = F77Conf::compiler(); ++ $F77flags = F77Conf::cflags(); + } else { +- plan tests => $ntests; ++ eval " use ExtUtils::F77; "; ++ if ( $@ ) { ++ plan skip_all => "Skip all tests as ExtUtils::F77 not found"; ++ exit 0; ++ } ++ if ($ExtUtils::F77::VERSION > 1.03) { ++ $F77 = ExtUtils::F77::compiler(); ++ $F77flags = ExtUtils::F77::cflags(); ++ } else { ++ $F77 = 'f77'; ++ $F77flags = ''; ++ } ++ + } ++ plan tests => $ntests; + } + + # Configuration +@@ -66,19 +85,6 @@ + + } + +-# use ExtUtils::F77; +- +-my $F77; +-my $F77flags; +- +-if ($ExtUtils::F77::VERSION > 1.03) { +- $F77 = ExtUtils::F77::compiler(); +- $F77flags = ExtUtils::F77::cflags(); +-} else { +- $F77 = 'f77'; +- $F77flags = ''; +-} +- + sub tapprox { + my ($a,$b) = @_; + my $c = abs($a->clump(-1)-$b->clump(-1)); +@@ -271,7 +277,7 @@ + c Program to test i/o of F77 unformatted files + program rawtest + implicit none +- integer i ++ integer*4 i + $f77type a($ndata) + do i = 1, $ndata + a(i) = $val +@@ -353,7 +359,7 @@ + c Program to test i/o of F77 unformatted files + program rawtest + implicit none +- integer i ++ integer*4 i + $f77type a($ndata) + do i = 1, $ndata + a(i) = $val +@@ -403,7 +409,7 @@ + c Program to test i/o of F77 unformatted files + program rawtest + implicit none +- integer i ++ integer*4 i + $f77type a($ndata) + do i = 1, $ndata + a(i) = $val +@@ -457,7 +463,7 @@ + c Program to test i/o of F77 unformatted files + program rawtest + implicit none +- integer i, j ++ integer*4 i, j + $f77type a($ndata, $ndata) + do i = 1, $ndata + do j = 1, $ndata diff --git a/debian/pdl.dirs b/debian/pdl.dirs index 921fdee..33d548f 100644 --- a/debian/pdl.dirs +++ b/debian/pdl.dirs @@ -1,3 +1,4 @@ usr/bin usr/share/lintian/overrides +usr/share/perl5/PDL var/lib/pdl diff --git a/debian/pdl.docs b/debian/pdl.docs index 6141f0b..c93d638 100644 --- a/debian/pdl.docs +++ b/debian/pdl.docs @@ -1,4 +1,4 @@ -BUGS +Bugs.pod Known_problems README TODO diff --git a/debian/pdl.install.in b/debian/pdl.install.in new file mode 100644 index 0000000..43f1bf7 --- /dev/null +++ b/debian/pdl.install.in @@ -0,0 +1,3 @@ +Doc/scantree.pl @vendorarch@/PDL/Doc/ +Doc/mkhtmldoc.pl @vendorarch@/PDL/Doc/ +debian/dh_pdl usr/bin diff --git a/debian/pdl.links.in b/debian/pdl.links.in new file mode 100644 index 0000000..e2a3672 --- /dev/null +++ b/debian/pdl.links.in @@ -0,0 +1,4 @@ +/var/lib/pdl/Index.pod /@vendorarch@/PDL/Index.pod +/var/lib/pdl/pdldoc.db /@vendorarch@/PDL/pdldoc.db +/var/lib/pdl/html /usr/share/doc/pdl/html +/usr/share/man/man3/PDL.3pm.gz /usr/share/man/man1/pdl.1.gz diff --git a/debian/pdl.lintian-overrides.in b/debian/pdl.lintian-overrides.in new file mode 100644 index 0000000..9a3d677 --- /dev/null +++ b/debian/pdl.lintian-overrides.in @@ -0,0 +1,9 @@ +# HG: the html doc is generated in the postinst maintainer script, so lintian +# just does not see it +pdl: doc-base-file-references-missing-file pdl:12 /var/lib/pdl/html/Index.html +pdl: doc-base-file-references-missing-file pdl:13 /var/lib/pdl/html/*.html +# there is one long code line in the manpage, which cannot be broken +pdl: manpage-has-errors-from-man usr/share/man/man3/PDL::FFT.3pm.gz 232: warning [p 2, 3.3i]: can't break line +# these two images neeed to be in usr/lib +pdl: image-file-in-usr-lib @vendorarch@/PDL/Transform/Cartography/earth_day.jpg +pdl: image-file-in-usr-lib @vendorarch@/PDL/Transform/Cartography/earth_night.jpg diff --git a/debian/pdl.postinst.in b/debian/pdl.postinst.in new file mode 100644 index 0000000..ba4159b --- /dev/null +++ b/debian/pdl.postinst.in @@ -0,0 +1,47 @@ +#! /bin/sh +# postinst script for pdl +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# * <postinst> `configure' <most-recently-configured-version> +# * <old-postinst> `abort-upgrade' <new version> +# * <conflictor's-postinst> `abort-remove' `in-favour' <package> +# <new-version> +# * <deconfigured's-postinst> `abort-deconfigure' `in-favour' +# <failed-install-package> <version> `removing' +# <conflicting-package> <version> +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package +# + +case "$1" in + configure|triggered) + if perl /@vendorarch@/PDL/Doc/scantree.pl /@vendorarch@/,/usr/share/perl5 /var/lib/pdl/pdldoc.db /var/lib/pdl/Index.pod >/dev/null 2>&1 ; then + perl /@vendorarch@/PDL/Doc/mkhtmldoc.pl -s "PDL/" /@vendorarch@/PDL /var/lib/pdl/html >/dev/null 2>&1 + perl /@vendorarch@/PDL/Doc/mkhtmldoc.pl -s "PDL/" /usr/share/perl5/PDL /var/lib/pdl/html >/dev/null 2>&1 + else + echo "Skipping PDL documation update, as the package is not usable at the moment" >&2 + fi + ;; + + abort-upgrade|abort-remove|abort-deconfigure) + + ;; + + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 + + diff --git a/debian/pdl.triggers.in b/debian/pdl.triggers.in new file mode 100644 index 0000000..e80e6ab --- /dev/null +++ b/debian/pdl.triggers.in @@ -0,0 +1,2 @@ +interest /@vendorarch@/PDL +interest /usr/share/perl5/PDL diff --git a/debian/perldl.conf b/debian/perldl.conf index 1d1809d..f9e3a11 100644 --- a/debian/perldl.conf +++ b/debian/perldl.conf @@ -118,7 +118,7 @@ USE_POGL => undef, # USE_POGL => 0, # - POGL_VERSION => 0.65, # minimum compatible OpenGL version + POGL_VERSION => 0.6702, # minimum compatible OpenGL version # POGL_WINDOW_TYPE => 'x11', # use X11+GLX for windows POGL_WINDOW_TYPE => 'glut', # use GLUT for windows @@ -171,18 +171,13 @@ GSL_INC => undef, # use gsl-config # Whether or not to build the PDL::FFTW module -# false -> don't use -# true -> force use - - WITH_FFTW => undef, # Leave it up to PDL to decide - -# Location to search for the FFTW libs - FFTW_LIBS => [ '/lib','/usr/lib','/usr/local/lib'], - -# Location to find FFTW includes: - FFTW_INC => ['/usr/include/','/usr/local/include'], +# NOTE: PDL::FFTW has been moved to its own CPAN +# distribution and has been deprecated. +# Please install from CPAN. -# FFTW Numeric Precision Type to link in: (double or single precision) + WITH_FFTW => 0, # Don't build PDL::FFTW + FFTW_LIBS => undef, # [ '/lib','/usr/lib','/usr/local/lib'], + FFTW_INC => undef, # ['/usr/include/','/usr/local/include'], FFTW_TYPE => 'double', # Whether or not to build the PDL::IO::HDF module diff --git a/debian/rules b/debian/rules index 3b0cc0f..704ead7 100755 --- a/debian/rules +++ b/debian/rules @@ -12,11 +12,11 @@ unexport DISPLAY - +WARNING_FLAGS:=-Wall -Wno-unused-variable -Wno-unused-but-set-variable -Wno-unused-function ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) - export DEB_CFLAGS_MAINT_APPEND:=-Wall + export DEB_CFLAGS_MAINT_APPEND:=$(WARNING_FLAGS) else - export DEB_CFLAGS_MAINT_APPEND:=-Wall -ffunction-sections + export DEB_CFLAGS_MAINT_APPEND:=$(WARNING_FLAGS) -ffunction-sections endif export DEB_LDFLAGS_MAINT_APPEND:=-Wl,--as-needed @@ -26,6 +26,8 @@ include /usr/share/dpkg/buildflags.mk subst_pdlapi = -Vpdlapi:Provides="`perl -Mblib -MPDL::Config::Debian -e 'print \"pdlapi-$$PDL::Config::Debian::pdl_core_version\n\"'`" +vendorarch := $(shell perl -MConfig -e 'print substr($$Config{vendorarch}, 1)') + configure: configure-stamp configure-stamp: dh_testdir @@ -54,11 +56,8 @@ build-stamp: configure-stamp test: test-stamp test-stamp: build-stamp dh_testdir - @echo "BEGIN test normal" - -$(MAKE) TEST_VERBOSE=0 LC_ALL=C test | perl debian/filter-test.pl - @echo "END test normal" @echo "BEGIN test verbose" - -$(MAKE) TEST_VERBOSE=1 LC_ALL=C test | perl debian/filter-test.pl + $(MAKE) TEST_VERBOSE=1 LC_ALL=C test @echo "END test verbose" touch test-stamp @@ -72,7 +71,10 @@ clean: # Add here commands to clean up after the build process. [ ! -f Makefile ] || $(MAKE) distclean rm -f t/callext.o t/callext.so Graphics/TriD/OpenGL/tmp*.h-out \ - Perldl2/pdl2.pod debian/dh_pdl.1 + Perldl2/pdl2.pod debian/dh_pdl.1 \ + debian/pdl.lintian-overrides debian/pdl.install \ + debian/pdl.links debian/pdl.postinst \ + debian/pdl.triggers install: build test dh_testdir @@ -82,11 +84,16 @@ install: build test # Add here commands to install the package into debian/pdl. $(MAKE) install DESTDIR=$(CURDIR)/debian/pdl - cd debian/pdl/usr/share/man/man3 ; mv PDL\:\:Reduce.3pm old.3pm ; sed -f $(CURDIR)/debian/fix_man_name.sed old.3pm > PDL\:\:Reduce.3pm ; rm old.3pm - cd debian/pdl/usr/share/man/man3 ; mv PDL\:\:Func.3pm old.3pm ; sed -f $(CURDIR)/debian/fix_man_encoding.sed old.3pm > PDL\:\:Func.3pm ; rm old.3pm - cd debian/pdl/usr/share/man/man3 ; mv PDL\:\:Complex.3pm old.3pm ; sed -f $(CURDIR)/debian/fix_man_encoding.sed old.3pm > PDL\:\:Complex.3pm ; rm old.3pm cd debian/pdl; while read f ; do rm -f "$$f" ; done < ../pdl.remove + # create placeholder in usr/share/perl5/PDL + echo > $(CURDIR)/debian/pdl/usr/share/perl5/PDL/.placeholder + # set perl vendorarch directory dynamically + for f in debian/pdl.lintian-overrides debian/pdl.install \ + debian/pdl.links debian/pdl.postinst \ + debian/pdl.triggers ; do \ + sed -e 's,@vendorarch@,$(vendorarch),g' $$f.in > $$f ; \ + done # Build architecture-independent files here. binary-indep: build install @@ -119,7 +126,7 @@ binary-arch: build install # dh_python # dh_makeshlibs dh_installdeb - dh_shlibdeps + dh_shlibdeps -X OpenGLQ.so dh_gencontrol -- $(subst_pdlapi) dh_md5sums dh_builddeb diff --git a/debian/which_tests_failed.pl b/debian/which_tests_failed.pl new file mode 100755 index 0000000..5794262 --- /dev/null +++ b/debian/which_tests_failed.pl @@ -0,0 +1,107 @@ +#!/usr/bin/perl +use strict; +use warnings; +use Getopt::Long; +my @ignore_test_arg; +my $debug = 0; +GetOptions( + 'ignore=s' => \@ignore_test_arg, + 'debug=i' => \$debug, +); +@ignore_test_arg = map { split /\s*,\s*/ } @ignore_test_arg; +my @ignore_test; +foreach my $ita (@ignore_test_arg) { + my @sub_re = split /\s*:\s*/,$ita; + die "syntax error: $ita" if ($#sub_re > 2); + my @this_it; + for (my $i=0;$i<3;$i++) { + push @this_it,(((defined $sub_re[$i]) and ($sub_re[$i] ne '')) ? qr/^$sub_re[$i]$/ : qr/^.*$/); + } + push @ignore_test,\@this_it; + print "will ignore: " . join(':',@this_it) . "\n" if ($debug > 1); +} + +my ($test_script,@planned,@ok,@test_msg,@tidx); +my %failed_test_summary; +my %architectures; +sub eval_test { + my @failed_tests; + my @failed_msgs; + for (my $i=0;$i<=$#ok;$i++) { + unless ($ok[$i]) { + push @failed_tests,$planned[$i]; + push @failed_msgs,$test_msg[$i]; + } + } + my $arch = $1 if ($ARGV =~ /_([^_\.]+)\.testsuite$/); + + for (my $i=0; $i<=$#failed_tests; $i++) { + my @val_tuple = ($test_script,$failed_tests[$i],$arch); + my $ignore = 0; + foreach my $it (@ignore_test) { + my $this_ignore = 1; + for (my $i=0;$i<3;$i++) { + $this_ignore &= ($val_tuple[$i] =~ $it->[$i]); + } + if ($this_ignore) { + $ignore = 1; + print STDERR "ignored '" . join(':',@val_tuple) . "' due to '" . join(':',@{$it}) . "\n" if ($debug > 0); + last; + } + } + next if ($ignore); +# printf "%-20s %3d %s %s\n",$test_script,$failed_tests[$i],$failed_msgs[$i],$arch; + $architectures{$arch}=1 if ($#failed_tests>=0); + $failed_test_summary{$test_script}->{$failed_tests[$i]}->{$arch}=1; + } +} + +while (<>) { + if (/^(t\/.*\.t) \.+\s*skipped:/) { + eval_test() if ((defined $test_script) and ($#planned >= 0)); + $test_script=undef; + @planned=(); + @test_msg=(); + @ok=(); + @tidx=(); + next; + } + if (/^(t\/.*\.t) \.+\s*$/) { + eval_test() if ((defined $test_script) and ($#planned >= 0)); + $test_script=$1; + @planned=(); + @test_msg=(); + @ok=(); + @tidx=(); + next; + } + if (/^(\d+)\.\.(\d+)/) { + warn "planned was not empty" if ($#planned>=0); + @planned=$1 .. $2; + @ok = (0) x ($#planned+1); + @test_msg=('') x ($#planned+1); + for (my $i=0;$i<=$#planned;$i++) { + $tidx[$planned[$i]]=$i; + } + next; + } + next unless ((defined $test_script) and ($#planned >= 0)); + if (/^ok\s*(\d+)\s*(.*)/) { + my $tidx=$tidx[$1]; + $ok[$tidx]=1; + $test_msg[$tidx]=$2 unless ($2 =~ /^\s*$/); + } +} +eval_test() if ((defined $test_script) and ($#planned >= 0)); +my @architectures = sort keys %architectures; +my $summary_fstring = '%-20s %3d'; +foreach (@architectures) { + $summary_fstring .= ' %' . length($_) . 's'; +} +$summary_fstring.="\n"; +foreach my $tst (sort keys %failed_test_summary) { + foreach my $stst (sort { $a <=> $b } keys %{$failed_test_summary{$tst}}) { + my @farchitectures= map { ($failed_test_summary{$tst}->{$stst}->{$_} ? $_ : '') } @architectures; + printf $summary_fstring,$tst,$stst,@farchitectures; + } +} -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/pdl.git _______________________________________________ Pkg-perl-cvs-commits mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-perl-cvs-commits
