diff --git a/error.php b/error.php index 5ec75cb1d..fe02cd804 100644 --- a/error.php +++ b/error.php @@ -137,7 +137,8 @@ if (preg_match("!^get/([^/]+)/from/([^/]+)(/mirror)?$!", $URI, $dlinfo)) { $df = $dlinfo[1]; if(strpos($df, "7-LATEST") !== false) { include_once __DIR__ . "/include/version.inc"; - $df = str_replace("7-LATEST", $PHP_7_VERSION, $df); + [ $latest ] = release_get_latest(); + $df = str_replace("7-LATEST", $latest, $df); } $mr = "https://www.php.net/"; diff --git a/gpg-keys.php b/gpg-keys.php index a0729a4d2..9d75caf16 100644 --- a/gpg-keys.php +++ b/gpg-keys.php @@ -2,7 +2,6 @@ $_SERVER['BASE_PAGE'] = 'gpg-keys.php'; include_once __DIR__ . '/include/prepend.inc'; include_once __DIR__ . '/include/gpg-keys.inc'; -include_once __DIR__ . '/include/version.inc'; site_header('GPG Keys'); ?> diff --git a/include/version.inc b/include/version.inc index a141da5b6..3400e773c 100644 --- a/include/version.inc +++ b/include/version.inc @@ -15,122 +15,129 @@ * ), * ); */ -/* PHP 7.3 Release */ -$PHP_7_3_RC = false; // Current RC version (e.g., '7.3.1RC1') or false -$PHP_7_3_RC_DATE = "16 May 2019"; +$RELEASES = (function() { + /* PHP 7.3 Release */ + $PHP_7_3_VERSION = "7.3.6"; + $PHP_7_3_DATE = "30 May 2019"; + $PHP_7_3_TAGS = ['security']; // Set to ['security'] for security releases. + $PHP_7_3_SHA256 = array( + "tar.bz2" => "1e5ac8700154835c0910e3a814517da9b87bb4a82cc7011fea1a82096b6f6f77", + "tar.gz" => "72fbf223ff8659a61eed08eebffb4ede0256e7a69d2151ae24affa5377b70bb8", + "tar.xz" => "fefc8967daa30ebc375b2ab2857f97da94ca81921b722ddac86b29e15c54a164", + ); -$PHP_7_3_VERSION = "7.3.6"; -$PHP_7_3_DATE = "30 May 2019"; -$PHP_7_3_TAGS = ['security']; // Set to ['security'] for security releases. -$PHP_7_3_SHA256 = array( - "tar.bz2" => "1e5ac8700154835c0910e3a814517da9b87bb4a82cc7011fea1a82096b6f6f77", - "tar.gz" => "72fbf223ff8659a61eed08eebffb4ede0256e7a69d2151ae24affa5377b70bb8", - "tar.xz" => "fefc8967daa30ebc375b2ab2857f97da94ca81921b722ddac86b29e15c54a164", -); + /* PHP 7.2 Release */ + $PHP_7_2_VERSION = "7.2.19"; + $PHP_7_2_DATE = "30 May 2019"; + $PHP_7_2_TAGS = ['security']; // Set to ['security'] for security releases. + $PHP_7_2_SHA256 = array( + "tar.bz2" => "ebd0b1f375fe07ed4925acc213d2f5ef76a61bd5de174e7b666b98421a90a099", + "tar.gz" => "1cd2266a058f3224d3cba594540045542606996f026eeef96747f27f6b3d22b6", + "tar.xz" => "4ffa2404a88d60e993a9fe69f829ebec3eb1e006de41b6048ce5e91bbeaa9282", + ); -/* PHP 7.2 Release */ -$PHP_7_2_RC = false; // Current RC version (e.g., '7.2.1RC1') or false -$PHP_7_2_RC_DATE = "18 Apr 2019"; + /* PHP 7.1 Release */ + $PHP_7_1_VERSION = "7.1.30"; + $PHP_7_1_DATE = "30 May 2019"; + $PHP_7_1_TAGS = ['security']; + $PHP_7_1_SHA256 = array( + 'tar.bz2' => '664850774fca19d2710b9aa35e9ae91214babbde9cd8d27fd3479cc97171ecb3', + 'tar.gz' => 'a604edf85d5dfc28e6ff3016dad3954c50b93db69afc42295178b4fdf42e026c', + 'tar.xz' => '6310599811536dbe87e4bcf212bf93196bdfaff519d0c821e4c0068efd096a7c', + ); -$PHP_7_2_VERSION = "7.2.19"; -$PHP_7_2_DATE = "30 May 2019"; -$PHP_7_2_TAGS = ['security']; // Set to ['security'] for security releases. -$PHP_7_2_SHA256 = array( - "tar.bz2" => "ebd0b1f375fe07ed4925acc213d2f5ef76a61bd5de174e7b666b98421a90a099", - "tar.gz" => "1cd2266a058f3224d3cba594540045542606996f026eeef96747f27f6b3d22b6", - "tar.xz" => "4ffa2404a88d60e993a9fe69f829ebec3eb1e006de41b6048ce5e91bbeaa9282", -); - -/* PHP 7.1 Release */ -$PHP_7_1_RC = false; // Current RC version (e.g., '5.6.7RC1') or false -$PHP_7_1_RC_DATE = "25 Oct 2018"; - -$PHP_7_1_VERSION = "7.1.30"; -$PHP_7_1_DATE = "30 May 2019"; -$PHP_7_1_TAGS = ['security']; -$PHP_7_1_SHA256 = array( - 'tar.bz2' => '664850774fca19d2710b9aa35e9ae91214babbde9cd8d27fd3479cc97171ecb3', - 'tar.gz' => 'a604edf85d5dfc28e6ff3016dad3954c50b93db69afc42295178b4fdf42e026c', - 'tar.xz' => '6310599811536dbe87e4bcf212bf93196bdfaff519d0c821e4c0068efd096a7c', -); - -$RELEASES = array( - 7 => array( - $PHP_7_3_VERSION => array( - "announcement" => true, - "tags" => $PHP_7_3_TAGS, - "source" => array( - array( - "filename" => "php-$PHP_7_3_VERSION.tar.bz2", - "name" => "PHP $PHP_7_3_VERSION (tar.bz2)", - "sha256" => $PHP_7_3_SHA256["tar.bz2"], - "date" => $PHP_7_3_DATE, + return array( + 7 => array( + $PHP_7_3_VERSION => array( + "announcement" => true, + "tags" => $PHP_7_3_TAGS, + "source" => array( + array( + "filename" => "php-$PHP_7_3_VERSION.tar.bz2", + "name" => "PHP $PHP_7_3_VERSION (tar.bz2)", + "sha256" => $PHP_7_3_SHA256["tar.bz2"], + "date" => $PHP_7_3_DATE, + ), + array( + "filename" => "php-$PHP_7_3_VERSION.tar.gz", + "name" => "PHP $PHP_7_3_VERSION (tar.gz)", + "sha256" => $PHP_7_3_SHA256["tar.gz"], + "date" => $PHP_7_3_DATE, + ), + array( + "filename" => "php-$PHP_7_3_VERSION.tar.xz", + "name" => "PHP $PHP_7_3_VERSION (tar.xz)", + "sha256" => $PHP_7_3_SHA256["tar.xz"], + "date" => $PHP_7_3_DATE, + ), ), - array( - "filename" => "php-$PHP_7_3_VERSION.tar.gz", - "name" => "PHP $PHP_7_3_VERSION (tar.gz)", - "sha256" => $PHP_7_3_SHA256["tar.gz"], - "date" => $PHP_7_3_DATE, + ), + $PHP_7_2_VERSION => array( + "announcement" => true, + "tags" => $PHP_7_2_TAGS, + "source" => array( + array( + "filename" => "php-$PHP_7_2_VERSION.tar.bz2", + "name" => "PHP $PHP_7_2_VERSION (tar.bz2)", + "sha256" => $PHP_7_2_SHA256["tar.bz2"], + "date" => $PHP_7_2_DATE, + ), + array( + "filename" => "php-$PHP_7_2_VERSION.tar.gz", + "name" => "PHP $PHP_7_2_VERSION (tar.gz)", + "sha256" => $PHP_7_2_SHA256["tar.gz"], + "date" => $PHP_7_2_DATE, + ), + array( + "filename" => "php-$PHP_7_2_VERSION.tar.xz", + "name" => "PHP $PHP_7_2_VERSION (tar.xz)", + "sha256" => $PHP_7_2_SHA256["tar.xz"], + "date" => $PHP_7_2_DATE, + ), ), - array( - "filename" => "php-$PHP_7_3_VERSION.tar.xz", - "name" => "PHP $PHP_7_3_VERSION (tar.xz)", - "sha256" => $PHP_7_3_SHA256["tar.xz"], - "date" => $PHP_7_3_DATE, + ), + $PHP_7_1_VERSION => array( + "announcement" => true, + "tags" => $PHP_7_1_TAGS, + "source" => array( + array( + "filename" => "php-$PHP_7_1_VERSION.tar.bz2", + "name" => "PHP $PHP_7_1_VERSION (tar.bz2)", + "sha256" => $PHP_7_1_SHA256["tar.bz2"], + "date" => $PHP_7_1_DATE, + ), + array( + "filename" => "php-$PHP_7_1_VERSION.tar.gz", + "name" => "PHP $PHP_7_1_VERSION (tar.gz)", + "sha256" => $PHP_7_1_SHA256["tar.gz"], + "date" => $PHP_7_1_DATE, + ), + array( + "filename" => "php-$PHP_7_1_VERSION.tar.xz", + "name" => "PHP $PHP_7_1_VERSION (tar.xz)", + "sha256" => $PHP_7_1_SHA256["tar.xz"], + "date" => $PHP_7_1_DATE, + ), ), ), ), - $PHP_7_2_VERSION => array( - "announcement" => true, - "tags" => $PHP_7_2_TAGS, - "source" => array( - array( - "filename" => "php-$PHP_7_2_VERSION.tar.bz2", - "name" => "PHP $PHP_7_2_VERSION (tar.bz2)", - "sha256" => $PHP_7_2_SHA256["tar.bz2"], - "date" => $PHP_7_2_DATE, - ), - array( - "filename" => "php-$PHP_7_2_VERSION.tar.gz", - "name" => "PHP $PHP_7_2_VERSION (tar.gz)", - "sha256" => $PHP_7_2_SHA256["tar.gz"], - "date" => $PHP_7_2_DATE, - ), - array( - "filename" => "php-$PHP_7_2_VERSION.tar.xz", - "name" => "PHP $PHP_7_2_VERSION (tar.xz)", - "sha256" => $PHP_7_2_SHA256["tar.xz"], - "date" => $PHP_7_2_DATE, - ), - ), - ), - $PHP_7_1_VERSION => array( - "announcement" => true, - "tags" => $PHP_7_1_TAGS, - "source" => array( - array( - "filename" => "php-$PHP_7_1_VERSION.tar.bz2", - "name" => "PHP $PHP_7_1_VERSION (tar.bz2)", - "sha256" => $PHP_7_1_SHA256["tar.bz2"], - "date" => $PHP_7_1_DATE, - ), - array( - "filename" => "php-$PHP_7_1_VERSION.tar.gz", - "name" => "PHP $PHP_7_1_VERSION (tar.gz)", - "sha256" => $PHP_7_1_SHA256["tar.gz"], - "date" => $PHP_7_1_DATE, - ), - array( - "filename" => "php-$PHP_7_1_VERSION.tar.xz", - "name" => "PHP $PHP_7_1_VERSION (tar.xz)", - "sha256" => $PHP_7_1_SHA256["tar.xz"], - "date" => $PHP_7_1_DATE, - ), - ), - ), - ), -); + ); +})(); -$PHP_7_VERSION = $PHP_7_3_VERSION; // Some scripts require this set -$PHP_7_DATE = $PHP_7_3_DATE; // Used by bumpRelease script -$PHP_7_RC_DATE = $PHP_7_3_RC_DATE; // Used by master +// Get latest release version and info. +function release_get_latest() { + global $RELEASES; + + $version = null; + $current = null; + foreach ($RELEASES as $versions) { + foreach ($versions as $ver => $info) { + if (version_compare($ver, $version) > 0) { + $version = $ver; + $current = $info; + } + } + } + + return [ $version, $current ]; +} diff --git a/mirror-info.php b/mirror-info.php index d9fb5c42f..1bb68bda2 100644 --- a/mirror-info.php +++ b/mirror-info.php @@ -2,7 +2,7 @@ // Define $MYSITE and $LAST_UPDATED variables include_once __DIR__ . '/include/prepend.inc'; -// Define $PHP_7_3_VERSION, $PHP_7_3_SHA256 & $RELEASES variables +// Define release_get_latest() function. include_once __DIR__ . '/include/version.inc'; // Text/plain content type for better readability in browsers @@ -12,13 +12,15 @@ header("Content-type: text/plain; charset=utf-8"); $mirror_stats = (int) (isset($_SERVER['MIRROR_STATS']) && $_SERVER['MIRROR_STATS'] == '1'); // SHA256 check last release file (identifies rsync setup problems) -$filename = $_SERVER['DOCUMENT_ROOT'] . '/distributions/' . $RELEASES[7][$PHP_7_3_VERSION]["source"][0]["filename"]; +[ , $latest ] = release_get_latest(); +$dist = $latest['source'][0]; +$filename = __DIR__ . "/distributions/{$dist['filename']}"; if (!file_exists($filename)) { $hash_ok = 0; -} elseif (isset($PHP_7_3_SHA256["tar.bz2"]) && +} elseif (isset($dist['sha256']) && function_exists('hash_file') && in_array('sha256', hash_algos(), true)) { - $hash_ok = (int)(hash_file('sha256', $filename) === $PHP_7_3_SHA256["tar.bz2"]); + $hash_ok = (int)(hash_file('sha256', $filename) === $dist['sha256']); } else { $hash_ok = 0; }