forked from extern/egroupware
changes to build scripts to package Composer generated vendor directory instead depending on PEAR and post_install to install dependencies via PEAR
This commit is contained in:
parent
9bd80cdfc4
commit
376ba2d2c6
@ -38,8 +38,8 @@ RedirectMatch ^(/principals/users/.*)$ /egroupware/groupdav.php$1
|
|||||||
php_value max_execution_time 90
|
php_value max_execution_time 90
|
||||||
php_admin_value mbstring.func_overload 0
|
php_admin_value mbstring.func_overload 0
|
||||||
php_value memory_limit 128M
|
php_value memory_limit 128M
|
||||||
php_value include_path .:/usr/share/pear
|
php_value include_path .
|
||||||
php_admin_value open_basedir /usr/share/egroupware:/var/lib/egroupware:/tmp:/usr/share/pear:/usr/bin/zip:/usr/share/jpgraph:/usr/bin/tnef:/usr/bin/aspell:/usr/share/fonts
|
php_admin_value open_basedir /usr/share/egroupware:/var/lib/egroupware:/tmp:/usr/bin
|
||||||
php_value upload_max_filesize 64M
|
php_value upload_max_filesize 64M
|
||||||
php_admin_value upload_tmp_dir /tmp
|
php_admin_value upload_tmp_dir /tmp
|
||||||
php_value post_max_size 65M
|
php_value post_max_size 65M
|
||||||
@ -66,11 +66,3 @@ RedirectMatch ^(/principals/users/.*)$ /egroupware/groupdav.php$1
|
|||||||
# RewriteCond %{HTTPS} !^on$
|
# RewriteCond %{HTTPS} !^on$
|
||||||
# RewriteRule .* https://%{HTTP_HOST}/%{REQUEST_URI} [L,R]
|
# RewriteRule .* https://%{HTTP_HOST}/%{REQUEST_URI} [L,R]
|
||||||
#</Directory>
|
#</Directory>
|
||||||
|
|
||||||
<Directory /usr/share/egroupware/phpsysinfo/>
|
|
||||||
php_admin_value open_basedir /
|
|
||||||
</Directory>
|
|
||||||
|
|
||||||
<Directory /usr/share/egroupware/gallery/>
|
|
||||||
php_admin_value open_basedir /usr/share/egroupware:/var/lib/egroupware:/tmp:/usr/share/pear:/usr/bin:/bin
|
|
||||||
</Directory>
|
|
||||||
|
@ -10,6 +10,7 @@ Package: egroupware-epl
|
|||||||
Architecture: all
|
Architecture: all
|
||||||
Depends:
|
Depends:
|
||||||
egroupware-epl-core (= ${binary:Version}),
|
egroupware-epl-core (= ${binary:Version}),
|
||||||
|
egroupware-epl-vendor (= ${binary:Version}),
|
||||||
egroupware-epl-jdots (= ${binary:Version}),
|
egroupware-epl-jdots (= ${binary:Version}),
|
||||||
egroupware-epl-pixelegg (= ${binary:Version}),
|
egroupware-epl-pixelegg (= ${binary:Version}),
|
||||||
egroupware-epl-stylite (= ${binary:Version}),
|
egroupware-epl-stylite (= ${binary:Version}),
|
||||||
@ -53,8 +54,7 @@ Depends: apache2,
|
|||||||
php5-sqlite,
|
php5-sqlite,
|
||||||
php5-mysql | php5-pgsql | php5-odbc,
|
php5-mysql | php5-pgsql | php5-odbc,
|
||||||
php5-json,
|
php5-json,
|
||||||
php5-gd, php-pear,
|
php5-gd,
|
||||||
egroupware-epl-egw-pear,
|
|
||||||
php5-mcrypt,
|
php5-mcrypt,
|
||||||
php5-xsl,
|
php5-xsl,
|
||||||
${misc:Depends}
|
${misc:Depends}
|
||||||
@ -336,6 +336,17 @@ Description: web-based groupware suite - tracker application
|
|||||||
This EGroupware application is a universal tracker for bugs, feature
|
This EGroupware application is a universal tracker for bugs, feature
|
||||||
requests, etc. with voting and bounties.
|
requests, etc. with voting and bounties.
|
||||||
|
|
||||||
|
Package: egroupware-epl-vendor
|
||||||
|
Architecture: all
|
||||||
|
Depends: ${misc:Depends}
|
||||||
|
Description: web-based groupware suite - external dependencies
|
||||||
|
${commondesc}
|
||||||
|
.
|
||||||
|
With this package EGroupware no longer depends on PEAR.
|
||||||
|
Dependencies include:
|
||||||
|
- diverse Horde framework packages like Horde_Imap_Client
|
||||||
|
- some PEAR packages incl. PEAR itself
|
||||||
|
|
||||||
Package: egroupware-epl-wiki
|
Package: egroupware-epl-wiki
|
||||||
Architecture: all
|
Architecture: all
|
||||||
Depends: egroupware-epl-core (>= ${binary:Version}),
|
Depends: egroupware-epl-core (>= ${binary:Version}),
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
Format: 1.0
|
Format: 1.0
|
||||||
Source: egroupware-epl
|
Source: egroupware-epl
|
||||||
Binary: egroupware-epl, egroupware-epl-core, egroupware-epl-bookmarks, egroupware-epl-calendar, egroupware-epl-developer-tools, egroupware-epl-emailadmin, egroupware-epl-esync, egroupware-epl-mail, egroupware-epl-filemanager, egroupware-epl-infolog, egroupware-epl-manual, egroupware-epl-news-admin, egroupware-epl-notifications, egroupware-epl-phpbrain, egroupware-epl-projectmanager, egroupware-epl-registration, egroupware-epl-resources, egroupware-epl-sambaadmin, egroupware-epl-sitemgr, egroupware-epl-timesheet, egroupware-epl-tracker, egroupware-epl-wiki, egroupware-epl-jdots, egroupware-epl-pixelegg
|
Binary: egroupware-epl, egroupware-epl-core, egroupware-epl-vendor, egroupware-epl-bookmarks, egroupware-epl-calendar, egroupware-epl-developer-tools, egroupware-epl-emailadmin, egroupware-epl-esync, egroupware-epl-mail, egroupware-epl-filemanager, egroupware-epl-infolog, egroupware-epl-manual, egroupware-epl-news-admin, egroupware-epl-notifications, egroupware-epl-phpbrain, egroupware-epl-projectmanager, egroupware-epl-registration, egroupware-epl-resources, egroupware-epl-sambaadmin, egroupware-epl-sitemgr, egroupware-epl-timesheet, egroupware-epl-tracker, egroupware-epl-wiki, egroupware-epl-jdots, egroupware-epl-pixelegg
|
||||||
Architecture: all
|
Architecture: all
|
||||||
Version: 14.2.20141211-1
|
Version: 14.2.20141211-1
|
||||||
Maintainer: Ralf Becker <rb@stylite.de>
|
Maintainer: Ralf Becker <rb@stylite.de>
|
||||||
|
@ -43,14 +43,12 @@ Prefix: /usr/share
|
|||||||
%define cron cron
|
%define cron cron
|
||||||
%define apache_user wwwrun
|
%define apache_user wwwrun
|
||||||
%define apache_group www
|
%define apache_group www
|
||||||
%define pear_dir \\/usr\\/share\\/php5\\/PEAR:\\/etc\\/php5
|
|
||||||
%else
|
%else
|
||||||
%define php php
|
%define php php
|
||||||
%define httpdconfd /etc/httpd/conf.d
|
%define httpdconfd /etc/httpd/conf.d
|
||||||
%define cron crontabs
|
%define cron crontabs
|
||||||
%define apache_user apache
|
%define apache_user apache
|
||||||
%define apache_group apache
|
%define apache_group apache
|
||||||
%define pear_dir \\/usr\\/share\\/pear
|
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%define install_log /root/%{name}-install.log
|
%define install_log /root/%{name}-install.log
|
||||||
@ -82,7 +80,6 @@ Prefix: /usr/share
|
|||||||
Distribution: %{distribution}
|
Distribution: %{distribution}
|
||||||
|
|
||||||
Source0: %{name}-%{version}.tar.gz
|
Source0: %{name}-%{version}.tar.gz
|
||||||
#Source1: %{name}-egw-pear-%{version}.tar.bz2
|
|
||||||
Source2: %{name}-stylite-%{version}.tar.bz2
|
Source2: %{name}-stylite-%{version}.tar.bz2
|
||||||
#Source3: %{name}-pixelegg-%{version}.tar.bz2
|
#Source3: %{name}-pixelegg-%{version}.tar.bz2
|
||||||
Source4: %{name}-esyncpro-%{version}.tar.bz2
|
Source4: %{name}-esyncpro-%{version}.tar.bz2
|
||||||
@ -127,6 +124,7 @@ Requires: %{name}-sambaadmin = %{version}
|
|||||||
Requires: %{name}-sitemgr = %{version}
|
Requires: %{name}-sitemgr = %{version}
|
||||||
Requires: %{name}-timesheet = %{version}
|
Requires: %{name}-timesheet = %{version}
|
||||||
Requires: %{name}-tracker = %{version}
|
Requires: %{name}-tracker = %{version}
|
||||||
|
Requires: %{name}-vendor = %{version}
|
||||||
Requires: %{name}-wiki = %{version}
|
Requires: %{name}-wiki = %{version}
|
||||||
Obsoletes: %{egw_packagename}
|
Obsoletes: %{egw_packagename}
|
||||||
Obsoletes: %{egw_packagename}-core
|
Obsoletes: %{egw_packagename}-core
|
||||||
@ -176,10 +174,6 @@ Obsoletes: %{name}-egw-pear
|
|||||||
echo "Installing php -> php5 alternative"; \
|
echo "Installing php -> php5 alternative"; \
|
||||||
/usr/sbin/update-alternatives --install /usr/bin/php php /usr/bin/php5 99; \
|
/usr/sbin/update-alternatives --install /usr/bin/php php /usr/bin/php5 99; \
|
||||||
fi
|
fi
|
||||||
if [ ! -f /usr/bin/pear -a -x /usr/bin/pear5 ]; then \
|
|
||||||
echo "Installing pear -> pear5 alternative"; \
|
|
||||||
/usr/sbin/update-alternatives --install /usr/bin/pear pear /usr/bin/pear5 99; \
|
|
||||||
fi
|
|
||||||
%endif
|
%endif
|
||||||
%if 0%{?rhel_version} || 0%{?fedora_version} || 0%{?centos_version}
|
%if 0%{?rhel_version} || 0%{?fedora_version} || 0%{?centos_version}
|
||||||
chcon -R -u user_u -r object_r -t httpd_sys_content_t %{egwdatadir}
|
chcon -R -u user_u -r object_r -t httpd_sys_content_t %{egwdatadir}
|
||||||
@ -211,7 +205,7 @@ Further contributed applications are available as separate packages.
|
|||||||
Summary: The EGroupware core
|
Summary: The EGroupware core
|
||||||
Group: Web/Database
|
Group: Web/Database
|
||||||
Requires: %{php} >= 5.3.2
|
Requires: %{php} >= 5.3.2
|
||||||
Requires: %{php}-mbstring %{php}-gd %{php}-mcrypt %{php}-pear %{php}-posix %{extra_requires} %{cron} zip %{php}-json %{php}-xsl
|
Requires: %{php}-mbstring %{php}-gd %{php}-mcrypt %{php}-posix %{extra_requires} %{cron} zip %{php}-json %{php}-xsl
|
||||||
Provides: egw-core %{version}
|
Provides: egw-core %{version}
|
||||||
Provides: egw-etemplate %{version}
|
Provides: egw-etemplate %{version}
|
||||||
Provides: egw-addressbook %{version}
|
Provides: egw-addressbook %{version}
|
||||||
@ -487,6 +481,18 @@ Obsoletes: %{egw_packagename}-wiki
|
|||||||
%description wiki
|
%description wiki
|
||||||
This is the wiki app for EGroupware.
|
This is the wiki app for EGroupware.
|
||||||
|
|
||||||
|
%package vendor
|
||||||
|
Version: %{version}
|
||||||
|
Summary: External EGroupware dependencies
|
||||||
|
Group: Web/Database
|
||||||
|
AutoReqProv: no
|
||||||
|
%description vendor
|
||||||
|
Dependencies have been installed using Composer.
|
||||||
|
With this package EGroupware no longer depends on PEAR.
|
||||||
|
Dependencies include:
|
||||||
|
- diverse Horde framework packages like Horde_Imap_Client
|
||||||
|
- some PEAR packages incl. PEAR itself
|
||||||
|
|
||||||
%package esyncpro
|
%package esyncpro
|
||||||
Version: %{version}
|
Version: %{version}
|
||||||
Summary: Stylite eSync Provisioning
|
Summary: Stylite eSync Provisioning
|
||||||
@ -495,8 +501,8 @@ Group: Web/Database
|
|||||||
AutoReqProv: no
|
AutoReqProv: no
|
||||||
Requires: egw-core >= %{version}, %{name}-esync >= %{version}
|
Requires: egw-core >= %{version}, %{name}-esync >= %{version}
|
||||||
%description esyncpro
|
%description esyncpro
|
||||||
Stylite's eSync Provisioning app allows to edit and assign
|
Stylite's eSync Provisioning app allows to edit and assign
|
||||||
policies to devices and keeps a central list of syncing devices.
|
policies to devices and keeps a central list of syncing devices.
|
||||||
It also allows to remote wipe or view sync logs of all devices.
|
It also allows to remote wipe or view sync logs of all devices.
|
||||||
|
|
||||||
%post esyncpro
|
%post esyncpro
|
||||||
@ -524,7 +530,7 @@ echo "post_install: %{post_install}"
|
|||||||
[ "%{buildroot}" != "/" ] && rm -rf %{buildroot}
|
[ "%{buildroot}" != "/" ] && rm -rf %{buildroot}
|
||||||
mkdir -p $RPM_BUILD_ROOT%{egwdir}
|
mkdir -p $RPM_BUILD_ROOT%{egwdir}
|
||||||
mkdir -p $RPM_BUILD_ROOT%{httpdconfd}
|
mkdir -p $RPM_BUILD_ROOT%{httpdconfd}
|
||||||
sed 's/\/usr\/share\/pear/%{pear_dir}/' egroupware/doc/rpm-build/apache.conf > $RPM_BUILD_ROOT%{httpdconfd}/egroupware.conf
|
cp egroupware/doc/rpm-build/apache.conf > $RPM_BUILD_ROOT%{httpdconfd}/egroupware.conf
|
||||||
mkdir -p $RPM_BUILD_ROOT/etc/cron.d
|
mkdir -p $RPM_BUILD_ROOT/etc/cron.d
|
||||||
sed 's/apache/%{apache_user}/' egroupware/doc/rpm-build/egroupware.cron > $RPM_BUILD_ROOT/etc/cron.d/egroupware
|
sed 's/apache/%{apache_user}/' egroupware/doc/rpm-build/egroupware.cron > $RPM_BUILD_ROOT/etc/cron.d/egroupware
|
||||||
mkdir -p $RPM_BUILD_ROOT%{egwdatadir}/default/files
|
mkdir -p $RPM_BUILD_ROOT%{egwdatadir}/default/files
|
||||||
@ -547,6 +553,8 @@ ln -s ../../..%{egwdatadir}/header.inc.php
|
|||||||
%defattr(-,root,root)
|
%defattr(-,root,root)
|
||||||
%dir %{egwdir}
|
%dir %{egwdir}
|
||||||
%{egwdir}/about.php
|
%{egwdir}/about.php
|
||||||
|
%{egwdir}/composer.json
|
||||||
|
%{egwdir}/composer.lock
|
||||||
%{egwdir}/header.inc.php
|
%{egwdir}/header.inc.php
|
||||||
%{egwdir}/header.inc.php.template
|
%{egwdir}/header.inc.php.template
|
||||||
%{egwdir}/index.php
|
%{egwdir}/index.php
|
||||||
@ -684,6 +692,10 @@ ln -s ../../..%{egwdatadir}/header.inc.php
|
|||||||
%defattr(-,root,root)
|
%defattr(-,root,root)
|
||||||
%{egwdir}/tracker
|
%{egwdir}/tracker
|
||||||
|
|
||||||
|
%files vendor
|
||||||
|
%defattr(-,root,root)
|
||||||
|
%{egwdir}/vendor
|
||||||
|
|
||||||
%files wiki
|
%files wiki
|
||||||
%defattr(-,root,root)
|
%defattr(-,root,root)
|
||||||
%{egwdir}/wiki
|
%{egwdir}/wiki
|
||||||
|
@ -16,7 +16,6 @@ if (php_sapi_name() !== 'cli') // security precaution: forbit calling post_insta
|
|||||||
$verbose = false;
|
$verbose = false;
|
||||||
$config = array(
|
$config = array(
|
||||||
'php' => '/usr/bin/php',
|
'php' => '/usr/bin/php',
|
||||||
'pear' => '/usr/bin/pear',
|
|
||||||
'source_dir' => '/usr/share/egroupware',
|
'source_dir' => '/usr/share/egroupware',
|
||||||
'data_dir' => '/var/lib/egroupware',
|
'data_dir' => '/var/lib/egroupware',
|
||||||
'header' => '$data_dir/header.inc.php', // symlinked to source_dir by rpm
|
'header' => '$data_dir/header.inc.php', // symlinked to source_dir by rpm
|
||||||
@ -102,7 +101,6 @@ function set_distro_defaults($distro=null)
|
|||||||
case 'suse':
|
case 'suse':
|
||||||
// openSUSE 12.1+ no longer uses php5
|
// openSUSE 12.1+ no longer uses php5
|
||||||
if (file_exists('/usr/bin/php5')) $config['php'] = '/usr/bin/php5';
|
if (file_exists('/usr/bin/php5')) $config['php'] = '/usr/bin/php5';
|
||||||
if (file_exists('/usr/bin/pear5')) $config['pear'] = '/usr/bin/pear5';
|
|
||||||
$config['start_db'] = '/sbin/service mysql';
|
$config['start_db'] = '/sbin/service mysql';
|
||||||
$config['autostart_db'] = '/sbin/chkconfig --level 345 mysql on';
|
$config['autostart_db'] = '/sbin/chkconfig --level 345 mysql on';
|
||||||
$config['start_webserver'] = '/sbin/service apache2';
|
$config['start_webserver'] = '/sbin/service apache2';
|
||||||
@ -261,9 +259,6 @@ foreach(array('php','source_dir','data_dir','setup-cli') as $name)
|
|||||||
// fix important php.ini and conf.d/*.ini settings
|
// fix important php.ini and conf.d/*.ini settings
|
||||||
check_fix_php_apc_ini();
|
check_fix_php_apc_ini();
|
||||||
|
|
||||||
// install/upgrade required pear packages
|
|
||||||
check_install_pear_packages();
|
|
||||||
|
|
||||||
$setup_cli = $config['php'].' -d memory_limit=256M '.$config['setup-cli'];
|
$setup_cli = $config['php'].' -d memory_limit=256M '.$config['setup-cli'];
|
||||||
|
|
||||||
if (!file_exists($config['header']) || filesize($config['header']) < 200) // default header redirecting to setup is 147 bytes
|
if (!file_exists($config['header']) || filesize($config['header']) < 200) // default header redirecting to setup is 147 bytes
|
||||||
@ -578,151 +573,6 @@ function usage($error=null)
|
|||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Get installed pear packages, optional from a certain channel
|
|
||||||
*
|
|
||||||
* @global type $config
|
|
||||||
* @param string $channel=''
|
|
||||||
* @return null|array with package => version
|
|
||||||
*/
|
|
||||||
function pear_list($channel='')
|
|
||||||
{
|
|
||||||
global $config;
|
|
||||||
|
|
||||||
$out = $ret = null;
|
|
||||||
exec($config['pear'].' list'.($channel?' -c '.$channel:''),$out,$ret);
|
|
||||||
if ($channel && $ret == 1)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
if ($ret)
|
|
||||||
{
|
|
||||||
echo "Error running pear command ($config[pear])!\n";
|
|
||||||
exit(95);
|
|
||||||
}
|
|
||||||
$packages_installed = array();
|
|
||||||
foreach($out as $line)
|
|
||||||
{
|
|
||||||
$matches = null;
|
|
||||||
if (preg_match('/^([a-z0-9_]+)\s+([0-9.]+[a-z0-9]*)\s+([a-z]+)/i',$line,$matches))
|
|
||||||
{
|
|
||||||
$packages_installed[($channel?$channel.'/':'').$matches[1]] = $matches[2];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return $packages_installed;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Check if required PEAR packges are installed and install them if not, update pear packages with to low version
|
|
||||||
*/
|
|
||||||
function check_install_pear_packages()
|
|
||||||
{
|
|
||||||
global $config;
|
|
||||||
$packages_installed = pear_list();
|
|
||||||
|
|
||||||
// some setup files use autoloader
|
|
||||||
define('EGW_SERVER_ROOT', dirname(dirname(__DIR__)));
|
|
||||||
define('EGW_INCLUDE_ROOT', EGW_SERVER_ROOT);
|
|
||||||
define('EGW_API_INC', EGW_SERVER_ROOT.'/phpgwapi/inc');
|
|
||||||
include_once(EGW_API_INC.'/common_functions.inc.php');
|
|
||||||
|
|
||||||
// read required packages from apps
|
|
||||||
$packages = array('PEAR' => true); // pear must be the first, to run it's update first!
|
|
||||||
$channels = array();
|
|
||||||
$setup_info = array();
|
|
||||||
foreach(scandir($config['source_dir']) as $app)
|
|
||||||
{
|
|
||||||
if (is_dir($dir=$config['source_dir'].'/'.$app) && file_exists($file=$dir.'/setup/setup.inc.php')) include $file;
|
|
||||||
}
|
|
||||||
foreach($setup_info as $app => $data)
|
|
||||||
{
|
|
||||||
if (isset($data['check_install']))
|
|
||||||
{
|
|
||||||
foreach($data['check_install'] as $package => $args)
|
|
||||||
{
|
|
||||||
if ($args['func'] == 'pear_check')
|
|
||||||
{
|
|
||||||
if (!$package) $package = 'PEAR';
|
|
||||||
// if package is prefixed with a channel, list or discover it first
|
|
||||||
if (strpos($package, '/'))
|
|
||||||
{
|
|
||||||
list($channel) = explode('/', $package);
|
|
||||||
if (!in_array($channel, $channels))
|
|
||||||
{
|
|
||||||
if (($channel_packages = pear_list($channel)))
|
|
||||||
{
|
|
||||||
$packages_installed += $channel_packages;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$discover_cmd = $config['pear'].' channel-discover '.$channel;
|
|
||||||
echo "$discover_cmd\n"; system($discover_cmd);
|
|
||||||
}
|
|
||||||
$channels[] = $channel;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// only overwrite lower version or no version
|
|
||||||
if (!isset($packages[$package]) || $packages[$package] === true || isset($args['version']) && version_compare($args['version'],$packages[$package],'>'))
|
|
||||||
{
|
|
||||||
$packages[$package] = isset($args['version']) ? $args['version'] : true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//echo 'Installed: '; print_r($packages_installed);
|
|
||||||
//echo 'Required: '; print_r($packages);
|
|
||||||
$to_install = array_diff(array_keys($packages),array_keys($packages_installed));
|
|
||||||
|
|
||||||
$need_upgrade = array();
|
|
||||||
foreach($packages as $package => $version)
|
|
||||||
{
|
|
||||||
if ($version !== true && $version !== '999.egw-pear' && isset($packages_installed[$package]) &&
|
|
||||||
version_compare($version, $packages_installed[$package], '>'))
|
|
||||||
{
|
|
||||||
$need_upgrade[] = $package;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//echo 'Need upgrade: '; print_r($need_upgrade);
|
|
||||||
//echo 'To install: '; print_r($to_install);
|
|
||||||
if (($to_install || $need_upgrade))
|
|
||||||
{
|
|
||||||
if (getmyuid())
|
|
||||||
{
|
|
||||||
echo "You need to run as user root to be able to install/upgrade required PEAR packages!\n";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
echo "Install/upgrade required PEAR packages:\n";
|
|
||||||
// need to run upgrades first, they might be required for install!
|
|
||||||
if ($need_upgrade)
|
|
||||||
{
|
|
||||||
if (in_array('PEAR',$need_upgrade)) // updating pear itself can be very tricky, this is what's needed for stock RHEL pear
|
|
||||||
{
|
|
||||||
$cmd = $config['pear'].' channel-update pear.php.net';
|
|
||||||
echo "$cmd\n"; system($cmd);
|
|
||||||
$cmd = $config['pear'].' upgrade --force Console_Getopt Archive_Tar';
|
|
||||||
echo "$cmd\n"; system($cmd);
|
|
||||||
}
|
|
||||||
$cmd = $config['pear'].' upgrade '.implode(' ',$need_upgrade);
|
|
||||||
echo "$cmd\n"; system($cmd);
|
|
||||||
}
|
|
||||||
if ($to_install)
|
|
||||||
{
|
|
||||||
// package install can fail if a required package of one to install is of an older version
|
|
||||||
// unfortunately there is no option to automatic update the required packages automatic
|
|
||||||
// as a quick fix for that situation, we always run "pear upgrade-all" first
|
|
||||||
$cmd = $config['pear'].' upgrade-all';
|
|
||||||
echo "$cmd\n"; system($cmd);
|
|
||||||
$cmd = $config['pear'].' install '.implode(' ', $to_install);
|
|
||||||
echo "$cmd\n"; system($cmd);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function lang() {} // required to be able to include */setup/setup.inc.php files
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* fix egw_cache perms evtl. created by root, stoping webserver from accessing it
|
* fix egw_cache perms evtl. created by root, stoping webserver from accessing it
|
||||||
*/
|
*/
|
||||||
|
Loading…
Reference in New Issue
Block a user