devuan-desktop-metal/helpers.md

96 lines
3.3 KiB
Markdown

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.