Package: release.debian.org Severity: normal Tags: jessie User: [email protected] Usertags: pu
Hi, I'd like to fix a few things in os-prober in jessie: - dos vs. msdos check, leading to misdetections with EFI systems - improve robustness with Windows detection by adding the -a flag to grep (this generates much diff noise, sorry) - add support for Windows 10 (at the top of said noise) Cherry-picked from fixes available in stretch (or on the way to stretch-pu for the first one). Thanks for considering. KiBi.
diff -Nru os-prober-1.65/debian/changelog os-prober-1.65+deb8u1/debian/changelog --- os-prober-1.65/debian/changelog 2014-11-25 18:41:48.000000000 +0100 +++ os-prober-1.65+deb8u1/debian/changelog 2017-07-13 13:25:15.000000000 +0200 @@ -1,3 +1,16 @@ +os-prober (1.65+deb8u1) jessie; urgency=medium + + * os-probes/mounted/x86/05efi: Fix check on ID_PART_ENTRY_SCHEME, to + look for "dos" instead of "msdos" (Closes: #817023). + * Add -a flag to grep -qs for Windows Vista detection. It appears the + file isn't always considered as a text file, so this should be more + robust. Thanks to Gianluigi Tiesi for the report and the suggestion + (Closes: #791383). + * Add support for Windows 10 (otherwise reported as Windows Recovery + Environment). Thanks, Philipp Wolfer! (Closes: #801278). + + -- Cyril Brulebois <[email protected]> Thu, 13 Jul 2017 13:25:12 +0200 + os-prober (1.65) unstable; urgency=medium [ Steve McIntyre ] diff -Nru os-prober-1.65/os-probes/mounted/x86/05efi os-prober-1.65+deb8u1/os-probes/mounted/x86/05efi --- os-prober-1.65/os-probes/mounted/x86/05efi 2014-11-12 16:19:18.000000000 +0100 +++ os-prober-1.65+deb8u1/os-probes/mounted/x86/05efi 2017-07-13 13:17:46.000000000 +0200 @@ -39,9 +39,9 @@ debug "$partition partition type is $ID_PART_ENTRY_TYPE" if [ -z "$ID_PART_ENTRY_TYPE" -o -z "$ID_PART_ENTRY_SCHEME" -o \ - \( "$ID_PART_ENTRY_SCHEME" != gpt -a "$ID_PART_ENTRY_SCHEME" != msdos \) -o \ + \( "$ID_PART_ENTRY_SCHEME" != gpt -a "$ID_PART_ENTRY_SCHEME" != dos \) -o \ \( "$ID_PART_ENTRY_SCHEME" = gpt -a "$ID_PART_ENTRY_TYPE" != c12a7328-f81f-11d2-ba4b-00a0c93ec93b \) -o \ - \( "$ID_PART_ENTRY_SCHEME" = msdos -a "$ID_PART_ENTRY_TYPE" != 0xef \) ]; then + \( "$ID_PART_ENTRY_SCHEME" = dos -a "$ID_PART_ENTRY_TYPE" != 0xef \) ]; then debug "$partition is not a ESP partition: exiting" exit 1 fi diff -Nru os-prober-1.65/os-probes/mounted/x86/20microsoft os-prober-1.65+deb8u1/os-probes/mounted/x86/20microsoft --- os-prober-1.65/os-probes/mounted/x86/20microsoft 2014-11-12 16:19:18.000000000 +0100 +++ os-prober-1.65+deb8u1/os-probes/mounted/x86/20microsoft 2017-07-13 13:22:21.000000000 +0200 @@ -31,19 +31,21 @@ for boot in $(item_in_dir boot "$2"); do bcd=$(item_in_dir bcd "$2/$boot") if [ -n "$bcd" ]; then - if grep -qs "W.i.n.d.o.w.s. .8" "$2/$boot/$bcd"; then + if grep -aqs "W.i.n.d.o.w.s. .1.0" "$2/$boot/$bcd"; then + long="Windows 10 (loader)" + elif grep -aqs "W.i.n.d.o.w.s. .8" "$2/$boot/$bcd"; then long="Windows 8 (loader)" - elif grep -qs "W.i.n.d.o.w.s. .7" "$2/$boot/$bcd"; then + elif grep -aqs "W.i.n.d.o.w.s. .7" "$2/$boot/$bcd"; then long="Windows 7 (loader)" - elif grep -qs "W.i.n.d.o.w.s. .V.i.s.t.a" "$2/$boot/$bcd"; then + elif grep -aqs "W.i.n.d.o.w.s. .V.i.s.t.a" "$2/$boot/$bcd"; then long="Windows Vista (loader)" - elif grep -qs "W.i.n.d.o.w.s. .S.e.r.v.e.r. .2.0.0.8. .R.2." "$2/$boot/$bcd"; then + elif grep -aqs "W.i.n.d.o.w.s. .S.e.r.v.e.r. .2.0.0.8. .R.2." "$2/$boot/$bcd"; then long="Windows Server 2008 R2 (loader)" - elif grep -qs "W.i.n.d.o.w.s. .S.e.r.v.e.r. .2.0.0.8." "$2/$boot/$bcd"; then + elif grep -aqs "W.i.n.d.o.w.s. .S.e.r.v.e.r. .2.0.0.8." "$2/$boot/$bcd"; then long="Windows Server 2008 (loader)" - elif grep -qs "W.i.n.d.o.w.s. .R.e.c.o.v.e.r.y. .E.n.v.i.r.o.n.m.e.n.t" "$2/$boot/$bcd"; then + elif grep -aqs "W.i.n.d.o.w.s. .R.e.c.o.v.e.r.y. .E.n.v.i.r.o.n.m.e.n.t" "$2/$boot/$bcd"; then long="Windows Recovery Environment (loader)" - elif grep -qs "W.i.n.d.o.w.s. .S.e.t.u.p" "$2/$boot/$bcd"; then + elif grep -aqs "W.i.n.d.o.w.s. .S.e.t.u.p" "$2/$boot/$bcd"; then long="Windows Recovery Environment (loader)" else long="Windows Vista (loader)"

