summaryrefslogtreecommitdiffstats
path: root/remote
diff options
context:
space:
mode:
authorJonathan Bauer2014-01-29 15:31:40 +0100
committerJonathan Bauer2014-01-29 15:31:40 +0100
commit43a0aaa0af313a40e903f909a7312879c6d6800e (patch)
treed3fdaa7b77fe146a38db743f3814842b9a1d1aeb /remote
parent[server/configs] new module for ubuntu 13.10: fixes the unity panel not (diff)
parent[rfs-stage31] Put hosts, hostname, resolv.conf in proper place (diff)
downloadtm-scripts-43a0aaa0af313a40e903f909a7312879c6d6800e.tar.gz
tm-scripts-43a0aaa0af313a40e903f909a7312879c6d6800e.tar.xz
tm-scripts-43a0aaa0af313a40e903f909a7312879c6d6800e.zip
Merge branch 'master' of git.openslx.org:openslx-ng/tm-scripts
Diffstat (limited to 'remote')
-rwxr-xr-xremote/rootfs/rootfs-stage31/data/inc/setup_network1
-rwxr-xr-xremote/rootfs/rootfs-stage31/data/inc/setup_stage323
-rwxr-xr-xremote/rootfs/rootfs-stage31/data/inc/udhcpc-trigger39
-rw-r--r--remote/rootfs/rootfs-stage31/rootfs-stage31.build2
4 files changed, 34 insertions, 11 deletions
diff --git a/remote/rootfs/rootfs-stage31/data/inc/setup_network b/remote/rootfs/rootfs-stage31/data/inc/setup_network
index 3de48057..ed29050f 100755
--- a/remote/rootfs/rootfs-stage31/data/inc/setup_network
+++ b/remote/rootfs/rootfs-stage31/data/inc/setup_network
@@ -86,6 +86,5 @@ if [ -n "$CLIENTIP" ]; then
fi
echo -n "$CLIENTIP" > "/run/firstip"
echo -n "$GATEWAY" > "/run/firstgw"
-echo -n "$FUTURE_ROOT" > "/run/future_root"
udhcpc $PARAM -O domain -O nissrv -O nisdomain -O wpad -t 5 -T 2 -s "/inc/udhcpc-trigger" -f -n -q -i "$BRIDGE"
diff --git a/remote/rootfs/rootfs-stage31/data/inc/setup_stage32 b/remote/rootfs/rootfs-stage31/data/inc/setup_stage32
index 4e19fb3a..f0380ece 100755
--- a/remote/rootfs/rootfs-stage31/data/inc/setup_stage32
+++ b/remote/rootfs/rootfs-stage31/data/inc/setup_stage32
@@ -43,6 +43,9 @@ mkdir -p /mnt/opt/openslx/uniontmp /mnt/tmp
busybox mount -n --move "$FUTURE_ROOT" /mnt/opt/openslx/uniontmp || drop_shell "Problem moving uniontmp."
FUTURE_ROOT="/mnt"
+# Move network stuff
+cp /etc/hostname /etc/hosts /etc/resolv.conf "${FUTURE_ROOT}/etc/"
+
# "Delete" addon hook-script in aufs view
touch "/mnt/opt/openslx/uniontmp/.wh.addon-init"
diff --git a/remote/rootfs/rootfs-stage31/data/inc/udhcpc-trigger b/remote/rootfs/rootfs-stage31/data/inc/udhcpc-trigger
index 7a8eaf0b..ea4d002d 100755
--- a/remote/rootfs/rootfs-stage31/data/inc/udhcpc-trigger
+++ b/remote/rootfs/rootfs-stage31/data/inc/udhcpc-trigger
@@ -42,18 +42,39 @@ if [ -n "${router}" ]; then
echo -n "$router" > "/run/firstgw"
fi
-RESOLV=$(cat "/run/future_root")
-RESOLV="${RESOLV}/etc/resolv.conf"
-rm -f -- "$RESOLV"
+rm -f -- "/etc/resolv.conf"
# DNS/domain?
-if [ -n "$domain" ]; then
- echo "domain $domain" >> "$RESOLV"
- echo "search $domain" >> "$RESOLV"
-fi
[ -n "$dns" ] && echo "..got DNS.."
for serv in $dns; do
- echo "nameserver $serv" >> "$RESOLV"
+ echo "nameserver $serv" >> "/etc/resolv.conf"
done
-cp "$RESOLV" "/etc/resolv.conf" 2>/dev/null
+if [ -z "$domain" ]; then
+ # try to get domain via reverse lookup if empty
+ echo "..trying to get domain via DNS, as DHCP didn't supply one.."
+ fqdn=$(nslookup "$ip" | grep -E "^Address +[0-9]+: +$ip " | head -n 1 | awk '{print $4}')
+ domain="${fqdn#*.}"
+fi
+if [ -n "$domain" ]; then
+ echo "domain $domain" >> "/etc/resolv.conf"
+ echo "search $domain" >> "/etc/resolv.conf" # TODO: patch busybox
+fi
+
+
+# Hostname
+if [ -z "$hostname" ]; then
+ # as with domain, if there's no hostname, try to get via DNS
+ echo "..trying to get hostname via DNS, as DHCP didn't supply one.."
+ [ -z "$fqdn" ] && fqdn=$(nslookup "$ip" | grep -E "^Address +[0-9]+: +$ip " | head -n 1 | awk '{print $4}')
+ hostname="${fqdn%%.*}"
+elif [ -n "$domain" ]; then
+ fqdn="${hostname}.${domain%% *}" # in case domain is a list
+fi
+if [ -n "$hostname" ]; then
+ [ -z "$fqdn" ] && fqdn="$hostname"
+ echo "..setting hostname $hostname (fqdn: $fqdn).."
+ echo "$fqdn" > "/proc/sys/kernel/hostname"
+ echo "$fqdn" > "/etc/hostname"
+ echo "$ip $fqdn $hostname" > "/etc/hosts"
+fi
diff --git a/remote/rootfs/rootfs-stage31/rootfs-stage31.build b/remote/rootfs/rootfs-stage31/rootfs-stage31.build
index 82477940..f3eab5b6 100644
--- a/remote/rootfs/rootfs-stage31/rootfs-stage31.build
+++ b/remote/rootfs/rootfs-stage31/rootfs-stage31.build
@@ -16,7 +16,7 @@ build() {
done
mkdir -p "$MODULE_BUILD_DIR/lib"
- find /lib /lib64 /usr/lib /usr/lib64 \( -name "libnss_dns*" -o -name "libresolv*" \) -exec cp {} "$MODULE_BUILD_DIR/lib" \;
+ find /lib /lib64 /usr/lib /usr/lib64 \( -name "libnss_dns*" -o -name "libresolv*" \) -exec cp -a {} "$MODULE_BUILD_DIR/lib/" \;
tarcopy "$(cat "$COPYLIST" | sort -u)" "$MODULE_BUILD_DIR"
}