[elbe-devel] [PATCH v3 1/4] pbuilder: write pbuilderrc without qemu-debootstrap

Christian Teklenborg chris at linutronix.de
Mon Apr 27 16:35:41 CEST 2020


The pbuilder_write_config function writes debootstrap options in the pbuilderrc
which would create a chroot environment with a foreign achitecture with qemu
if pbuilder --create is called.
But to crosscompile, a chroot environment with the build architecture is needed.
Thus add the function pbuilder_write_cross_config that creates a pbuilderrc
without these debootstrap options. Change the pbuilder_write_repo_hook function
to take care of the different directory names from the pbuilder environment.

Signed-off-by: Christian Teklenborg <chris at linutronix.de>
---
 elbepack/pbuilder.py | 30 ++++++++++++++++++++++++++++--
 1 file changed, 28 insertions(+), 2 deletions(-)

diff --git a/elbepack/pbuilder.py b/elbepack/pbuilder.py
index 6c40a240..e6f0b3cf 100644
--- a/elbepack/pbuilder.py
+++ b/elbepack/pbuilder.py
@@ -62,6 +62,29 @@ def pbuilder_write_config(builddir, xml):
 
     fp.close()
 
+def pbuilder_write_cross_config(builddir, xml):
+    distname = xml.prj.text('suite')
+    pbuilderrc_fname = os.path.join(builddir, "cross_pbuilderrc")
+    fp = open(pbuilderrc_fname, "w")
+
+    fp.write('#!/bin/sh\n')
+    fp.write('set -e\n')
+    fp.write('MIRRORSITE="%s"\n' % xml.get_primary_mirror(False))
+    fp.write('OTHERMIRROR="deb http://127.0.0.1:8080%s/repo %s main"\n' %
+             (builddir, distname))
+    fp.write('BASETGZ="%s"\n' % os.path.join(builddir, 'pbuilder_cross', 'base.tgz'))
+
+    fp.write('DISTRIBUTION="%s"\n' % distname)
+
+    fp.write('BUILDRESULT="%s"\n' %
+             os.path.join(builddir, 'pbuilder_cross', 'result'))
+    fp.write('APTCACHE="%s"\n' %
+             os.path.join(builddir, 'pbuilder_cross','aptcache'))
+    fp.write('HOOKDIR="%s"\n' % os.path.join(builddir, 'pbuilder_cross', 'hooks.d'))
+    fp.write('PBUILDERSATISFYDEPENDSCMD='
+             '/usr/lib/pbuilder/pbuilder-satisfydepends-apt\n')
+    fp.close()
+
 
 def pbuilder_write_apt_conf(builddir, xml):
 
@@ -107,9 +130,12 @@ def mirror_script_add_key_url(mirror, key_url):
     return mirror_script_add_key_text(mirror, key_text)
 
 
-def pbuilder_write_repo_hook(builddir, xml):
+def pbuilder_write_repo_hook(builddir, xml, cross):
 
-    pbuilder_hook_dir = os.path.join(builddir, "pbuilder", "hooks.d")
+    if cross:
+        pbuilder_hook_dir = os.path.join(builddir, "pbuilder_cross", "hooks.d")
+    else:
+        pbuilder_hook_dir = os.path.join(builddir, "pbuilder", "hooks.d")
 
     with open(os.path.join(pbuilder_hook_dir, "H10elbe_apt_update"), "w") as f:
         f.write("#!/bin/sh\napt update\n")
-- 
2.20.1




More information about the elbe-devel mailing list