aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Austein <sra@hactrn.net>2016-07-28 12:53:46 -0400
committerRob Austein <sra@hactrn.net>2016-07-28 12:53:46 -0400
commite10fe610caf2ea0d6efe444c1f3aa0bdfc690778 (patch)
treeaa503f835eb5be0605402bab806af3366275fbb5
parentb3843228df1d7c9bb9f719158f92256c121a049c (diff)
First cut at building in a git environment instead of subversion.
-rw-r--r--rpki-pbuilder.py29
1 files changed, 18 insertions, 11 deletions
diff --git a/rpki-pbuilder.py b/rpki-pbuilder.py
index da8b707..93d9f72 100644
--- a/rpki-pbuilder.py
+++ b/rpki-pbuilder.py
@@ -47,7 +47,7 @@ parser.add_argument("--lockfile", default = os.path.expanduser("~/builder.lock")
help = "avoid collisions between multiple instances of this script")
parser.add_argument("--keyring", default = os.path.expanduser("~/.gnupg/pubring.gpg"),
help = "PGP keyring")
-parser.add_argument("--svn-tree", default = os.path.expanduser("~/source/trunk/"),
+parser.add_argument("--git-tree", default = os.path.expanduser("~/source/master/"),
help = "subversion tree")
parser.add_argument("--apt-tree", default = os.path.expanduser("~/repository/"),
help = "reprepro repository")
@@ -102,19 +102,27 @@ try:
except (IOError, OSError), e:
sys.exit(0 if e.errno == errno.EAGAIN else "Error {!r} opening lock {!r}".format(e, args.lockfile))
-run("svn", "--quiet", "update", cwd = args.svn_tree)
+run("git", "fetch", "--all", "--prune", cwd = args.git_tree)
+run("git", "pull", cwd = args.git_tree)
-source_version = subprocess.check_output(("svnversion", "-c"), cwd = args.svn_tree).strip().split(":")[-1]
+source_version = subprocess.check_output((sys.executable, os.path.join(args.git_tree, "buildtools/make-version.py"),
+ "--build-tag", "--stdout"), cwd = args.git_tree).strip()
+
+assert source_version.startswith("buildbot-")
+
+source_version = source_version[len("buildbot-"):].replace("-", ".")
logging.info("Source version is %s", source_version)
-if not source_version.isdigit() and not args.debug:
- sys.exit("Sources don't look pristine, not building ({!r})".format(source_version))
+if not args.debug:
+ try:
+ run("git", "diff-index", "--quiet", "HEAD", cwd = args.git_tree)
+ except subprocess.CalledProcessError:
+ sys.exit("Sources don't look pristine, not building ({!r})".format(source_version))
-source_version = "0." + source_version
search_version = "_" + source_version + "~"
-dsc_dir = os.path.abspath(os.path.join(args.svn_tree, ".."))
+dsc_dir = os.path.abspath(os.path.join(args.git_tree, ".."))
if not os.path.isdir(args.apt_tree):
logging.info("Creating %s", args.apt_tree)
@@ -219,12 +227,11 @@ class Release(object):
if not os.path.isdir(fn) and search_version not in fn:
logging.info("Removing %s", fn)
os.unlink(fn)
- run("rm", "-rf", "debian", cwd = args.svn_tree)
+ run("rm", "-rf", "debian", cwd = args.git_tree)
logging.info("Building source package %s", self.version)
- run(sys.executable, "buildtools/make-version.py", cwd = args.svn_tree)
- run(sys.executable, "buildtools/build-debian-packages.py", "--version-suffix", self.release, cwd = args.svn_tree)
- run("dpkg-buildpackage", "-S", "-us", "-uc", "-rfakeroot", cwd = args.svn_tree)
+ run(sys.executable, "buildtools/build-debian-packages.py", "--version-suffix", self.release, cwd = args.git_tree)
+ run("dpkg-buildpackage", "-S", "-us", "-uc", "-rfakeroot", cwd = args.git_tree)
if not os.path.exists(self.basefile):
logging.info("Creating build environment %s %s", self.release, self.arch)