r21700 - in /trunk/libextutils-cbuilder-perl: ./ debian/ lib/ExtUtils/ lib/ExtUtils/CBuilder/ lib/ExtUtils/CBuilder/Platform/ t/

dmn at users.alioth.debian.org dmn at users.alioth.debian.org
Mon Jun 16 08:33:37 UTC 2008


Author: dmn
Date: Mon Jun 16 08:33:37 2008
New Revision: 21700

URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=21700
Log:
New upstream release
Closes: #480401 -- uninstallable, perl-modules has a newer version

Added:
    trunk/libextutils-cbuilder-perl/README
      - copied unchanged from r21699, branches/upstream/libextutils-cbuilder-perl/current/README
    trunk/libextutils-cbuilder-perl/bleadcheck.pl
      - copied unchanged from r21699, branches/upstream/libextutils-cbuilder-perl/current/bleadcheck.pl
    trunk/libextutils-cbuilder-perl/lib/ExtUtils/CBuilder/Platform/dec_osf.pm
      - copied unchanged from r21699, branches/upstream/libextutils-cbuilder-perl/current/lib/ExtUtils/CBuilder/Platform/dec_osf.pm
Modified:
    trunk/libextutils-cbuilder-perl/Build.PL
    trunk/libextutils-cbuilder-perl/Changes
    trunk/libextutils-cbuilder-perl/MANIFEST
    trunk/libextutils-cbuilder-perl/META.yml
    trunk/libextutils-cbuilder-perl/Makefile.PL
    trunk/libextutils-cbuilder-perl/SIGNATURE
    trunk/libextutils-cbuilder-perl/debian/changelog
    trunk/libextutils-cbuilder-perl/lib/ExtUtils/CBuilder.pm
    trunk/libextutils-cbuilder-perl/lib/ExtUtils/CBuilder/Base.pm
    trunk/libextutils-cbuilder-perl/lib/ExtUtils/CBuilder/Platform/Unix.pm
    trunk/libextutils-cbuilder-perl/lib/ExtUtils/CBuilder/Platform/VMS.pm
    trunk/libextutils-cbuilder-perl/lib/ExtUtils/CBuilder/Platform/Windows.pm
    trunk/libextutils-cbuilder-perl/lib/ExtUtils/CBuilder/Platform/aix.pm
    trunk/libextutils-cbuilder-perl/lib/ExtUtils/CBuilder/Platform/cygwin.pm
    trunk/libextutils-cbuilder-perl/lib/ExtUtils/CBuilder/Platform/darwin.pm
    trunk/libextutils-cbuilder-perl/lib/ExtUtils/CBuilder/Platform/os2.pm
    trunk/libextutils-cbuilder-perl/t/01-basic.t

Modified: trunk/libextutils-cbuilder-perl/Build.PL
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libextutils-cbuilder-perl/Build.PL?rev=21700&op=diff
==============================================================================
--- trunk/libextutils-cbuilder-perl/Build.PL (original)
+++ trunk/libextutils-cbuilder-perl/Build.PL Mon Jun 16 08:33:37 2008
@@ -1,6 +1,14 @@
 use Module::Build;
 
-my $build = Module::Build->new
+my $class = Module::Build->subclass(code => <<'EOF');
+  sub do_create_makefile_pl {
+    my $self = shift;
+    $self->SUPER::do_create_makefile_pl(fh => $fh);
+    $self->do_system(qw(perl -pi -e), q{s/'INSTALLDIRS' => 'site'/'INSTALLDIRS' => (\$] >= 5.009003 ? 'perl' : 'site')/}, 'Makefile.PL');
+  }
+EOF
+
+my $build = $class->new
   (
    module_name => 'ExtUtils::CBuilder',
    license => 'perl',
@@ -8,12 +16,19 @@
 		'File::Basename' => 0,
 		'File::Spec' => 0,
 		'Text::ParseWords' => 0,
+		'Cwd' => 0,
+		'IO::File' => 0,
 	       },
    build_requires => {
 		      'Test' => 0,
 		     },
    create_makefile_pl => 'traditional',
+   create_readme => 1,
+   meta_merge => {
+		  resources => {repository => 'http://svn.perl.org/modules/ExtUtils-CBuilder'},
+		 },
    sign => 1,
+   installdirs => ($] >= 5.009003 ? 'core' : 'site'),
   );
 
 $build->create_build_script;

Modified: trunk/libextutils-cbuilder-perl/Changes
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libextutils-cbuilder-perl/Changes?rev=21700&op=diff
==============================================================================
--- trunk/libextutils-cbuilder-perl/Changes (original)
+++ trunk/libextutils-cbuilder-perl/Changes Mon Jun 16 08:33:37 2008
@@ -1,4 +1,60 @@
 Revision history for Perl extension ExtUtils::CBuilder.
+
+ - Fixed some problems (some old, some new) with Strawberry Perl on
+   Windows. [Alberto Simo~es]
+
+ - Will now install in the core perl lib directory when the user's
+   perl is new enough to have us in core. [Yi Ma Mao]
+
+0.22 - Fri Feb  8 21:52:21 2008
+
+ - Replaced the split_like_shell() method on Windows with a
+   near-no-op, which is probably more correct and has the benefit of
+   not messing up UNC paths. [John R. LoVerso, see
+   http://rt.cpan.org/Ticket/Display.html?id=26545]
+
+ - Fixed extra_compiler_flags on Windows, they were being
+   ignored. [Robert May]
+
+0.21 - Tue Oct 30 06:46:01 2007
+
+ - Clean up perl_src path using Cwd::realpath().  Only affects usage
+   as part of the perl core.
+
+ - Protect $., $@, $!, $^E, and $? from any clobbering that might
+   occur in our DESTROY method. [Zefram]
+
+ - From bleadperl, a patch to clean up debug symbol files (.pdb for
+   VC++, .tds for BCC) when running have_compiler(). [Steve Hay &
+   Steve Peters]
+
+0.19 - Sun May 13 14:29:18 2007
+
+ - When building as part of the perl core (so this is irrelevant for
+   people downloading from CPAN) we now try a little harder to find
+   the perl sources. [Jos Boumans]
+
+ - Fixed a part of the manifest thingy that got broken on 64-bit
+   Windows platforms in version 0.18. [Steve Hay, Jan Dubois]
+
+0.18 - Mon Mar 26 21:29:09 2007
+
+ - Various OS/2 fixes:
+   + Put .LIB file near .DEF file
+   + Got library-file building working better
+   + Handled libperl_overrides better
+   [Ilya Zakharevich]
+
+ - On Windows: embed manifest files in DLLs built with Module-Build
+   when using VC8. [Steve Hay]
+
+ - Added a workaround for a config error on dec_osf: the linker is
+   $Config{cc}, not $Config{ld}. [Jarkko Hietaniemi]
+
+ - Borland's compiler "response files" will not pass through macro
+   definitions that contain quotes. The quotes get stripped and there
+   seems to be no way to escape them. So we leave macros on the
+   command line. [Randy W. Sims]
 
 0.18  Sat Mar 25 13:35:47 CST 2006
 

Modified: trunk/libextutils-cbuilder-perl/MANIFEST
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libextutils-cbuilder-perl/MANIFEST?rev=21700&op=diff
==============================================================================
--- trunk/libextutils-cbuilder-perl/MANIFEST (original)
+++ trunk/libextutils-cbuilder-perl/MANIFEST Mon Jun 16 08:33:37 2008
@@ -1,3 +1,4 @@
+bleadcheck.pl
 Build.PL
 Changes
 INSTALL
@@ -6,6 +7,7 @@
 lib/ExtUtils/CBuilder/Platform/aix.pm
 lib/ExtUtils/CBuilder/Platform/cygwin.pm
 lib/ExtUtils/CBuilder/Platform/darwin.pm
+lib/ExtUtils/CBuilder/Platform/dec_osf.pm
 lib/ExtUtils/CBuilder/Platform/os2.pm
 lib/ExtUtils/CBuilder/Platform/Unix.pm
 lib/ExtUtils/CBuilder/Platform/VMS.pm
@@ -15,4 +17,5 @@
 META.yml
 t/01-basic.t
 t/02-link.t
+README
 SIGNATURE    Added here by Module::Build

Modified: trunk/libextutils-cbuilder-perl/META.yml
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libextutils-cbuilder-perl/META.yml?rev=21700&op=diff
==============================================================================
--- trunk/libextutils-cbuilder-perl/META.yml (original)
+++ trunk/libextutils-cbuilder-perl/META.yml Mon Jun 16 08:33:37 2008
@@ -1,34 +1,37 @@
---- #YAML:1.0
+---
 name: ExtUtils-CBuilder
-version: 0.18
+version: 0.23
 author:
-  - Ken Williams, kwilliams at cpan.org
+  - 'Ken Williams, kwilliams at cpan.org'
 abstract: Compile and link C code for Perl modules
 license: perl
 resources:
   license: http://dev.perl.org/licenses/
+  repository: http://svn.perl.org/modules/ExtUtils-CBuilder
 requires:
+  Cwd: 0
   File::Basename: 0
   File::Spec: 0
+  IO::File: 0
   Text::ParseWords: 0
 build_requires:
   Test: 0
 provides:
   ExtUtils::CBuilder:
     file: lib/ExtUtils/CBuilder.pm
-    version: 0.18
+    version: 0.23
   ExtUtils::CBuilder::Base:
     file: lib/ExtUtils/CBuilder/Base.pm
-    version: 0.12
+    version: 0.23
   ExtUtils::CBuilder::Platform::Unix:
     file: lib/ExtUtils/CBuilder/Platform/Unix.pm
-    version: 0.12
+    version: 0.23
   ExtUtils::CBuilder::Platform::VMS:
     file: lib/ExtUtils/CBuilder/Platform/VMS.pm
-    version: 0.12
+    version: 0.23
   ExtUtils::CBuilder::Platform::Windows:
     file: lib/ExtUtils/CBuilder/Platform/Windows.pm
-    version: 0.12
+    version: 0.23
   ExtUtils::CBuilder::Platform::Windows::BCC:
     file: lib/ExtUtils/CBuilder/Platform/Windows.pm
   ExtUtils::CBuilder::Platform::Windows::GCC:
@@ -37,18 +40,20 @@
     file: lib/ExtUtils/CBuilder/Platform/Windows.pm
   ExtUtils::CBuilder::Platform::aix:
     file: lib/ExtUtils/CBuilder/Platform/aix.pm
-    version: 0.12
+    version: 0.23
   ExtUtils::CBuilder::Platform::cygwin:
     file: lib/ExtUtils/CBuilder/Platform/cygwin.pm
-    version: 0.12
+    version: 0.23
   ExtUtils::CBuilder::Platform::darwin:
     file: lib/ExtUtils/CBuilder/Platform/darwin.pm
-    version: 0.12
+    version: 0.23
+  ExtUtils::CBuilder::Platform::dec_osf:
+    file: lib/ExtUtils/CBuilder/Platform/dec_osf.pm
+    version: 0.23
   ExtUtils::CBuilder::Platform::os2:
     file: lib/ExtUtils/CBuilder/Platform/os2.pm
-    version: 0.13
-generated_by: Module::Build version 0.2703
+    version: 0.23
+generated_by: Module::Build version 0.280801
 meta-spec:
-  url: |-
-    http://module-build.sourceforge.net/META-spec-v1.2.html
+  url: http://module-build.sourceforge.net/META-spec-v1.2.html
   version: 1.2

Modified: trunk/libextutils-cbuilder-perl/Makefile.PL
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libextutils-cbuilder-perl/Makefile.PL?rev=21700&op=diff
==============================================================================
--- trunk/libextutils-cbuilder-perl/Makefile.PL (original)
+++ trunk/libextutils-cbuilder-perl/Makefile.PL Mon Jun 16 08:33:37 2008
@@ -1,16 +1,18 @@
-# Note: this file was auto-generated by Module::Build::Compat version 0.03
+# Note: this file was auto-generated by Module::Build::Compat version 0.2808_01
 use ExtUtils::MakeMaker;
 WriteMakefile
 (
           'NAME' => 'ExtUtils::CBuilder',
           'VERSION_FROM' => 'lib/ExtUtils/CBuilder.pm',
           'PREREQ_PM' => {
+                           'Cwd' => '0',
                            'File::Basename' => '0',
                            'File::Spec' => '0',
+                           'IO::File' => '0',
                            'Test' => '0',
                            'Text::ParseWords' => '0'
                          },
-          'INSTALLDIRS' => 'site',
+          'INSTALLDIRS' => ($] >= 5.009003 ? 'perl' : 'site'),
           'EXE_FILES' => [],
           'PL_FILES' => {}
         )

Modified: trunk/libextutils-cbuilder-perl/SIGNATURE
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libextutils-cbuilder-perl/SIGNATURE?rev=21700&op=diff
==============================================================================
--- trunk/libextutils-cbuilder-perl/SIGNATURE (original)
+++ trunk/libextutils-cbuilder-perl/SIGNATURE Mon Jun 16 08:33:37 2008
@@ -1,12 +1,12 @@
 This file contains message digests of all files listed in MANIFEST,
-signed via the Module::Signature module, version 0.38.
+signed via the Module::Signature module, version 0.55.
 
 To verify the content in this distribution, first make sure you have
 Module::Signature installed, then type:
 
     % cpansign -v
 
-It would check each file's integrity, as well as the signature's
+It will check each file's integrity, as well as the signature's
 validity.  If "==> Signature verified OK! <==" is not displayed,
 the distribution may already have been compromised, and you should
 not run its Makefile.PL or Build.PL.
@@ -14,27 +14,30 @@
 -----BEGIN PGP SIGNED MESSAGE-----
 Hash: SHA1
 
-SHA1 5e0e053f22d28307dfbe8a35d9781cf4d0fef57d Build.PL
-SHA1 cf44bef8d87d3512bfacf8e4d6dfbacebbde2617 Changes
+SHA1 3b1438c8e22b1ba9bc99254e60c34b6e9e94109f Build.PL
+SHA1 3ea14319b8c3fc8c2c8c9839c81288ce012b0c54 Changes
 SHA1 c97a41c305bae68328a71523bedd89351335a9a4 INSTALL
-SHA1 60d090090842e8a7a4a8935f1431ecce07c29c15 MANIFEST
-SHA1 f36b19cc21b29f8c184114157e69274186f1b6ec META.yml
-SHA1 c5bbe42245223edc96e10e4889fe2c6e1078c31b Makefile.PL
-SHA1 1e39f9c9c6d179da077e74cd4c32975f833f51d6 lib/ExtUtils/CBuilder.pm
-SHA1 e4bf29b9b9c40aab1acdcd8f8b20a7f07e0c0116 lib/ExtUtils/CBuilder/Base.pm
-SHA1 e161a38c83a69a5dc016a57f9f3ecb436118dd67 lib/ExtUtils/CBuilder/Platform/Unix.pm
-SHA1 260c805b814cfa9c6d1f33f6b521c64e82ff100d lib/ExtUtils/CBuilder/Platform/VMS.pm
-SHA1 effa39eaf05ba271e41b93eb25cf89c1843ac801 lib/ExtUtils/CBuilder/Platform/Windows.pm
-SHA1 c5099c68d2f590174cefe8e4360814653b8b1cfd lib/ExtUtils/CBuilder/Platform/aix.pm
-SHA1 cb297afe65164898ecb54aaa849b84fe60213a29 lib/ExtUtils/CBuilder/Platform/cygwin.pm
-SHA1 4af5e596dbdcd362737117ee5b70d1b956e437c1 lib/ExtUtils/CBuilder/Platform/darwin.pm
-SHA1 63cd83c63594372bc099beb02f25e80c01aad34b lib/ExtUtils/CBuilder/Platform/os2.pm
-SHA1 2142417eaf970b017a49a8259bc7f9498e316d80 t/01-basic.t
+SHA1 4816eea03cc85bc7de49b62b91dfaee4371e1c9d MANIFEST
+SHA1 66ec4ffbb7890e990de5c137852ff0c5777be005 META.yml
+SHA1 66a0c0304f3a048f8f3bccc45566a48c2772bbac Makefile.PL
+SHA1 d913fe9d22af923688f884f8ef01f9dc99ac8913 README
+SHA1 e5aabb51bec8883695fb78a9d717266f1c0405d6 bleadcheck.pl
+SHA1 1563aa3c9074e78d192681719bf1fb0431bdad23 lib/ExtUtils/CBuilder.pm
+SHA1 a3171a7b9ada74bba181f9e8f9b5e15ed17e06be lib/ExtUtils/CBuilder/Base.pm
+SHA1 8fdb0385d37399dd9cd9b07f9842cdbf0b34defd lib/ExtUtils/CBuilder/Platform/Unix.pm
+SHA1 6fbbba2710eaaebfc67abbcc2d21ff93e6f5c38e lib/ExtUtils/CBuilder/Platform/VMS.pm
+SHA1 e736526b8518f7d0b44c96727ae5b5113f0baed4 lib/ExtUtils/CBuilder/Platform/Windows.pm
+SHA1 5f59f4d1e9cb8659a55ce1984cf9eba338cc186b lib/ExtUtils/CBuilder/Platform/aix.pm
+SHA1 718d42498c2288097e68c61cf4966b2163c47c54 lib/ExtUtils/CBuilder/Platform/cygwin.pm
+SHA1 e197b4b6917664506f46ca8e0616ba62cb5f9a6c lib/ExtUtils/CBuilder/Platform/darwin.pm
+SHA1 a8422e2f8b97186d970b5044cee1246a25c0301f lib/ExtUtils/CBuilder/Platform/dec_osf.pm
+SHA1 7d7ceba9e63bcc860d27f05dc50b140291444453 lib/ExtUtils/CBuilder/Platform/os2.pm
+SHA1 659b66c376d1de0f3fd92beb3d6c540281b1932d t/01-basic.t
 SHA1 66b84847e912d8540d2bb0a68bde775bc55cec12 t/02-link.t
 -----BEGIN PGP SIGNATURE-----
-Version: GnuPG v1.2.4 (Darwin)
+Version: GnuPG v1.4.5 (Darwin)
 
-iD8DBQFEJZv7grvMBLfvlHYRAlj/AJ9dh843v9rFTiCA+mXB3XHHB92IaQCgwxO+
-GPO9ZTny6LFNRguuceRPspc=
-=mox3
+iD8DBQFICrgvgrvMBLfvlHYRAkfyAJ49zXPPmfHH1cQWk1B5CPLJEYp5PQCgmmMg
+7okXi+TAG5CQApPBacBIjw0=
+=SQpT
 -----END PGP SIGNATURE-----

Modified: trunk/libextutils-cbuilder-perl/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libextutils-cbuilder-perl/debian/changelog?rev=21700&op=diff
==============================================================================
--- trunk/libextutils-cbuilder-perl/debian/changelog (original)
+++ trunk/libextutils-cbuilder-perl/debian/changelog Mon Jun 16 08:33:37 2008
@@ -1,5 +1,6 @@
-libextutils-cbuilder-perl (0.18-2) UNRELEASED; urgency=low
+libextutils-cbuilder-perl (0.23-1) UNRELEASED; urgency=low
 
+  [ gregor herrmann ]
   * Take over for the Debian Perl Group with maintainer's permission
     (http://lists.debian.org/debian-perl/2008/06/msg00039.html)
   * debian/control: Added: Vcs-Svn field (source stanza); Vcs-Browser
@@ -10,7 +11,11 @@
     Uploaders.
   * Add debian/watch.
 
- -- gregor herrmann <gregoa at debian.org>  Sun, 15 Jun 2008 15:45:45 +0200
+  [ Damyan Ivanov ]
+  * New upstream release
+    Closes: #480401 -- uninstallable, perl-modules has a newer version
+
+ -- Damyan Ivanov <dmn at debian.org>  Mon, 16 Jun 2008 11:25:38 +0300
 
 libextutils-cbuilder-perl (0.18-1) unstable; urgency=low
 

Modified: trunk/libextutils-cbuilder-perl/lib/ExtUtils/CBuilder.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libextutils-cbuilder-perl/lib/ExtUtils/CBuilder.pm?rev=21700&op=diff
==============================================================================
--- trunk/libextutils-cbuilder-perl/lib/ExtUtils/CBuilder.pm (original)
+++ trunk/libextutils-cbuilder-perl/lib/ExtUtils/CBuilder.pm Mon Jun 16 08:33:37 2008
@@ -5,7 +5,7 @@
 use File::Basename ();
 
 use vars qw($VERSION @ISA);
-$VERSION = '0.18';
+$VERSION = '0.23';
 $VERSION = eval $VERSION;
 
 # Okay, this is the brute-force method of finding out what kind of

Modified: trunk/libextutils-cbuilder-perl/lib/ExtUtils/CBuilder/Base.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libextutils-cbuilder-perl/lib/ExtUtils/CBuilder/Base.pm?rev=21700&op=diff
==============================================================================
--- trunk/libextutils-cbuilder-perl/lib/ExtUtils/CBuilder/Base.pm (original)
+++ trunk/libextutils-cbuilder-perl/lib/ExtUtils/CBuilder/Base.pm Mon Jun 16 08:33:37 2008
@@ -3,11 +3,13 @@
 use strict;
 use File::Spec;
 use File::Basename;
+use Cwd ();
 use Config;
 use Text::ParseWords;
+use IO::File;
 
 use vars qw($VERSION);
-$VERSION = '0.12';
+$VERSION = '0.23';
 
 sub new {
   my $class = shift;
@@ -117,10 +119,8 @@
   
   my $tmpfile = File::Spec->catfile(File::Spec->tmpdir, 'compilet.c');
   {
-    local *FH;
-    open FH, "> $tmpfile" or die "Can't create $tmpfile: $!";
-    print FH "int boot_compilet() { return 1; }\n";
-    close FH;
+    my $FH = IO::File->new("> $tmpfile") or die "Can't create $tmpfile: $!";
+    print $FH "int boot_compilet() { return 1; }\n";
   }
 
   my ($obj_file, @lib_files);
@@ -167,9 +167,9 @@
     DL_FUNCS => $args{dl_funcs}     || {},
     FUNCLIST => $args{dl_func_list} || [],
     IMPORTS  => $args{dl_imports}   || {},
-    NAME     => $args{dl_name},
-    DLBASE   => $args{dl_base},
-    FILE     => $args{dl_file},
+    NAME     => $args{dl_name},		# Name of the Perl module
+    DLBASE   => $args{dl_base},		# Basename of DLL file
+    FILE     => $args{dl_file},		# Dir + Basename of symlist file
     VERSION  => (defined $args{dl_version} ? $args{dl_version} : '0.0'),
   );
   
@@ -244,7 +244,7 @@
   my $dir   = File::Spec->curdir;
 
   # Try up to 5 levels upwards
-  for (0..5) {
+  for (0..10) {
     if (
 	-f File::Spec->catfile($dir,"config_h.SH")
 	&&
@@ -252,7 +252,7 @@
 	&&
 	-f File::Spec->catfile($dir,"lib","Exporter.pm")
        ) {
-      return $dir;
+      return Cwd::realpath( $dir );
     }
 
     $dir = File::Spec->catdir($dir, $Updir);
@@ -271,6 +271,7 @@
 
 sub DESTROY {
   my $self = shift;
+  local($., $@, $!, $^E, $?);
   $self->cleanup();
 }
 

Modified: trunk/libextutils-cbuilder-perl/lib/ExtUtils/CBuilder/Platform/Unix.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libextutils-cbuilder-perl/lib/ExtUtils/CBuilder/Platform/Unix.pm?rev=21700&op=diff
==============================================================================
--- trunk/libextutils-cbuilder-perl/lib/ExtUtils/CBuilder/Platform/Unix.pm (original)
+++ trunk/libextutils-cbuilder-perl/lib/ExtUtils/CBuilder/Platform/Unix.pm Mon Jun 16 08:33:37 2008
@@ -4,7 +4,7 @@
 use ExtUtils::CBuilder::Base;
 
 use vars qw($VERSION @ISA);
-$VERSION = '0.12';
+$VERSION = '0.23';
 @ISA = qw(ExtUtils::CBuilder::Base);
 
 sub link_executable {

Modified: trunk/libextutils-cbuilder-perl/lib/ExtUtils/CBuilder/Platform/VMS.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libextutils-cbuilder-perl/lib/ExtUtils/CBuilder/Platform/VMS.pm?rev=21700&op=diff
==============================================================================
--- trunk/libextutils-cbuilder-perl/lib/ExtUtils/CBuilder/Platform/VMS.pm (original)
+++ trunk/libextutils-cbuilder-perl/lib/ExtUtils/CBuilder/Platform/VMS.pm Mon Jun 16 08:33:37 2008
@@ -4,7 +4,7 @@
 use ExtUtils::CBuilder::Base;
 
 use vars qw($VERSION @ISA);
-$VERSION = '0.12';
+$VERSION = '0.23';
 @ISA = qw(ExtUtils::CBuilder::Base);
 
 sub need_prelink { 0 }

Modified: trunk/libextutils-cbuilder-perl/lib/ExtUtils/CBuilder/Platform/Windows.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libextutils-cbuilder-perl/lib/ExtUtils/CBuilder/Platform/Windows.pm?rev=21700&op=diff
==============================================================================
--- trunk/libextutils-cbuilder-perl/lib/ExtUtils/CBuilder/Platform/Windows.pm (original)
+++ trunk/libextutils-cbuilder-perl/lib/ExtUtils/CBuilder/Platform/Windows.pm Mon Jun 16 08:33:37 2008
@@ -7,9 +7,10 @@
 use File::Spec;
 
 use ExtUtils::CBuilder::Base;
+use IO::File;
 
 use vars qw($VERSION @ISA);
-$VERSION = '0.12';
+$VERSION = '0.23';
 @ISA = qw(ExtUtils::CBuilder::Base);
 
 sub new {
@@ -33,61 +34,24 @@
 }
 
 sub split_like_shell {
-  # As it turns out, Windows command-parsing is very different from
-  # Unix command-parsing.  Double-quotes mean different things,
-  # backslashes don't necessarily mean escapes, and so on.  So we
-  # can't use Text::ParseWords::shellwords() to break a command string
-  # into words.  The algorithm below was bashed out by Randy and Ken
-  # (mostly Randy), and there are a lot of regression tests, so we
-  # should feel free to adjust if desired.
-  
+  # Since Windows will pass the whole command string (not an argument
+  # array) to the target program and make the program parse it itself,
+  # we don't actually need to do any processing here.
   (my $self, local $_) = @_;
   
   return @$_ if defined() && UNIVERSAL::isa($_, 'ARRAY');
-  
-  my @argv;
-  return @argv unless defined() && length();
-  
-  my $arg = '';
-  my( $i, $quote_mode ) = ( 0, 0 );
-  
-  while ( $i < length() ) {
-    
-    my $ch      = substr( $_, $i  , 1 );
-    my $next_ch = substr( $_, $i+1, 1 );
-    
-    if ( $ch eq '\\' && $next_ch eq '"' ) {
-      $arg .= '"';
-      $i++;
-    } elsif ( $ch eq '\\' && $next_ch eq '\\' ) {
-      $arg .= '\\';
-      $i++;
-    } elsif ( $ch eq '"' && $next_ch eq '"' && $quote_mode ) {
-      $quote_mode = !$quote_mode;
-      $arg .= '"';
-      $i++;
-    } elsif ( $ch eq '"' && $next_ch eq '"' && !$quote_mode &&
-	      ( $i + 2 == length()  ||
-		substr( $_, $i + 2, 1 ) eq ' ' )
-	    ) { # for cases like: a"" => [ 'a' ]
-      push( @argv, $arg );
-      $arg = '';
-      $i += 2;
-    } elsif ( $ch eq '"' ) {
-      $quote_mode = !$quote_mode;
-    } elsif ( $ch eq ' ' && !$quote_mode ) {
-      push( @argv, $arg ) if $arg;
-      $arg = '';
-      ++$i while substr( $_, $i + 1, 1 ) eq ' ';
-    } else {
-      $arg .= $ch;
-    }
-    
-    $i++;
-  }
-  
-  push( @argv, $arg ) if defined( $arg ) && length( $arg );
-  return @argv;
+  return unless defined() && length();
+  return ($_);
+}
+
+sub do_system {
+  # See above
+  my $self = shift;
+  my $cmd = join(" ",
+		 grep length,
+		 map {$a=$_;$a=~s/\t/ /g;$a=~s/^\s+|\s+$//;$a}
+		 grep defined, @_);
+  return $self->SUPER::do_system($cmd);
 }
 
 sub arg_defines {
@@ -119,7 +83,7 @@
     cflags      => [
                      $self->split_like_shell($cf->{ccflags}),
                      $self->split_like_shell($cf->{cccdlflags}),
-                     $self->split_like_shell($cf->{extra_compiler_flags}),
+                     $self->split_like_shell($args{extra_compiler_flags}),
                    ],
     optimize    => [ $self->split_like_shell($cf->{optimize})    ],
     defines     => \@defines,
@@ -192,10 +156,20 @@
 
   $spec{output}    ||= File::Spec->catfile( $spec{builddir},
                                             $spec{basename}  . '.'.$cf->{dlext}   );
+  $spec{manifest}  ||= File::Spec->catfile( $spec{builddir},
+                                            $spec{basename}  . '.'.$cf->{dlext}.'.manifest');
   $spec{implib}    ||= File::Spec->catfile( $spec{builddir},
                                             $spec{basename}  . $cf->{lib_ext} );
   $spec{explib}    ||= File::Spec->catfile( $spec{builddir},
                                             $spec{basename}  . '.exp'  );
+  if ($cf->{cc} eq 'cl') {
+    $spec{dbg_file}  ||= File::Spec->catfile( $spec{builddir},
+                                            $spec{basename}  . '.pdb'  );
+  }
+  elsif ($cf->{cc} eq 'bcc32') {
+    $spec{dbg_file}  ||= File::Spec->catfile( $spec{builddir},
+                                            $spec{basename}  . '.tds'  );
+  }
   $spec{def_file}  ||= File::Spec->catfile( $spec{srcdir}  ,
                                             $spec{basename}  . '.def'  );
   $spec{base_file} ||= File::Spec->catfile( $spec{srcdir}  ,
@@ -203,10 +177,10 @@
 
   $self->add_to_cleanup(
     grep defined,
-    @{[ @spec{qw(implib explib def_file base_file map_file)} ]}
-  );
-
-  foreach my $opt ( qw(output implib explib def_file map_file base_file) ) {
+    @{[ @spec{qw(manifest implib explib dbg_file def_file base_file map_file)} ]}
+  );
+
+  foreach my $opt ( qw(output manifest implib explib dbg_file def_file map_file base_file) ) {
     $self->normalize_filespecs( \$spec{$opt} );
   }
 
@@ -227,7 +201,7 @@
 
   $spec{output} =~ tr/'"//d;
   return wantarray
-    ? grep defined, @spec{qw[output implib explib def_file map_file base_file]}
+    ? grep defined, @spec{qw[output manifest implib explib dbg_file def_file map_file base_file]}
     : $spec{output};
 }
 
@@ -319,18 +293,16 @@
   $self->add_to_cleanup($script);
   print "Generating script '$script'\n" if !$self->{quiet};
 
-  open( SCRIPT, ">$script" )
+  my $SCRIPT = IO::File->new( ">$script" )
     or die( "Could not create script '$script': $!" );
 
-  print SCRIPT join( "\n",
+  print $SCRIPT join( "\n",
     map { ref $_ ? @{$_} : $_ }
     grep defined,
     delete(
       @spec{ qw(includes cflags optimize defines perlinc) } )
   );
 
-  close SCRIPT;
-
   push @{$spec{includes}}, '@"' . $script . '"';
 
   return %spec;
@@ -338,20 +310,26 @@
 
 sub format_linker_cmd {
   my ($self, %spec) = @_;
+  my $cf = $self->{config};
 
   foreach my $path ( @{$spec{libpath}} ) {
     $path = "-libpath:$path";
   }
 
-  $spec{def_file}  &&= '-def:'    . $spec{def_file};
-  $spec{output}    &&= '-out:'    . $spec{output};
-  $spec{implib}    &&= '-implib:' . $spec{implib};
-  $spec{map_file}  &&= '-map:'    . $spec{map_file};
+  my $output = $spec{output};
+
+  $spec{def_file}  &&= '-def:'      . $spec{def_file};
+  $spec{output}    &&= '-out:'      . $spec{output};
+  $spec{manifest}  &&= '-manifest ' . $spec{manifest};
+  $spec{implib}    &&= '-implib:'   . $spec{implib};
+  $spec{map_file}  &&= '-map:'      . $spec{map_file};
 
   %spec = $self->write_linker_script(%spec)
     if $spec{use_scripts};
 
-  return [ grep {defined && length} (
+  my @cmds; # Stores the series of commands needed to build the module.
+
+  push @cmds, [ grep {defined && length} (
     $spec{ld}               ,
     @{$spec{lddlflags}}     ,
     @{$spec{libpath}}       ,
@@ -365,6 +343,15 @@
     $spec{implib}           ,
     $spec{output}           ,
   ) ];
+
+  # Embed the manifest file for VC 2005 (aka VC 8) or higher, but not for the 64-bit Platform SDK compiler
+  if ($cf->{ivsize} == 4 && $cf->{cc} eq 'cl' and $cf->{ccversion} =~ /^(\d+)/ and $1 >= 14) {
+    push @cmds, [
+      'mt', '-nologo', $spec{manifest}, '-outputresource:' . "$output;2"
+    ];
+  }
+
+  return @cmds;
 }
 
 sub write_linker_script {
@@ -377,10 +364,10 @@
 
   print "Generating script '$script'\n" if !$self->{quiet};
 
-  open( SCRIPT, ">$script" )
+  my $SCRIPT = IO::File->new( ">$script" )
     or die( "Could not create script '$script': $!" );
 
-  print SCRIPT join( "\n",
+  print $SCRIPT join( "\n",
     map { ref $_ ? @{$_} : $_ }
     grep defined,
     delete(
@@ -388,8 +375,6 @@
                 startup objects libperl perllibs
                 def_file implib map_file)            } )
   );
-
-  close SCRIPT;
 
   push @{$spec{lddlflags}}, '@"' . $script . '"';
 
@@ -434,17 +419,20 @@
 
   print "Generating script '$script'\n" if !$self->{quiet};
 
-  open( SCRIPT, ">$script" )
+  my $SCRIPT = IO::File->new( ">$script" )
     or die( "Could not create script '$script': $!" );
 
-  print SCRIPT join( "\n",
+  # XXX Borland "response files" seem to be unable to accept macro
+  # definitions containing quoted strings. Escaping strings with
+  # backslash doesn't work, and any level of quotes are stripped. The
+  # result is is a floating point number in the source file where a
+  # string is expected. So we leave the macros on the command line.
+  print $SCRIPT join( "\n",
     map { ref $_ ? @{$_} : $_ }
     grep defined,
     delete(
-      @spec{ qw(includes cflags optimize defines perlinc) } )
-  );
-
-  close SCRIPT;
+      @spec{ qw(includes cflags optimize perlinc) } )
+  );
 
   push @{$spec{includes}}, '@"' . $script . '"';
 
@@ -495,28 +483,24 @@
   print "Generating scripts '$ld_script' and '$ld_libs'.\n" if !$self->{quiet};
 
   # Script 1: contains options & names of object files.
-  open( LD_SCRIPT, ">$ld_script" )
+  my $LD_SCRIPT = IO::File->new( ">$ld_script" )
     or die( "Could not create linker script '$ld_script': $!" );
 
-  print LD_SCRIPT join( " +\n",
+  print $LD_SCRIPT join( " +\n",
     map { @{$_} }
     grep defined,
     delete(
       @spec{ qw(lddlflags libpath other_ldflags startup objects) } )
   );
 
-  close LD_SCRIPT;
-
   # Script 2: contains name of libs to link against.
-  open( LD_LIBS, ">$ld_libs" )
+  my $LD_LIBS = IO::File->new( ">$ld_libs" )
     or die( "Could not create linker script '$ld_libs': $!" );
 
-  print LD_LIBS join( " +\n",
+  print $LD_LIBS join( " +\n",
      (delete $spec{libperl}  || ''),
     @{delete $spec{perllibs} || []},
   );
-
-  close LD_LIBS;
 
   push @{$spec{lddlflags}}, '@"' . $ld_script  . '"';
   push @{$spec{perllibs}},  '@"' . $ld_libs    . '"';
@@ -639,31 +623,29 @@
 
   print "Generating script '$script'\n" if !$self->{quiet};
 
-  open( SCRIPT, ">$script" )
+  my $SCRIPT = IO::File->new( ">$script" )
     or die( "Could not create script '$script': $!" );
 
-  print( SCRIPT 'SEARCH_DIR(' . $_ . ")\n" )
+  print $SCRIPT ( 'SEARCH_DIR(' . $_ . ")\n" )
     for @{delete $spec{libpath} || []};
 
   # gcc takes only one startup file, so the first object in startup is
   # specified as the startup file and any others are shifted into the
   # beginning of the list of objects.
   if ( $spec{startup} && @{$spec{startup}} ) {
-    print SCRIPT 'STARTUP(' . shift( @{$spec{startup}} ) . ")\n";
+    print $SCRIPT 'STARTUP(' . shift( @{$spec{startup}} ) . ")\n";
     unshift @{$spec{objects}},
       @{delete $spec{startup} || []};
   }
 
-  print SCRIPT 'INPUT(' . join( ',',
+  print $SCRIPT 'INPUT(' . join( ',',
     @{delete $spec{objects}  || []}
   ) . ")\n";
 
-  print SCRIPT 'INPUT(' . join( ' ',
+  print $SCRIPT 'INPUT(' . join( ' ',
      (delete $spec{libperl}  || ''),
     @{delete $spec{perllibs} || []},
   ) . ")\n";
-
-  close SCRIPT;
 
   push @{$spec{other_ldflags}}, '"' . $script . '"';
 

Modified: trunk/libextutils-cbuilder-perl/lib/ExtUtils/CBuilder/Platform/aix.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libextutils-cbuilder-perl/lib/ExtUtils/CBuilder/Platform/aix.pm?rev=21700&op=diff
==============================================================================
--- trunk/libextutils-cbuilder-perl/lib/ExtUtils/CBuilder/Platform/aix.pm (original)
+++ trunk/libextutils-cbuilder-perl/lib/ExtUtils/CBuilder/Platform/aix.pm Mon Jun 16 08:33:37 2008
@@ -5,7 +5,7 @@
 use File::Spec;
 
 use vars qw($VERSION @ISA);
-$VERSION = '0.12';
+$VERSION = '0.23';
 @ISA = qw(ExtUtils::CBuilder::Platform::Unix);
 
 sub need_prelink { 1 }

Modified: trunk/libextutils-cbuilder-perl/lib/ExtUtils/CBuilder/Platform/cygwin.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libextutils-cbuilder-perl/lib/ExtUtils/CBuilder/Platform/cygwin.pm?rev=21700&op=diff
==============================================================================
--- trunk/libextutils-cbuilder-perl/lib/ExtUtils/CBuilder/Platform/cygwin.pm (original)
+++ trunk/libextutils-cbuilder-perl/lib/ExtUtils/CBuilder/Platform/cygwin.pm Mon Jun 16 08:33:37 2008
@@ -5,7 +5,7 @@
 use ExtUtils::CBuilder::Platform::Unix;
 
 use vars qw($VERSION @ISA);
-$VERSION = '0.12';
+$VERSION = '0.23';
 @ISA = qw(ExtUtils::CBuilder::Platform::Unix);
 
 sub link_executable {

Modified: trunk/libextutils-cbuilder-perl/lib/ExtUtils/CBuilder/Platform/darwin.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libextutils-cbuilder-perl/lib/ExtUtils/CBuilder/Platform/darwin.pm?rev=21700&op=diff
==============================================================================
--- trunk/libextutils-cbuilder-perl/lib/ExtUtils/CBuilder/Platform/darwin.pm (original)
+++ trunk/libextutils-cbuilder-perl/lib/ExtUtils/CBuilder/Platform/darwin.pm Mon Jun 16 08:33:37 2008
@@ -4,7 +4,7 @@
 use ExtUtils::CBuilder::Platform::Unix;
 
 use vars qw($VERSION @ISA);
-$VERSION = '0.12';
+$VERSION = '0.23';
 @ISA = qw(ExtUtils::CBuilder::Platform::Unix);
 
 sub compile {

Modified: trunk/libextutils-cbuilder-perl/lib/ExtUtils/CBuilder/Platform/os2.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libextutils-cbuilder-perl/lib/ExtUtils/CBuilder/Platform/os2.pm?rev=21700&op=diff
==============================================================================
--- trunk/libextutils-cbuilder-perl/lib/ExtUtils/CBuilder/Platform/os2.pm (original)
+++ trunk/libextutils-cbuilder-perl/lib/ExtUtils/CBuilder/Platform/os2.pm Mon Jun 16 08:33:37 2008
@@ -4,7 +4,7 @@
 use ExtUtils::CBuilder::Platform::Unix;
 
 use vars qw($VERSION @ISA);
-$VERSION = '0.13';
+$VERSION = '0.23';
 @ISA = qw(ExtUtils::CBuilder::Platform::Unix);
 
 sub need_prelink { 1 }
@@ -12,26 +12,60 @@
 sub prelink {
   # Generate import libraries (XXXX currently near .DEF; should be near DLL!)
   my $self = shift;
-  my @res = $self->SUPER::prelink(@_);
+  my %args = @_;
+
+  my @res = $self->SUPER::prelink(%args);
   die "Unexpected number of DEF files" unless @res == 1;
   die "Can't find DEF file in the output"
-    unless $res[0] =~ m,^(.*?)([^\\/]+)\.def$,si;
-  my $libname = "$2$self->{config}{lib_ext}";
+    unless $res[0] =~ m,^(.*)\.def$,si;
+  my $libname = "$1$self->{config}{lib_ext}";	# Put .LIB file near .DEF file
   $self->do_system('emximp', '-o', $libname, $res[0]) or die "emxexp: res=$?";
   return (@res, $libname);
 }
 
 sub _do_link {
+  my $self = shift;
+  my ($how, %args) = @_;
+  if ($how eq 'lib_file'
+      and (defined $args{module_name} and length $args{module_name})) {
+
+    # DynaLoader::mod2fname() is a builtin func
+    my $lib = DynaLoader::mod2fname([split /::/, $args{module_name}]);
+
+    # Now know the basename, find directory parts via lib_file, or objects
+    my $objs = ( (ref $args{objects}) ? $args{objects} : [$args{objects}] );
+    my $near_obj = $self->lib_file(@$objs);
+    my $ref_file = ( defined $args{lib_file} ? $args{lib_file} : $near_obj );
+    my $lib_dir = ($ref_file =~ m,(.*)[/\\],s ? "$1/" : '' );
+    my $exp_dir = ($near_obj =~ m,(.*)[/\\],s ? "$1/" : '' );
+
+    $args{dl_file} = $1 if $near_obj =~ m,(.*)\.,s; # put ExportList near OBJ
+    $args{lib_file} = "$lib_dir$lib.$self->{config}{dlext}";	# DLL file
+
+    # XXX _do_link does not have place to put libraries?
+    push @$objs, $self->perl_inc() . "/libperl$self->{config}{lib_ext}";
+    $args{objects} = $objs;
+  }
   # Some 'env' do exec(), thus return too early when run from ksh;
   # To avoid 'env', remove (useless) shrpenv
-  my $self = shift;
   local $self->{config}{shrpenv} = '';
-  return $self->SUPER::_do_link(@_);
+  return $self->SUPER::_do_link($how, %args);
 }
 
-sub extra_link_args_after_prelink {	# Add .DEF file to the link line
+sub extra_link_args_after_prelink {
+  # Add .DEF file to the link line
   my ($self, %args) = @_;
-  grep /\.def$/i, @{$args{prelink_res}};
+
+  my @DEF = grep /\.def$/i, @{$args{prelink_res}};
+  die "More than one .def files created by `prelink' stage" if @DEF > 1;
+  # XXXX No "$how" argument here, so how to test for dynamic link?
+  die "No .def file created by `prelink' stage"
+    unless @DEF or not @{$args{prelink_res}};
+
+  my @after_libs = ($OS2::is_aout ? ()
+      : $self->perl_inc() . "/libperl_override$self->{config}{lib_ext}");
+  # , "-L", "-lperl"
+  (@after_libs, @DEF);
 }
 
 sub link_executable {

Modified: trunk/libextutils-cbuilder-perl/t/01-basic.t
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libextutils-cbuilder-perl/t/01-basic.t?rev=21700&op=diff
==============================================================================
--- trunk/libextutils-cbuilder-perl/t/01-basic.t (original)
+++ trunk/libextutils-cbuilder-perl/t/01-basic.t Mon Jun 16 08:33:37 2008
@@ -53,6 +53,16 @@
 }
 
 my @words = $b->split_like_shell(' foo bar');
-ok @words, 2;
-ok $words[0], 'foo';
-ok $words[1], 'bar';
+
+skip(
+    $^O =~ m/MSWin/ ? "Skip under MSWindows" : 0,  # whether to skip
+    @words, 2
+  );
+skip(
+    $^O =~ m/MSWin/ ? "Skip under MSWindows" : 0,  # whether to skip
+    $words[0], 'foo'
+);
+skip(
+    $^O =~ m/MSWin/ ? "Skip under MSWindows" : 0,  # whether to skip
+    $words[1], 'bar'
+);




More information about the Pkg-perl-cvs-commits mailing list