diff --git a/format.sh b/format.sh
index 00cb9c6..8dce3e7 100755
--- a/format.sh
+++ b/format.sh
@@ -1,5 +1,5 @@
 #!/usr/bin/env nix-shell
-#!nix-shell -i bash -I "nixpkgs=https://github.com/nixos/nixpkgs/archive/nixos-24.05.tar.gz" -p nixfmt-rfc-style
+#!nix-shell -i bash -I "nixpkgs=https://github.com/nixos/nixpkgs/archive/nixos-unstable.tar.gz" -p nixfmt-rfc-style
 
 files=$(find . -name "*.nix" -type f)
 
diff --git a/lib/src/dag/default.nix b/lib/src/dag/default.nix
index d6f1888..87f2275 100644
--- a/lib/src/dag/default.nix
+++ b/lib/src/dag/default.nix
@@ -47,12 +47,10 @@ lib: {
         in
         if sorted ? result then
           {
-            result = builtins.map
-              (value: {
-                name = value.name;
-                value = value.value;
-              })
-              sorted.result;
+            result = builtins.map (value: {
+              name = value.name;
+              value = value.value;
+            }) sorted.result;
           }
         else
           sorted;
@@ -66,26 +64,24 @@ lib: {
       defaults =
         graph: defaults:
         let
-          result = builtins.mapAttrs
-            (
-              name: entry:
-                if defaults ? ${name} then
-                  if builtins.isString entry then
-                    {
-                      value = entry;
-                      before = defaults.${name}.before or [ ];
-                      after = defaults.${name}.after or [ ];
-                    }
-                  else
-                    entry
-                    // {
-                      before = (entry.before or [ ]) ++ (defaults.${name}.before or [ ]);
-                      after = (entry.after or [ ]) ++ (defaults.${name}.after or [ ]);
-                    }
-                else
-                  entry
-            )
-            graph;
+          result = builtins.mapAttrs (
+            name: entry:
+            if defaults ? ${name} then
+              if builtins.isString entry then
+                {
+                  value = entry;
+                  before = defaults.${name}.before or [ ];
+                  after = defaults.${name}.after or [ ];
+                }
+              else
+                entry
+                // {
+                  before = (entry.before or [ ]) ++ (defaults.${name}.before or [ ]);
+                  after = (entry.after or [ ]) ++ (defaults.${name}.after or [ ]);
+                }
+            else
+              entry
+          ) graph;
         in
         defaults // result;
     };
diff --git a/lib/src/lists/default.nix b/lib/src/lists/default.nix
index 22a3d29..7cd6f10 100644
--- a/lib/src/lists/default.nix
+++ b/lib/src/lists/default.nix
@@ -23,12 +23,10 @@ lib: {
               parts = lib.strings.split "(0|[1-9][0-9]*)" string;
             in
             builtins.map serialize parts;
-          prepared = builtins.map
-            (value: [
-              (vectorize value)
-              value
-            ])
-            list;
+          prepared = builtins.map (value: [
+            (vectorize value)
+            value
+          ]) list;
           isLess = a: b: (lib.lists.compare lib.numbers.compare (builtins.head a) (builtins.head b)) < 0;
         in
         builtins.map (x: builtins.elemAt x 1) (builtins.sort isLess prepared);
@@ -125,8 +123,8 @@ lib: {
     ## @type List a -> a
     last =
       list:
-        assert lib.errors.trace (list != [ ]) "List cannot be empty";
-        builtins.elemAt list (builtins.length list - 1);
+      assert lib.errors.trace (list != [ ]) "List cannot be empty";
+      builtins.elemAt list (builtins.length list - 1);
 
     ## Slice part of a list to create a new list.
     ##
@@ -165,8 +163,8 @@ lib: {
     ## @type List -> List
     init =
       list:
-        assert lib.errors.trace (builtins.length list != 0) "lib.lists.init: list must not be empty.";
-        lib.lists.take (builtins.length list - 1) list;
+      assert lib.errors.trace (builtins.length list != 0) "lib.lists.init: list must not be empty.";
+      lib.lists.take (builtins.length list - 1) list;
 
     ## Reverse a list.
     ##
@@ -191,12 +189,10 @@ lib: {
         list
       else
         builtins.tail (
-          builtins.concatMap
-            (part: [
-              separator
-              part
-            ])
-            list
+          builtins.concatMap (part: [
+            separator
+            part
+          ]) list
         );
 
     ## Create a list of integers from a starting number to an ending
@@ -232,10 +228,7 @@ lib: {
     ## Flatten a list of lists into a single list.
     ##
     ## @type List (List a) -> List a
-    flatten = value:
-      if builtins.isList value then
-        builtins.concatMap lib.lists.flatten value
-      else
-        [ value ];
+    flatten =
+      value: if builtins.isList value then builtins.concatMap lib.lists.flatten value else [ value ];
   };
 }
diff --git a/tidepool/src/builders/basic.nix b/tidepool/src/builders/basic.nix
index 0f8b3c2..30992b8 100644
--- a/tidepool/src/builders/basic.nix
+++ b/tidepool/src/builders/basic.nix
@@ -36,10 +36,7 @@ in
                 hooks.target.target
               ];
             in
-            builtins.foldl'
-              (final: defaults: lib.dag.apply.defaults final defaults)
-              package.phases
-              all;
+            builtins.foldl' (final: defaults: lib.dag.apply.defaults final defaults) package.phases all;
 
           phases = lib.dag.apply.defaults phasesWithHooks {
             unpack = lib.dag.entry.before [ "patch" ] "";
@@ -55,9 +52,7 @@ in
 
           sorted = lib.dag.sort.topological phases;
 
-          script = lib.strings.concatMapSep "\n"
-            (entry: entry.value)
-            sorted.result;
+          script = lib.strings.concatMapSep "\n" (entry: entry.value) sorted.result;
 
           built = builtins.derivation (
             package.env
diff --git a/tidepool/src/lib/packages.nix b/tidepool/src/lib/packages.nix
index ccd43a0..cfc979a 100644
--- a/tidepool/src/lib/packages.nix
+++ b/tidepool/src/lib/packages.nix
@@ -9,7 +9,7 @@ in
         get =
           dependencies:
           let
-            exists = value: ! (builtins.isNull value);
+            exists = value: !(builtins.isNull value);
             available = builtins.filter exists dependencies;
           in
           builtins.map (dependency: dependency.package) available;
@@ -18,46 +18,55 @@ in
           build': host': target':
           builtins.mapAttrs (name: dep: lib'.packages.build dep build' host' target');
 
-        collect = package:
+        collect =
+          package:
           let
             isPropagated = name: package: package.propagate or false;
             getPropagatedDependencies = target: builtins.attrValues (lib.attrs.filter isPropagated target);
 
-            process = dependencies:
+            process =
+              dependencies:
               let
-                getDeps = name: dependency:
+                getDeps =
+                  name: dependency:
                   let
-                    deps =
-                      {
-                        build = {
-                          only = getPropagatedDependencies dependency.deps.build.only ++ process dependency.deps.build.only;
-                          build = getPropagatedDependencies dependency.deps.build.build ++ process dependency.deps.build.build;
-                          host = getPropagatedDependencies dependency.deps.build.host ++ process dependency.deps.build.host;
-                          target = getPropagatedDependencies dependency.deps.build.target ++ process dependency.deps.build.target;
-                        };
-                        host = {
-                          only = getPropagatedDependencies dependency.deps.host.only ++ process dependency.deps.host.only;
-                          host = getPropagatedDependencies dependency.deps.host.host ++ process dependency.deps.host.host;
-                          target = getPropagatedDependencies dependency.deps.host.target ++ process dependency.deps.host.target;
-                        };
-                        target = {
-                          only = getPropagatedDependencies dependency.deps.target.only ++ process dependency.deps.target.only;
-                          target = getPropagatedDependencies dependency.deps.target.target ++ process dependency.deps.target.target;
-                        };
+                    deps = {
+                      build = {
+                        only = getPropagatedDependencies dependency.deps.build.only ++ process dependency.deps.build.only;
+                        build =
+                          getPropagatedDependencies dependency.deps.build.build
+                          ++ process dependency.deps.build.build;
+                        host = getPropagatedDependencies dependency.deps.build.host ++ process dependency.deps.build.host;
+                        target =
+                          getPropagatedDependencies dependency.deps.build.target
+                          ++ process dependency.deps.build.target;
                       };
+                      host = {
+                        only = getPropagatedDependencies dependency.deps.host.only ++ process dependency.deps.host.only;
+                        host = getPropagatedDependencies dependency.deps.host.host ++ process dependency.deps.host.host;
+                        target =
+                          getPropagatedDependencies dependency.deps.host.target
+                          ++ process dependency.deps.host.target;
+                      };
+                      target = {
+                        only = getPropagatedDependencies dependency.deps.target.only ++ process dependency.deps.target.only;
+                        target =
+                          getPropagatedDependencies dependency.deps.target.target
+                          ++ process dependency.deps.target.target;
+                      };
+                    };
                   in
-                  lib.lists.flatten
-                    [
-                      deps.build.only
-                      deps.build.build
-                      deps.build.host
-                      deps.build.target
-                      deps.host.only
-                      deps.host.host
-                      deps.host.target
-                      deps.target.only
-                      deps.target.target
-                    ];
+                  lib.lists.flatten [
+                    deps.build.only
+                    deps.build.build
+                    deps.build.host
+                    deps.build.target
+                    deps.host.only
+                    deps.host.host
+                    deps.host.target
+                    deps.target.only
+                    deps.target.target
+                  ];
 
                 propagated = lib.attrs.mapToList getDeps dependencies;
               in
@@ -83,122 +92,176 @@ in
       };
 
       context = {
-        create = collected: ctx:
+        create =
+          collected: ctx:
           let
-            process = path:
+            process =
+              path:
               let
                 dependencies = lib.attrs.selectOrThrow path collected;
                 contexts = builtins.map (dependency: dependency.context or { }) dependencies;
                 result = lib.modules.run {
-                  modules =
-                    builtins.map
-                      (context: { config = context; })
-                      contexts
-                    ++ [
-                      {
-                        freeform = lib.types.any;
+                  modules = builtins.map (context: { config = context; }) contexts ++ [
+                    {
+                      freeform = lib.types.any;
 
-                        options = config.packages.context.options // {
-                          target = lib.options.create {
-                            description = "The dependency target that is being generated.";
-                            type = lib.types.enum [
-                              "build.only"
-                              "build.build"
-                              "build.host"
-                              "build.target"
-                              "host.only"
-                              "host.host"
-                              "host.target"
-                              "target.only"
-                              "target.target"
-                            ];
-                            writable = false;
-                            default.value = builtins.concatStringsSep "." path;
-                          };
+                      options = config.packages.context.options // {
+                        target = lib.options.create {
+                          description = "The dependency target that is being generated.";
+                          type = lib.types.enum [
+                            "build.only"
+                            "build.build"
+                            "build.host"
+                            "build.target"
+                            "host.only"
+                            "host.host"
+                            "host.target"
+                            "target.only"
+                            "target.target"
+                          ];
+                          writable = false;
+                          default.value = builtins.concatStringsSep "." path;
+                        };
 
-                          deps = lib.options.create {
-                            description = "The collected dependencies.";
-                            writable = false;
-                            default.value = collected;
-                            type = lib.types.submodule {
-                              options = {
-                                build = {
-                                  only = lib.options.create { type = lib.types.list.of lib'.types.package; };
-                                  build = lib.options.create { type = lib.types.list.of lib'.types.package; };
-                                  host = lib.options.create { type = lib.types.list.of lib'.types.package; };
-                                  target = lib.options.create { type = lib.types.list.of lib'.types.package; };
-                                };
-                                host = {
-                                  only = lib.options.create { type = lib.types.list.of lib'.types.package; };
-                                  host = lib.options.create { type = lib.types.list.of lib'.types.package; };
-                                  target = lib.options.create { type = lib.types.list.of lib'.types.package; };
-                                };
-                                target = {
-                                  only = lib.options.create { type = lib.types.list.of lib'.types.package; };
-                                  target = lib.options.create { type = lib.types.list.of lib'.types.package; };
-                                };
+                        deps = lib.options.create {
+                          description = "The collected dependencies.";
+                          writable = false;
+                          default.value = collected;
+                          type = lib.types.submodule {
+                            options = {
+                              build = {
+                                only = lib.options.create { type = lib.types.list.of lib'.types.package; };
+                                build = lib.options.create { type = lib.types.list.of lib'.types.package; };
+                                host = lib.options.create { type = lib.types.list.of lib'.types.package; };
+                                target = lib.options.create { type = lib.types.list.of lib'.types.package; };
+                              };
+                              host = {
+                                only = lib.options.create { type = lib.types.list.of lib'.types.package; };
+                                host = lib.options.create { type = lib.types.list.of lib'.types.package; };
+                                target = lib.options.create { type = lib.types.list.of lib'.types.package; };
+                              };
+                              target = {
+                                only = lib.options.create { type = lib.types.list.of lib'.types.package; };
+                                target = lib.options.create { type = lib.types.list.of lib'.types.package; };
                               };
                             };
                           };
                         };
+                      };
 
-                        config = ctx;
-                      }
-                    ];
+                      config = ctx;
+                    }
+                  ];
                 };
               in
               result.config;
           in
           {
             build = {
-              only = process [ "build" "only" ];
-              build = process [ "build" "build" ];
-              host = process [ "build" "host" ];
-              target = process [ "build" "target" ];
+              only = process [
+                "build"
+                "only"
+              ];
+              build = process [
+                "build"
+                "build"
+              ];
+              host = process [
+                "build"
+                "host"
+              ];
+              target = process [
+                "build"
+                "target"
+              ];
             };
             host = {
-              only = process [ "host" "only" ];
-              host = process [ "host" "host" ];
-              target = process [ "host" "target" ];
+              only = process [
+                "host"
+                "only"
+              ];
+              host = process [
+                "host"
+                "host"
+              ];
+              target = process [
+                "host"
+                "target"
+              ];
             };
             target = {
-              only = process [ "target" "only" ];
-              target = process [ "target" "target" ];
+              only = process [
+                "target"
+                "only"
+              ];
+              target = process [
+                "target"
+                "target"
+              ];
             };
           };
       };
 
       hooks = {
-        create = collected: ctx:
+        create =
+          collected: ctx:
           let
-            process = path:
+            process =
+              path:
               let
                 dependencies = lib.attrs.selectOrThrow path collected;
-                hooks = builtins.map
-                  (dependency:
-                    let
-                      getHooks = dependency.hooks or (lib.fp.const { });
-                    in
-                    getHooks ctx)
-                  dependencies;
+                hooks = builtins.map (
+                  dependency:
+                  let
+                    getHooks = dependency.hooks or (lib.fp.const { });
+                  in
+                  getHooks ctx
+                ) dependencies;
               in
               hooks;
           in
           {
             build = {
-              only = process [ "build" "only" ];
-              build = process [ "build" "build" ];
-              host = process [ "build" "host" ];
-              target = process [ "build" "target" ];
+              only = process [
+                "build"
+                "only"
+              ];
+              build = process [
+                "build"
+                "build"
+              ];
+              host = process [
+                "build"
+                "host"
+              ];
+              target = process [
+                "build"
+                "target"
+              ];
             };
             host = {
-              only = process [ "host" "only" ];
-              host = process [ "host" "host" ];
-              target = process [ "host" "target" ];
+              only = process [
+                "host"
+                "only"
+              ];
+              host = process [
+                "host"
+                "host"
+              ];
+              target = process [
+                "host"
+                "target"
+              ];
             };
             target = {
-              only = process [ "target" "only" ];
-              target = process [ "target" "target" ];
+              only = process [
+                "target"
+                "only"
+              ];
+              target = process [
+                "target"
+                "target"
+              ];
             };
           };
       };
diff --git a/tidepool/src/packages/aux/b.nix b/tidepool/src/packages/aux/b.nix
index 329806b..ae180c7 100644
--- a/tidepool/src/packages/aux/b.nix
+++ b/tidepool/src/packages/aux/b.nix
@@ -30,11 +30,7 @@ in
               cflags = [ "-I $AUX_B/include" ];
             };
 
-            hooks = ctx: {
-              "aux:b:env" = lib.dag.entry.after
-                [ "unpack" ]
-                ''export AUX_B=${config.package}'';
-            };
+            hooks = ctx: { "aux:b:env" = lib.dag.entry.after [ "unpack" ] ''export AUX_B=${config.package}''; };
 
             phases = {
               install = ''
diff --git a/tidepool/src/packages/default.nix b/tidepool/src/packages/default.nix
index 725d760..11bccee 100644
--- a/tidepool/src/packages/default.nix
+++ b/tidepool/src/packages/default.nix
@@ -55,34 +55,32 @@ in
   config = {
     packages.cross = lib.attrs.generate doubles (
       system:
-      builtins.mapAttrs
-        (
-          namespace:
-          builtins.mapAttrs (
-            name: alias:
-              let
-                setHost =
-                  package:
-                  package
-                  // {
-                    __modules__ = package.__modules__ ++ [
-                      {
-                        config.platform = {
-                          host = lib.modules.override 5 system;
-                          target = lib.modules.override 5 system;
-                        };
-                      }
-                    ];
-                  };
+      builtins.mapAttrs (
+        namespace:
+        builtins.mapAttrs (
+          name: alias:
+          let
+            setHost =
+              package:
+              package
+              // {
+                __modules__ = package.__modules__ ++ [
+                  {
+                    config.platform = {
+                      host = lib.modules.override 5 system;
+                      target = lib.modules.override 5 system;
+                    };
+                  }
+                ];
+              };
 
-                updated = alias // {
-                  versions = builtins.mapAttrs (version: package: setHost package) alias.versions;
-                };
-              in
-              updated
-          )
+            updated = alias // {
+              versions = builtins.mapAttrs (version: package: setHost package) alias.versions;
+            };
+          in
+          updated
         )
-        packages
+      ) packages
     );
   };
 }