Files
sablink-distro/sys-apps/entropy/files/entropy-server-fix-revision-bumping.patch
T
2010-08-20 14:18:47 +02:00

85 lines
3.3 KiB
Diff

commit 3fcf104316ea3f00c441915786d1e841f8c5b7c1
Author: Fabio Erculiani <lxnay@sabayon.org>
Date: Fri Aug 20 14:14:36 2010 +0200
[entropy.server] fix revision bumping support
Packages were removed before the revision bumping logic code had
a chance to calculate the new package revision.
diff --git a/libraries/entropy/server/interfaces/db.py b/libraries/entropy/server/interfaces/db.py
index 7568490..c521f43 100644
--- a/libraries/entropy/server/interfaces/db.py
+++ b/libraries/entropy/server/interfaces/db.py
@@ -194,40 +194,24 @@ class ServerPackagesRepository(EntropyRepository):
Reimplemented from EntropyRepository.
"""
- # Remove entries in the same scope.
- manual_deps = set()
- removelist = self.getPackagesToRemove(
- pkg_data['name'], pkg_data['category'],
- pkg_data['slot'], pkg_data['injected']
- )
-
- for r_package_id in removelist:
- manual_deps |= self.retrieveManualDependencies(r_package_id)
- self.removePackage(r_package_id, do_cleanup = False,
- do_commit = False)
-
- # inject old manual dependencies back to package metadata
- for manual_dep in manual_deps:
- if manual_dep in pkg_data['dependencies']:
- continue
- pkg_data['dependencies'][manual_dep] = \
- etpConst['dependency_type_ids']['mdepend_id']
-
# build atom string, server side
pkgatom = entropy.tools.create_package_atom_string(
pkg_data['category'], pkg_data['name'], pkg_data['version'],
pkg_data['versiontag'])
- package_ids = self.getPackageIds(pkgatom)
current_rev = forcedRevision
- for package_id in package_ids:
+ manual_deps = set()
+ # Remove entries in the same scope.
+ for package_id in self.getPackageIds(pkgatom):
if forcedRevision == -1:
myrev = self.retrieveRevision(package_id)
if myrev > current_rev:
current_rev = myrev
+ #
+ manual_deps |= self.retrieveManualDependencies(package_id)
# injected packages wouldn't be removed by addPackage
self.removePackage(package_id, do_cleanup = False,
do_commit = False)
@@ -235,6 +219,24 @@ class ServerPackagesRepository(EntropyRepository):
if forcedRevision == -1:
current_rev += 1
+ # manual dependencies handling
+ removelist = self.getPackagesToRemove(
+ pkg_data['name'], pkg_data['category'],
+ pkg_data['slot'], pkg_data['injected']
+ )
+
+ for r_package_id in removelist:
+ manual_deps |= self.retrieveManualDependencies(r_package_id)
+ self.removePackage(r_package_id, do_cleanup = False,
+ do_commit = False)
+
+ # inject old manual dependencies back to package metadata
+ for manual_dep in manual_deps:
+ if manual_dep in pkg_data['dependencies']:
+ continue
+ pkg_data['dependencies'][manual_dep] = \
+ etpConst['dependency_type_ids']['mdepend_id']
+
# add the new one
return self.addPackage(pkg_data, revision = current_rev,
formatted_content = formattedContent)