Update of /cvsroot/fink/fink/perlmod/Fink
In directory usw-pr-cvs1:/tmp/cvs-serv5657/perlmod/Fink

Modified Files:
        Bootstrap.pm ChangeLog PkgVersion.pm 
Log Message:
Incorporated patch #577882 by Sylvain Cuaz which cleans the environment before 
building packages.

Index: Bootstrap.pm
===================================================================
RCS file: /cvsroot/fink/fink/perlmod/Fink/Bootstrap.pm,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- Bootstrap.pm        7 Jun 2002 22:27:27 -0000       1.14
+++ Bootstrap.pm        24 Jul 2002 21:59:35 -0000      1.15
@@ -37,7 +37,7 @@
   $VERSION = 1.00;
   @ISA         = qw(Exporter);
   @EXPORT      = qw();
-  @EXPORT_OK   = qw(&bootstrap);
+  @EXPORT_OK   = qw(&bootstrap &get_bsbase);
   %EXPORT_TAGS = ( );     # eg: TAG => [ qw!name1 name2! ],
 }
 our @EXPORT_OK;
@@ -53,7 +53,7 @@
   my @plist = ("gettext", "tar", "dpkg-bootstrap");
   my @addlist = ("apt", "apt-shlibs", "storable-pm");
 
-  $bsbase = "$basepath/bootstrap";
+  $bsbase = &get_bsbase();
   &print_breaking("Bootstrapping a base system via $bsbase.");
 
   # create directories
@@ -130,6 +130,9 @@
   $ENV{PATH} = $save_path;
 }
 
+sub get_bsbase {
+  return "$basepath/bootstrap";
+}
 
 ### EOF
 1;

Index: ChangeLog
===================================================================
RCS file: /cvsroot/fink/fink/perlmod/Fink/ChangeLog,v
retrieving revision 1.172
retrieving revision 1.173
diff -u -r1.172 -r1.173
--- ChangeLog   22 Jul 2002 11:45:36 -0000      1.172
+++ ChangeLog   24 Jul 2002 21:59:35 -0000      1.173
@@ -1,3 +1,8 @@
+2002-07-24  Max Horn  <[EMAIL PROTECTED]>
+
+       * Incorporated patch #577882 by Sylvain Cuaz which cleans the environment 
+       before building packages.
+
 2002-07-22  Max Horn  <[EMAIL PROTECTED]>
 
        * Various files: Applied Justin's multi-level verbosity patch.

Index: PkgVersion.pm
===================================================================
RCS file: /cvsroot/fink/fink/perlmod/Fink/PkgVersion.pm,v
retrieving revision 1.69
retrieving revision 1.70
diff -u -r1.69 -r1.70
--- PkgVersion.pm       22 Jul 2002 11:45:36 -0000      1.69
+++ PkgVersion.pm       24 Jul 2002 21:59:35 -0000      1.70
@@ -33,6 +33,7 @@
 use Fink::Mirror;
 use Fink::Package;
 use Fink::Status;
+use Fink::Bootstrap qw(&get_bsbase);
 
 use File::Basename qw(&dirname);
 
@@ -905,6 +906,8 @@
   my $self = shift;
   my ($archive, $found_archive, $bdir, $destdir, $unpack_cmd);
   my ($i, $verbosity, $answer, $tries, $checksum);
+  my ($renamefield, @renamefiles, $renamefile, $renamelist, $expand);
+  my ($tar, $bzip2, $unzip);
 
   if ($self->{_type} eq "bundle") {
     return;
@@ -985,16 +988,43 @@
       }
     }
 
-    # determine unpacking command
+    # Determine the name of the TarFilesRename in the case of multi tarball packages
+    if ($i < 2) {
+      $renamefield = "TarFilesRename";
+    } else {
+      $renamefield = "Tar".$i."FilesRename";
+    }
+
+    $renamelist = "";
+
+    # Determine the rename list (if any)
+    if ($self->has_param($renamefield)) {
+      @renamefiles = split(/\s+/, $self->param($renamefield));
+      foreach $renamefile (@renamefiles) {
+        $renamefile = &expand_percent($renamefile, $expand);
+        if ($renamefile =~ /^(.+)\:(.+)$/) {
+          $renamelist .= " -s ,$1,$2,";
+        } else {
+          $renamelist .= " -s ,${renamefile},${renamefile}_tmp,";
+        }
+      }
+      $tar = "/usr/bin/tar"; # Use BSD Tar not GNU Tar (only BSD Tar has the rename 
+feature)
+    } else {
+      $tar = "$basepath/bin/tar"; # Default is GNU Tar
+    }
+    $bzip2 = "bzip2";
+    $unzip = "unzip";
+
+    # Determine unpack command
     $unpack_cmd = "cp $found_archive .";
     if ($archive =~ /[\.\-]tar\.(gz|z|Z)$/ or $archive =~ /\.tgz$/) {
-      $unpack_cmd = "tar -x${verbosity}zf $found_archive";
+      $unpack_cmd = "$tar -x${verbosity}zf $found_archive $renamelist";
     } elsif ($archive =~ /[\.\-]tar\.bz2$/) {
-      $unpack_cmd = "bzip2 -dc $found_archive | tar -x${verbosity}f -";
+      $unpack_cmd = "$bzip2 -dc $found_archive | $tar -x${verbosity}f $renamelist -";
     } elsif ($archive =~ /[\.\-]tar$/) {
-      $unpack_cmd = "tar -x${verbosity}f $found_archive";
+      $unpack_cmd = "$tar -x${verbosity}f $found_archive $renamelist";
     } elsif ($archive =~ /\.zip$/) {
-      $unpack_cmd = "unzip -o $found_archive";
+      $unpack_cmd = "$unzip -o $found_archive";
     }
 
     # calculate destination directory
@@ -1549,7 +1579,27 @@
   my ($varname, $s, $expand);
   my %defaults = ( "CPPFLAGS" => "-I\%p/include",
                   "LDFLAGS" => "-L\%p/lib" );
+  my $bsbase = get_bsbase();
+
+  # clean the environment
+  %ENV = ();
+
+  # add system path
+  $ENV{"PATH"} = "/bin:/usr/bin";
+  
+  # add bootstrap path if necessary
+  if (-d $bsbase) {
+    $ENV{"PATH"} = "$bsbase/bin:$bsbase/sbin:" . $ENV{"PATH"};
+  }
+
+  # set additional variables if possible
+  if (-r $basepath . '/bin/init.sh') {
+    my @vars = `sh -c ". $basepath/bin/init.sh ; /usr/bin/env"`;
+    chomp @vars;
+    %ENV = map { split /=/ } @vars;
+  }
 
+  # set variables according to the info file
   $expand = $self->{_expand};
   foreach $varname ("CC", "CFLAGS",
                    "CPP", "CPPFLAGS",



-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
Fink-commits mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/fink-commits

Reply via email to