Dev/Derivative-Maker

From Kicksecure
< Dev
Revision as of 19:00, 20 May 2022 by Patrick (talk | contribs) (Created page with "= Current Derivative-Maker Features = == Essential Derivative-Maker Features == * does not use non-deterministic binary base boxes (VM images) (which if compromised would compromise the resulting {{project_name_long}} image) * does not download anything that does not get gpg verified (apt, tb-updater do gpg verify everything) * prospective support to create deterministic images (once this is generally possible, Derivative-Maker can also learn this) * supports using APT...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Current Derivative-Maker Features

Essential Derivative-Maker Features

  • does not use non-deterministic binary base boxes (VM images) (which if compromised would compromise the resulting Kicksecure image)
  • does not download anything that does not get gpg verified (apt, tb-updater do gpg verify everything)
  • prospective support to create deterministic images (once this is generally possible, Derivative-Maker can also learn this)
  • supports using APT Cache to speed up builds
  • exit code checking everywhere
  • APT unreliable exit code checking workaround
  • --target virtualbox build VirtualBox ova images
    • custom virtualbox VM settings (VBoxManage modifyvm "$VMNAME" --synthcpu on... etc.)
  • --target qcow2 build KVM images
    • xz archive creation
    • adding whonix-libvirt xml files to the xz
  • build Kicksecure
  • build Kicksecure
  • install Tor Browser by default inside Kicksecure
  • default login user account creation, user "user" / password "changeme"

Non-Essential Derivative-Maker Features

  • step based, build steps case be run manually to speed up development
  • injection of custom build steps
  • building Kicksecure images that do not come with a desktop environment
  • building Kicksecure images that do not come with Kicksecure default applications

Undecided Priority Derivative-Maker Features

  • easy to implement creating other image types (raw images etc.)
  • creation of hash sum verification and gpg signatures
  • automatically installs all required build dependencies on the host system
  • cleanup command removing temporary files and/or images
  • --arch parameter support (--arch amd64 or --arch i386)
  • --kernel and --headers parameter support (--kernel linux-image-amd64 --headers linux-headers-amd64)
  • build from local apt repository rather than from deterministic remote repository
  • install Kicksecure packages from own custom remote repository
  • interactive error handler to repeat commands, open a shell or ignore them
  • optional build step skipping feature
  • --target root (for physical isolation)
  • --target raw build raw images
  • custom VM settings during build (these can of course be manually changed by the user anyhow), supported parameters with examples:
    • --vmram 128
    • --vram 12
    • --vmsize 200G
  • build image that never had Kicksecure repository enabled
  • build and install all Kicksecure packages during Kicksecure image build
  • protection from bad build surprises
    • break or do not break when uncommitted changes are found
    • break or do not break from non-tag
  • --confdir /path/to/config/dir
  • --tb none|closed|open
    • none: Do not install Tor Browser.
    • closed: Fail closed if Tor Browser cannot be installed.
    • open: Fail open if Tor Browser cannot and installed.
  • use onion apt sources for building
  • install different packages for virtualbox (virtualbox-guest-x11) and kvm (spice...)
  • Separate VirtualBox / KVM builds [1] using --target virtualbox or --target qcow2.