Patch title: Release 91 bulk changes
Abstract:
File: /fullpliant/install.pli
Key:
    Removed line
    Added line
   
abstract
  [This module will install a ready to operate FullPliant sy

module "/pliant/language/context.pli"
module "/pliant/language/stream.pli"
module "/pliant/admin/file.pli"
module "/pliant/admin/execute.pli"
module "/pliant/admin/shell.pli"
abstract
  [This module will install a ready to operate FullPliant sy

module "/pliant/language/context.pli"
module "/pliant/language/stream.pli"
module "/pliant/admin/file.pli"
module "/pliant/admin/execute.pli"
module "/pliant/admin/shell.pli"
module "/pliant/linux/kernel/module.pli"
module "/pliant/linux/kernel/device.pli"
module "/pliant/linux/storage/partition.pli"
module "/pliant/linux/storage/raid.pli"
module "/pliant/linux/storage/filesystem.pli"
module "/pliant/linux/storage/cdrom.pli"
module "/pliant/linux/kernel/library.pli"


function lilo_install c root_path lilo_boot_device kernel_ro
  arg Data:Computer c ; arg Str root_path lilo_boot_device k
  (var Stream s) open root_path+"boot/lilo.conf" out+safe
  if s=failure
    console "Failed to create lilo configuration file" eol
    return failure
  s writeline "read-only"
  s writeline "delay=50"
  s writeline "lock"
  s writeline "boot="+file_os_name:lilo_boot_device
  s writeline "image=/boot/kernel"
  s writeline "  label=fullpliant"
  s writeline "  root="+file_os_name:kernel_root
  s writeline "  append=[dq]"+kernel_options+"[dq]"
  if c:env:"partition":"root":"video_bios_mode"<>""
    s writeline "  vga="+c:env:"partition":"root":"video_bio
  eif c:env:"hardware":"video":"bios_mode"<>""
    s writeline "  vga="+c:env:"hardware":"video":"bios_mode
  if (file_query root_path+"boot/recover" standard)=defined
    s writeline "image=/boot/recover"
    s writeline "  label=recover"
    s writeline "  root="+file_os_name:kernel_root
    s writeline "  append=[dq]"+kernel_options+"[dq]"
    if c:env:"partition":"root":"video_bios_mode"<>""
      s writeline "  vga="+c:env:"partition":"root":"video_b
    eif c:env:"hardware":"video":"bios_mode"<>""
      s writeline "  vga="+c:env:"hardware":"video":"bios_mo
  each p c:env:"partition" filter keyof:p<>"root"
    if p:"kernel"<>""
module "/pliant/linux/kernel/device.pli"
module "/pliant/linux/storage/partition.pli"
module "/pliant/linux/storage/raid.pli"
module "/pliant/linux/storage/filesystem.pli"
module "/pliant/linux/storage/cdrom.pli"
module "/pliant/linux/kernel/library.pli"


function lilo_install c root_path lilo_boot_device kernel_ro
  arg Data:Computer c ; arg Str root_path lilo_boot_device k
  (var Stream s) open root_path+"boot/lilo.conf" out+safe
  if s=failure
    console "Failed to create lilo configuration file" eol
    return failure
  s writeline "read-only"
  s writeline "delay=50"
  s writeline "lock"
  s writeline "boot="+file_os_name:lilo_boot_device
  s writeline "image=/boot/kernel"
  s writeline "  label=fullpliant"
  s writeline "  root="+file_os_name:kernel_root
  s writeline "  append=[dq]"+kernel_options+"[dq]"
  if c:env:"partition":"root":"video_bios_mode"<>""
    s writeline "  vga="+c:env:"partition":"root":"video_bio
  eif c:env:"hardware":"video":"bios_mode"<>""
    s writeline "  vga="+c:env:"hardware":"video":"bios_mode
  if (file_query root_path+"boot/recover" standard)=defined
    s writeline "image=/boot/recover"
    s writeline "  label=recover"
    s writeline "  root="+file_os_name:kernel_root
    s writeline "  append=[dq]"+kernel_options+"[dq]"
    if c:env:"partition":"root":"video_bios_mode"<>""
      s writeline "  vga="+c:env:"partition":"root":"video_b
    eif c:env:"hardware":"video":"bios_mode"<>""
      s writeline "  vga="+c:env:"hardware":"video":"bios_mo
  each p c:env:"partition" filter keyof:p<>"root"
    if p:"kernel"<>""
      filesystem_mount p:"device" "file:/mnt/"+keyof:p+"/" "
      if (filesystem_mount p:"device" "file:/mnt/"+keyof:p+"/" "nocheck")=failure
        console "Failed to mount " p:"device" " partition" eol
      s writeline "image=/mnt/"+keyof:p+"/boot/"+p:"kernel"
      s writeline "  label="+keyof:p
      s writeline "  root="+(file_os_name p:"device")
      s writeline "  append=[dq]"+p:"kernel_options"+"[dq]"
      if p:"video_bios_mode"<>""
        s writeline "  vga="+p:"video_bios_mode"
      eif c:env:"hardware":"video":"bios_mode"<>""
        s writeline "  vga="+c:env:"hardware":"video":"bios_
    eif p:"os"<>""
      s writeline "other="+(file_os_name p:"device")
      s writeline "  label="+keyof:p
  if (file_query root_path+"boot/memtest86.bin" standard)=su
    s writeline "image=/boot/memtest86.bin"
    s writeline "  label=memtest"
  s close
  var Str flags := ""
  var Str geometry := lilo_options option "geometry" Str
  flags += (shunt geometry="chs" "" geometry="lba32" " -L" "
  var Int err := execute "lilo -C /boot/lilo.conf"+flags roo
  if err<>0 and geometry=""
    err := execute "lilo -C /boot/lilo.conf -L" root root_pa
    if err<>0 and geometry=""
      err := execute "lilo -C /boot/lilo.conf" root root_pat
  # file_delete root_path+"boot/lilo.conf"
  each p c:env:"partition"
    if p:"kernel"<>""
      filesystem_dismount "file:/mnt/"+keyof:p+"/"
  status := shunt err=0 success failure



function install_floppy c file kernel_root kernel_options ->
  arg Data:Computer c ; arg Str file kernel_root kernel_opti
      s writeline "image=/mnt/"+keyof:p+"/boot/"+p:"kernel"
      s writeline "  label="+keyof:p
      s writeline "  root="+(file_os_name p:"device")
      s writeline "  append=[dq]"+p:"kernel_options"+"[dq]"
      if p:"video_bios_mode"<>""
        s writeline "  vga="+p:"video_bios_mode"
      eif c:env:"hardware":"video":"bios_mode"<>""
        s writeline "  vga="+c:env:"hardware":"video":"bios_
    eif p:"os"<>""
      s writeline "other="+(file_os_name p:"device")
      s writeline "  label="+keyof:p
  if (file_query root_path+"boot/memtest86.bin" standard)=su
    s writeline "image=/boot/memtest86.bin"
    s writeline "  label=memtest"
  s close
  var Str flags := ""
  var Str geometry := lilo_options option "geometry" Str
  flags += (shunt geometry="chs" "" geometry="lba32" " -L" "
  var Int err := execute "lilo -C /boot/lilo.conf"+flags roo
  if err<>0 and geometry=""
    err := execute "lilo -C /boot/lilo.conf -L" root root_pa
    if err<>0 and geometry=""
      err := execute "lilo -C /boot/lilo.conf" root root_pat
  # file_delete root_path+"boot/lilo.conf"
  each p c:env:"partition"
    if p:"kernel"<>""
      filesystem_dismount "file:/mnt/"+keyof:p+"/"
  status := shunt err=0 success failure



function install_floppy c file kernel_root kernel_options ->
  arg Data:Computer c ; arg Str file kernel_root kernel_opti
  execute "insmod floppy" quiet
  kernel_load_module "floppy"
  if (file_query "file:/fullpliant/unix/bin/floppy" standard
    status := build_grub_floppy
    if status=failure
      return
  if (file_copy "file:/fullpliant/unix/bin/floppy" file)=fai
    return failure:"No boot floppy image available"
  file_tree_create "file:/mnt/floppy/"
  filesystem_dismount "file:/mnt/floppy/"
  if (file parse "device:" any)
    if (filesystem_mount file "file:/mnt/floppy/" "")=failur
      return failure:"Failed to mount boot floppy image"
  else
  if (file_query "file:/fullpliant/unix/bin/floppy" standard
    status := build_grub_floppy
    if status=failure
      return
  if (file_copy "file:/fullpliant/unix/bin/floppy" file)=fai
    return failure:"No boot floppy image available"
  file_tree_create "file:/mnt/floppy/"
  filesystem_dismount "file:/mnt/floppy/"
  if (file parse "device:" any)
    if (filesystem_mount file "file:/mnt/floppy/" "")=failur
      return failure:"Failed to mount boot floppy image"
  else
    execute "insmod loop" quiet
    kernel_load_module "loop"
    execute file_os_name:"embedded:/sbin/losetup"+" "+file_o
    if (filesystem_mount "embedded:/dev/loop0" "file:/mnt/fl
      return failure:"Failed to mount boot floppy image (may
  grub_configure c "file:/mnt/floppy/" "fd0" "fd0" kernel_ro
  var Str kversion := c:env:"kernel":"constant":"linux_versi
  var Str sign := c:env:"kernel":"constant":"signature"
  file_tree_delete "file:/tmp/kernel/"
  file_extract kernel_binary_path+"kernel-"+kversion+"-"+sig
  if (file_copy "file:/tmp/kernel/boot/kernel" "file:/mnt/fl
    status := failure "The kernel image "+kversion+" "+sign+
  else
    status := success
  file_tree_delete "file:/tmp/kernel/"
  filesystem_dismount "file:/mnt/floppy/"
  if not (file parse "device:" any)
    execute file_os_name:"embedded:/sbin/losetup"+" -d "+fil



  pliant_multi_file_system dismount "target:/"
  console "done." eol
  status := success
  
export install_tree
    execute file_os_name:"embedded:/sbin/losetup"+" "+file_o
    if (filesystem_mount "embedded:/dev/loop0" "file:/mnt/fl
      return failure:"Failed to mount boot floppy image (may
  grub_configure c "file:/mnt/floppy/" "fd0" "fd0" kernel_ro
  var Str kversion := c:env:"kernel":"constant":"linux_versi
  var Str sign := c:env:"kernel":"constant":"signature"
  file_tree_delete "file:/tmp/kernel/"
  file_extract kernel_binary_path+"kernel-"+kversion+"-"+sig
  if (file_copy "file:/tmp/kernel/boot/kernel" "file:/mnt/fl
    status := failure "The kernel image "+kversion+" "+sign+
  else
    status := success
  file_tree_delete "file:/tmp/kernel/"
  filesystem_dismount "file:/mnt/floppy/"
  if not (file parse "device:" any)
    execute file_os_name:"embedded:/sbin/losetup"+" -d "+fil



  pliant_multi_file_system dismount "target:/"
  console "done." eol
  status := success
  
export install_tree