From 734739187bfab24f063904ea18f0bdf03b4a136c Mon Sep 17 00:00:00 2001 From: Lubomir Rintel Date: Thu, 30 Aug 2018 16:44:22 +0200 Subject: [PATCH] network-legacy: split off from network module --- dracut.spec | 1 + .../dhclient-script.sh | 0 .../{40network => 35network-legacy}/dhclient.conf | 0 .../{40network => 35network-legacy}/dhcp-root.sh | 0 modules.d/{40network => 35network-legacy}/ifup.sh | 0 .../kill-dhclient.sh | 0 modules.d/35network-legacy/module-setup.sh | 93 ++++++++++++++++++++++ .../net-genrules.sh | 0 .../{40network => 35network-legacy}/parse-bond.sh | 0 .../parse-bridge.sh | 0 .../{40network => 35network-legacy}/parse-ibft.sh | 0 .../parse-ifname.sh | 0 .../parse-ip-opts.sh | 0 .../{40network => 35network-legacy}/parse-team.sh | 0 .../{40network => 35network-legacy}/parse-vlan.sh | 0 modules.d/40network/module-setup.sh | 76 +----------------- 16 files changed, 95 insertions(+), 75 deletions(-) diff --git a/dracut.spec b/dracut.spec index d9cfdf1c..f6486d50 100644 --- a/dracut.spec +++ b/dracut.spec @@ -419,6 +419,7 @@ install -m 0755 51-dracut-rescue-postinst.sh $RPM_BUILD_ROOT%{_sysconfdir}/kerne %files network %{dracutlibdir}/modules.d/02systemd-networkd +%{dracutlibdir}/modules.d/35network-legacy %{dracutlibdir}/modules.d/40network %{dracutlibdir}/modules.d/45ifcfg %{dracutlibdir}/modules.d/90kernel-network-modules diff --git a/modules.d/40network/dhclient-script.sh b/modules.d/35network-legacy/dhclient-script.sh similarity index 100% rename from modules.d/40network/dhclient-script.sh rename to modules.d/35network-legacy/dhclient-script.sh diff --git a/modules.d/40network/dhclient.conf b/modules.d/35network-legacy/dhclient.conf similarity index 100% rename from modules.d/40network/dhclient.conf rename to modules.d/35network-legacy/dhclient.conf diff --git a/modules.d/40network/dhcp-root.sh b/modules.d/35network-legacy/dhcp-root.sh similarity index 100% rename from modules.d/40network/dhcp-root.sh rename to modules.d/35network-legacy/dhcp-root.sh diff --git a/modules.d/40network/ifup.sh b/modules.d/35network-legacy/ifup.sh similarity index 100% rename from modules.d/40network/ifup.sh rename to modules.d/35network-legacy/ifup.sh diff --git a/modules.d/40network/kill-dhclient.sh b/modules.d/35network-legacy/kill-dhclient.sh similarity index 100% rename from modules.d/40network/kill-dhclient.sh rename to modules.d/35network-legacy/kill-dhclient.sh diff --git a/modules.d/35network-legacy/module-setup.sh b/modules.d/35network-legacy/module-setup.sh new file mode 100755 index 00000000..71abda36 --- /dev/null +++ b/modules.d/35network-legacy/module-setup.sh @@ -0,0 +1,93 @@ +#!/bin/bash + +# called by dracut +check() { + local _program + + require_binaries ip dhclient sed awk grep || return 1 + require_any_binary arping arping2 || return 1 + + return 255 +} + +# called by dracut +depends() { + return 0 +} + +# called by dracut +installkernel() { + return 0 +} + +# called by dracut +install() { + local _arch _i _dir + inst_multiple ip dhclient sed awk grep + + inst_multiple -o arping arping2 + strstr "$(arping 2>&1)" "ARPing 2" && mv "$initdir/bin/arping" "$initdir/bin/arping2" + + inst_multiple -o ping ping6 + inst_multiple -o teamd teamdctl teamnl + inst_simple /etc/libnl/classid + inst_script "$moddir/ifup.sh" "/sbin/ifup" + inst_script "$moddir/dhclient-script.sh" "/sbin/dhclient-script" + inst_simple -H "/etc/dhclient.conf" + cat "$moddir/dhclient.conf" >> "${initdir}/etc/dhclient.conf" + inst_hook pre-udev 60 "$moddir/net-genrules.sh" + inst_hook cmdline 91 "$moddir/dhcp-root.sh" + inst_hook cmdline 92 "$moddir/parse-ibft.sh" + inst_hook cmdline 95 "$moddir/parse-vlan.sh" + inst_hook cmdline 96 "$moddir/parse-bond.sh" + inst_hook cmdline 96 "$moddir/parse-team.sh" + inst_hook cmdline 97 "$moddir/parse-bridge.sh" + inst_hook cmdline 98 "$moddir/parse-ip-opts.sh" + inst_hook cmdline 99 "$moddir/parse-ifname.sh" + inst_hook cleanup 10 "$moddir/kill-dhclient.sh" + + # install all config files for teaming + unset TEAM_MASTER + unset TEAM_CONFIG + unset TEAM_PORT_CONFIG + unset HWADDR + unset SUBCHANNELS + for i in /etc/sysconfig/network-scripts/ifcfg-*; do + [ -e "$i" ] || continue + case "$i" in + *~ | *.bak | *.orig | *.rpmnew | *.rpmorig | *.rpmsave) + continue + ;; + esac + ( + . "$i" + if ! [ "${ONBOOT}" = "no" -o "${ONBOOT}" = "NO" ] \ + && [ -n "${TEAM_MASTER}${TEAM_CONFIG}${TEAM_PORT_CONFIG}" ]; then + if [ -n "$TEAM_CONFIG" ] && [ -n "$DEVICE" ]; then + mkdir -p $initdir/etc/teamd + printf -- "%s" "$TEAM_CONFIG" > "$initdir/etc/teamd/${DEVICE}.conf" + elif [ -n "$TEAM_PORT_CONFIG" ]; then + inst_simple "$i" + + HWADDR="$(echo $HWADDR | sed 'y/ABCDEF/abcdef/')" + if [ -n "$HWADDR" ]; then + ln_r "$i" "/etc/sysconfig/network-scripts/mac-${HWADDR}.conf" + fi + + SUBCHANNELS="$(echo $SUBCHANNELS | sed 'y/ABCDEF/abcdef/')" + if [ -n "$SUBCHANNELS" ]; then + ln_r "$i" "/etc/sysconfig/network-scripts/ccw-${SUBCHANNELS}.conf" + fi + fi + fi + ) + done + + _arch=$(uname -m) + + inst_libdir_file {"tls/$_arch/",tls/,"$_arch/",}"libnss_dns.so.*" \ + {"tls/$_arch/",tls/,"$_arch/",}"libnss_mdns4_minimal.so.*" + + dracut_need_initqueue +} + diff --git a/modules.d/40network/net-genrules.sh b/modules.d/35network-legacy/net-genrules.sh similarity index 100% rename from modules.d/40network/net-genrules.sh rename to modules.d/35network-legacy/net-genrules.sh diff --git a/modules.d/40network/parse-bond.sh b/modules.d/35network-legacy/parse-bond.sh similarity index 100% rename from modules.d/40network/parse-bond.sh rename to modules.d/35network-legacy/parse-bond.sh diff --git a/modules.d/40network/parse-bridge.sh b/modules.d/35network-legacy/parse-bridge.sh similarity index 100% rename from modules.d/40network/parse-bridge.sh rename to modules.d/35network-legacy/parse-bridge.sh diff --git a/modules.d/40network/parse-ibft.sh b/modules.d/35network-legacy/parse-ibft.sh similarity index 100% rename from modules.d/40network/parse-ibft.sh rename to modules.d/35network-legacy/parse-ibft.sh diff --git a/modules.d/40network/parse-ifname.sh b/modules.d/35network-legacy/parse-ifname.sh similarity index 100% rename from modules.d/40network/parse-ifname.sh rename to modules.d/35network-legacy/parse-ifname.sh diff --git a/modules.d/40network/parse-ip-opts.sh b/modules.d/35network-legacy/parse-ip-opts.sh similarity index 100% rename from modules.d/40network/parse-ip-opts.sh rename to modules.d/35network-legacy/parse-ip-opts.sh diff --git a/modules.d/40network/parse-team.sh b/modules.d/35network-legacy/parse-team.sh similarity index 100% rename from modules.d/40network/parse-team.sh rename to modules.d/35network-legacy/parse-team.sh diff --git a/modules.d/40network/parse-vlan.sh b/modules.d/35network-legacy/parse-vlan.sh similarity index 100% rename from modules.d/40network/parse-vlan.sh rename to modules.d/35network-legacy/parse-vlan.sh diff --git a/modules.d/40network/module-setup.sh b/modules.d/40network/module-setup.sh index a1010911..fbd43925 100755 --- a/modules.d/40network/module-setup.sh +++ b/modules.d/40network/module-setup.sh @@ -1,18 +1,8 @@ #!/bin/bash -# called by dracut -check() { - local _program - - require_binaries ip dhclient sed awk grep || return 1 - require_any_binary arping arping2 || return 1 - - return 255 -} - # called by dracut depends() { - echo "kernel-network-modules" + echo "network-legacy" return 0 } @@ -24,74 +14,10 @@ installkernel() { # called by dracut install() { local _arch _i _dir - inst_multiple ip dhclient sed awk grep - - inst_multiple -o arping arping2 - strstr "$(arping 2>&1)" "ARPing 2" && mv "$initdir/bin/arping" "$initdir/bin/arping2" - inst_multiple -o ping ping6 - inst_multiple -o teamd teamdctl teamnl - inst_simple /etc/libnl/classid - inst_script "$moddir/ifup.sh" "/sbin/ifup" inst_script "$moddir/netroot.sh" "/sbin/netroot" - inst_script "$moddir/dhclient-script.sh" "/sbin/dhclient-script" inst_simple "$moddir/net-lib.sh" "/lib/net-lib.sh" - inst_simple -H "/etc/dhclient.conf" - cat "$moddir/dhclient.conf" >> "${initdir}/etc/dhclient.conf" inst_hook pre-udev 50 "$moddir/ifname-genrules.sh" - inst_hook pre-udev 60 "$moddir/net-genrules.sh" - inst_hook cmdline 91 "$moddir/dhcp-root.sh" - inst_hook cmdline 92 "$moddir/parse-ibft.sh" - inst_hook cmdline 95 "$moddir/parse-vlan.sh" - inst_hook cmdline 96 "$moddir/parse-bond.sh" - inst_hook cmdline 96 "$moddir/parse-team.sh" - inst_hook cmdline 97 "$moddir/parse-bridge.sh" - inst_hook cmdline 98 "$moddir/parse-ip-opts.sh" - inst_hook cmdline 99 "$moddir/parse-ifname.sh" - inst_hook cleanup 10 "$moddir/kill-dhclient.sh" - - # install all config files for teaming - unset TEAM_MASTER - unset TEAM_CONFIG - unset TEAM_PORT_CONFIG - unset HWADDR - unset SUBCHANNELS - for i in /etc/sysconfig/network-scripts/ifcfg-*; do - [ -e "$i" ] || continue - case "$i" in - *~ | *.bak | *.orig | *.rpmnew | *.rpmorig | *.rpmsave) - continue - ;; - esac - ( - . "$i" - if ! [ "${ONBOOT}" = "no" -o "${ONBOOT}" = "NO" ] \ - && [ -n "${TEAM_MASTER}${TEAM_CONFIG}${TEAM_PORT_CONFIG}" ]; then - if [ -n "$TEAM_CONFIG" ] && [ -n "$DEVICE" ]; then - mkdir -p $initdir/etc/teamd - printf -- "%s" "$TEAM_CONFIG" > "$initdir/etc/teamd/${DEVICE}.conf" - elif [ -n "$TEAM_PORT_CONFIG" ]; then - inst_simple "$i" - - HWADDR="$(echo $HWADDR | sed 'y/ABCDEF/abcdef/')" - if [ -n "$HWADDR" ]; then - ln_r "$i" "/etc/sysconfig/network-scripts/mac-${HWADDR}.conf" - fi - - SUBCHANNELS="$(echo $SUBCHANNELS | sed 'y/ABCDEF/abcdef/')" - if [ -n "$SUBCHANNELS" ]; then - ln_r "$i" "/etc/sysconfig/network-scripts/ccw-${SUBCHANNELS}.conf" - fi - fi - fi - ) - done - - _arch=$(uname -m) - - inst_libdir_file {"tls/$_arch/",tls/,"$_arch/",}"libnss_dns.so.*" \ - {"tls/$_arch/",tls/,"$_arch/",}"libnss_mdns4_minimal.so.*" dracut_need_initqueue } -