From 49df23defec0a07a29d96c6a186dd7030384568d Mon Sep 17 00:00:00 2001 From: Lukas Nykryn Date: Fri, 9 Jul 2021 12:41:07 +0200 Subject: [PATCH] dracut-055-6.git20210709 Resolves:#1977347,#1970712 --- 0001.patch | 474 +++++++++++++++++++++++++++++++++++++++++++++++++++ 0002.patch | 87 ++++++++++ 0003.patch | 143 ++++++++++++++++ 0004.patch | 71 ++++++++ 0005.patch | 24 +++ dracut.spec | 14 +- newdracut.sh | 49 +++++- 7 files changed, 859 insertions(+), 3 deletions(-) create mode 100644 0001.patch create mode 100644 0002.patch create mode 100644 0003.patch create mode 100644 0004.patch create mode 100644 0005.patch diff --git a/0001.patch b/0001.patch new file mode 100644 index 0000000..126a5a5 --- /dev/null +++ b/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/0002.patch b/0002.patch new file mode 100644 index 0000000..d64196a --- /dev/null +++ b/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/0003.patch b/0003.patch new file mode 100644 index 0000000..7b9227c --- /dev/null +++ b/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/0004.patch b/0004.patch new file mode 100644 index 0000000..d050363 --- /dev/null +++ b/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/0005.patch b/0005.patch new file mode 100644 index 0000000..58eafc0 --- /dev/null +++ b/0005.patch @@ -0,0 +1,24 @@ +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/dracut.spec b/dracut.spec index 8589865..0e0aa32 100644 --- a/dracut.spec +++ b/dracut.spec @@ -5,7 +5,7 @@ # strip the automatically generated dep here and instead co-own the # directory. %global __requires_exclude pkg-config -%define dist_free_release 1 +%define dist_free_release 6.git20210709 Name: dracut Version: 055 @@ -29,6 +29,11 @@ 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 Source1: https://www.gnu.org/licenses/lgpl-2.1.txt @@ -484,6 +489,13 @@ echo 'dracut_rescue_image="yes"' > $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/ %{_prefix}/lib/kernel/install.d/51-dracut-rescue.install %changelog +* 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 diff --git a/newdracut.sh b/newdracut.sh index c53481d..1a06976 100755 --- a/newdracut.sh +++ b/newdracut.sh @@ -1,17 +1,62 @@ #!/bin/bash +shopt -s extglob -if [[ -f "$HOME/git/dracut/$1" ]]; then +if [[ -e "$HOME/git/dracut/$1" ]]; then srcrpm="$HOME/git/dracut/$1" +elif [[ -e "$HOME/dev/upstream/dracut/$1" ]]; then + srcrpm="$HOME/dev/upstream/dracut/$1" else srcrpm="$1" fi [[ -f $srcrpm ]] || exit 0 +old_release=$(rpmspec -D "_sourcedir $(pwd)" -q --srpm --qf '%{release}' dracut.spec) +old_release=${old_release%%.*} + cp dracut.spec dracut.spec.old for i in *.patch; do git rm -f $i;done if rpm -ivh --define "_srcrpmdir $PWD" --define "_specdir $PWD" --define "_sourcedir $PWD" "$srcrpm"; then ls *.patch &>/dev/null && git add *.patch - perl -n -e 'if ($do_print) {print "$_" ;}; if (/^%changelog/) { $do_print=1; }' < dracut.spec.old >> dracut.spec + + new_version=$(rpmspec -D "_sourcedir $(pwd)" -q --srpm --qf '%{version}' dracut.spec) + new_release=$(rpmspec -D "_sourcedir $(pwd)" -q --srpm --qf '%{release}' dracut.spec) + new_release_full=${new_release%.*} + new_release=${new_release%%.*} + + do_print="" + while IFS=$'\n' read -r line + do + if [ -z "$do_print" ] && [ "$line" = "%changelog" ]; then + do_print="yes" + echo "* $(LANG='C' date '+%a %b %d %Y') $(git config user.name) <$(git config user.email)> - ${new_version}-${new_release_full}" + + for ((i=old_release; i> dracut.spec + + git add dracut.spec + + msg="Resolves: $( + for ((i=old_release; i