[Rpm-metadata] Zero epoch vs no epoch (patch)
Panu Matilainen
pmatilai at laiskiainen.org
Sun Apr 30 11:13:32 UTC 2006
On Sat, 29 Apr 2006, Panu Matilainen wrote:
> On Sat, 29 Apr 2006, Panu Matilainen wrote:
>> Attached quick hack of a patch adds a switch to turn off adding those
>> artificial zero epochs, using this as necessary this should be enough to
>> allow using repodata with full rpm 3.0.x - 4.4.x range.
>
> Duh, and now with the actual patch...
And now with the correct patch, DOH. Too many variants of various patches
lying around I guess.
- Panu -
-------------- next part --------------
--- createrepo-0.4.4/genpkgmetadata.py.noepoch 2006-04-29 20:59:04.000000000 +0300
+++ createrepo-0.4.4/genpkgmetadata.py 2006-04-29 21:02:01.000000000 +0300
@@ -49,6 +49,7 @@
-o, --outputdir <dir> = optional directory to output to
-x, --exclude = files globs to exclude, can be specified multiple times
-q, --quiet = run quietly
+ -n, --noepoch = don't treat non-existent epochs as zero
-g, --groupfile <filename> to point to for group information (precreated)
(<filename> relative to directory-of-packages)
-v, --verbose = run verbosely
@@ -364,6 +365,7 @@
cmds['baseurl'] = None
cmds['groupfile'] = None
cmds['sumtype'] = 'sha'
+ cmds['noepoch'] = False
cmds['pretty'] = 0
# cmds['updategroupsonly'] = 0
cmds['cachedir'] = None
@@ -375,11 +377,11 @@
cmds['dir-pattern-match'] = ['.*bin\/.*', '^\/etc\/.*']
try:
- gopts, argsleft = getopt.getopt(args, 'phqVvg:s:x:u:c:U:o:', ['help', 'exclude=',
+ gopts, argsleft = getopt.getopt(args, 'phqVvng:s:x:u:c:U:o:', ['help', 'exclude=',
'quiet', 'verbose', 'cachedir=', 'basedir=',
'baseurl=', 'groupfile=', 'checksum=',
'version', 'pretty', 'split', 'outputdir=',
- 'update-info-location='])
+ 'update-info-location=', 'noepoch'])
except getopt.error, e:
errorprint(_('Options Error: %s.') % e)
usage()
@@ -443,6 +445,8 @@
cmds['basedir'] = a
elif arg in ['-o','--outputdir']:
cmds['outputdir'] = a
+ elif arg in ['-n', '--noepoch']:
+ cmds['noepoch'] = True
except ValueError, e:
errorprint(_('Options Error: %s') % e)
--- createrepo-0.4.4/dumpMetadata.py.noepoch 2006-04-29 20:53:45.000000000 +0300
+++ createrepo-0.4.4/dumpMetadata.py 2006-04-29 21:32:37.000000000 +0300
@@ -225,6 +225,10 @@
raise MDError, "Error Stat'ing file %s %s" % (basedir, filename)
self.options = options
self.localurl = options['baseurl']
+ if options['noepoch']:
+ self.noepoch = ""
+ else:
+ self.noepoch = 0
self.relativepath = filename
fd = returnFD(os.path.join(basedir, filename))
self.hdr = returnHdr(ts, fd)
@@ -323,7 +327,7 @@
if i != -1:
epoch = strng[:i]
else:
- epoch = '0'
+ epoch = self.noepoch
j = strng.find('-')
if j != -1:
if strng[i + 1:j] == '':
@@ -438,7 +442,7 @@
def epoch(self):
if self.hdr['epoch'] is None:
- return 0
+ return self.noepoch
else:
return self.tagByName('epoch')
@@ -592,7 +596,8 @@
pkgNode.newChild(None, 'name', rpmObj.tagByName('name'))
pkgNode.newChild(None, 'arch', rpmObj.arch())
version = pkgNode.newChild(None, 'version', None)
- version.newProp('epoch', str(rpmObj.epoch()))
+ if str(rpmObj.epoch()):
+ version.newProp('epoch', str(rpmObj.epoch()))
version.newProp('ver', str(rpmObj.tagByName('version')))
version.newProp('rel', str(rpmObj.tagByName('release')))
csum = pkgNode.newChild(None, 'checksum', rpmObj.pkgid)
@@ -643,7 +648,7 @@
if flags == 12: arg = 'GE'
entry.newProp('flags', arg)
# if we've got a flag we've got a version, I hope :)
- if e:
+ if str(e):
entry.newProp('epoch', str(e))
if v:
entry.newProp('ver', str(v))
@@ -664,7 +669,7 @@
if flags == 12: arg = 'GE'
entry.newProp('flags', arg)
# if we've got a flag we've got a version, I hope :)
- if e:
+ if str(e):
entry.newProp('epoch', str(e))
if v:
entry.newProp('ver', str(v))
@@ -696,7 +701,8 @@
pkg.newProp('name', rpmObj.tagByName('name'))
pkg.newProp('arch', rpmObj.arch())
version = pkg.newChild(None, 'version', None)
- version.newProp('epoch', str(rpmObj.epoch()))
+ if str(rpmObj.epoch()):
+ version.newProp('epoch', str(rpmObj.epoch()))
version.newProp('ver', str(rpmObj.tagByName('version')))
version.newProp('rel', str(rpmObj.tagByName('release')))
for file in rpmObj.filenames:
@@ -721,7 +727,8 @@
pkg.newProp('name', rpmObj.tagByName('name'))
pkg.newProp('arch', rpmObj.arch())
version = pkg.newChild(None, 'version', None)
- version.newProp('epoch', str(rpmObj.epoch()))
+ if str(rpmObj.epoch()):
+ version.newProp('epoch', str(rpmObj.epoch()))
version.newProp('ver', str(rpmObj.tagByName('version')))
version.newProp('rel', str(rpmObj.tagByName('release')))
clogs = rpmObj.changelogLists()
More information about the Rpm-metadata
mailing list