%{dracutlibdir}/modules.d/02systemd-networkd
%{dracutlibdir}/modules.d/35network-manager
%{dracutlibdir}/modules.d/35network-legacy
+%{dracutlibdir}/modules.d/35network-wicked
%{dracutlibdir}/modules.d/40network
%{dracutlibdir}/modules.d/45ifcfg
%{dracutlibdir}/modules.d/90kernel-network-modules
--- /dev/null
+#!/bin/bash
+
+# called by dracut
+check() {
+ local _program
+
+ require_binaries wicked || return 1
+
+ # do not add this module by default
+ return 255
+}
+
+# called by dracut
+depends() {
+ echo systemd dbus
+ return 0
+}
+
+# called by dracut
+installkernel() {
+ return 0
+}
+
+# called by dracut
+install() {
+ inst_hook cmdline 99 "$moddir/wicked-config.sh"
+
+ # Seems to not execute if in initqueue/settled
+ inst_hook pre-mount 99 "$moddir/wicked-run.sh"
+
+ inst_dir /etc/wicked/extensions
+ inst_dir /usr/share/wicked/schema
+ inst_dir /usr/lib/wicked/bin
+ inst_dir /var/lib/wicked
+
+ inst_multiple /etc/wicked/*.xml
+ inst_multiple /etc/wicked/extensions/*
+ inst_multiple /etc/dbus-1/system.d/org.opensuse.Network*
+ inst_multiple /usr/share/wicked/schema/*
+ inst_multiple /usr/lib/wicked/bin/*
+ inst_multiple /usr/sbin/wicked*
+
+ wicked_units="
+ $systemdsystemunitdir/wickedd.service \
+ $systemdsystemunitdir/wickedd-auto4.service \
+ $systemdsystemunitdir/wickedd-dhcp4.service \
+ $systemdsystemunitdir/wickedd-dhcp6.service \
+ $systemdsystemunitdir/wickedd-nanny.service"
+
+ inst_multiple $wicked_units
+
+ for unit in $wicked_units; do
+ sed -i 's/^After=.*/After=dbus.service/g' $initdir/$unit
+ sed -i 's/^Wants=\(.*\)/Wants=\1 dbus.service/g' $initdir/$unit
+ sed -i -e \
+ '/^\[Unit\]/aDefaultDependencies=no\
+ Conflicts=shutdown.target\
+ Before=shutdown.target' \
+ "$initdir"$unit
+ done
+}