-#!/usr/bin/python
+#!/usr/bin/python3
import sys
import os.path
from optparse import OptionParser
-def main ():
- usage="%prog [rpmbuild-options] specfile pkg-name"
- parser=OptionParser(usage=usage)
- parser.add_option('-t','--target',action='store',dest='target',default=None,
- help='specify target arch')
- parser.add_option('-w','--whitelist-rpms',action='store',dest='whitelist',default='',
- help='comma separated list of rpms to expose in makefile')
- parser.add_option('-1','--with',action='store',dest='with',default='',
- help='accept but ignore --with option')
- parser.add_option('-0','--without',action='store',dest='without',default='',
- help='accept but ignore --without option')
- parser.add_option('-d','--define',action='store',dest='define',default='',
- help='accept but ignore --define option')
- (options,args) = parser.parse_args()
+
+def main():
+ usage = "%prog [rpmbuild-options] specfile pkg-name"
+ parser = OptionParser(usage=usage)
+ parser.add_option(
+ '-t', '--target', action='store', dest='target', default=None,
+ help='specify target arch')
+ parser.add_option(
+ '-w', '--whitelist-rpms', action='store', dest='whitelist', default='',
+ help='comma separated list of rpms to expose in makefile')
+ parser.add_option(
+ '-1', '--with', action='store', dest='with', default='',
+ help='accept but ignore --with option')
+ parser.add_option(
+ '-0', '--without', action='store', dest='without', default='',
+ help='accept but ignore --without option')
+ parser.add_option(
+ '-d', '--define', action='store', dest='define', default='',
+ help='accept but ignore --define option')
+ (options, args) = parser.parse_args()
try:
- [specfile,package_name]=args
+ specfile, package_name = args
except:
parser.print_help()
sys.exit(1)
- ts=rpm.TransactionSet()
- specobj = ts.parseSpec(specfile)
- for (fullsource,_,__) in specobj.sources:
- #print '###fullsource=',fullsource
- print "%s.tarballs += SOURCES/%s" %(package_name,os.path.basename(fullsource))
- for suffix in [".tar.gz", ".tgz", ".tar.bz2", ".tar.xz" ] :
- #print "# trying %s"%suffix
+ transaction_set = rpm.TransactionSet()
+ specobj = transaction_set.parseSpec(specfile)
+ for (fullsource, _, _) in specobj.sources:
+ # print '###fullsource=',fullsource
+ print("%s.tarballs += SOURCES/%s" %
+ (package_name, os.path.basename(fullsource)))
+ for suffix in [".tar.gz", ".tgz", ".tar.bz2", ".tar.xz"]:
+ # print "# trying %s"%suffix
if fullsource.endswith(suffix):
- sourcename=fullsource.replace(suffix,"")
- print "%s.source := SOURCES/%s" %(package_name,os.path.basename(sourcename))
+ sourcename = fullsource.replace(suffix, "")
+ print("%s.source := SOURCES/%s" %
+ (package_name, os.path.basename(sourcename)))
break
# Get SRPM name from name of first package
- package=specobj.packages[0]
- header0=package.header
- name=header0.format('%{name}')
- version=header0.format('%{version}')
- release=header0.format('%{release}')
- print "%s.srpm := SRPMS/%s-%s-%s.src.rpm"%(package_name, name, version, release)
+ package = specobj.packages[0]
+ header0 = package.header
+ name = header0.format('%{name}')
+ version = header0.format('%{version}')
+ release = header0.format('%{release}')
+ print("%s.srpm := SRPMS/%s-%s-%s.src.rpm" %
+ (package_name, name, version, release))
target = options.target
- whitelist=[ x for x in options.whitelist.split(',') if x]
+ whitelist = [x for x in options.whitelist.split(',') if x]
# Print non-empty packages
- counter=0
+ counter = 0
for package in specobj.packages:
counter += 1
- header=package.header
- name=header.format('%{name}')
- version=header.format('%{version}')
- release=header.format('%{release}')
- arch=target or header.format('%{arch}')
-
+ header = package.header
+ name = header.format('%{name}')
+ version = header.format('%{version}')
+ release = header.format('%{release}')
+ arch = target or header.format('%{arch}')
+
# skip dummy entries
- if not (name and version and release and arch) : continue
+ if not (name and version and release and arch):
+ continue
# select relevant packages
# could not find the magic recipe to do this properly yet
# so ugly temporary hack :
# when whitelisted, we expose the first package plus the white-listed ones
# otherwise we expose everything
- relevant=False
- if not whitelist: relevant=True
+ relevant = False
+ if not whitelist:
+ relevant = True
else:
- if counter==1: relevant=True
- else: relevant=name in whitelist
+ if counter == 1:
+ relevant = True
+ else:
+ relevant = name in whitelist
if relevant:
# attach (add) rpm path to package
- print "%s.rpms += RPMS/%s/%s-%s-%s.%s.rpm"%\
- (package_name, arch, name, version, release, arch)
+ print("%s.rpms += RPMS/%s/%s-%s-%s.%s.rpm" %
+ (package_name, arch, name, version, release, arch))
# convenience
- print "%s.rpmnames += %s"%\
- (package_name, name);
+ print("%s.rpmnames += %s" %
+ (package_name, name))
# attach path to rpm name
- print "%s.rpm-path := RPMS/%s/%s-%s-%s.%s.rpm"%\
- (name,arch, name, version, release, arch)
+ print("%s.rpm-path := RPMS/%s/%s-%s-%s.%s.rpm" %
+ (name, arch, name, version, release, arch))
# attach package to rpm name for backward resolution - should be unique
- print "%s.package := %s"%\
- (name,package_name)
-
- for macro in ["release" , "name" , "version" , "taglevel" , ] :
- format="%%{%s}"%macro
- try: print "%s.rpm-%s := %s"%(package_name,macro,header0.format(format))
- except : print "# %s.rpm-%s undefined"%(package_name,macro)
+ print("%s.package := %s" %
+ (name, package_name))
+
+ for macro in ["release", "name", "version", "taglevel", ]:
+ format = "%%{%s}" % macro
+ try:
+ print("%s.rpm-%s := %s" %
+ (package_name, macro, header0.format(format)))
+ except:
+ print("# %s.rpm-%s undefined" % (package_name, macro))
# export arch
- print "%s.rpm-arch := %s"%(package_name,target)
+ print("%s.rpm-arch := %s" % (package_name, target))
+
if __name__ == '__main__':
main()