+++ /dev/null
-#!/bin/false # invoke this with a specific python
-
-import sys, shutil, os.path
-from subprocess import Popen, PIPE
-
-PYTHON = sys.executable
-ARCH = sys.argv[1]
-
-class SubprocessError(Exception):
- pass
-
-def get_output(*cmd, **kwargs):
- tolerate_stderr = kwargs.get("tolerate_stderr", False)
- print " " + " ".join(cmd)
- p = Popen(cmd, stdout=PIPE)
- (out,err) = p.communicate()
- rc = p.returncode
- if rc != 0:
- print >>sys.stderr, err
- raise SubprocessError("command %s exited with rc=%s", (cmd, rc))
- if err and not tolerate_stderr:
- print >>sys.stderr, "stderr:", err
- raise SubprocessError("command emitted unexpected stderr")
- print " =>", out,
- return out
-
-def run(*cmd, **kwargs):
- print " " + " ".join(cmd)
-# if "stdin" in kwargs:
-# stdin = kwargs.pop("stdin")
-# p = Popen(cmd, stdin=PIPE, **kwargs)
-# p.stdin.write(stdin)
-# p.stdin.close()
-# else:
-# p = Popen(cmd, **kwargs)
- p = Popen(cmd, **kwargs)
- rc = p.wait()
- if rc != 0:
- raise SubprocessError("command %s exited with rc=%s", (cmd, rc))
-
-# the very first time you run setup.py, it will download+build darcsver and
-# whatnot, emitting noise to stdout. Run it once (and throw away that junk)
-# to avoid treating that noise as the package name.
-run(PYTHON, "setup.py", "darcsver")
-
-NAME = get_output(PYTHON, "setup.py", "--name").strip()
-VERSION = get_output(PYTHON, "setup.py", "--version").strip()
-
-TARBALL = "%s-%s.tar.gz" % (NAME, VERSION)
-DEBIAN_TARBALL = "%s_%s.orig.tar.gz" % (NAME, VERSION)
-BUILDDIR = "build/debian/%s-%s" % (NAME, VERSION)
-
-run(PYTHON, "setup.py", "sdist", "--formats=gztar")
-if os.path.exists("build/debian"):
- shutil.rmtree("build/debian")
-os.makedirs("build/debian")
-shutil.copyfile("dist/%s" % TARBALL, "build/debian/%s" % DEBIAN_TARBALL)
-run("tar", "xf", DEBIAN_TARBALL, cwd="build/debian")
-
-# now modify the tree for debian packaging. This is an algorithmic way of
-# applying the debian .diff, which factors out some of the similarities
-# between various debian/ubuntu releases. Everything we do after this point
-# will show up in the generated .diff, and thus form the debian-specific part
-# of the source package.
-DEBDIR = os.path.join(BUILDDIR, "debian")
-os.makedirs(DEBDIR)
-
-# The 'aliases' section in setup.cfg causes problems, so get rid of it. We
-# could get rid of the whole file, but 1: find_links is still sort of useful,
-# and 2: dpkg-buildpackage prefers to ignore file removal (as opposed to
-# file-modification)
-
-#os.unlink(os.path.join(BUILDDIR, "setup.cfg"))
-SETUPCFG = os.path.join(BUILDDIR, "setup.cfg")
-lines = open(SETUPCFG, "r").readlines()
-f = open(SETUPCFG, "w")
-for l in lines:
- if l.startswith("[aliases]"):
- break
- f.write(l)
-f.close()
-
-for n in ["compat", "control", "copyright", "pycompat", "rules"]:
- fn = "misc/debian/%s.%s" % (n, ARCH)
- if not os.path.exists(fn):
- fn = "misc/debian/%s" % n
- assert os.path.exists(fn)
-
- shutil.copyfile(fn, os.path.join(DEBDIR, n))
- if n == "rules":
- os.chmod(os.path.join(DEBDIR, n), 0755) # +x
-
-# We put "local package" on the first line of the changelog entry to suppress
-# the lintian NMU warnings (since debchange's new entry's "author" will
-# probably be different than the what the debian/control Maintainer: field
-# says)
-
-DISTRIBUTION_MAP = {"sid": "unstable"}
-
-run("debchange", "--create",
- "--package", NAME,
- "--newversion", VERSION+"-1",
- "--distribution", DISTRIBUTION_MAP.get(ARCH, ARCH),
- "local package: 'make deb' build", cwd=BUILDDIR)
-
-# the package is ready to build. 'debuild' will produce the source package
-# (.dsc+.diff.gz), then build the .deb and produce a .changes file ready for
-# upload to an APT archive. The build log will go into a .build file.
-
-run("debuild", "-uc", "-us", cwd=BUILDDIR)