backend/server/importlib/headerSource.py | 4 -
backend/spacewalk/common/rhn_rpm.py | 89 +++++++++++++++++++++++++++++--
client/tools/rhnpush/rpm2mpm.py | 2
3 files changed, 89 insertions(+), 6 deletions(-)
New commits:
commit 0e857493a57f1db0457dceecf339a94c62b16618
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Mon Feb 28 13:23:06 2011 +0100
Revert "RPMReadOnlyTransaction() is dead after get_package_header() change"
This reverts commit 961035ad79a1d27d7e57b70bff762d60589f57cb.
diff --git a/backend/spacewalk/common/rhn_rpm.py b/backend/spacewalk/common/rhn_rpm.py
index 766cf61..86d89c7 100644
--- a/backend/spacewalk/common/rhn_rpm.py
+++ b/backend/spacewalk/common/rhn_rpm.py
@@ -113,6 +113,15 @@ class SharedStateTransaction:
def __init__(self):
self.__dict__ = self._shared_state
+class RPMReadOnlyTransaction(SharedStateTransaction, RPMTransaction):
+ read_only = 1
+ def __init__(self):
+ SharedStateTransaction.__init__(self)
+ if not hasattr(self, 'ts'):
+ RPMTransaction.__init__(self)
+ # FIXME: replace with macro defination
+ self.pushVSFlags(8)
+
class RPM_Header:
"Wrapper class for an rpm header - we need to store a flag is_source"
def __init__(self, hdr, is_source=None):
commit b8b418b60eed322ffa2e076ecdb4cf76aec53cc8
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Mon Feb 28 13:22:59 2011 +0100
Revert "SharedStateTransaction is dead after RPMReadOnlyTransaction
removal"
This reverts commit 4c8961d665d9317eee3ffbbb4303e944df81c165.
diff --git a/backend/spacewalk/common/rhn_rpm.py b/backend/spacewalk/common/rhn_rpm.py
index 7f4f278..766cf61 100644
--- a/backend/spacewalk/common/rhn_rpm.py
+++ b/backend/spacewalk/common/rhn_rpm.py
@@ -107,6 +107,12 @@ class RPMTransaction:
+class SharedStateTransaction:
+ _shared_state = {}
+
+ def __init__(self):
+ self.__dict__ = self._shared_state
+
class RPM_Header:
"Wrapper class for an rpm header - we need to store a flag is_source"
def __init__(self, hdr, is_source=None):
commit 3bb32e8540393a7fd5cb088cea7499bae4f71106
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Mon Feb 28 13:22:52 2011 +0100
Revert "RPMTransaction is dead after RPMReadOnlyTransaction removal"
This reverts commit 8c3b360efb9fcbc8f2d4a91feff0ae954cef330a.
diff --git a/backend/spacewalk/common/rhn_rpm.py b/backend/spacewalk/common/rhn_rpm.py
index 3c3a9ed..7f4f278 100644
--- a/backend/spacewalk/common/rhn_rpm.py
+++ b/backend/spacewalk/common/rhn_rpm.py
@@ -55,6 +55,58 @@ PGPHASHALGO = {
class InvalidPackageError(Exception):
pass
+class RPMTransaction:
+ """ wrapper/proxy class for rpm.Transaction so we can instrument it,
etc easily """
+ read_only = 0
+ def __init__(self):
+ self.ts = rpm.TransactionSet()
+ self.tsflags = []
+
+ def getMethod(self, method):
+ # in theory, we can override this with
+ # profile/etc info
+ return getattr(self.ts, method)
+
+ def pushVSFlags(self, flags):
+ """ push method, so we don't lose the previous set value, and
we can potentially debug a bit easier """
+ self.tsflags.append(flags)
+ self.ts.setVSFlags(self.tsflags[-1])
+
+ def popVSFlags(self):
+ """ pop method, so we don't lose the previous set value, and
we can potentially debug a bit easier """
+ del self.tsflags[-1]
+ self.ts.setVSFlags(self.tsflags[-1])
+
+ def addInstall(self, arg1, arg2, mode):
+ """Install a package"""
+ hdr = arg1.hdr
+ return self.ts.addInstall(hdr, arg2, mode)
+
+ def addErase(self, arg1):
+ """Erase a package"""
+ hdr = arg1.hdr
+ return self.ts.addErase(hdr)
+
+ def check(self):
+ """Check dependencies"""
+ return self.ts.check()
+
+ def setFlags(self, flag):
+ """Set transaction flags"""
+ return self.ts.setFlags(flag)
+
+ def setProbFilter(self, flag):
+ """Set problem flags"""
+ return self.ts.setProbFilter(flag)
+
+ def run(self, callback, user_data):
+ return self.ts.run(callback, user_data)
+
+ def hdrFromFdno(self, fd):
+ return self.ts.hdrFromFdno(fd)
+
+
+
class RPM_Header:
"Wrapper class for an rpm header - we need to store a flag is_source"
def __init__(self, hdr, is_source=None):
commit 37374340a97156be8b109c20a6782774fed1c7e0
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Mon Feb 28 13:21:31 2011 +0100
Revert "removing obsoleted code"
This reverts commit f32d1af0ad802f3e4f3f9ed6a519d7580702ae8d.
diff --git a/backend/spacewalk/common/rhn_rpm.py b/backend/spacewalk/common/rhn_rpm.py
index 7940a79..3c3a9ed 100644
--- a/backend/spacewalk/common/rhn_rpm.py
+++ b/backend/spacewalk/common/rhn_rpm.py
@@ -195,9 +195,25 @@ def get_package_header(filename=None, file=None, fd=None):
else:
file_desc = f.fileno()
- header_start, header_end = get_header_byte_range(os.fdopen(os.dup(file_desc)))
- os.lseek(file_desc, header_start, 0)
- hdr, offset = rpm.readHeaderFromFD(file_desc)
+# FIXME:
+ if None:
+ pass
+# - readHeaderFromFD() doesn't set hdr['archivesize'] which makes
payload_size = 0
+# for all imported packages
+# - this code was introduced as a fix of bz 487621; if it re-appears then uncomment
+# and try to fix missing hdr['archivesize'] another way
+# #if hasattr(rpm, 'readHeaderFromFD'):
+#
+# header_start, header_end = \
+# get_header_byte_range(os.fdopen(os.dup(file_desc)))
+# os.lseek(file_desc, header_start, 0)
+# hdr, offset = rpm.readHeaderFromFD(file_desc)
+ else:
+ # RHEL-4 and older, do the old way
+ ts = RPMReadOnlyTransaction()
+ ts.pushVSFlags(~(rpm.RPMVSF_NOMD5 | rpm.RPMVSF_NEEDPAYLOAD))
+ hdr = ts.hdrFromFdno(file_desc)
+ ts.popVSFlags()
if hdr is None:
raise InvalidPackageError
is_source = hdr[rpm.RPMTAG_SOURCEPACKAGE]
commit 9edb70f8ae56457c02745cc5bebfc6402277fa16
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Mon Feb 28 13:21:23 2011 +0100
Revert "use size instead of archivesize"
This reverts commit c34ece4eca1f0480b41a5e6198c3870d1b836981.
diff --git a/backend/server/importlib/headerSource.py
b/backend/server/importlib/headerSource.py
index e763914..552e121 100644
--- a/backend/server/importlib/headerSource.py
+++ b/backend/server/importlib/headerSource.py
@@ -120,7 +120,7 @@ class rpmBinaryPackage(Package, rpmPackage):
tagMap.update({
'package_group' : 'group',
'rpm_version' : 'rpmversion',
- 'payload_size' : 'size',
+ 'payload_size' : 'archivesize',
'payload_format': 'payloadformat',
'build_host' : 'buildhost',
'build_time' : 'buildtime',
@@ -248,7 +248,7 @@ class rpmSourcePackage(SourcePackage, rpmPackage):
tagMap.update({
'package_group' : 'group',
'rpm_version' : 'rpmversion',
- 'payload_size' : 'size',
+ 'payload_size' : 'archivesize',
'build_host' : 'buildhost',
'build_time' : 'buildtime',
'source_rpm' : 'sourcerpm',
diff --git a/client/tools/rhnpush/rpm2mpm.py b/client/tools/rhnpush/rpm2mpm.py
index 16eb601..1c80b78 100644
--- a/client/tools/rhnpush/rpm2mpm.py
+++ b/client/tools/rhnpush/rpm2mpm.py
@@ -47,7 +47,7 @@ def rpm_to_mpm(header, file_stream):
tag_map = {
'package_group' : 'group',
'rpm_version' : 'rpmversion',
- 'payload_size' : 'size',
+ 'payload_size' : 'archivesize',
'payload_format': 'payloadformat',
'build_host' : 'buildhost',
'build_time' : 'buildtime',