Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(deps): bump luizm/action-sh-checker from 0.8.0 to 0.9.0 #22

Open
wants to merge 58 commits into
base: main
Choose a base branch
from

Conversation

dependabot[bot]
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Sep 17, 2024

Bumps luizm/action-sh-checker from 0.8.0 to 0.9.0.

Commits
  • 17bd25a Merge pull request #57 from adonis0147/master
  • a32a0ec Merge pull request #62 from josegonzalez/patch-1
  • 949be78 chore: bump shfmt and shellcheck versions
  • 54814db feat: enable comments for pull_request_target event
  • See full diff in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

pvalena and others added 30 commits June 3, 2024 09:38
From-dist-git-commit: a1ebaf27b616010bc672be9409ff42b8234b008d
Based on a commit 856e7ac.

Currently upstream does not create releases.

Reference PR: dracutdevs/dracut#2509
Unpacked archive: https://github.com/pvalena/dracut-fedora/tree/v60-srpm-unpacked
 - rebased from state acf404af26c4add66ba0dd13509a94589dce86df
 - rebased from state a24e1272faba2875f9b78fcf42109028af0869bc
From-dist-git-commit: 4faeede00276da9101b9f279a9f1d1a188824021
The original dracut repository is no longer maintained, new initiative was started:

https://github.com/dracut-ng/dracut-ng/
Module to install hwdb.bin. Further extensions might make only selected
part of hwdb installable to save space. The module is not included by default.

Including the module adds 2MB of compressed data (on Fedora, the file has 12MB).

Installing hwdb.bin is needed in case of custom HW like a keyboard/mouse, or various interfaces.

Original PR: dracutdevs/dracut#1681
as there's no reason to keep a copy; there shouldn't be any modifications.

In case there are args stored in a separate file (Fedora and alike),
it needs to be supplied too, but without the option to change the user.
…f no args"

revert: "fix(install.d): simplify and use what kernel-install gives us"

This reverts commits:
  d401553
  8388ad1

dracut-ng/dracut-ng#334

This is temporary, until the `20-grub.install` will be able to handle initrd
from kernel staging area.
…R says so

dracut may be installed without being actually used. This is very common in
binary distros where a package may be pulled in through dependencies, even
though the user does not need it in a particular setup. KERNEL_INSTALL_INITRD_GENERATOR
is being added in systemd's kernel-install to select which of the possibly many
initrd generation mechanisms will be used.

For backwards compat, if it not set, continue as before. But if set to
something else, skip our kernel-install plugins.

(Cherry-picked commit f47bcdd7342ca0d46b889e712a1c7446e18434bc from PR#1825)
According to the synopsis, kernel-install can be called with an
already-prepared initrd. In that case, no initrd should be generated by dracut.

(Cherry-picked commit 0b72cf5c4eca0e0db76e3e210cfdc48e6b49bb74 from PR#1825)
named: "feat(kernel-install): do nothing when $KERNEL_INSTALL_INITRD_GENERATOR says so"

Resolves: rhbz#2276271
Corresponding kernel symbol blk_cleanup_disk is no longer used in the nvdimm
driver and calls are made directly instead.

blk_alloc_disk is used:
https://elixir.bootlin.com/linux/v6.1-rc8/source/drivers/nvdimm/pmem.c#L522

Resolves: RHEL-32237
Different distributions and containers might prefer different
defaults.

The motivation of this work is to increase test coverage and
to run the tests in the same configurations as dracut is used.

(cherry picked from commit e9be0ecc01d35ab8613b2e104ab624ab8f066fbd)
Fix failing test cases by enforcing no-hostonly for those tests cases
that need it.

(cherry picked from commit 51f392a4624bc1cb172a03e4cc28ff0a5cae02a8)
This is important for alpine, so that it does not install both
dash and busybox dracut modules that are potentially conflicting.

(cherry picked from commit 6e3c2bf9d01ad0f93176ee121bb70404f24de4e7)
as tests are failing without it (and someone might actually use it).

https://koji.fedoraproject.org/koji/packageinfo?packageID=6398
as the path might be f.e. /dev/disk/by-partlabel/EFI\x20System\x20Partition

which would produce Warning 'grep: warning: stray \ before x' in get_maj_min

Resolves: RHEL-47145
…nt_dev

With udev 256, there are now directories such as
/dev/disk/by-path/pci-0000:02:00.0-nvme-1-part/ which match here.

In case a nonexisting file/device was passed to get_persistent_dev, it
returned the first directory it looked at because both have maj:min 0:0.
This accidental conversion from garbage to a sensible looking path leads
to weird behaviour later.

Instead of filtering out directories explicitly switch the check to only
return block devices, which also takes care of the character special
/dev/mapper/control.

(cherry picked from commit 55d2fb5b459f356fdbde60ddefb97be942a0c141)

Resolves: RHEL-49744
and also use proper variables for the paths, and fixup invalid paths.
--

The new systemd reads from both /etc and /usr/, so to accomodate this,
I've added new paths to install configs from (I probably haven't covered
all). This changes only hostonly behaviour; uses global variables:

systemdutilconfdir: "/etc/systemd"
systemdutildir: "/lib/systemd:/lib/systemd/systemd-udevd" "/usr/lib/systemd:/usr/lib/systemd/systemd-udevd"

(cherry picked from commit ea4905e944a2acd75ba3a48a5dfeaba417f724e8)

Resolves: RHEL-32506
prudo1 and others added 27 commits August 8, 2024 03:42
…st et al

When using 99squash dracut actually builds two separate initrds. The
"normal" one, that gets squashed into a squashfs image, and a
"minimalistic" one, whose only task is to mount and switch_root to the
squashfs image.

This is currently done the following way:
1. Skipp install() for 99squash during the "normal" installation phase.
2. Trigger a special postinstall hook in 99squash that moves the content
   of $initdir to $squashdir and installs the "minimalistic" initrd to
   $initdir.
3. Strip the binaries in $initdir (of which $squashdir is a sub
   directory of).
4. Squash the content of $squashdir into the squashfs image and remove
   $squashdir.

The problem with this approach is that the steps 2 and 4 specific to
99squash but need to be done in dracut.sh. Thus a lot of special
handling for 99squash is needed in dracut.sh. This will get even more
complex once support for different filesystem images, e.g. erofs, are
implemented.

In order to be able to move most of the functionality into 99squash
itself a new approach will be chosen, i.e.
1. During the installation phase install the "normal" initrd into
   $initdir and the "minimalistic" initrd into $squashdir.
2. Strip the binaries in $initdir.
3. Trigger a special postinstall hook in 99squash that squashes the
   content of $initdir (excluding $squashdir) into the squashfs image,
   removes the content of $intidir (excluding $suqashdir) and, moves the
   content of $squashdir into $initdir.

With that the only special handling remaining in dracut.sh is triggering
the postinstall hook.

However, in inst et al. the destination directory is hard coded to
$initdir. Thus allow setting a different destination directory in inst
et al. to get the new approach to work. For the time being only do that
for the functions required by 99squash.

Signed-off-by: Philipp Rudo <[email protected]>

(cherry picked from commit 5ab4470cf136c2d9983564b84b49fd700d4b8514)

Related: RHEL-43460
…dencies

When implementing erofs support for 99squash we end up with three
modules 99squash, 95squash-squashfs and 95squash-erofs. Where 99squash
contains the common code for filesystem images and
95squash-{squashfs,erofs} the special handing depending on the
filesystem used. This leads to a dependency cycle as we want to allow
users both to choose 99squash, when the exact filesystem doesn't matter,
as well as 95squash-{squashfs,erofs} when a specific filesystem is
required.

But when 99squash is added as a dependency calling
dracut_module_included fails in its depends() function. This lead to
cases where both handlers, 95squash-squashfs and 95squash-erofs, were
added to the initrd.

Reason for the failure is that a module only is marked to be loaded
after all it's dependencies have been checked as well. Thus a child
module cannot detect which parent module wants it to be included. Fix
this by marking modules to be loaded before checking its dependencies in
check_module. Do the same change in check_mount for consistency.

Signed-off-by: Philipp Rudo <[email protected]>

(cherry picked from commit 634b4a5c6fbe595eb240cd529d669d21eadd510c)

Related: RHEL-43460
When using 99squash dracut actually builds two separat initrds. The
"normal" one, that gets squashed into a squashfs image, and a
"minimalistic" one, whose only task is to mount and switch_root to the
squashfs image.

For that 99squash currently requires a lot of special handling in
dracut.sh. Move most of this special handling into 99squash itself. This
requires a new approach when building the "minimalistic" initrd. The new
approach works the following way

1. During the installation phase install the "normal" initrd into
   $initdir and the "minimalistic" initrd into $squashdir.
2. Strip the binaries in $initdir.
3. Trigger a special postinstall hook in 99squash that squashes the
   content of $initdir (excluding $squashdir) into the squashfs image,
   removes the content of $intidir (excluding $suqashdir) and, moves the
   content of $squashdir into $initdir.

Signed-off-by: Philipp Rudo <[email protected]>

(cherry picked from commit 7a4dd89ca732329893628b886fe8e78337d896e8)

Related: RHEL-43460
99squash only allows squashing the files using squashfs. In order to
make the implementation for different filesystems easier split out the
squashfs specific parts into 95squash-squashfs.

While at it rename the root image contained in the initrd to
squashfs-root.img. This allows tools like lsinitrd to detect the
filesystem used later on.

Signed-off-by: Philipp Rudo <[email protected]>

(cherry picked from commit f281606f110be1549cd6b1cd34828653879a5f50)

Related: RHEL-43460
Allow squashing the image in 99squash using erofs. Keep squashfs as
default to not change existing systems. I.e. only use erofs if the user
explicitly include 95squash-erofs or when the prereqs for squashfs are
missing.

Signed-off-by: Philipp Rudo <[email protected]>

(cherry picked from commit e185d6ae1cc38af90f741d3d6c677458d69a345f)

Resolves: RHEL-43460
Add support to handle erofs images in lsinitrd. Unfortunately the erofs
tooling is missing some functionality of unsquashfs, esp. the ability to
extract single files and list the content of the image. Work around this
deficiency by always extracting the full image and emulate the missing
functionality as close as possible.

While at it also handle the rename of the squashfs image to
squashfs-root.img.

Signed-off-by: Philipp Rudo <[email protected]>

(cherry picked from commit 009b4ccc94fe3fcf129dddc5aca4f25b1e1b1862)

Resolves: RHEL-43460
Follow the example for squashfs images and also unpack erofs images in
dracut-initramfs-restore.

Signed-off-by: Philipp Rudo <[email protected]>

(cherry picked from commit b390e194911835e6bd24eeeb0946e374852b8ddc)

Resolves: RHEL-43460
At the moment 99squash relies on dracut-install to create the required
directories it later links to. This approach is error prone and will
cause problems when switching to use 99busybox later on, which tries to
add a link to /usr/sbin that hasn't been created. Thus explicitly
create the expected directories before installing the minimal initrd.

Signed-off-by: Philipp Rudo <[email protected]>
(cherry picked from commit dde95b10ff6b28330370fd697350f8bc5da422da)

Related: RHEL-43460
Make use of 99busybox in 99squash rather than installing it manually.
This not only removes duplicate code but allows mixing of busybox with
tools from coreutils. This requires a small change in 99busybox to
remove the hard coded use of $initdir.

Suggested-by: Laszlo Gombos <[email protected]>
Signed-off-by: Philipp Rudo <[email protected]>

(cherry picked from commit 395366278f473038badba239f76cac391428b149)

Related: RHEL-43460
This adds support for rootfs compressed with erofs. Either as a plain
erofs image or a LiveOS/rootfs.img ext4 filesystem compressed with
erofs.

This patch does not make any attempt to change the squashfs directory
naming (or variable names) in order to make these changes as small as
possible and easy to review. It also does not make any attempt to
support the multitude of available options other than what is needed by
anaconda-dracut calling this script to setup the boot.iso root
filesystem.

(which isn't to say it doesn't work, it just hasn't been tested and is
outside the scope of this change).

(cherry picked commit ca5ae5d)

Resolves: RHEL-43460
The directory ownership for the statd directory should be
rpcuser:rpcuser.

(cherry picked from commit ed5ab5787177f2be8a620a8d2d63a9ad26fbf149 from PR#583)

Resolves: RHEL-53361
Additional fix, restoring previous behavior identical to RHEL-9.

rhel-only

Resolves: RHEL-53350
This gives precedence of force_add_dracutmodules to omit_dracutmodules,
as there is not other way to override omit_dracutmodules list, and users
would expect it to be overriden from command line.

Ref: dracut-ng/dracut-ng#569

This way, `--add` retains it behaviour, and `--force-add` gains additional
functionality in non-hostonly mode. The module may still be skipped
if the module check returns 1, but it should throw error (as I'd expect
for `--force-add`).

(cherry picked commit a669346f48cbb3278c51ba5e95b1b91f9bfdee0a from PR#584)

Resolves: RHEL-53791
Introduce new path for lsinitrd.sh to look into:

/usr/lib/modules/$kver/initramfs.img

Which is valid on all ostree-based systems, and also other image based
systems with pre-generated initramfs.

Ref: https://issues.redhat.com/browse/RHEL-35890
(cherry picked from commit 22ae6ecaf9ecdb9db3e79aa9a72d527e7436c282)

Resolves: RHEL-54650
rhel-only

Resolves: RHEL-39404
as those paths are used by bootc instead of the /etc ones.

(cherry picked from commit 45cdf3c4f24f77f04b264a7747f115d1031b2e67)

Resolves: RHEL-53431
The `get_maj_min()` cache lookup is commonly used
across many flows. While `awk` should be available,
some highly constrained environments may not have it.
A second call to `grep` can provide the same behaviour
without adding a dependnecy.

Lines in the cache will be of the form "/dev/sda2 8:2".
`awk '{print $NF}'` returns the last word of a matching line. Since
the initial matching regex is so specific a second call to grep can
easily extract the last word.

(cherry picked commit ec7efd5)

Related: RHEL-47145
…pendencies

Commit d0f8fde5 ("fix(dracut-init.sh): add module to mods_to_load before
checking dependencies") introduced a regression. When dracut is in
"auto" mode, i.e. '--modules auto' or no --modules is provided, the
expected behavior is that all modules that return 0 in their check()
function are included. Except for the ones where the dependencies cannot
be installed. The commit however, caused those modules to be included
without their dependencies. Thus revert the commit.

This reverts commit d0f8fde5668cfd7fda1d15824e268b4949b4fd04.

Reported-by: Jo Zzsi <[email protected]>
Signed-off-by: Philipp Rudo <[email protected]>

(cherry picked from commit bddbb11bbbfc405317a6fbd53bb189b575d46da2)

Resolves: RHEL-43460
With commit d0f8fde5 ("fix(dracut-init.sh): add module to mods_to_load
before checking dependencies") reverted 99squash can no longer rely on
dracut_module_included working as expected in its check() and depends()
function. Solve this problem by breaking up the cyclic dependency
between 99squash and 95squash-{squashfs,erofs} as the commit was
originally introduced to allow this cyclic dependency.

This requires to move all code shared by 95squash-{squashfs,erofs} from
99squash to a new 99squash-lib module and update the dependencies
accordingly. In addition update the checks in dracut.sh to check for
99squash-lib as 99squash is no longer guaranteed to be included.
Finally make sure that 99squash-lib isn't included without a back
end.

While at it improve and align the error messages in 99squash and
99squash-lib.

Signed-off-by: Philipp Rudo <[email protected]>
(cherry picked from commit d5783635950e38cccf334e7163db79f280650fa2)

Resolves: RHEL-43460
The postinstall phase in 99squash-lib can fail, e.g. when 99squash-lib
is added without one of the required back ends. Usually this isn't fatal
and simply results in a "normal" initrd, i.e. one without squashed
image, being created. Nevertheless, a user needs to explicitly add one
of the required modules for the code to be triggered.  So it is better
to fail with an error rather than giving the user something he didn't
ask for.

Signed-off-by: Philipp Rudo <[email protected]>
(cherry picked from commit 8909d892a7a055ae95be45416e6fbf1b833ff426)

Resolves: RHEL-43460
The postinstall phase of 99squash-lib has the potential to delete the
whole rootfs if $initdir is empty. This should(tm) never happen.
Nevertheless as the consequences are so devastating it is better to
double check.

Signed-off-by: Philipp Rudo <[email protected]>
(cherry picked from commit 6b089c70761c81a7b82a1bfba5f2c1faef7e972f)

Resolves: RHEL-43460
Bumps [luizm/action-sh-checker](https://github.com/luizm/action-sh-checker) from 0.8.0 to 0.9.0.
- [Release notes](https://github.com/luizm/action-sh-checker/releases)
- [Commits](luizm/action-sh-checker@v0.8.0...v0.9.0)

---
updated-dependencies:
- dependency-name: luizm/action-sh-checker
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants