Browse Source

First cut at building in a git environment instead of subversion.

Rob Austein 8 years ago
parent
commit
e10fe610ca
1 changed files with 18 additions and 11 deletions
  1. 18 11
      rpki-pbuilder.py

+ 18 - 11
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)