metal

connman not set up,  might not like it.

-----

bluez missing

-----
default devuan user disappears
-----

change /tmp to tmpfs
------
rewrite the docker helpers that just set config in apt-conf.d to the sysconf pattern.

1. a heredoc that doesn't redirect to a file with function names of the form:
	conf_print_<NAME>()
2. a line to direct the print function to a file of the form:
	conf_print_fstab       | sudo tee "$strapdir/etc/fstab" >/dev/null

----------------
Move the docker blend and associated files into its own blend directory.
Move the metal blend and associated file into its own blend directory.

add submodules, dockerfile and gitlab-ci.yml so that images can be build automatically.

----------------

debootstrap has the option 'doing_variant' that accepts
1. minbase    - base="$devuan_required apt"
2. buildd     - base="$devuan_required apt build-essential"
3. fakechroot - base="$devuan_required $(get_debs Priority: important)"  required="$required binutils" 
4.            - base="$devuan_required $(get_debs Priority: important)"

To get the packages involved:
dpkg-query -f '${binary:Package} ${Priority}\n' -W | grep -w 'required\|important'


so we would have to override lib/libdevuansdk/zlibs/bootstrap to:
1. add --variant or 
2. change the --includes to be a list in config debootstrap_includes+=() to reflect the changes above and allow for other variant at the debootstrap stage.
3. set equivalent groupings in blend $release/config $base_packages and have them applied after debootstrap.

debootstrap/scripts/ceres also has 
	case $MIRRORS in
	    https://*)
		base="$base apt-transport-https ca-certificates"
		;;
	esac

But not for other apt-transports like apt-transport-tor
	case $MIRRORS in
	    https://*)
		base="$base apt-transport-https ca-certificates"
		;;
	    tor+http://*)
		base="$base apt-transport-tor ca-certificates"
	esac

deb tor+http://devuanauxrkggcowgm2vcs6go3c5pgxdidd5wqjpg7zpfaxkmgspr6id.onion/merged <release codename>          main
deb tor+http://devuanauxrkggcowgm2vcs6go3c5pgxdidd5wqjpg7zpfaxkmgspr6id.onion/merged <release codename>-updates  main
deb tor+http://devuanauxrkggcowgm2vcs6go3c5pgxdidd5wqjpg7zpfaxkmgspr6id.onion/merged <release codename>-security main

-----
If you are going to install packages into the running livesd before a get-selections it would make sense to save the results of a diff on /home/default in the overlay to capture and configuration that you may choose to do as well as a debconf-get-selections for any settings chosen during install.
------

1. image_partition_disk_zfs can have two more options to fit the openzfs instructions:
	i. bios v uefi (we do both)
		a. Run this if you need legacy (BIOS) booting:
		sgdisk -a1 -n1:24K:+1000K -t1:EF02 $DISK

		b. Run this for UEFI booting (for use now or in the future):
		sgdisk     -n2:1M:+512M   -t2:EF00 $DISK

	ii. Unencrypted v encrypted (is zfs native encryption performant yet?)
		a. Unencrypted or ZFS native encryption:
		sgdisk     -n4:0:0        -t4:BF00 $DISK

		b. LUKS:
		sgdisk     -n4:0:0        -t4:8309 $DISK

2. raid as specified by type, so far we have mirror or none/striped but we do have available disks list so we could add raidz, raidz2, or raidz3 adding tests for the correct number of disks needed for each.

https://icesquare.com/wordpress/zfs-performance-mirror-vs-raidz-vs-raidz2-vs-raidz3-vs-striped/

#How many disks do you have?
1:     ZFS is not for you.
2:     Mirror
3-5:   RAIDZ1
6-10   RAIDZ1 x 2
10-15: RAIDZ1 x 3
16-20: RAIDZ1 x 4

RAIDZ levels comparison chart

  			Stripe 	Mirror 		RAIDZ 		RAIDZ2 		RAIDZ3 			Stripe+mirror
Min number of disks 	1 	2 		3 		4 		5 			4
Fault to­le­ran­ce 	None 	(N-1) disk 	1 disk 		2 disks 	3 disk 			(N-1) disk in each N-disk mirror
Disk space over­head 	None 	(N-1)/N 	1 disk 		2 disks 	3 disks 		(N-1)*P for P stipe over N-disk mirrors
Read speed 		Fast 	Fast 				Slow, see below 			Fast
Write speed 		Fast 	Fair 				Slow, See below 			Fair
Hard­ware cost 		Cheap 	High to highest High 		Very high 	Very High (disks) 	High to highest

Minimum number of disks		
Stripe 1 	
default/unset

Mirror 2
already implemented
	
RAIDZ  3
zpool create rpool raidz1 VDEV1 VDEV2 VDEV3

RAIDZ2 4 	
zpool create rpool raidz2 VDEV1 VDEV2 VDEV3 VDEV4

RAIDZ3 5			
zpool create rpool raidz3 VDEV1 VDEV2 VDEV3 VDEV4 VDEV5

Stripe+mirror 4
sudo zpool create NAME mirror VDEV1 VDEV2 mirror VDEV3 VDEV4
or:
sudo zpool create NAME mirror VDEV1 VDEV2
sudo zpool add NAME mirror VDEV3 VDEV4

-------
	








