From 35ec53b61546058cd19b1cb59ecaab6effe702c7 Mon Sep 17 00:00:00 2001 From: jld3103 Date: Fri, 13 Aug 2021 20:25:33 +0200 Subject: [PATCH] Fix glibc locales Fixes https://gitlab.com/kupfer/kupferbootstrap/-/issues/11 --- packages.py | 22 ++++++++++++++++++++++ wrapper.py | 4 ---- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/packages.py b/packages.py index 1c5f4e1..196900a 100644 --- a/packages.py +++ b/packages.py @@ -338,6 +338,28 @@ def build_package(package: Package): if package.mode == 'cross': logging.info(f'Cross-compiling {package.path}') + + def umount(): + subprocess.run( + [ + 'umount', + '-lc', + '/usr/share/i18n/locales', + ], + stderr=subprocess.DEVNULL, + ) + + result = subprocess.run([ + 'mount', + '-o', + 'bind', + '/chroot/copy/usr/share/i18n/locales', + '/usr/share/i18n/locales', + ]) + if result.returncode != 0: + logging.fatal(f'Failed to bind mount glibc locales from chroot') + exit(1) + result = subprocess.run( makepkg_cmd + makepkg_compile_opts, env=makepkg_cross_env | {'QEMU_LD_PREFIX': '/usr/aarch64-linux-gnu'}, diff --git a/wrapper.py b/wrapper.py index 0a7036f..bc57485 100644 --- a/wrapper.py +++ b/wrapper.py @@ -58,8 +58,6 @@ else: atexit.register(at_exit) - # TODO: Remove the mount of /usr/share/i18n/locales. It's a trick so we don't need to generate the locales in the chroot. - # Something like a prebuilt docker image as base or copying the files from it would be good. subprocess.run([ 'docker', 'run', @@ -80,6 +78,4 @@ else: '-v', '/dev:/dev', #'-v', '/mnt/kupfer:/mnt/kupfer:z', - '-v', - '/usr/share/i18n/locales:/usr/share/i18n/locales:ro' ] + [tag, 'kupferbootstrap'] + sys.argv[1:])