/var/lib/packages altında bir programın, birden fazla sürümü olduğu rootfs zamanından

kalma kodu kaldır.

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.
This commit is contained in:
Faik Uygur
2006-04-16 21:33:40 +00:00
parent b96b23012e
commit 38c18f03f2
+8 -50
View File
@@ -449,39 +449,8 @@ def build(package, authinfo=None):
import pisi.build import pisi.build
return pisi.build.build(package, authinfo) 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): def virtual_install(metadata, files, txn):
"""Recreate the package info for rebuilddb command""" """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 # installdb
ctx.installdb.install(metadata.package.name, ctx.installdb.install(metadata.package.name,
metadata.package.version, metadata.package.version,
@@ -496,7 +465,7 @@ def virtual_install(metadata, files, txn):
ctx.filesdb.add_files(metadata.package.name, files, txn=txn) ctx.filesdb.add_files(metadata.package.name, files, txn=txn)
# installed packages # 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): def resurrect_package(package_fn, write_files, txn = None):
"""Resurrect the package from xml files""" """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', metadata_xml = util.join_path(ctx.config.lib_dir(), 'package',
package_fn, ctx.const.metadata_xml) package_fn, ctx.const.metadata_xml)
if not exists(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 = MetaData()
metadata.read(metadata_xml) metadata.read(metadata_xml)
errs = metadata.errors() errs = metadata.errors()
if errs: if errs:
util.Checks.print_errors(errs) util.Checks.print_errors(errs)
raise Error, _("MetaData format wrong (%s)") % package_fn raise Error, _("MetaData format wrong (%s)") % package_fn
# FIXME: there won't be any previous versions of the same package under /var/lib/pisi ctx.ui.info(_('* Adding \'%s\' to db... ') % (metadata.package.name), noln=True)
# 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)
if write_files: if write_files:
files_xml = util.join_path(ctx.config.lib_dir(), 'package', 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): 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 = Files()
files.read(files_xml) files.read(files_xml)
@@ -546,5 +505,4 @@ def resurrect_package(package_fn, write_files, txn = None):
pisi.atomicoperations.virtual_install(metadata, files, t) pisi.atomicoperations.virtual_install(metadata, files, t)
ctx.txn_proc(f, txn) ctx.txn_proc(f, txn)
if not passed: ctx.ui.info(_('OK.'))
ctx.ui.info(_('OK.'))