From 80cd9366b8ef2651360df2ac6355019710e700a3 Mon Sep 17 00:00:00 2001 From: Fabio Erculiani Date: Sat, 26 Feb 2011 00:51:14 +0100 Subject: [PATCH] [entropy.client] web-install package files are bzip2 compressed, add complete support --- libraries/entropy/client/interfaces/methods.py | 13 +++++++++++-- libraries/entropy/const.py | 1 + 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/libraries/entropy/client/interfaces/methods.py b/libraries/entropy/client/interfaces/methods.py index b31646e3a..6446d0648 100644 --- a/libraries/entropy/client/interfaces/methods.py +++ b/libraries/entropy/client/interfaces/methods.py @@ -618,6 +618,16 @@ class RepositoryMixin: repodata['pkgpath'] = os.path.realpath(pkg_file) # extra info added repodata['smartpackage'] = False # extra info added repodata['webinstall_package'] = False + if pkg_file.endswith(etpConst['packagesext_webinstall']): + repodata['webinstall_package'] = True + # unbzip2 + tmp_fd, tmp_path = tempfile.mkstemp(dir = db_dir) + try: + entropy.tools.uncompress_file(dbfile, tmp_path, bz2.BZ2File) + finally: + os.close(tmp_fd) + os.rename(tmp_path, dbfile) + repo = self.open_generic_repository(dbfile) # read all idpackages @@ -631,8 +641,7 @@ class RepositoryMixin: product = self._settings['repositories']['product'] repodata['packages'] = [] repodata['plain_packages'] = [] - if pkg_file.endswith(etpConst['packagesext_webinstall']): - repodata['webinstall_package'] = True + if repodata['webinstall_package']: try: plain_packages = repo.getSetting("plain_packages") except KeyError: diff --git a/libraries/entropy/const.py b/libraries/entropy/const.py index 4db38e076..5ea2b8fe3 100644 --- a/libraries/entropy/const.py +++ b/libraries/entropy/const.py @@ -423,6 +423,7 @@ def const_default_settings(rootdir): 'userpackagesetsid': "__user__", 'cachedumpext': ".dmp", 'packagesext': ".tbz2", + 'packagesext_webinstall': ".etp", # entropy package files binary delta extension 'packagesdeltaext': ".edelta", # entropy package files binary delta subdir