linux/debian/bin/gencontrol.py

72 lines
2.4 KiB
Python
Executable File

#!/usr/bin/env python3
import sys
sys.path.append("debian/lib/python")
from debian_linux.debian import *
from debian_linux.gencontrol import PackagesList, Makefile, MakeFlags, Gencontrol
from debian_linux.utils import *
class gencontrol(Gencontrol):
makefile_targets = ('binary-arch', 'binary-indep', 'build-arch', 'build-indep')
def __init__(self, underlay = None):
self.templates = Templates(['debian/templates'])
self.process_changelog()
def __call__(self):
packages = PackagesList()
makefile = Makefile()
self.do_source(packages)
self.do_main(packages, makefile)
self.write_control(packages.values())
self.write_makefile(makefile)
def do_source(self, packages):
source = self.templates["control.source"]
packages['source'] = self.process_package(source[0], self.vars)
def do_main(self, packages, makefile):
vars = self.vars.copy()
makeflags = MakeFlags()
self.do_main_setup(vars, makeflags)
self.do_main_packages(packages)
self.do_main_makefile(makefile, makeflags)
def do_main_setup(self, vars, makeflags):
makeflags.update({
'VERSION': self.version.linux_version,
'VERSION_DEBIAN': self.version.complete,
'UPSTREAMVERSION': self.version.linux_upstream,
})
def do_main_makefile(self, makefile, makeflags):
for i in self.makefile_targets:
makefile.add(i, cmds = ["$(MAKE) -f debian/rules.real %s %s" % (i, makeflags)])
def do_main_packages(self, packages):
main = self.templates["control.main"]
packages.extend(self.process_packages(main, self.vars))
def substitute_file(template, target):
with codecs.open(target, 'w', 'utf-8') as f:
f.write(self.substitute(self.templates[template], self.vars))
substitute_file('lintian-overrides.perf',
'debian/linux-perf-%s.lintian-overrides' %
self.vars['version'])
def process_changelog(self):
changelog = Changelog(version = VersionLinux)
self.version = version = changelog[0].version
self.vars = {
'upstreamversion': version.linux_upstream,
'version': version.linux_version,
'source_upstream': version.upstream,
}
if __name__ == '__main__':
gencontrol()()