From: Tomas V.V.Cox Date: Sun, 19 Aug 2001 12:30:24 +0000 (+0000) Subject: maintain original file perms X-Git-Tag: PRE_SUBST_Z_MACROS~443 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=cf70755a051498393f59fd45246b7c558be7efd4;p=php maintain original file perms --- 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));