]> git.pld-linux.org Git - packages/dracut.git/blame - git.patch
- dracut requires systemd > 199
[packages/dracut.git] / git.patch
CommitLineData
dc6a35f3
JR
1diff --git a/dracut.8.asc b/dracut.8.asc
2index 6a79d12..8b50782 100644
3--- a/dracut.8.asc
4+++ b/dracut.8.asc
5@@ -75,12 +75,12 @@ version is:
6 ----
7
8 If you want to create lighter, smaller initramfs images, you may want to specify
9-the --host-only or -H option. Using this option, the resulting image will
10+the --hostonly or -H option. Using this option, the resulting image will
11 contain only those dracut modules, kernel modules and filesystems, which are
12 needed to boot this specific machine. This has the drawback, that you can't put
13 the disk on another controller or machine, and that you can't switch to another
14 root filesystem, without recreating the initramfs image. The usage of the
15---host-only option is only for experts and you will have to keep the broken
16+--hostonly option is only for experts and you will have to keep the broken
17 pieces. At least keep a copy of a general purpose image (and corresponding
18 kernel) as a fallback to rescue your system.
19
20@@ -376,7 +376,7 @@ will not be able to boot. Equivalent to "--compress=bzip2"
21 [WARNING]
22 ====
23 Make sure your kernel has lzma decompression support compiled in, otherwise you
24-will not be able to boot. Equivalent to "--compress=lzma -9"
25+will not be able to boot. Equivalent to "lzma --compress=lzma -9"
26 ====
27
28 **--xz**::
29@@ -385,8 +385,7 @@ will not be able to boot. Equivalent to "--compress=lzma -9"
30 [WARNING]
31 ====
32 Make sure your kernel has xz decompression support compiled in, otherwise you
33-will not be able to boot. Equivalent to "--compress=xz --check=crc32
34---lzma2=dict=1MiB"
35+will not be able to boot. Equivalent to "lzma --compress=xz --check=crc32 --lzma2=dict=1MiB"
36 ====
37
38 **--compress** _<compressor>_::
39@@ -409,6 +408,27 @@ will not be able to boot. Equivalent to "--compress=xz --check=crc32
40 **--keep**::
41 Keep the initramfs temporary directory for debugging purposes.
42
43+**--printsize**::
44+ Print out the module install size
45+
46+**--profile**:
47+ Output profile information of the build process
48+
49+**--ro-mnt**:
50+ Mount / and /usr read-only by default.
51+
52+**-L, --stdlog** _<level>_::
53+ [0-6] Specify logging level (to standard error)
54+----
55+ 0 - suppress any messages
56+ 1 - only fatal errors
57+ 2 - all errors
58+ 3 - warnings
59+ 4 - info
60+ 5 - debug info (here starts lots of output)
61+ 6 - trace info (and even more)
62+----
63+
64 **--regenerate-all**::
65 Regenerate all initramfs images at the default location with the kernel versions found on the system.
66 Additional parameters are passed through.
67diff --git a/dracut.sh b/dracut.sh
68index 5e9ea3e..586172c 100755
69--- a/dracut.sh
70+++ b/dracut.sh
71@@ -74,19 +74,21 @@ Creates initial ramdisk images for preloading modules
72 call when building the initramfs. Modules are located
73 in /usr/lib/dracut/modules.d.
74 -o, --omit [LIST] Omit a space-separated list of dracut modules.
75+ --force-add [LIST] Force to add a space-separated list of dracut modules
76+ to the default set of modules, when -H is specified.
77 -d, --drivers [LIST] Specify a space-separated list of kernel modules to
78- exclusively include in the initramfs.
79- --add-drivers [LIST] Specify a space-separated list of kernel
80- modules to add to the initramfs.
81+ exclusively include in the initramfs.
82+ --add-drivers [LIST] Specify a space-separated list of kernel
83+ modules to add to the initramfs.
84 --omit-drivers [LIST] Specify a space-separated list of kernel
85- modules not to add to the initramfs.
86+ modules not to add to the initramfs.
87 --filesystems [LIST] Specify a space-separated list of kernel filesystem
88- modules to exclusively include in the generic
89- initramfs.
90+ modules to exclusively include in the generic
91+ initramfs.
92 -k, --kmoddir [DIR] Specify the directory, where to look for kernel
93- modules
94+ modules
95 --fwdir [DIR] Specify additional directories, where to look for
96- firmwares, separated by :
97+ firmwares, separated by :
98 --kernel-only Only install kernel drivers and firmware files
99 --no-kernel Do not install kernel drivers and firmware files
100 --kernel-cmdline [PARAMETERS] Specify default kernel command line parameters
101@@ -317,7 +319,9 @@ TEMP=$(unset POSIXLY_CORRECT; getopt \
102 --long quiet \
103 --long local \
104 --long hostonly \
105+ --long host-only \
106 --long no-hostonly \
107+ --long no-host-only \
108 --long fstab \
109 --long help \
110 --long bzip2 \
111@@ -391,8 +395,10 @@ while :; do
112 [[ -f "$(readlink -f ${0%/*})/dracut-functions.sh" ]] \
113 && dracutbasedir="$(readlink -f ${0%/*})"
114 ;;
115- -H|--hostonly) hostonly_l="yes" ;;
116- -N|--no-hostonly) hostonly_l="no" ;;
117+ -H|--hostonly|--host-only)
118+ hostonly_l="yes" ;;
119+ -N|--no-hostonly|--no-host-only)
120+ hostonly_l="no" ;;
121 --fstab) use_fstab_l="yes" ;;
122 -h|--help) long_usage; exit 1 ;;
123 -i|--include) push include_src "$2"
124diff --git a/dracut.spec b/dracut.spec
125index af417a4..cb605c6 100644
126--- a/dracut.spec
127+++ b/dracut.spec
128@@ -92,7 +92,7 @@ Requires: kbd kbd-misc
129
130 %if 0%{?fedora} || 0%{?rhel} > 6
131 Requires: util-linux >= 2.21
132-Requires: systemd >= 198-5
133+Requires: systemd >= 199
134 Conflicts: grubby < 8.23
135 %else
136 Requires: udev > 166
137diff --git a/modules.d/90crypt/parse-crypt.sh b/modules.d/90crypt/parse-crypt.sh
138index d61220c..4cb281b 100755
139--- a/modules.d/90crypt/parse-crypt.sh
140+++ b/modules.d/90crypt/parse-crypt.sh
141@@ -27,6 +27,14 @@ else
142 printf -- '--name cryptroot-ask-%%k %s ' $(command -v cryptroot-ask)
143 printf -- '$env{DEVNAME} luks-$env{ID_FS_UUID} %s"\n' $tout
144 } >> /etc/udev/rules.d/70-luks.rules.new
145+ else
146+ {
147+ printf -- 'ENV{ID_FS_TYPE}=="crypto_LUKS", '
148+ printf -- 'ENV{ID_FS_UUID}=="*%s*", ' $luksid
149+ printf -- 'RUN+="%s --unique --onetime ' $(command -v initqueue)
150+ printf -- '--name systemd-cryptsetup-%%k %s start ' $(command -v systemctl)
151+ printf -- 'systemd-cryptsetup@luks$$(dev_unit_name -$env{ID_FS_UUID}).service"\n'
152+ } >> /etc/udev/rules.d/70-luks.rules.new
153 fi
154
155 uuid=$luksid
156diff --git a/modules.d/95nfs/module-setup.sh b/modules.d/95nfs/module-setup.sh
157index 7c3a64d..6d4d412 100755
158--- a/modules.d/95nfs/module-setup.sh
159+++ b/modules.d/95nfs/module-setup.sh
160@@ -62,12 +62,8 @@ install() {
161
162 # Rather than copy the passwd file in, just set a user for rpcbind
163 # We'll save the state and restart the daemon from the root anyway
164- egrep '^nfsnobody:' /etc/passwd >> "$initdir/etc/passwd"
165- egrep '^rpc:' /etc/passwd >> "$initdir/etc/passwd"
166- egrep '^rpcuser:' /etc/passwd >> "$initdir/etc/passwd"
167- #type -P nologin >/dev/null && dracut_install nologin
168- egrep '^nobody:' /etc/group >> "$initdir/etc/group"
169- egrep '^rpc:' /etc/group >> "$initdir/etc/group"
170+ egrep '^nfsnobody:|^rpc:|^rpcuser:' /etc/passwd >> "$initdir/etc/passwd"
171+ egrep '^nogroup:|^rpc:|^nobody:' /etc/group >> "$initdir/etc/group"
172
173 # rpc user needs to be able to write to this directory to save the warmstart
174 # file
175diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh
176index e456b01..f2b16d3 100755
177--- a/modules.d/99base/dracut-lib.sh
178+++ b/modules.d/99base/dracut-lib.sh
179@@ -818,6 +818,15 @@ wait_for_mount()
180 } >> "$hookdir/emergency/90-${_name}.sh"
181 }
182
183+dev_unit_name()
184+{
185+ _name="${1%%/}"
186+ _name="${_name##/}"
187+ _name="$(str_replace "$_name" '-' '\x2d')"
188+ _name="$(str_replace "$_name" '/' '-')"
189+ echo "$_name"
190+}
191+
192 # wait_for_dev <dev>
193 #
194 # Installs a initqueue-finished script,
195@@ -835,14 +844,18 @@ wait_for_dev()
196 } >> "${PREFIX}$hookdir/emergency/80-${_name}.sh"
197
198 if [ -n "$DRACUT_SYSTEMD" ]; then
199- _name="${1%%/}"
200- _name="${_name##/}"
201- _name="$(str_replace "$_name" '-' '\x2d')"
202- _name="$(str_replace "$_name" '/' '-')"
203+ _name=$(dev_unit_name "$1")
204 if ! [ -L ${PREFIX}/etc/systemd/system/initrd.target.requires/${_name}.device ]; then
205 [ -d ${PREFIX}/etc/systemd/system/initrd.target.requires ] || mkdir -p ${PREFIX}/etc/systemd/system/initrd.target.requires
206 ln -s ../${_name}.device ${PREFIX}/etc/systemd/system/initrd.target.requires/${_name}.device
207 fi
208+
209+ mkdir -p ${PREFIX}/etc/systemd/system/${_name}.device.d
210+ {
211+ echo "[Unit]"
212+ echo "JobTimeoutSec=3600"
213+ } > ${PREFIX}/etc/systemd/system/${_name}.device.d/timeout.conf
214+ [ -z "$PREFIX" ] && /sbin/initqueue --onetime --unique --name daemon-reload systemctl daemon-reload
215 fi
216 }
217
218@@ -852,6 +865,12 @@ cancel_wait_for_dev()
219 _name="$(str_replace "$1" '/' '\\x2f')"
220 rm -f "$hookdir/initqueue/finished/devexists-${_name}.sh"
221 rm -f "$hookdir/emergency/80-${_name}.sh"
222+ if [ -n "$DRACUT_SYSTEMD" ]; then
223+ _name=$(dev_unit_name "$1")
224+ rm -f ${PREFIX}/etc/systemd/system/initrd.target.requires/${_name}.device
225+ rm -f ${PREFIX}/etc/systemd/system/${_name}.device.d/timeout.conf
226+ /sbin/initqueue --onetime --unique --name daemon-reload systemctl daemon-reload
227+ fi
228 }
229
230 killproc() {
231@@ -1017,7 +1036,7 @@ listlist() {
232
233 # returns OK if both lists contain the same values. An order and a duplication
234 # doesn't matter.
235-#
236+#
237 # $1 = separator
238 # $2 = list1
239 # $3 = list2
240diff --git a/modules.d/99base/init.sh b/modules.d/99base/init.sh
241index b441a27..410201a 100755
242--- a/modules.d/99base/init.sh
243+++ b/modules.d/99base/init.sh
244@@ -104,7 +104,7 @@ else
245 fi
246
247 [ -f /etc/initrd-release ] && . /etc/initrd-release
248-[ -n "$VERSION" ] && info "dracut-$VERSION"
249+[ -n "$VERSION_ID" ] && info "$NAME-$VERSION_ID"
250
251 source_conf /etc/conf.d
252
253diff --git a/modules.d/99base/module-setup.sh b/modules.d/99base/module-setup.sh
254index 7f2940b..4955b7b 100755
255--- a/modules.d/99base/module-setup.sh
256+++ b/modules.d/99base/module-setup.sh
257@@ -89,18 +89,18 @@ install() {
258
259 ## save host_devs which we need bring up
260 (
261+ if dracut_module_included "systemd"; then
262+ DRACUT_SYSTEMD=1
263+ fi
264+ PREFIX="$initdir"
265+
266 . "$moddir/dracut-lib.sh"
267+
268 for _dev in ${host_devs[@]}; do
269 _pdev=$(get_persistent_dev $_dev)
270
271 case "$_pdev" in
272- /dev/?*)
273- if ! dracut_module_included "systemd"; then
274- PREFIX="$initdir" wait_for_dev $_pdev
275- else
276- DRACUT_SYSTEMD=1 PREFIX="$initdir" wait_for_dev $_pdev
277- fi
278- ;;
279+ /dev/?*) wait_for_dev $_pdev;;
280 *) ;;
281 esac
282 done
283diff --git a/modules.d/99base/wait-host-devs.sh b/modules.d/99base/wait-host-devs.sh
284deleted file mode 100644
285index ce84922..0000000
286--- a/modules.d/99base/wait-host-devs.sh
287+++ /dev/null
288@@ -1,20 +0,0 @@
289-#!/bin/sh
290-# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
291-# ex: ts=8 sw=4 sts=4 et filetype=sh
292-
293-type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh
294-
295-wait_host_devs() {
296- local _dev
297-
298- while read _dev; do
299- case "$_dev" in
300- /dev/?*)
301- wait_for_dev $_dev
302- ;;
303- *) ;;
304- esac
305- done < $1
306-}
307-
308-[ -f /etc/host_devs ] && wait_host_devs /etc/host_devs
309diff --git a/test/TEST-01-BASIC/test.sh b/test/TEST-01-BASIC/test.sh
310index 7727cd0..84f4b7d 100755
311--- a/test/TEST-01-BASIC/test.sh
312+++ b/test/TEST-01-BASIC/test.sh
313@@ -86,7 +86,7 @@ test_setup() {
314 )
315 sudo $basedir/dracut.sh -l -i $TESTDIR/overlay / \
316 -a "debug watchdog" \
317- -d "piix ide-gd_mod ata_piix ext3 sd_mod i6300esbwdt" \
318+ -d "piix ide-gd_mod ata_piix ext3 sd_mod i6300esb ib700wdt" \
319 -f $TESTDIR/initramfs.testing $KVERSION || return 1
320
321 # -o "plymouth network md dmraid multipath fips caps crypt btrfs resume dmsquash-live dm"
322diff --git a/test/TEST-03-USR-MOUNT/test.sh b/test/TEST-03-USR-MOUNT/test.sh
323index 680720b..ca7dc12 100755
324--- a/test/TEST-03-USR-MOUNT/test.sh
325+++ b/test/TEST-03-USR-MOUNT/test.sh
326@@ -122,7 +122,7 @@ test_setup() {
327 sudo $basedir/dracut.sh -l -i $TESTDIR/overlay / \
328 -a "debug watchdog" \
329 -o "network" \
330- -d "piix ide-gd_mod ata_piix btrfs sd_mod i6300esbwdt" \
331+ -d "piix ide-gd_mod ata_piix btrfs sd_mod i6300esb ib700wdt" \
332 -f $TESTDIR/initramfs.testing $KVERSION || return 1
333
334 rm -rf $TESTDIR/overlay
335diff --git a/test/TEST-40-NBD/test.sh b/test/TEST-40-NBD/test.sh
336index 88570af..208b784 100755
337--- a/test/TEST-40-NBD/test.sh
338+++ b/test/TEST-40-NBD/test.sh
339@@ -356,7 +356,7 @@ test_setup() {
340 sudo $basedir/dracut.sh -l -i $TESTDIR/overlay / \
341 -o "plymouth" \
342 -a "debug watchdog" \
343- -d "af_packet piix ide-gd_mod ata_piix ext2 ext3 sd_mod e1000 i6300esbwdt" \
344+ -d "af_packet piix ide-gd_mod ata_piix ext2 ext3 sd_mod e1000 i6300esb ib700wdt" \
345 -f $TESTDIR/initramfs.testing $KVERSION || return 1
346 }
347
348diff --git a/test/TEST-50-MULTINIC/server-init.sh b/test/TEST-50-MULTINIC/server-init.sh
349index 144f83c..5a8359b 100755
350--- a/test/TEST-50-MULTINIC/server-init.sh
351+++ b/test/TEST-50-MULTINIC/server-init.sh
352@@ -7,11 +7,53 @@ export PS1='nfstest-server:\w\$ '
353 stty sane
354 echo "made it to the rootfs!"
355 echo server > /proc/sys/kernel/hostname
356+
357+wait_for_if_link() {
358+ local cnt=0
359+ local li
360+ while [ $cnt -lt 600 ]; do
361+ li=$(ip -o link show dev $1 2>/dev/null)
362+ [ -n "$li" ] && return 0
363+ sleep 0.1
364+ cnt=$(($cnt+1))
365+ done
366+ return 1
367+}
368+
369+wait_for_if_up() {
370+ local cnt=0
371+ local li
372+ while [ $cnt -lt 200 ]; do
373+ li=$(ip -o link show up dev $1)
374+ [ -n "$li" ] && return 0
375+ sleep 0.1
376+ cnt=$(($cnt+1))
377+ done
378+ return 1
379+}
380+
381+wait_for_route_ok() {
382+ local cnt=0
383+ while [ $cnt -lt 200 ]; do
384+ li=$(ip route show)
385+ [ -n "$li" ] && [ -z "${li##*$1*}" ] && return 0
386+ sleep 0.1
387+ cnt=$(($cnt+1))
388+ done
389+ return 1
390+}
391+
392+linkup() {
393+ wait_for_if_link $1 2>/dev/null\
394+ && ip link set $1 up 2>/dev/null\
395+ && wait_for_if_up $1 2>/dev/null
396+}
397+
398 >/dev/watchdog
399 ip addr add 127.0.0.1/8 dev lo
400-ip link set lo up
401+linkup lo
402 ip addr add 192.168.50.1/24 dev eth0
403-ip link set eth0 up
404+linkup eth0
405 >/dev/watchdog
406 modprobe af_packet
407 > /dev/watchdog
408@@ -42,10 +84,14 @@ exportfs -r
409 chmod 777 /var/lib/dhcpd/dhcpd.leases
410 >/dev/watchdog
411 dhcpd -cf /etc/dhcpd.conf -lf /var/lib/dhcpd/dhcpd.leases
412-echo -n 'V' > /dev/watchdog
413+#echo -n 'V' > /dev/watchdog
414 #sh -i
415+#tcpdump -i eth0
416 # Wait forever for the VM to die
417 echo "Serving NFS mounts"
418-while :; do sleep 30; done
419+while :; do
420+ sleep 10
421+ >/dev/watchdog
422+done
423 mount -n -o remount,ro /
424 poweroff -f
425diff --git a/test/TEST-50-MULTINIC/test.sh b/test/TEST-50-MULTINIC/test.sh
426index a3aa679..5cb0971 100755
427--- a/test/TEST-50-MULTINIC/test.sh
428+++ b/test/TEST-50-MULTINIC/test.sh
429@@ -8,7 +8,6 @@ KVERSION=${KVERSION-$(uname -r)}
430 # Uncomment this to debug failures
431 #DEBUGFAIL="rd.shell"
432 #SERIAL="tcp:127.0.0.1:9999"
433-SERIAL="null"
434
435 run_server() {
436 # Start server first
437@@ -19,9 +18,9 @@ run_server() {
438 -hda $TESTDIR/server.ext3 \
439 -m 512M -smp 2 \
440 -display none \
441- -netdev socket,mcast=230.0.0.1:12320,id=net0 \
442- -net nic,macaddr=52:54:01:12:34:56,model=e1000,netdev=net0 \
443- -serial $SERIAL \
444+ -net socket,listen=127.0.0.1:12350 \
445+ -net nic,macaddr=52:54:01:12:34:56,model=e1000 \
446+ ${SERIAL+-serial $SERIAL} \
447 -watchdog i6300esb -watchdog-action poweroff \
448 -kernel /boot/vmlinuz-$KVERSION \
449 -append "loglevel=77 root=/dev/sda rootfstype=ext3 rw console=ttyS0,115200n81 selinux=0" \
450@@ -53,15 +52,13 @@ client_test() {
451 fi
452
453 $testdir/run-qemu -hda $TESTDIR/client.img -m 512M -smp 2 -nographic \
454- -netdev socket,mcast=230.0.0.1:12320,id=net0 \
455- -net nic,netdev=net0,macaddr=52:54:00:12:34:$mac1,model=e1000 \
456- -netdev socket,mcast=230.0.0.1:12320,id=net1 \
457- -net nic,netdev=net1,macaddr=52:54:00:12:34:$mac2,model=e1000 \
458- -netdev socket,mcast=230.0.0.1:12320,id=net2 \
459- -net nic,netdev=net2,macaddr=52:54:00:12:34:$mac3,model=e1000 \
460+ -net socket,connect=127.0.0.1:12350 \
461+ -net nic,macaddr=52:54:00:12:34:$mac1,model=e1000 \
462+ -net nic,macaddr=52:54:00:12:34:$mac2,model=e1000 \
463+ -net nic,macaddr=52:54:00:12:34:$mac3,model=e1000 \
464 -watchdog i6300esb -watchdog-action poweroff \
465 -kernel /boot/vmlinuz-$KVERSION \
466- -append "$cmdline $DEBUGFAIL rd.retry=5 rd.info ro rd.systemd.log_level=debug console=ttyS0,115200n81 selinux=0 rd.copystate rd.chroot init=/sbin/init" \
467+ -append "$cmdline $DEBUGFAIL rd.retry=5 rd.info ro console=ttyS0,115200n81 selinux=0 init=/sbin/init" \
468 -initrd $TESTDIR/initramfs.testing
469
470 if [[ $? -ne 0 ]] || ! grep -m 1 -q OK $TESTDIR/client.img; then
471@@ -252,14 +249,14 @@ test_setup() {
472 # Make server's dracut image
473 $basedir/dracut.sh -l -i $TESTDIR/overlay / \
474 -m "dash udev-rules base rootfs-block debug kernel-modules watchdog" \
475- -d "af_packet piix ide-gd_mod ata_piix ext3 sd_mod nfsv2 nfsv3 nfsv4 nfs_acl nfs_layout_nfsv41_files nfsd e1000 i6300esbwdt" \
476+ -d "af_packet piix ide-gd_mod ata_piix ext3 sd_mod nfsv2 nfsv3 nfsv4 nfs_acl nfs_layout_nfsv41_files nfsd e1000 i6300esb ib700wdt" \
477 -f $TESTDIR/initramfs.server $KVERSION || return 1
478
479 # Make client's dracut image
480 $basedir/dracut.sh -l -i $TESTDIR/overlay / \
481 -o "plymouth" \
482 -a "debug" \
483- -d "af_packet piix sd_mod sr_mod ata_piix ide-gd_mod e1000 nfsv2 nfsv3 nfsv4 nfs_acl nfs_layout_nfsv41_files sunrpc i6300esbwdt" \
484+ -d "af_packet piix sd_mod sr_mod ata_piix ide-gd_mod e1000 nfsv2 nfsv3 nfsv4 nfs_acl nfs_layout_nfsv41_files sunrpc i6300esb ib700wdt" \
485 -f $TESTDIR/initramfs.testing $KVERSION || return 1
486 }
487
488diff --git a/test/TEST-99-RPM/test.sh b/test/TEST-99-RPM/test.sh
489index 66f0beb..f030cb0 100755
490--- a/test/TEST-99-RPM/test.sh
491+++ b/test/TEST-99-RPM/test.sh
492@@ -50,6 +50,7 @@ find / -xdev -type f -not -path '/var/*' \
493 -not -path '/test.output' \
494 -not -path '/etc/nsswitch.conf.bak' \
495 -not -path '/etc/iscsi/initiatorname.iscsi' \
496+ -not -path '/boot/*0-rescue*' \
497 -not -path '/dev/null' \
498 -exec rpm -qf '{}' ';' | \
499 fgrep 'not owned' &> /test.output
This page took 0.078846 seconds and 4 git commands to generate.