]> git.ipfire.org Git - people/mfischer/ipfire-2.x.git/commitdiff
make.sh: Bind-mount /etc/resolv.conf and /etc/hosts
authorMichael Tremer <michael.tremer@ipfire.org>
Tue, 6 Aug 2024 13:45:08 +0000 (13:45 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 6 Aug 2024 13:45:08 +0000 (13:45 +0000)
This allows us to have name resolution in the shell without any manual
configuration.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
make.sh

diff --git a/make.sh b/make.sh
index 6cd8b53af82d54a5d3a3778d6f318196f1763267..2f629d73dd01a376b0771fd3d7b6dc9c8b91804d 100755 (executable)
--- a/make.sh
+++ b/make.sh
@@ -313,6 +313,8 @@ exiterror() {
 }
 
 prepareenv() {
+       local network="false"
+
        # Are we running the right shell?
        if [ -z "${BASH}" ]; then
                exiterror "BASH environment variable is not set.  You're probably running the wrong shell."
@@ -339,6 +341,10 @@ prepareenv() {
                                required_space="${1#--required-space=}"
                                ;;
 
+                       --network)
+                               network="true"
+                               ;;
+
                        *)
                                exiterror "Unknown argument: ${1}"
                                ;;
@@ -461,6 +467,26 @@ prepareenv() {
        # Mount the images directory
        mount --bind "${IMAGES_DIR}"            "${BUILD_DIR}/usr/src/images"
 
+       # Bind-mount files requires for networking if requested
+       if [ "${network}" = "true" ]; then
+               local file
+
+               for file in /etc/resolv.conf /etc/hosts; do
+                       # Skip if the source files does not exist
+                       if [ ! -e "${file}" ]; then
+                               continue
+                       fi
+
+                       # Create the destination if it does not exist
+                       if [ ! -e "${BUILD_DIR}/${file}" ]; then
+                               touch "${BUILD_DIR}/${file}"
+                       fi
+
+                       # Mount the file read-only
+                       mount --bind -o ro "${file}" "${BUILD_DIR}/${file}"
+               done
+       fi
+
        # Configure the ccache
        export CCACHE_TEMPDIR="/tmp"
        export CCACHE_COMPILERCHECK="string:toolchain-${TOOLCHAINVER} ${BUILD_ARCH}"
@@ -2329,7 +2355,7 @@ shell)
 
        # enter a shell inside LFS chroot
        # may be used to changed kernel settings
-       prepareenv
+       prepareenv --network
        entershell
        ;;
 clean)