Maintaining dracut ================== 1. Adding/Submitting patches: Patches are added as merge requests on GitHub against the respective maintenance branch. Currently, these active maintenance branches are: - SUSE/044 -> SLE 12 SP5 - SUSE/049 -> SLE 15 SP2, SLE 15 SP3 - SUSE/055 -> SLE 15 SP4 - SLE-15-SP5_Update -> SLE 15 SP5 (based on SUSE/055 plus some specific patches) - SUSE/059 -> Tumbleweed Rules: - Follow the commit message convention [1]. - Write related Bugzilla ID in the commit message (the dracut.changes file is updated automatically from the information of the patch). - If the Bugzilla ID cannot be added to the commit title because the length is greater than 80 characters (the maximum allowed), then write it into the commit description (it must be manually added to dracut.changes prior to OBS submission). - To indicate backports of upstream commits use `git cherry-pick -x` (this automatically appends "cherry picked from commit xxxxx"). - First, check if your patch can be submitted upstream, and if so, do it there first. Once approved, it can be backported here. Example, fix for https://bugzilla.opensuse.org/show_bug.cgi?id=1203749: ``` commit 92a6793c7d94a9a70c99ffcaf72112808164851b Author: Antonio Alvarez Feijoo Date: Wed Sep 21 11:54:17 2022 +0200 fix(systemd): add missing modprobe@.service (bsc#1203749) sys-kernel-config.mount needs modprobe@configfs.service since systemd v246.7 (https://github.com/systemd/systemd/commit/42cc2855), so the kernel configfs fails to mount in the initrd. (cherry picked from commit 928252a145ca44627ba5873e01245eabe246992f) ``` 2. Updating the OBS repo: 2.1. Branch dracut - Go to the Factory OBS repo [2] and "Branch Package". - Checkout branch with `osc`: $ osc checkout home:USER:branches:openSUSE:Factory/dracut 2.2. Trigger services and build the package $ rm dracut*.xz $ rm dracut*.obscpio $ osc service manualrun $ osc ar * Verify that the new Bugzilla IDs are referenced in the dracut.changes file. 2.3. Commit the changes $ osc commit * Verify that the package is correctly built in the OBS branch. * Test the built package and make sure it fixes the bug. 2.4. Create request to submit source $ osc sr * The request is submitted against the OBS Devel repo [3]. -- [1] Commit message convention: https://github.com/dracutdevs/dracut/blob/master/docs/HACKING.md#commit-messages [2] Factory OBS repo: https://build.opensuse.org/package/show/openSUSE:Factory/dracut [3] Factory OBS Devel repo: https://build.opensuse.org/package/show/Base:System/dracut Current status of the SUSE/059 branch (Tumbleweed) ================================================== 1. Upstream commits that were already merged The following list shows the commits merged (those marked with "MERGED") since the upgrade to dracut-059 (0aa08f0e docs: update NEWS.md and AUTHORS), extracted using `git log --oneline 0aa08f0e..HEAD`: 4980bad3 fix(configure): misleading error if C compiler is not installed de8ac630 fix(github): update format of labeler MERGED 4971f443 fix(systemd-journald): add systemd-sysusers dependency MERGED 4d594210 fix(dracut-initramfs-restore.sh): do not set selinux labels if disabled MERGED 1586af09 fix(systemd-repart): correct undefined $libdir MERGED bddffeda fix(overlayfs): split overlayfs mount in two steps MERGED 1c762c0d fix(pkcs11): delete trailing dot on libcryptsetup-token-systemd-pkcs11.so 856e7acd docs: update NEWS.md and AUTHORS MERGED b2af8c8b fix(install.d): do not create initramfs if the supplied image is UKI MERGED bee1c482 feat(systemd): install systemd-executor 6acfecae chore: remove unnecessary shellcheck disable for SC1087 MERGED 6c80408c fix(dracut.sh): remove microcode check based on CONFIG_MICROCODE_[AMD|INTEL] b4e23ce4 fix(release): maintain dracut-version.sh in the source tree 23389f6d docs: set KVERSION for running test suite 0b81e8eb chore: remove unnecessary shellcheck disable for SC2154 MERGED 16645633 feat(install.d): allow using dracut in combination with ukify 6f78e5de test: support disabling KVM by setting NO_KVM 65f0ef52 test: set QEMU machine for ARM and PowerPC f29e428b fix(test): only use QEMU machine q35 on x86 fb7d5ec4 test: support /boot/vmlinux a1e63b18 test: log qemu calls to ease debugging bf97572b test: introduce overridable ARCH variable in run-qemu 9a18f133 fix(test): use bash for jobs -r parameter 8e9d89d9 ci: also run integration test on Ubuntu 31c4d284 feat(Makefile): allow setting dracut version via environment variables ddf63231 fix: codespell 028f7632 test: fix skipcpio path for installed binary dbee4f37 test: skip test 98 if dracut-util is not available c0321c90 test: make package libdir configurable f9939d0e test: make dracut directory configurable MERGED 7528d84d fix(systemd): add new systemd-tmpfiles-setup-dev-early.service MERGED 570b9d40 fix(systemd-udevd): add missing override paths MERGED 32f6f364 fix(dracut-install): protect against broken links pointing to themselves MERGED b2c6b584 fix(dracut.sh): exit if resolving executable dependencies fails fffeaded feat(dracut): add --sbat option to add sbat policy to UKI af3076a1 ci: run all local tests on all containers (including Gentoo) 699d51c5 chore(dracut-init.sh): remove support for obsolete syntax 83eccc74 ci: change the order of lint jobs as lint_shell is more likely to fail d55fa823 ci: migrate from systemd-boot to systemd-utils in Gentoo container 403f4e8e ci: do not run test container generation on forked repos by default MERGED 16855765 refactor(install): log about missing firmware only once c46513fb test: increase test VM memory from 512M to 1024M to avoid OOM killer MERGED a804945f fix(integrity): do not require ls e278a965 ci: match comment with code 9e1e9245 ci: automate release generation a3758704 ci: allow the release generation script to compute the next release 5cdd4b35 refactor(Makefile): improve AUTHORS and CONTRIBUTORS targets MERGED 6c9f403f fix(dracut-init.sh): `module_check` method ignores `forced` option MERGED c4e6eaf9 feat(systemd-rfkill): remove module MERGED f11e8fff fix(man): add missing initrd-root-device.target to flow chart MERGED 1b53bb62 fix(dracut-init.sh): use the local _ret variable 273e4811 ci: install util-linux-systemd and systemd-boot into openSUSE container dbdab2d8 fix(dracut.sh): shellcheck warning SC1004 MERGED 33a66ed0 fix(dracut.sh): use gawk for strtonum MERGED 6af3fcfd fix(man): remove duplicate entry 81d78c4e ci: release MERGED 52351cfa feat(livenet): add memory size check depending on live image size MERGED 15d4f60e chore(gentoo.conf): remove examples to avoid confusion MERGED b7ef1302 fix(modsign): load keys to correct keyring MERGED 179e1a99 fix(dmsquash-live-autooverlay): specify filesystemtype when it is already known MERGED a71b905e chore: remove git2spec.pl, it is no longer used MERGED 9aa332ca fix(fs-lib): remove quoting form the first argument of the e2fsck call MERGED f5cc202e fix(Makefile): remove leftover rpm build rules MERGED ffc766d2 fix(Makefile): no longer upload to kernel.org MERGED b490f6f7 feat(nvmf): add code for parsing the NBFT MERGED f07117d6 fix(nvmf): support /etc/nvme/config.json MERGED 902f3a8f fix(nvmf): install 8021q module unconditionally MERGED 17b8649e fix(install.d): respect even more kernel-install vars, plus style fixes MERGED a037634a fix(install.d): respect more kernel-install env variables MERGED 09d3ec16 fix(dracut.sh): also prevent fsfreeze for tmpfs 4000a1ec fix(dmsquash-live): allow other fstypes 995ac6f8 test(DMSQUASH): add test for NTFS d96754ea test(16): check for failure after each sub-test run MERGED dfa408c9 fix(bluetooth): make bluetooth rules more strict MERGED e84d65c5 fix(bluetooth): add missing files MERGED 8079ceaf fix(bluetooth): include it if Appearance matches the value assigned for keyboard 0ecb0388 fix(bluetooth): warn user instead of including it by default MERGED 765e69ce fix(systemd-timedated): correct typo in override path MERGED 2d083021 fix(systemd-resolved): correct typo in override path MERGED f0dc7ec9 fix(systemd-networkd): correct typos in override paths MERGED 3e2f685e fix(dracut-init.sh): correct check in `is_qemu_virtualized` function MERGED 7ed765dd fix(btrfs): do not require module via cmdline when --no-kernel MERGED 2b47a2ef fix(btrfs): add missing cmdline function 2ff7b470 ci: conditionally add tgt to Gentoo container d06153f8 ci: re-enable lvm on Gentoo container a9ecb5e3 ci: disable initramfs generation inside Gentoo container 5803ece5 ci: add extra packages for tests to Gentoo container 6fd6b36d ci: switching the musl test to 18 (uefi) af31df4b test(ISCSI): make test-30 use the test dracut modules dcf4665b ci: add dependencies to Debian container ec2c7e1a test(UEFI): add test case for UEFI boot MERGED c1b3f88d docs: remove rd.lvm.snapsize and rd.lvm.snapshot MERGED 4235c035 fix(Makefile): execute command -v instead of which MERGED e2f961a2 fix(network-legacy): typo MERGED 3f8f115a fix(network,dbus): improve dependency checking MERGED cd6f683d fix(systemd-pcrphase): only include systemd-pcrphase-initrd.service MERGED 1ef00735 fix(systemd-tmpfiles): do not include systemd-tmpfiles-clean.timer MERGED eff2a939 fix(systemd-journald): do not include systemd-journal-flush.service MERGED 925febf8 fix(systemd): do not include systemd-random-seed.service c1588995 fix(dracut.sh): correct path for UEFI stub on split-usr systems MERGED aa20bbb5 feat(dracut-init.sh): do not print by default if an udev rule is skipped c5e036b1 test: move more makeroot dependencies into test-makeroot dracut module MERGED afb5717e fix(kernel-modules): add interconnect drivers d244b316 test(LVM-THIN): avoid thin pool size warning 739b9e1b ci: cleanup containers ae7cd94b test: add empty default test_cleanup implementation f1346763 test: move more common test code to test-functions 5ac581ef fix(resolve-deps): check the existing fileā€”not the source MERGED 07af8d58 fix(dracut-lib.sh): remove successful finished initqueue scripts MERGED 7310a641 fix(udev-rules): remove firmware.rules fc182ed8 docs: change ext3 to ext4 MERGED 2a26eec5 fix(dracut.sh): silence the output of hardlinking files by default c8a703aa fix(github): exempt issues in a milestone MERGED 07b49a3e fix(virtiofs): add virtio_pci kernel module to virtiofs c08ae406 ci: install multipath-tools into openSuse container d1187543 test: remove references of dhcpd3 from tests 1843c16c test: move test condition to test_check 006890a2 test: upgrade to ext4 MERGED 86c8a5a7 fix(dracut-systemd): rootfs-generator cannot write outside of generator dir MERGED acfa793b fix(dracut-systemd): check and create generator dir outside of inner function MERGED a7c04716 fix(dracut-systemd): do not hardcode the systemd generator directory 6cd41ab5 ci: add more packages to allow testing more dracut containers 19c54395 ci: simplify and sort 6178a9d8 fix(dracut.sh): handle imagebase for uefi MERGED 67591e88 fix(dracut-functions): avoid calling grep with PCRE (-P) MERGED 260883d9 fix(dracut-initramfs-restore.sh): handle /etc/machine-id empty or uninitialized MERGED 971b302d fix(lsinitrd.sh): handle /etc/machine-id empty or uninitialized MERGED 97fe0976 fix(dracut.sh): handle /etc/machine-id empty or uninitialized 48c2cb45 feat(systemd-creds): introducing the systemd-creds module MERGED 71e391eb fix(systemd-networkd): add missing conf files and services MERGED a62e895d fix(dracut-functions.sh): convert mmcblk to the real kernel module name MERGED 297525c5 fix(multipath): remove dependency on multipathd.socket MERGED 1300a930 feat(lsinitrd): notify user on missing compressor MERGED a0d14d3b fix(99base): adjust to allow mksh as initrd shell MERGED 8b951d20 fix(base): do not quote $CLINE in the `set` command MERGED df2458a6 fix(systemd-ac-power): correct systemd-ac-power binary path MERGED f32e95bc fix(dracut.sh): use dynamically uefi's sections offset MERGED e9b47742 fix(lvmthinpool-monitor): activate lvm thin pool before extend its size aca51203 chore(deps): bump luizm/action-sh-checker from 0.5.0 to 0.6.0 MERGED 0e780720 fix(dmsquash-live): restore compatibility with earlier releases MERGED 1ddcb137 fix(dracut.sh): kmoddir does not handle trailing / MERGED 6d554d9b fix(udev-rules): remove old eudev specific rule MERGED d648bf80 fix(udev-rules): remove old redhat specific rule MERGED 6a33e677 fix(udev-rules): remove old edd_id extra rules MERGED 1edc41af fix(udev-rules): remove old debian specific rules 8f9ad068 feat(test): nfs_fetch_url test into nfs test 966b6cec fix(url-lib.sh): nfs_already_mounted() with trailing slash in nfs path f9bcd4d2 ci: use CodeQL instead of LGTM MERGED ae88e029 feat(dracut): use log level indicator in console output MERGED df381b7e feat(kernel-modules): driver support for macbook keyboards 131822e2 fix(dracut-install): prevent possible infinite recursion with suppliers MERGED f3a7172d build: remove rpm spec file and build rules MERGED 89269d23 fix(kernel-modules): add UFS drivers MERGED 87a76dbb fix(kernel-modules): use modalias info in get_dev_module() MERGED c5dca3d6 fix(crypt): add missing libraries MERGED 61ceb35f revert(network-manager): avoid restarting NetworkManager MERGED a6dd5bfb fix(dracut.sh): handle sbsign errors for UEFI builds MERGED 8602df70 fix(dracut.sh): handle out of space error for UEFI builds MERGED 726d56ca fix(network): IPv6: don't wait for RA for static IPv6 assignments MERGED b074216b fix(network-legacy): always include af_packet MERGED 7ff255a4 fix(network): don't assume prefix length 64 by default MERGED c3b65a49 fix(iscsi): prefix syntax for static iBFT IPv6 addresses MERGED aa5d9526 fix(iscsi): install 8021q module unconditionally 3de4c731 feat(dracut-install): add fw_devlink suppliers as module dependencies f0c3b683 refactor(dracut-install): add Hashmap cleanup function 8ea8cf5f refactor(dracut-install): add function to install one dependent module 88aeca2a chore(deps): bump luizm/action-sh-checker from 0.2.2 to 0.5.0 MERGED 16931f52 chore(shfmt): update to pass with shfmt v3.5.1 MERGED d777dd3d fix(fips): move fips-boot script to pre-pivot MERGED ab26ad2c fix(fips): only unmount /boot if it was mounted by the fips module MERGED 68d0653e feat(fips): add progress messages MERGED 1fabbb64 fix(fips): do not blindly remove /boot c95075e2 chore(base): remove support for %m efd4ca27 perf(dracut-install): don't strdup() environment block 77226cb4 perf(dracut-install): don't reallocate {src,dst}path in hmac_install() a20556f0 perf(dracut-install): don't strdup() excessively for dracut_install() e7ed8337 perf(dracut-install): stat() w/unused buf -> access(F_OK) in dracut-install 751a110f perf(dracut-install): multiple single-character strstr()s -> strpbrk() 1e5237dd chore: remove src/install/hashmap.lo MERGED 9dbbebb1 feat(network-wicked): remove module 2. Commits from upstream pull requests that were already merged PR Commit message ---- -------------- 2342 fix(systemd-sysext): handle confexts and correct extensions search path 2404 fix(multipath): explicitly check if hostonly_cmdline is yes 2451 fix(base): correct handling of quiet in loginit 2524 fix(dracut.sh): abort if Bash is in POSIX mode 2527 fix(resume): add new systemd-hibernate-resume.service 2531 feat(kernel-modules): add Qualcomm IPC router to enable USB 2532 fix(dracut-systemd): use `DRACUT_VERSION` instead of `VERSION` 2533 fix(install.d): do not generate a new initrd if any INITRD_FILE is provided 2547 fix(pcsc): add opensc load module file 2547 fix(pcsc): add --disable-polkit to pcscd.service 2556 fix(90kernel-modules): add intel_lpss_pci for MacBook Pro 2017 2557 feat(kernel-modules): install SPMI modules on ARM/RISC-V 2559 feat(install.d): add sort-key field to rescue BLS entries 2560 feat(resume): do not attempt to install systemd-hibernate-resume@.service 2593 fix(dracut.sh): do not add device if find_block_device returns an error 2593 feat(dracut.sh): protect push_host_devs function 2607 fix(dracut-util): do not call strcmp if the value argument is NULL 2607 fix(dracut): correct regression with multiple `rd.break=` options 2611 fix(livenet): propagate error code 2611 fix(livenet): check also `content-length` from live image header 2611 fix(livenet): split `imgsize` calculation to avoid misleading error message 2613 fix(i18n): handle symlinked keymap 2614 fix(dracut-systemd): replace `rd.udev.log-priority` with `rd.udev.log_level` 2618 fix(i18n): handle keymap includes with `--sysroot` 2618 fix(dracut-init.sh): handle decompress with `--sysroot`