/var/lib/pisi altındaki paketlerden database oluşturulurken

paketlerden yüksek versiyonlu olanını kullan
This commit is contained in:
Faik Uygur
2005-10-30 00:34:19 +00:00
parent 8a7a7f0925
commit c4619986b6
+48 -14
View File
@@ -335,6 +335,53 @@ def delete_cache():
util.clean_dir(ctx.config.archives_dir())
util.clean_dir(ctx.config.tmp_dir())
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):
pkg = metadata.package
# normally this can't be true. Just for backward compatibility
# TODO: for speed only ctx.installdb.install exception can be
# handled but this is much cleaner
if ctx.installdb.is_installed(pkg.name):
if __is_virtual_upgrade(metadata):
ctx.installdb.remove(pkg.name)
packagedb.remove_package(pkg.name)
#FIXME: files ne oluyor?
else:
return
pkginfo = metadata.package
# installdb
ctx.installdb.install(metadata.package.name,
metadata.package.version,
metadata.package.release,
metadata.package.build,
metadata.package.distribution)
# filesdb
ctx.filesdb.add_files(metadata.package.name, files)
# installed packages
packagedb.inst_packagedb.add_package(pkginfo)
def resurrect_package(package_fn):
"""Resurrect the package in the PiSi databases"""
@@ -360,17 +407,4 @@ def resurrect_package(package_fn):
if files.has_errors():
raise Error, _("Invalid %s") % ctx.const.files_xml
pkginfo = metadata.package
# installdb
ctx.installdb.install(metadata.package.name,
metadata.package.version,
metadata.package.release,
metadata.package.build,
metadata.package.distribution)
# filesdb
ctx.filesdb.add_files(metadata.package.name, files)
# installed packages
packagedb.inst_packagedb.add_package(pkginfo)
__virtual_install(metadata, files)