Skip to content

Nixup 0.1.2

Choose a tag to compare

@by-architect by-architect released this 07 Nov 08:18

Nixup 0.1.2

  • nixup-rebuild on the phone, as nixos-rebuild on NixOS (as root, in adb's shell, the app's terminal or ssh):
    nixup-rebuild switch builds the config the app picked, dry-activate says what would change, switch --upgrade
    takes everything at its newest, switch --rollback goes back a generation, list-generations lists them;
    --file and --flake build another config this once, --specialisation picks one.
  • nixup-config create, on a PC: a phone's config made from what the phone has now (its settings, its apps and the
    repository each comes from, the apps it came with that are removed or disabled, battery and default apps), as
    nixos-generate-config does for a NixOS machine, checked against Nixup's options before it is written.
  • On a PC, nixup-rebuild lists the phones adb sees (over USB and the network) and asks which one, and can connect
    one over the network (pairing with Wireless debugging when the phone asks); with no terminal, it takes the only one.
  • nixup-version is the system's version command now; nixos-version stays, the same command, for tools written
    for NixOS.
  • A dry run takes another config (build.sh dry --source=…): before, it dry-ran the picked config instead.
  • A build from a PC over ssh (nixup-rebuild --target-host <phone>, as a Matrix-style flake does) works: from Nixup's
    sshd the engine got none of Android's runtime variables, ran nothing and still "succeeded", so the build was kept
    as a generation without its packages, /etc or services (the shells then said "set-environment: No such file"),
    and the store's roots were emptied for the next clean-up to take what the phone used. The scripts now take those
    variables from Android itself, a build stops when the engine did not run, and the roots stay as they were then.
    A phone built that way builds again once to put it right.
  • One /tmp for every service and every session, as on NixOS: a user's tmux server started by a service is the one
    their ssh sessions reach. serviceConfig.PrivateTmp = true (and DynamicUser) gives a service its own.