diff --git a/.dracut.metadata b/.dracut.metadata new file mode 100644 index 0000000..a463fbe --- /dev/null +++ b/.dracut.metadata @@ -0,0 +1 @@ +5b8bfb4e333dd5de1e4a4ce8562abb813d9093fc SOURCES/dracut-055.tar.xz diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..896f693 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/dracut-055.tar.xz diff --git a/SOURCES/0001.patch b/SOURCES/0001.patch new file mode 100644 index 0000000..126a5a5 --- /dev/null +++ b/SOURCES/0001.patch @@ -0,0 +1,474 @@ +From 0cdd05ba6644ef6215e4cfa83e1759f7059b5d6d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Nykr=C3=BDn?= +Date: Mon, 7 Jun 2021 14:02:29 +0200 +Subject: [PATCH] Merge pull request #1 from mrc0mmand/ci-config + +CI configuration +--- + .github/labeler.yml | 293 ------------------------------------------- + .github/stale.yml | 21 ---- + .github/workflows/labels.yml | 11 -- + .github/workflows/pr.yml | 19 --- + .packit.yml | 72 +++++------ + 5 files changed, 31 insertions(+), 385 deletions(-) + +diff --git a/.github/labeler.yml b/.github/labeler.yml +deleted file mode 100644 +index 73f51875..00000000 +--- a/.github/labeler.yml ++++ /dev/null +@@ -1,293 +0,0 @@ +-repository: +- - ./* +- +-github: +- - .github/* +- - .github/**/* +- +-dracut-install: +- - install/* +- - install/**/* +- +-example: +- - examples/* +- - examples/**/* +- - examples/**/**/* +- +-modules: +- - modules.d/* +- - modules.d/**/* +- +-bash: +- - modules.d/00bash/* +- +-bootchart: +- - modules.d/00bootchart/* +- +-dash: +- - modules.d/00dash/* +- +-mksh: +- - modules.d/00mksh/* +- +-systemd: +- - modules.d/00systemd/* +- +-warpclock: +- - modules.d/00warpclock/* +- +-fips: +- - modules.d/01fips/* +- +-systemd-initrd: +- - modules.d/01systemd-initrd/* +- +-caps: +- - modules.d/02caps/* +- +-systemd-networkd: +- - modules.d/02systemd-networkd/* +- +-modsign: +- - modules.d/03modsign/* +- +-rescue: +- - modules.d/03rescue/* +- +-watchdog: +- - modules.d/04watchdog/* +- +-busybox: +- - modules.d/05busybox/* +- +-rngd: +- - modules.d/06rngd/* +- +-i18n: +- - modules.d/10i18n/* +- +-convertfs: +- - modules.d/30convertfs/* +- +-network-legacy: +- - modules.d/35network-legacy/* +- +-network-manager: +- - modules.d/35network-manager/* +- +-network: +- - modules.d/40network/* +- +-ifcfg: +- - modules.d/45ifcfg/* +- +-url-lib: +- - modules.d/45url-lib/* +- +-drm: +- - modules.d/50drm/* +- +-gensplash: +- - modules.d/50gensplash/* +- +-plymouth: +- - modules.d/50plymouth/* +- +-cms: +- - modules.d/80cms/* +- +-lvmmerge: +- - modules.d/80lvmmerge/* +- +-cio_ignore: +- - modules.d/81cio_ignore/* +- +-btrfs: +- - modules.d/90btrfs/* +- +-crypt: +- - modules.d/90crypt/* +- +-dm: +- - modules.d/90dm/* +- +-dmraid: +- - modules.d/90dmraid/* +- +-dmsquash-live: +- - modules.d/90dmsquash-live/* +- +-dmsquash-live-ntfs: +- - modules.d/90dmsquash-live-ntfs/* +- +-kernel-modules: +- - modules.d/90kernel-modules/* +- +-kernel-modules-extra: +- - modules.d/90kernel-modules-extra/* +- +-kernel-network-modules: +- - modules.d/90kernel-network-modules/* +- +-livenet: +- - modules.d/90livenet/* +- +-lvm: +- - modules.d/90lvm/* +- +-mdraid: +- - modules.d/90mdraid/* +- +-multipath: +- - modules.d/90multipath/* +- +-nvdimm: +- - modules.d/90nvdimm/* +- +-ppcmac: +- - modules.d/90ppcmac/* +- +-qemu: +- - modules.d/90qemu/* +- +-qemu-net: +- - modules.d/90qemu-net/* +- +-stratis: +- - modules.d/90stratis/* +- +-crypt-gpg: +- - modules.d/91crypt-gpg/* +- +-crypt-loop: +- - modules.d/91crypt-loop/* +- +-zipl: +- - modules.d/91zipl/* +- +-cifs: +- - modules.d/95cifs/* +- +-dasd: +- - modules.d/95dasd/* +- +-dasd_mod: +- - modules.d/95dasd_mod/* +- +-dasd_rules: +- - modules.d/95dasd_rules/* +- +-dcssblk: +- - modules.d/95dcssblk/* +- +-debug: +- - modules.d/95debug/* +- +-fcoe: +- - modules.d/95fcoe/* +- +-fcoe-uefi: +- - modules.d/95fcoe-uefi/* +- +-fstab-sys: +- - modules.d/95fstab-sys/* +- +-iscsi: +- - modules.d/95iscsi/* +- +-lunmask: +- - modules.d/95lunmask/* +- +-nbd: +- - modules.d/95nbd/* +- +-nfs: +- - modules.d/95nfs/* +- +-nvmf: +- - modules.d/95nvmf/* +- +-qeth_rules: +- - modules.d/95qeth_rules/* +- +-resume: +- - modules.d/95resume/* +- +-rootfs-block: +- - modules.d/95rootfs-block/* +- +-ssh-client: +- - modules.d/95ssh-client/* +- +-terminfo: +- - modules.d/95terminfo/* +- +-udev-rules: +- - modules.d/95udev-rules/* +- +-virtfs: +- - modules.d/95virtfs/* +- +-zfcp: +- - modules.d/95zfcp/* +- +-zfcp_rules: +- - modules.d/95zfcp_rules/* +- +-znet: +- - modules.d/95znet/* +- +-securityfs: +- - modules.d/96securityfs/* +- +-biosdevname: +- - modules.d/97biosdevname/* +- +-masterkey: +-- modules.d/97masterkey/* +- +-dracut-systemd: +- - modules.d/98dracut-systemd/* +- +-ecryptfs: +- - modules.d/98ecryptfs/* +- +-integrity: +- - modules.d/98integrity/* +- +-pollcdrom: +- - modules.d/98pollcdrom/* +- +-selinux: +- - modules.d/98selinux/* +- +-syslog: +- - modules.d/98syslog/* +- +-usrmount: +- - modules.d/98usrmount/* +- +-base: +- - modules.d/99base/* +- +-fs-lib: +- - modules.d/99fs-lib/* +- +-img-lib: +- - modules.d/99img-lib/* +- +-memstrack: +- - modules.d/99memstrack/* +- +-shutdown: +- - modules.d/99shutdown/* +- +-squash: +- - modules.d/99squash/* +- +-uefi-lib: +- - modules.d/99uefi-lib/* +- +-test: +- - test/* +- - test/**/* +diff --git a/.github/stale.yml b/.github/stale.yml +deleted file mode 100644 +index 1e873606..00000000 +--- a/.github/stale.yml ++++ /dev/null +@@ -1,21 +0,0 @@ +-# Number of days of inactivity before an issue becomes stale +-daysUntilStale: 30 +-# Number of days of inactivity before a stale issue is closed +-daysUntilClose: 7 +-# Issues with these labels will never be considered stale +-exemptLabels: +- - documents +- - enhancement +- - regression +- - wiki +- - bug +-# Label to use when marking an issue as stale +-staleLabel: stale +-# Comment to post when marking an issue as stale. Set to `false` to disable +-markComment: > +- This issue is being marked as stale because it has not had any recent activity. +- It will be closed if no further activity occurs. +- If this is still an issue in the latest release of Dracut and you would like to keep it open please comment on this issue within the next 7 days. +- Thank you for your contributions. +-# Comment to post when closing a stale issue. Set to `false` to disable +-closeComment: false +diff --git a/.github/workflows/labels.yml b/.github/workflows/labels.yml +deleted file mode 100644 +index 9fa7a929..00000000 +--- a/.github/workflows/labels.yml ++++ /dev/null +@@ -1,11 +0,0 @@ +-name: "Pull Request Labeler" +- +-on: pull_request_target +- +-jobs: +- triage: +- runs-on: ubuntu-latest +- steps: +- - uses: actions/labeler@main +- with: +- repo-token: "${{ secrets.GITHUB_TOKEN }}" +diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml +deleted file mode 100644 +index ee46168e..00000000 +--- a/.github/workflows/pr.yml ++++ /dev/null +@@ -1,19 +0,0 @@ +-name: Commisery +-on: +- pull_request: +- types: [edited, opened, synchronize, reopened] +- +-jobs: +- commit-message: +- name: Conventional Commit Message Checker (Commisery) +- runs-on: ubuntu-latest +- steps: +- - name: Check-out the repo under $GITHUB_WORKSPACE +- uses: actions/checkout@v2 +- +- - name: Run Commisery +- uses: dracutdevs/commisery-action@master +- with: +- token: ${{ secrets.GITHUB_TOKEN }} +- pull_request: ${{ github.event.number }} +- +diff --git a/.packit.yml b/.packit.yml +index 482b4c4d..acc1f968 100644 +--- a/.packit.yml ++++ b/.packit.yml +@@ -1,55 +1,45 @@ ++--- + # This file is part of dracut. + # SPDX-License-Identifier: GPL-2.0-or-later ++# ++# vi:ts=2 sw=2 et: ++# ++# Docs: https://packit.dev/docs/ + +-# The name of the upstream package ++specfile_path: .packit_rpm/dracut.spec ++synced_files: ++ - .packit.yaml ++ - src: .packit_rpm/dracut.spec ++ dest: dracut.spec + upstream_package_name: dracut +- +-# The upstream tag versioning scheme +-upstream_tag_template: "{version}" +- +-# The URL of the upstream project +-upstream_project_url: https://github.com/dracutdevs/dracut +- +-# Relative path to a spec file within the upstream repository +-specfile_path: pkgbuild/dracut.spec +- +-# Name of the downstream package + downstream_package_name: dracut ++upstream_tag_template: "{version}" + +-# The URL of the downstream project +-dist_git_base_url: https://src.fedoraproject.org/ +- +-# Sync file(s) from upstream repo to dist-git +-synced_files: +- # The dracut spec file is maintained upstream so we sync it downstream. +- - dracut.spec +- # We sync the packit file downstream be able to optionally use the sync-from-downstream command +- - .packit.yaml ++actions: ++ post-upstream-clone: ++ # Use the CentOS Stream specfile ++ - "git clone https://gitlab.com/redhat/centos-stream/rpms/dracut .packit_rpm --depth=1" ++ # Drop the "sources" file so rebase-helper doesn't think we're a dist-git$ ++ - "rm -fv .packit_rpm/sources" + +-# We want new releases to be automatically built on rawhide and have few jobs +-# on copr. +-create_pr: false ++# Available targets can be listed via `copr-cli list-chroots` + jobs: +-- job: propose_downstream +- trigger: release +- metadata: +- dist_git_branches: main +- +-- job: tests +- trigger: pull_request +- metadata: +- targets: +- - fedora-rawhide +- ++# Build test + - job: copr_build + trigger: pull_request + metadata: + targets: +- - fedora-development +- +-- job: copr_build +- trigger: commit ++ - epel-8-x86_64 ++ - epel-8-aarch64 ++ # FIXME: change to CentOS 9 once it's available ++ - fedora-34-x86_64 ++ - fedora-34-aarch64 ++ - fedora-34-s390x ++ ++# Run tests (via testing farm) ++- job: tests ++ trigger: pull_request + metadata: + targets: +- - fedora-all +- - fedora-development ++ # FIXME: change to CentOS 9 once it's available ++ - fedora-34-x86_64 + diff --git a/SOURCES/0002.patch b/SOURCES/0002.patch new file mode 100644 index 0000000..d64196a --- /dev/null +++ b/SOURCES/0002.patch @@ -0,0 +1,87 @@ +From 976f5e053537e424edcdcb2325230d370454efd5 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Nykr=C3=BDn?= +Date: Mon, 7 Jun 2021 19:40:22 +0200 +Subject: [PATCH] Merge pull request #3 from + redhat-plumbers/reconfigure-gh-actions + +ci: drop the hardcoded repo owner name +--- + .github/workflows/container.yml | 6 +++--- + .github/workflows/integration.yml | 6 +++--- + .github/workflows/lint.yml | 4 ++-- + 3 files changed, 8 insertions(+), 8 deletions(-) + +diff --git a/.github/workflows/container.yml b/.github/workflows/container.yml +index 0706bf48..32bb7f16 100644 +--- a/.github/workflows/container.yml ++++ b/.github/workflows/container.yml +@@ -3,12 +3,12 @@ on: + schedule: + - cron: '30 11 * * *' # every day at 4:40 + push: +- branches: [ master ] ++ branches: [ main ] + paths: + - 'test/container/**' + - '.github/workflows/container.yml' + pull_request: +- branches: [ master ] ++ branches: [ main ] + paths: + - 'test/container/**' + - '.github/workflows/container.yml' +@@ -50,5 +50,5 @@ jobs: + uses: docker/build-push-action@v2 + with: + file: test/container/${{ matrix.config.dockerfile }} +- tags: ghcr.io/dracutdevs/${{ matrix.config.tag }} ++ tags: ghcr.io/${{ github.repository_owner }}/${{ matrix.config.tag }} + push: ${{ github.event_name == 'push' || github.event_name == 'schedule' }} +diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml +index 89310d44..18582364 100644 +--- a/.github/workflows/integration.yml ++++ b/.github/workflows/integration.yml +@@ -2,7 +2,7 @@ name: Integration Test + + on: + pull_request: +- branches: [ master ] ++ branches: [ main ] + + jobs: + basic: +@@ -24,7 +24,7 @@ jobs: + ] + fail-fast: false + container: +- image: ghcr.io/dracutdevs/${{ matrix.container }} ++ image: ghcr.io/${{ github.repository_owner }}/${{ matrix.container }} + options: "--privileged -v /dev:/dev" + steps: + - name: "Checkout Repository" +@@ -69,7 +69,7 @@ jobs: + ] + fail-fast: false + container: +- image: ghcr.io/dracutdevs/${{ matrix.container }} ++ image: ghcr.io/${{ github.repository_owner }}/${{ matrix.container }} + options: "--privileged -v /dev:/dev" + steps: + - name: "Checkout Repository" +diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml +index 7b1b8ee7..f6778a65 100644 +--- a/.github/workflows/lint.yml ++++ b/.github/workflows/lint.yml +@@ -2,9 +2,9 @@ name: Lint + + on: + push: +- branches: [ master ] ++ branches: [ main ] + pull_request: +- branches: [ master ] ++ branches: [ main ] + + jobs: + lint-c: + diff --git a/SOURCES/0003.patch b/SOURCES/0003.patch new file mode 100644 index 0000000..7b9227c --- /dev/null +++ b/SOURCES/0003.patch @@ -0,0 +1,143 @@ +From 5384368467e20c3243223ed46b997954c0d9eea0 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Nykr=C3=BDn?= +Date: Wed, 9 Jun 2021 14:12:25 +0200 +Subject: [PATCH] Merge pull request #6 from redhat-plumbers/centos-stream-job + +ci: add a CentOS 8 Stream job +--- + .github/workflows/container.yml | 1 + + .github/workflows/integration.yml | 41 ++++++++++++++++++++ + test/container/Dockerfile-CentOS-8-Stream | 63 +++++++++++++++++++++++++++++++ + 3 files changed, 105 insertions(+) + +diff --git a/.github/workflows/container.yml b/.github/workflows/container.yml +index 32bb7f16..a8b3f9b8 100644 +--- a/.github/workflows/container.yml ++++ b/.github/workflows/container.yml +@@ -33,6 +33,7 @@ jobs: + - { dockerfile: 'Dockerfile-Fedora-rawhide', tag: 'fedora:rawhide' } + - { dockerfile: 'Dockerfile-OpenSuse-latest', tag: 'opensuse:latest' } + - { dockerfile: 'Dockerfile-Arch', tag: 'arch:latest' } ++ - { dockerfile: 'Dockerfile-CentOS-8-Stream', tag: 'centos:stream8' } + steps: + - name: Check out the repo + uses: actions/checkout@v2 +diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml +index 18582364..9ea718f1 100644 +--- a/.github/workflows/integration.yml ++++ b/.github/workflows/integration.yml +@@ -79,3 +79,44 @@ jobs: + + - name: "${{ matrix.container }} TEST-${{ matrix.test }}" + run: ./tools/test-github.sh "TEST-${{ matrix.test }}" ${{ matrix.test }} ++ centos-8-stream: ++ runs-on: ubuntu-latest ++ timeout-minutes: 45 ++ concurrency: ++ group: ${{ github.workflow }}-${{ github.ref }}-${{ matrix.container }}-${{ matrix.test }} ++ cancel-in-progress: true ++ strategy: ++ matrix: ++ container: [ ++ "centos:stream8", ++ ] ++ # Disabled tests (due to dropped packages in RHEL/CentOS): ++ # 03, 04, 15: requires btrfs ++ # 14: requires dmraid ++ # 30, 31, 35, 36: requires scsi-target-utils ++ test: [ ++ "01", ++ "02", ++ "10", ++ "11", ++ "12", ++ "13", ++ "17", ++ "20", ++ "21", ++ "40", ++ "41", ++ "98", ++ ] ++ fail-fast: false ++ container: ++ image: ghcr.io/${{ github.repository_owner }}/${{ matrix.container }} ++ options: "--privileged -v /dev:/dev" ++ steps: ++ - name: "Checkout Repository" ++ uses: actions/checkout@v2 ++ with: ++ fetch-depth: 0 ++ ++ - name: "${{ matrix.container }} TEST-${{ matrix.test }}" ++ run: ./tools/test-github.sh "TEST-${{ matrix.test }}" ${{ matrix.test }} +diff --git a/test/container/Dockerfile-CentOS-8-Stream b/test/container/Dockerfile-CentOS-8-Stream +new file mode 100644 +index 00000000..b14cc64a +--- /dev/null ++++ b/test/container/Dockerfile-CentOS-8-Stream +@@ -0,0 +1,63 @@ ++FROM quay.io/centos/centos:stream8 ++ ++MAINTAINER https://github.com/dracutdevs/dracut ++ ++ENV container docker ++LABEL RUN="docker run -it --name NAME --privileged --ipc=host --net=host --pid=host -e NAME=NAME -e IMAGE=IMAGE IMAGE" ++ ++RUN echo 'export DRACUT_NO_XATTR=1 KVERSION=$(cd /lib/modules; ls -1 | tail -1)' > /etc/profile.d/dracut-test.sh ++ ++# FIXME: the mirrors were desynchronized at the time of writing, leading to several ++# conflicts when installing dependencies below ++RUN sed -i -e 's/^mirrorlist=/#mirrorlist=/g' -e 's/^#baseurl=/baseurl=/g' /etc/yum.repos.d/*.repo ++ ++# Install needed packages for the dracut CI container ++RUN dnf -y install epel-release && \ ++ `# FIXME: this is required to work around a bug in e2fsprogs, remove when CentOS 8.5 is out` && \ ++ dnf -y install dnf-plugins-core && \ ++ dnf -y copr enable mrc0mmand/systemd-centos-ci-centos8 && \ ++ dnf -y install e2fsprogs && \ ++ `# End of FIXME` && \ ++ dnf -y install --enablerepo powertools --enablerepo epel --setopt=install_weak_deps=False \ ++ qemu-kvm \ ++ NetworkManager \ ++ asciidoc \ ++ bash-completion \ ++ bzip2 \ ++ cryptsetup \ ++ dash \ ++ dbus-daemon \ ++ dhcp-client \ ++ dhcp-server \ ++ e2fsprogs \ ++ gcc \ ++ git \ ++ iproute \ ++ iputils \ ++ iscsi-initiator-utils \ ++ kbd \ ++ kernel \ ++ kmod-devel \ ++ lvm2 \ ++ make \ ++ mdadm \ ++ nfs-utils \ ++ pigz \ ++ python3-imgcreate \ ++ rpm-build \ ++ strace \ ++ sudo \ ++ tar \ ++ tcpdump \ ++ wget \ ++ which \ ++ xz \ ++ && dnf -y update && dnf clean all ++ ++# CentOS 8 ships only qemu-kvm, but it disables the KVM accel when it's not ++# available ++RUN ln -sv /usr/libexec/qemu-kvm /usr/bin/qemu-kvm && \ ++ ln -sv /usr/libexec/qemu-kvm /usr/bin/qemu-system-$(uname -m) ++ ++# Set default command ++CMD ["/usr/bin/bash"] + diff --git a/SOURCES/0004.patch b/SOURCES/0004.patch new file mode 100644 index 0000000..d050363 --- /dev/null +++ b/SOURCES/0004.patch @@ -0,0 +1,71 @@ +From 456c3badc622cb8c4b6ec59bc37436f3d50f7ed5 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Nykr=C3=BDn?= +Date: Fri, 9 Jul 2021 12:32:00 +0200 +Subject: [PATCH] Merge pull request #7 from lnykryn/bz1977347 + +Bz1977347 +--- + dracut.sh | 7 +++++-- + modules.d/99squash/module-setup.sh | 8 ++++---- + 2 files changed, 9 insertions(+), 6 deletions(-) + +diff --git a/dracut.sh b/dracut.sh +index 60ac46f4..78917763 100755 +--- a/dracut.sh ++++ b/dracut.sh +@@ -2067,9 +2067,11 @@ for ((i = 0; i < ${#include_src[@]}; i++)); do + # check for preexisting symlinks, so we can cope with the + # symlinks to $prefix + # Objectname is a file or a directory ++ reset_dotglob="$(shopt -p dotglob)" ++ shopt -q -s dotglob + for objectname in "$src"/*; do + [[ -e $objectname || -L $objectname ]] || continue +- if [[ -d $objectname ]]; then ++ if [[ -d $objectname ]] && [[ ! -L $objectname ]]; then + # objectname is a directory, let's compute the final directory name + object_destdir=${destdir}/${objectname#$src/} + if ! [[ -e $object_destdir ]]; then +@@ -2077,11 +2079,12 @@ for ((i = 0; i < ${#include_src[@]}; i++)); do + mkdir -m 0755 -p "$object_destdir" + chmod --reference="$objectname" "$object_destdir" + fi +- $DRACUT_CP -t "$object_destdir" "$dracutsysrootdir$objectname"/* ++ $DRACUT_CP -t "$object_destdir" "$dracutsysrootdir$objectname"/. + else + $DRACUT_CP -t "$destdir" "$dracutsysrootdir$objectname" + fi + done ++ eval "$reset_dotglob" + elif [[ -e $src ]]; then + derror "$src is neither a directory nor a regular file" + else +diff --git a/modules.d/99squash/module-setup.sh b/modules.d/99squash/module-setup.sh +index e3196213..a2525cff 100644 +--- a/modules.d/99squash/module-setup.sh ++++ b/modules.d/99squash/module-setup.sh +@@ -42,19 +42,19 @@ installpost() { + # Install required modules and binaries for the squash image init script. + if [[ $_busybox ]]; then + inst "$_busybox" /usr/bin/busybox +- for _i in sh echo mount modprobe mkdir switch_root grep; do ++ for _i in sh echo mount modprobe mkdir switch_root grep umount; do + ln_r /usr/bin/busybox /usr/bin/$_i + done + else +- DRACUT_RESOLVE_DEPS=1 inst_multiple sh mount modprobe mkdir switch_root grep ++ DRACUT_RESOLVE_DEPS=1 inst_multiple sh mount modprobe mkdir switch_root grep umount + fi + + hostonly="" instmods "loop" "squashfs" "overlay" + dracut_kernel_post + + # Install squash image init script. +- ln -sfn /usr/bin "$initdir/bin" +- ln -sfn /usr/sbin "$initdir/sbin" ++ ln_r /usr/bin /bin ++ ln_r /usr/sbin /sbin + inst_simple "$moddir"/init-squash.sh /init + } + + diff --git a/SOURCES/0005.patch b/SOURCES/0005.patch new file mode 100644 index 0000000..a03f5e9 --- /dev/null +++ b/SOURCES/0005.patch @@ -0,0 +1,25 @@ +From 1b02912a8ed0767dc7881c45d55856f825e52b3c Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Nykr=C3=BDn?= +Date: Fri, 9 Jul 2021 12:32:10 +0200 +Subject: [PATCH] Merge pull request #8 from lnykryn/bz1970712 + +fix(network-manager): don't pull in systemd-udev-settle +--- + modules.d/35network-manager/nm-initrd.service | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/modules.d/35network-manager/nm-initrd.service b/modules.d/35network-manager/nm-initrd.service +index 815797a4..e076f50b 100644 +--- a/modules.d/35network-manager/nm-initrd.service ++++ b/modules.d/35network-manager/nm-initrd.service +@@ -1,7 +1,7 @@ + [Unit] + DefaultDependencies=no +-Wants=systemd-udev-settle.service +-After=systemd-udev-settle.service ++Wants=systemd-udev-trigger.service ++After=systemd-udev-trigger.service + After=dracut-cmdline.service + Before=network.target + ConditionPathExists=/run/NetworkManager/initrd/neednet + diff --git a/SOURCES/0006.patch b/SOURCES/0006.patch new file mode 100644 index 0000000..41ec723 --- /dev/null +++ b/SOURCES/0006.patch @@ -0,0 +1,29 @@ +From 7d3226fe3462685a4a0ad6b8cbe704c9d08f4e77 Mon Sep 17 00:00:00 2001 +From: Lukas Nykryn +Date: Thu, 12 Aug 2021 11:46:35 +0200 +Subject: [PATCH] fix(kernel-modules): add blk_mq_alloc_disk and + blk_cleanup_disk to blockfuncs + +Since kernel 5-14 those are used by many drivers for example: +xen-blkfront, loop, nbd, pd + +Cherry-picked from: rhel-only +Resolves: #1986909 +--- + modules.d/90kernel-modules/module-setup.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/90kernel-modules/module-setup.sh b/modules.d/90kernel-modules/module-setup.sh +index 499fc066..36f8ca3c 100755 +--- a/modules.d/90kernel-modules/module-setup.sh ++++ b/modules.d/90kernel-modules/module-setup.sh +@@ -2,7 +2,7 @@ + + # called by dracut + installkernel() { +- local _blockfuncs='ahci_platform_get_resources|ata_scsi_ioctl|scsi_add_host|blk_cleanup_queue|register_mtd_blktrans|scsi_esp_register|register_virtio_device|usb_stor_disconnect|mmc_add_host|sdhci_add_host|scsi_add_host_with_dma' ++ local _blockfuncs='ahci_platform_get_resources|ata_scsi_ioctl|scsi_add_host|blk_cleanup_queue|register_mtd_blktrans|scsi_esp_register|register_virtio_device|usb_stor_disconnect|mmc_add_host|sdhci_add_host|scsi_add_host_with_dma|blk_mq_alloc_disk|blk_cleanup_disk' + local -A _hostonly_drvs + + find_kernel_modules_external() { + diff --git a/SOURCES/0007.patch b/SOURCES/0007.patch new file mode 100644 index 0000000..5cef064 --- /dev/null +++ b/SOURCES/0007.patch @@ -0,0 +1,45 @@ +From 5f8012de4cb73b90d69075e8118d904302d41c20 Mon Sep 17 00:00:00 2001 +From: Beniamino Galvani +Date: Mon, 9 Aug 2021 09:28:46 +0200 +Subject: [PATCH] fix(network-manager): check for nm-initrd-generator in both + /usr/{libexec,lib} + +Sice commit 22d6863ef1b2 ("fix(network-manager): cope with distributions not +using `libexec`") nm-initrd-generator can be installed in either /usr/libexec +or /usr/lib. Change other modules to check for the binary in both locations. + +(cherry picked from commit 5ee7e249b8cc74461122ccd7efe954b3402c23da) + +Resolves: #1975929 +--- + modules.d/40network/module-setup.sh | 2 +- + modules.d/80cms/cmsifup.sh | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/modules.d/40network/module-setup.sh b/modules.d/40network/module-setup.sh +index 60824da6..9fd5d806 100755 +--- a/modules.d/40network/module-setup.sh ++++ b/modules.d/40network/module-setup.sh +@@ -19,7 +19,7 @@ depends() { + if [ -z "$network_handler" ]; then + if [[ -x $dracutsysrootdir$systemdsystemunitdir/wicked.service ]]; then + network_handler="network-wicked" +- elif [[ -x $dracutsysrootdir/usr/libexec/nm-initrd-generator ]]; then ++ elif [[ -x $dracutsysrootdir/usr/libexec/nm-initrd-generator ]] || [[ -x $dracutsysrootdir/usr/lib/nm-initrd-generator ]]; then + network_handler="network-manager" + elif [[ -x $dracutsysrootdir$systemdutildir/systemd-networkd ]]; then + network_handler="systemd-networkd" +diff --git a/modules.d/80cms/cmsifup.sh b/modules.d/80cms/cmsifup.sh +index a319227a..73d76fbf 100755 +--- a/modules.d/80cms/cmsifup.sh ++++ b/modules.d/80cms/cmsifup.sh +@@ -34,7 +34,7 @@ fi + IFACES="$IFACES $DEVICE" + echo "$IFACES" >> /tmp/net.ifaces + +-if [ -x /usr/libexec/nm-initrd-generator ]; then ++if [ -x /usr/libexec/nm-initrd-generator ] || [ -x /usr/lib/nm-initrd-generator ]; then + type nm_generate_connections > /dev/null 2>&1 || . /lib/nm-lib.sh + nm_generate_connections + else + diff --git a/SOURCES/0008.patch b/SOURCES/0008.patch new file mode 100644 index 0000000..7d8315c --- /dev/null +++ b/SOURCES/0008.patch @@ -0,0 +1,43 @@ +From aa561847a82c2446ead5e41742f453629f112b63 Mon Sep 17 00:00:00 2001 +From: Beniamino Galvani +Date: Wed, 4 Aug 2021 09:37:31 +0200 +Subject: [PATCH] fix(cms): reload NetworkManager connections + +When NetworkManager is running as systemd service, it's not enough to write +connection files; the module should also tell NetworkManager to reload the +connections from disk so that any new connection can be auto-activated. + +https://bugzilla.redhat.com/show_bug.cgi?id=1975929 +(cherry picked from commit 07977ee5c5294a5d30c1f33f292a0b31303750fb) + +Resolves: #1975929 +--- + modules.d/35network-manager/nm-lib.sh | 4 ++++ + modules.d/80cms/cmsifup.sh | 1 + + 2 files changed, 5 insertions(+) + +diff --git a/modules.d/35network-manager/nm-lib.sh b/modules.d/35network-manager/nm-lib.sh +index 2d27e079..1f749587 100644 +--- a/modules.d/35network-manager/nm-lib.sh ++++ b/modules.d/35network-manager/nm-lib.sh +@@ -28,3 +28,7 @@ nm_generate_connections() { + done + fi + } ++ ++nm_reload_connections() { ++ [ -n "$DRACUT_SYSTEMD" ] && systemctl is-active nm-initrd.service && nmcli connection reload ++} +diff --git a/modules.d/80cms/cmsifup.sh b/modules.d/80cms/cmsifup.sh +index 73d76fbf..285e20d1 100755 +--- a/modules.d/80cms/cmsifup.sh ++++ b/modules.d/80cms/cmsifup.sh +@@ -37,6 +37,7 @@ echo "$IFACES" >> /tmp/net.ifaces + if [ -x /usr/libexec/nm-initrd-generator ] || [ -x /usr/lib/nm-initrd-generator ]; then + type nm_generate_connections > /dev/null 2>&1 || . /lib/nm-lib.sh + nm_generate_connections ++ nm_reload_connections + else + exec ifup "$DEVICE" + fi + diff --git a/SOURCES/0009.patch b/SOURCES/0009.patch new file mode 100644 index 0000000..ab87381 --- /dev/null +++ b/SOURCES/0009.patch @@ -0,0 +1,42 @@ +From 058ffa90669a4dbd2af16e025f22312408ed4ba9 Mon Sep 17 00:00:00 2001 +From: Lukas Nykryn +Date: Tue, 24 Aug 2021 15:39:25 +0200 +Subject: [PATCH] 95resume: always install this module + +We can't always correctly decide if the resume module is needed. +So let's play safe and always include it. + +see: https://github.com/dracutdevs/dracut/issues/924 + +RHEL-only + +Resolves: #1926544 +--- + modules.d/95resume/module-setup.sh | 14 -------------- + 1 file changed, 14 deletions(-) + +diff --git a/modules.d/95resume/module-setup.sh b/modules.d/95resume/module-setup.sh +index f0507b13..4f68e947 100755 +--- a/modules.d/95resume/module-setup.sh ++++ b/modules.d/95resume/module-setup.sh +@@ -2,20 +2,6 @@ + + # called by dracut + check() { +- swap_on_netdevice() { +- local _dev +- for _dev in "${swap_devs[@]}"; do +- block_is_netdevice "$_dev" && return 0 +- done +- return 1 +- } +- +- # Only support resume if hibernation is currently on +- # and no swap is mounted on a net device +- [[ $hostonly ]] || [[ $mount_needs ]] && { +- swap_on_netdevice || [[ "$(cat /sys/power/resume)" == "0:0" ]] && return 255 +- } +- + return 0 + } + diff --git a/SOURCES/0010.patch b/SOURCES/0010.patch new file mode 100644 index 0000000..1ec46fb --- /dev/null +++ b/SOURCES/0010.patch @@ -0,0 +1,35 @@ +From 324e6ba13d8abef22c636e64ad0cbd8018704c93 Mon Sep 17 00:00:00 2001 +From: Frantisek Sumsal +Date: Tue, 9 Nov 2021 12:39:19 +0100 +Subject: [PATCH] ci: use C9S chroots for Packit/TFT + +--- + .packit.yml | 11 +++-------- + 1 file changed, 3 insertions(+), 8 deletions(-) + +diff --git a/.packit.yml b/.packit.yml +index acc1f968..1b1809ab 100644 +--- a/.packit.yml ++++ b/.packit.yml +@@ -29,17 +29,12 @@ jobs: + trigger: pull_request + metadata: + targets: +- - epel-8-x86_64 +- - epel-8-aarch64 +- # FIXME: change to CentOS 9 once it's available +- - fedora-34-x86_64 +- - fedora-34-aarch64 +- - fedora-34-s390x ++ - centos-stream-9-x86_64 ++ - centos-stream-9-aarch64 + + # Run tests (via testing farm) + - job: tests + trigger: pull_request + metadata: + targets: +- # FIXME: change to CentOS 9 once it's available +- - fedora-34-x86_64 ++ - centos-stream-9-x86_64 + diff --git a/SOURCES/0011.patch b/SOURCES/0011.patch new file mode 100644 index 0000000..8ea6850 --- /dev/null +++ b/SOURCES/0011.patch @@ -0,0 +1,23 @@ +From 816891a11e3a3b4a792b68257eff4af7df411064 Mon Sep 17 00:00:00 2001 +From: Frantisek Sumsal +Date: Tue, 9 Nov 2021 12:45:47 +0100 +Subject: [PATCH] ci: drop patches from the C9S spec before using it + +--- + .packit.yml | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/.packit.yml b/.packit.yml +index 1b1809ab..dd3a1fa6 100644 +--- a/.packit.yml ++++ b/.packit.yml +@@ -21,6 +21,8 @@ actions: + - "git clone https://gitlab.com/redhat/centos-stream/rpms/dracut .packit_rpm --depth=1" + # Drop the "sources" file so rebase-helper doesn't think we're a dist-git$ + - "rm -fv .packit_rpm/sources" ++ # Drop all patches (since they're already applied in this repository) ++ - "sed -ri '/^Patch[0-9]+:/d' .packit_rpm/dracut.spec" + + # Available targets can be listed via `copr-cli list-chroots` + jobs: + diff --git a/SOURCES/0012.patch b/SOURCES/0012.patch new file mode 100644 index 0000000..1985060 --- /dev/null +++ b/SOURCES/0012.patch @@ -0,0 +1,88 @@ +From d19ca83f909ed695f199aa688406f62e3eecadcd Mon Sep 17 00:00:00 2001 +From: Frantisek Sumsal +Date: Tue, 9 Nov 2021 16:01:51 +0100 +Subject: [PATCH] ci: bump C8 jobs to C9S + +rhel-only +--- + .github/workflows/container.yml | 2 +- + .github/workflows/integration.yml | 4 ++-- + ...ockerfile-CentOS-8-Stream => Dockerfile-CentOS-9-Stream} | 13 ++----------- + 3 files changed, 5 insertions(+), 14 deletions(-) + +diff --git a/.github/workflows/container.yml b/.github/workflows/container.yml +index a8b3f9b8..adcec4f6 100644 +--- a/.github/workflows/container.yml ++++ b/.github/workflows/container.yml +@@ -33,7 +33,7 @@ jobs: + - { dockerfile: 'Dockerfile-Fedora-rawhide', tag: 'fedora:rawhide' } + - { dockerfile: 'Dockerfile-OpenSuse-latest', tag: 'opensuse:latest' } + - { dockerfile: 'Dockerfile-Arch', tag: 'arch:latest' } +- - { dockerfile: 'Dockerfile-CentOS-8-Stream', tag: 'centos:stream8' } ++ - { dockerfile: 'Dockerfile-CentOS-9-Stream', tag: 'centos:stream9' } + steps: + - name: Check out the repo + uses: actions/checkout@v2 +diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml +index 9ea718f1..990dd079 100644 +--- a/.github/workflows/integration.yml ++++ b/.github/workflows/integration.yml +@@ -79,7 +79,7 @@ jobs: + + - name: "${{ matrix.container }} TEST-${{ matrix.test }}" + run: ./tools/test-github.sh "TEST-${{ matrix.test }}" ${{ matrix.test }} +- centos-8-stream: ++ centos-9-stream: + runs-on: ubuntu-latest + timeout-minutes: 45 + concurrency: +@@ -88,7 +88,7 @@ jobs: + strategy: + matrix: + container: [ +- "centos:stream8", ++ "centos:stream9", + ] + # Disabled tests (due to dropped packages in RHEL/CentOS): + # 03, 04, 15: requires btrfs +diff --git a/test/container/Dockerfile-CentOS-8-Stream b/test/container/Dockerfile-CentOS-9-Stream +similarity index 65% +rename from test/container/Dockerfile-CentOS-8-Stream +rename to test/container/Dockerfile-CentOS-9-Stream +index b14cc64a..da94f134 100644 +--- a/test/container/Dockerfile-CentOS-8-Stream ++++ b/test/container/Dockerfile-CentOS-9-Stream +@@ -1,4 +1,4 @@ +-FROM quay.io/centos/centos:stream8 ++FROM quay.io/centos/centos:stream9 + + MAINTAINER https://github.com/dracutdevs/dracut + +@@ -7,17 +7,8 @@ LABEL RUN="docker run -it --name NAME --privileged --ipc=host --net=host --pid=h + + RUN echo 'export DRACUT_NO_XATTR=1 KVERSION=$(cd /lib/modules; ls -1 | tail -1)' > /etc/profile.d/dracut-test.sh + +-# FIXME: the mirrors were desynchronized at the time of writing, leading to several +-# conflicts when installing dependencies below +-RUN sed -i -e 's/^mirrorlist=/#mirrorlist=/g' -e 's/^#baseurl=/baseurl=/g' /etc/yum.repos.d/*.repo +- + # Install needed packages for the dracut CI container + RUN dnf -y install epel-release && \ +- `# FIXME: this is required to work around a bug in e2fsprogs, remove when CentOS 8.5 is out` && \ +- dnf -y install dnf-plugins-core && \ +- dnf -y copr enable mrc0mmand/systemd-centos-ci-centos8 && \ +- dnf -y install e2fsprogs && \ +- `# End of FIXME` && \ + dnf -y install --enablerepo powertools --enablerepo epel --setopt=install_weak_deps=False \ + qemu-kvm \ + NetworkManager \ +@@ -54,7 +45,7 @@ RUN dnf -y install epel-release && \ + xz \ + && dnf -y update && dnf clean all + +-# CentOS 8 ships only qemu-kvm, but it disables the KVM accel when it's not ++# C9S ships only qemu-kvm, but it disables the KVM accel when it's not + # available + RUN ln -sv /usr/libexec/qemu-kvm /usr/bin/qemu-kvm && \ + ln -sv /usr/libexec/qemu-kvm /usr/bin/qemu-system-$(uname -m) + diff --git a/SOURCES/0013.patch b/SOURCES/0013.patch new file mode 100644 index 0000000..399b25f --- /dev/null +++ b/SOURCES/0013.patch @@ -0,0 +1,27 @@ +From cc4e8d16b743b8b720b502174df7c934a2d5c5dc Mon Sep 17 00:00:00 2001 +From: Frantisek Sumsal +Date: Tue, 9 Nov 2021 16:40:17 +0100 +Subject: [PATCH] ci: drop `epel-release` + +since it's not available (yet) for C9S. + +rhel-only +--- + test/container/Dockerfile-CentOS-9-Stream | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/test/container/Dockerfile-CentOS-9-Stream b/test/container/Dockerfile-CentOS-9-Stream +index da94f134..3f643e88 100644 +--- a/test/container/Dockerfile-CentOS-9-Stream ++++ b/test/container/Dockerfile-CentOS-9-Stream +@@ -8,8 +8,7 @@ LABEL RUN="docker run -it --name NAME --privileged --ipc=host --net=host --pid=h + RUN echo 'export DRACUT_NO_XATTR=1 KVERSION=$(cd /lib/modules; ls -1 | tail -1)' > /etc/profile.d/dracut-test.sh + + # Install needed packages for the dracut CI container +-RUN dnf -y install epel-release && \ +- dnf -y install --enablerepo powertools --enablerepo epel --setopt=install_weak_deps=False \ ++RUN dnf -y install --enablerepo powertools --setopt=install_weak_deps=False \ + qemu-kvm \ + NetworkManager \ + asciidoc \ + diff --git a/SOURCES/0014.patch b/SOURCES/0014.patch new file mode 100644 index 0000000..72f2a78 --- /dev/null +++ b/SOURCES/0014.patch @@ -0,0 +1,24 @@ +From 33170038ddc5affa14e9464337983cfad033b8a4 Mon Sep 17 00:00:00 2001 +From: Frantisek Sumsal +Date: Tue, 9 Nov 2021 16:46:31 +0100 +Subject: [PATCH] ci: the PowerTools repo was renamed back to CRB in C9S + +rhel-only +--- + test/container/Dockerfile-CentOS-9-Stream | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/test/container/Dockerfile-CentOS-9-Stream b/test/container/Dockerfile-CentOS-9-Stream +index 3f643e88..9d0e81e3 100644 +--- a/test/container/Dockerfile-CentOS-9-Stream ++++ b/test/container/Dockerfile-CentOS-9-Stream +@@ -8,7 +8,7 @@ LABEL RUN="docker run -it --name NAME --privileged --ipc=host --net=host --pid=h + RUN echo 'export DRACUT_NO_XATTR=1 KVERSION=$(cd /lib/modules; ls -1 | tail -1)' > /etc/profile.d/dracut-test.sh + + # Install needed packages for the dracut CI container +-RUN dnf -y install --enablerepo powertools --setopt=install_weak_deps=False \ ++RUN dnf -y install --enablerepo crb --setopt=install_weak_deps=False \ + qemu-kvm \ + NetworkManager \ + asciidoc \ + diff --git a/SOURCES/0015.patch b/SOURCES/0015.patch new file mode 100644 index 0000000..5ab31c6 --- /dev/null +++ b/SOURCES/0015.patch @@ -0,0 +1,41 @@ +From d8f6162d3d86c81744c5f2c8215959aac3a2f9e9 Mon Sep 17 00:00:00 2001 +From: Frantisek Sumsal +Date: Tue, 9 Nov 2021 17:13:37 +0100 +Subject: [PATCH] ci: temporarily use an F34 dash package until C9S EPEL is + available + +rhel-only +--- + test/container/Dockerfile-CentOS-9-Stream | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/test/container/Dockerfile-CentOS-9-Stream b/test/container/Dockerfile-CentOS-9-Stream +index 9d0e81e3..c9a96020 100644 +--- a/test/container/Dockerfile-CentOS-9-Stream ++++ b/test/container/Dockerfile-CentOS-9-Stream +@@ -8,14 +8,15 @@ LABEL RUN="docker run -it --name NAME --privileged --ipc=host --net=host --pid=h + RUN echo 'export DRACUT_NO_XATTR=1 KVERSION=$(cd /lib/modules; ls -1 | tail -1)' > /etc/profile.d/dracut-test.sh + + # Install needed packages for the dracut CI container ++# FIXME: properly re-add dash once C9S EPEL is available + RUN dnf -y install --enablerepo crb --setopt=install_weak_deps=False \ ++ http://mirrors.kernel.org/fedora/releases/34/Everything/x86_64/os/Packages/d/dash-0.5.10.2-8.fc34.x86_64.rpm \ + qemu-kvm \ + NetworkManager \ + asciidoc \ + bash-completion \ + bzip2 \ + cryptsetup \ +- dash \ + dbus-daemon \ + dhcp-client \ + dhcp-server \ +@@ -33,7 +34,6 @@ RUN dnf -y install --enablerepo crb --setopt=install_weak_deps=False \ + mdadm \ + nfs-utils \ + pigz \ +- python3-imgcreate \ + rpm-build \ + strace \ + sudo \ + diff --git a/SOURCES/0016.patch b/SOURCES/0016.patch new file mode 100644 index 0000000..19ced8b --- /dev/null +++ b/SOURCES/0016.patch @@ -0,0 +1,59 @@ +From 6e304517801fdfb58df582e37cd4df04b5adc1b6 Mon Sep 17 00:00:00 2001 +From: Frantisek Sumsal +Date: Fri, 12 Nov 2021 21:43:12 +0100 +Subject: [PATCH] test: don't use `-cpu max` in GH Actions + +There appears to be an issue with newer QEMU versions (spotted with Arch +Linux and C9S containers) which causes the respective GH Action to hang +when booting a QEMU VM in combination with the `-cpu max` parameter. + +During (a particularly painful) debugging session I once managed to get +some output from such "frozen" machine (using `earlycon` and +`earlyprintk` kernel cmdline options), and in that particular case the +VM died with a trap caused by an invalid opcode. + +I couldn't reproduce this locally, only in GH Actions environment with +Arch Linux and C9S containers. Also, so far I haven't found out which +specific CPUID flag causes this, but using the `IvyBridge-v2` feature +set seems to mitigate the issue. + +(cherry picked from commit 3f56d481e8a3c67c2e795686e6ec3bfc4ea08e1d) +--- + test/run-qemu | 5 +++-- + tools/test-github.sh | 1 + + 2 files changed, 4 insertions(+), 2 deletions(-) + +diff --git a/test/run-qemu b/test/run-qemu +index 3c521a14..5dc61037 100755 +--- a/test/run-qemu ++++ b/test/run-qemu +@@ -3,13 +3,14 @@ + # We prefer kvm, kqemu, userspace in that order. + + export PATH=/usr/sbin:/usr/bin:/sbin:/bin ++QEMU_CPU="${QEMU_CPU:-max}" + +-[[ -x /usr/bin/qemu ]] && BIN=/usr/bin/qemu && ARGS=(-cpu max) ++[[ -x /usr/bin/qemu ]] && BIN=/usr/bin/qemu && ARGS=(-cpu "$QEMU_CPU") + (lsmod | grep -q '^kqemu ') && BIN=/usr/bin/qemu && ARGS=(-kernel-kqemu -cpu host) + [[ -c /dev/kvm && -x /usr/bin/kvm ]] && BIN=/usr/bin/kvm && ARGS=(-cpu host) + [[ -c /dev/kvm && -x /usr/bin/qemu-kvm ]] && BIN=/usr/bin/qemu-kvm && ARGS=(-cpu host) + [[ -c /dev/kvm && -x /usr/libexec/qemu-kvm ]] && BIN=/usr/libexec/qemu-kvm && ARGS=(-cpu host) +-[[ -x /usr/bin/qemu-system-$(uname -m) ]] && BIN=/usr/bin/qemu-system-$(uname -m) && ARGS=(-cpu max) ++[[ -x /usr/bin/qemu-system-$(uname -m) ]] && BIN=/usr/bin/qemu-system-$(uname -m) && ARGS=(-cpu "$QEMU_CPU") + [[ -c /dev/kvm && -x /usr/bin/qemu-system-$(uname -m) ]] && BIN=/usr/bin/qemu-system-$(uname -m) && ARGS=(-enable-kvm -cpu host) + + [[ $BIN ]] || { +diff --git a/tools/test-github.sh b/tools/test-github.sh +index eab59dcc..1d61b8e3 100755 +--- a/tools/test-github.sh ++++ b/tools/test-github.sh +@@ -41,6 +41,7 @@ else + cd /lib/modules + ls -1 | tail -1 + )" \ ++ QEMU_CPU="IvyBridge-v2" \ + DRACUT_NO_XATTR=1 \ + TEST_RUN_ID="$RUN_ID" \ + ${TESTS:+TESTS="$TESTS"} \ + diff --git a/SOURCES/0017.patch b/SOURCES/0017.patch new file mode 100644 index 0000000..5fe98e9 --- /dev/null +++ b/SOURCES/0017.patch @@ -0,0 +1,41 @@ +From cecc1fbae879c189739691ecff3df67d20b0899a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Renaud=20M=C3=A9trich?= +Date: Tue, 16 Nov 2021 11:15:52 +0100 +Subject: [PATCH] fix(shutdown): be robust against forced shutdown + +When a forced shutdown is issued through sending a burst of Ctrl-Alt-Del +keys, systemd sends SIGTERM to all processes. This ends up killing +dracut-initramfs-restore as well, preventing the script from detecting +that the unpack of the initramfs is incomplete, which later causes a +crash to happen when "shutdown" tries to execute from the unpacked +initramfs. + +This fix makes sure dracut-initramfs-restore remains alive to detect +the unpack failed (because cpio was killed by systemd too). + +Refs: + * https://bugzilla.redhat.com/show_bug.cgi?id=2023665 +(cherry picked from commit b9ba3c8bb8f0f1328cd1ffaa8dbf64585b28c474) + +Resolves: #2024502 +--- + dracut-initramfs-restore.sh | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/dracut-initramfs-restore.sh b/dracut-initramfs-restore.sh +index abe6b1e2..d97030a3 100644 +--- a/dracut-initramfs-restore.sh ++++ b/dracut-initramfs-restore.sh +@@ -6,6 +6,11 @@ set -e + [ -e /run/initramfs/bin/sh ] && exit 0 + [ -e /run/initramfs/.need_shutdown ] || exit 0 + ++# SIGTERM signal is received upon forced shutdown: ignore the signal ++# We want to remain alive to be able to trap unpacking errors to avoid ++# switching root to an incompletely unpacked initramfs ++trap 'echo "Received SIGTERM signal, ignoring!" >&2' TERM ++ + KERNEL_VERSION="$(uname -r)" + + [[ $dracutbasedir ]] || dracutbasedir=/usr/lib/dracut + diff --git a/SOURCES/0018.patch b/SOURCES/0018.patch new file mode 100644 index 0000000..f59b0d9 --- /dev/null +++ b/SOURCES/0018.patch @@ -0,0 +1,38 @@ +From 9e17bed7c0f30f6c557f837592772522c384779b Mon Sep 17 00:00:00 2001 +From: Lukas Nykryn +Date: Tue, 15 Feb 2022 13:44:16 +0100 +Subject: [PATCH] Revert "95resume: always install this module" + +This reverts commit 058ffa90669a4dbd2af16e025f22312408ed4ba9. + +Resolves: #2017787 +--- + modules.d/95resume/module-setup.sh | 14 ++++++++++++++ + 1 file changed, 14 insertions(+) + +diff --git a/modules.d/95resume/module-setup.sh b/modules.d/95resume/module-setup.sh +index 4f68e947..f0507b13 100755 +--- a/modules.d/95resume/module-setup.sh ++++ b/modules.d/95resume/module-setup.sh +@@ -2,6 +2,20 @@ + + # called by dracut + check() { ++ swap_on_netdevice() { ++ local _dev ++ for _dev in "${swap_devs[@]}"; do ++ block_is_netdevice "$_dev" && return 0 ++ done ++ return 1 ++ } ++ ++ # Only support resume if hibernation is currently on ++ # and no swap is mounted on a net device ++ [[ $hostonly ]] || [[ $mount_needs ]] && { ++ swap_on_netdevice || [[ "$(cat /sys/power/resume)" == "0:0" ]] && return 255 ++ } ++ + return 0 + } + + diff --git a/SOURCES/0019.patch b/SOURCES/0019.patch new file mode 100644 index 0000000..8ac2155 --- /dev/null +++ b/SOURCES/0019.patch @@ -0,0 +1,28 @@ +From 8b1252ce33d45340a3420568c66790fb53b14d0a Mon Sep 17 00:00:00 2001 +From: Lukas Nykryn +Date: Tue, 15 Feb 2022 13:47:40 +0100 +Subject: [PATCH] 95resume: only exclude this module, when swap is netdev + +Resolves: #2017787 +--- + modules.d/95resume/module-setup.sh | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) + +diff --git a/modules.d/95resume/module-setup.sh b/modules.d/95resume/module-setup.sh +index f0507b13..ccf2493f 100755 +--- a/modules.d/95resume/module-setup.sh ++++ b/modules.d/95resume/module-setup.sh +@@ -10,10 +10,9 @@ check() { + return 1 + } + +- # Only support resume if hibernation is currently on +- # and no swap is mounted on a net device ++ # Only support resume if no swap is mounted on a net device + [[ $hostonly ]] || [[ $mount_needs ]] && { +- swap_on_netdevice || [[ "$(cat /sys/power/resume)" == "0:0" ]] && return 255 ++ swap_on_netdevice && return 255 + } + + return 0 + diff --git a/SOURCES/0020.patch b/SOURCES/0020.patch new file mode 100644 index 0000000..d6e7053 --- /dev/null +++ b/SOURCES/0020.patch @@ -0,0 +1,36 @@ +From eff17c61ba358d03461b62c95ef593e3b8d65e26 Mon Sep 17 00:00:00 2001 +From: Coiby Xu +Date: Wed, 14 Jul 2021 15:26:10 +0800 +Subject: [PATCH] fix(qeth_rules): check the existence of + /sys/devices/qeth/*/online beforehand + +On s390x KVM machines, the follow errors occurred, + $ kdumpctl rebuild + kdump: Rebuilding /boot/initramfs-4.18.0-321.el8.s390xkdump.img + /usr/lib/dracut/modules.d/95qeth_rules/module-setup.sh: line 13: /sys/devices/qeth/*/online: No such file or directory + /usr/lib/dracut/modules.d/95qeth_rules/module-setup.sh: line 13: /sys/devices/qeth/*/online: No such file or directory + +because s390x KVM uses virtual devices and /sys/devices/qeth/*/online +doesn't exist. Eliminate this error by checking the existence +beforehand. + +(cherry picked from commit 6c71ba4121ae64ccd13fefba68ca327ac623810f) + +Resolves: #2050570 +--- + modules.d/95qeth_rules/module-setup.sh | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/modules.d/95qeth_rules/module-setup.sh b/modules.d/95qeth_rules/module-setup.sh +index 914a28ce..884ae072 100755 +--- a/modules.d/95qeth_rules/module-setup.sh ++++ b/modules.d/95qeth_rules/module-setup.sh +@@ -10,6 +10,7 @@ check() { + + [[ $hostonly ]] && { + for i in /sys/devices/qeth/*/online; do ++ [ ! -f "$i" ] && continue + read -r _online < "$i" + [ "$_online" -eq 1 ] && return 0 + done + diff --git a/SOURCES/0021.patch b/SOURCES/0021.patch new file mode 100644 index 0000000..608265c --- /dev/null +++ b/SOURCES/0021.patch @@ -0,0 +1,85 @@ +From a0d8caa8090a78f627f26fcd9b47c4b099cbc1ba Mon Sep 17 00:00:00 2001 +From: Jonathan Lebon +Date: Thu, 17 Jun 2021 10:47:33 -0400 +Subject: [PATCH] fix(fips): handle s390x OSTree systems + +On s390x, the `BOOT_IMAGE` karg injected by the bootloader is not a path +to the kernel image, but rather an integer describing the index of the +menu entry selected. Because of the way the s390x bootloader works, +there is no information retained about e.g. the path of the kernel that +was loaded. + +This causes issues for the FIPS code which assumes that `BOOT_IMAGE` is +a path to the kernel image to derive the HMAC path. In non-OSTree +systems, this ends up working anyway, because the kernel is located at +the root of the boot partition. In OSTree systems, this is not the +case. However, OSTree systems use BLS configs, and they are named in +reverse order of precedence (i.e. menu ordering). So from the +`BOOT_IMAGE` integer, we can figure out which BLS entry was selected. + +Add some code to do just this on s390x. This isn't completely foolproof, +because it presumes that (1) BLS configs were used to populate the +bootloader (and that they were exactly in the same state they currently +are when `zipl` was run), and (2) there are no other menu entries +originating from outside the BLS configs. However, if these assumptions +are wrong we would simply fail the boot, which is currently what is +happening anyway. + +See also: +https://github.com/openshift/os/pull/546 +https://github.com/ibm-s390-linux/s390-tools/issues/78 + +Tested-by: Muhammad Adeel + +Resolves: rhbz#2050567 +--- + modules.d/01fips/fips.sh | 21 +++++++++++++++++++++ + modules.d/01fips/module-setup.sh | 2 +- + 2 files changed, 22 insertions(+), 1 deletion(-) + +diff --git a/modules.d/01fips/fips.sh b/modules.d/01fips/fips.sh +index 821c26a2..3297cb17 100755 +--- a/modules.d/01fips/fips.sh ++++ b/modules.d/01fips/fips.sh +@@ -124,6 +124,27 @@ do_fips() { + else + BOOT_IMAGE="$(getarg BOOT_IMAGE)" + ++ # On s390x, BOOT_IMAGE isn't a path but an integer representing the ++ # entry number selected. Let's try the root of /boot first, and ++ # otherwise fallback to trying to parse the BLS entries if it's a ++ # BLS-based system. ++ if [ "$(uname -m)" = s390x ]; then ++ if [ -e "/boot/vmlinuz-${KERNEL}" ]; then ++ BOOT_IMAGE="vmlinuz-${KERNEL}" ++ elif [ -d /boot/loader/entries ]; then ++ i=0 ++ for bls in $(ls -d /boot/loader/entries/*.conf | sort -rV); do ++ ((i++)) ++ ++ if [ $i -eq ${BOOT_IMAGE:-0} ] && [ -r "$bls" ]; then ++ BOOT_IMAGE="$(grep -e '^linux' "$bls" | grep -o ' .*$')" ++ BOOT_IMAGE=${BOOT_IMAGE:1} ++ break ++ fi ++ done ++ fi ++ fi ++ + # Trim off any leading GRUB boot device (e.g. ($root) ) + BOOT_IMAGE="$(echo "${BOOT_IMAGE}" | sed 's/^(.*)//')" + +diff --git a/modules.d/01fips/module-setup.sh b/modules.d/01fips/module-setup.sh +index a1e499af..913a660c 100755 +--- a/modules.d/01fips/module-setup.sh ++++ b/modules.d/01fips/module-setup.sh +@@ -67,7 +67,7 @@ install() { + inst_hook pre-udev 01 "$moddir/fips-load-crypto.sh" + inst_script "$moddir/fips.sh" /sbin/fips.sh + +- inst_multiple sha512hmac rmmod insmod mount uname umount ++ inst_multiple sha512hmac rmmod insmod mount uname umount grep sort + + inst_simple /etc/system-fips + [ -c "${initdir}"/dev/random ] || mknod "${initdir}"/dev/random c 1 8 \ + diff --git a/SOURCES/0022.patch b/SOURCES/0022.patch new file mode 100644 index 0000000..fc68c01 --- /dev/null +++ b/SOURCES/0022.patch @@ -0,0 +1,70 @@ +From 94ec96c35678f56bc74b9c12c3229971bc40c9b3 Mon Sep 17 00:00:00 2001 +From: Pavel Valena +Date: Mon, 22 Nov 2021 16:40:39 +0100 +Subject: [PATCH] fix(network): add errors and warnings when network interface + does not exist + +End with error, or show a warning when nonexistent device is specified for network setup like +`ip=10.12.8.12::10.12.255.254:255.255.0.0:xk12:eth0:off`. + +I've added the error only for `write-ifcfg.sh`, as I think no such setup should be written. + +(cherry picked from commit 7938935267dd8824f074adf84c219340ad4c8db6) + +Resolves: #2050562 +--- + modules.d/35network-legacy/ifup.sh | 6 +++++- + modules.d/35network-legacy/parse-ip-opts.sh | 5 +++++ + modules.d/45ifcfg/write-ifcfg.sh | 5 +++++ + 3 files changed, 15 insertions(+), 1 deletion(-) + +diff --git a/modules.d/35network-legacy/ifup.sh b/modules.d/35network-legacy/ifup.sh +index a05c4698..0dc9541c 100755 +--- a/modules.d/35network-legacy/ifup.sh ++++ b/modules.d/35network-legacy/ifup.sh +@@ -446,7 +446,11 @@ for p in $(getargs ip=); do + + # If this option isn't directed at our interface, skip it + if [ -n "$dev" ]; then +- [ "$dev" != "$netif" ] && continue ++ if [ "$dev" != "$netif" ]; then ++ [ ! -e "/sys/class/net/$dev" ] \ ++ && warn "Network interface '$dev' does not exist!" ++ continue ++ fi + else + iface_is_enslaved "$netif" && continue + fi +diff --git a/modules.d/35network-legacy/parse-ip-opts.sh b/modules.d/35network-legacy/parse-ip-opts.sh +index 35917bbf..19af8789 100755 +--- a/modules.d/35network-legacy/parse-ip-opts.sh ++++ b/modules.d/35network-legacy/parse-ip-opts.sh +@@ -97,6 +97,11 @@ for p in $(getargs ip=); do + fi + # IFACES list for later use + IFACES="$IFACES $dev" ++ ++ # Interface should exist ++ if [ ! -e "/sys/class/net/$dev" ]; then ++ warn "Network interface '$dev' does not exist" ++ fi + fi + + # Do we need to check for specific options? +diff --git a/modules.d/45ifcfg/write-ifcfg.sh b/modules.d/45ifcfg/write-ifcfg.sh +index 5f71515a..345863f9 100755 +--- a/modules.d/45ifcfg/write-ifcfg.sh ++++ b/modules.d/45ifcfg/write-ifcfg.sh +@@ -103,6 +103,11 @@ interface_bind() { + local _netif="$1" + local _macaddr="$2" + ++ if [ ! -e "/sys/class/net/$_netif" ]; then ++ derror "Cannot find network interface '$_netif'!" ++ return 1 ++ fi ++ + # see, if we can bind it to some hw parms + if hw_bind "$_netif" "$_macaddr"; then + # only print out DEVICE, if it's user assigned + diff --git a/SOURCES/0023.patch b/SOURCES/0023.patch new file mode 100644 index 0000000..9e9d70a --- /dev/null +++ b/SOURCES/0023.patch @@ -0,0 +1,31 @@ +From cccc1e9ff2d80c7277563fd8fa35f44db48d2fd9 Mon Sep 17 00:00:00 2001 +From: The Plumber <50238977+systemd-rhel-bot@users.noreply.github.com> +Date: Tue, 15 Feb 2022 20:26:33 +0100 +Subject: [PATCH] (#2050560) fix(url-lib): make pre-pivot hook separetely per + nfs mount (#24) + +* fix(url-lib): make pre-pivot hook separetely per nfs mount + +(cherry picked from commit 2f091b17075f81ff490b05d3d566d736fc32f0be) +(cherry picked from commit acb18869e98687a3f8c172d7e7befaa5326cf67a) +(cherry picked from commit ec50cec3bd9169410df409e077d0487c63c2a627) + +Resolves: #2050560 +--- + modules.d/45url-lib/url-lib.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/45url-lib/url-lib.sh b/modules.d/45url-lib/url-lib.sh +index e1e7d5af..b68f72b0 100755 +--- a/modules.d/45url-lib/url-lib.sh ++++ b/modules.d/45url-lib/url-lib.sh +@@ -159,7 +159,7 @@ nfs_fetch_url() { + mntdir="$(mkuniqdir /run nfs_mnt)" + mount_nfs "$nfs:$server:$filepath${options:+:$options}" "$mntdir" + # lazy unmount during pre-pivot hook +- inst_hook --hook pre-pivot --name 99url-lib-umount-nfs umount -l -- "$mntdir" ++ inst_hook --hook pre-pivot --name 99url-lib-umount-nfs-"$(basename "$mntdir")" umount -l -- "$mntdir" + fi + + if [ -z "$outloc" ]; then + diff --git a/SOURCES/0024.patch b/SOURCES/0024.patch new file mode 100644 index 0000000..19c48e1 --- /dev/null +++ b/SOURCES/0024.patch @@ -0,0 +1,51 @@ +From 8d3b5eeb684f0872069fbab9e3b6470aa6a04729 Mon Sep 17 00:00:00 2001 +From: Pavel Valena +Date: Tue, 15 Feb 2022 21:06:21 +0100 +Subject: [PATCH] Fix shellcheck for a0d8caa8090a78f627f26fcd9b47c4b099cbc1ba + +In modules.d/01fips/fips.sh line 137: + ((i++)) + ^-----^ SC3006: In POSIX sh, standalone ((..)) is undefined. + ^-- SC3018: In POSIX sh, ++ is undefined. + +In modules.d/01fips/fips.sh line 139: + if [ $i -eq ${BOOT_IMAGE:-0} ] && [ -r "$bls" ]; then + ^-- SC2086: Double quote to prevent globbing and word splitting. + ^--------------^ SC2086: Double quote to prevent globbing and word splitting. + +In modules.d/01fips/fips.sh line 141: + BOOT_IMAGE=${BOOT_IMAGE:1} + ^-------------^ SC3057: In POSIX sh, string indexing is undefined. + +Related: rhbz#2050567 +--- + modules.d/01fips/fips.sh | 13 +++++++------ + 1 file changed, 7 insertions(+), 6 deletions(-) + +diff --git a/modules.d/01fips/fips.sh b/modules.d/01fips/fips.sh +index 3297cb17..bee061ab 100755 +--- a/modules.d/01fips/fips.sh ++++ b/modules.d/01fips/fips.sh +@@ -133,14 +133,15 @@ do_fips() { + BOOT_IMAGE="vmlinuz-${KERNEL}" + elif [ -d /boot/loader/entries ]; then + i=0 ++ # shellcheck disable=SC2012 + for bls in $(ls -d /boot/loader/entries/*.conf | sort -rV); do +- ((i++)) ++ i=$((i + 1)) + +- if [ $i -eq ${BOOT_IMAGE:-0} ] && [ -r "$bls" ]; then +- BOOT_IMAGE="$(grep -e '^linux' "$bls" | grep -o ' .*$')" +- BOOT_IMAGE=${BOOT_IMAGE:1} +- break +- fi ++ if [ "$i" -eq "${BOOT_IMAGE:-0}" ] && [ -r "$bls" ]; then ++ BOOT_IMAGE="$(grep -e '^linux' "$bls" | grep -o ' .*$')" ++ BOOT_IMAGE=${BOOT_IMAGE## } ++ break ++ fi + done + fi + fi + diff --git a/SOURCES/0025.patch b/SOURCES/0025.patch new file mode 100644 index 0000000..fe82805 --- /dev/null +++ b/SOURCES/0025.patch @@ -0,0 +1,94 @@ +From 865d74e9388dcc6ac6eff21a44e8229ffa8283e9 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Renaud=20M=C3=A9trich?= +Date: Thu, 13 Jan 2022 17:35:59 +0100 +Subject: [PATCH] fix(dracut-shutdown): add cleanup handler on failure + +It may happen that dracut-shutdown.service fails, for example on timeout +due to very low bandwidth. +In such case, for hardening purposes, a new dracut-shutdown-onfailure.service +unit doing dracut-shutdown.service cleanup needs to execute to make sure +switching root to an incomplete initramfs won't occur later. + +See also RHBZ #1924587 (https://bugzilla.redhat.com/show_bug.cgi?id=1924587). + +(cherry picked from commit 7ab1d00227cad6f1b86ba01fdc766769faebb031) + +Resolves: #2050556 +--- + Makefile | 1 + + .../98dracut-systemd/dracut-shutdown-onfailure.service | 13 +++++++++++++ + modules.d/98dracut-systemd/dracut-shutdown.service | 1 + + modules.d/98dracut-systemd/dracut-shutdown.service.8.asc | 3 +++ + pkgbuild/dracut.spec | 1 + + 5 files changed, 19 insertions(+) + +diff --git a/Makefile b/Makefile +index e7d69e10..1e1d093e 100644 +--- a/Makefile ++++ b/Makefile +@@ -168,6 +168,7 @@ ifneq ($(enable_documentation),no) + endif + if [ -n "$(systemdsystemunitdir)" ]; then \ + mkdir -p $(DESTDIR)$(systemdsystemunitdir); \ ++ ln -srf $(DESTDIR)$(pkglibdir)/modules.d/98dracut-systemd/dracut-shutdown-onfailure.service $(DESTDIR)$(systemdsystemunitdir)/dracut-shutdown-onfailure.service; \ + ln -srf $(DESTDIR)$(pkglibdir)/modules.d/98dracut-systemd/dracut-shutdown.service $(DESTDIR)$(systemdsystemunitdir)/dracut-shutdown.service; \ + mkdir -p $(DESTDIR)$(systemdsystemunitdir)/sysinit.target.wants; \ + ln -s ../dracut-shutdown.service \ +diff --git a/modules.d/98dracut-systemd/dracut-shutdown-onfailure.service b/modules.d/98dracut-systemd/dracut-shutdown-onfailure.service +new file mode 100644 +index 00000000..96de58c5 +--- /dev/null ++++ b/modules.d/98dracut-systemd/dracut-shutdown-onfailure.service +@@ -0,0 +1,13 @@ ++# This file is part of dracut. ++# ++# See dracut.bootup(7) for details ++ ++[Unit] ++Description=Service executing upon dracut-shutdown failure to perform cleanup ++Documentation=man:dracut-shutdown.service(8) ++DefaultDependencies=no ++ ++[Service] ++Type=oneshot ++ExecStart=-/bin/rm /run/initramfs/shutdown ++StandardError=null +diff --git a/modules.d/98dracut-systemd/dracut-shutdown.service b/modules.d/98dracut-systemd/dracut-shutdown.service +index 81043b2d..7c36f14f 100644 +--- a/modules.d/98dracut-systemd/dracut-shutdown.service ++++ b/modules.d/98dracut-systemd/dracut-shutdown.service +@@ -10,6 +10,7 @@ Wants=local-fs.target + Conflicts=shutdown.target umount.target + DefaultDependencies=no + ConditionPathExists=!/run/initramfs/bin/sh ++OnFailure=dracut-shutdown-onfailure.service + + [Service] + RemainAfterExit=yes +diff --git a/modules.d/98dracut-systemd/dracut-shutdown.service.8.asc b/modules.d/98dracut-systemd/dracut-shutdown.service.8.asc +index ba80b187..21ec88ca 100644 +--- a/modules.d/98dracut-systemd/dracut-shutdown.service.8.asc ++++ b/modules.d/98dracut-systemd/dracut-shutdown.service.8.asc +@@ -40,6 +40,9 @@ by injecting "rd.break=pre-shutdown rd.shell" or "rd.break=shutdown rd.shell". + # touch /run/initramfs/.need_shutdown + ---- + ++In case the unpack of the initramfs fails, dracut-shutdown-onfailure.service ++executes to make sure switch root doesn't happen, since it would result in ++switching to an incomplete initramfs. + + AUTHORS + ------- +diff --git a/pkgbuild/dracut.spec b/pkgbuild/dracut.spec +index 04c61f90..d35bbe37 100644 +--- a/pkgbuild/dracut.spec ++++ b/pkgbuild/dracut.spec +@@ -414,6 +414,7 @@ echo 'dracut_rescue_image="yes"' > $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/ + %dir %{_sharedstatedir}/initramfs + %if %{defined _unitdir} + %{_unitdir}/dracut-shutdown.service ++%{_unitdir}/dracut-shutdown-onfailure.service + %{_unitdir}/sysinit.target.wants/dracut-shutdown.service + %{_unitdir}/dracut-cmdline.service + %{_unitdir}/dracut-initqueue.service + diff --git a/SOURCES/0026.patch b/SOURCES/0026.patch new file mode 100644 index 0000000..6e2a6e1 --- /dev/null +++ b/SOURCES/0026.patch @@ -0,0 +1,51 @@ +From edce5bac8f65cee78fcf6c960ffb4e5924f81f78 Mon Sep 17 00:00:00 2001 +From: David Tardon +Date: Tue, 1 Jun 2021 15:06:01 +0200 +Subject: [PATCH] fix(multipath): get config. dir from configuration + +(cherry picked from commit 2e3c5444d271cb8f05955858b8fdc367c4ea5c48) + +Resolves: #1992464 +--- + modules.d/90multipath/module-setup.sh | 13 ++++++++++++- + 1 file changed, 12 insertions(+), 1 deletion(-) + +diff --git a/modules.d/90multipath/module-setup.sh b/modules.d/90multipath/module-setup.sh +index b6002c6a..05222389 100755 +--- a/modules.d/90multipath/module-setup.sh ++++ b/modules.d/90multipath/module-setup.sh +@@ -63,6 +63,7 @@ installkernel() { + # called by dracut + install() { + local -A _allow ++ local config_dir + + add_hostonly_mpath_conf() { + if is_mpath "$1"; then +@@ -74,6 +75,16 @@ install() { + fi + } + ++ local k v ++ while read -r k v; do ++ if [[ $k == "config_dir" ]]; then ++ v="${v#\"}" ++ config_dir="${v%\"}" ++ break ++ fi ++ done < <(multipath -t 2> /dev/null) ++ [[ -d $config_dir ]] || config_dir=/etc/multipath/conf.d ++ + inst_multiple \ + pkill \ + pidof \ +@@ -91,7 +102,7 @@ install() { + /etc/xdrdevices.conf \ + /etc/multipath.conf \ + /etc/multipath/* \ +- /etc/multipath/conf.d/* ++ "$config_dir"/* + + [[ $hostonly ]] && [[ $hostonly_mode == "strict" ]] && { + for_each_host_dev_and_slaves_all add_hostonly_mpath_conf + diff --git a/SOURCES/0027.patch b/SOURCES/0027.patch new file mode 100644 index 0000000..d2437c6 --- /dev/null +++ b/SOURCES/0027.patch @@ -0,0 +1,34 @@ +From 955222afe5bd7f23da48b94087ad7a4256d47605 Mon Sep 17 00:00:00 2001 +From: Jan Macku +Date: Tue, 15 Feb 2022 15:29:03 +0100 +Subject: [PATCH] ci: Add Differential ShellCheck action + +Related: #2050567 +--- + .github/workflows/differential-shellcheck.yml | 17 +++++++++++++++++ + 1 file changed, 17 insertions(+) + +diff --git a/.github/workflows/differential-shellcheck.yml b/.github/workflows/differential-shellcheck.yml +new file mode 100644 +index 00000000..095c3fe6 +--- /dev/null ++++ b/.github/workflows/differential-shellcheck.yml +@@ -0,0 +1,17 @@ ++name: Differential ShellCheck ++on: ++ push: ++ branches: [main] ++ pull_request: ++ branches: [main] ++ ++jobs: ++ test: ++ runs-on: ubuntu-20.04 ++ ++ steps: ++ - name: Repository checkout ++ uses: actions/checkout@v2 ++ ++ - name: Differential ShellCheck ++ uses: redhat-plumbers-in-action/differential-shellcheck@v1 + diff --git a/SOURCES/0028.patch b/SOURCES/0028.patch new file mode 100644 index 0000000..e6bfe11 --- /dev/null +++ b/SOURCES/0028.patch @@ -0,0 +1,40 @@ +From c988ca3aa81026c008bce69810584a651a0e75b3 Mon Sep 17 00:00:00 2001 +From: Pavel Valena +Date: Wed, 16 Feb 2022 02:42:11 +0100 +Subject: [PATCH] Do not use recommends for base packages + +Resolves: rhbz#1947892 +--- + pkgbuild/dracut.spec | 11 ++++------- + 1 file changed, 4 insertions(+), 7 deletions(-) + +diff --git a/pkgbuild/dracut.spec b/pkgbuild/dracut.spec +index d35bbe37..4c9b1da3 100644 +--- a/pkgbuild/dracut.spec ++++ b/pkgbuild/dracut.spec +@@ -71,20 +71,17 @@ Requires: kmod + Requires: sed + Requires: xz + Requires: gzip ++Requires: hardlink ++Requires: pigz ++Requires: kpartx + + %if 0%{?fedora} || 0%{?rhel} +-Recommends: memstrack +-Recommends: hardlink +-Recommends: pigz +-Recommends: kpartx ++Suggests: memstrack + Requires: util-linux >= 2.21 + Requires: systemd >= 219 + Requires: systemd-udev >= 219 + Requires: procps-ng + %else +-Requires: hardlink +-Requires: gzip +-Requires: kpartx + Requires: udev > 166 + Requires: util-linux-ng >= 2.21 + %endif + diff --git a/SOURCES/0029.patch b/SOURCES/0029.patch new file mode 100644 index 0000000..df2715b --- /dev/null +++ b/SOURCES/0029.patch @@ -0,0 +1,34 @@ +From b4f4c927d25b273498d96ee0d367669ee011400e Mon Sep 17 00:00:00 2001 +From: Lukas Nykryn +Date: Mon, 19 Jul 2021 11:27:28 +0200 +Subject: [PATCH] 95nfs: set correct ownership and permissions for statd + directory + +The directory ownership for the statd directory should be +rpcuser:rpcuser. + +Resolves: #2017846 +--- + modules.d/95nfs/module-setup.sh | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +diff --git a/modules.d/95nfs/module-setup.sh b/modules.d/95nfs/module-setup.sh +index 38da5957..1c5f780e 100755 +--- a/modules.d/95nfs/module-setup.sh ++++ b/modules.d/95nfs/module-setup.sh +@@ -120,8 +120,13 @@ install() { + mkdir -m 0755 -p "$initdir/var/lib/nfs" + mkdir -m 0755 -p "$initdir/var/lib/nfs/rpc_pipefs" + mkdir -m 0770 -p "$initdir/var/lib/rpcbind" +- [ -d "/var/lib/nfs/statd/sm" ] && mkdir -m 0755 -p "$initdir/var/lib/nfs/statd/sm" +- [ -d "/var/lib/nfs/sm" ] && mkdir -m 0755 -p "$initdir/var/lib/nfs/sm" ++ [ -d "$dracutsysrootdir/var/lib/nfs/statd/sm" ] \ ++ && mkdir -m 0700 -p "$initdir/var/lib/nfs/statd" \ ++ && mkdir -m 0755 -p "$initdir/var/lib/nfs/statd/sm" \ ++ && chown -R rpcuser:rpcuser "$initdir/var/lib/nfs/statd" ++ [ -d "$dracutsysrootdir/var/lib/nfs/sm" ] \ ++ && mkdir -m 0755 -p "$initdir/var/lib/nfs/sm" \ ++ && chown -R rpcuser:rpcuser "$initdir/var/lib/nfs/sm" + + # Rather than copy the passwd file in, just set a user for rpcbind + # We'll save the state and restart the daemon from the root anyway diff --git a/SOURCES/0030.patch b/SOURCES/0030.patch new file mode 100644 index 0000000..34bc80e --- /dev/null +++ b/SOURCES/0030.patch @@ -0,0 +1,81 @@ +From 2bfe8c53280b6c1e18339dddc5bb60b062cad5bb Mon Sep 17 00:00:00 2001 +From: David Teigland +Date: Wed, 8 Dec 2021 14:04:25 -0600 +Subject: [PATCH] revert(lvm): remove snapshot feature + +The feature of managing lvm snapshots has no known +recent usage. It is unknown if it works. The lvm +developers do not wish to maintain or support it. + +(cherry picked from commit 1549d5e89818603e1aa6dd8a40981222f59f1548) + +Resolves: #2037955 +--- + modules.d/90lvm/lvm_scan.sh | 39 ++++----------------------------------- + 1 file changed, 4 insertions(+), 35 deletions(-) + +diff --git a/modules.d/90lvm/lvm_scan.sh b/modules.d/90lvm/lvm_scan.sh +index c42f97d5..43601ad1 100755 +--- a/modules.d/90lvm/lvm_scan.sh ++++ b/modules.d/90lvm/lvm_scan.sh +@@ -7,8 +7,6 @@ type getarg > /dev/null 2>&1 || . /lib/dracut-lib.sh + + VGS=$(getargs rd.lvm.vg -d rd_LVM_VG=) + LVS=$(getargs rd.lvm.lv -d rd_LVM_LV=) +-SNAPSHOT=$(getargs rd.lvm.snapshot -d rd_LVM_SNAPSHOT=) +-SNAPSIZE=$(getargs rd.lvm.snapsize -d rd_LVM_SNAPSIZE=) + + # shellcheck disable=SC2174 + [ -d /etc/lvm ] || mkdir -m 0755 -p /etc/lvm +@@ -31,17 +29,10 @@ if [ ! -e /etc/lvm/lvm.conf ]; then + echo '}' + + # establish LVM locking +- if [ -n "$SNAPSHOT" ]; then +- echo 'global {' +- echo ' locking_type = 1' +- echo ' use_lvmetad = 0' +- echo '}' +- else +- echo 'global {' +- echo ' locking_type = 4' +- echo ' use_lvmetad = 0' +- echo '}' +- fi ++ echo 'global {' ++ echo ' locking_type = 4' ++ echo ' use_lvmetad = 0' ++ echo '}' + } > /etc/lvm/lvm.conf + lvmwritten=1 + fi +@@ -90,28 +81,6 @@ unset extraargs + + export LVM_SUPPRESS_LOCKING_FAILURE_MESSAGES=1 + +-if [ -n "$SNAPSHOT" ]; then +- # HACK - this should probably be done elsewhere or turned into a function +- # Enable read-write LVM locking +- sed -i -e 's/\(^[[:space:]]*\)locking_type[[:space:]]*=[[:space:]]*[[:digit:]]/\1locking_type = 1/' /etc/lvm/lvm.conf +- +- # Expected SNAPSHOT format ":" +- ORIG_LV=${SNAPSHOT%%:*} +- SNAP_LV=${SNAPSHOT##*:} +- +- info "Removing existing LVM snapshot $SNAP_LV" +- lvm lvremove --force "$SNAP_LV" 2>&1 | vinfo +- +- # Determine snapshot size +- if [ -z "$SNAPSIZE" ]; then +- SNAPSIZE=$(lvm lvs --noheadings --units m --options lv_size "$ORIG_LV") +- info "No LVM snapshot size provided, using size of $ORIG_LV ($SNAPSIZE)" +- fi +- +- info "Creating LVM snapshot $SNAP_LV ($SNAPSIZE)" +- lvm lvcreate -s -n "$SNAP_LV" -L "$SNAPSIZE" "$ORIG_LV" 2>&1 | vinfo +-fi +- + if [ -n "$LVS" ]; then + info "Scanning devices $lvmdevs for LVM logical volumes $LVS" + lvm lvscan $lvm_ignorelockingfailure 2>&1 | vinfo + diff --git a/SOURCES/0031.patch b/SOURCES/0031.patch new file mode 100644 index 0000000..b035a32 --- /dev/null +++ b/SOURCES/0031.patch @@ -0,0 +1,71 @@ +From 441c2c211d3c0fd8003ebb7622f44f360e75cbcd Mon Sep 17 00:00:00 2001 +From: David Teigland +Date: Wed, 8 Dec 2021 14:07:42 -0600 +Subject: [PATCH] revert(lvm): remove lvmetad config changes + +Remove support for modifying use_lvmetad and locking_type +settings in lvm.conf for lvm versions 2.2.*. Recent lvm +versions (2.3.*) do not include lvmetad or locking_type. +This cleanup simplifies code maintenance. + +To use the lvm module with older versions (2.2), a user +would need to ensure that lvmetad settings are disabled +in the initrd's lvm.conf rather than relying on the lvm +dracut mode to modify their lvm.conf. + +(cherry picked from commit f6f393f550625e3e1c968ef32d6d7bdd90f51d73) + +Resolves: #2037955 +--- + modules.d/90lvm/lvm_scan.sh | 3 --- + modules.d/90lvm/module-setup.sh | 14 -------------- + 2 files changed, 17 deletions(-) + +diff --git a/modules.d/90lvm/lvm_scan.sh b/modules.d/90lvm/lvm_scan.sh +index 43601ad1..80382407 100755 +--- a/modules.d/90lvm/lvm_scan.sh ++++ b/modules.d/90lvm/lvm_scan.sh +@@ -28,10 +28,7 @@ if [ ! -e /etc/lvm/lvm.conf ]; then + echo '"r/.*/" ]' + echo '}' + +- # establish LVM locking + echo 'global {' +- echo ' locking_type = 4' +- echo ' use_lvmetad = 0' + echo '}' + } > /etc/lvm/lvm.conf + lvmwritten=1 +diff --git a/modules.d/90lvm/module-setup.sh b/modules.d/90lvm/module-setup.sh +index e1e6c582..0bb491f3 100755 +--- a/modules.d/90lvm/module-setup.sh ++++ b/modules.d/90lvm/module-setup.sh +@@ -61,10 +61,6 @@ install() { + if [[ $hostonly ]] || [[ $lvmconf == "yes" ]]; then + if [[ -f $dracutsysrootdir/etc/lvm/lvm.conf ]]; then + inst_simple -H /etc/lvm/lvm.conf +- # FIXME: near-term hack to establish read-only locking; +- # use command-line lvm.conf editor once it is available +- sed -i -e 's/\(^[[:space:]]*\)locking_type[[:space:]]*=[[:space:]]*[[:digit:]]/\1locking_type = 4/' "${initdir}/etc/lvm/lvm.conf" +- sed -i -e 's/\(^[[:space:]]*\)use_lvmetad[[:space:]]*=[[:space:]]*[[:digit:]]/\1use_lvmetad = 0/' "${initdir}/etc/lvm/lvm.conf" + fi + + export LVM_SUPPRESS_FD_WARNINGS=1 +@@ -82,16 +78,6 @@ install() { + unset LVM_SUPPRESS_FD_WARNINGS + fi + +- if ! [[ -e ${initdir}/etc/lvm/lvm.conf ]]; then +- mkdir -p "${initdir}/etc/lvm" +- { +- echo 'global {' +- echo 'locking_type = 4' +- echo 'use_lvmetad = 0' +- echo '}' +- } > "${initdir}/etc/lvm/lvm.conf" +- fi +- + inst_rules 11-dm-lvm.rules 69-dm-lvm-metad.rules + + # Do not run lvmetad update via pvscan in udev rule - lvmetad is not running yet in dracut! + diff --git a/SOURCES/0032.patch b/SOURCES/0032.patch new file mode 100644 index 0000000..c579d3c --- /dev/null +++ b/SOURCES/0032.patch @@ -0,0 +1,46 @@ +From a755fb8c0dfa28d57b7bbe900d3bde5d2fe4789f Mon Sep 17 00:00:00 2001 +From: David Teigland +Date: Wed, 8 Dec 2021 14:11:13 -0600 +Subject: [PATCH] revert(lvm): remove 69-dm-lvm-metad.rules + +This udev rule runs pvscan to autoactivate VGs, which dracut +does not want to do, and previously disabled by editing the +rule file and commenting out lines. + +This also stops /dev/disk/by-id/lvm-pv-uuid-* symlinks from +being created in the initrd. + +(cherry picked from commit 50e74668434d935db649b5690dc2158b0f87d91c) + +Resolves: #2037955 +--- + modules.d/90lvm/module-setup.sh | 15 +-------------- + 1 file changed, 1 insertion(+), 14 deletions(-) + +diff --git a/modules.d/90lvm/module-setup.sh b/modules.d/90lvm/module-setup.sh +index 0bb491f3..25be0133 100755 +--- a/modules.d/90lvm/module-setup.sh ++++ b/modules.d/90lvm/module-setup.sh +@@ -78,20 +78,7 @@ install() { + unset LVM_SUPPRESS_FD_WARNINGS + fi + +- inst_rules 11-dm-lvm.rules 69-dm-lvm-metad.rules +- +- # Do not run lvmetad update via pvscan in udev rule - lvmetad is not running yet in dracut! +- if [[ -f ${initdir}/lib/udev/rules.d/69-dm-lvm-metad.rules ]]; then +- if grep -q SYSTEMD_WANTS "${initdir}"/lib/udev/rules.d/69-dm-lvm-metad.rules; then +- sed -i -e 's/^ENV{SYSTEMD_ALIAS}=.*/# No LVM pvscan in dracut - lvmetad is not running yet/' \ +- "${initdir}"/lib/udev/rules.d/69-dm-lvm-metad.rules +- sed -i -e 's/^ENV{ID_MODEL}=.*//' "${initdir}"/lib/udev/rules.d/69-dm-lvm-metad.rules +- sed -i -e 's/^ENV{SYSTEMD_WANTS}+\?=.*//' "${initdir}"/lib/udev/rules.d/69-dm-lvm-metad.rules +- else +- sed -i -e 's/.*lvm pvscan.*/# No LVM pvscan for in dracut - lvmetad is not running yet/' \ +- "${initdir}"/lib/udev/rules.d/69-dm-lvm-metad.rules +- fi +- fi ++ inst_rules 11-dm-lvm.rules + + # Gentoo ebuild for LVM2 prior to 2.02.63-r1 doesn't install above rules + # files, but provides the one below: + diff --git a/SOURCES/0033.patch b/SOURCES/0033.patch new file mode 100644 index 0000000..0859dfd --- /dev/null +++ b/SOURCES/0033.patch @@ -0,0 +1,32 @@ +From bf521a1e968472b74288046830bd2c85e3cbb023 Mon Sep 17 00:00:00 2001 +From: David Teigland +Date: Wed, 8 Dec 2021 14:14:27 -0600 +Subject: [PATCH] fix(lvm): replace --partial option + +The --partial option will activate a linear (or other) LV +without segments for missing devices, which is unlikely to +be useful. The intention was to activate raid LVs in a useful +form while missing devices, which is specified with the option +--activationmode degraded. + +(cherry picked from commit 97543cca48dfde849396f11c83f9c320e1b91c46) + +Resolves: #2037955 +--- + modules.d/90lvm/64-lvm.rules | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules.d/90lvm/64-lvm.rules b/modules.d/90lvm/64-lvm.rules +index 65f65249..ca718ce0 100644 +--- a/modules.d/90lvm/64-lvm.rules ++++ b/modules.d/90lvm/64-lvm.rules +@@ -15,7 +15,7 @@ PROGRAM=="/bin/sh -c 'for i in $sys/$devpath/holders/dm-[0-9]*; do [ -e $$i ] && + GOTO="lvm_end" + + RUN+="/sbin/initqueue --settled --onetime --unique /sbin/lvm_scan" +-RUN+="/sbin/initqueue --timeout --name 51-lvm_scan --onetime --unique /sbin/lvm_scan --partial" ++RUN+="/sbin/initqueue --timeout --name 51-lvm_scan --onetime --unique /sbin/lvm_scan --activationmode degraded" + RUN+="/bin/sh -c '>/tmp/.lvm_scan-%k;'" + + LABEL="lvm_end" + diff --git a/SOURCES/0034.patch b/SOURCES/0034.patch new file mode 100644 index 0000000..7f3e5fd --- /dev/null +++ b/SOURCES/0034.patch @@ -0,0 +1,85 @@ +From 9ab4c18355df1e55c39ca96f27ddb9b540054286 Mon Sep 17 00:00:00 2001 +From: David Teigland +Date: Wed, 8 Dec 2021 14:43:58 -0600 +Subject: [PATCH] feat(lvm): update lvm command options + +Drop checking for options that have been available for +at least ten years. This simplifies code maintenance. + +Add the new --nohints option (when available) to disable +the use of hints which is not useful during startup. + +(cherry picked from commit c0a54f2993b1d3c2101202c274a41f925445d54b) + +Resolves: #2037955 +--- + modules.d/90lvm/lvm_scan.sh | 41 ++++++++++++++++++++++------------------- + 1 file changed, 22 insertions(+), 19 deletions(-) + +diff --git a/modules.d/90lvm/lvm_scan.sh b/modules.d/90lvm/lvm_scan.sh +index 80382407..00143bff 100755 +--- a/modules.d/90lvm/lvm_scan.sh ++++ b/modules.d/90lvm/lvm_scan.sh +@@ -59,39 +59,42 @@ min=$2 + sub=${3%% *} + sub=${sub%%\(*} + +-lvm_ignorelockingfailure="--ignorelockingfailure" +-lvm_quirk_args="--ignorelockingfailure --ignoremonitoring" +- +-check_lvm_ver 2 2 57 "$maj" "$min" "$sub" \ +- && lvm_quirk_args="$lvm_quirk_args --poll n" +- +-if check_lvm_ver 2 2 65 "$maj" "$min" "$sub"; then +- lvm_quirk_args=" --sysinit $extraargs" +-fi +- +-if check_lvm_ver 2 2 221 "$maj" "$min" "$sub"; then +- lvm_quirk_args=" $extraargs" +- unset lvm_ignorelockingfailure +-fi +- ++# For lvchange and vgchange use --sysinit which: ++# disables polling (--poll n) ++# ignores monitoring (--ignoremonitoring) ++# ignores locking failures (--ignorelockingfailure) ++# disables hints (--nohints) ++# ++# For lvscan and vgscan: ++# disable locking (--nolocking) ++# disable hints (--nohints) ++ ++activate_args="--sysinit $extraargs" + unset extraargs + + export LVM_SUPPRESS_LOCKING_FAILURE_MESSAGES=1 + ++scan_args="--nolocking" ++ ++check_lvm_ver 2 3 14 "$maj" "$min" "$sub" \ ++ && scan_args="$scan_args --nohints" ++ + if [ -n "$LVS" ]; then + info "Scanning devices $lvmdevs for LVM logical volumes $LVS" +- lvm lvscan $lvm_ignorelockingfailure 2>&1 | vinfo ++ # shellcheck disable=SC2086 ++ lvm lvscan $scan_args 2>&1 | vinfo + for LV in $LVS; do + # shellcheck disable=SC2086 +- lvm lvchange --yes -K -ay $lvm_quirk_args "$LV" 2>&1 | vinfo ++ lvm lvchange --yes -K -ay $activate_args "$LV" 2>&1 | vinfo + done + fi + + if [ -z "$LVS" ] || [ -n "$VGS" ]; then + info "Scanning devices $lvmdevs for LVM volume groups $VGS" +- lvm vgscan $lvm_ignorelockingfailure 2>&1 | vinfo + # shellcheck disable=SC2086 +- lvm vgchange -ay $lvm_quirk_args $VGS 2>&1 | vinfo ++ lvm vgscan $scan_args 2>&1 | vinfo ++ # shellcheck disable=SC2086 ++ lvm vgchange -ay $activate_args $VGS 2>&1 | vinfo + fi + + if [ "$lvmwritten" ]; then + diff --git a/SOURCES/0035.patch b/SOURCES/0035.patch new file mode 100644 index 0000000..a01de8d --- /dev/null +++ b/SOURCES/0035.patch @@ -0,0 +1,143 @@ +From ded4448ba98305b6f0c58cdd67a8b0de9a3db0d3 Mon Sep 17 00:00:00 2001 +From: David Teigland +Date: Wed, 8 Dec 2021 15:16:03 -0600 +Subject: [PATCH] feat(lvm): use generated filter when none is set + +Previously, the lvm device filter generated by dracut +would not be used if any lvm.conf file existed in the +initrd. Change this so that the generated filter will +be used when the included lvm.conf has no filter set. + +(cherry picked from commit 7ffc5e388bcce20785803825bdd260c3c854b34f) + +Resolves: #2037955 +--- + modules.d/90lvm/lvm_scan.sh | 91 +++++++++++++++++++++++++++++++++++++-------- + 1 file changed, 75 insertions(+), 16 deletions(-) + +diff --git a/modules.d/90lvm/lvm_scan.sh b/modules.d/90lvm/lvm_scan.sh +index 00143bff..bda265f6 100755 +--- a/modules.d/90lvm/lvm_scan.sh ++++ b/modules.d/90lvm/lvm_scan.sh +@@ -10,6 +10,7 @@ LVS=$(getargs rd.lvm.lv -d rd_LVM_LV=) + + # shellcheck disable=SC2174 + [ -d /etc/lvm ] || mkdir -m 0755 -p /etc/lvm ++[ -d /run/lvm ] || mkdir -m 0755 -p /run/lvm + # build a list of devices to scan + lvmdevs=$( + for f in /tmp/.lvm_scan-*; do +@@ -18,22 +19,6 @@ lvmdevs=$( + done + ) + +-if [ ! -e /etc/lvm/lvm.conf ]; then +- { +- echo 'devices {' +- printf ' filter = [ ' +- for dev in $lvmdevs; do +- printf '"a|^/dev/%s$|", ' "$dev" +- done +- echo '"r/.*/" ]' +- echo '}' +- +- echo 'global {' +- echo '}' +- } > /etc/lvm/lvm.conf +- lvmwritten=1 +-fi +- + check_lvm_ver() { + maj=$1 + min=$2 +@@ -47,6 +32,75 @@ check_lvm_ver() { + return 1 + } + ++no_lvm_conf_filter() { ++ if [ ! -e /etc/lvm/lvm.conf ]; then ++ return 0 ++ fi ++ ++ if [ -e /run/lvm/initrd_no_filter ]; then ++ return 0 ++ fi ++ ++ if [ -e /run/lvm/initrd_filter ]; then ++ return 1 ++ fi ++ ++ if [ -e /run/lvm/initrd_global_filter ]; then ++ return 1 ++ fi ++ ++ # Save lvm config results in /run to avoid running ++ # lvm config commands for every PV that's scanned. ++ ++ filter=$(lvm config devices/filter | grep "$filter=") ++ if [ -n "$filter" ]; then ++ printf '%s\n' "$filter" > /run/lvm/initrd_filter ++ return 1 ++ fi ++ ++ global_filter=$(lvm config devices/global_filter | grep "$global_filter=") ++ if [ -n "$global_filter" ]; then ++ printf '%s\n' "$global_filter" > /run/lvm/initrd_global_filter ++ return 1 ++ fi ++ ++ # /etc/lvm/lvm.conf exists with no filter setting ++ true > /run/lvm/initrd_no_filter ++ return 0 ++} ++ ++# If no lvm.conf exists, create a basic one with a global section. ++if [ ! -e /etc/lvm/lvm.conf ]; then ++ { ++ echo 'global {' ++ echo '}' ++ } > /etc/lvm/lvm.conf ++ lvmwritten=1 ++fi ++ ++# Save the original lvm.conf before appending a filter setting. ++if [ ! -e /etc/lvm/lvm.conf.orig ]; then ++ cp /etc/lvm/lvm.conf /etc/lvm/lvm.conf.orig ++fi ++ ++# If the original lvm.conf does not contain a filter setting, ++# then generate a filter and append it to the original lvm.conf. ++# The filter is generated from the list PVs that have been seen ++# so far (each has been processed by the lvm udev rule.) ++if no_lvm_conf_filter; then ++ { ++ echo 'devices {' ++ printf ' filter = [ ' ++ for dev in $lvmdevs; do ++ printf '"a|^/dev/%s$|", ' "$dev" ++ done ++ echo '"r/.*/" ]' ++ echo '}' ++ } > /etc/lvm/lvm.conf.filter ++ lvmfilter=1 ++ cat /etc/lvm/lvm.conf.orig /etc/lvm/lvm.conf.filter > /etc/lvm/lvm.conf ++fi ++ + # hopefully this output format will never change, e.g.: + # LVM version: 2.02.53(1) (2009-09-25) + OLDIFS=$IFS +@@ -99,8 +153,13 @@ fi + + if [ "$lvmwritten" ]; then + rm -f -- /etc/lvm/lvm.conf ++elif [ "$lvmfilter" ]; then ++ # revert filter that was appended to existing lvm.conf ++ cp /etc/lvm/lvm.conf.orig /etc/lvm/lvm.conf ++ rm -f -- /etc/lvm/lvm.conf.filter + fi + unset lvmwritten ++unset lvmfilter + + udevadm settle + + diff --git a/SOURCES/0036.patch b/SOURCES/0036.patch new file mode 100644 index 0000000..bd56033 --- /dev/null +++ b/SOURCES/0036.patch @@ -0,0 +1,56 @@ +From ec9b1e872ad3be0ec9440927a0f702c7bfa80932 Mon Sep 17 00:00:00 2001 +From: David Teigland +Date: Fri, 10 Dec 2021 12:51:26 -0600 +Subject: [PATCH] feat(lvm): only run lvchange for LV that is seen on devices + +Change the command listing LVs from lvscan to lvs, and list +only the LV names that are being activated. Before attempting +to activate an LV, check that that LV name appears in the +lvs command output. This avoids wasting time running an +lvchange command that we know will fail. + +(cherry picked from commit 1af46743195422aaebcde5c508a5dd479eff51ea) + +Resolves: #2037955 +--- + modules.d/90lvm/lvm_scan.sh | 18 ++++++++++++++---- + 1 file changed, 14 insertions(+), 4 deletions(-) + +diff --git a/modules.d/90lvm/lvm_scan.sh b/modules.d/90lvm/lvm_scan.sh +index bda265f6..89f077ae 100755 +--- a/modules.d/90lvm/lvm_scan.sh ++++ b/modules.d/90lvm/lvm_scan.sh +@@ -119,7 +119,7 @@ sub=${sub%%\(*} + # ignores locking failures (--ignorelockingfailure) + # disables hints (--nohints) + # +-# For lvscan and vgscan: ++# For lvs and vgscan: + # disable locking (--nolocking) + # disable hints (--nohints) + +@@ -136,10 +136,20 @@ check_lvm_ver 2 3 14 "$maj" "$min" "$sub" \ + if [ -n "$LVS" ]; then + info "Scanning devices $lvmdevs for LVM logical volumes $LVS" + # shellcheck disable=SC2086 +- lvm lvscan $scan_args 2>&1 | vinfo ++ LVSLIST=$(lvm lvs $scan_args --noheading -o lv_full_name,segtype $LVS) ++ info "$LVSLIST" ++ ++ # Only attempt to activate an LV if it appears in the lvs output. + for LV in $LVS; do +- # shellcheck disable=SC2086 +- lvm lvchange --yes -K -ay $activate_args "$LV" 2>&1 | vinfo ++ if strstr "$LVSLIST" "$LV"; then ++ # This lvchange is expected to fail if all PVs used by ++ # the LV are not yet present. Premature/failed lvchange ++ # could be avoided by reporting if an LV is complete ++ # from the lvs command above and skipping this lvchange ++ # if the LV is not lised as complete. ++ # shellcheck disable=SC2086 ++ lvm lvchange --yes -K -ay $activate_args "$LV" 2>&1 | vinfo ++ fi + done + fi + + diff --git a/SOURCES/0037.patch b/SOURCES/0037.patch new file mode 100644 index 0000000..bcf12d4 --- /dev/null +++ b/SOURCES/0037.patch @@ -0,0 +1,39 @@ +From f659bd462a6b605c36a89fa205b41bf8f55c41be Mon Sep 17 00:00:00 2001 +From: David Teigland +Date: Fri, 17 Dec 2021 12:14:51 -0600 +Subject: [PATCH] fix(lvm): restore setting LVM_MD_PV_ACTIVATED + +The 69-dm-lvm-metad.rules udev rule has been removed from +the initrd, because it's been dropped by recent upstream +lvm versions, and it never performed any primary function +within the initrd. But, it did have the job of setting +LVM_MD_PV_ACTIVATED=1 for active md devices used by PVs. +That step needs to be restored, and is now included in +64-lvm.rules. + +(cherry picked from commit 164e5ebb1199ea3e3d641ce402d8257f0055a529) + +Resolves: #2037955 +--- + modules.d/90lvm/64-lvm.rules | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/modules.d/90lvm/64-lvm.rules b/modules.d/90lvm/64-lvm.rules +index ca718ce0..1ad49111 100644 +--- a/modules.d/90lvm/64-lvm.rules ++++ b/modules.d/90lvm/64-lvm.rules +@@ -6,6 +6,14 @@ + + SUBSYSTEM!="block", GOTO="lvm_end" + ACTION!="add|change", GOTO="lvm_end" ++ ++# If the md device is active (indicated by array_state), then set the flag ++# LVM_MD_PV_ACTIVATED=1 indicating that the md device for the PV is ready ++# to be used. The lvm udev rule running in root will check that this flag ++# is set before it will process the md device (it wants to avoid ++# processing an md device that exists but is not yet ready to be used.) ++KERNEL=="md[0-9]*", ACTION=="change", ENV{ID_FS_TYPE}=="LVM2_member", ENV{LVM_MD_PV_ACTIVATED}!="1", TEST=="md/array_state", ENV{LVM_MD_PV_ACTIVATED}="1" ++ + # Also don't process disks that are slated to be a multipath device + ENV{DM_MULTIPATH_DEVICE_PATH}=="1", GOTO="lvm_end" + KERNEL=="dm-[0-9]*", ACTION=="add", GOTO="lvm_end" diff --git a/SOURCES/0038.patch b/SOURCES/0038.patch new file mode 100644 index 0000000..0b7e2d9 --- /dev/null +++ b/SOURCES/0038.patch @@ -0,0 +1,82 @@ +From 697811ff58c3dfa62fad86e9fe8c9dd7268cadfa Mon Sep 17 00:00:00 2001 +From: Pingfan Liu +Date: Wed, 28 Jul 2021 18:13:43 +0800 +Subject: [PATCH] fix(kernel-modules): detect block device's hardware driver + +On hostonly mode, the platform driver is not copied blindless. There +should be a way to detect the real hardware driver, which probes a block +device. + +/sys/dev/block/major:minor is a symbol link, which points to the real +device, recording the hardware stack. And those info can help to +identify the associated drivers for the hardware stack. + +Signed-off-by: Pingfan Liu +--- +v2 -> v3: + address shellcheck in dracut-functions.sh +v1 -> v2: + remove local variable _extra_mod + shorten subject + +(cherry picked from commit c86f4d286000d1e76fd405560b4114537e2cbbff) + +Resolves: #1981251 +--- + dracut-functions.sh | 21 +++++++++++++++++++++ + modules.d/90kernel-modules/module-setup.sh | 6 ++++++ + 2 files changed, 27 insertions(+) + +diff --git a/dracut-functions.sh b/dracut-functions.sh +index 5206bd21..32177994 100755 +--- a/dracut-functions.sh ++++ b/dracut-functions.sh +@@ -617,6 +617,27 @@ for_each_host_dev_and_slaves() { + return 1 + } + ++# /sys/dev/block/major:minor is symbol link to real hardware device ++# go downstream $(realpath /sys/dev/block/major:minor) to detect driver ++get_blockdev_drv_through_sys() { ++ local _block_mods="" ++ local _path ++ ++ _path=$(realpath "$1") ++ while true; do ++ if [[ -L "$_path"/driver/module ]]; then ++ _mod=$(realpath "$_path"/driver/module) ++ _mod=$(basename "$_mod") ++ _block_mods="$_block_mods $_mod" ++ fi ++ _path=$(dirname "$_path") ++ if [[ $_path == '/sys/devices' ]] || [[ $_path == '/' ]]; then ++ break ++ fi ++ done ++ echo "$_block_mods" ++} ++ + # ugly workaround for the lvm design + # There is no volume group device, + # so, there are no slave devices for volume groups. +diff --git a/modules.d/90kernel-modules/module-setup.sh b/modules.d/90kernel-modules/module-setup.sh +index 36f8ca3c..86e281ae 100755 +--- a/modules.d/90kernel-modules/module-setup.sh ++++ b/modules.d/90kernel-modules/module-setup.sh +@@ -16,9 +16,15 @@ installkernel() { + } + + record_block_dev_drv() { ++ + for _mod in $(get_dev_module /dev/block/"$1"); do + _hostonly_drvs["$_mod"]="$_mod" + done ++ ++ for _mod in $(get_blockdev_drv_through_sys "/sys/dev/block/$1"); do ++ _hostonly_drvs["$_mod"]="$_mod" ++ done ++ + ((${#_hostonly_drvs[@]} > 0)) && return 0 + return 1 + } + diff --git a/SOURCES/0039.patch b/SOURCES/0039.patch new file mode 100644 index 0000000..b18aaf2 --- /dev/null +++ b/SOURCES/0039.patch @@ -0,0 +1,32 @@ +From 1cd3626354131eecbaea0ce16f04be34ad4dfbf9 Mon Sep 17 00:00:00 2001 +From: David Tardon +Date: Fri, 11 Mar 2022 14:04:16 +0100 +Subject: [PATCH] fix(dracut-initramfs-restore.sh): check if SELINUXTYPE is set + +It can happen that SELINUXTYPE is not set, e.g., in Fedora/RHEL +installation images /etc/selinux/config is an empty file. That means +that setfiles fails, which makes dracut-initramfs-restore fail too +because it uses "set -x", which means that dracut-shutdown.service +fails. But, after commit 7ab1d00227cad6f1b86ba01fdc766769faebb031, a +failure of dracut-shutdown.service means that the final switch back into +initrd is skipped. Let's just add an additional sanity check to +workaround that. + +Resolves: #2059552 +--- + dracut-initramfs-restore.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/dracut-initramfs-restore.sh b/dracut-initramfs-restore.sh +index d97030a3..25cc881d 100644 +--- a/dracut-initramfs-restore.sh ++++ b/dracut-initramfs-restore.sh +@@ -65,7 +65,7 @@ fi + + if [ -e /etc/selinux/config -a -x /usr/sbin/setfiles ]; then + . /etc/selinux/config +- /usr/sbin/setfiles -v -r /run/initramfs /etc/selinux/"${SELINUXTYPE}"/contexts/files/file_contexts /run/initramfs > /dev/null ++ [ -n "${SELINUXTYPE}" ] && /usr/sbin/setfiles -v -r /run/initramfs /etc/selinux/"${SELINUXTYPE}"/contexts/files/file_contexts /run/initramfs > /dev/null + fi + + exit 0 diff --git a/SOURCES/0040.patch b/SOURCES/0040.patch new file mode 100644 index 0000000..46d1e9a --- /dev/null +++ b/SOURCES/0040.patch @@ -0,0 +1,25 @@ +From 30fe16eafd75336c74ee16003452f0681c1ea4ed Mon Sep 17 00:00:00 2001 +From: Pavel Valena +Date: Fri, 25 Mar 2022 16:39:55 +0100 +Subject: [PATCH] fix(bluetooth): nullglob should not be needed + +--- + modules.d/62bluetooth/module-setup.sh | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/modules.d/62bluetooth/module-setup.sh b/modules.d/62bluetooth/module-setup.sh +index b8270dd5..e4b8b06c 100755 +--- a/modules.d/62bluetooth/module-setup.sh ++++ b/modules.d/62bluetooth/module-setup.sh +@@ -51,8 +51,8 @@ installkernel() { + # Install the required file(s) for the module in the initramfs. + install() { + # shellcheck disable=SC2064 +- trap "$(shopt -p nullglob globstar)" RETURN +- shopt -q -s nullglob globstar ++ trap "$(shopt -p globstar)" RETURN ++ shopt -q -s globstar + local -a var_lib_files + + inst_multiple \ + diff --git a/SOURCES/0041.patch b/SOURCES/0041.patch new file mode 100644 index 0000000..9f5b867 --- /dev/null +++ b/SOURCES/0041.patch @@ -0,0 +1,35 @@ +From a8018a5553bfccfbd28ea77e06207d68f60f12e6 Mon Sep 17 00:00:00 2001 +From: Pavel Valena +Date: Fri, 25 Mar 2022 16:20:16 +0100 +Subject: [PATCH] fix(dracut-install): do not fail when SOURCE is optional and + missing + +When running dracut-install with '-o' (optional source), and nullglob +at the same time, when all of the arguments evaluate , dracut-install +should not fail even when the source is not specified. + +Resolves: #2047654 +--- + src/install/dracut-install.c | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/src/install/dracut-install.c b/src/install/dracut-install.c +index 9a40e022..ad16b98f 100644 +--- a/src/install/dracut-install.c ++++ b/src/install/dracut-install.c +@@ -1199,8 +1199,12 @@ static int parse_argv(int argc, char *argv[]) + } + + if (!optind || optind == argc) { +- log_error("No SOURCE argument given"); +- usage(EXIT_FAILURE); ++ if (!arg_optional) { ++ log_error("No SOURCE argument given"); ++ usage(EXIT_FAILURE); ++ } else { ++ exit(EXIT_SUCCESS); ++ } + } + + return 1; + diff --git a/SOURCES/0042.patch b/SOURCES/0042.patch new file mode 100644 index 0000000..1772a1f --- /dev/null +++ b/SOURCES/0042.patch @@ -0,0 +1,25 @@ +From 0b46516a1b7ab5f70e4a08274555e111ccd0bbd3 Mon Sep 17 00:00:00 2001 +From: Pavel Valena +Date: Fri, 25 Mar 2022 16:57:28 +0100 +Subject: [PATCH] fix(test): nullglob should not be needed + +--- + test/TEST-04-FULL-SYSTEMD/test.sh | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/test/TEST-04-FULL-SYSTEMD/test.sh b/test/TEST-04-FULL-SYSTEMD/test.sh +index 38cb1464..c44151b9 100755 +--- a/test/TEST-04-FULL-SYSTEMD/test.sh ++++ b/test/TEST-04-FULL-SYSTEMD/test.sh +@@ -47,8 +47,8 @@ test_run() { + + test_setup() { + # shellcheck disable=SC2064 +- trap "$(shopt -p nullglob globstar)" RETURN +- shopt -q -s nullglob globstar ++ trap "$(shopt -p globstar)" RETURN ++ shopt -q -s globstar + + export kernel=$KVERSION + # Create what will eventually be our root filesystem onto an overlay + diff --git a/SOURCES/0043.patch b/SOURCES/0043.patch new file mode 100644 index 0000000..60218a0 --- /dev/null +++ b/SOURCES/0043.patch @@ -0,0 +1,52 @@ +From a6984b52a7194d2b4a0007af74659f3a5fd2c9ed Mon Sep 17 00:00:00 2001 +From: Pavel Valena +Date: Fri, 25 Mar 2022 17:26:19 +0100 +Subject: [PATCH] fix(10i18n): stop leaking shell options + +Avoid using shell options in findkeymap, instead of using a wrapper[*] +to restore the previous options. Using mapfile and find to generate the list +of files also has the benefit of being more readable in this case. + +[*] Reverted commit 35064768ebf14d3ec6bf3f7df52580fb4920ea3d +Original issue description from Michal Hecko : + +The findkeymap function manipulates the shell options and relies on +restoring them using the trap. However, as the function might be called +recursively, each recursive invocation changes the signal handler to its +own. As the recursion is entered with shell options already modified, +the changed trap handler is replaced with restoration to the modified +shell options, not the original ones. + +Resolves: #2047654 +--- + modules.d/10i18n/module-setup.sh | 9 ++++----- + 1 file changed, 4 insertions(+), 5 deletions(-) + +diff --git a/modules.d/10i18n/module-setup.sh b/modules.d/10i18n/module-setup.sh +index f25026fb..35bda36f 100755 +--- a/modules.d/10i18n/module-setup.sh ++++ b/modules.d/10i18n/module-setup.sh +@@ -31,10 +31,6 @@ install() { + VCONFIG_CONF="/etc/vconsole.conf" + + findkeymap() { +- # shellcheck disable=SC2064 +- trap "$(shopt -p nullglob globstar)" RETURN +- shopt -q -s nullglob globstar +- + local -a MAPS + local MAPNAME + local INCLUDES +@@ -46,7 +42,10 @@ install() { + MAPS=("$1") + else + MAPNAME=${1%.map*} +- MAPS=("$dracutsysrootdir""${kbddir}"/keymaps/**/"${MAPNAME}"{,.map{,.*}}) ++ ++ mapfile -t -d '' MAPS < <( ++ find "${dracutsysrootdir}${kbddir}"/keymaps/ -type f \( -name "${MAPNAME}" -o -name "${MAPNAME}.map*" \) -print0 ++ ) + fi + + for MAP in "${MAPS[@]}"; do + diff --git a/SOURCES/0044.patch b/SOURCES/0044.patch new file mode 100644 index 0000000..6b758b7 --- /dev/null +++ b/SOURCES/0044.patch @@ -0,0 +1,35 @@ +From 56a29d9a9283338a8d7b5af6b6b9aeb06ac34f3f Mon Sep 17 00:00:00 2001 +From: Pavel Valena +Date: Fri, 25 Mar 2022 17:39:04 +0100 +Subject: [PATCH] docs: do not mention nullglob in cases where it's not needed + +--- + docs/BASH.md | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/docs/BASH.md b/docs/BASH.md +index 941754ea..e72a2f66 100644 +--- a/docs/BASH.md ++++ b/docs/BASH.md +@@ -16,8 +16,8 @@ Don't use `dirname`, use: + If you set `shopt` in a function, reset to its default state with `trap`: + ```shell + func() { +- trap "$(shopt -p nullglob globstar)" RETURN +- shopt -q -s nullglob globstar ++ trap "$(shopt -p globstar)" RETURN ++ shopt -q -s globstar + } + ``` + +@@ -51,8 +51,8 @@ func() { + Or collect the filenames in an array, if you need them more than once: + ```shell + func() { +- trap "$(shopt -p nullglob globstar)" RETURN +- shopt -q -s nullglob globstar ++ trap "$(shopt -p globstar)" RETURN ++ shopt -q -s globstar + + filenames=( /usr/lib*/**/lib*.a ) + diff --git a/SOURCES/lgpl-2.1.txt b/SOURCES/lgpl-2.1.txt new file mode 100644 index 0000000..4362b49 --- /dev/null +++ b/SOURCES/lgpl-2.1.txt @@ -0,0 +1,502 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/SPECS/dracut.spec b/SPECS/dracut.spec new file mode 100644 index 0000000..e6d41b9 --- /dev/null +++ b/SPECS/dracut.spec @@ -0,0 +1,1967 @@ +%define dracutlibdir %{_prefix}/lib/dracut +%bcond_without doc + +# We ship a .pc file but don't want to have a dep on pkg-config. We +# strip the automatically generated dep here and instead co-own the +# directory. +%global __requires_exclude pkg-config +%define dist_free_release 45.git20220404 + +Name: dracut +Version: 055 +Release: %{dist_free_release}%{?dist} + +Summary: Initramfs generator using udev +%if 0%{?fedora} || 0%{?rhel} +Group: System Environment/Base +%endif +%if 0%{?suse_version} +Group: System/Base +%endif + +# The entire source code is GPLv2+ +# except install/* which is LGPLv2+ +# except util/* which is GPLv2 +License: GPLv2+ and LGPLv2+ and GPLv2 + +URL: https://dracut.wiki.kernel.org/ + +# Source can be generated by +# http://git.kernel.org/?p=boot/dracut/dracut.git;a=snapshot;h=%%{version};sf=tgz +Source0: http://www.kernel.org/pub/linux/utils/boot/dracut/dracut-%{version}.tar.xz +Patch1: 0001.patch +Patch2: 0002.patch +Patch3: 0003.patch +Patch4: 0004.patch +Patch5: 0005.patch +Patch6: 0006.patch +Patch7: 0007.patch +Patch8: 0008.patch +Patch9: 0009.patch +Patch10: 0010.patch +Patch11: 0011.patch +Patch12: 0012.patch +Patch13: 0013.patch +Patch14: 0014.patch +Patch15: 0015.patch +Patch16: 0016.patch +Patch17: 0017.patch +Patch18: 0018.patch +Patch19: 0019.patch +Patch20: 0020.patch +Patch21: 0021.patch +Patch22: 0022.patch +Patch23: 0023.patch +Patch24: 0024.patch +Patch25: 0025.patch +Patch26: 0026.patch +Patch27: 0027.patch +Patch28: 0028.patch +Patch29: 0029.patch +Patch30: 0030.patch +Patch31: 0031.patch +Patch32: 0032.patch +Patch33: 0033.patch +Patch34: 0034.patch +Patch35: 0035.patch +Patch36: 0036.patch +Patch37: 0037.patch +Patch38: 0038.patch +Patch39: 0039.patch +Patch40: 0040.patch +Patch41: 0041.patch +Patch42: 0042.patch +Patch43: 0043.patch +Patch44: 0044.patch + +Source1: https://www.gnu.org/licenses/lgpl-2.1.txt + +BuildRequires: bash +BuildRequires: git-core +BuildRequires: pkgconfig(libkmod) >= 23 +BuildRequires: gcc + +%if 0%{?fedora} || 0%{?rhel} +BuildRequires: pkgconfig +BuildRequires: systemd +%endif +%if 0%{?fedora} +BuildRequires: bash-completion +%endif + +%if %{with doc} +%if 0%{?fedora} || 0%{?rhel} +BuildRequires: docbook-style-xsl docbook-dtds libxslt +%endif + +%if 0%{?suse_version} +BuildRequires: docbook-xsl-stylesheets libxslt +%endif + +BuildRequires: asciidoc +%endif + +Obsoletes: dracut-fips <= 047 +Provides: dracut-fips = %{version}-%{release} +Obsoletes: dracut-fips-aesni <= 047 +Provides: dracut-fips-aesni = %{version}-%{release} + +Requires: bash >= 4 +Requires: coreutils +Requires: cpio +Requires: filesystem >= 2.1.0 +Requires: findutils +Requires: grep +Requires: kmod +Requires: sed +Requires: xz +Requires: gzip +Requires: hardlink +Requires: pigz +Requires: kpartx + +%if 0%{?fedora} || 0%{?rhel} +Suggests: memstrack +Requires: util-linux >= 2.21 +Requires: systemd >= 219 +Requires: systemd-udev >= 219 +Requires: procps-ng +%else +Requires: udev > 166 +Requires: util-linux-ng >= 2.21 +%endif + +%if 0%{?fedora} || 0%{?rhel} || 0%{?suse_version} +Requires: libkcapi-hmaccalc +%endif + +%description +dracut contains tools to create bootable initramfses for the Linux +kernel. Unlike other implementations, dracut hard-codes as little +as possible into the initramfs. dracut contains various modules which +are driven by the event-based udev. Having root on MD, DM, LVM2, LUKS +is supported as well as NFS, iSCSI, NBD, FCoE with the dracut-network +package. + +%package network +Summary: dracut modules to build a dracut initramfs with network support +%if 0%{?_module_build} +# In the module-build-service, we have pieces of dracut provided by different +# modules ("base-runtime" provides most functionality, but we need +# dracut-network in "installer". Since these two modules build with separate +# dist-tags, we need to reduce this strict requirement to ignore the dist-tag. +Requires: %{name} >= %{version}-%{dist_free_release} +%else +Requires: %{name} = %{version}-%{release} +%endif +Requires: iputils +Requires: iproute +Requires: (NetworkManager >= 1.20 or dhclient) +Suggests: NetworkManager +Obsoletes: dracut-generic < 008 +Provides: dracut-generic = %{version}-%{release} + +%description network +This package requires everything which is needed to build a generic +all purpose initramfs with network support with dracut. + +%package caps +Summary: dracut modules to build a dracut initramfs which drops capabilities +Requires: %{name} = %{version}-%{release} +Requires: libcap + +%description caps +This package requires everything which is needed to build an +initramfs with dracut, which drops capabilities. + +%package live +Summary: dracut modules to build a dracut initramfs with live image capabilities +%if 0%{?_module_build} +# See the network subpackage comment. +Requires: %{name} >= %{version}-%{dist_free_release} +%else +Requires: %{name} = %{version}-%{release} +%endif +Requires: %{name}-network = %{version}-%{release} +Requires: tar gzip coreutils bash device-mapper curl +%if 0%{?fedora} +Requires: fuse ntfs-3g +%endif + +%description live +This package requires everything which is needed to build an +initramfs with dracut, with live image capabilities, like Live CDs. + +%package config-generic +Summary: dracut configuration to turn off hostonly image generation +Requires: %{name} = %{version}-%{release} +Obsoletes: dracut-nohostonly < 030 +Provides: dracut-nohostonly = %{version}-%{release} + +%description config-generic +This package provides the configuration to turn off the host specific initramfs +generation with dracut and generates a generic image by default. + +%package config-rescue +Summary: dracut configuration to turn on rescue image generation +Requires: %{name} = %{version}-%{release} +Obsoletes: dracut < 030 + +%description config-rescue +This package provides the configuration to turn on the rescue initramfs +generation with dracut. + +%package tools +Summary: dracut tools to build the local initramfs +Requires: %{name} = %{version}-%{release} + +%description tools +This package contains tools to assemble the local initrd and host configuration. + +%package squash +Summary: dracut module to build an initramfs with most files in a squashfs image +Requires: %{name} = %{version}-%{release} +Requires: squashfs-tools + +%description squash +This package provides a dracut module to build an initramfs, but store most files +in a squashfs image, result in a smaller initramfs size and reduce runtime memory +usage. + +%prep +%autosetup -n %{name}-%{version} -S git_am +cp %{SOURCE1} . + +%build +%configure --systemdsystemunitdir=%{_unitdir} \ + --bashcompletiondir=$(pkg-config --variable=completionsdir bash-completion) \ + --libdir=%{_prefix}/lib \ +%if %{without doc} + --disable-documentation \ +%endif + ${NULL} + +%make_build + +%install +%make_install %{?_smp_mflags} \ + libdir=%{_prefix}/lib + +echo "DRACUT_VERSION=%{version}-%{release}" > $RPM_BUILD_ROOT/%{dracutlibdir}/dracut-version.sh + +%if 0%{?fedora} == 0 && 0%{?rhel} == 0 && 0%{?suse_version} == 0 +rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/01fips +%endif + +# we do not support dash in the initramfs +rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/00dash + +# we do not support mksh in the initramfs +rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/00mksh + +# remove gentoo specific modules +rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/50gensplash + +%if %{defined _unitdir} +# with systemd IMA and selinux modules do not make sense +rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/96securityfs +rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/97masterkey +rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/98integrity +%endif + +%ifnarch s390 s390x +# remove architecture specific modules +rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/80cms +rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/81cio_ignore +rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/91zipl +rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/95dasd +rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/95dasd_mod +rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/95dasd_rules +rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/95dcssblk +rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/95qeth_rules +rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/95zfcp +rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/95zfcp_rules +rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/95znet +%else +rm -fr -- $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/00warpclock +%endif + +mkdir -p $RPM_BUILD_ROOT/boot/dracut +mkdir -p $RPM_BUILD_ROOT/var/lib/dracut/overlay +mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log +touch $RPM_BUILD_ROOT%{_localstatedir}/log/dracut.log +mkdir -p $RPM_BUILD_ROOT%{_sharedstatedir}/initramfs + +%if 0%{?fedora} || 0%{?rhel} +install -m 0644 dracut.conf.d/fedora.conf.example $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/01-dist.conf +%endif +%if 0%{?suse_version} +install -m 0644 dracut.conf.d/suse.conf.example $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/01-dist.conf +%else +rm -f $RPM_BUILD_ROOT%{_mandir}/man?/*suse* +%endif + +%if 0%{?fedora} == 0 && 0%{?rhel} == 0 && 0%{?suse_version} <= 9999 +rm -f -- $RPM_BUILD_ROOT%{_bindir}/lsinitrd +rm -f -- $RPM_BUILD_ROOT%{_mandir}/man1/lsinitrd.1* +%endif + +echo 'hostonly="no"' > $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/02-generic-image.conf +echo 'dracut_rescue_image="yes"' > $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/02-rescue.conf + +%files +%if %{with doc} +%doc README.md docs/HACKING.md AUTHORS NEWS.md dracut.html docs/dracut.png docs/dracut.svg +%endif +%{!?_licensedir:%global license %%doc} +%license COPYING lgpl-2.1.txt +%{_bindir}/dracut +%{_datadir}/bash-completion/completions/dracut +%{_datadir}/bash-completion/completions/lsinitrd +%if 0%{?fedora} || 0%{?rhel} || 0%{?suse_version} > 9999 +%{_bindir}/lsinitrd +%endif +%dir %{dracutlibdir} +%dir %{dracutlibdir}/modules.d +%{dracutlibdir}/dracut-functions.sh +%{dracutlibdir}/dracut-init.sh +%{dracutlibdir}/dracut-functions +%{dracutlibdir}/dracut-version.sh +%{dracutlibdir}/dracut-logger.sh +%{dracutlibdir}/dracut-initramfs-restore +%{dracutlibdir}/dracut-install +%{dracutlibdir}/dracut-util +%{dracutlibdir}/skipcpio +%config(noreplace) %{_sysconfdir}/dracut.conf +%if 0%{?fedora} || 0%{?suse_version} || 0%{?rhel} +%{dracutlibdir}/dracut.conf.d/01-dist.conf +%endif +%dir %{_sysconfdir}/dracut.conf.d +%dir %{dracutlibdir}/dracut.conf.d +%dir %{_datadir}/pkgconfig +%{_datadir}/pkgconfig/dracut.pc + +%if %{with doc} +%{_mandir}/man8/dracut.8* +%{_mandir}/man8/*service.8* +%if 0%{?fedora} || 0%{?rhel} || 0%{?suse_version} > 9999 +%{_mandir}/man1/lsinitrd.1* +%endif +%{_mandir}/man7/dracut.kernel.7* +%{_mandir}/man7/dracut.cmdline.7* +%{_mandir}/man7/dracut.modules.7* +%{_mandir}/man7/dracut.bootup.7* +%{_mandir}/man5/dracut.conf.5* +%endif + +%if %{undefined _unitdir} +%endif +%{dracutlibdir}/modules.d/00bash +%{dracutlibdir}/modules.d/00systemd +%{dracutlibdir}/modules.d/00systemd-network-management +%ifnarch s390 s390x +%{dracutlibdir}/modules.d/00warpclock +%endif +%if 0%{?fedora} || 0%{?rhel} || 0%{?suse_version} +%{dracutlibdir}/modules.d/01fips +%endif +%{dracutlibdir}/modules.d/01systemd-ac-power +%{dracutlibdir}/modules.d/01systemd-ask-password +%{dracutlibdir}/modules.d/01systemd-coredump +%{dracutlibdir}/modules.d/01systemd-hostnamed +%{dracutlibdir}/modules.d/01systemd-initrd +%{dracutlibdir}/modules.d/01systemd-journald +%{dracutlibdir}/modules.d/01systemd-ldconfig +%{dracutlibdir}/modules.d/01systemd-modules-load +%{dracutlibdir}/modules.d/01systemd-repart +%{dracutlibdir}/modules.d/01systemd-resolved +%{dracutlibdir}/modules.d/01systemd-rfkill +%{dracutlibdir}/modules.d/01systemd-sysext +%{dracutlibdir}/modules.d/01systemd-sysctl +%{dracutlibdir}/modules.d/01systemd-sysusers +%{dracutlibdir}/modules.d/01systemd-timedated +%{dracutlibdir}/modules.d/01systemd-timesyncd +%{dracutlibdir}/modules.d/01systemd-tmpfiles +%{dracutlibdir}/modules.d/01systemd-udevd +%{dracutlibdir}/modules.d/01systemd-veritysetup +%{dracutlibdir}/modules.d/03modsign +%{dracutlibdir}/modules.d/03rescue +%{dracutlibdir}/modules.d/04watchdog +%{dracutlibdir}/modules.d/04watchdog-modules +%{dracutlibdir}/modules.d/05busybox +%{dracutlibdir}/modules.d/06dbus-broker +%{dracutlibdir}/modules.d/06dbus-daemon +%{dracutlibdir}/modules.d/06rngd +%{dracutlibdir}/modules.d/09dbus +%{dracutlibdir}/modules.d/10i18n +%{dracutlibdir}/modules.d/30convertfs +%{dracutlibdir}/modules.d/45url-lib +%{dracutlibdir}/modules.d/50drm +%{dracutlibdir}/modules.d/50plymouth +%{dracutlibdir}/modules.d/62bluetooth +%{dracutlibdir}/modules.d/80lvmmerge +%{dracutlibdir}/modules.d/90btrfs +%{dracutlibdir}/modules.d/90crypt +%{dracutlibdir}/modules.d/90dm +%{dracutlibdir}/modules.d/90dmraid +%{dracutlibdir}/modules.d/90kernel-modules +%{dracutlibdir}/modules.d/90kernel-modules-extra +%{dracutlibdir}/modules.d/90lvm +%{dracutlibdir}/modules.d/90mdraid +%{dracutlibdir}/modules.d/90multipath +%{dracutlibdir}/modules.d/90nvdimm +%{dracutlibdir}/modules.d/90ppcmac +%{dracutlibdir}/modules.d/90qemu +%{dracutlibdir}/modules.d/91crypt-gpg +%{dracutlibdir}/modules.d/91crypt-loop +%{dracutlibdir}/modules.d/91tpm2-tss +%{dracutlibdir}/modules.d/95debug +%{dracutlibdir}/modules.d/95fstab-sys +%{dracutlibdir}/modules.d/95lunmask +%{dracutlibdir}/modules.d/95nvmf +%{dracutlibdir}/modules.d/95resume +%{dracutlibdir}/modules.d/95rootfs-block +%{dracutlibdir}/modules.d/95terminfo +%{dracutlibdir}/modules.d/95udev-rules +%{dracutlibdir}/modules.d/95virtfs +%ifarch s390 s390x +%{dracutlibdir}/modules.d/80cms +%{dracutlibdir}/modules.d/81cio_ignore +%{dracutlibdir}/modules.d/91zipl +%{dracutlibdir}/modules.d/95dasd +%{dracutlibdir}/modules.d/95dasd_mod +%{dracutlibdir}/modules.d/95dasd_rules +%{dracutlibdir}/modules.d/95dcssblk +%{dracutlibdir}/modules.d/95qeth_rules +%{dracutlibdir}/modules.d/95zfcp +%{dracutlibdir}/modules.d/95zfcp_rules +%endif +%if %{undefined _unitdir} +%{dracutlibdir}/modules.d/96securityfs +%{dracutlibdir}/modules.d/97masterkey +%{dracutlibdir}/modules.d/98integrity +%endif +%{dracutlibdir}/modules.d/97biosdevname +%{dracutlibdir}/modules.d/98dracut-systemd +%{dracutlibdir}/modules.d/98ecryptfs +%{dracutlibdir}/modules.d/98pollcdrom +%{dracutlibdir}/modules.d/98selinux +%{dracutlibdir}/modules.d/98syslog +%{dracutlibdir}/modules.d/98usrmount +%{dracutlibdir}/modules.d/99base +%{dracutlibdir}/modules.d/99memstrack +%{dracutlibdir}/modules.d/99fs-lib +%{dracutlibdir}/modules.d/99shutdown +%attr(0644,root,root) %ghost %config(missingok,noreplace) %{_localstatedir}/log/dracut.log +%dir %{_sharedstatedir}/initramfs +%if %{defined _unitdir} +%{_unitdir}/dracut-shutdown.service +%{_unitdir}/dracut-shutdown-onfailure.service +%{_unitdir}/sysinit.target.wants/dracut-shutdown.service +%{_unitdir}/dracut-cmdline.service +%{_unitdir}/dracut-initqueue.service +%{_unitdir}/dracut-mount.service +%{_unitdir}/dracut-pre-mount.service +%{_unitdir}/dracut-pre-pivot.service +%{_unitdir}/dracut-pre-trigger.service +%{_unitdir}/dracut-pre-udev.service +%{_unitdir}/initrd.target.wants/dracut-cmdline.service +%{_unitdir}/initrd.target.wants/dracut-initqueue.service +%{_unitdir}/initrd.target.wants/dracut-mount.service +%{_unitdir}/initrd.target.wants/dracut-pre-mount.service +%{_unitdir}/initrd.target.wants/dracut-pre-pivot.service +%{_unitdir}/initrd.target.wants/dracut-pre-trigger.service +%{_unitdir}/initrd.target.wants/dracut-pre-udev.service +%endif +%{_prefix}/lib/kernel/install.d/50-dracut.install + +%files network +%{dracutlibdir}/modules.d/01systemd-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 +%{dracutlibdir}/modules.d/90qemu-net +%{dracutlibdir}/modules.d/95cifs +%{dracutlibdir}/modules.d/95fcoe +%{dracutlibdir}/modules.d/95fcoe-uefi +%{dracutlibdir}/modules.d/95iscsi +%{dracutlibdir}/modules.d/95nbd +%{dracutlibdir}/modules.d/95nfs +%{dracutlibdir}/modules.d/95ssh-client +%ifarch s390 s390x +%{dracutlibdir}/modules.d/95znet +%endif +%{dracutlibdir}/modules.d/99uefi-lib + +%files caps +%{dracutlibdir}/modules.d/02caps + +%files live +%{dracutlibdir}/modules.d/99img-lib +%{dracutlibdir}/modules.d/90dmsquash-live +%{dracutlibdir}/modules.d/90dmsquash-live-ntfs +%{dracutlibdir}/modules.d/90livenet + +%files tools +%if %{with doc} +%doc %{_mandir}/man8/dracut-catimages.8* +%endif + +%{_bindir}/dracut-catimages +%dir /boot/dracut +%dir /var/lib/dracut +%dir /var/lib/dracut/overlay + +%files squash +%{dracutlibdir}/modules.d/99squash + +%files config-generic +%{dracutlibdir}/dracut.conf.d/02-generic-image.conf + +%files config-rescue +%{dracutlibdir}/dracut.conf.d/02-rescue.conf +%{_prefix}/lib/kernel/install.d/51-dracut-rescue.install + +%changelog +* Mon Apr 04 2022 Pavel Valena - 055-45.git20220404 +- fix(bluetooth): nullglob should not be needed +- fix(dracut-install): do not fail when SOURCE is optional and +- fix(test): nullglob should not be needed +- fix(10i18n): stop leaking shell options +- docs: do not mention nullglob in cases where it's not needed + +* Mon Apr 04 2022 Pavel Valena - 055-40.git20220404 +- fix(kernel-modules): detect block device's hardware driver +- fix(dracut-initramfs-restore.sh): check if SELINUXTYPE is set + +* Tue Mar 22 2022 Pavel Valena - 055-38.git20220322 +- revert(lvm): remove snapshot feature +- revert(lvm): remove lvmetad config changes +- revert(lvm): remove 69-dm-lvm-metad.rules +- fix(lvm): replace --partial option +- feat(lvm): update lvm command options +- feat(lvm): use generated filter when none is set +- feat(lvm): only run lvchange for LV that is seen on devices +- fix(lvm): restore setting LVM_MD_PV_ACTIVATED + +* Wed Feb 16 2022 Pavel Valena - 055-30.git20220216 +- fix(shutdown): be robust against forced shutdown +- 95resume: only exclude this module, when swap is netdev +- fix(qeth_rules): check the existence of +- fix(fips): handle s390x OSTree systems +- fix(network): add errors and warnings when network interface +- fix(url-lib): make pre-pivot hook separetely per +- fix(dracut-shutdown): add cleanup handler on failure +- fix(multipath): get config. dir from configuration +- Do not use recommends for base packages +- 95nfs: set correct ownership and permissions for statd + +* Tue Aug 24 2021 Lukas Nykryn - 055-10.git20210824 +- 95resume: always install this module + +* Thu Aug 12 2021 Lukas Nykryn - 055-9.git20210812 +- fix(kernel-modules): add blk_mq_alloc_disk and +- fix(network-manager): check for nm-initrd-generator in both +- fix(cms): reload NetworkManager connections + +* Mon Aug 09 2021 Mohan Boddu - 055-6.git20210709.1 +- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags + Related: rhbz#1991688 + +* Fri Jul 09 2021 Lukas Nykryn - 055-6.git20210709 +- fix(network-manager): don't pull in systemd-udev-settle +- fix(dracut.sh): handle '-i' option to include files beginning with '.' +- fix(dracut.sh): handle symlinks appropriately while using '-i' option +- fix(squash): create relative symlinks +- feat(squash): install umount util + +* Tue Jun 01 2021 Lukas Nykryn - 055-1.1 +- rebase + +* Thu Apr 15 2021 Mohan Boddu - 053-1.1 +- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 + +* Tue Feb 23 2021 Harald Hoyer - 053-1 +- version 053 + +* Tue Jan 26 2021 Fedora Release Engineering - 051-1.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Tue Dec 15 2020 Harald Hoyer - 051-1 +- version 051 + +* Tue Oct 06 2020 Harald Hoyer - 050-167.git20201006 +- git snapshot + +* Fri Oct 02 2020 Harald Hoyer - 050-157.git20201002 +- git snapshot + +* Tue Sep 29 2020 Peter Robinson - 050-63.git20200529 +- Fixes for Arm GPUs in early boot + +* Fri Sep 25 2020 Peter Robinson - 050-62.git20200529 +- Fix for Rockchip devices + +* Wed Aug 19 2020 Merlin Mathesius - 050-61.git20200529.3 +- Correct conditionals to drop 51-dracut-rescue-postinst.sh for Fedora and + recent RHEL releases + +* Mon Jul 27 2020 Fedora Release Engineering - 050-61.git20200529.2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jul 13 2020 Tom Stellard - 050-61.git20200529.1 +- Use make macros +- https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro + +* Fri May 29 2020 Harald Hoyer - 050-61.git20200529 +- git snapshot + +* Mon Mar 16 2020 Harald Hoyer - 050-26.git20200316 +- fixed `--tmpdir` mishandling + +* Fri Mar 13 2020 Harald Hoyer - 050-25.git20200313 +- network-manager: ensure that nm-run.sh is executed for rd.neednet + +* Tue Mar 10 2020 Adam Williamson - 050-2 +- Backport fix for pre-trigger stage early exit from upstream (#1811070) + +* Wed Mar 04 2020 Harald Hoyer - 050-1 +- version 050 + +* Tue Jan 28 2020 Fedora Release Engineering - 049-27.git20181204.2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Wed Jul 24 2019 Fedora Release Engineering - 049-27.git20181204.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Wed Jun 12 2019 Adam Williamson - 049-27.git20181204 +- Backport PR #578 to fix RHBZ #1719057 (installer boot bug) + +* Thu Feb 14 2019 Adam Williamson - 049-26.git20181204 +- Backport PR #541 to fix RHBZ #1676357 (crasher bug) + +* Thu Jan 31 2019 Fedora Release Engineering - 049-25.git20181204.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Tue Dec 04 2018 Harald Hoyer - 049-25.git20181204 +- git snapshot + +* Wed Oct 24 2018 Harald Hoyer - 049-11.git20181024 +- git snapshot + +* Wed Oct 10 2018 Harald Hoyer - 049-4.git20181010 +- fixed spec file +- git snapshot + +* Mon Oct 08 2018 Harald Hoyer - 049-1 +- version 049 + +* Fri Sep 21 2018 Harald Hoyer - 048-99.git20180921 +- git snapshot + +* Thu Jul 26 2018 Harald Hoyer - 048-14.git20180726 +- bring back 51-dracut-rescue-postinst.sh + +* Wed Jul 18 2018 Harald Hoyer - 048-6.git20180718 +- git snapshot + +* Thu Jul 12 2018 Fedora Release Engineering - 048-1.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Fri Jul 06 2018 Harald Hoyer - 048-1 +- version 048 + +* Fri Jun 22 2018 Adam Williamson - 047-34.git20180604.1 +- Test build with proposed fix for #1593028 + +* Mon Jun 04 2018 Harald Hoyer - 047-34.git20180604 +- git snapshot + +* Tue May 15 2018 Harald Hoyer - 047-32.git20180515 +- git snapshot + +* Mon Mar 05 2018 Harald Hoyer - 047-8 +- git snapshot + +* Tue Feb 27 2018 Javier Martinez Canillas - 047-2 +- Allow generating initramfs images on the /boot directory + +* Mon Feb 19 2018 Harald Hoyer - 047-1 +- version 047 + +* Wed Feb 07 2018 Fedora Release Engineering - 046-92.git20180118.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Thu Jan 18 2018 Harald Hoyer - 046-92 +- git snapshot + +* Fri Jan 05 2018 Harald Hoyer - 046-64 +- git snapshot + +* Fri Dec 01 2017 Harald Hoyer - 046-36 +- git snapshot + +* Wed Nov 29 2017 Harald Hoyer - 046-33 +- git snapshot + +* Thu Oct 12 2017 Peter Robinson 046-20 +- Add fix for some ARM SBCs + +* Tue Oct 10 2017 Harald Hoyer - 046-19 +- git snapshot + +* Thu Aug 24 2017 Harald Hoyer - 046-7 +- git snapshot + +* Fri Aug 11 2017 Harald Hoyer - 046-2 +- add support for dist-tag less build + +* Fri Aug 11 2017 Harald Hoyer - 046-1 +- version 046 + +* Mon Aug 7 2017 Peter Robinson 045-21.git20170515 +- Add upstream patches to fix a number of ARM devices with generic initrd + +* Wed Aug 02 2017 Fedora Release Engineering - 045-20.git20170515 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 045-19.git20170515 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Mon May 15 2017 Harald Hoyer - 045-18.git20170515 +- git snapshot + +* Wed Apr 12 2017 Peter Robinson 044-178 +- Add upstream patches needed for ARMv7/aarch64 fixes + +* Fri Feb 10 2017 Fedora Release Engineering - 044-177 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Thu Dec 08 2016 Harald Hoyer - 044-176 +- git snapshot + +* Fri Aug 19 2016 Harald Hoyer - 044-117 +- git snapshot + +* Thu Aug 18 2016 Harald Hoyer - 044-109 +- git snapshot + +* Fri Aug 05 2016 Adam Williamson - 044-76 +- backport a single commit to fix RHBZ #1358416 (anaconda network init) + +* Tue Jun 07 2016 Harald Hoyer - 044-75 +- fix for systemd >= 230 +- git snapshot + +* Wed Feb 03 2016 Fedora Release Engineering - 044-18.git20160108 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Fri Jan 8 2016 Harald Hoyer - 044-17.git20160108 +- include more HID driver +- include machine info file +- fix network carrier detection +- fix nbd +- do not copy over lldpad state +- restorecon the final initramfs image + +* Tue Dec 1 2015 Harald Hoyer - 044-6.git20151201 +- fix for readonly /run on shutdown +- fix for the dmsquash-live module +Resolves: rhbz#1286866 + +* Wed Nov 25 2015 Harald Hoyer - 044-4.git20151127 +- fixes for the dmsquash-live module +- remove udev watch for raid members +- mode 0755 for the livenet generator +Resolves: rhbz#1285903 + +* Wed Nov 25 2015 Harald Hoyer - 044-1 +- version 044 + +* Mon Nov 16 2015 Harald Hoyer - 043-174.git20151116 +- git snapshot + +* Mon Nov 16 2015 Harald Hoyer - 043-173.git20151116 +- git snapshot + +* Fri Nov 13 2015 Harald Hoyer - 043-172.git20151113 +- git snapshot + +* Tue Aug 11 2015 Harald Hoyer 043-60.git20150811 +- fixed checkiso timeout +- fixed log output although quiet is set +- fixed qemu detection +- cleanup compressor handling + +* Wed Jul 22 2015 Harald Hoyer 043-40.git20150710.2 +- require "xz" to handle the kernel modules + +* Fri Jul 10 2015 Harald Hoyer 043-40.git20150710 +- git snapshot + +* Wed Jun 17 2015 Fedora Release Engineering - 043-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Mon Jun 15 2015 Harald Hoyer 043-1 +- version 043, now with the complete tarball + +* Thu Jun 11 2015 Harald Hoyer 042-1 +- version 042, the answer to life, the universe and everything + +* Thu Feb 19 2015 Harald Hoyer 041-10.git20150219 +- git snapshot + +* Sat Jan 31 2015 Harald Hoyer 041-1 +- version 041 + +* Thu Jan 08 2015 Harald Hoyer 040-83.git20150108 +- git snapshot + +* Fri Dec 19 2014 Harald Hoyer 040-78.git20141219 +- git snapshot + +* Mon Dec 08 2014 Harald Hoyer 040-30.git20141208 +- fixed dracut-shutdown + +* Thu Dec 04 2014 Harald Hoyer 040-29.git20141204 +- git snapshot + +* Tue Sep 30 2014 Zbigniew Jędrzejewski-Szmek - 038-36.git20140815 +- Allow media check to be cancelled (rhbz 1147941) + +* Fri Sep 26 2014 Josh Boyer - 038-35.git20140815 +- Enable early-microcode by default (rhbz 1083716) +- Fix changelog date + +* Tue Aug 19 2014 Harald Hoyer - 038-34.git20140815 +- git snapshot + +* Sat Aug 16 2014 Fedora Release Engineering - 038-31.git20140815 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Fri Aug 15 2014 Harald Hoyer 038-30.git20140815 +- git snapshot + +* Thu Jul 24 2014 Harald Hoyer 038-14.git20140724 +- fixed lvm modules issues +Resolves: rhbz#1118890 +- fixed vlan issues +- fixed prelink for FIPS +- new rd.route parameter +- more ARM modules + +* Fri Jul 11 2014 Tom Callaway - 038-2 +- fix license handling + +* Mon Jun 30 2014 Harald Hoyer 038-1 +- version 038 + +* Sat Jun 28 2014 Zbigniew Jędrzejewski-Szmek - 037-14.git20140628 +- Pull most bugfixy commits from current git +Resolves: rhbz#1112061 + +* Sat Jun 07 2014 Fedora Release Engineering - 037-13.git20140402 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Fri May 23 2014 Peter Robinson 037-12.git20140402 +- Fix achi/mmc/sdhci selection for non host based initrd + +* Thu Apr 17 2014 Adam Williamson - 037-11.git20140402 +- revert broken upstream change that causes RHBZ#1084766 + +* Wed Apr 02 2014 Harald Hoyer 037-10.git20140402 +- fixed fstab.sys with systemd +- DHCPv6 fixes +- dm-cache module now included +- FCoE fixes + +* Thu Mar 20 2014 Harald Hoyer 037-3.git20140320 +- fixed dracut-initramfs-restore with microcode + +* Thu Mar 20 2014 Harald Hoyer 037-1 +- version 037 + +* Thu Feb 06 2014 Harald Hoyer 036-16.git20140206 +- version 036 +- parse dns information on "ip=" command line arg +- preserve ownership of files, if root creates the initramfs +- parse ibft nameserver settings +- do not run dhcp twice on an interface +- try to not reload systemd + +* Wed Dec 18 2013 Harald Hoyer 034-74.git20131218 +- do not systemctl daemon-reload +- do iscsistart for iscsi_firmware even without network + +* Mon Dec 16 2013 Harald Hoyer 034-70.git20131216 +- fixed systemd password waiting +- split out fcoe uefi +- fixed lvm thin tools check + +* Thu Dec 05 2013 Harald Hoyer 034-62.git20131205 +- fixed PATH shortener +- also install /etc/system-fips in the initramfs +- nbd, do not fail in hostonly mode +- add ohci-pci to the list of hardcoded modules +- lvm: do not run pvscan for lvmetad +- network fixes +- skip crypt swaps with password files +- fixed i18n + +* Wed Oct 30 2013 Harald Hoyer 034-24.git20131030 +- fixed booting with rd.iscsi.firmware and without root= +- fips: include crct10dif_generic +- fixed missing modules in hostonly, which have no modalias +- moved dracut to /usr/sbin + +* Mon Oct 21 2013 Harald Hoyer 034-19.git20131021 +- Fixed LVM with thin provisioning +Resolves: rhbz#1013767 +Resolves: rhbz#1021083 + +* Fri Oct 18 2013 Harald Hoyer 034-18.git20131018 +- Fixed LVM with thin provisioning +Resolves: rhbz#1013767 +- fixed swap detection in host only mode + +* Fri Oct 11 2013 Kyle McMartin 034-8.git20131008 +- Force mmc_block and usb_storage into ARM initramfs. +Resolves: rhbz#1015234 + +* Tue Oct 08 2013 Harald Hoyer 034-7.git20131008 +- lvm: install thin utils for non-hostonly +- do not bail out, if kernel modules dir is missing +- dmsquash-live: add /dev/mapper/live-base +Resolves: rhbz#1016726 + +* Tue Oct 08 2013 Harald Hoyer 034-1 +- version 034 +- add option to turn on/off prelinking + --prelink, --noprelink + do_prelink=[yes|no] +- add ACPI table overriding +- do not log to syslog/kmsg/journal for UID != 0 +- lvm/mdraid: Fix LVM on MD activation +- bcache module removed (now in bcache-tools upstream) +- mdadm: also install configs from /etc/mdadm.conf.d +- fixes for mdadm-3.2.6+ +- fcoe: add FCoE UEFI boot device support +- rootfs-block: add support for the rootfallback= kernel cmdline option + +* Fri Sep 13 2013 Harald Hoyer 033-3.git20130913 +- do not dhcp members of team, bond, etc. +- harden against weird ppc kernel driver +Resolves: rhbz#1007891 + +* Thu Sep 12 2013 Harald Hoyer 033-1 +- do not cache the kernel cmdline +Resolves: rhbz#989944 +- fixed iso-scan +Resolves: rhbz#1005487 +- support blkid with bcache +Resolves: rhbz#1003207 +- ifup with dhcp, if no ip= params specified +Resolves: rhbz#989944 +- silently try to umount rpc_pipefs +Resolves: rhbz#999996 + +* Wed Sep 04 2013 Harald Hoyer 032-23.git20130904 +- fixed curl error with zero size kickstart file +Resolves: rhbz#989133 +- fixed systemd-cat failure, when systemd is installed + but not actually running +Resolves: rhbz#1002021 +- do not fail on empty dracut module directories +Resolves: rhbz#1003153 + +* Tue Aug 20 2013 Harald Hoyer 032-1 +- fix for kdump in FIPS mode +Resolves: rhbz#920931 +- fixed iBFT booting +Resolves: rhbz#989944 +- fixed FIPS mode initramfs creation +Resolves: rhbz#990250 +- shutdown: fixed killall_proc_mountpoint() +Resolves: rhbz#996549 +- disable lvmetad in the initramfs +Resolves: rhbz#996627 +- require dhclient + +* Mon Aug 12 2013 Harald Hoyer 031-29.git20130812 +- added missing "then" in initqueue + +* Mon Aug 12 2013 Harald Hoyer 031-28.git20130812 +- fixed typo in hostonly device recognition + +* Fri Aug 09 2013 Harald Hoyer 031-24.git20130809 +- fixed logging to journal + +* Fri Aug 09 2013 Harald Hoyer 031-23.git20130809 +- fixed lsinitrd + +* Fri Aug 09 2013 Harald Hoyer 031-22.git20130809 +- lsinitrd.sh: add old cpio signature +- dracut.sh: call find with -print0 and cpio with --null +- dracut.asc: small corrections +- systemd/dracut-initqueue.sh: continue to boot if finished failed +- dracut.sh/dracut-functions.sh: handle root on non-block device +- dracut-functions.sh: removed non dracut-install shell functions +- dracut-functions.sh: inst_multiple == dracut_install +- 51-dracut-rescue.install: fixed rescue image creation +- dracut.sh: do not strip in FIPS mode +Resolves: rhbz#990250 +- dracut.sh: check the value of --kver +- crypt: Fix typo--/etc/crypttab not /etc/cryptab +- network/net-lib.sh: fix ibft interface configuration +- iscsi/module-setup.sh: install some modules regardless of hostonly +- multipath: need_shutdown if multipath devices exist +Resolves: rhbz#994913 +- omit drivers fix + +* Thu Aug 01 2013 Harald Hoyer 031-7.git20130801 +- also install vt102 terminfo + +* Wed Jul 31 2013 Harald Hoyer 031-6.git20130731 +- cmssetup: fixed port for zfcp.conf +- lvm: call lvchange with --yes to boot from snapshots + +* Wed Jul 31 2013 Harald Hoyer 031-4.git20130731 +- remove action_on_fail kernel command line parameter + +* Wed Jul 31 2013 Harald Hoyer 031-3.git20130731 +- do not include adjtime and localtime in the initramfs +- write out vlan configs + +* Wed Jul 31 2013 Harald Hoyer 031-1 +- do not include the resume dracut module in hostonly mode, + if no swap is present +- don't warn twice about omitted modules +- use systemd-cat for logging on systemd systems, if logfile is unset +- fixed PARTUUID parsing +- support kernel module signing keys +- do not install the usrmount dracut module in hostonly mode, + if /sbin/init does not live in /usr +- add debian udev rule files +- add support for bcache +- network: handle bootif style interfaces + e.g. ip=77-77-6f-6f-64-73:dhcp +- add support for kmod static devnodes +- add vlan support for iBFT + +* Wed Jul 24 2013 Kyle McMartin 030-2 +- Add ehci-tegra.ko to initramfs to allow rawhide tegra based platforms + to boot off USB disks. + +* Wed Jul 17 2013 Harald Hoyer 030-1 +- support new persistent network interface names +- fix findmnt calls, prevents hang on stale NFS mounts +- add systemd.slice and slice.target units +- major shell cleanup +- support root=PARTLABEL= and root=PARTUUID= +- terminfo: only install l/linux v/vt100 and v/vt220 +- unset all LC_* and LANG, 10% faster +- fixed dependency loop for dracut-cmdline.service +- do not wait_for_dev for the root devices +- do not wait_for_dev for devices, if dracut-initqueue is not needed +- support early microcode loading with --early-microcode +- dmraid, let dmraid setup its own partitions +- sosreport renamed to rdsosreport + +* Fri Jun 14 2013 Harald Hoyer 029-1 +- wait for IPv6 auto configuration +Resolves: rhbz#973719 +- i18n: make the default font configurable +- systemd/dracut-pre-pivot.service: also execute for cleanup hooks or rd.break +- add dracut-shutdown.service.8 manpage +- lvm: redirect error message of lvs to /dev/null +Resolves: rhbz#921235 + +* Wed Jun 12 2013 Harald Hoyer 028-1 +- lvm: fixed "thin" recognition +Resolves: rhbz#921235 +- install libs also from one dir above + fixes booting power6 generated initramfs on power7 +- setup correct system time and time zone in initrd +- cms fixups +Resolves: rhbz#970982 rhbz#971025 rhbz#825199 +- iso-scan/filename fixes +Resolves: rhbz#972337 +- add udev rules for persistent network naming +Resolves: rhbz#972662 + +* Tue Jun 04 2013 Dennis Gilmore 027-82.git20130531 +- add patch to include panel-tfp410 module on arm systems + +* Fri May 31 2013 Harald Hoyer 027-81.git20130531 +- fix btrfs mount flags for /usr +- degrade message about missing tools for stripping +Resolves: rhbz#958519 +- set environment vars DRACUT_SYSTEMD, NEWROOT in service file +Resolves: rhbz#963159 +- don't add volatile swap partitions to host_devs +- add libssl.so.10 to make kdump work with fips mode +- readd selinux dracut module for kdump +- url-lib/url-lib.sh: turn off curl globbing +Resolves: rhbz#907497 +- include btrfs-zero-log in the initramfs +Resolves: rhbz#963257 +- proper NAME the network interfaces +Resolves: rhbz#965842 +- install default font latarcyrheb-sun16 +Resolves: rhbz#927564 +- optionally install /etc/pcmcia/config.opts +Resolves: rhbz#920076 +- fix ONBOOT for slaves, set TYPE=Bond for bonding +Resolves: rhbz#919001 +- add nvme kernel module +Resolves: rhbz#910734 +- add xfs_metadump +- selinux: load_policy script fix +- add hid-hyperv and hv-vmbus kernel modules +- add parameter rd.live.squashimg +Resolves: rhbz#789036 rhbz#782108 +- wait for all required interfaces if "rd.neednet=1" +Resolves: rhbz#801829 +- lvm: add tools for thin provisioning +Resolves: rhbz#921235 +- ifcfg/write-ifcfg.sh: fixed ifcfg file generation +- do not wait for mpath* devices +Resolves: rhbz#969068 + +* Wed May 22 2013 Adam Williamson 027-46.git20130430 +- don't specify "p" as a separator for dmraid +Resolves: rhbz#966162 + +* Tue Apr 30 2013 Harald Hoyer 027-45.git20130430 +- fixed fips mode more +Resolves: rhbz#956521 + +* Thu Apr 25 2013 Harald Hoyer 027-39.git20130425 +- fix shutdown, if /dev/console is not writeable +- fixed fips mode +Resolves: rhbz#956521 + +* Thu Apr 18 2013 Harald Hoyer 027-36.git20130418 +- fix initramfs creation on noexec tmpdir +Resolves: rhbz#953426 +- more options for lsinitrd +- bash completion for lsinitrd +- do not output debug information on initramfs creation, if rd.debug is + on the kernel command line +- drop requirement on 'file', lsinitrd can find the magic on its own + +* Mon Apr 15 2013 Harald Hoyer 027-26.git20130415 +- do not call plymouth with full path +- include systemd-random-seed-load.service +- fix ca-bundle.crt for ssl curl +Resolves: rhbz#950770 +- add support for "iso-scan/filename" kernel parameter + +* Wed Apr 10 2013 Harald Hoyer 027-19.git20130410 +- also handle UUID= entries in crypttab in host-only mode +Resolves:rhbz#919752 + +* Tue Apr 09 2013 Harald Hoyer 027-17.git20130409 +- only include needed /etc/crypttab entries +Resolves:rhbz#919752 +- add support for bridge over team and vlan +- support multiple bonding interfaces +- add "action_on_fail=" kernel command line parameter +- add support for bridge over a vlan tagged interface + +* Fri Apr 05 2013 Harald Hoyer 027-10.git20130405 +- fix crypto password timeout on the dracut side + +* Tue Mar 26 2013 Harald Hoyer 027-1 +- version 027 + +* Wed Mar 20 2013 Harald Hoyer 026-72.git20130320 +- fix rescue image naming +Resolves: rhbz#923439 +- turn off host-only mode if essential system filesystems not mounted +- turn off host-only mode if udev database is not accessible + +* Tue Mar 19 2013 Harald Hoyer 026-62.git20130319 +- fix dracut service ordering +Resolves: rhbz#922991 + +* Mon Mar 18 2013 Harald Hoyer 026-56.git20130318 +- don't fail hard on kernel modules install +Resolves: rhbz#922565 + +* Mon Mar 18 2013 Harald Hoyer 026-55.git20130318 +- install all host filesystem drivers +Resolves: rhbz#922565 + +* Sat Mar 16 2013 Harald Hoyer 026-54.git20130316 +- fix for squashfs +Resolves: rhbz#922248 +- documentation fixes +- sosreport, mkdir /run/initramfs + +* Fri Mar 15 2013 Harald Hoyer 026-48.git20130315 +- use new initrd.target from systemd +- fixed rescue generation + +* Wed Mar 13 2013 Harald Hoyer 026-33.git20130313 +- add module-load.d modules to the initramfs +- add sysctl.d to the initramfs +- optimize plymouth module for systemd mode +- add new dracut parameter "--regenerate-all" +- add new dracut parameter "--noimageifnotneeded" +- shutdown: mount move /run /sys /dev /proc out of /oldroot + before pre-shutdown +- add bash completion for dracut + +* Wed Mar 13 2013 Harald Hoyer 026-19.git20130313 +- fix switch-root and local-fs.target problem +- add norescue and nohostonly subpackages + +* Mon Mar 11 2013 Harald Hoyer 026-15.git20130311 +- update to recent git + +* Fri Mar 08 2013 Harald Hoyer 026-1 +- version 026 + +* Mon Feb 11 2013 Harald Hoyer 025-35.git20130211 +- update to recent git + +* Wed Jan 23 2013 Harald Hoyer 025-1 +- version 025 + +* Tue Aug 21 2012 Harald Hoyer 023-13.git20120821 +- reintroduce rd.neednet, which reenables anaconda networking +- fix some dracut-install corner cases +- fix FIPS for /boot not on extra partition + +* Wed Aug 01 2012 Dennis Gilmore - 023-2 +- add patch to include omap_hsmmc for arm + +* Wed Aug 01 2012 Harald Hoyer 023-1 +- version 023 + +* Mon Jul 30 2012 Harald Hoyer 022-99.git20120730 +- removed install of missing finished-ask-password.sh + +* Mon Jul 30 2012 Harald Hoyer 022-97.git20120730 +- moved crypt setup to systemd units + +* Fri Jul 27 2012 Harald Hoyer 022-63.git20120727 +- fixed dracut-install bug if /var/tmp contains a symlink +- fixed some partx issues + +* Mon Jul 23 2012 Harald Hoyer 022-5.git20120723 +- dracut.8: added more documentation about executing dracut + +* Fri Jul 20 2012 Harald Hoyer 022-2.git20120720 +- fixed some race condition for resume from hibernation + +* Fri Jul 20 2012 Harald Hoyer 022-1 +- version 022 +- host-only kernel modules fix + +* Fri Jul 20 2012 Harald Hoyer 021-1 +- version 21 +- systemd in the initramfs reenabled +- new option "--kver" + +* Wed Jul 18 2012 Fedora Release Engineering - 020-97.git20120717 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Tue Jul 17 2012 Harald Hoyer 020-96.git20120717 +- disabled systemd in the initramfs, until it works correctly + +* Wed Jul 11 2012 Harald Hoyer 020-84.git20120711 +- add back "--force" to switch-root, otherwise systemd umounts /run + +* Wed Jul 11 2012 Harald Hoyer 020-83.git20120711 +- more systemd journal fixes +- nfs module fix +- install also /lib/modprobe.d/* +- fixed dracut-shutdown service +- safeguards for dracut-install +- for --include also copy symlinks + +* Tue Jul 10 2012 Harald Hoyer 020-72.git20120710 +- stop journal rather than restart +- copy over dracut services to /run/systemd/system + +* Tue Jul 10 2012 Harald Hoyer 020-70.git20120710 +- more systemd unit fixups +- restart systemd-journald in switch-root post +- fixed dracut-install loader ldd error message + +* Mon Jul 09 2012 Harald Hoyer 020-64.git20120709 +- fixed plymouth install +- fixed resume +- fixed dhcp +- no dracut systemd services installed in the system + +* Mon Jul 09 2012 Harald Hoyer 020-57.git20120709 +- more fixups for systemd-udevd unit renaming + +* Mon Jul 09 2012 Harald Hoyer 020-55.git20120709 +- require systemd >= 186 +- more fixups for systemd-udevd unit renaming + +* Mon Jul 09 2012 Harald Hoyer 020-52.git20120709 +- fixed prefix in 01-dist.conf + +* Fri Jul 06 2012 Harald Hoyer 020-51.git20120706 +- cope with systemd-udevd unit renaming +- fixed network renaming +- removed dash module + +* Mon Jul 02 2012 Harald Hoyer 020-22.git20120702 +- fixed kernel modules install + +* Mon Jul 02 2012 Harald Hoyer 020-21.git20120702 +- moved /usr/bin/dracut-install to /usr/lib +- more speedups + +* Fri Jun 29 2012 Harald Hoyer 020-1 +- version 020 +- new /usr/bin/dracut-install tool +- major speedup of the image creation + +* Mon Jun 25 2012 Harald Hoyer 019-92.git20120625 +- support vlan tagged binding +- speedup initramfs emergency service +- speedup image creation +- fix installkernel() return codes +Resolves: rhbz#833256 +- add qemu and qemu-net modules to add qemu drivers even in host-only +- speedup btrfs and xfs fsck (nop) +- no more mknod in the initramfs (fixes plymouth on s390) + +* Thu Jun 21 2012 Harald Hoyer 019-62.git20120621 +- do not require pkg-config for systemd +- i18n fixes +- less systemd services in the initramfs + +* Thu Jun 21 2012 Harald Hoyer 019-57.git20120620 +- systemd is now the default init in the initramfs + +* Mon Jun 18 2012 Harald Hoyer 019-40.git20120618 +- new upstream version + +* Mon Jun 11 2012 Harald Hoyer 019-16.git20120611 +- new upstream version + +* Tue Jun 05 2012 Dennis Gilmore 019-2 +- include omapdrm with the arm modules + +* Mon Jun 04 2012 Harald Hoyer 019-1 +- version 019-1 + +* Tue May 22 2012 Harald Hoyer 018-74.git20120522 +- new upstream version + +* Thu May 17 2012 Dennis Gilmore 018-53.git20120509 +- add patch to pull in arm storage modules + +* Wed May 09 2012 Harald Hoyer 018-52.git20120509 +- new upstream version + +* Fri May 04 2012 Harald Hoyer 018-40.git20120504 +- new upstream version + +* Wed Apr 25 2012 Harald Hoyer 018-37.git20120425.1 +- fixup for multipath and iscsi host-only detection + +* Wed Apr 25 2012 Harald Hoyer 018-37.git20120425 +- fixed udevd location + +* Tue Apr 24 2012 Harald Hoyer 018-33.git20120424 +- new upstream version + +* Thu Apr 19 2012 Harald Hoyer 018-25.git20120419 +- fixed network for non-network root (like installer media) + +* Wed Apr 18 2012 Harald Hoyer 018-22.git20120418 +- new upstream version + +* Mon Apr 16 2012 Harald Hoyer 018-12.git20120416 +- new upstream version, which fixes various anaconda loader issues + +* Thu Apr 05 2012 Harald Hoyer 018-1 +- version 018 + +* Thu Mar 22 2012 Harald Hoyer 017-62.git20120322 +- fixed /run prefix copying + +* Wed Mar 21 2012 Harald Hoyer 017-59.git20120321 +- new upstream version, which fixes various anaconda loader issues + +* Mon Mar 12 2012 Harald Hoyer 017-43.git20120312 +- live image: fixed image uncompression +- live updates for livenet + +* Thu Mar 08 2012 Harald Hoyer 017-40.git20120308 +- add s390 ctcm network kernel module + +* Thu Mar 08 2012 Harald Hoyer 017-39.git20120308 +- kill dhclient silently +- cleanup and fix network config writeout to /run/initramfs/state +Resolves: rhbz#799989 +- various cleanups + +* Fri Mar 02 2012 Harald Hoyer 017-22.git20120302 +- nfs path fixes for live image over nfs + root=live:nfs://10.10.10.10:/srv/all/install.img ip=dhcp rd.neednet + +* Thu Mar 01 2012 Harald Hoyer 017-19.git20120301 +- fixed include of some kernel modules + +* Wed Feb 29 2012 Harald Hoyer 017-17.git20120229 +- update to latest git +- fixes for convertfs (/usr-move) + +* Fri Feb 24 2012 Harald Hoyer 017-1 +- version 017 + +* Fri Feb 17 2012 Harald Hoyer 016-9.git20120217 +- update to latest git + +* Wed Feb 15 2012 Harald Hoyer 016-1 +- version 016 + +* Mon Feb 13 2012 Harald Hoyer 015-9.git20120213 +- update to latest git + +* Sun Feb 12 2012 Kay Sievers - 015-9.git20120210 +- fix dependency loop in systemd service files + +* Fri Feb 10 2012 Harald Hoyer 015-8.git20120210 +- update to latest git + +* Thu Feb 09 2012 Harald Hoyer 015-7.git20120209 +- update to latest git + +* Thu Feb 09 2012 Harald Hoyer 015-4.git20120209 +- update to latest git + +* Wed Feb 08 2012 Harald Hoyer 015-3.git20120208 +- update to latest git + +* Tue Feb 07 2012 Harald Hoyer 015-1 +- version 015 + +* Thu Feb 02 2012 Harald Hoyer 014-81.git20120202 +- update to latest git + +* Thu Feb 02 2012 Harald Hoyer 014-80.git20120202 +- update to latest git + +* Thu Jan 26 2012 Harald Hoyer 014-77.git20120126.1 +- rebuild for rawhide + +* Thu Jan 26 2012 Harald Hoyer 014-77.git20120126 +- update to latest git + +* Thu Jan 26 2012 Harald Hoyer 014-76.git20120126 +- update to latest git + +* Thu Jan 26 2012 Harald Hoyer 014-75.git20120126 +- update to latest git + +* Thu Jan 26 2012 Harald Hoyer 014-74.git20120126 +- update to latest git + +* Thu Jan 26 2012 Harald Hoyer 014-73.git20120126 +- update to latest git + +* Thu Jan 26 2012 Harald Hoyer 014-72.git20120126 +- update to latest git + +* Mon Jan 23 2012 Harald Hoyer 014-65.git20120123 +- update to latest git + +* Mon Jan 23 2012 Harald Hoyer 014-61.git20120123 +- update to latest git + +* Tue Jan 17 2012 Harald Hoyer 014-38.git20120117 +- update to latest git + +* Fri Jan 13 2012 Fedora Release Engineering - 014-10.git20111215 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Thu Dec 15 2011 Harald Hoyer 014-9.git20111215 +- update to latest git +- lots of patch changes + +* Fri Oct 21 2011 Harald Hoyer 013-100.git20111021 +- update to latest git + +* Thu Oct 20 2011 Harald Hoyer 013-93.git20111020 +- update to latest git + +* Wed Oct 19 2011 Harald Hoyer 013-85.git20111019 +- update to latest git + +* Tue Oct 04 2011 Harald Hoyer 013-15 +- fixed mdraid container handling +Resolves: rhbz#743240 + +* Thu Sep 22 2011 Harald Hoyer 013-13 +- fixed mdraid issues +- fixed btrfsck +Resolves: rhbz#735602 + +* Wed Sep 21 2011 Harald Hoyer 013-12 +- removed patch backup files +- reintroduced /dev/live + +* Tue Sep 20 2011 Harald Hoyer 013-11 +- move mounting of securitfs to a seperate module +Resolves: rhbz#737140 + +* Tue Sep 20 2011 Harald Hoyer 013-10 +- mount securitfs with the correct source +Resolves: rhbz#737140 + +* Tue Sep 20 2011 Harald Hoyer 013-9 +- do not carry over initramfs udev rules +Resolves: rhbz#734096 + +* Fri Sep 02 2011 Harald Hoyer 013-8 +- hopefully fixed one part of a loop/udev and loop/mount race +Resolves: rhbz#735199 + +* Wed Aug 31 2011 Harald Hoyer 013-7 +- add /lib/udev/input_id to the initramfs +- fix hmac install + +* Tue Aug 30 2011 Harald Hoyer 013-6 +- fixed environment passing to real init +Resolves: rhbz#733674 +- fixed lvm on md + +* Mon Aug 29 2011 Harald Hoyer 013-5 +- fixed rhel/fedora version checks + +* Wed Aug 17 2011 Harald Hoyer 013-4 +- fixed crash with livenet installed + +* Wed Aug 17 2011 Harald Hoyer 013-3 +- fixed live iso mounting +Resolves: rhbz#730579 + +* Fri Aug 12 2011 Harald Hoyer 013-1 +- fixed symlink creation for lorax + +* Wed Aug 10 2011 Harald Hoyer 011-41.git20110810 +- fixed getargs() for empty args + +* Wed Aug 10 2011 Harald Hoyer 011-40.git20110810 +- fixed symbolic link creation in the initramfs +Resolves: rhbz#728863 + +* Wed Jul 20 2011 Harald Hoyer 011-15.git20110720 +- "eject" is optional now +- refined shutdown procedure + +* Mon Jul 18 2011 Harald Hoyer 011-1 +- version 011 + +* Fri May 20 2011 Harald Hoyer 011-0.1 +- git snapshot of pre-version 011 + +* Fri Apr 01 2011 Harald Hoyer 010-1 +- version 010 + +* Thu Mar 31 2011 Harald Hoyer 009-5 +- fixed PATH and kmsg logging + +* Thu Mar 31 2011 Harald Hoyer 009-4 +- fixed dmsquash rule generation +- fixed fips boot arg parsing +- fixed plymouth pid generation + +* Wed Mar 30 2011 Harald Hoyer 009-3 +- fixed dhcp +- added /lib/firmware/updates to firmware directories +- fixed LiveCD /dev/.initramfs fallback +- fixed cdrom polling +- dropped net-tools dependency + +* Tue Mar 29 2011 Harald Hoyer 009-2 +- fixed empty output file argument handling: + "dracut '' " + +* Mon Mar 28 2011 Harald Hoyer 009-1 +- version 009 + +* Thu Mar 17 2011 Harald Hoyer 009-0.1 +- version 009 prerelease + +* Tue Feb 22 2011 Harald Hoyer 008-7 +- fixed lvm version parsing + +* Tue Feb 22 2011 Harald Hoyer 008-6 +- fixed lvm version parsing + +* Mon Feb 21 2011 Harald Hoyer 008-5 +- fixed i18n unicode setting +- set cdrom in kernel polling + +* Fri Feb 18 2011 Harald Hoyer 008-4 +- readded dist tag + +* Fri Feb 18 2011 Harald Hoyer 008-3 +- fixed i18n +- turned off selinux by default + +* Wed Feb 09 2011 Harald Hoyer 008-2 +- do not write dracut.log to /tmp under any circumstances +- touch /dev/.systemd/plymouth after plymouth started + +* Tue Feb 08 2011 Fedora Release Engineering - 008-1.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Wed Feb 02 2011 Harald Hoyer 008-1 +- version 008-1 + +* Mon Jan 17 2011 Harald Hoyer 008-0.11 +- removed "mount" requirement + +* Thu Nov 18 2010 Harald Hoyer - 008-0.10 +- dracut-008 pre git snapshot +- fixes /dev/dri permissions +Resolves: rhbz#626559 + +* Fri Nov 12 2010 Harald Hoyer 008-0.9 +- dracut-008 pre git snapshot +- fixes /dev/.udev permissions +Resolves: rhbz#651594 + +* Wed Nov 3 2010 Harald Hoyer - 008-0.8 +- fixed fsck -a option + +* Fri Oct 29 2010 Harald Hoyer 008-0.7 +- added fsck to initramfs + +* Fri Oct 29 2010 Harald Hoyer 008-0.6 +- fixed rpm macros + +* Fri Oct 29 2010 Harald Hoyer 008-0.5 +- dracut-008 pre git snapshot + +* Mon Aug 09 2010 Harald Hoyer 007-1 +- version 007 + +* Thu Jun 17 2010 Harald Hoyer 006-1 +- version 006 + +* Fri Jun 11 2010 Harald Hoyer +- Remove requirements, which are not really needed +Resolves: rhbz#598509 +- fixed copy of network config to /dev/.initramfs/ (patch 146) +Resolves: rhbz#594649 +- more password beauty (patch 142) +Resolves: rhbz#561092 +- support multiple iSCSI disks (patch 143) +Resolves: rbhz#580190 +- fixed selinux=0 (patch 130) +Resolves: rhbz#593080 +- add support for booting LVM snapshot root volume (patch 145) +Resolves: rbhz#602723 +- remove hardware field from BOOTIF= (patch 148) +Resolves: rhbz#599593 +- add aes kernel modules and fix crypt handling (patch 137, patch 140 and patch 147) +Resolves: rhbz#600170 + +* Thu May 27 2010 Harald Hoyer +- fixed Requirements +- fixed autoip6 +Resolves: rhbz#538388 +- fixed multipath +Resolves: rhbz#595719 + +* Thu May 06 2010 Harald Hoyer +- only display short password messages +Resolves: rhbz#561092 + +* Thu May 06 2010 Harald Hoyer +- fixed dracut manpages +Resolves: rhbz#589109 +- use ccw-init and ccw rules from s390utils +Resolves: rhbz#533494 +- fixed fcoe +Resolves: rhbz#486244 +- various other bugfixes seen in Fedora + +* Tue Apr 20 2010 Harald Hoyer +- fixed network with multiple nics +- fixed nfsidmap paths +- do not run blkid on non active container raids +- fixed cdrom polling mechanism +- update to latest git + +* Thu Apr 15 2010 Harald Hoyer +- fixed dracut manpages +- dmraid parse different error messages +- add cdrom polling mechanism for slow cdroms +- add module btrfs +- teach dmsquash live-root to use rootflags +- trigger udev with action=add +- fixed add_drivers handling +- add sr_mod +- use pigz instead of gzip, if available + +* Thu Mar 25 2010 Harald Hoyer +- removed firmware requirements (rhbz#572634) +- add /etc/dracut.conf.d +- Resolves: rhbz#572634 + +* Fri Mar 19 2010 Harald Hoyer +- version 005 + +* Fri Mar 19 2010 Harald Hoyer +- fixed rpmlint errors (rhbz#570547) +- removed firmware package from dracut-kernel (rhbz#572634) +- add dcb support to dracut's FCoE support (rhbz#563794) +- force install some modules in hostonly mode (rhbz#573094) +- various other bugfixes +- Resolves: rhbz#570547, rhbz#572634, rhbz#563794, rhbz#573094 + +* Thu Feb 18 2010 Harald Hoyer 004-15 +- fixed "selinux=0" booting (rhbz#566376) +- fixed internal IFS handling +- Resolves: rhbz#566376 + +* Fri Jan 29 2010 Harald Hoyer 004-5 +- fixed firmware.sh bug (#559975 #559597) + +* Tue Jan 26 2010 Harald Hoyer 004-4 +- add multipath check + +* Tue Jan 26 2010 Harald Hoyer 004-3 +- fix selinux handling if .autorelabel is present +- Resolves: rhbz#557744 + +* Wed Jan 20 2010 Harald Hoyer 004-2 +- fix emergency_shell argument parsing +- Related: rhbz#543948 + +* Fri Jan 15 2010 Harald Hoyer 004-1 +- version 004 +- Resolves: rhbz#529339 rhbz#533494 rhbz#548550 +- Resolves: rhbz#548555 rhbz#553195 + +* Wed Jan 13 2010 Harald Hoyer 003-3 +- add Obsoletes of mkinitrd/nash/libbdevid-python +- Related: rhbz#543948 + +* Wed Jan 13 2010 Warren Togami 003-2 +- nbd is Fedora only + +* Fri Nov 27 2009 Harald Hoyer 003-1 +- version 003 + +* Mon Nov 23 2009 Harald Hoyer 002-26 +- add WITH_SWITCH_ROOT make flag +- add fips requirement conditional +- add more device mapper modules (bug #539656) + +* Fri Nov 20 2009 Dennis Gregorovic - 002-25.1 +- nss changes for Alpha 3 + +* Thu Nov 19 2009 Harald Hoyer 002-25 +- add more requirements for dracut-fips (bug #539257) + +* Tue Nov 17 2009 Harald Hoyer 002-24 +- put fips module in a subpackage (bug #537619) + +* Tue Nov 17 2009 Harald Hoyer 002-23 +- install xdr utils for multipath (bug #463458) + +* Thu Nov 12 2009 Harald Hoyer 002-22 +- add module 90multipath +- add module 01fips +- renamed module 95ccw to 95znet (bug #533833) +- crypt: ignore devices in /etc/crypttab (root is not in there) +- dasd: only install /etc/dasd.conf in hostonly mode (bug #533833) +- zfcp: only install /etc/zfcp.conf in hostonly mode (bug #533833) +- kernel-modules: add scsi_dh scsi_dh_rdac scsi_dh_emc (bug #527750) +- dasd: use dasdconf.sh from s390utils (bug #533833) + +* Fri Nov 06 2009 Harald Hoyer 002-21 +- fix rd_DASD argument handling (bug #531720) +- Resolves: rhbz#531720 + +* Wed Nov 04 2009 Harald Hoyer 002-20 +- fix rd_DASD argument handling (bug #531720) +- Resolves: rhbz#531720 + +* Tue Nov 03 2009 Harald Hoyer 002-19 +- changed rd_DASD to rd_DASD_MOD (bug #531720) +- Resolves: rhbz#531720 + +* Tue Oct 27 2009 Harald Hoyer 002-18 +- renamed lvm/device-mapper udev rules according to upstream changes +- fixed dracut search path issue + +* Mon Oct 26 2009 Harald Hoyer 002-17 +- load dm_mod module (bug #530540) + +* Fri Oct 09 2009 Jesse Keating - 002-16 +- Upgrade plymouth to Requires(pre) to make it show up before kernel + +* Thu Oct 08 2009 Harald Hoyer 002-15 +- s390 ccw: s/layer1/layer2/g + +* Thu Oct 08 2009 Harald Hoyer 002-14 +- add multinic support +- add s390 zfcp support +- add s390 network support + +* Wed Oct 07 2009 Harald Hoyer 002-13 +- fixed init= handling +- kill loginit if "rdinitdebug" specified +- run dmsquash-live-root after udev has settled (bug #527514) + +* Tue Oct 06 2009 Harald Hoyer 002-12 +- add missing loginit helper +- corrected dracut manpage + +* Thu Oct 01 2009 Harald Hoyer 002-11 +- fixed dracut-gencmdline for root=UUID or LABEL + +* Thu Oct 01 2009 Harald Hoyer 002-10 +- do not destroy assembled raid arrays if mdadm.conf present +- mount /dev/shm +- let udevd not resolve group and user names +- preserve timestamps of tools on initramfs generation +- generate symlinks for binaries correctly +- moved network from udev to initqueue +- mount nfs3 with nfsvers=3 option and retry with nfsvers=2 +- fixed nbd initqueue-finished +- improved debug output: specifying "rdinitdebug" now logs + to dmesg, console and /init.log +- stop udev before killing it +- add ghost /var/log/dracut.log +- dmsquash: use info() and die() rather than echo +- strip kernel modules which have no x bit set +- redirect stdin, stdout, stderr all RW to /dev/console + so the user can use "less" to view /init.log and dmesg + +* Tue Sep 29 2009 Harald Hoyer 002-9 +- make install of new dm/lvm udev rules optionally +- correct dasd module typo + +* Fri Sep 25 2009 Warren Togami 002-8 +- revert back to dracut-002-5 tarball 845dd502 + lvm2 was reverted to pre-udev + +* Wed Sep 23 2009 Harald Hoyer 002-7 +- build with the correct tarball + +* Wed Sep 23 2009 Harald Hoyer 002-6 +- add new device mapper udev rules and dmeventd + bug 525319, 525015 + +* Wed Sep 23 2009 Warren Togami 002-5 +- Revert back to -3, Add umount back to initrd + This makes no functional difference to LiveCD. See Bug #525319 + +* Mon Sep 21 2009 Warren Togami 002-4 +- Fix LiveCD boot regression + +* Mon Sep 21 2009 Harald Hoyer 002-3 +- bail out if selinux policy could not be loaded and + selinux=0 not specified on kernel command line + (bug #524113) +- set finished criteria for dmsquash live images + +* Fri Sep 18 2009 Harald Hoyer 002-2 +- do not cleanup dmraids +- copy over lvm.conf + +* Thu Sep 17 2009 Harald Hoyer 002-1 +- version 002 +- set correct PATH +- workaround for broken mdmon implementation + +* Wed Sep 16 2009 Harald Hoyer 001-12 +- removed lvm/mdraid/dmraid lock files +- add missing ifname= files + +* Wed Sep 16 2009 Harald Hoyer 001-11 +- generate dracut-version during rpm build time + +* Tue Sep 15 2009 Harald Hoyer 001-10 +- add ifname= argument for persistent netdev names +- new /initqueue-finished to check if the main loop can be left +- copy mdadm.conf if --mdadmconf set or mdadmconf in dracut.conf + +* Wed Sep 09 2009 Harald Hoyer 001-9 +- added Requires: plymouth-scripts + +* Wed Sep 09 2009 Harald Hoyer 001-8 +- plymouth: use plymouth-populate-initrd +- add add_drivers for dracut and dracut.conf +- do not mount /proc and /selinux manually in selinux-load-policy + +* Wed Sep 09 2009 Harald Hoyer 001-7 +- add scsi_wait_scan to be sure everything was scanned + +* Tue Sep 08 2009 Harald Hoyer 001-6 +- fixed several problems with md raid containers +- fixed selinux policy loading + +* Tue Sep 08 2009 Harald Hoyer 001-5 +- patch does not honor file modes, fixed them manually + +* Mon Sep 07 2009 Harald Hoyer 001-4 +- fixed mdraid for IMSM + +* Mon Sep 07 2009 Harald Hoyer 001-3 +- fixed bug, which prevents installing 61-persistent-storage.rules (bug #520109) + +* Thu Sep 03 2009 Harald Hoyer 001-2 +- fixed missing grep for md +- reorder cleanup + +* Wed Sep 02 2009 Harald Hoyer 001-1 +- version 001 +- see http://dracut.git.sourceforge.net/git/gitweb.cgi?p=dracut/dracut;a=blob_plain;f=NEWS + +* Fri Aug 14 2009 Harald Hoyer 0.9-1 +- version 0.9 + +* Thu Aug 06 2009 Harald Hoyer 0.8-1 +- version 0.8 +- see http://dracut.git.sourceforge.net/git/gitweb.cgi?p=dracut/dracut;a=blob_plain;f=NEWS + +* Fri Jul 24 2009 Harald Hoyer 0.7-1 +- version 0.7 +- see http://dracut.git.sourceforge.net/git/gitweb.cgi?p=dracut/dracut;a=blob_plain;f=NEWS + +* Wed Jul 22 2009 Harald Hoyer 0.6-1 +- version 0.6 +- see http://dracut.git.sourceforge.net/git/gitweb.cgi?p=dracut/dracut;a=blob_plain;f=NEWS + +* Fri Jul 17 2009 Harald Hoyer 0.5-1 +- version 0.5 +- see http://dracut.git.sourceforge.net/git/gitweb.cgi?p=dracut/dracut;a=blob_plain;f=NEWS + +* Sat Jul 04 2009 Harald Hoyer 0.4-1 +- version 0.4 +- see http://dracut.git.sourceforge.net/git/gitweb.cgi?p=dracut/dracut;a=blob_plain;f=NEWS + +* Thu Jul 02 2009 Harald Hoyer 0.3-1 +- version 0.3 +- see http://dracut.git.sourceforge.net/git/gitweb.cgi?p=dracut/dracut;a=blob_plain;f=NEWS + +* Wed Jul 01 2009 Harald Hoyer 0.2-1 +- version 0.2 + +* Fri Jun 19 2009 Harald Hoyer 0.1-1 +- first release + +* Thu Dec 18 2008 Jeremy Katz - 0.0-1 +- Initial build