build source packages in a chroot too
[invirt/packages/invirt-dev.git] / invirtibuilder
index 8a6b077..4e73484 100755 (executable)
@@ -202,8 +202,10 @@ def uploadBuild(pocket, workdir):
         except subprocess.CalledProcessError, e:
             if not force:
                 raise
-            packages = deb822.Changes(open(changes).read())['Binary']
-            for package in packages.split():
+            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)
 
@@ -285,8 +287,8 @@ def packageWorkdir(package, commit, build_id):
     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,
              ],
@@ -387,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
-                    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'