diff -Nru os-prober-1.79ubuntu2/debian/changelog os-prober-1.81ubuntu1/debian/changelog --- os-prober-1.79ubuntu2/debian/changelog 2022-03-24 17:26:30.000000000 +0100 +++ os-prober-1.81ubuntu1/debian/changelog 2022-08-23 12:16:39.000000000 +0200 @@ -1,3 +1,69 @@ +os-prober (1.81ubuntu1) kinetic; urgency=low + + * Merge from Debian unstable (LP: #1987386). Remaining changes: + - Mount btrfs subvolume @ when present to access a btrfs formatted + rootfs. + - When called with WINOSDATA, return the list of Windows partitions + containing the system instead of only listing these containing the + bootrecord. Add Windows10 detection. + - Stop building the udeb on request. + * Dropped changes, superseded in Debian: + - Sort detected kernels by modification time, if possible. + => Kernels are now sorted by - reverse - natural number order (see + option -v of ls). + * Added FIXME tag mentioning that Windows 11 system partitions are detected + as Windows 10 when os-prober is called with WINOSDATA + + -- Olivier Gayot Tue, 23 Aug 2022 12:16:39 +0200 + +os-prober (1.81) unstable; urgency=medium + + * Team upload + + [ Pascal Hambourg ] + * Add Windows 11 detection. + + -- Holger Wansing Mon, 18 Jul 2022 14:32:39 +0200 + +os-prober (1.80) unstable; urgency=medium + + * Team upload + + [ Samuel Thibault ] + * control: Enable mount dependency only on linux, enable freebsd-utils on + kfreebsd instead. (Closes: #1006590) + + [ General Chaos ] + * Handle multiple initrd paths, as used in some distros + + [ Gaƫl PORTAY ] + * Fix "os-prober: call dmraid -r *once*". + + [ Timo Gurr ] + * Add Exherbo Linux detection (Closes: #755804) + + [ Pascal Hambourg ] + * Sort Linux kernels in reverse version order if no boot loader config file + found (Closes: #741889) + + [ Sergei Galkin ] + * Add ntfs3 for 5.15 kernel. + + [ rakslice ] + * detect alpine initramfs files + + [ Luke Shumaker ] + * Fall back to looking for /usr/lib/os-release. + + [ Debian Janitor ] + * Bump debhelper from deprecated 9 to 13. + * Set debhelper-compat version in Build-Depends. + * Remove constraints unnecessary since buster: + + Build-Depends: Drop versioned constraint on dpkg-dev. + + os-prober-udeb: Drop versioned constraint on anna in Depends. + + -- Holger Wansing Thu, 26 May 2022 23:16:53 +0200 + os-prober (1.79ubuntu2) jammy; urgency=high * No change rebuild for ppc64el baseline bump. diff -Nru os-prober-1.79ubuntu2/debian/compat os-prober-1.81ubuntu1/debian/compat --- os-prober-1.79ubuntu2/debian/compat 2021-07-11 04:43:50.000000000 +0200 +++ os-prober-1.81ubuntu1/debian/compat 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -9 diff -Nru os-prober-1.79ubuntu2/debian/control os-prober-1.81ubuntu1/debian/control --- os-prober-1.79ubuntu2/debian/control 2021-07-11 04:43:50.000000000 +0200 +++ os-prober-1.81ubuntu1/debian/control 2022-07-18 17:44:56.000000000 +0200 @@ -4,7 +4,7 @@ Maintainer: Ubuntu Developers XSBC-Original-Maintainer: Debian Install System Team Uploaders: Colin Watson , Steve McIntyre <93sam@debian.org> -Build-Depends: debhelper (>= 9), dpkg-dev (>= 1.15.7) +Build-Depends: debhelper-compat (= 13) Standards-Version: 3.9.4 Vcs-Browser: https://salsa.debian.org/installer-team/os-prober Vcs-Git: https://salsa.debian.org/installer-team/os-prober.git @@ -13,7 +13,7 @@ Package-Type: udeb Build-Profiles: Architecture: any -Depends: ${misc:Depends}, ${shlibs:Depends}, di-utils-mapdevfs, anna (>= 1.16), grub-mount-udeb [linux-any kfreebsd-any] +Depends: ${misc:Depends}, ${shlibs:Depends}, di-utils-mapdevfs, anna, grub-mount-udeb [linux-any kfreebsd-any] Provides: os-prober Description: utility to detect other OSes on a set of drives This package is to be used by boot loader installers to detect other OSes @@ -23,7 +23,7 @@ Package: os-prober Architecture: any Section: utils -Depends: ${shlibs:Depends}, ${misc:Depends}, grub-common [linux-any kfreebsd-any], mount +Depends: ${shlibs:Depends}, ${misc:Depends}, grub-common [linux-any kfreebsd-any], mount [linux-any], freebsd-utils [kfreebsd-any] Description: utility to detect other OSes on a set of drives This package detects other OSes available on a system and outputs the results in a generic machine-readable format. diff -Nru os-prober-1.79ubuntu2/debian/gbp.conf os-prober-1.81ubuntu1/debian/gbp.conf --- os-prober-1.79ubuntu2/debian/gbp.conf 1970-01-01 01:00:00.000000000 +0100 +++ os-prober-1.81ubuntu1/debian/gbp.conf 2022-05-26 23:21:10.000000000 +0200 @@ -0,0 +1,2 @@ +[buildpackage] +debian-tag=%(version)s diff -Nru os-prober-1.79ubuntu2/linux-boot-probes/mounted/common/40grub2 os-prober-1.81ubuntu1/linux-boot-probes/mounted/common/40grub2 --- os-prober-1.79ubuntu2/linux-boot-probes/mounted/common/40grub2 2021-07-11 04:43:50.000000000 +0200 +++ os-prober-1.81ubuntu1/linux-boot-probes/mounted/common/40grub2 2022-07-18 17:44:56.000000000 +0200 @@ -78,11 +78,21 @@ fi ;; initrd) - initrd="$(echo "$2" | sed 's/(.*)//')" - # Initrd same. - if [ "$partition" != "$bootpart" ]; then - initrd="/boot$initrd" - fi + shift + initrd="" + for initrd_path in "$@"; do + # sed hack, as above + initrd_path="$(echo "$initrd_path" | sed 's/(.*)//')" + # Initrd same. + if [ "$partition" != "$bootpart" ]; then + initrd_path="/boot$initrd_path" + fi + if [ -z "$initrd" ]; then + initrd="$initrd_path" + else + initrd="$initrd $initrd_path" + fi + done ;; "}") entry_result diff -Nru os-prober-1.79ubuntu2/linux-boot-probes/mounted/common/90fallback os-prober-1.81ubuntu1/linux-boot-probes/mounted/common/90fallback --- os-prober-1.79ubuntu2/linux-boot-probes/mounted/common/90fallback 2021-07-11 04:43:50.000000000 +0200 +++ os-prober-1.81ubuntu1/linux-boot-probes/mounted/common/90fallback 2022-08-23 12:09:59.000000000 +0200 @@ -19,7 +19,7 @@ else kernbootpart="$partition" fi - for kernfile in $(eval ls -t "$mpoint$kernpat" 2>/dev/null); do + for kernfile in $(eval ls -vr "$mpoint$kernpat" 2>/dev/null); do kernbasefile=$(echo "$kernfile" | sed "s!^$mpoint!!") if [ -f "$kernfile" ] && [ ! -L "$kernfile" ]; then initrdname=$(echo "$kernfile" | sed "s/vmlinu[zx]/initrd\*/") @@ -34,8 +34,10 @@ initrdname3=$(echo "$kernfile" | sed "s/vmlinu[zx]/initramfs\*/" | sed 's/$/.img/') # And Gentoo's also initrdname4=$(echo "$kernfile" | sed "s/kernel/initramfs\*/") + # Also Alpine + initrdname5=$(echo "$kernfile" | sed "s/vmlinu[zx]/initramfs\*/") foundinitrd=0 - for initrd in $(eval ls "$initrdname" "$initrdname1" "$initrdname2" "$initrdname3" "$initrdname4" 2>/dev/null); do + for initrd in $(eval ls "$initrdname" "$initrdname1" "$initrdname2" "$initrdname3" "$initrdname4" "$initrdname5" 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" diff -Nru os-prober-1.79ubuntu2/os-prober os-prober-1.81ubuntu1/os-prober --- os-prober-1.79ubuntu2/os-prober 2021-07-11 04:43:50.000000000 +0200 +++ os-prober-1.81ubuntu1/os-prober 2022-07-18 17:44:55.000000000 +0200 @@ -15,9 +15,8 @@ } : >"$OS_PROBER_TMP/dmraid-map" -DMRAID=$(type dmraid >/dev/null 2>&1 || true) -if [ "$DMRAID" ]; then - dmraid -r -c >"$OS_PROBER_TMP/dmraid-map" +if type dmraid >/dev/null 2>&1; then + dmraid -r -c >"$OS_PROBER_TMP/dmraid-map" || true fi on_sataraid () { diff -Nru os-prober-1.79ubuntu2/os-probes/mounted/arm64/20microsoft os-prober-1.81ubuntu1/os-probes/mounted/arm64/20microsoft --- os-prober-1.79ubuntu2/os-probes/mounted/arm64/20microsoft 2021-07-11 04:43:50.000000000 +0200 +++ os-prober-1.81ubuntu1/os-probes/mounted/arm64/20microsoft 2022-07-18 17:44:56.000000000 +0200 @@ -15,7 +15,7 @@ # Weed out stuff that doesn't apply to us case "$type" in - ntfs|ntfs-3g) debug "$1 is a NTFS partition" ;; + ntfs3|ntfs|ntfs-3g) debug "$1 is a NTFS partition" ;; vfat) debug "$1 is a FAT32 partition" ;; msdos) debug "$1 is a FAT16 partition" ;; fat) debug "$1 is a FAT partition (mounted by GRUB)" ;; diff -Nru os-prober-1.79ubuntu2/os-probes/mounted/common/90linux-distro os-prober-1.81ubuntu1/os-probes/mounted/common/90linux-distro --- os-prober-1.79ubuntu2/os-probes/mounted/common/90linux-distro 2021-07-11 04:43:50.000000000 +0200 +++ os-prober-1.81ubuntu1/os-probes/mounted/common/90linux-distro 2022-07-18 17:44:55.000000000 +0200 @@ -21,6 +21,9 @@ 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')" + elif [ -e "$dir/usr/lib/os-release" ]; then + short="$(grep ^NAME= "$dir/usr/lib/os-release" | sed 's/^[^=]*=//; s/^['\''"]\(.*\)['\''"]$/\1/; s/\\\(.\)/\1/g; s/[[:space:]].*//')" + long="$(grep ^PRETTY_NAME= "$dir/usr/lib/os-release" | sed 's/^[^=]*=//; s/^['\''"]\(.*\)['\''"]$/\1/; s/\\\(.\)/\1/g')" elif [ -e "$dir/etc/debian_version" ]; then short="Debian" long="$(printf "Debian GNU/Linux (%s)\n" "$(cat "$dir/etc/debian_version")")" @@ -137,6 +140,9 @@ elif [ -e "$dir/etc/devuan_version" ]; then short="Devuan" long="$(printf "Devuan GNU/Linux (%s)\n" "$(cat "$dir/etc/devuan_version")")" + elif [ -e "$dir/etc/exherbo-release" ]; then + short="Exherbo" + long="Exherbo Linux" else short="Linux" long="unknown Linux distribution" diff -Nru os-prober-1.79ubuntu2/os-probes/mounted/x86/20microsoft os-prober-1.81ubuntu1/os-probes/mounted/x86/20microsoft --- os-prober-1.79ubuntu2/os-probes/mounted/x86/20microsoft 2021-07-11 04:43:50.000000000 +0200 +++ os-prober-1.81ubuntu1/os-probes/mounted/x86/20microsoft 2022-08-23 12:09:24.000000000 +0200 @@ -15,7 +15,7 @@ # Weed out stuff that doesn't apply to us case "$type" in - ntfs|ntfs-3g) debug "$1 is a NTFS partition" ;; + ntfs3|ntfs|ntfs-3g) debug "$1 is a NTFS partition" ;; vfat) debug "$1 is a FAT32 partition" ;; msdos) debug "$1 is a FAT16 partition" ;; fat) debug "$1 is a FAT partition (mounted by GRUB)" ;; @@ -31,7 +31,9 @@ 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" @@ -113,6 +115,7 @@ if [ -n "$WINOSDATA" ]; then found= if grep -aqs '^ *MaxVersionTested="10\.0\.[0-9][0-9][0-9][0-9][0-9]\.[0-9]" />' $2/Windows/SystemApps/Microsoft.Windows.FileExplorer_*/AppxManifest.xml; then + # FIXME: This could as well be Windows 11 long=${long:-"Windows 10 (data)"} short=${short:-"Windows"} found=true