Hi David, and thanks for your report. David Given <dg@cowlark.com> (2013-12-20): > Haiku's new package management builds have changed the way the kernel > and boot sector is laid out, and os-prober's detection routines no > longer detect such Haiku partitions. > > Currently package management builds are only available in nightly > releases but there should be an official release Real Soon Now, and > package management should become the norm. It'd be nice to get this > fixed before this happens. I'm not familiar with haiku, is that out yet? > I enclose a patch which should fix this (to be applied to /usr/lib/os- > probes/mounted/83haiku). Did that get tested against said release if it's published? > --- /usr/lib/os-probes/mounted/83haiku 2012-08-22 19:21:32.000000000 +0100 > +++ /tmp/83haiku 2013-12-20 12:17:29.143209425 +0000 > @@ -13,18 +13,34 @@ > *) debug "$partition is not a BeFS partition: exiting"; exit 1 ;; > esac > > -if head -c 512 "$partition" | grep -qs "system.haiku_loader"; then > +if head -c 512 "$partition" | grep -qs 'system.*haiku_loader'; then > debug "Stage 1 bootloader found" > else > debug "Stage 1 bootloader not found: exiting" > exit 1 > fi > > -if system="$(item_in_dir "system" "$mpoint")" && > +system="$(item_in_dir "system" "$mpoint")" > +packages="$(item_in_dir "packages" "$mpoint/$system")" > +found= > +if [ "$system" != "" ] && > item_in_dir -q "haiku_loader" "$mpoint/$system" && > (item_in_dir -q "kernel_x86" "$mpoint/$system" || > item_in_dir -q "kernel_x86_64" "$mpoint/$system") Do we need to hardcode checking both version? Looking at item_in_dir's implementation, the pattern is passed to grep, so we could use 'kernel_.*' instead? > then > + found=1 > +fi > + > +if [ "$found" = "" ] && [ "$packages" != "" ] && > + item_in_dir -q "haiku_loader\-.*" "$mpoint/$system/$packages" && > + (item_in_dir -q "haiku_x86\-.*" "$mpoint/$system/$packages" || > + item_in_dir -q "haiku_x86_64\-.*" "$mpoint/$system/$packages") Ditto. > +then > + found=1 > +fi > + > +if [ "$found" != "" ] > +then > debug "Stage 2 bootloader and kernel found" > label="$(count_next_label Haiku)" > result "$partition:Haiku:$label:chain" > Mraw, KiBi.
Attachment:
signature.asc
Description: Digital signature