projects
/
invirt/packages/invirt-dev.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
build source packages in a chroot too
[invirt/packages/invirt-dev.git]
/
invirtibuilder
diff --git
a/invirtibuilder
b/invirtibuilder
index
9260b1e
..
4e73484
100755
(executable)
--- a/
invirtibuilder
+++ b/
invirtibuilder
@@
-56,6
+56,9
@@
def logAndRun(cmd, *args, **kwargs):
del kwargs['stdout']
kwargs['stderr'] = logfile
logfile.write('---> Ran %s\n' % (cmd, ))
del kwargs['stdout']
kwargs['stderr'] = logfile
logfile.write('---> Ran %s\n' % (cmd, ))
+ if 'stdin_str' in kwargs:
+ logfile.write('STDIN:\n')
+ logfile.write(kwargs['stdin_str'])
logfile.write('STDERR:\n')
output = c.captureOutput(cmd, *args, **kwargs)
logfile.write('STDOUT:\n')
logfile.write('STDERR:\n')
output = c.captureOutput(cmd, *args, **kwargs)
logfile.write('STDOUT:\n')
@@
-199,8
+202,11
@@
def uploadBuild(pocket, workdir):
except subprocess.CalledProcessError, e:
if not force:
raise
except subprocess.CalledProcessError, e:
if not force:
raise
- package = deb822.Changes(open(changes).read())['Binary']
- logAndRun(['reprepro-env', 'remove', apt, package])
+ changelog = deb822.Changes(open(changes).read())
+ packages = set(changelog['Binary'].split())
+ packages.add(changelog['Source'])
+ for package in packages:
+ logAndRun(['reprepro-env', 'remove', apt, package])
logAndRun(upload)
logAndRun(upload)
@@
-235,7
+241,8
@@
def updateSuperproject(pocket, package, commit, principal, version, env):
\turl = ../packages/%s.git
""" % (package, package, package)
gitmodules_hash = logAndRun(['git', 'hash-object', '-w', '--stdin'],
\turl = ../packages/%s.git
""" % (package, package, package)
gitmodules_hash = logAndRun(['git', 'hash-object', '-w', '--stdin'],
- cwd=superproject).strip()
+ cwd=superproject,
+ stdin_str=gitmodules).strip()
tree_items[package] = "100644 blob "+gitmodules_hash
new_tree = "\n".join("%s\t%s" % (v, k) for (k, v) in tree_items.iteritems())
tree_items[package] = "100644 blob "+gitmodules_hash
new_tree = "\n".join("%s\t%s" % (v, k) for (k, v) in tree_items.iteritems())
@@
-280,8
+287,8
@@
def packageWorkdir(package, commit, build_id):
workdir = tempfile.mkdtemp(prefix=("b%d-" % build_id))
try:
p_archive = subprocess.Popen(
workdir = tempfile.mkdtemp(prefix=("b%d-" % build_id))
try:
p_archive = subprocess.Popen(
- ['git', 'archive',
- '--remote=file://%s' % b.getRepo(package),
+ ['git', '--git-dir=%s' % (b.getRepo(package),),
+ 'archive',
'--prefix=%s/' % package,
commit,
],
'--prefix=%s/' % package,
commit,
],
@@
-382,7
+389,9
@@
def build():
# If we were, we could use debuild and get nice
# environment scrubbing. Since we're not, debuild
# complains about not having an orig.tar.gz
# If we were, we could use debuild and get nice
# environment scrubbing. Since we're not, debuild
# complains about not having an orig.tar.gz
- logAndRun(['dpkg-buildpackage', '-us', '-uc', '-S'],
+ logAndRun(['schroot', '-c',
+ '%s-amd64-sbuild' % (b.pocketToDistro(pocket),),
+ '--', 'dpkg-buildpackage', '-us', '-uc', '-S'],
cwd=packagedir)
db.failed_stage = 'building binary packages'
cwd=packagedir)
db.failed_stage = 'building binary packages'