X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=includes%2Fpackages.inc;h=c9387233e8b354618bc20e6961805ed339314994;hb=0fd1eb74bd51889ce48a6ab5369e66a86cbe7da2;hp=247c25da036e317cafed4dbdd5293cbff48228a3;hpb=5c63beb6cca17eb9fd9c63c89fa8b814ae5c8dcf;p=fa-stable.git diff --git a/includes/packages.inc b/includes/packages.inc index 247c25da..c9387233 100644 --- a/includes/packages.inc +++ b/includes/packages.inc @@ -10,6 +10,7 @@ See the License here . ***********************************************************************/ include_once($path_to_root. "/includes/archive.inc"); +include_once($path_to_root. "/includes/remote_url.inc"); define('PKG_CACHE_PATH', $path_to_root.'/modules/_cache'); define('PUBKEY_PATH', $path_to_root); @@ -290,10 +291,10 @@ function get_pkg_or_list($type = null, $pkgname = null, $filter=array(), $outkey $refresh = true; do{ if (!file_exists($loclist)) { - copy(REPO_URL.'/Release.gz', $loclist); + url_copy(REPO_URL.'/Release.gz', $loclist); $refresh = false; } - $sig = file_get_contents(REPO_URL.'/Release.sig', 'rb'); + $sig = url_get_contents(REPO_URL.'/Release.sig'); $data = file_get_contents($loclist); $cert = file_get_contents(PUBKEY_PATH.'/FA.pem'); if (!openssl_verify($data, $sig, $cert)) { @@ -323,7 +324,7 @@ function get_pkg_or_list($type = null, $pkgname = null, $filter=array(), $outkey $refresh = true; do{ if (!file_exists($locindex)) { - copy($remoteindex, $locindex); + url_copy($remoteindex, $locindex); $refresh = false; } if ($parms['SHA1sum'] != sha1_file($locindex)) { // check subdir index consistency @@ -359,7 +360,7 @@ function get_pkg_or_list($type = null, $pkgname = null, $filter=array(), $outkey //download package to temp directory if ($download) { $locname = "$path_to_root/tmp/".$pkg['Filename'].'.pkg'; - copy($pkgfullname, $locname); + url_copy($pkgfullname, $locname); // checking sha1 hash is expensive proces, so chekc the package // consistency just before downloading if ($pkg['SHA1sum'] != sha1_file($locname)) { @@ -605,7 +606,7 @@ function install_language($pkg_name) // function install_extension($pkg_name) { - global $path_to_root, $next_extension_id, $Ajax; + global $path_to_root, $installed_extensions, $next_extension_id, $Ajax; $pkg = get_pkg_or_list(array('extension', 'theme', 'chart'), $pkg_name); if ($pkg) { @@ -615,6 +616,11 @@ function install_extension($pkg_name) $ext_id = array_search_key($pkg['Package'], $local_exts, 'package'); if ($ext_id === null) $ext_id = $next_extension_id++; + else { // remove another already installed package for this language + $old_pkg = $installed_extensions[$ext_id]['package']; + if ($old_pkg) + uninstall_package($old_pkg); + } $ext = array( 'name' => $pkg['Name'], 'package' => $pkg['Package'],