devuan-desktop-metal/helpers.md

3.3 KiB

helper functions

These functions focus on the installation of devuan directly to disk using the zfs filesystem as the root fs.

you can find these blend helper functions in blends/${blend_name}/helpers.

additional or overridden helper functions to add or test functionality or workarounds specific to the blend to avoid changes to the sdk.

build_metal_dist()

defines the sequence of calls that will result in a devuan install with root and boot zfs to one or two disks (mirrored) using either grub-pc or grub-efi to boot.

blend_bootstrap_setup()

  • Overide the post 'debootstrap stage 2' placeholder function of zlib/debootstrap bootstrap_complete_base.
  • The default is return 0

install-custdebs()

Override the helper function:

  • takes the 'apt-get -f' out of the loop so that dependency provided by other debs can be resolved.
  • inside the loop it just uninstalls the deb because of unfullfilled deps.

install-deb-from-dsc() : WIP

  • In the style of install-custdebs above but building from the source package using dsc
  • takes a list of package names, looks up the corresponding dsc using it to build and install.

install-deb-from-git_gbp() : WIP

  • take a list of package names and for each select the appropriate salsa/devuan git repo
  • pull in sources, build using gbp
  • place the resulting debs in the custdebs location.

install-custscripts()

Added function:

  • In the style of install-custdebs above but for a collection of arbitrary scripts placed in a
  • directory alongside the blend custom debs called automate.
  • The scripts are copied from the blends scripts directory to extra/custom-scripts in blend_preinst() above.
  • Called after install-customdebs because some need checkinstall which disappears from archives.

add-user()

Override the helper function:

  • Allow an alternative skel directory

enable_apt-proxy()

disable_apt-proxy()

bootstrap_cpio_unpack()

Overide the sdk version of this function to prevent deletion prior to unpacking the cpio as we have mountpoints in place.

image_partition_disk_zfs()

  • partition available disks using sgdisk

image_format_partitions_zfs()

  • format the efi partions to fat32
  • make the swap partitions
  • create the zfs root and boot pools

use_swap_partition()

  • calls swapon on the new swap partitions

image_zfs_mount()

  • mounts the zfs pools to the bootstrap directory
  • mounts the efi partition to the bootstrap /boot
  • mounts dev proc and sys

image_zfs_umount()

  • the reverse of image_zfs_mount

get_selections()

  • gets dpkg selections and places three files in /var/tmp:
  • /var/tmp/packages.list
  • /var/tmp/pkgs_auto.lst
  • /var/tmp/pkgs_manual.lst

set_selections()

uses three files to replicate the installed packages of another system.

  • /var/tmp/packages.list
  • /var/tmp/pkgs_auto.lst
  • /var/tmp/pkgs_manual.lst

enablessh()

this function will allow a root or user login in the bootstrapped root using:

  • ssh-copy-id default@192.168.1.x

install_kernel_headers()

could go in blends/devuan-desktop-live/config $extra_packages and remove headers in blends/devuan-desktop-live/chimaera/config $purge_packages

install_zfs()

installs zfs and supporting packages and sets some parameters.

install_grub()

installs grub related packages, configures and runs the approprate grub for the install type pc or efi.