2004-11-15 01:58:30 +00:00
< ? php
2007-03-04 02:30:48 +00:00
// NOTE: the core client fetches download.php?xml=1 every so often;
// don't break this!!!
2004-11-15 01:58:30 +00:00
require_once ( " docutil.php " );
2005-05-20 17:42:06 +00:00
require_once ( " versions.inc " );
2006-08-03 17:31:40 +00:00
require_once ( " ../html/inc/translation.inc " );
2005-03-22 22:50:33 +00:00
2014-03-26 23:43:19 +00:00
$client_info = $_SERVER [ 'HTTP_USER_AGENT' ];
2008-12-16 21:33:33 +00:00
// show a download link as a button or table row
//
function download_link ( $pname , $button = false ) {
2006-08-02 21:33:19 +00:00
global $platforms ;
2005-12-09 07:12:56 +00:00
global $url_base ;
2014-03-26 23:43:19 +00:00
global $client_info ;
2006-08-02 21:33:19 +00:00
$p = $platforms [ $pname ];
$v = latest_version ( $p );
$file = $v [ 'file' ];
2014-03-24 22:13:06 +00:00
if ( array_key_exists ( 'vbox_file' , $v )) {
$vbox_file = $v [ 'vbox_file' ];
2014-12-03 22:22:26 +00:00
$vbox_version = $v [ 'vbox_version' ];
$vbox_url = $url_base . $vbox_file ;
$vbox_path = " dl/ $vbox_file " ;
$vbox_size = number_format ( filesize ( $vbox_path ) / 1000000 , 2 );
2014-03-24 22:13:06 +00:00
} else {
$vbox_file = null ;
}
2014-03-26 23:43:19 +00:00
if ( strstr ( $client_info , 'Windows NT 4' ) || strstr ( $client_info , 'Windows NT 5' )) {
$vbox_file = null ;
}
2006-08-02 21:33:19 +00:00
$long_name = $p [ 'name' ];
$num = $v [ 'num' ];
2005-05-20 17:42:06 +00:00
$path = " dl/ $file " ;
2005-12-09 07:12:56 +00:00
$url = $url_base . $file ;
2008-08-16 20:59:53 +00:00
$dlink = " <a href= \" $url\ " > $file </ a > " ;
2005-05-20 17:42:06 +00:00
$s = number_format ( filesize ( $path ) / 1000000 , 2 );
2005-03-05 23:12:31 +00:00
2008-12-16 21:33:33 +00:00
if ( $button ) {
2013-10-08 21:40:09 +00:00
if ( $vbox_file ) {
2013-11-12 04:54:50 +00:00
echo tra ( " We recommend that you also install VirtualBox, so your computer can work on science projects that require it. " );
2014-03-24 22:13:06 +00:00
echo " <a href=wiki/VirtualBox> " ;
2013-11-12 04:54:50 +00:00
echo tra ( " Learn more about VirtualBox. " );
echo " </a> " ;
echo " <table><tr valign=top><td> \n " ;
2013-10-08 21:40:09 +00:00
echo "
2014-03-19 23:49:59 +00:00
< table cellpadding = 10 >< tr valign = top >< td class = button >
2013-11-12 04:54:50 +00:00
< a href = \ " $vbox_url\ " >< font size = 4 >< u > "
. tra ( " Download BOINC + VirtualBox " )
. " </u></font></a>
< br > "
. sprintf ( tra ( " for %s " ), $long_name )
. " ( $vbox_size MB) "
2014-03-19 23:49:59 +00:00
. " <br><span class=note> "
. sprintf ( tra ( " BOINC %s " ), $num )
. " , "
. sprintf ( tra ( " VirtualBox %s " ), $vbox_version )
. " </span></td></tr>
2013-10-08 21:40:09 +00:00
</ table >
" ;
echo " </td><td> \n " ;
}
2008-12-16 21:33:33 +00:00
echo "
2014-03-19 23:49:59 +00:00
< table cellpadding = 10 >< tr valign = top >< td class = button >
2008-12-16 21:33:33 +00:00
< a href = \ " $url\ " >< font size = 4 >< u > " .tra( " Download BOINC " ). " </ u ></ font ></ a >
2013-11-12 04:54:50 +00:00
< br > "
. sprintf ( tra ( " for %s " ), $long_name )
. " ( $s MB) "
2014-03-19 23:49:59 +00:00
. " <br><span class=note> "
. sprintf ( tra ( " BOINC %s " ), $num )
. " </span></td></tr>
2013-10-08 21:40:09 +00:00
</ table >
2008-12-16 21:33:33 +00:00
" ;
2013-10-08 21:40:09 +00:00
if ( $vbox_file ) {
echo " </td></tr></table> \n " ;
}
2008-12-16 21:33:33 +00:00
if ( $pname == 'linux' || $pname == 'linuxx64' ) {
2012-06-05 20:13:19 +00:00
echo " <p> " , linux_info ();
2008-12-16 21:33:33 +00:00
}
} else {
2014-11-08 06:03:45 +00:00
if ( $vbox_file ) {
echo " <tr>
< td class = rowlineleft > $long_name </ td >
< td class = rowline > $num ( with Virtualbox $vbox_version ) </ td >
2014-12-03 22:22:26 +00:00
< td class = rowlineright >< a href = $vbox_url > Download </ a > ( $vbox_size MB ) </ td >
2014-11-08 06:03:45 +00:00
</ tr >
" ;
}
2008-12-16 21:33:33 +00:00
echo " <tr>
< td class = rowlineleft > $long_name </ td >
< td class = rowline > $num </ td >
< td class = rowlineright >< a href = $url > Download </ a > ( $s MB ) </ td >
</ tr >
" ;
2005-10-23 07:19:03 +00:00
}
}
2006-08-03 16:39:57 +00:00
$apps = array (
array ( 'classic.jpg' , 180 , 143 ),
array ( 'cpdn_200.jpg' , 200 , 147 ),
array ( 'eah_200.png' , 200 , 150 ),
2006-08-04 21:39:03 +00:00
array ( 'rosetta_at_home.jpg' , 200 , 150 ),
array ( 'qah.200x150.png' , 200 , 150 ),
2006-08-03 16:39:57 +00:00
);
function show_pictures () {
global $apps ;
shuffle ( $apps );
$a0 = $apps [ 0 ];
$a1 = $apps [ 1 ];
$f0 = $a0 [ 0 ];
$f1 = $a1 [ 0 ];
echo "
< div style = \ " max-height: 300px \" >
2008-08-16 20:59:53 +00:00
< img src = \ " images/mgrwork.png \" alt= \" BOINC manager \" ><br>
2006-08-03 16:39:57 +00:00
< div style = \ " position:relative; top:-80px; left:30px \" >
2008-08-16 20:59:53 +00:00
< img src = \ " images/ $f0\ " alt = \ " BOINC project \" ><br>
2006-08-03 16:39:57 +00:00
</ div >
< div style = \ " position:relative; top:-160px; left:70px \" >
2008-08-16 20:59:53 +00:00
< img src = \ " images/ $f1\ " alt = \ " BOINC project \" ><br>
2006-08-03 16:39:57 +00:00
</ div >
</ div >
" ;
}
2006-08-02 21:33:19 +00:00
function show_download ( $pname ) {
echo "
2006-08-03 16:39:57 +00:00
< table cellpadding = 10 >< tr >< td valign = top >
2013-11-12 04:54:50 +00:00
" .tra( " BOINC is a program that lets you donate your idle computer time to science projects like SETI @ home , Climateprediction . net , Rosetta @ home , World Community Grid , and many others . " )
. " "
. tra ( " After installing BOINC on your computer, you can connect it to as many of these projects as you like. " )
2009-12-03 19:09:45 +00:00
. " <p> "
. tra ( " You may run this software on a computer only if you own the computer or have the permission of its owner. " ) .
2008-05-20 00:11:28 +00:00
" <p> "
2006-08-03 17:31:40 +00:00
;
2013-07-22 20:10:00 +00:00
if ( $pname == 'android' ) {
2013-11-12 04:54:50 +00:00
echo " <b> "
. tra ( " We recommend that you download BOINC from the Google Play Store or Amazon Appstore, not from here. " )
. " </b>
2013-07-22 20:10:00 +00:00
" ;
}
2005-10-23 07:19:03 +00:00
if ( $pname ) {
2008-12-16 21:33:33 +00:00
download_link ( $pname , true );
2005-10-23 07:19:03 +00:00
} else {
2008-12-16 21:33:33 +00:00
list_start ();
list_heading_array ( array (
'Computer type' ,
2015-01-12 17:32:41 +00:00
'BOINC version ' ,
'Click to download'
2008-12-16 21:33:33 +00:00
));
download_link ( 'win' );
download_link ( 'winx64' );
download_link ( 'mac' );
2012-04-13 01:12:27 +00:00
download_link ( 'macppc' );
2008-12-16 21:33:33 +00:00
download_link ( 'linux' );
download_link ( 'linuxx64' );
download_link ( 'linuxcompat' );
2014-11-08 06:03:45 +00:00
download_link ( 'android' );
list_end ();
2015-01-12 17:32:41 +00:00
echo " Linux users: BOINC is available as a package for many Linux distributions. It is available for Linux/ARM as a package for Debian and Ubuntu for ARM, and Raspbian (for Raspberry Pi). " ;
2005-05-20 17:42:06 +00:00
}
2013-07-22 20:10:00 +00:00
if ( $pname != 'android' ) {
echo "
< p >
After downloading BOINC you must < b > install </ b > it :
2014-11-08 06:03:45 +00:00
typically this means double - clicking on the file icon
when the download is finished .
2013-07-22 20:10:00 +00:00
" ;
}
2005-05-20 17:42:06 +00:00
echo "
2012-07-22 06:18:24 +00:00
< p >
2008-12-16 21:33:33 +00:00
< center >
2008-08-16 20:59:53 +00:00
< a href = \ " wiki/System_requirements \" ><span class=nobr> " . tra ( " System requirements " ) . " </span></a>
2014-01-06 22:20:25 +00:00
& middot ; < a href = \ " wiki/Release_Notes \" ><span class=nobr> " . tra ( " Release notes " ) . " </span></a>
2012-07-22 06:18:24 +00:00
& middot ; < a href = \ " wiki/BOINC_Help \" ><span class=nobr> " . tra ( " Help " ) . " </span></a>
& middot ; < a href = download_all . php >< span class = nobr > " .tra( " All versions " ). " </ span ></ a >
& middot ; < a href = \ " trac/wiki/VersionHistory \" > " . tra ( " Version history " ) . " </a>
& middot ; < a href = http :// boinc . berkeley . edu / wiki / GPU_computing > " .tra( " GPU computing " ). " </ a >
2008-12-16 21:33:33 +00:00
</ center >
2012-07-22 06:18:24 +00:00
</ td >
< td valign = top >
2006-08-03 16:39:57 +00:00
" ;
show_pictures ();
echo "
</ td >
</ tr ></ table >
2005-05-20 17:42:06 +00:00
" ;
2005-03-22 22:50:33 +00:00
}
2005-05-20 17:42:06 +00:00
2010-09-27 20:34:47 +00:00
if ( get_str2 ( 'xml' )) {
2006-08-03 04:07:18 +00:00
$args = strstr ( $_SERVER [ 'REQUEST_URI' ], '?' );
Header ( " Location: download_all.php $args " );
2006-08-02 21:33:19 +00:00
exit ();
}
2008-05-20 00:11:28 +00:00
page_head ( tra ( " BOINC: compute for science " ));
2006-08-02 21:33:19 +00:00
2010-09-27 20:34:47 +00:00
if ( get_str2 ( 'all_platforms' )) {
2006-08-02 21:33:19 +00:00
show_download ( null );
} else if ( strstr ( $client_info , 'Windows' )) {
2007-06-19 16:00:59 +00:00
if ( strstr ( $client_info , 'Win64' ) || strstr ( $client_info , 'WOW64' )) {
2007-05-01 21:21:13 +00:00
show_download ( 'winx64' );
} else {
show_download ( 'win' );
}
2006-08-02 21:33:19 +00:00
} else if ( strstr ( $client_info , 'Mac' )) {
2012-04-13 01:12:27 +00:00
if ( strstr ( $client_info , 'PPC Mac OS X' )) {
show_download ( 'macppc' );
} else {
show_download ( 'mac' );
}
2014-12-03 22:22:26 +00:00
} else if ( strstr ( $client_info , 'Android' )) {
2014-11-08 06:03:45 +00:00
// Check for Android before Linux,
// since Android contains the Linux kernel and the
// web browser user agent string lists Linux too.
//
show_download ( 'android' );
2013-02-14 04:10:55 +00:00
} else if ( strstr ( $client_info , 'Linux' )) {
if ( strstr ( $client_info , 'x86_64' )) {
show_download ( 'linuxx64' );
} else {
show_download ( 'linux' );
}
2006-08-02 21:33:19 +00:00
} else {
show_download ( null );
}
2008-01-15 18:43:00 +00:00
2006-08-08 20:32:37 +00:00
page_tail ( true );
2006-08-02 21:33:19 +00:00
2004-11-15 01:58:30 +00:00
?>