nix-community / kde2nix

Provisional, experimental Plasma 6 (and friends) pre-release packaging [maintainer=@K900]
MIT License
67 stars 6 forks source link

error while building #11

Closed dp0sk closed 7 months ago

dp0sk commented 7 months ago
$ sudo nixos-rebuild boot

building the system configuration...
error:
       … while calling the 'head' builtin

         at /nix/store/9lriws7wmqqbz1x1hnv4nanbmmqhkfq8-source/lib/attrsets.nix:850:11:

          849|         || pred here (elemAt values 1) (head values) then
          850|           head values
             |           ^
          851|         else

       … while evaluating the attribute 'value'

         at /nix/store/9lriws7wmqqbz1x1hnv4nanbmmqhkfq8-source/lib/modules.nix:807:9:

          806|     in warnDeprecation opt //
          807|       { value = builtins.addErrorContext "while evaluating the option `${showOption loc}':" value;
             |         ^
          808|         inherit (res.defsFinal') highestPrio;

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

       error: attribute 'qca' missing

       at /nix/store/9ipjsm1a9r9cmr58yndmpdr74v2khp2d-source/pkgs/kde/lib/mk-kde-derivation.nix:14:34:

           13|   alwaysNativeBuildInputs = ["extra-cmake-modules"];
           14|   pluckDeps = builtins.map (dep: self.${dep});
             |                                  ^
           15|
K900 commented 7 months ago

Did you override the nixpkgs input on the flake? Don't do that, it uses a special branch.

dp0sk commented 7 months ago

Oh damn, sorry, that's my bad.

Now another error:

$ sudo nixos-rebuild boot --impure

error:
       … while calling the 'head' builtin

         at /nix/store/9lriws7wmqqbz1x1hnv4nanbmmqhkfq8-source/lib/attrsets.nix:850:11:

          849|         || pred here (elemAt values 1) (head values) then
          850|           head values
             |           ^
          851|         else

       … while evaluating the attribute 'value'

         at /nix/store/9lriws7wmqqbz1x1hnv4nanbmmqhkfq8-source/lib/modules.nix:807:9:

          806|     in warnDeprecation opt //
          807|       { value = builtins.addErrorContext "while evaluating the option `${showOption loc}':" value;
             |         ^
          808|         inherit (res.defsFinal') highestPrio;

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

       error: Package ‘colord-kde-24.01.75’ in /nix/store/9ipjsm1a9r9cmr58yndmpdr74v2khp2d-source/pkgs/kde/lib/mk-kde-derivation.nix:53 is marked as broken, refusing to evaluate.

       a) To temporarily allow broken packages, you can use an environment variable
          for a single invocation of the nix tools.

            $ export NIXPKGS_ALLOW_BROKEN=1

          Note: When using `nix shell`, `nix build`, `nix develop`, etc with a flake,
                then pass `--impure` in order to allow use of environment variables.

       b) For `nixos-rebuild` you can set
         { nixpkgs.config.allowBroken = true; }
       in configuration.nix to override this.

       c) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
         { allowBroken = true; }
       to ~/.config/nixpkgs/config.nix.

nixpkgs.config.allowBroken = true; is enabled. I'm kinda newbie...

K900 commented 7 months ago

Disable color management for now, it's not buildable.

K900 commented 7 months ago

I just disabled it on master.

dp0sk commented 7 months ago

Thank You! Now it's building and build seems to be successful But after all, it's my first time to build a third-party environment in Nix. Can You tell me how can I disable packages from your plasma6 in Nix configuration? I tried, but my configuration doesn't work.

  services = {
    xserver = {
      desktopManager.plasma6.enable = true;
    };
  };

  environment.plasma6.excludePackages = with pkgs;
  [
    colord-kde
  ];
K900 commented 7 months ago

That wouldn't have worked anyway due to how the module is structured, but generally you can use package names, e.g. environment.plasma6.excludePackages = ["colord-kde"]

jansol commented 7 months ago

I got the impression upstream wants to get rid of colord-kde anyway? Now that you can just set ICC profiles directly through kscreen-doctor or the display configuration settings module.

hatch01 commented 7 months ago

Did you override the nixpkgs input on the flake? Don't do that, it uses a special branch.

How could I override it ?

K900 commented 7 months ago

Please don't do that.

hatch01 commented 7 months ago

Ok but I get the same issue as him:

error:
       … while calling the 'head' builtin

         at /nix/store/cjvwy2rr87ir1nb6wvs9n6lvbnzlqrdg-source/lib/attrsets.nix:864:11:

          863|         || pred here (elemAt values 1) (head values) then
          864|           head values
             |           ^
          865|         else

       … while evaluating the attribute 'value'

         at /nix/store/cjvwy2rr87ir1nb6wvs9n6lvbnzlqrdg-source/lib/modules.nix:807:9:

          806|     in warnDeprecation opt //
          807|       { value = builtins.addErrorContext "while evaluating the option `${showOption loc}':" value;
             |         ^
          808|         inherit (res.defsFinal') highestPrio;

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

       error: attribute 'sddm' missing

       at /nix/store/ns4h7d95pasdsb0q26pxd92dpmaq6ya1-source/nixos/plasma6.nix:271:18:

          270|         libsForQt5 = prev.libsForQt5.overrideScope (_: __: {
          271|           sddm = kdePackages.sddm.overrideAttrs (old: {
             |                  ^
          272|             buildInputs = old.buildInputs ++ (with kdePackages; [kirigami qtsvg ksvg plasma5support qt5compat breeze-icons]);
K900 commented 7 months ago

Can you post your flake's inputs block?

hatch01 commented 7 months ago

here is my complete flake

{
  description = "Eymeric's NixOS Flake";

  nixConfig = {
    experimental-features = [ "nix-command" "flakes" ];
    substituters = [
      "https://cache.nixos.org/"
    ];

    extra-substituters = [
      # Nix community's cache server
      "https://nix-community.cachix.org"
    ];
    extra-trusted-public-keys = [
      "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
    ];
  };

  inputs = {
    # Official NixOS package source, using nixos-unstable branch here
    nixpkgs.url = "nixpkgs/nixos-unstable";

    # home-manager, used for managing user configuration
    home-manager = {
      url = "github:nix-community/home-manager";
      inputs.nixpkgs.follows = "nixpkgs";
    };
    flatpaks.url = "github:gmodena/nix-flatpak/?ref=v0.1.0";
    kde2nix.url = "github:nix-community/kde2nix";
    kde2nix.inputs.nixpkgs.follows = "nixpkgs";
  };
  outputs = { self, nixpkgs, home-manager, flatpaks, kde2nix, ... }@inputs:
  let
    system = "x86_64-linux";
    pkgs = nixpkgs.legacyPackages.${system};
  in {
    nixosConfigurations = {
      nixos-eymeric = nixpkgs.lib.nixosSystem {
        inherit system;
        modules = [
          ./system/configuration.nix
          kde2nix.nixosModules.plasma6
          home-manager.nixosModules.home-manager
          {
            home-manager.useGlobalPkgs = true;
            home-manager.useUserPackages = true;
            home-manager.extraSpecialArgs.flake-inputs = inputs;
            home-manager.users.eymeric = import ./home.nix;
          }
        ];
      };
    };
  };
}
K900 commented 7 months ago

Remove kde2nix.inputs.nixpkgs.follows = "nixpkgs";

hatch01 commented 7 months ago

Thank you so much, it works! Maybe adding an example flake.nix could help next peoples?