summaryrefslogtreecommitdiff
path: root/TODO
blob: 6c1ca3bd9b004df2d3d3e23587793bc31275e9e1 (plain)
  1. Final release
  2. -------------
  3.   * Network
  4.     + Add root script to setup dyndns.
  5.     + Configure dhcpd config
  6.     + Enable routing
  7.   * Security
  8.     + Reset crypto (ssh, gnupg, rng)
  9.     + Disable password-based remote login
  10. Point releases
  11. --------------
  12.   * Core
  13.     + Test kernel 4.8 support for UCS-2 sdcards
  14.     + Include root script to call dpkg-reconfigure (with -u by default).
  15.     + Integrate root scripts into Debian
  16.     + Optimize initramfs:
  17.       - Include minimal set of modules. ("dep" not "most").
  18.       - Avoid including busybox.
  19.       - Compress with xz (not gzip).
  20.     + Figure out and document when qemu-user-static/qemu-user is needed.
  21.   * Network
  22.     + Use mDNS
  23.     + Tweak MTA
  24.     + Try configure network during build (reducing/eliminating root script)
  25.     + Have network-manager use internal dhcp, and avoid package dnsmasq-base
  26.     + Include caching DNS service (knot-resolver? unbound?)
  27.   * Packages
  28.     + Use systemd (not rsyslogd) for logging.
  29.     + Optionally upgrade snapshot-based system with multistrap
  30.     + Stop include packages, some heavily burdening build time or size:
  31.       - gcc-5-base
  32.       - kpartx
  33.       - molly-guard
  34.       - rsyslog
  35.       - wget
  36.     + Fix mark auto-installed packages as such.
  37.   * Security
  38.     + Validate with GnuPG downloads of installer parts
  39.     + Reset UUIDs (partitions, machine-ID, popularity-contest)
  40.     + Use UUIDs in fstab
  41.     + Ensure build host hostname/domain didn't leak into target system
  42.     + Try drop rootfs UUID from boot.scr (maybe initramfs works as-is)
  43.     + Add and bootstrap Monkeysphere
  44.     + Maybe Enable SElinux
  45.     + Maybe Enable AppArmor
  46.     + Maybe add sshguard and/or fail2ban.
  47.     + Maybe add suricata (tied to fail2ban?).
  48.     + Include libpam-abl
  49.   * UI
  50.     + Tweak mc.
  51.   * Source
  52.     + Parallelize more targets
  53.     + Refactor to build a single final image:
  54.       + Use autoconf
  55.       + Flatten targets into single subdir per scope, and no-dir for final image
  56.     + Add testsuite
  57.     + Include top-level USE.md (from box.redpill.dk README.txt).
  58.     + Add top-level SETUP.md covering device name validation.
  59.     + configure man-db late, to not process locale-purge'd files.
  60.     + configure kernel late, to process initramfs only once.
  61.   * Images
  62.     + Generate images at morla.jones.dk
  63.     + Generate index pages from source documents.
  64. Ideas
  65. -----
  66.   * Core
  67.     + Maybe use bilibop or flashybrid
  68.   * Source
  69.     + Use fuse2fs, e2tools, fsarchiver, partclone or dump/restore to
  70.       populate root/boot images as non-root.
  71.   * Images
  72.     + Sneakernet: add-on partition/image with all needed udebs and debs
  73.     + Full: add-on partition/image with full sources
  74.     + Resolve Erase Block size (EBS) and Page size (PS) with flashbench
  75.     + Format partition as ext4 with stride=PS and stripe-width=EBS
  76.       <https://thelastmaimou.wordpress.com/2013/05/04/magic-soup-ext4-with-ssd-stripes-and-strides/>
  77.       <https://thelastmaimou.wordpress.com/2013/05/19/optimizing-arch-linux-image-installation-on-the-raspberry-pi/>
  78.     + ...or maybe _avoid_ tuning stripe/stride, as mentioned at
  79.       <https://www.mayrhofer.eu.org/ssd-linux-benchmark>
  80.       According to <https://lwn.net/Articles/428584/> SDHC registers
  81.       preferred erase size to sysfs, so this should work:
  82.         test -e /sys/block/mmcblk0/device/preferred_erase_size \
  83.         && parted -s -a optimal /dev/mmcblk0 -- mklabel msdos \
  84.         mkpart primary ext2 $(cat /sys/block/mmcblk0/device/preferred_erase_size)B 100%
  85.     + maybe try make use of flashbench open-au tests as described in
  86.       above LWN article and summarized at
  87.       <https://lists.linaro.org/pipermail/flashbench-results/2014-July/000479.html>