[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openpkg-cvs
Subject:    [CVS] OpenPKG: openpkg-src/perl-openpkg/ perl-openpkg.pl perl-openpkg....
From:       "Ralf S. Engelschall" <rse () openpkg ! org>
Date:       2005-10-31 15:33:36
Message-ID: 20051031153336.114571B506D () master ! openpkg ! org
[Download RAW message or body]

  OpenPKG CVS Repository
  http://cvs.openpkg.org/
  ____________________________________________________________________________

  Server: cvs.openpkg.org                  Name:   Ralf S. Engelschall
  Root:   /v/openpkg/cvs                   Email:  rse@openpkg.org
  Module: openpkg-src                      Date:   31-Oct-2005 16:33:36
  Branch: HEAD                             Handle: 2005103115333600

  Modified files:
    openpkg-src/perl-openpkg
                            perl-openpkg.pl perl-openpkg.spec

  Log:
    add initial support for Module::Build based Build.PL scripts

  Summary:
    Revision    Changes     Path
    1.14        +73 -38     openpkg-src/perl-openpkg/perl-openpkg.pl
    1.26        +1  -1      openpkg-src/perl-openpkg/perl-openpkg.spec
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: openpkg-src/perl-openpkg/perl-openpkg.pl
  ============================================================================
  $ cvs diff -u -r1.13 -r1.14 perl-openpkg.pl
  --- openpkg-src/perl-openpkg/perl-openpkg.pl	15 May 2005 08:52:44 -0000	1.13
  +++ openpkg-src/perl-openpkg/perl-openpkg.pl	31 Oct 2005 15:33:36 -0000	1.14
  @@ -155,7 +155,7 @@
             " -P, --perl <file-path>       filesystem path to Perl program\n" .
             "\n" .
             " -s, --schema <schema>        Perl INSTALLDIRS schema\n" .
  -          " -A, --args <arguments>       Perl Makefile.PL passed through arguments\n" .
  +          " -A, --args <arguments>       Perl Build.PL/Makefile.PL passed through arguments\n" .
             " -I, --stdin <file-path>      filesystem path to connect to stdin\n" .
             " -F, --files <file-path>      filesystem path to write RPM \%files list to\n" .
             " -U, --unquoted               output RPM \%files list in unquoted format\n" .
  @@ -328,19 +328,37 @@
   if (grep { $_ eq "configure" } @steps_run) {
       &verbose("step 2: configure");
   
  -    #   sanity check
  -    if (not -f "Makefile.PL") {
  -        die "file \"Makefile.PL\" not found in working directory";
  -    }
  -
       #   determine Makefile.PL arguments
  -    my $perl_args = " PERL=$perlwrap FULLPERL=$perlwrap";
  -    $perl_args .= " INSTALLDIRS=$CF->{perl_schema}";
  -    $perl_args .= " INSTALLMAN3DIR=none INSTALLSITEMAN3DIR=none INSTALLVENDORMAN3DIR=none";
  -    $perl_args .= " DESTDIR=$CF->{path_buildroot} PREFIX=$CF->{path_prefix}";
  -    if ($CF->{path_libdir} ne '') {
  -        $perl_args .= " LIB=$CF->{path_libdir}";
  +    my $perl_args = '';
  +    if (-f "Build.PL") {
  +        #   new-style Module::Build "Build.PL"
  +        $perl_args .= " installdirs=$CF->{perl_schema}";
  +        $perl_args .= " --install_path libdoc=remove-me-later";
  +        $perl_args .= " destdir=$CF->{path_buildroot}";
  +        if ($CF->{path_prefix} ne '' and $CF->{path_prefix} ne '@l_prefix@') {
  +            $perl_args .= " install_base=$CF->{path_prefix}";
  +        }
  +        if ($CF->{path_libdir} ne '') {
  +            $perl_args .= " --install_path lib=$CF->{path_libdir}";
  +        }
       }
  +    elsif (-f "Makefile.PL") {
  +        #   old-style ExtUtils::MakeMaker "Makefile.PL"
  +        $perl_args .= " PERL=$perlwrap FULLPERL=$perlwrap";
  +        $perl_args .= " INSTALLDIRS=$CF->{perl_schema}";
  +        $perl_args .= " INSTALLMAN3DIR=none INSTALLSITEMAN3DIR=none INSTALLVENDORMAN3DIR=none";
  +        $perl_args .= " DESTDIR=$CF->{path_buildroot}";
  +        if ($CF->{path_prefix} ne '') {
  +            $perl_args .= " PREFIX=$CF->{path_prefix}";
  +        }
  +        if ($CF->{path_libdir} ne '') {
  +            $perl_args .= " LIB=$CF->{path_libdir}";
  +        }
  +    }
  +    else {
  +        die "neither Module::Build \"Build.PL\" nor ExtUtils::MakeMaker \"Makefile.PL\" file found";
  +    }
  +
       if ($#{@{$CF->{perl_args}}} >= 0) {
           my $user_args = join(" ", @{$CF->{perl_args}});
           if ($user_args =~ m|#|) {
  @@ -353,9 +371,16 @@
       }
   
       #   fixate Makefile.PL
  -    &runcmd("chmod u+rw Makefile.PL");
  -    &runcmd("cp Makefile.PL Makefile.PL.orig");
  -    &runcmd("sed -e \"s:\\\$^X:'$perlwrap':g\" <Makefile.PL.orig >Makefile.PL");
  +    if (-f "Build.PL") {
  +        &runcmd("chmod u+rw Build.PL");
  +        &runcmd("cp Build.PL Build.PL.orig");
  +        &runcmd("sed -e \"s:\\\$^X:'$perlwrap':g\" <Build.PL.orig >Build.PL");
  +    }
  +    elsif (-f "Makefile.PL") {
  +        &runcmd("chmod u+rw Makefile.PL");
  +        &runcmd("cp Makefile.PL Makefile.PL.orig");
  +        &runcmd("sed -e \"s:\\\$^X:'$perlwrap':g\" <Makefile.PL.orig >Makefile.PL");
  +    }
   
       #   determine stdin
       if ($CF->{perl_stdin} ne "-") {
  @@ -363,43 +388,53 @@
       }
   
       #   execute Makefile.PL
  -    &runcmd("$perlwrap Makefile.PL $perl_args");
  +    if (-f "Build.PL") {
  +        &runcmd("$perlwrap ./Build.PL $perl_args");
  +    }
  +    elsif (-f "Makefile.PL") {
  +        &runcmd("$perlwrap ./Makefile.PL $perl_args");
  +    }
   }
   
   #   ==== STEP: 3. build ====
   if (grep { $_ eq "build" } @steps_run) {
       &verbose("step 3: build");
   
  -    #   sanity check
  -    if (not -f "Makefile") {
  -        die "file \"Makefile\" not found in working directory";
  +    if (-f "Build.PL" and -f "Build") {
  +        #   execute Build script
  +        &runcmd("$perlwrap Build build");
  +    }
  +    elsif (-f "Makefile.PL" and -f "Makefile") {
  +        #   execute Makefile procedure
  +        my $make = `$CF->{prog_rpm} --eval '\%{l_make} \%{l_mflags}'`;
  +        $make =~ s|\n+$||s;
  +        my $make_args = "PERL=$perlwrap FULLPERL=$perlwrap";
  +        &runcmd("$make $make_args pure_all");
  +    }
  +    else {
  +        die "neither \"Build\" nor \"Makefile\" found in working directory";
       }
  -
  -    #   determine make(1) command and flags
  -    my $make = `$CF->{prog_rpm} --eval '\%{l_make} \%{l_mflags}'`;
  -    $make =~ s|\n+$||s;
  -    my $make_args = "PERL=$perlwrap FULLPERL=$perlwrap";
  -
  -    #   execute make(1)
  -    &runcmd("$make $make_args pure_all");
   }
   
   #   ==== STEP: 4. install ====
   if (grep { $_ eq "install" } @steps_run) {
       &verbose("step 4: install");
   
  -    #   sanity check
  -    if (not -f "Makefile") {
  -        die "file \"Makefile\" not found in working directory";
  +    if (-f "Build.PL") {
  +        #   execute Build script
  +        &runcmd("$perlwrap Build install");
  +        &runcmd("rm -rf $CF->{path_buildroot}$CF->{path_prefix}/remove-me-later");
  +    }
  +    elsif (-f "Makefile.PL") {
  +        #   execute Makefile procedure
  +        my $make = `$CF->{prog_rpm} --eval '\%{l_make} \%{l_mflags}'`;
  +        $make =~ s|\n+$||s;
  +        my $make_args = "PERL=$perlwrap FULLPERL=$perlwrap";
  +        &runcmd("$make $make_args pure_install");
  +    }
  +    else {
  +        die "neither \"Build\" nor \"Makefile\" found in working directory";
       }
  -
  -    #   determine make(1) command and flags
  -    my $make = `$CF->{prog_rpm} --eval '\%{l_make} \%{l_mflags}'`;
  -    $make =~ s|\n+$||s;
  -    my $make_args = "PERL=$perlwrap FULLPERL=$perlwrap";
  -
  -    #   execute make(1)
  -    &runcmd("$make $make_args pure_install");
   }
   
   #   ==== STEP: 5. fixate ====
  @@ .
  patch -p0 <<'@@ .'
  Index: openpkg-src/perl-openpkg/perl-openpkg.spec
  ============================================================================
  $ cvs diff -u -r1.25 -r1.26 perl-openpkg.spec
  --- openpkg-src/perl-openpkg/perl-openpkg.spec	3 Jun 2005 07:05:08 -0000	1.25
  +++ openpkg-src/perl-openpkg/perl-openpkg.spec	31 Oct 2005 15:33:36 -0000	1.26
  @@ -36,7 +36,7 @@
   Group:        Language
   License:      PD
   Version:      %{V_perl}
  -Release:      20050603
  +Release:      20051031
   
   #   list of sources
   Source0:      perl-openpkg.pl
  @@ .
______________________________________________________________________
The OpenPKG Project                                    www.openpkg.org
CVS Repository Commit List                     openpkg-cvs@openpkg.org

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic