summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pear/PEAR/Installer.php2
-rw-r--r--pear/PEAR/Packager.php11
2 files changed, 10 insertions, 3 deletions
diff --git a/pear/PEAR/Installer.php b/pear/PEAR/Installer.php
index a4c595691a..948eab69ec 100644
--- a/pear/PEAR/Installer.php
+++ b/pear/PEAR/Installer.php
@@ -227,10 +227,12 @@ class PEAR_Installer extends PEAR_Common
}
$this->log(2, "+ created dir $dest_dir");
}
+ $orig_perms = fileperms($file);
if (!@copy($file, $dest_file)) {
$this->log(0, "failed to copy $file to $dest_file");
return false;
}
+ chmod($dest_file, $orig_perms);
$this->log(2, "+ copy $file to $dest_file");
// FIXME Update Package database here
//$this->updatePackageListFrom("$d/$file");
diff --git a/pear/PEAR/Packager.php b/pear/PEAR/Packager.php
index b790ac956f..0df36e03e1 100644
--- a/pear/PEAR/Packager.php
+++ b/pear/PEAR/Packager.php
@@ -154,19 +154,24 @@ class PEAR_Packager extends PEAR_Common
return $this->raiseError("could not mkdir $dir");
}
}
+ //Maintain original file perms
+ $orig_perms = fileperms($fname);
if (!@copy($fname, $file)) {
$this->log(0, "could not copy $fname to $file");
} else {
$this->log(2, "+ copying from $fname to $file");
}
+ chmod($file, $orig_perms);
}
// XXX TODO: Rebuild the package file as the old method did?
// This allows build packages from different pear pack def files
- if (!@copy($pkgfile, $this->tmpdir . DIRECTORY_SEPARATOR . 'package.xml')) {
- return $this->raiseError("could not copy $pkgfile to " . $this->tmpdir);
+ $dest_pkgfile = $this->tmpdir . DIRECTORY_SEPARATOR . 'package.xml';
+ $this->log(2, "+ copying package $pkgfile to $dest_pkgfile");
+ if (!@copy($pkgfile, $dest_pkgfile)) {
+ return $this->raiseError("could not copy $pkgfile to $dest_pkgfile");
}
- $this->log(2, "+ copying package $pkgfile to " . $this->tmpdir);
+ chmod($dest_pkgfile, 0644);
// TAR the Package -------------------------------------------
chdir(dirname($this->tmpdir));