From deae95af3f96a957cf31aaf567aa40cc111bee89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Fri, 22 Feb 2019 14:58:58 +0100 Subject: [PATCH] add support for version epoch (#30840) --- eobuilder-ctl | 9 ++++++--- eobuilder/changelog.py | 5 ++++- eobuilder/cmdline.py | 5 +++++ 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/eobuilder-ctl b/eobuilder-ctl index 8dcb0bd..166d233 100755 --- a/eobuilder-ctl +++ b/eobuilder-ctl @@ -232,7 +232,8 @@ def prepare_build(dist, project, cmd_options, new): settings.DEBIAN_VERSIONS[dist]) call("git checkout --quiet %s" % build_branch) changelog = '\n'.join(changelog_from_git(package['source_name'], - version_suffix, project['git_path'], package['repository'])) + version_suffix, project['git_path'], package['repository'], + epoch=cmd_options.epoch)) if changelog: if not os.path.isdir(debian_folder): call("git checkout --quiet %s" % debian_branch) @@ -252,7 +253,7 @@ def prepare_build(dist, project, cmd_options, new): shutil.rmtree(project['build_dir']) os.makedirs(project['build_dir'], 0755) - if package['version'].split('-')[0] == project['version']: + if package['version'].split('-')[0].split(':')[-1] == project['version']: # the generated changelog has the right version number, use it. good_changelog_contents = changelog else: @@ -261,7 +262,9 @@ def prepare_build(dist, project, cmd_options, new): package['version'] = '%s%s' % (project['version'], version_suffix) call('dch "Eobuilder version" -v %s --distribution %s \ --force-bad-version --force-distribution --changelog %s' % \ - (package['version'], package["repository"], debian_changelog)) + ('%s:%s' % (cmd_options.epoch, package['version']) if cmd_options.epoch else package['version'], + package["repository"], + debian_changelog)) good_changelog_contents = open(debian_changelog).read() build_file = os.path.join(project['lock_path'], diff --git a/eobuilder/changelog.py b/eobuilder/changelog.py index 3d983d7..2b1eb0f 100644 --- a/eobuilder/changelog.py +++ b/eobuilder/changelog.py @@ -35,7 +35,8 @@ def is_pep0440_project(path): def changelog_from_git(project, version_suffix, path, repository='eobuilder', maintainer_name='eobuilder', - maintainer_email='eobuilder@entrouvert.com'): + maintainer_email='eobuilder@entrouvert.com', + epoch=''): repo = git.repo.Repo(path) is_pep0440 = is_pep0440_project(path) @@ -73,6 +74,8 @@ def changelog_from_git(project, version_suffix, path, version = version.replace('.g', '+g') if i == 0: version += version_suffix + if epoch: + version = '%s:%s' % (epoch, version) yield '%s (%s) %s; urgency=low' % (project, str(version), repository) yield '' for l in logs: diff --git a/eobuilder/cmdline.py b/eobuilder/cmdline.py index 970bcd7..34a26ad 100644 --- a/eobuilder/cmdline.py +++ b/eobuilder/cmdline.py @@ -49,6 +49,11 @@ def parse_cmdline(): dest="branch", metavar='NAME', default="master", help="branch to build (Default: master)") + parser.add_option("--epoch", + action="store", type="string", + dest="epoch", metavar='EPOCH', + default="", + help="version number epoch (default: none)") parser.add_option("-D", "--debian-folder", action="store", type="string", dest="debian_folder", metavar='NAME',