ports/devel/pear/files/patch-go-pear
Dima Panov 46a8770a4c devel/pear: upgrade to 1.10.13 (+)
PEAR 1.10.13 is compatible with PHP 8.2 branch

PR:	236734
2022-09-23 17:01:53 +03:00

275 lines
8 KiB
Text

--- go-pear.orig 2022-09-21 07:50:47 UTC
+++ go-pear
@@ -47,6 +47,8 @@ if (!$safe_mode) {
ob_implicit_flush(true);
define('WEBINSTALLER', ($sapi_name != 'cli' && !(substr($sapi_name,0,3)=='cgi' && !isset($_SERVER['GATEWAY_INTERFACE']))));
+$destdir = getenv('DESTDIR');
+
ini_set('track_errors', true);
ini_set('html_errors', WEBINSTALLER);
ini_set('magic_quotes_runtime', false);
@@ -88,6 +90,7 @@ if (WEBINSTALLER && isset($_GET['action']) && $_GET['a
// Check if PHP version is sufficient
$phpVersion = phpversion();
+/*
if (function_exists("version_compare") && version_compare($phpVersion, "4.4",'<')) {
die("Sorry! Your PHP version is too old. PEAR and this script requires at
least PHP 4.4.0 for stable operation.
@@ -109,11 +112,10 @@ version of go-pear, more suited to your PHP version.
Thank you for your coopertion and sorry for the inconvenience!
");
}
-
+*/
$gopear_bundle_dir = dirname(__FILE__).'/go-pear-bundle';
$bootstrap_files = array(
- 'PEAR5.php' => 'https://raw.github.com/pear/pear-core/master/PEAR5.php',
'PEAR.php' => 'https://raw.github.com/pear/pear-core/master/PEAR.php',
'Archive/Tar.php' => 'https://raw.github.com/pear/Archive_Tar/master/Archive/Tar.php',
'Console/Getopt.php' => 'https://raw.github.com/pear/Console_Getopt/trunk/Console/Getopt.php',
@@ -125,7 +127,7 @@ $bootstrap_pkgs = array( // uses URL like http://pear.
);
$installer_packages = array(
- 'PEAR',
+ 'PEAR-stable',
'Structures_Graph-stable',
'Archive_Tar-stable',
'Console_Getopt-stable',
@@ -259,7 +261,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');
@@ -303,7 +305,7 @@ If you wish to abort, press Control-C now, or press En
$http_proxy = $tmp;
}
}
-
+*/
$origpwd = getcwd();
$config_vars = array_keys($config_desc);
@@ -354,7 +356,7 @@ we strongly recommand to use it.
break;
}
}
-
+/*
while (!WEBINSTALLER) {
print "
Below is a suggested file layout for your new PEAR installation. To
@@ -437,7 +439,7 @@ If you have a CLI (or CGI) php.exe available, we stron
}
}
}
-
+*/
####
# Installation stuff
####
@@ -497,7 +499,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) {
@@ -570,7 +572,7 @@ if (WEBINSTALLER) {
ob_start();
}
}
-
+/*
if (!WEBINSTALLER) {
$msg = "The following PEAR packages are bundled with PHP: " .
implode(', ', array_keys($pfc_packages));
@@ -580,17 +582,17 @@ if (!WEBINSTALLER) {
$install_optional_packages = array();
print "\n";
}
-
+*/
####
# Download
####
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');
@@ -615,18 +617,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
@@ -654,19 +657,20 @@ 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";
@@ -700,6 +704,7 @@ displayHTMLProgress($progress = 20);
// Extract needed ?
$noextract = false;
+/*
if (is_dir($php_dir)) {
$noextract = @include_once 'PEAR/Registry.php';
@@ -710,7 +715,7 @@ if (is_dir($php_dir)) {
}
}
}
-
+*/
if ($noextract) {
print('Using previously installed installer ... ');
print "ok\n";
@@ -756,13 +761,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 != '') {
@@ -774,7 +774,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
@@ -796,6 +796,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)));
@@ -830,7 +835,7 @@ displayHTMLProgress($progress = 99);
// Base installation finished
-
+/*
ini_restore("include_path");
if (!WEBINSTALLER) {
@@ -993,6 +998,7 @@ if ( WINDOWS ) {
if (WINDOWS && !WEBINSTALLER) {
win32CreateRegEnv();
}
+*/
// Set of functions following
/**
* Parse the given dirname
@@ -1179,7 +1185,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;
@@ -1463,19 +1469,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';
@@ -1487,6 +1491,7 @@ function detect_install_dirs($_prefix = null) {
} elseif (@is_dir("$prefix/share/php/.registry")) {
$php_dir = '$prefix/share/php';
}
+*/
}
}