From 38c18f03f274720f0b08515a47525df5870e3b2a Mon Sep 17 00:00:00 2001 From: Faik Uygur Date: Sun, 16 Apr 2006 21:33:40 +0000 Subject: [PATCH] =?UTF-8?q?/var/lib/packages=20alt=C4=B1nda=20bir=20progra?= =?UTF-8?q?m=C4=B1n,=20birden=20fazla=20s=C3=BCr=C3=BCm=C3=BC=20oldu=C4=9F?= =?UTF-8?q?u=20rootfs=20zaman=C4=B1ndan=20kalma=20kodu=20kald=C4=B1r.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Her bulduğu klasördeki program db'ye ekleniyor. Eğer bir klasördeki programın daha önce gezilen klasörlerde, alt sürümü eklenmiş idiyse, bunu çıkar şu anki üst sürümünü ekle gibi saçma bir yol izleniyordu. 1.0'dan beri zaten programın farklı versiyonları burada bulunmuyor. Eğer bir yerde hata varsa da bu üstünü örtmek oluyor. --- pisi/atomicoperations.py | 64 +++++++--------------------------------- 1 file changed, 11 insertions(+), 53 deletions(-) diff --git a/pisi/atomicoperations.py b/pisi/atomicoperations.py index 9d349b3e..9c3463df 100644 --- a/pisi/atomicoperations.py +++ b/pisi/atomicoperations.py @@ -449,39 +449,8 @@ def build(package, authinfo=None): import pisi.build return pisi.build.build(package, authinfo) -def __is_virtual_upgrade(metadata): - - pkg = metadata.package - - (iversion, irelease, ibuild) = ctx.installdb.get_version(pkg.name) - - upgrade = False - if pkg.version > iversion: - upgrade = True - elif pkg.release > irelease: - upgrade = True - elif (ibuild and pkg.build and pkg.build > ibuild): - upgrade = True - - return upgrade - def virtual_install(metadata, files, txn): """Recreate the package info for rebuilddb command""" - pkg = metadata.package - - # normally this can't be true. Just for backwards compatibility - # TODO: for speed only ctx.installdb.install exception can be - # handled but this is much cleaner - if ctx.installdb.is_installed(pkg.name, txn=txn): - if __is_virtual_upgrade(metadata): - ctx.installdb.remove(pkg.name, txn=txn) - ctx.packagedb.remove_package(pkg.name, txn=txn) - ctx.filesdb.remove_files(ctx.installdb.files(pkg.name), txn=txn) - else: - return - - pkginfo = metadata.package - # installdb ctx.installdb.install(metadata.package.name, metadata.package.version, @@ -496,7 +465,7 @@ def virtual_install(metadata, files, txn): ctx.filesdb.add_files(metadata.package.name, files, txn=txn) # installed packages - ctx.packagedb.add_package(pkginfo, pisi.itembyrepodb.installed, txn=txn) + ctx.packagedb.add_package(metadata.package, pisi.itembyrepodb.installed, txn=txn) def resurrect_package(package_fn, write_files, txn = None): """Resurrect the package from xml files""" @@ -506,33 +475,23 @@ def resurrect_package(package_fn, write_files, txn = None): metadata_xml = util.join_path(ctx.config.lib_dir(), 'package', package_fn, ctx.const.metadata_xml) if not exists(metadata_xml): - raise Error, _("Metadata XML '%s' cannot be found") % metadata_xml - + raise Error, _("Metadata XML '%s' cannot be found") % metadata_xml + metadata = MetaData() metadata.read(metadata_xml) - + errs = metadata.errors() if errs: - util.Checks.print_errors(errs) - raise Error, _("MetaData format wrong (%s)") % package_fn - - # FIXME: there won't be any previous versions of the same package under /var/lib/pisi - # therefore there won't be any need for this check and __is_virtual_upgrade function - # this is just for backward compatibility for sometime - - # yes, this is an ugly hack - passed = False - if ctx.installdb.is_installed(metadata.package.name): - passed = True - - if not passed: - ctx.ui.info(_('* Adding \'%s\' to db... ') % (metadata.package.name), noln=True) + util.Checks.print_errors(errs) + raise Error, _("MetaData format wrong (%s)") % package_fn + ctx.ui.info(_('* Adding \'%s\' to db... ') % (metadata.package.name), noln=True) + if write_files: files_xml = util.join_path(ctx.config.lib_dir(), 'package', - package_fn, ctx.const.files_xml) + package_fn, ctx.const.files_xml) if not exists(files_xml): - raise Error, _("Files XML '%s' cannot be found") % files_xml + raise Error, _("Files XML '%s' cannot be found") % files_xml files = Files() files.read(files_xml) @@ -546,5 +505,4 @@ def resurrect_package(package_fn, write_files, txn = None): pisi.atomicoperations.virtual_install(metadata, files, t) ctx.txn_proc(f, txn) - if not passed: - ctx.ui.info(_('OK.')) + ctx.ui.info(_('OK.'))