X-Git-Url: https://git.distorted.org.uk/~mdw/distorted-chroot/blobdiff_plain/feb9ff8d71f27d461bb6288711710d024521bbd5..3cde241f3f1a70a629be582e8e638fe5d015a9f8:/bin/chroot-maint diff --git a/bin/chroot-maint b/bin/chroot-maint index 9d2d366..34dec2e 100755 --- a/bin/chroot-maint +++ b/bin/chroot-maint @@ -1431,6 +1431,7 @@ class Config (object): "*_DEPS": ("PKGDEPS", _conv_list), "*_QEMUHOST": ("QEMUHOST", _conv_str), "*_QEMUARCH": ("QEMUARCH", _conv_str), + "*_QEMUDIST": ("QEMUDIST", _conv_str), "*_ALIASES": ("DISTALIAS", _conv_str) } @@ -1858,7 +1859,8 @@ class ChrootJob (BaseJob): me._tools_chroot = CrossToolsJob.ensure\ ("%s-%s" % (me._dist, C.TOOLSARCH), FRESH) me._qemu_chroot = CrossToolsJob.ensure\ - ("%s-%s" % (me._dist, C.QEMUHOST[me._arch]), FRESH) + ("%s-%s" % (C.QEMUDIST.get(me._dist, me._dist), + C.QEMUHOST[me._arch]), FRESH) me.await(me._tools_chroot) me.await(me._qemu_chroot) @@ -1895,9 +1897,10 @@ class ChrootJob (BaseJob): crossdir = OS.path.join(C.LOCAL, "cross", "%s-%s" % (dist, C.TOOLSARCH)) - qarch, qhost = C.QEMUARCH[arch], C.QEMUHOST[arch] + qarch, qhost, qdist = \ + C.QEMUARCH[arch], C.QEMUHOST[arch], C.QEMUDIST.get(dist, dist) qemudir = OS.path.join(C.LOCAL, "cross", - "%s-%s" % (dist, qhost), "QEMU") + "%s-%s" % (qdist, qhost), "QEMU") ## Acquire lockfiles in a canonical order to prevent deadlocks. donors = [C.TOOLSARCH] @@ -2051,8 +2054,9 @@ class ChrootJob (BaseJob): run_root(["mv", new, real]) for path in have_link.iterkeys(): if path in want_link: continue - progress("remove obsolete link `%s' -> `%s'" % path) real = root + path + progress("remove obsolete link `%s' -> `%s'" % + (path, OS.readlink(real))) run_root(["rm", "-f", real]) ## Remove diversions from paths which don't need them any more. Here @@ -2116,7 +2120,7 @@ class ChrootJob (BaseJob): ## Install the base system. progress("install base system") - run_root(["eatmydata", "debootstrap"] + + run_root(["eatmydata", "debootstrap", "--no-merged-usr"] + (arch in C.FOREIGN_ARCHS and ["--foreign"] or []) + ["--arch=" + arch, "--variant=minbase", "--include=" + ",".join(C.BASE_PACKAGES), @@ -2156,12 +2160,12 @@ class ChrootJob (BaseJob): with safewrite_root\ (OS.path.join(mnt, "fs/etc/apt/apt.conf.d/20arch")) as f: f.write("""\ - ### -*-conf-*- +### -*-conf-*- - APT { - Architecture "%s"; - }; - """ % arch) +APT { + Architecture "%s"; +}; +""" % arch) ## Set up the locale and time zone from the host system. progress("configure locales and timezone") @@ -2184,10 +2188,10 @@ class ChrootJob (BaseJob): with safewrite_root(OS.path.join(mnt, "fs/usr/sbin/policy-rc.d"), mode = "755") as f: f.write("""\ - #! /bin/sh - echo >&2 "policy-rc.d: Services disabled by policy." - exit 101 - """) +#! /bin/sh +echo >&2 "policy-rc.d: Services disabled by policy." +exit 101 +""") ## Hack the dynamic linker to prefer libraries in `/usr' over ## `/usr/local'. This prevents `dpkg-shlibdeps' from becoming @@ -2199,10 +2203,10 @@ class ChrootJob (BaseJob): with safewrite_root\ (OS.path.join(mnt, "fs/etc/ld.so.conf.d/zzz-local.conf")) as f: f.write("""\ - ### -*-conf-*- - ### Local hack to make /usr/local/ late. - /usr/local/lib - """) +### -*-conf-*- +### Local hack to make /usr/local/ late. +/usr/local/lib +""") ## If this is a foreign architecture then we need to set it up. if arch in C.FOREIGN_ARCHS: @@ -2253,6 +2257,7 @@ class ChrootJob (BaseJob): apt-get -y dist-upgrade apt-get -y autoremove apt-get -y clean + ldconfig """], stdin = DISCARD) if arch in C.FOREIGN_ARCHS: me._install_cross_tools() me._meta.update = zulu(); me._meta.write() @@ -2375,7 +2380,7 @@ class CrossToolsJob (BaseJob): try: dest = dest[:dest.rindex("/")] except ValueError: dest = "" if path == "": path = link - else: path = "%s/%s" % (path, link) + else: path = "%s/%s" % (link, path) ## Work through the shopping list, copying the things it names into the ## cross-tools tree. @@ -2668,6 +2673,11 @@ class PackageBuildJob (BaseJob): run_schroot_session(session, ["mount", "-oremount,rw", "/usr/local.schroot"], rootp = True, stdin = DISCARD) + run_schroot_session(session, + ["mount", "--bind", + "/usr/local.schroot/%s/include.aside" % arch, + "/usr/local.schroot/%s/include" % arch], + rootp = True, stdin = DISCARD) progress("configure `%s' %s for %s" % (pkg, ver, arch)) run_schroot_session(session, ["sh", "-e", "-c", """