Example #1
0
 /**
  * Pre-installation.
  * @return boolean
  */
 function preInstall()
 {
     $this->currentVersion = Version::fromString('');
     $this->locale = $this->getParam('locale');
     $this->installedLocales = $this->getParam('additionalLocales');
     if (!isset($this->installedLocales) || !is_array($this->installedLocales)) {
         $this->installedLocales = array();
     }
     if (!in_array($this->locale, $this->installedLocales) && Locale::isLocaleValid($this->locale)) {
         array_push($this->installedLocales, $this->locale);
     }
     if ($this->getParam('manualInstall')) {
         // Do not perform database installation for manual install
         // Create connection object with the appropriate database driver for adodb-xmlschema
         $conn =& new DBConnection($this->getParam('databaseDriver'), null, null, null, null);
         $this->dbconn =& $conn->getDBConn();
     } else {
         // Connect to database
         $conn =& new DBConnection($this->getParam('databaseDriver'), $this->getParam('databaseHost'), $this->getParam('databaseUsername'), $this->getParam('databasePassword'), $this->getParam('createDatabase') ? null : $this->getParam('databaseName'), true, $this->getParam('connectionCharset') == '' ? false : $this->getParam('connectionCharset'));
         $this->dbconn =& $conn->getDBConn();
         if (!$conn->isConnected()) {
             $this->setError(INSTALLER_ERROR_DB, $this->dbconn->errorMsg());
             return false;
         }
     }
     DBConnection::getInstance($conn);
     return parent::preInstall();
 }
Example #2
0
 /**
  * Parse information from a version XML file.
  * @return array
  */
 function &parseVersionXML($url)
 {
     $xmlDao =& new XMLDAO();
     $data = $xmlDao->parseStruct($url, array());
     if (!$data) {
         $result = false;
         return $result;
     }
     // FIXME validate parsed data?
     $versionInfo = array('application' => $data['application'][0]['value'], 'release' => $data['release'][0]['value'], 'tag' => $data['tag'][0]['value'], 'date' => $data['date'][0]['value'], 'info' => $data['info'][0]['value'], 'package' => $data['package'][0]['value'], 'patch' => array(), 'version' => Version::fromString($data['release'][0]['value']));
     foreach ($data['patch'] as $patch) {
         $versionInfo['patch'][$patch['attributes']['from']] = $patch['value'];
     }
     return $versionInfo;
 }
Example #3
0
 /**
  * Pre-installation.
  * @return boolean
  */
 function preInstall()
 {
     if (!isset($this->currentVersion)) {
         $this->currentVersion = Version::fromString('');
     }
     $this->locale = $this->getParam('locale');
     $this->installedLocales = $this->getParam('additionalLocales');
     if (!isset($this->installedLocales) || !is_array($this->installedLocales)) {
         $this->installedLocales = array();
     }
     if (!in_array($this->locale, $this->installedLocales) && AppLocale::isLocaleValid($this->locale)) {
         array_push($this->installedLocales, $this->locale);
     }
     // Connect to database
     $conn = new DBConnection($this->getParam('databaseDriver'), $this->getParam('databaseHost'), $this->getParam('databaseUsername'), $this->getParam('databasePassword'), $this->getParam('createDatabase') ? null : $this->getParam('databaseName'), false, $this->getParam('connectionCharset') == '' ? false : $this->getParam('connectionCharset'));
     $this->dbconn =& $conn->getDBConn();
     if (!$conn->isConnected()) {
         $this->setError(INSTALLER_ERROR_DB, $this->dbconn->errorMsg());
         return false;
     }
     DBConnection::getInstance($conn);
     return parent::preInstall();
 }
Example #4
0
 /**
  * Parse the installation descriptor XML file.
  * @return boolean
  */
 function parseInstaller()
 {
     // Read installation descriptor file
     $this->log(sprintf('load: %s', $this->descriptor));
     $xmlParser = new XMLParser();
     $installPath = $this->isPlugin ? $this->descriptor : INSTALLER_DATA_DIR . DIRECTORY_SEPARATOR . $this->descriptor;
     $installTree = $xmlParser->parse($installPath);
     if (!$installTree) {
         // Error reading installation file
         $xmlParser->destroy();
         $this->setError(INSTALLER_ERROR_GENERAL, 'installer.installFileError');
         return false;
     }
     $versionString = $installTree->getAttribute('version');
     if (isset($versionString)) {
         $this->newVersion =& Version::fromString($versionString);
     } else {
         $this->newVersion = $this->currentVersion;
     }
     // Parse descriptor
     $this->parseInstallNodes($installTree);
     $xmlParser->destroy();
     $result = $this->getErrorType() == 0;
     HookRegistry::call('Installer::parseInstaller', array(&$this, &$result));
     return $result;
 }
Example #5
0
 /**
  * @dataProvider getEarlier
  */
 public function testComparedVersionIsEarlier($version1, $version2)
 {
     $this->assertTrue(Version::fromString($version1)->isEarlierThan(Version::fromString($version2)));
 }
 /**
  * Parse information from a version XML file.
  * @return array
  */
 function &parseVersionXML($url)
 {
     $xmlDao = new XMLDAO();
     $data = $xmlDao->parseStruct($url, array());
     if (!$data) {
         $result = false;
         return $result;
     }
     // FIXME validate parsed data?
     $versionInfo = array();
     if (isset($data['application'][0]['value'])) {
         $versionInfo['application'] = $data['application'][0]['value'];
     }
     if (isset($data['type'][0]['value'])) {
         $versionInfo['type'] = $data['type'][0]['value'];
     }
     if (isset($data['release'][0]['value'])) {
         $versionInfo['release'] = $data['release'][0]['value'];
     }
     if (isset($data['tag'][0]['value'])) {
         $versionInfo['tag'] = $data['tag'][0]['value'];
     }
     if (isset($data['date'][0]['value'])) {
         $versionInfo['date'] = $data['date'][0]['value'];
     }
     if (isset($data['info'][0]['value'])) {
         $versionInfo['info'] = $data['info'][0]['value'];
     }
     if (isset($data['package'][0]['value'])) {
         $versionInfo['package'] = $data['package'][0]['value'];
     }
     if (isset($data['patch'][0]['value'])) {
         $versionInfo['patch'] = array();
         foreach ($data['patch'] as $patch) {
             $versionInfo['patch'][$patch['attributes']['from']] = $patch['value'];
         }
     }
     if (isset($data['class'][0]['value'])) {
         $versionInfo['class'] = (string) $data['class'][0]['value'];
     }
     $versionInfo['lazy-load'] = isset($data['lazy-load'][0]['value']) ? (int) $data['lazy-load'][0]['value'] : 0;
     $versionInfo['sitewide'] = isset($data['sitewide'][0]['value']) ? (int) $data['sitewide'][0]['value'] : 0;
     if (isset($data['release'][0]['value']) && isset($data['application'][0]['value'])) {
         $version =& Version::fromString($data['release'][0]['value'], isset($data['type'][0]['value']) ? $data['type'][0]['value'] : null, $data['application'][0]['value'], isset($data['class'][0]['value']) ? $data['class'][0]['value'] : '', $versionInfo['lazy-load'], $versionInfo['sitewide']);
         $versionInfo['version'] =& $version;
     }
     return $versionInfo;
 }
 /**
  * Populate the collection with 'static' packages. A static package is
  * one which was not produced by or that which has no persistent build
  * event information.
  *
  * Static packages are primarily for historic releases which predate
  * the autobuilder.
  *
  * @param array:$packages  Collection to be populated.
  * @return bool  @c true= iff successful.
  */
 private function populateStaticPackages(&$packages)
 {
     /**
      * @todo Read this information from a config file, we should not
      * expect to edit this file in order to change these...
      */
     $pack = PackageFactory::newDistribution(PID_WIN_X86, 'Doomsday', Version::fromString('1.14'), 'http://sourceforge.net/projects/deng/files/Doomsday%20Engine/1.14.5/deng-inst-1.14.5.exe/download', NULL, false);
     $pack->setReleaseNotesUri('http://dengine.net/dew/index.php?title=Doomsday_version_1.14.5');
     $pack->setReleaseDate(strtotime('June 19, 2014'));
     $packages[] = $pack;
     $pack = PackageFactory::newDistribution(PID_MAC10_4_X86_PPC, 'Doomsday', Version::fromString('1.14'), 'http://sourceforge.net/projects/deng/files/Doomsday%20Engine/1.14.5/deng-inst-1.14.5.dmg/download', NULL, false);
     $pack->setReleaseNotesUri('http://dengine.net/dew/index.php?title=Doomsday_version_1.14.5');
     $pack->setReleaseDate(strtotime('June 19, 2014'));
     $packages[] = $pack;
     $pack = PackageFactory::newDistribution(PID_MAC10_6_X86_X86_64, 'Doomsday', Version::fromString('1.14'), 'http://sourceforge.net/projects/deng/files/Doomsday%20Engine/1.14.5/deng-inst-1.14.5_64bit.dmg/download', NULL, false);
     $pack->setReleaseNotesUri('http://dengine.net/dew/index.php?title=Doomsday_version_1.14.5');
     $pack->setReleaseDate(strtotime('June 19, 2014'));
     $packages[] = $pack;
     $pack = PackageFactory::newDistribution(PID_LINUX_X86, 'Doomsday', Version::fromString('1.14'), 'http://sourceforge.net/projects/deng/files/Doomsday%20Engine/1.14.5/deng-inst-1.14.5_i386.deb/download', NULL, false);
     $pack->setReleaseNotesUri('http://dengine.net/dew/index.php?title=Doomsday_version_1.14.5');
     $pack->setReleaseDate(strtotime('June 19, 2014'));
     $packages[] = $pack;
     $pack = PackageFactory::newDistribution(PID_LINUX_X86_64, 'Doomsday', Version::fromString('1.14'), 'http://sourceforge.net/projects/deng/files/Doomsday%20Engine/1.14.5/deng-inst-1.14.5_amd64.deb/download', NULL, false);
     $pack->setReleaseNotesUri('http://dengine.net/dew/index.php?title=Doomsday_version_1.14.5');
     $pack->setReleaseDate(strtotime('June 19, 2014'));
     $packages[] = $pack;
     $pack = PackageFactory::newDistribution(PID_WIN_X86, 'Doomsday', Version::fromString('1.13'), 'http://sourceforge.net/projects/deng/files/Doomsday%20Engine/1.13.2/deng-inst-1.13.2.exe/download', NULL, false);
     $pack->setReleaseNotesUri('http://dengine.net/dew/index.php?title=Doomsday_version_1.13.2');
     $pack->setReleaseDate(strtotime('January 14, 2014'));
     $packages[] = $pack;
     $pack = PackageFactory::newDistribution(PID_MAC10_4_X86_PPC, 'Doomsday', Version::fromString('1.13'), 'http://sourceforge.net/projects/deng/files/Doomsday%20Engine/1.13.2/deng-inst-1.13.2.dmg/download', NULL, false);
     $pack->setReleaseNotesUri('http://dengine.net/dew/index.php?title=Doomsday_version_1.13.2');
     $pack->setReleaseDate(strtotime('January 14, 2014'));
     $packages[] = $pack;
     $pack = PackageFactory::newDistribution(PID_MAC10_6_X86_X86_64, 'Doomsday', Version::fromString('1.13'), 'http://sourceforge.net/projects/deng/files/Doomsday%20Engine/1.13.2/deng-inst-1.13.2_64bit.dmg/download', NULL, false);
     $pack->setReleaseNotesUri('http://dengine.net/dew/index.php?title=Doomsday_version_1.13.2');
     $pack->setReleaseDate(strtotime('January 14, 2014'));
     $packages[] = $pack;
     $pack = PackageFactory::newDistribution(PID_LINUX_X86, 'Doomsday', Version::fromString('1.13'), 'http://sourceforge.net/projects/deng/files/Doomsday%20Engine/1.13.2/deng-inst-1.13.2_i386.deb/download', NULL, false);
     $pack->setReleaseNotesUri('http://dengine.net/dew/index.php?title=Doomsday_version_1.13.2');
     $pack->setReleaseDate(strtotime('January 14, 2014'));
     $packages[] = $pack;
     $pack = PackageFactory::newDistribution(PID_LINUX_X86_64, 'Doomsday', Version::fromString('1.13'), 'http://sourceforge.net/projects/deng/files/Doomsday%20Engine/1.13.2/deng-inst-1.13.2_amd64.deb/download', NULL, false);
     $pack->setReleaseNotesUri('http://dengine.net/dew/index.php?title=Doomsday_version_1.13.2');
     $pack->setReleaseDate(strtotime('January 14, 2014'));
     $packages[] = $pack;
     $pack = PackageFactory::newDistribution(PID_WIN_X86, 'Doomsday', Version::fromString('1.12'), 'http://sourceforge.net/projects/deng/files/Doomsday%20Engine/1.12.2/deng-inst-1.12.2.exe/download', NULL, false);
     $pack->setReleaseNotesUri('http://dengine.net/dew/index.php?title=Doomsday_version_1.12.2');
     $pack->setReleaseDate(strtotime('November 2, 2013'));
     $packages[] = $pack;
     $pack = PackageFactory::newDistribution(PID_MAC10_4_X86_PPC, 'Doomsday', Version::fromString('1.12'), 'http://sourceforge.net/projects/deng/files/Doomsday%20Engine/1.12.2/deng-inst-1.12.2.dmg/download', NULL, false);
     $pack->setReleaseNotesUri('http://dengine.net/dew/index.php?title=Doomsday_version_1.12.2');
     $pack->setReleaseDate(strtotime('November 2, 2013'));
     $packages[] = $pack;
     $pack = PackageFactory::newDistribution(PID_MAC10_6_X86_X86_64, 'Doomsday', Version::fromString('1.12'), 'http://sourceforge.net/projects/deng/files/Doomsday%20Engine/1.12.2/deng-inst-1.12.2_64bit.dmg/download', NULL, false);
     $pack->setReleaseNotesUri('http://dengine.net/dew/index.php?title=Doomsday_version_1.12.2');
     $pack->setReleaseDate(strtotime('November 2, 2013'));
     $packages[] = $pack;
     $pack = PackageFactory::newDistribution(PID_LINUX_X86, 'Doomsday', Version::fromString('1.12'), 'http://sourceforge.net/projects/deng/files/Doomsday%20Engine/1.12.2/deng-inst-1.12.2_i386.deb/download', NULL, false);
     $pack->setReleaseNotesUri('http://dengine.net/dew/index.php?title=Doomsday_version_1.12.2');
     $pack->setReleaseDate(strtotime('November 2, 2013'));
     $packages[] = $pack;
     $pack = PackageFactory::newDistribution(PID_LINUX_X86_64, 'Doomsday', Version::fromString('1.12'), 'http://sourceforge.net/projects/deng/files/Doomsday%20Engine/1.12.2/deng-inst-1.12.2_amd64.deb/download', NULL, false);
     $pack->setReleaseNotesUri('http://dengine.net/dew/index.php?title=Doomsday_version_1.12.2');
     $pack->setReleaseDate(strtotime('November 2, 2013'));
     $packages[] = $pack;
     $pack = PackageFactory::newDistribution(PID_WIN_X86, 'Doomsday', Version::fromString('1.11'), 'http://sourceforge.net/projects/deng/files/Doomsday%20Engine/1.11.2/deng-inst-1.11.2.exe/download', NULL, false);
     $pack->setReleaseNotesUri('http://dengine.net/dew/index.php?title=Doomsday_version_1.11.2');
     $pack->setReleaseDate(strtotime('August 29, 2013'));
     $packages[] = $pack;
     $pack = PackageFactory::newDistribution(PID_MAC10_4_X86_PPC, 'Doomsday', Version::fromString('1.11'), 'http://sourceforge.net/projects/deng/files/Doomsday%20Engine/1.11.2/deng-inst-1.11.2.dmg/download', NULL, false);
     $pack->setReleaseNotesUri('http://dengine.net/dew/index.php?title=Doomsday_version_1.11.2');
     $pack->setReleaseDate(strtotime('August 29, 2013'));
     $packages[] = $pack;
     $pack = PackageFactory::newDistribution(PID_MAC10_6_X86_X86_64, 'Doomsday', Version::fromString('1.11'), 'http://sourceforge.net/projects/deng/files/Doomsday%20Engine/1.11.2/deng-inst-1.11.2_64bit.dmg/download', NULL, false);
     $pack->setReleaseNotesUri('http://dengine.net/dew/index.php?title=Doomsday_version_1.11.2');
     $pack->setReleaseDate(strtotime('August 29, 2013'));
     $packages[] = $pack;
     $pack = PackageFactory::newDistribution(PID_LINUX_X86, 'Doomsday', Version::fromString('1.11'), 'http://sourceforge.net/projects/deng/files/Doomsday%20Engine/1.11.2/deng-inst-1.11.2_i386.deb/download', NULL, false);
     $pack->setReleaseNotesUri('http://dengine.net/dew/index.php?title=Doomsday_version_1.11.2');
     $pack->setReleaseDate(strtotime('August 29, 2013'));
     $packages[] = $pack;
     $pack = PackageFactory::newDistribution(PID_LINUX_X86_64, 'Doomsday', Version::fromString('1.11'), 'http://sourceforge.net/projects/deng/files/Doomsday%20Engine/1.11.2/deng-inst-1.11.2_amd64.deb/download', NULL, false);
     $pack->setReleaseNotesUri('http://dengine.net/dew/index.php?title=Doomsday_version_1.11.2');
     $pack->setReleaseDate(strtotime('August 29, 2013'));
     $packages[] = $pack;
     $pack = PackageFactory::newDistribution(PID_WIN_X86, 'Doomsday', Version::fromString('1.10'), 'http://sourceforge.net/projects/deng/files/Doomsday%20Engine/1.10.4/deng-inst-1.10.4.exe/download', NULL, false);
     $pack->setReleaseNotesUri('http://dengine.net/dew/index.php?title=Doomsday_version_1.10.4');
     $pack->setReleaseDate(strtotime('July 28, 2013'));
     $packages[] = $pack;
     $pack = PackageFactory::newDistribution(PID_MAC10_4_X86_PPC, 'Doomsday', Version::fromString('1.10'), 'http://sourceforge.net/projects/deng/files/Doomsday%20Engine/1.10.4/deng-inst-1.10.4.dmg/download', NULL, false);
     $pack->setReleaseNotesUri('http://dengine.net/dew/index.php?title=Doomsday_version_1.10.4');
     $pack->setReleaseDate(strtotime('July 28, 2013'));
     $packages[] = $pack;
     $pack = PackageFactory::newDistribution(PID_MAC10_6_X86_X86_64, 'Doomsday', Version::fromString('1.10'), 'http://sourceforge.net/projects/deng/files/Doomsday%20Engine/1.10.4/deng-inst-1.10.4_64bit.dmg/download', NULL, false);
     $pack->setReleaseNotesUri('http://dengine.net/dew/index.php?title=Doomsday_version_1.10.4');
     $pack->setReleaseDate(strtotime('July 28, 2013'));
     $packages[] = $pack;
     $pack = PackageFactory::newDistribution(PID_LINUX_X86, 'Doomsday', Version::fromString('1.10'), 'http://sourceforge.net/projects/deng/files/Doomsday%20Engine/1.10.4/deng-inst-1.10.4_i386.deb/download', NULL, false);
     $pack->setReleaseNotesUri('http://dengine.net/dew/index.php?title=Doomsday_version_1.10.4');
     $pack->setReleaseDate(strtotime('July 28, 2013'));
     $packages[] = $pack;
     $pack = PackageFactory::newDistribution(PID_LINUX_X86_64, 'Doomsday', Version::fromString('1.10'), 'http://sourceforge.net/projects/deng/files/Doomsday%20Engine/1.10.4/deng-inst-1.10.4_amd64.deb/download', NULL, false);
     $pack->setReleaseNotesUri('http://dengine.net/dew/index.php?title=Doomsday_version_1.10.4');
     $pack->setReleaseDate(strtotime('July 28, 2013'));
     $packages[] = $pack;
     $pack = PackageFactory::newDistribution(PID_WIN_X86, 'Doomsday', Version::fromString('1.9.10'), 'http://sourceforge.net/projects/deng/files/Doomsday%20Engine/1.9.10/deng-inst-1.9.10-1.exe/download', NULL, false);
     $pack->setReleaseNotesUri('http://dengine.net/dew/index.php?title=Doomsday_version_1.9.10-1');
     $pack->setReleaseDate(strtotime('January 6, 2013'));
     $packages[] = $pack;
     $pack = PackageFactory::newDistribution(PID_MAC10_4_X86_PPC, 'Doomsday', Version::fromString('1.9.10'), 'http://sourceforge.net/projects/deng/files/Doomsday%20Engine/1.9.10/deng-inst-1.9.10-1.dmg/download', NULL, false);
     $pack->setReleaseNotesUri('http://dengine.net/dew/index.php?title=Doomsday_version_1.9.10-1');
     $pack->setReleaseDate(strtotime('January 6, 2013'));
     $packages[] = $pack;
     $pack = PackageFactory::newDistribution(PID_MAC10_6_X86_X86_64, 'Doomsday', Version::fromString('1.9.10'), 'http://sourceforge.net/projects/deng/files/Doomsday%20Engine/1.9.10/deng-inst-1.9.10-1_64bit.dmg/download', NULL, false);
     $pack->setReleaseNotesUri('http://dengine.net/dew/index.php?title=Doomsday_version_1.9.10-1');
     $pack->setReleaseDate(strtotime('January 6, 2013'));
     $packages[] = $pack;
     $pack = PackageFactory::newDistribution(PID_LINUX_X86, 'Doomsday', Version::fromString('1.9.10'), 'http://sourceforge.net/projects/deng/files/Doomsday%20Engine/1.9.10/deng-inst-1.9.10-1_i386.deb/download', NULL, false);
     $pack->setReleaseNotesUri('http://dengine.net/dew/index.php?title=Doomsday_version_1.9.10-1');
     $pack->setReleaseDate(strtotime('January 6, 2013'));
     $packages[] = $pack;
     $pack = PackageFactory::newDistribution(PID_LINUX_X86_64, 'Doomsday', Version::fromString('1.9.10'), 'http://sourceforge.net/projects/deng/files/Doomsday%20Engine/1.9.10/deng-inst-1.9.10-1_amd64.deb/download', NULL, false);
     $pack->setReleaseNotesUri('http://dengine.net/dew/index.php?title=Doomsday_version_1.9.10-1');
     $pack->setReleaseDate(strtotime('January 6, 2013'));
     $packages[] = $pack;
     $pack = PackageFactory::newDistribution(PID_WIN_X86, 'Doomsday', Version::fromString('1.8.6'), 'http://sourceforge.net/projects/deng/files/Doomsday%20Engine/1.8.6/deng-inst-1.8.6.exe/download', NULL, false);
     $pack->setReleaseNotesUri('http://dengine.net/dew/index.php?title=Doomsday_version_1.8.6');
     $packages[] = $pack;
     return TRUE;
 }
 /**
  * Parse a new Package object from a SimpleXMLElement.
  *
  * @param $log_pack  (Object) SimpleXMLElement node to be "parsed".
  * @return  (Object) Resultant Package object.
  */
 public static function newFromSimpleXMLElement(&$log_pack, $releaseType = 'unstable')
 {
     if (!$log_pack instanceof SimpleXMLElement) {
         throw new Exception('Received invalid log_pack');
     }
     $platformId = BuildRepositoryPlugin::parsePlatformId(clean_text($log_pack->platform));
     $cleanDirectDownloadUri = safe_url($log_pack->downloadUri);
     if (!empty($log_pack->downloadFallbackUri)) {
         $cleanDirectDownloadFallbackUri = safe_url($log_pack->downloadFallbackUri);
     } else {
         $cleanDirectDownloadFallbackUri = NULL;
     }
     if (!empty($log_pack->name)) {
         $name = clean_text($log_pack->name);
     } else {
         // We must resort to extracting the name from download Uri.
         $filename = basename(substr($cleanDirectDownloadUri, 0, -9));
         $filename = preg_replace(array('/-/', '/_/'), ' ', $filename);
         $words = explode(' ', substr($filename, 0, strrpos($filename, '.')));
         $name = ucwords(implode(' ', $words));
     }
     if (!empty($log_pack->version)) {
         $versionText = clean_text($log_pack->version);
         $version = Version::fromString($versionText);
     } else {
         $version = NULL;
     }
     // Determine package type.
     foreach ($log_pack->attributes() as $attrib => $value) {
         if ($attrib === 'type') {
             $type = $value;
         }
         break;
     }
     if (!isset($type)) {
         $type = 'distribution';
     }
     switch ($type) {
         case 'plugin':
             if ($releaseType === RT_STABLE) {
                 $pack = new PluginBuilderPackage($platformId, $name, $version, $cleanDirectDownloadUri, $cleanDirectDownloadFallbackUri);
             } else {
                 $pack = new PluginUnstableBuilderPackage($platformId, $name, $version, $cleanDirectDownloadUri, $cleanDirectDownloadFallbackUri);
             }
             break;
         default:
             if ($releaseType === RT_STABLE) {
                 $pack = new DistributionBuilderPackage($platformId, $name, $version, $cleanDirectDownloadUri, $cleanDirectDownloadFallbackUri);
             } else {
                 $pack = new DistributionUnstableBuilderPackage($platformId, $name, $version, $cleanDirectDownloadUri, $cleanDirectDownloadFallbackUri);
             }
             break;
     }
     if (!empty($log_pack->compileLogUri)) {
         $pack->setCompileLogUri(safe_url($log_pack->compileLogUri));
     }
     if (!empty($log_pack->compileWarnCount)) {
         $pack->setCompileWarnCount((int) $log_pack->compileWarnCount);
     }
     if (!empty($log_pack->compileErrorCount)) {
         $pack->setCompileErrorCount((int) $log_pack->compileErrorCount);
     }
     return $pack;
 }