mirror of
https://git.freebsd.org/ports.git
synced 2025-07-05 11:29:15 -04:00
PEAR 1.10.6 => 1.10.12 Bundled packages: Archive_Tar 1.4.3 => 1.4.10 Console_Getopt 1.4.1 => 1.4.3 XML_Util 1.4.3 => 1.4.5 Respect PHPBASE Allow build with php80 While here, take maintainership PR: 250809 Submitted by: myself (fluffy) Approved by: maintainer (miwi)
264 lines
7.4 KiB
Text
264 lines
7.4 KiB
Text
--- go-pear.orig 2017-08-03 16:38:00 UTC
|
|
+++ go-pear
|
|
@@ -57,6 +57,8 @@ define('GO_PEAR_VER', '1.1.2');
|
|
|
|
define('WIN32GUI', !WEBINSTALLER && WINDOWS && $sapi_name=='cli' && which('cscript'));
|
|
|
|
+$destdir = getenv('DESTDIR');
|
|
+
|
|
/*
|
|
* See bug #23069
|
|
*/
|
|
@@ -116,7 +118,7 @@ $bootstrap_pkgs = array( // uses URL like http://pear.
|
|
);
|
|
|
|
$installer_packages = array(
|
|
- 'PEAR',
|
|
+ 'PEAR-stable',
|
|
'Structures_Graph-stable',
|
|
'Archive_Tar-stable',
|
|
'Console_Getopt-stable',
|
|
@@ -250,7 +252,7 @@ if (WEBINSTALLER) {
|
|
}
|
|
// Anything past this step has something to do with the installation
|
|
}
|
|
-
|
|
+/*
|
|
if (!WEBINSTALLER) {
|
|
$tty = WINDOWS ? @fopen('\con', 'r') : @fopen('/dev/tty', 'r');
|
|
|
|
@@ -294,7 +296,7 @@ If you wish to abort, press Control-C now, or press En
|
|
$http_proxy = $tmp;
|
|
}
|
|
}
|
|
-
|
|
+*/
|
|
$origpwd = getcwd();
|
|
|
|
$config_vars = array_keys($config_desc);
|
|
@@ -345,7 +347,7 @@ we strongly recommand to use it.
|
|
break;
|
|
}
|
|
}
|
|
-
|
|
+/*
|
|
while (!WEBINSTALLER) {
|
|
print "
|
|
Below is a suggested file layout for your new PEAR installation. To
|
|
@@ -428,7 +430,7 @@ If you have a CLI (or CGI) php.exe available, we stron
|
|
}
|
|
}
|
|
}
|
|
-
|
|
+*/
|
|
####
|
|
# Installation stuff
|
|
####
|
|
@@ -488,7 +490,7 @@ full write access to this directory and the install di
|
|
continue;
|
|
}
|
|
|
|
- $dir = $$var;
|
|
+ $dir = ($destdir ? $destdir : '').$$var;
|
|
if (!@is_dir($dir)) {
|
|
if (!mkdir_p($dir)) {
|
|
if (!WEBINSTALLER) {
|
|
@@ -561,7 +563,7 @@ if (WEBINSTALLER) {
|
|
ob_start();
|
|
}
|
|
}
|
|
-
|
|
+/*
|
|
if (!WEBINSTALLER) {
|
|
$msg = "The following PEAR packages are bundled with PHP: " .
|
|
implode(', ', array_keys($pfc_packages));
|
|
@@ -571,17 +573,19 @@ if (!WEBINSTALLER) {
|
|
$install_optional_packages = array();
|
|
print "\n";
|
|
}
|
|
-
|
|
+*/
|
|
####
|
|
# Download
|
|
####
|
|
|
|
+dl('xml.so');
|
|
+
|
|
if (function_exists('set_include_path')) {
|
|
- set_include_path($ptmp);
|
|
+ set_include_path($ptmp . PATH_SEPARATOR . "%%BUNDLEDIR%%");
|
|
} else {
|
|
- ini_set('include_path', $ptmp);
|
|
+ ini_set('include_path', $ptmp . PATH_SEPARATOR . "%%BUNDLEDIR%%");
|
|
}
|
|
-
|
|
+/*
|
|
if (!extension_loaded('zlib') && !WEBINSTALLER) { // In Web context we could be in multithread env which makes dl() end up with a fatal error.
|
|
if (WINDOWS) {
|
|
@dl('php_zlib.dll');
|
|
@@ -606,18 +610,19 @@ print "Loading zlib: ".($have_gzip ? 'ok' : 'failed').
|
|
if (!$have_gzip) {
|
|
print "Downloading uncompressed packages\n";
|
|
};
|
|
-
|
|
+*/
|
|
if ($install_pfc) {
|
|
$to_install = array_merge($installer_packages, array_keys($pfc_packages));
|
|
} else {
|
|
$to_install = $installer_packages;
|
|
-
|
|
+/*
|
|
// webinstaller allows to choose pfc packages individually
|
|
foreach ($pfc_packages as $pkg => $desc) {
|
|
if (in_array($pkg, $install_optional_packages)) {
|
|
array_push($to_install, $pkg);
|
|
}
|
|
}
|
|
+*/
|
|
}
|
|
|
|
// gopear_bundle usage
|
|
@@ -645,19 +650,21 @@ displayHTMLProgress($progress = 5);
|
|
|
|
// Bootstrap needed ?
|
|
$nobootstrap = false;
|
|
+/*
|
|
if (is_dir($php_dir)) {
|
|
$nobootstrap = true;
|
|
foreach ($bootstrap_files as $file => $url) {
|
|
$nobootstrap &= is_file($php_dir.'/'.$file);
|
|
}
|
|
}
|
|
+*/
|
|
|
|
if ($nobootstrap) {
|
|
print('Using previously install ... ');
|
|
if (function_exists('set_include_path')) {
|
|
- set_include_path($php_dir);
|
|
+ set_include_path($php_dir . PATH_SEPARATOR . "%%BUNDLEDIR%%");
|
|
} else {
|
|
- ini_set('include_path', $php_dir);
|
|
+ ini_set('include_path', $php_dir . PATH_SEPARATOR . "%%BUNDLEDIR%%");
|
|
}
|
|
include_once 'PEAR.php';
|
|
print "ok\n";
|
|
@@ -691,6 +698,7 @@ displayHTMLProgress($progress = 20);
|
|
|
|
// Extract needed ?
|
|
$noextract = false;
|
|
+/*
|
|
if (is_dir($php_dir)) {
|
|
$noextract = @include_once 'PEAR/Registry.php';
|
|
|
|
@@ -701,6 +709,7 @@ if (is_dir($php_dir)) {
|
|
}
|
|
}
|
|
}
|
|
+*/
|
|
|
|
if ($noextract) {
|
|
print('Using previously installed installer ... ');
|
|
@@ -722,7 +731,7 @@ if ($noextract) {
|
|
displayHTMLProgress($progress += round(19 / count($bootstrap_pkgs)));
|
|
|
|
$fullpkg = substr($tarball, 0, strrpos($tarball, '.'));
|
|
- $tar = &new Archive_Tar($tarball, $have_gzip);
|
|
+ $tar = new Archive_Tar($tarball, $have_gzip);
|
|
if (!$tar->extractModify($ptmp, $fullpkg)) {
|
|
bail("Extraction for $fullpkg failed!\n");
|
|
}
|
|
@@ -747,13 +756,8 @@ include_once "PEAR/Config.php";
|
|
include_once "PEAR/Command.php";
|
|
include_once "PEAR/Registry.php";
|
|
|
|
-if (WEBINSTALLER || isset($_SERVER['argv'][1]) && $_SERVER['argv'][1] == 'local') {
|
|
- $config = &PEAR_Config::singleton($prefix."/pear.conf", '');
|
|
-} else {
|
|
- $config = &PEAR_Config::singleton();
|
|
-}
|
|
+$config = &PEAR_Config::singleton(($destdir ? $destdir : '').$prefix."/etc/pear.conf.sample", '');
|
|
|
|
-
|
|
$config->set('preferred_state', 'stable');
|
|
foreach ($config_vars as $var) {
|
|
if (isset($$var) && $$var != '') {
|
|
@@ -765,7 +769,7 @@ $config->set('temp_dir', $temp_dir);
|
|
$config->set('http_proxy', $http_proxy);
|
|
$config->store();
|
|
|
|
-$registry = new PEAR_Registry($php_dir);
|
|
+$registry = new PEAR_Registry(($destdir ? $destdir : '').$php_dir);
|
|
PEAR_Command::setFrontendType('CLI');
|
|
|
|
PEAR::staticPushErrorHandling(PEAR_ERROR_DIE); //fail silently
|
|
@@ -787,6 +791,11 @@ foreach ($to_install as $pkg) {
|
|
} else {
|
|
$options = array('onlyreqdeps' => true);
|
|
}
|
|
+ if ($destdir) {
|
|
+ $options['packagingroot'] = $destdir;
|
|
+ $options['force'] = true;
|
|
+ $options['nodeps'] = true;
|
|
+ }
|
|
if ($registry->packageExists($pkg) || $registry->packageExists($pkg_basename)) {
|
|
print(str_pad("Package: $pkg", max(50,9+strlen($pkg)+4), '.').' already installed ... ok'."\n");
|
|
displayHTMLProgress($progress += round(50 / count($to_install)));
|
|
@@ -821,7 +830,7 @@ displayHTMLProgress($progress = 99);
|
|
|
|
|
|
// Base installation finished
|
|
-
|
|
+/*
|
|
ini_restore("include_path");
|
|
|
|
if (!WEBINSTALLER) {
|
|
@@ -980,6 +989,7 @@ if ( WINDOWS ) {
|
|
if (WINDOWS && !WEBINSTALLER) {
|
|
win32CreateRegEnv();
|
|
}
|
|
+*/
|
|
// Set of functions following
|
|
/**
|
|
* Parse the given dirname
|
|
@@ -1134,7 +1144,7 @@ function which($program, $dont_search_in = false)
|
|
if (!strlen($dir)) {
|
|
continue;
|
|
}
|
|
- if ($dir{strlen($dir) - 1} != '\\') {
|
|
+ if ($dir[strlen($dir) - 1] != '\\') {
|
|
$dir .= '\\';
|
|
}
|
|
$tmp = $dir . $program;
|
|
@@ -1418,19 +1428,17 @@ function detect_install_dirs($_prefix = null) {
|
|
}
|
|
} else {
|
|
if ($_prefix === null) {
|
|
- #$prefix = dirname(PHP_BINDIR);
|
|
- $prefix = dirname(__FILE__);
|
|
+ $prefix = '%%PREFIX%%';
|
|
} else {
|
|
$prefix = $_prefix;
|
|
}
|
|
$bin_dir = '$prefix/bin';
|
|
- #$php_dir = '$prefix/share/pear';
|
|
- $php_dir = '$prefix/PEAR';
|
|
- $doc_dir = '$php_dir/docs';
|
|
+ $php_dir = '$prefix/share/pear';
|
|
+ $doc_dir = '$prefix/share/doc/pear';
|
|
$data_dir = '$php_dir/data';
|
|
$test_dir = '$php_dir/tests';
|
|
- $temp_dir = '$prefix/temp';
|
|
-
|
|
+ $temp_dir = '%%TMPDIR%%';
|
|
+/*
|
|
// check if the user has installed PHP with PHP or GNU layout
|
|
if (@is_dir("$prefix/lib/php/.registry")) {
|
|
$php_dir = '$prefix/lib/php';
|
|
@@ -1442,6 +1450,7 @@ function detect_install_dirs($_prefix = null) {
|
|
} elseif (@is_dir("$prefix/share/php/.registry")) {
|
|
$php_dir = '$prefix/share/php';
|
|
}
|
|
+*/
|
|
}
|
|
}
|
|
|