aboutsummaryrefslogtreecommitdiff
path: root/buildtools/build-debian-packages.py
diff options
context:
space:
mode:
Diffstat (limited to 'buildtools/build-debian-packages.py')
-rw-r--r--buildtools/build-debian-packages.py70
1 files changed, 70 insertions, 0 deletions
diff --git a/buildtools/build-debian-packages.py b/buildtools/build-debian-packages.py
new file mode 100644
index 00000000..19f61f6d
--- /dev/null
+++ b/buildtools/build-debian-packages.py
@@ -0,0 +1,70 @@
+# $Id$
+#
+# Copyright (C) 2014 Dragon Research Labs ("DRL")
+# Portions copyright (C) 2013 Internet Systems Consortium ("ISC")
+#
+# Permission to use, copy, modify, and distribute this software for any
+# purpose with or without fee is hereby granted, provided that the above
+# copyright notices and this permission notice appear in all copies.
+#
+# THE SOFTWARE IS PROVIDED "AS IS" AND DRL AND ISC DISCLAIM ALL
+# WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DRL OR
+# ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+# DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA
+# OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+
+"""
+Set up for a Debian or Ubuntu package build.
+
+This is a script because we need to create the changelog. Other than
+that, we just copy the Debian skeleton and optionally run the programs
+necessary to produce a test build (production builds are happened
+elsewhere, under pbuilder).
+"""
+
+import subprocess
+import platform
+import argparse
+import shutil
+import sys
+import os
+
+parser = argparse.ArgumentParser(description = __doc__)
+parser.add_argument("-b", "--debuild", action = "store_true", help = "run debuild")
+parser.add_argument("-i", "--debi", action = "store_true", help = "run debi")
+parser.add_argument("-s", "--version-suffix", nargs = "?", const = platform.linux_distribution()[2],
+ help = "suffix to add to version string")
+args = parser.parse_args()
+
+version = "0." + subprocess.check_output(("svnversion", "-c")).strip().split(":")[-1]
+
+if os.path.exists("debian"):
+ shutil.rmtree("debian")
+
+def ignore_dot_svn(src, names):
+ return [name for name in names if name == ".svn"]
+
+shutil.copytree("buildtools/debian-skeleton", "debian", ignore = ignore_dot_svn)
+
+os.chmod("debian/rules", 0755)
+
+msg = "Version %s of https://subvert-rpki.hactrn.net/trunk/" % version
+
+if args.version_suffix:
+ version += "~" + args.version_suffix
+
+subprocess.check_call(("dch", "--create", "--package", "rpki", "--newversion", version, msg),
+ env = dict(os.environ,
+ EDITOR = "true",
+ VISUAL = "true",
+ TZ = "UTC",
+ DEBEMAIL = "APT Builder Robot <aptbot@rpki.net>"))
+
+if args.debuild or args.debi:
+ subprocess.check_call(("debuild", "-us", "-uc"))
+
+if args.debi:
+ subprocess.check_call(("sudo", "debi", "--with-depends"))