+
<?php
/**
* StatusNet - the distributed open-source microblogging tool
* @author Sarven Capadisli <csarven@status.net>
* @author Tom Adams <tom@holizz.com>
* @license GNU Affero General Public License http://www.gnu.org/licenses/
- * @version 0.9
+ * @version 0.9.x
* @link http://status.net
*/
'include'=>'HTTP/Request.php',
'check_class'=>'HTTP_Request'
),
+ array(
+ 'name'=>'HTTP_Request2',
+ 'pear'=>'HTTP_Request2',
+ 'url'=>'http://pear.php.net/package/HTTP_Request2',
+ 'include'=>'HTTP/Request2.php',
+ 'check_class'=>'HTTP_Request2'
+ ),
array(
'name'=>'Mail',
'pear'=>'Mail',
'include'=>'Net/URL/Mapper.php',
'check_class'=>'Net_URL_Mapper'
),
+ array(
+ 'name'=>'Net_LDAP2',
+ 'pear'=>'Net_LDAP2',
+ 'url'=>'http://pear.php.net/package/Net_LDAP2',
+ 'deb'=>'php-net-ldap2',
+ 'include'=>'Net/LDAP2.php',
+ 'check_class'=>'Net_LDAP2'
+ ),
array(
'name'=>'Net_Socket',
'pear'=>'Net_Socket',
*/
function haveExternalLibrary($external_library)
{
- if (isset($external_library['include']) && ! @include_once $external_library['include'] ) {
+ if (isset($external_library['include']) && !haveIncludeFile($external_library['include'])) {
return false;
}
if (isset($external_library['check_function']) && ! function_exists($external_library['check_function'])) {
return true;
}
+// Attempt to include a PHP file and report if it worked, while
+// suppressing the annoying warning messages on failure.
+function haveIncludeFile($filename) {
+ $old = error_reporting(error_reporting() & ~E_WARNING);
+ $ok = include_once($filename);
+ error_reporting($old);
+ return $ok;
+}
+
/**
* Check if all is ready for installation
*
*/
function checkExtension($name)
{
- if (!extension_loaded($name)) {
- if (!@dl($name.'.so')) {
- return false;
+ if (extension_loaded($name)) {
+ return true;
+ } elseif (function_exists('dl') && ini_get('enable_dl') && !ini_get('safe_mode')) {
+ // dl will throw a fatal error if it's disabled or we're in safe mode.
+ // More fun, it may not even exist under some SAPIs in 5.3.0 or later...
+ $soname = $name . '.' . PHP_SHLIB_SUFFIX;
+ if (PHP_SHLIB_SUFFIX == 'dll') {
+ $soname = "php_" . $soname;
}
+ return @dl($soname);
+ } else {
+ return false;
}
- return true;
}
/**
}
echo<<<E_O_T
<div class="instructions">
- <p>Laconica comes bundled with a number of libraries required for the application to work. However, it is best that you use PEAR or you distribution to manage
+ <p>StatusNet comes bundled with a number of libraries required for the application to work. However, it is best that you use PEAR or you distribution to manage
libraries instead, as they tend to provide security updates faster, and may offer improved performance.</p>
<p>On Debian based distributions, such as Ubuntu, use a package manager (such as "aptitude", "apt-get", and "synaptic") to install the package listed.</p>
<p>On RPM based distributions, such as Red Hat, Fedora, CentOS, Scientific Linux, Yellow Dog Linux and Oracle Enterprise Linux, use a package manager (such as "yum", "apt-rpm", and "up2date") to install the package listed.</p>
- <p>On servers without a package manager (such as Windows), or if the library is not packaged for your distribution, you can use PHP's PEAR to install the library. Simply run "pear install <name>".</p>
+ <p>On servers without a package manager (such as Windows), or if the library is not packaged for your distribution, you can use PHP PEAR to install the library. Simply run "pear install <name>".</p>
</div>
<h2>Absent Libraries</h2>
<ul id="absent_libraries">
foreach ($absent_libraries as $library) {
echo '<li>';
if (isset($library['url'])) {
- echo '<a href=">'.$library['url'].'">'.htmlentities($library['name']).'</a>';
+ echo '<a href="'.$library['url'].'">'.htmlentities($library['name']).'</a>';
} else {
echo htmlentities($library['name']);
}
E_O_T;
foreach ($present_libraries as $library) {
echo '<li>';
- if ($library['url']) {
- echo '<a href=">'.$library['url'].'">'.htmlentities($library['name']).'</a>';
+ if (isset($library['url'])) {
+ echo '<a href="'.$library['url'].'">'.htmlentities($library['name']).'</a>';
} else {
echo htmlentities($library['name']);
}
<dd>
<div class="instructions">
<p>Enter your database connection information below to initialize the database.</p>
- <p>Laconica bundles a number of libraries for ease of installation. <a href="?checklibs=true">You can see what bundled libraries you are using, versus what libraries are installed on your server.</a>
+ <p>StatusNet bundles a number of libraries for ease of installation. <a href="?checklibs=true">You can see what bundled libraries you are using, versus what libraries are installed on your server.</a>
</div>
</dd>
</dl>
$res = writeConf($sitename, $server, $path, $fancy, $db);
if (!$res) {
- updateStatus("Can't write config file.", true);
+ updateStatus("Cannot write config file.", true);
showForm();
return;
}
$res = runDbScript(INSTALLDIR.'/db/statusnet_pg.sql', $conn, 'pgsql');
if ($res === false) {
- updateStatus("Can't run database script.", true);
+ updateStatus("Cannot run database script.", true);
showForm();
return false;
}
updateStatus(sprintf("Adding %s data to database...", $name));
$res = runDbScript(INSTALLDIR.'/db/'.$scr.'.sql', $conn, 'pgsql');
if ($res === false) {
- updateStatus(sprintf("Can't run %d script.", $name), true);
+ updateStatus(sprintf("Cannot run %d script.", $name), true);
showForm();
return false;
}
$conn = mysql_connect($host, $username, $password);
if (!$conn) {
- updateStatus("Can't connect to server '$host' as '$username'.", true);
+ updateStatus("Cannot connect to server '$host' as '$username'.", true);
showForm();
return false;
}
updateStatus("Changing to database...");
$res = mysql_select_db($database, $conn);
if (!$res) {
- updateStatus("Can't change to database.", true);
+ updateStatus("Cannot change to database.", true);
showForm();
return false;
}
updateStatus("Running database script...");
$res = runDbScript(INSTALLDIR.'/db/statusnet.sql', $conn);
if ($res === false) {
- updateStatus("Can't run database script.", true);
+ updateStatus("Cannot run database script.", true);
showForm();
return false;
}
updateStatus(sprintf("Adding %s data to database...", $name));
$res = runDbScript(INSTALLDIR.'/db/'.$scr.'.sql', $conn);
if ($res === false) {
- updateStatus(sprintf("Can't run %d script.", $name), true);
+ updateStatus(sprintf("Cannot run %d script.", $name), true);
showForm();
return false;
}
// database
"\$config['db']['database'] = '{$db['database']}';\n\n".
($db['type'] == 'pgsql' ? "\$config['db']['quote_identifiers'] = true;\n\n":'').
- "\$config['db']['type'] = '{$db['type']}';\n\n".
-
- "?>";
+ "\$config['db']['type'] = '{$db['type']}';\n\n";
// write configuration file out to install directory
$res = file_put_contents(INSTALLDIR.'/config.php', $cfg);