error: separateDebugInfo = true in lix requires __structuredAttrs if {dis,}allowedRequisites or {dis,}allowedReferences is set #917

Open
opened 2025-07-15 06:45:29 +00:00 by ramonacat · 24 comments
Member

While trying to update my flake I have started getting the error from the subject of the issue. This has happened first when upgrading nixpkgs from d3807bc34e7d086b4754e1c842505570e23f9d01 to b47d4f01d4213715a1f09b999bab96bb6a5b675e. nix flake check is enough to get the error, flake below. The machine where I'm running the builds runs nix (Lix, like Nix) 2.92.3-pre20250629-f10ca0d.

I am honestly 100% sure I understand what this error means, so please let me know if I'm meowing under the wrong tree and should report to nixpkgs instead.

Full error:

fetching path input 'path:/home/ramona/Projects/lix-repro'
evaluating flake...
checking flake output 'nixosConfigurations'...
checking NixOS configuration 'nixosConfigurations.test'...
trace: evaluation warning: system.stateVersion is not set, defaulting to 25.11. Read why this matters on https://nixos.org/manual/nixos/stable/options.html#opt-system.stateVersion.
error:
       … while checking flake output 'nixosConfigurations'
         at /nix/store/l46izry9crg0zdn4lxpsqkm7wngw84h5-source/flake.nix:18:5:
           17|   }: {
           18|     nixosConfigurations = {
             |     ^
           19|       test = nixpkgs.lib.nixosSystem {

       … while checking the NixOS configuration 'nixosConfigurations.test'
         at /nix/store/l46izry9crg0zdn4lxpsqkm7wngw84h5-source/flake.nix:19:7:
           18|     nixosConfigurations = {
           19|       test = nixpkgs.lib.nixosSystem {
             |       ^
           20|         system = "x86_64-linux";

       (stack trace truncated; use '--show-trace' to show the full trace)

       error: separateDebugInfo = true in lix requires __structuredAttrs if {dis,}allowedRequisites or {dis,}allowedReferences is set

flake.nix:

{
  description = "A very basic flake";

  inputs = {
    nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable-small";

    lix-module = {
      url = "https://git.lix.systems/lix-project/nixos-module/archive/2.92.3-1.tar.gz";
      inputs.nixpkgs.follows = "nixpkgs";
    };
  };

  outputs = {
    nixpkgs,
    lix-module,
    ...
  }: {
    nixosConfigurations = {
      test = nixpkgs.lib.nixosSystem {
        system = "x86_64-linux";
        modules = [
          lix-module.nixosModules.default
        ];
      };
    };
  };
}

flake.lock:

{
  "nodes": {
    "flake-utils": {
      "inputs": {
        "systems": "systems"
      },
      "locked": {
        "lastModified": 1731533236,
        "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
        "owner": "numtide",
        "repo": "flake-utils",
        "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
        "type": "github"
      },
      "original": {
        "owner": "numtide",
        "repo": "flake-utils",
        "type": "github"
      }
    },
    "flakey-profile": {
      "locked": {
        "lastModified": 1712898590,
        "narHash": "sha256-FhGIEU93VHAChKEXx905TSiPZKga69bWl1VB37FK//I=",
        "owner": "lf-",
        "repo": "flakey-profile",
        "rev": "243c903fd8eadc0f63d205665a92d4df91d42d9d",
        "type": "github"
      },
      "original": {
        "owner": "lf-",
        "repo": "flakey-profile",
        "type": "github"
      }
    },
    "lix": {
      "flake": false,
      "locked": {
        "lastModified": 1751237967,
        "narHash": "sha256-fP6SXT5WUEAEoMvr2j3kdorGvLphWRjlLJIrgeoWMyI=",
        "rev": "f10ca0d677f02b96d24917cd00ee4b5da1e18b1a",
        "type": "tarball",
        "url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/f10ca0d677f02b96d24917cd00ee4b5da1e18b1a.tar.gz?rev=f10ca0d677f02b96d24917cd00ee4b5da1e18b1a"
      },
      "original": {
        "type": "tarball",
        "url": "https://git.lix.systems/lix-project/lix/archive/release-2.92.tar.gz"
      }
    },
    "lix-module": {
      "inputs": {
        "flake-utils": "flake-utils",
        "flakey-profile": "flakey-profile",
        "lix": "lix",
        "nixpkgs": [
          "nixpkgs"
        ]
      },
      "locked": {
        "lastModified": 1751239988,
        "narHash": "sha256-/yAP5zHAs5hT3NUYWaKnVuaLuxVLDMmn3jPdWAMOVNo=",
        "rev": "91b03e3ace9005f50b2fbe81d2533d988e19df6e",
        "type": "tarball",
        "url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/91b03e3ace9005f50b2fbe81d2533d988e19df6e.tar.gz?rev=91b03e3ace9005f50b2fbe81d2533d988e19df6e"
      },
      "original": {
        "type": "tarball",
        "url": "https://git.lix.systems/lix-project/nixos-module/archive/2.92.3-1.tar.gz"
      }
    },
    "nixpkgs": {
      "locked": {
        "lastModified": 1752557398,
        "narHash": "sha256-/rQkVdNZhMmQrA1EQJs1ejc5e502MCY66cMJsyyLGFc=",
        "owner": "nixos",
        "repo": "nixpkgs",
        "rev": "bb6f90906a3922ec1b201a419b616c6fbbf578a1",
        "type": "github"
      },
      "original": {
        "owner": "nixos",
        "ref": "nixos-unstable-small",
        "repo": "nixpkgs",
        "type": "github"
      }
    },
    "root": {
      "inputs": {
        "lix-module": "lix-module",
        "nixpkgs": "nixpkgs"
      }
    },
    "systems": {
      "locked": {
        "lastModified": 1681028828,
        "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
        "owner": "nix-systems",
        "repo": "default",
        "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
        "type": "github"
      },
      "original": {
        "owner": "nix-systems",
        "repo": "default",
        "type": "github"
      }
    }
  },
  "root": "root",
  "version": 7
}
While trying to update my flake I have started getting the error from the subject of the issue. This has happened first when upgrading nixpkgs from `d3807bc34e7d086b4754e1c842505570e23f9d01` to `b47d4f01d4213715a1f09b999bab96bb6a5b675e`. `nix flake check` is enough to get the error, flake below. The machine where I'm running the builds runs `nix (Lix, like Nix) 2.92.3-pre20250629-f10ca0d`. I am honestly 100% sure I understand what this error means, so please let me know if I'm meowing under the wrong tree and should report to nixpkgs instead. Full error: ``` fetching path input 'path:/home/ramona/Projects/lix-repro' evaluating flake... checking flake output 'nixosConfigurations'... checking NixOS configuration 'nixosConfigurations.test'... trace: evaluation warning: system.stateVersion is not set, defaulting to 25.11. Read why this matters on https://nixos.org/manual/nixos/stable/options.html#opt-system.stateVersion. error: … while checking flake output 'nixosConfigurations' at /nix/store/l46izry9crg0zdn4lxpsqkm7wngw84h5-source/flake.nix:18:5: 17| }: { 18| nixosConfigurations = { | ^ 19| test = nixpkgs.lib.nixosSystem { … while checking the NixOS configuration 'nixosConfigurations.test' at /nix/store/l46izry9crg0zdn4lxpsqkm7wngw84h5-source/flake.nix:19:7: 18| nixosConfigurations = { 19| test = nixpkgs.lib.nixosSystem { | ^ 20| system = "x86_64-linux"; (stack trace truncated; use '--show-trace' to show the full trace) error: separateDebugInfo = true in lix requires __structuredAttrs if {dis,}allowedRequisites or {dis,}allowedReferences is set ``` flake.nix: ``` { description = "A very basic flake"; inputs = { nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable-small"; lix-module = { url = "https://git.lix.systems/lix-project/nixos-module/archive/2.92.3-1.tar.gz"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = { nixpkgs, lix-module, ... }: { nixosConfigurations = { test = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ lix-module.nixosModules.default ]; }; }; }; } ``` flake.lock: ``` { "nodes": { "flake-utils": { "inputs": { "systems": "systems" }, "locked": { "lastModified": 1731533236, "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", "owner": "numtide", "repo": "flake-utils", "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", "type": "github" }, "original": { "owner": "numtide", "repo": "flake-utils", "type": "github" } }, "flakey-profile": { "locked": { "lastModified": 1712898590, "narHash": "sha256-FhGIEU93VHAChKEXx905TSiPZKga69bWl1VB37FK//I=", "owner": "lf-", "repo": "flakey-profile", "rev": "243c903fd8eadc0f63d205665a92d4df91d42d9d", "type": "github" }, "original": { "owner": "lf-", "repo": "flakey-profile", "type": "github" } }, "lix": { "flake": false, "locked": { "lastModified": 1751237967, "narHash": "sha256-fP6SXT5WUEAEoMvr2j3kdorGvLphWRjlLJIrgeoWMyI=", "rev": "f10ca0d677f02b96d24917cd00ee4b5da1e18b1a", "type": "tarball", "url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/f10ca0d677f02b96d24917cd00ee4b5da1e18b1a.tar.gz?rev=f10ca0d677f02b96d24917cd00ee4b5da1e18b1a" }, "original": { "type": "tarball", "url": "https://git.lix.systems/lix-project/lix/archive/release-2.92.tar.gz" } }, "lix-module": { "inputs": { "flake-utils": "flake-utils", "flakey-profile": "flakey-profile", "lix": "lix", "nixpkgs": [ "nixpkgs" ] }, "locked": { "lastModified": 1751239988, "narHash": "sha256-/yAP5zHAs5hT3NUYWaKnVuaLuxVLDMmn3jPdWAMOVNo=", "rev": "91b03e3ace9005f50b2fbe81d2533d988e19df6e", "type": "tarball", "url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/91b03e3ace9005f50b2fbe81d2533d988e19df6e.tar.gz?rev=91b03e3ace9005f50b2fbe81d2533d988e19df6e" }, "original": { "type": "tarball", "url": "https://git.lix.systems/lix-project/nixos-module/archive/2.92.3-1.tar.gz" } }, "nixpkgs": { "locked": { "lastModified": 1752557398, "narHash": "sha256-/rQkVdNZhMmQrA1EQJs1ejc5e502MCY66cMJsyyLGFc=", "owner": "nixos", "repo": "nixpkgs", "rev": "bb6f90906a3922ec1b201a419b616c6fbbf578a1", "type": "github" }, "original": { "owner": "nixos", "ref": "nixos-unstable-small", "repo": "nixpkgs", "type": "github" } }, "root": { "inputs": { "lix-module": "lix-module", "nixpkgs": "nixpkgs" } }, "systems": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", "owner": "nix-systems", "repo": "default", "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", "type": "github" }, "original": { "owner": "nix-systems", "repo": "default", "type": "github" } } }, "root": "root", "version": 7 } ```
Owner

@k900 that's the exact thing you fixed on main, right?

@k900 that's the exact thing you fixed on main, right?
Member

Yeah, I guess 378b360bf8 needs a backport?

Yeah, I guess https://git.lix.systems/lix-project/lix/commit/378b360bf8e0d04e8dd3733acd20d7a9b70360f1 needs a backport?
Owner

cherry-picks aren't possible directly from gerrit. until somefew get around to cherry-picking you can temporarily fix the problems by setting separateDebugInfo = false on lix using a nixpkgs overlay (though we'd suggest adding the overlay with mkAfter to make sure it's applied after the lix-module overlay)

cherry-picks aren't possible directly from gerrit. until somefew get around to cherry-picking you can temporarily fix the problems by setting `separateDebugInfo = false` on lix using a nixpkgs overlay (though we'd suggest adding the overlay with `mkAfter` to make sure it's applied after the lix-module overlay)
Member

It won't cherry-pick anyway, because it's from an entirely different repo.

It won't cherry-pick anyway, because it's from an entirely different repo.

@pennae wrote in #917 (comment):

cherry-picks aren't possible directly from gerrit. until somefew get around to cherry-picking you can temporarily fix the problems by setting separateDebugInfo = false on lix using a nixpkgs overlay (though we'd suggest adding the overlay with mkAfter to make sure it's applied after the lix-module overlay)

Do you have an example on how to do this? I'm not quite confident with using overlays yet.

@pennae wrote in https://git.lix.systems/lix-project/lix/issues/917#issuecomment-13218: > cherry-picks aren't possible directly from gerrit. until somefew get around to cherry-picking you can temporarily fix the problems by setting `separateDebugInfo = false` on lix using a nixpkgs overlay (though we'd suggest adding the overlay with `mkAfter` to make sure it's applied after the lix-module overlay) Do you have an example on how to do this? I'm not quite confident with using overlays yet.
Owner

adding this to your config (as a separate module if necessary) should do the trick:

nixpkgs.overlays = lib.mkAfter [(final: prev: {
  lix = prev.lix.overrideAttrs (_: {
    separateDebugInfo = false;
  });
})];
adding this to your config (as a separate module if necessary) should do the trick: ```nix nixpkgs.overlays = lib.mkAfter [(final: prev: { lix = prev.lix.overrideAttrs (_: { separateDebugInfo = false; }); })]; ```

I'm not sure if I have some user error going on but adding this to my config doesn't solve the issue.

I'm on 2.93.2 by the way if this changes anything:

❯ nix --version
nix (Lix, like Nix) 2.93.2
I'm not sure if I have some user error going on but adding this to my config doesn't solve the issue. I'm on 2.93.2 by the way if this changes anything: ```bash ❯ nix --version nix (Lix, like Nix) 2.93.2 ```
Author
Member

Same for me. I tried this config, I tried setting this as an overlay in import nixpkgs {overlays = [...]}, and also in packageOverrides in the config in import nixpkgs {config = {...}}. I believe this might have something to do with the fact that the lix module replaces the package, instead of calling override/overrideArgs, but I don't know how to work around that.

Same for me. I tried this config, I tried setting this as an overlay in `import nixpkgs {overlays = [...]}`, and also in `packageOverrides` in the `config` in `import nixpkgs {config = {...}}`. I believe this might have something to do with the fact that the lix module replaces the package, instead of calling override/overrideArgs, but I don't know how to work around that.
Owner

oh, fun. it is apparently impossible to override separateDebugInfo. nixpkgs bug! so yeah, overlays won't do anything. the options now seem to be using an older lix until fixes are cherry-picked, using main, or not updating nixpkgs. we would strongly advise against the last option.

oh, fun. it is apparently impossible to override `separateDebugInfo`. nixpkgs bug! so yeah, overlays won't do anything. the options now seem to be using an older lix until fixes are cherry-picked, using main, or not updating nixpkgs. we would strongly advise against the last option.
Owner

More creative solution: wipe disallowedRequisites?

More creative solution: wipe disallowedRequisites?
Owner

@jade wrote in #917 (comment):

More creative solution: wipe disallowedRequisites?

also jacked because only the initial mkDerivation args go into that calculation

@jade wrote in https://git.lix.systems/lix-project/lix/issues/917#issuecomment-13262: > More creative solution: wipe disallowedRequisites? [also jacked](https://github.com/NixOS/nixpkgs/blob/82f8090f5547aca09fec694a0af6603ef638b746/pkgs/stdenv/generic/make-derivation.nix#L327) because only the initial mkDerivation args go into that calculation
Owner

https://gerrit.lix.systems/c/lix/+/3668, https://gerrit.lix.systems/c/lix/+/3671 cherry picks to 2.93 and 2.92. I expect to run a release of 2.93 and not bother with a 2.92 release.

https://gerrit.lix.systems/c/lix/+/3668, https://gerrit.lix.systems/c/lix/+/3671 cherry picks to 2.93 and 2.92. I expect to run a release of 2.93 and not bother with a 2.92 release.

hey now how can i override lix i use lix-nixosmodules

hey now how can i override lix i use lix-nixosmodules
Member

There will be a Lix (and module) update soon including this fix.

There will be a Lix (and module) update soon including this fix.

Is there anything that needs to be done to get this across the line?

Is there anything that needs to be done to get this across the line?
Member

A release is being worked on.

A release is being worked on.
Owner

You may use the release-2.93 branch of lix in the meantime which contains the work in progress release. It probably works fine, we're just finishing some last touches.

You may use the release-2.93 branch of lix in the meantime which contains the work in progress release. It probably works fine, we're just finishing some last touches.

@jade wrote in #917 (comment):

You may use the release-2.93 branch of lix in the meantime which contains the work in progress release. It probably works fine, we're just finishing some last touches.

how? it can't rebuild without a version of lix that has this fixed

@jade wrote in https://git.lix.systems/lix-project/lix/issues/917#issuecomment-13318: > You may use the release-2.93 branch of lix in the meantime which contains the work in progress release. It probably works fine, we're just finishing some last touches. how? it can't rebuild without a version of lix that has this fixed

This fixed it for me

    lix-module = {
      url = "git+https://git.lix.systems/lix-project/nixos-module";
      inputs.nixpkgs.follows = "nixpkgs";
      inputs.lix = {
        url = "git+https://git.lix.systems/lix-project/lix";
        inputs.nixpkgs.follows = "nixpkgs";
      };
    };

the release-2.93 version did not work but the main branch does.

I also had to add this hack to fix my evaluation but I don't know if this is related to lix or not:

  nixpkgs.overlays = [
    (final: prev: {
      extractpdfmark = prev.extractpdfmark.overrideAttrs (oldAttrs: {
        nativeBuildInputs = (oldAttrs.nativeBuildInputs or []) ++ [ prev.gettext ];
        buildInputs = (oldAttrs.buildInputs or []) ++ [ prev.gettext prev.libiconv ];
        preAutoreconf = ''
          mkdir -p m4
          cp -r ${prev.gettext}/share/gettext/m4/. m4/
        '';
      });
    })
  ];

should probably switch back once it's fixed and you'll have to wait for lix to build since it won't be cached

This fixed it for me ``` lix-module = { url = "git+https://git.lix.systems/lix-project/nixos-module"; inputs.nixpkgs.follows = "nixpkgs"; inputs.lix = { url = "git+https://git.lix.systems/lix-project/lix"; inputs.nixpkgs.follows = "nixpkgs"; }; }; ``` the release-2.93 version did not work but the main branch does. I also had to add this hack to fix my evaluation but I don't know if this is related to lix or not: ``` nixpkgs.overlays = [ (final: prev: { extractpdfmark = prev.extractpdfmark.overrideAttrs (oldAttrs: { nativeBuildInputs = (oldAttrs.nativeBuildInputs or []) ++ [ prev.gettext ]; buildInputs = (oldAttrs.buildInputs or []) ++ [ prev.gettext prev.libiconv ]; preAutoreconf = '' mkdir -p m4 cp -r ${prev.gettext}/share/gettext/m4/. m4/ ''; }); }) ]; ``` should probably switch back once it's fixed and you'll have to wait for lix to build since it won't be cached

@freebritney132

I also had to add this hack to fix my evaluation but I don't know if this is related to lix or not:

  nixpkgs.overlays = [
    (final: prev: {
      extractpdfmark = prev.extractpdfmark.overrideAttrs (oldAttrs: {
        nativeBuildInputs = (oldAttrs.nativeBuildInputs or []) ++ [ prev.gettext ];
        buildInputs = (oldAttrs.buildInputs or []) ++ [ prev.gettext prev.libiconv ];
        preAutoreconf = ''
          mkdir -p m4
          cp -r ${prev.gettext}/share/gettext/m4/. m4/
        '';
      });
    })
  ];

This is unrelated. See: https://github.com/NixOS/nixpkgs/pull/425806

@freebritney132 > I also had to add this hack to fix my evaluation but I don't know if this is related to lix or not: > > ```nix > nixpkgs.overlays = [ > (final: prev: { > extractpdfmark = prev.extractpdfmark.overrideAttrs (oldAttrs: { > nativeBuildInputs = (oldAttrs.nativeBuildInputs or []) ++ [ prev.gettext ]; > buildInputs = (oldAttrs.buildInputs or []) ++ [ prev.gettext prev.libiconv ]; > preAutoreconf = '' > mkdir -p m4 > cp -r ${prev.gettext}/share/gettext/m4/. m4/ > ''; > }); > }) > ]; > ``` This is unrelated. See: https://github.com/NixOS/nixpkgs/pull/425806

Replacing lix-module.overlays.default with this abomination has helped (it evaluates with new nixpkgs without errors and without switching to bleeding edge main, and builds perfectly fine still waiting for an actual updated build – will edit this comment when I confirm with an actual build):

      # lix-module.overlays.default
      (final: prev: let
        versionSuffix = "-horribly-patched";
        lix = final.applyPatches {
          name = "lix${versionSuffix}";
          src = lix-module.inputs.lix;
          patches = [
            (final.fetchpatch {
              name = "lix-2.93-structuredAttrs.patch";
              url = "https://gerrit.lix.systems/changes/lix~3668/revisions/2/patch?download&raw";
              hash = "sha256-JQlAU0texMa7DMrqk447SXJUEu1k4IP9z8mjCHyskVc=";
            })
          ];
        };
        patchedOverlay = import (lix-module + "/overlay.nix") {
          inherit versionSuffix lix;
        };
      in
        patchedOverlay final prev)
  • overriding inputs.lix with release-2.93 branch doesn't help because the fix is not yet cherry-picked to release-2.93 (you can see there's no __structuredAttrs = true; in package.nix)
  • after recent issues with 2.93 i'm a bit hesitant to switch to bleeding edge main and then roll back
  • it's fifth day i can't apply upgrades and it's making me anxious
  • the problem is, the derivation doesn't even evaluate – adding the patch to the package won't help (because the problem is in the derivation itself – it's already running when patches are being applied (or, in this case, won't get to this step because it won't even evaluate, let alone start building)). Then I tried to add __structuredAttrs with a overrideAttrs or overrideDerivation, but both need to actually evaluate their input derivation, which fails
  • there's no "2.93 + fix" branch/pr, and i'm too lazy to fork and keep the fork up to date. It should be possible to somehow hack the upstream released module/overlay, which will apply when upstream updates (or visibly break when no longer needed)
  • i can't easily patch flake input without actually publishing a patched flake (as i mentioned already, too lazy to fork and branch)
  • the overlay can be imported directly, and flake inputs can be used as paths. And the overlay takes lix argument pointing to path to lix source – at a point where we can compute/build it

So:

  1. Use applyPatches on lix-module.input-lix to apply the fix from gerrit on the actual released lix-module's input, get a patched lix sources
  2. Import lix-module's overlay from path, feed it the patched lix (and a versionSuffix clearly indicating it's altered), get a patchedOverlay
  3. Apply patchedOverlay in the overlay body

Awful, right? Hope this helps!:)

Replacing `lix-module.overlays.default` with this abomination has helped (it evaluates with new `nixpkgs` without errors and without switching to bleeding edge `main`, and builds perfectly fine ~still waiting for an actual updated build – will edit this comment when I confirm with an actual build~): ```nix # lix-module.overlays.default (final: prev: let versionSuffix = "-horribly-patched"; lix = final.applyPatches { name = "lix${versionSuffix}"; src = lix-module.inputs.lix; patches = [ (final.fetchpatch { name = "lix-2.93-structuredAttrs.patch"; url = "https://gerrit.lix.systems/changes/lix~3668/revisions/2/patch?download&raw"; hash = "sha256-JQlAU0texMa7DMrqk447SXJUEu1k4IP9z8mjCHyskVc="; }) ]; }; patchedOverlay = import (lix-module + "/overlay.nix") { inherit versionSuffix lix; }; in patchedOverlay final prev) ``` - overriding `inputs.lix` with `release-2.93` branch doesn't help because the fix is not yet cherry-picked to `release-2.93` (you can see there's no `__structuredAttrs = true;` in `package.nix`) - after recent issues with 2.93 i'm a bit hesitant to switch to bleeding edge `main` and then roll back - it's fifth day i can't apply upgrades and it's making me anxious - the problem is, the derivation doesn't even evaluate – adding the patch to the package won't help (because the problem is in the derivation itself – it's already running when patches are being applied (or, in this case, won't get to this step because it won't even evaluate, let alone start building)). Then I tried to add `__structuredAttrs` with a `overrideAttrs` or `overrideDerivation`, but both need to actually evaluate their input derivation, which fails - there's no "2.93 + fix" branch/pr, and i'm too lazy to fork and keep the fork up to date. It should be possible to somehow hack the upstream released module/overlay, which will apply when upstream updates (or visibly break when no longer needed) - i can't easily patch flake input without actually publishing a patched flake (as i mentioned already, too lazy to fork and branch) - the overlay can be imported directly, and flake inputs can be used as paths. And the overlay takes `lix` argument pointing to path to lix source – at a point where we can compute/build it So: 1. Use `applyPatches` on `lix-module.input-lix` to apply the fix from gerrit on the actual released `lix-module`'s input, get a patched `lix` sources 2. Import `lix-module`'s overlay from path, feed it the patched lix (and a `versionSuffix` clearly indicating it's altered), get a `patchedOverlay` 3. Apply `patchedOverlay` in the overlay body Awful, right? Hope this helps!:)
Owner

That sucks. I've gotten those changes merged so your workaround is now not required; I was kind of dreading doing it due to the-distro/infra#182, but I remembered the workaround and manually triggered CI on the changes that weren't merged due to missing CI, then merged them.

That sucks. I've gotten those changes merged so your workaround is now not required; I was kind of dreading doing it due to https://git.lix.systems/the-distro/infra/issues/182, but I remembered the workaround and manually triggered CI on the changes that weren't merged due to missing CI, then merged them.

Is there a difference between the main branch and release-2.93 I should care about? main branch has been working fine for me so far.

Is there a difference between the main branch and release-2.93 I should care about? main branch has been working fine for me so far.
Owner

Not really, main has obviously more active development which means some newer features and some slightly higher probability of regressions, whereas release-2.93 is to be released officially in O(days).

Not really, main has obviously more active development which means some newer features and some slightly higher probability of regressions, whereas release-2.93 is to be released officially in O(days).
Sign in to join this conversation.
No milestone
No project
No assignees
11 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lix-project/lix#917
No description provided.