Compare commits

...

1 Commits

Author SHA1 Message Date
81486bb281 import RHEL 10 Beta os-prober-1.81-7.el10 2024-11-20 13:46:15 +00:00
13 changed files with 166 additions and 150 deletions

3
.gitignore vendored
View File

@ -1,2 +1 @@
SOURCES/os-prober_1.74.tar.xz os-prober_1.81.tar.xz
/os-prober_1.74.tar.xz

View File

@ -1,6 +0,0 @@
--- !Policy
product_versions:
- rhel-8
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: manual.sst_desktop.os-prober.functional}

View File

@ -1,53 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Leo Sandoval <lsandova@redhat.com>
Date: Thu, 27 Jun 2024 10:53:32 -0600
Subject: [PATCH] 90fallback: include possible kernel parameters from grub's
default file
Probed filesystems may include the GRUB's default
file ($mpoint/etc/default/grub) so it desirable to source it and get
and place either GRUB_CMDLINE_LINUX and/or GRUB_CMDLINE_LINUX_DEFAULT
on the kernel parameters field, ultimately tools like grub2-mkconfig
makes use of it and create menuentries with kernel parameters.
Signed-off-by: Leo Sandoval <lsandova@redhat.com>
---
linux-boot-probes/mounted/common/90fallback | 18 +++++++++++++++++-
1 file changed, 17 insertions(+), 1 deletion(-)
diff --git a/linux-boot-probes/mounted/common/90fallback b/linux-boot-probes/mounted/common/90fallback
index 7e40d15..cad7645 100755
--- a/linux-boot-probes/mounted/common/90fallback
+++ b/linux-boot-probes/mounted/common/90fallback
@@ -10,6 +10,22 @@ mpoint="$3"
type="$4"
mappedpartition=$(mapdevfs "$partition" 2>/dev/null) || mappedpartition="$partition"
+kernparams="root=$mappedpartition"
+
+# In case there is $mpoint/etc/default/grub, source it and take into account
+# relevant command line variables. This function must be run inside a subshell
+# otherwise grub default variable may be overriden
+get_cmdline_linux_params()
+{
+ local mpoint_sysconfdir="$mpoint/etc"
+ if test -f ${mpoint_sysconfdir}/default/grub ; then
+ unset GRUB_CMDLINE_LINUX GRUB_CMDLINE_LINUX_DEFAULT
+ . ${mpoint_sysconfdir}/default/grub
+ echo "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
+ fi
+}
+
+kernparams="$(echo $kernparams $(get_cmdline_linux_params) | sed 's/[[:space:]]\+$//')"
exitcode=1
for kernpat in /vmlinuz /vmlinux /boot/vmlinuz /boot/vmlinux "/boot/vmlinuz*" \
@@ -38,7 +54,7 @@ for kernpat in /vmlinuz /vmlinux /boot/vmlinuz /boot/vmlinux "/boot/vmlinuz*" \
for initrd in $(eval ls "$initrdname" "$initrdname1" "$initrdname2" "$initrdname3" "$initrdname4" 2>/dev/null); do
if [ "$initrd" != "$kernfile" ] && [ -f "$initrd" ] && [ ! -L "$initrd" ]; then
initrd=$(echo "$initrd" | sed "s!^$mpoint!!")
- result "$partition:$kernbootpart::$kernbasefile:$initrd:root=$mappedpartition"
+ result "$partition:$kernbootpart::$kernbasefile:$initrd:$kernparams"
exitcode=0
foundinitrd=1
fi

View File

@ -0,0 +1,15 @@
diff --git a/os-probes/mounted/arm64/20microsoft b/os-probes/mounted/arm64/20microsoft
index 066918a..b69c2ba 100755
--- a/os-probes/mounted/arm64/20microsoft
+++ b/os-probes/mounted/arm64/20microsoft
@@ -31,7 +31,9 @@ if item_in_dir -q bootmgr "$2"; then
for boot in $(item_in_dir boot "$2"); do
bcd=$(item_in_dir bcd "$2/$boot")
if [ -n "$bcd" ]; then
- if grep -aqs "W.i.n.d.o.w.s. .1.0" "$2/$boot/$bcd"; then
+ if grep -aqs "W.i.n.d.o.w.s. .1.1" "$2/$boot/$bcd"; then
+ long="Windows 11"
+ elif grep -aqs "W.i.n.d.o.w.s. .1.0" "$2/$boot/$bcd"; then
long="Windows 10"
elif grep -aqs "W.i.n.d.o.w.s. .8" "$2/$boot/$bcd"; then
long="Windows 8"

View File

@ -1,27 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Leo Sandoval <lsandova@redhat.com>
Date: Thu, 27 Jun 2024 11:31:38 -0600
Subject: [PATCH] common.sh: do not resolve symbolic link on mapped device
filesystems
/dev/dm-* devices may change from boot to boot so better to use the
symlink instead of the resolved file name
Signed-off-by: Leo Sandoval <lsandova@redhat.com>
---
common.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/common.sh b/common.sh
index a24286a..f0ebfb3 100644
--- a/common.sh
+++ b/common.sh
@@ -92,7 +92,7 @@ export fd_result # so subshells inherit current value by default
# shim to make it easier to use os-prober outside d-i
if ! type mapdevfs >/dev/null 2>&1; then
mapdevfs () {
- readlink -f "$1"
+ echo "$1"
}
fi

30
os-prober-efi-shell.patch Normal file
View File

@ -0,0 +1,30 @@
diff --git a/os-probes/mounted/common/efi/05shell b/os-probes/mounted/common/efi/05shell
new file mode 100644
index 0000000..d4233c0
--- /dev/null
+++ b/os-probes/mounted/common/efi/05shell
@@ -0,0 +1,24 @@
+#!/usr/bin/sh
+# Detects a shell.efi bootloader on a EFI System Partition
+
+. /usr/share/os-prober/common.sh
+
+found=
+
+efi_shell=`find $1 -iname "shell.efi"`
+if [ -n "${efi_shell}" ]; then
+ bdir="${efi_shell%/*}"
+ bdir="${efi_shell##*/}"
+ filename=`basename ${efi_shell}`
+ long="EFI firmware management shell"
+ short="EFI_SHELL"
+ path=${bdir}/${filename}
+ found=true
+fi
+
+if [ -n "$found" ]; then
+ label="$(count_next_label "$short")"
+ result "${path}:${long}:${label}"
+fi
+
+exit 0

View File

@ -1,13 +0,0 @@
Index: os-prober/linux-boot-probes/mounted/common/90fallback
===================================================================
--- os-prober.orig/linux-boot-probes/mounted/common/90fallback
+++ os-prober/linux-boot-probes/mounted/common/90fallback
@@ -33,7 +33,7 @@ for kernpat in /vmlinuz /vmlinux /boot/v
# Dracut initramfses are named differently again.
initrdname3=$(echo "$kernfile" | sed "s/vmlinu[zx]/initramfs\*/" | sed 's/$/.img/')
# And Gentoo's also
- initrdname4=$(echo "$kernfile" | sed "s/kernel/initramfs\*/")
+ initrdname4=$(echo "$kernfile" | sed "s/kernel\|vmlinu[zx]/initramfs\*/")
foundinitrd=0
for initrd in $(eval ls "$initrdname" "$initrdname1" "$initrdname2" "$initrdname3" "$initrdname4" 2>/dev/null); do
if [ "$initrd" != "$kernfile" ] && [ -f "$initrd" ] && [ ! -L "$initrd" ]; then

View File

@ -0,0 +1,35 @@
diff --git a/os-probes/mounted/common/90linux-distro b/os-probes/mounted/common/90linux-distro
index b9c24dd..52db3f6 100755
--- a/os-probes/mounted/common/90linux-distro
+++ b/os-probes/mounted/common/90linux-distro
@@ -19,7 +19,7 @@ subvol="$5"
# symlinks we need to also check in $dir/usr/lib* for distributions that
# moved /lib* to /usr and only left symlinks behind.
# TODO: look for ld-linux.so on arches that have it
-if (ls "$dir"/lib*/ld*.so* && [ -d "$dir/boot" ] || ls "$dir"/usr/lib*/ld*.so*) >/dev/null 2>/dev/null; then
+#if (ls "$dir"/lib*/ld*.so* && [ -d "$dir/boot" ] || ls "$dir"/usr/lib*/ld*.so*) >/dev/null 2>/dev/null; then
if [ -e "$dir/etc/os-release" ]; then
short="$(grep ^NAME= "$dir/etc/os-release" | sed 's/^[^=]*=//; s/^['\''"]\(.*\)['\''"]$/\1/; s/\\\(.\)/\1/g; s/[[:space:]].*//')"
long="$(grep ^PRETTY_NAME= "$dir/etc/os-release" | sed 's/^[^=]*=//; s/^['\''"]\(.*\)['\''"]$/\1/; s/\\\(.\)/\1/g')"
@@ -146,8 +146,9 @@ if (ls "$dir"/lib*/ld*.so* && [ -d "$dir/boot" ] || ls "$dir"/usr/lib*/ld*.so*)
short="Exherbo"
long="Exherbo Linux"
else
- short="Linux"
- long="unknown Linux distribution"
+ exit 1
+# short="Linux"
+# long="unknown Linux distribution"
fi
label="$(count_next_label "$short")"
@@ -157,6 +158,6 @@ if (ls "$dir"/lib*/ld*.so* && [ -d "$dir/boot" ] || ls "$dir"/usr/lib*/ld*.so*)
result "$partition:$long:$label:linux"
fi
exit 0
-else
- exit 1
-fi
+#else
+# exit 1
+#fi

View File

@ -1,7 +1,7 @@
Index: os-prober-1.58/linux-boot-probes/mounted/common/40grub2 diff --git a/linux-boot-probes/mounted/common/40grub2 b/linux-boot-probes/mounted/common/40grub2
=================================================================== index 664505f..5895e45 100755
--- os-prober-1.58.orig/linux-boot-probes/mounted/common/40grub2 --- a/linux-boot-probes/mounted/common/40grub2
+++ os-prober-1.58/linux-boot-probes/mounted/common/40grub2 +++ b/linux-boot-probes/mounted/common/40grub2
@@ -77,7 +77,7 @@ parse_grub_menu () { @@ -77,7 +77,7 @@ parse_grub_menu () {
ignore_item=1 ignore_item=1
fi fi
@ -17,6 +17,6 @@ Index: os-prober-1.58/linux-boot-probes/mounted/common/40grub2
;; ;;
- initrd) - initrd)
+ initrd*) + initrd*)
initrd="$(echo "$2" | sed 's/(.*)//')" shift
# Initrd same. initrd=""
if [ "$partition" != "$bootpart" ]; then for initrd_path in "$@"; do

View File

@ -2,17 +2,16 @@ Index: os-prober/common.sh
=================================================================== ===================================================================
--- os-prober.orig/common.sh --- os-prober.orig/common.sh
+++ os-prober/common.sh +++ os-prober/common.sh
@@ -336,3 +336,13 @@ linux_mount_boot () { @@ -336,3 +336,12 @@ linux_mount_boot () {
mountboot="$bootpart $mounted" mountboot="$bootpart $mounted"
} }
+ +
+umount_exec=$(which umount)
+umount() { +umount() {
+ if ! $umount_exec $@ 2> /dev/null; then + if ! command umount $@ 2> /dev/null; then
+ error "umount error, retrying after 1 sec" + error "umount error, retrying after 1 sec"
+ sleep 1 + sleep 1
+ $umount_exec $@ + command umount $@
+ fi + fi
+} +}
+ +

View File

@ -1,11 +1,10 @@
Name: os-prober Name: os-prober
Version: 1.74 Version: 1.81
Release: 10%{?dist} Release: 7%{?dist}
Summary: Probes disks on the system for installed operating systems Summary: Probes disks on the system for installed operating systems
Group: System Environment/Base
# For more information about licensing, see copyright file. # For more information about licensing, see copyright file.
License: GPLv2+ and GPL+ License: GPL-2.0-or-later AND GPL-1.0-or-later
URL: http://kitenet.net/~joey/code/os-prober/ URL: http://kitenet.net/~joey/code/os-prober/
Source0: http://ftp.us.debian.org/debian/pool/main/o/os-prober/%{name}_%{version}.tar.xz Source0: http://ftp.us.debian.org/debian/pool/main/o/os-prober/%{name}_%{version}.tar.xz
Patch0: os-prober-no-dummy-mach-kernel.patch Patch0: os-prober-no-dummy-mach-kernel.patch
@ -15,19 +14,20 @@ Patch2: os-prober-btrfsfix.patch
Patch3: os-prober-bootpart-name-fix.patch Patch3: os-prober-bootpart-name-fix.patch
Patch4: os-prober-mounted-partitions-fix.patch Patch4: os-prober-mounted-partitions-fix.patch
Patch5: os-prober-factor-out-logger.patch Patch5: os-prober-factor-out-logger.patch
Patch12: os-prober-efi-shell.patch
# To be sent upstream # To be sent upstream
Patch6: os-prober-factored-logger-efi-fix.patch Patch6: os-prober-factored-logger-efi-fix.patch
Patch7: os-prober-umount-fix.patch Patch7: os-prober-umount-fix.patch
Patch8: os-prober-grub2-parsefix.patch Patch8: os-prober-grub2-parsefix.patch
Patch9: os-prober-grepfix.patch Patch9: os-prober-grepfix.patch
Patch10: os-prober-gentoo-fix.patch Patch10: os-prober-grub2-mount-workaround.patch
Patch11: os-prober-90fallback-include-possible-kernel-parameters-from-g.patch Patch11: os-prober-arm64-win11.patch
Patch12: os-prober-common.sh-do-not-resolve-symbolic-link-on-mapped-dev.patch
Requires: udev coreutils util-linux Requires: udev coreutils util-linux
Requires: grep /bin/sed /sbin/modprobe Requires: grep /bin/sed /sbin/modprobe
Requires: device-mapper Requires: grub2-tools-minimal
BuildRequires: make
BuildRequires: gcc git BuildRequires: gcc git
%description %description
@ -36,14 +36,17 @@ in a generic machine-readable format. Support for new OSes and Linux
distributions can be added easily. distributions can be added easily.
%prep %prep
%autosetup -n %{name} -S git %autosetup -n %{name}-%{version} -S git
find -type f -exec sed -i -e 's|usr/lib|usr/libexec|g' {} \; find -type f -exec sed -i -e 's|usr/lib|usr/libexec|g' {} \;
sed -i -e 's|grub-probe|grub2-probe|g' os-probes/common/50mounted-tests \ sed -i -e 's|grub-probe|grub2-probe|g' os-probes/common/50mounted-tests \
linux-boot-probes/common/50mounted-tests linux-boot-probes/common/50mounted-tests
sed -i -e 's|grub-mount|grub2-mount|g' os-probes/common/50mounted-tests \
linux-boot-probes/common/50mounted-tests common.sh
%build %build
%make_build CFLAGS="%{optflags}" LDFLAGS="%{build_ldflags}" %set_build_flags
%make_build LDFLAGS="$LDFLAGS -fPIC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS"
%install %install
install -m 0755 -d %{buildroot}%{_bindir} install -m 0755 -d %{buildroot}%{_bindir}
@ -88,23 +91,70 @@ fi
%{_var}/lib/%{name} %{_var}/lib/%{name}
%changelog %changelog
* Mon Sep 2 2024 Leo Sandoval <lsandova@redhat.com> - 1.74-10 * Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 1.81-7
- 90fallback: include possible kernel parameters from grub's default file - Bump release for June 2024 mass rebuild
- common.sh: do not resolve symbolic link on mapped device filesystems
- Resolves: #RHEL-55234
* Tue Jun 22 2021 Javier Martinez Canillas <javierm@redhat.com> - 1.74-9 * Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.81-6
- Another build but with a gating.yaml to allow leaving gating - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
Resolves: rhbz#1624158
* Mon Jun 21 2021 Javier Martinez Canillas <javierm@redhat.com> - 1.74-8 * Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.81-5
- Bump NVR to allow building - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
Resolves: rhbz#1624158
* Thu Jul 25 2019 Peter Jones <pjones@redhat.com> - 1.74-7 * Thu Dec 21 2023 Nicolas Frayer <nfrayer@redhat.com>
- Make gcc use -Wl,-z,now -Wl,-z,relro -pie. Dunno why the default didn't - Migrate to SPDX license
pick this up. - Please refer to https://fedoraproject.org/wiki/Changes/SPDX_Licenses_Phase_2
Resolves: rhbz#1624158
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.81-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.81-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Tue Jan 10 2023 Robbie Harwood <rharwood@redhat.com> - 1.81-2
- Fix inheritance of environment build flags
* Sat Aug 06 2022 Hedayat Vatankhah <hedayat.fwd+rpmchlog@gmail.com> - 1.81-1
- Update to latest upstream version with better support for latest OSes,
closes rhbz#2090942
- Remove 'which' dependency, closes rhbz#2111531
- Add support for detecting EFI shell binary (shell.efi), closes rhbz#2101953
- Add support for Win 11 on ARM 64 systems
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.77-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.77-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.77-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.77-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Sat Oct 10 2020 Hedayat Vatankhah <hedayat.fwd+rpmchlog@gmail.com> - 1.77-6
- Workaround for grub2-mount slow wildcard file matching, fixes #1770599
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.77-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.77-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.77-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Tue May 14 2019 Hedayat Vatankhah <hedayat.fwd+rpmchlog@gmail.com> - 1.77-2
- Use distro LDFLAGS when building the package, fixes #1543863
* Tue May 14 2019 Hedayat Vatankhah <hedayat.fwd+rpmchlog@gmail.com> - 1.77-1
- Update to 1.77, use grub2-mount rather than device mapper for mounts, fixes #1447156
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.74-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.74-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Sun Feb 18 2018 Hedayat Vatankhah <hedayat.fwd+rpmchlog@gmail.com> - 1.74-6 * Sun Feb 18 2018 Hedayat Vatankhah <hedayat.fwd+rpmchlog@gmail.com> - 1.74-6
- Add gcc build dependency - Add gcc build dependency

View File

@ -1,13 +0,0 @@
---
inspections:
# Not a Java package
javabytecode: off
# These just flag when things change "too much"
changedfiles: off
filesize: off
patches: off
upstream: off
# https://bugzilla.redhat.com/show_bug.cgi?id=2010936
annocheck: off

View File

@ -1 +1 @@
SHA512 (os-prober_1.74.tar.xz) = 5407fb3c782ae0532120995d60cfc307028de9bea52ce5534baaf940a99269b735c1174ef0f7a5316be485a1e8bfd097108c2819eadf00e2e38595bfc2c22245 SHA512 (os-prober_1.81.tar.xz) = ffb0e618f9e58a7a8e4a265d253bad4e168c220697216684acb38dbfa20680e552eb7c5f3d2186cd750c61a8929bf152527aa85c39318ed8b025a4ffffadde50