Doing a bunch of work on propellor this week. Some bug fixes and improvements to disk image building. Also some properties involving the XFCE desktop environment.

Putting it all together, I have 28 lines of propellor config file that generates a disk image that boots to a XFCE desktop and also has propellor installed. I wonder where it will go from here? ;-)

darkstar :: Host
darkstar = host "" $ props
        & imageBuilt "/srv/propellor-disk.img"
                (Chroot.hostChroot demo (Chroot.Debootstrapped mempty))
                MSDOS (grubBooted PC)
                [ partition EXT2 `mountedAt` "/boot"
                        `setFlag` BootFlag
                , partition EXT4 `mountedAt` "/"
                        `mountOpt` errorReadonly
                        `addFreeSpace` MegaBytes 256
                , swapPartition (MegaBytes 256)

demo :: Host
demo = host "demo" $ props
        & osDebian Unstable X86_64
        & Apt.installed ["linux-image-amd64"]
        & bootstrappedFrom GitRepoOutsideChroot
        & User.accountFor user
        & root `User.hasInsecurePassword` "debian"
        & user `User.hasInsecurePassword` "debian"
        & XFCE.installedMin
        & XFCE.networkManager
        & XFCE.defaultPanelFor user File.OverwriteExisting
        & LightDM.autoLogin user
        & Apt.installed ["firefox"]
        user = User "user"
        root = User "root"

Indcidentially, I have power and bandwidth to work on this kind of propellor stuff from home all day, for the first time! Up until now, all propellor features involving disk images were either tested remotely, or developed while I was away from home. It's a cloudy, rainy day; the solar upgrade and satellite internet paid off.

Today's work was sponsored by Riku Voipio.