!yUrHuDcxUngfTlDbiy:matrix.org

flakelight

38 Members
https://github.com/nix-community/flakelight12 Servers

Load older messages


SenderMessageTime
29 Sep 2025
@niclas:overby.meNiclas Overby Ⓝimage.png
Download image.png
15:43:15
@niclas:overby.meNiclas Overby Ⓝimage.png
Download image.png
15:43:32
@niclas:overby.meNiclas Overby Ⓝ

withOverlays/lib.nix

# Overlay Flake lib as lib.noverby
(final: prev: {lib = prev.lib.extend (_: _: {noverby = prev.outputs.lib;});})
15:44:40
@niclas:overby.meNiclas Overby Ⓝ *

withOverlays/lib.nix

# Overlay Flake lib as lib.noverby
(final: prev: {lib = prev.lib.extend (_: _: {noverby = prev.outputs.lib;});})
15:44:46
@niclas:overby.meNiclas Overby Ⓝ

It does work, if I try to access it in pkgs:

{
  pkgs,
  ...
}: {
  # Nix
  nix = {
    settings = {
      max-jobs = pkgs.lib.noverby.add 2 2;
15:48:59
@niclas:overby.meNiclas Overby Ⓝ *

It does work, if I try to access it in pkgs: (That is only possible in a nixosModule)

{
  pkgs,
  ...
}: {
  # Nix
  nix = {
    settings = {
      max-jobs = pkgs.lib.noverby.add 2 2;
15:51:50
@niclas:overby.meNiclas Overby Ⓝ *

It does work, if I try to access it in pkgs: (That is possible in a nixosModule, and not in nixosConfigurations)

{
  pkgs,
  ...
}: {
  # Nix
  nix = {
    settings = {
      max-jobs = pkgs.lib.noverby.add 2 2;
15:52:12
@niclas:overby.meNiclas Overby Ⓝ Other than this toy example, the thing I'm trying to do is to add helper functions like mkBaseSystem, mkTestSystem, 'mkCalibSystem', that can be used to generate nixosConfigrations. 15:57:16
@niclas:overby.meNiclas Overby Ⓝ * Other than this toy example, the thing I'm trying to do is to add helper functions like mkBaseSystem, mkTestSystem, mkCalibSystem, that can be used to generate nixosConfigrations. 15:57:30
@accelbread:matrix.orgaccelbreadright, the overlays applies for lib in pkgs; the one for module args is set by the module system. not sure if tge module system allows modifying it16:08:13
@accelbread:matrix.orgaccelbread but _module.args.noverby would allow you to get { noverby, ... } from modules 16:09:49
@accelbread:matrix.orgaccelbreadill check if itd be possible to modify the module lib (though might be an infinite recursion thing)16:10:36
@accelbread:matrix.orgaccelbread especially since lib is specialArgs not args 16:11:09
@accelbread:matrix.orgaccelbread ah right, i'd been using self.lib in the past iirc 16:12:35
@niclas:overby.meNiclas Overby Ⓝ * Other than this toy example, the thing I'm trying to do is to add helper functions like mkBaseSystem, mkTestSystem, mkCalibSystem, that can be used to generate nixosConfigurations. 16:28:31
30 Sep 2025
@niclas:overby.meNiclas Overby Ⓝ How does that work? 05:30:35
@accelbread:matrix.orgaccelbread you can set a flakes lib output, and then access it though inputs.self 05:35:43
@accelbread:matrix.orgaccelbreadthough if you have a lot of flakes, it probably better to have a shared flake dep that exports a lib for everything else to use05:36:40
@niclas:overby.meNiclas Overby Ⓝ If you put lib functions into nix/lib, then I guess you cannot currently access module args? 08:11:27
@niclas:overby.meNiclas Overby Ⓝ * If you put lib functions as standalone nix files into nix/lib, then I guess you cannot currently access module args? 08:12:17
@niclas:overby.meNiclas Overby ⓃE.g08:14:31
@niclas:overby.meNiclas Overby Ⓝimage.png
Download image.png
08:14:32
@niclas:overby.meNiclas Overby Ⓝ You can only access module args, if you create a nix/lib.nix instead? 08:21:26
@niclas:overby.meNiclas Overby Ⓝ * So you can only access module args, if you create a nix/lib.nix instead? 11:26:10
@accelbread:matrix.orgaccelbread yeah, youd need nix/lib.nix or nix/lib/default.nix 16:13:02
@accelbread:matrix.orgaccelbreadlib is an attrset of anything at all so cant add optional args to anything but the root attrset16:14:40
2 Oct 2025
@niclas:overby.meNiclas Overby ⓃDid you come to a conclusion for this?09:28:05
@niclas:overby.meNiclas Overby Ⓝ

Ended up using this, but it would be nice if there was a clean way to extend lib in module args:

      _module.args = {
        inherit (self.lib) mkSystem mkLocalStagingSystem mkLocalSystem;
      };

09:43:12
@niclas:overby.meNiclas Overby Ⓝ

Where are you supposed to add helper functions similar to mkShell? I noticed that nixpkgs puts it in pkgs/build-support/mkshell, rather than lib.
But if I do that, it will break commands like nix flake show:

 nix flake show
error: expected a derivation

I cannot put it under legacyPackages either, since Flakelight actually type checks it, and expects it to result in a derivation:

      error: A definition for option `legacyPackages' is not of type `nullable function that evaluates to a(n) Nixpkgs package set'. Definition values:
       - In `/nix/store/f199yb2qch3qa0wdq9cglg4wnr7cshfw-source/builtinModules/nixDir.nix':
           {
             mkPackageShell = <function, args: {inputs, lib, pkgs}>;
           }
10:03:53
@niclas:overby.meNiclas Overby Ⓝ *

Where are you supposed to add helper functions similar to mkShell?
I noticed that nixpkgs puts it in pkgs/build-support/mkshell, rather than lib.
But if I do that, it will break commands like nix flake show:

 nix flake show
error: expected a derivation

I cannot put it under legacyPackages either, since Flakelight actually type checks it, and expects it to result in a derivation:

      error: A definition for option `legacyPackages' is not of type `nullable function that evaluates to a(n) Nixpkgs package set'. Definition values:
       - In `/nix/store/f199yb2qch3qa0wdq9cglg4wnr7cshfw-source/builtinModules/nixDir.nix':
           {
             mkPackageShell = <function, args: {inputs, lib, pkgs}>;
           }
10:04:10

Show newer messages


Back to Room ListRoom Version: 10