liminix

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

NEWS (6431B)


      1 A brief guide to backward-incompatible changes
      2 that are likely to break configurations or workflows
      3 
      4 2023-07-13
      5 
      6 * a significant re-arrangement of modules and services, which will
      7 probably break any configuration written before this time. For a
      8 detailed explanation, see
      9 https://www.liminix.org/doc/configuration.html#modules
     10 
     11 2023-12-10
     12 
     13 * configurations (usually) need no longer import modules from
     14 modules/outputs because devices are expected to do this instead. This
     15 change is because the outputs that make sense in any given context are
     16 usually a property of the device being installed onto.
     17 
     18 2023-12-11
     19 
     20 * rename outputs.flashimage to outputs.mtdimage (and also diskimage to
     21 mbrimage). This change is made in the expectation that "fooimage" is
     22 the name of an outputs that gloms together other filesystem-like
     23 outputs with some kind of partition table - so we might in future have
     24 gptimage or lvmimage or ubimage.
     25 
     26 2024-01-03
     27 
     28 Liminix is now targeted to Nixpkgs 23.11 (not 23.05 as previously).
     29 Upstream changes that have led to incompatible Liminix changes are:
     30 
     31 * newer U-Boot version
     32 * util-linux can now be built (previously depended on systemd)
     33 
     34 2024-01-30
     35 
     36 New port! Thanks to Arnout Engelen <arnout@bzzt.net>, Liminix
     37 now runs on the TP-Link Archer AX23.
     38 
     39 2024-02-12
     40 
     41 * We now build wifi drivers (mac80211) from the same kernel source as
     42 the running kernel, instead of using drivers from the linux-backports
     43 project.  This may be a regression on some devices that depend on
     44 OpenWrt patches for wireless functionality: if you have a device that
     45 used to work and now doesn't, refer to OpenWrt
     46 package/kernel/mac80211/patches/ to see if there's something in there
     47 that needs to be applied.
     48 
     49 * in general, we build kernel modules (e.g. for nftables) at the same
     50 time as the kernel itself instead of expecting to be able to build
     51 them afterwards as though they were "out of tree". Refer to commit
     52 b9c0d93670275e69df24902b05bf4aa4f0fcbe96 for a fuller explanation
     53 of how this simplifies things.
     54 
     55 2024-02-13
     56 
     57 So that we can be more consistent about services that would like their
     58 state to be preserved across boots (assuming a writable filesystem)
     59 these changes have been made
     60 
     61 * /run/service-state has been moved to /run/services/outputs
     62  to better reflect what it's used for
     63 * /run/services/state is either a symlink to /persist/services/state
     64  (if there's a writeable fs on /persist) or a directory (if there
     65  isn't)
     66 
     67 The change will lose your ssh host key(s) unless you copy them from
     68 the old location to the new one before rebooting into the new system
     69 
     70    mkdir -m 02751 -p /run/services/state/dropbear
     71    cp /persist/secrets/dropbear/* /run/services/state/dropbear
     72 
     73 The `output`, `mkoutputs` functions defined by ${serviceFns}
     74 have been updated for the new location.
     75 
     76 2024-02-16
     77 
     78 New (or at least, previously unreported) port! Liminix now runs on the
     79 Turris Omnia and has been serving my family's internet needs for most
     80 of this week.  Thanks to NGI0 Entrust and the NLnet Foundation for
     81 sponsoring this development (and funding the hardware)
     82 
     83 2024-02-21
     84 
     85 New port! Thanks to Raito Bezarius, Liminix now runs on the Zyxel NWA50AX,
     86 an MT7621 (MIPS EL) dual radio WiFi AP.
     87 
     88 2024-04-29
     89 
     90 The setup for using `levitate` has changed: now it accepts an entire
     91 config fragment, not just a list of services.  Hopefully this makes it
     92 a bit more useful :-)
     93 
     94   defaultProfile.packages = with pkgs; [
     95     ... 
     96     (levitate.override {
     97       config  = {
     98         services = {
     99           inherit (config.services) dhcpc sshd watchdog;
    100         };
    101         defaultProfile.packages = [ mtdutils ];
    102         users.root.openssh.authorizedKeys.keys = secrets.root.keys;
    103       };
    104     })
    105   ];
    106 
    107 2024-07-16
    108 
    109 * structured parameters are available for the pppoe service
    110 
    111 * The "wan" configuration in modules/profiles/gateway.nix has changed:
    112 instead of passing options that are used to create a pppoe interface,
    113 callers should create a (pppoe or other) interface and pass that as
    114 the value of profile.gateway.wan. For the pppoe case this is now only
    115 very slightly more verbose, and it allows using the gateway profile
    116 with other kinds of upstream.
    117 
    118 2024-8-16
    119 
    120 As part of implementing log shipping, the default directory for system
    121 logs has beenchanged from /run/uncaught-logs to /run/log
    122 
    123 2024-10-09
    124 
    125 liminix-rebuild is being deprecated. From hereon in, the preferred way
    126 to do an incremental update on an installed device with a writable
    127 filesystem is to build the systemConfiguration output
    128 
    129     nix-build  -I liminix-config=hosts/myhost.nix --argstr deviceName turris-omnia -A outputs.systemConfiguration 
    130 
    131 and then run the generated `install.sh` script
    132 
    133     result/install.sh root@192.168.8.1
    134 
    135 2024-12-16
    136 
    137 Config options changed: if you had set config.hardware.dts.includes
    138 (maybe in an out-of-tree device port) to specify the search paths
    139 in which dtc finds include files, you will need to change this to 
    140 hardware.dts.includePaths.
    141 
    142 The "new" hardware.dts.includes option is now for dtsi files which
    143 should be merged into the device tree.
    144 
    145 2024-12-19
    146 
    147 Incremental updates changed again (but not massively). From hereon in,
    148 the preferred way to do an incremental update on an installed device
    149 with a writable filesystem is to build the updater output
    150 
    151     nix-build  -I liminix-config=hosts/myhost.nix --argstr deviceName turris-omnia -A outputs.updater
    152 
    153 and then run the generated `update.sh` script. See 
    154 https://www.liminix.org/doc/admin.html#updating-an-installed-system
    155 
    156 2024-12-22
    157 
    158 outputs.zimage is now outputs.kernel.zImage. This is unlikely to
    159 affect many people at all but I mention it anyway.
    160 
    161 2024-03-11
    162 
    163 The fennel function (svc.open ...) now expects to be given the store
    164 directory of a service derivation, not a direct path to the .outputs
    165 directory. Thus
    166 
    167 (svc.open "/nix/store/eeeeeeeeeeeeee-hellod")
    168 not
    169 (svc.open "/nix/store/eeeeeeeeeeeeee-hellod/.outputs")
    170 
    171 This simplifies most extant uses of it
    172 
    173 2025-11-04
    174 
    175 services.network.dhcp is deprecated in favour of services.dhcp4c
    176 which is provided by modules/dhcp4c
    177 
    178 The new module should be _mostly_ backward compatible, but it
    179 doesn't hold the sr-rc database lock while waiting to get a lease,
    180 which was a source of boot-time deadlocks
    181 
    182 2026-09-28
    183 
    184 * Turris Omnia gets an upgrade to the latest LTS kernel (6.18.54)
    185 
    186 * DCCP support has been removed from the firewall module, but it's
    187   unlikely anyone will notice
    188   (https://www.phoronix.com/news/Linux-6.16-Net-Next-Drops-DCCP)