Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: attempt to add Claude Desktop, but failing #10

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

GregHilston
Copy link
Owner

@GregHilston GregHilston commented Jan 11, 2025

We we're following the documentation detailed here.

I'm aware that the documentation details leveraging NIXPGS_ALLOW_UNFREE, however I thought that our usage of allowUnfree both in modules/common/default.nix and modules/home/defualt.nix would mean we weouldn't have to do anything else... It seems like our allowUnfree is not being plumbed
correctly...

We're experiencing the following error when attempting to deploy these configuration changes:

just deploy foundation
sudo nixos-rebuild switch --flake .#foundation
warning: Git tree '/home/ghilston/Git/toolbox' is dirty
warning: updating lock file '/home/ghilston/Git/toolbox/nixos/flake.lock':
• Added input 'claude-desktop':
    'github:k3d3/claude-desktop-linux-flake/722b1c5ffe427dfc1473e4dd371796cffddc2d6b?narHash=sha256-cg8hkvtb%2B7RfhHI%2B2KTYAHU9uxJr83rrANQ1IWpK00M%3D' (2024-12-24)
• Added input 'claude-desktop/flake-utils':
    follows 'flake-utils'
• Added input 'claude-desktop/nixpkgs':
    follows 'nixpkgs'
• Added input 'flake-utils':
    'github:numtide/flake-utils/11707dc2f618dd54ca8739b309ec4fc024de578b?narHash=sha256-l0KFg5HjrsfsO/JpG%2Br7fRrqm12kzFHyUHqHCVpMMbI%3D' (2024-11-13)
• Added input 'flake-utils/systems':
    'github:nix-systems/default/da67096a3b9bf56a91d16901293e51ba5b49a27e?narHash=sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768%3D' (2023-04-09)
warning: Git tree '/home/ghilston/Git/toolbox' is dirty
evaluation warning: nur.overlay has been replaced by nur.overlays.default
building the system configuration...
warning: Git tree '/home/ghilston/Git/toolbox' is dirty
evaluation warning: nur.overlay has been replaced by nur.overlays.default
error:
       … while calling the 'head' builtin
         at /nix/store/6zgbbqlr7nnfxpzkyj7fsl4fpg89jbw0-source/lib/attrsets.nix:1574:11:
         1573|         || pred here (elemAt values 1) (head values) then
         1574|           head values
             |           ^
         1575|         elsewhile evaluating the attribute 'value'
         at /nix/store/6zgbbqlr7nnfxpzkyj7fsl4fpg89jbw0-source/lib/modules.nix:846:9:
          845|     in warnDeprecation opt //
          846|       { value = addErrorContext "while evaluating the option `${showOption loc}':" value;
             |         ^
          847|         inherit (res.defsFinal') highestPrio;

while evaluating the option `system.build.toplevel':

       … while evaluating definitions from `/nix/store/6zgbbqlr7nnfxpzkyj7fsl4fpg89jbw0-source/nixos/modules/system/activation/top-level.nix':

while evaluating the option `warnings':

       … while evaluating definitions from `/nix/store/6zgbbqlr7nnfxpzkyj7fsl4fpg89jbw0-source/nixos/modules/system/boot/systemd.nix':

while evaluating the option `systemd.services.home-manager-ghilston.serviceConfig':

       … while evaluating definitions from `/nix/store/6zgbbqlr7nnfxpzkyj7fsl4fpg89jbw0-source/flake.nix':

while evaluating the option `home-manager.users.ghilston.home.file."/home/ghilston/.config/fontconfig/conf.d/10-hm-fonts.conf".source':

       … while evaluating definitions from `/nix/store/mdzxa36ixdm9g8yli9h73izv3kpj7xjq-source/modules/files.nix':

while evaluating the option `home-manager.users.ghilston.home.file."/home/ghilston/.config/fontconfig/conf.d/10-hm-fonts.conf".text':

       … while evaluating definitions from `/nix/store/mdzxa36ixdm9g8yli9h73izv3kpj7xjq-source/modules/misc/xdg.nix':

while evaluating the option `home-manager.users.ghilston.xdg.configFile."fontconfig/conf.d/10-hm-fonts.conf".text':

       … while evaluating definitions from `/nix/store/mdzxa36ixdm9g8yli9h73izv3kpj7xjq-source/modules/misc/fontconfig.nix':

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

       error: Package ‘claude-desktop-0.7.7’ in /nix/store/al4vmxx16ki3dq4yn8dwjxyby73dxnvv-source/pkgs/claude-desktop.nix:128 has an unfree license (‘unfree’), refusing to evaluate.

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

            $ export NIXPKGS_ALLOW_UNFREE=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.allowUnfree = true; }
       in configuration.nix to override this.

       Alternatively you can configure a predicate to allow specific packages:
         { nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
             "claude-desktop"
           ];
         }

       c) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
         { allowUnfree = true; }
       to ~/.config/nixpkgs/config.nix.
error: Recipe `deploy` failed on line 4 with exit code 1

I've gone down a free rabbit holes trying to resolve this, but have not made any additional progress figuring out what I'm doing wrong...

We we're following the documentation detailed [here](https://github.com/k3d3/claude-desktop-linux-flake?tab=readme-ov-file#installation-on-nixos-with-flakes).

I'm aware that the documentation details leveraging
`NIXPGS_ALLOW_UNFREE`, however I thought that our usage of
`allowUnfree` both in `modules/common/default.nix` and
`modules/home/defualt.nix` would mean we weouldn't have to do anything
else... It seems like our `allowUnfree` is not being plumbed
  correctly...

We're experiencing the following error when attempting to deploy these
configuration changes:

```
just deploy foundation
sudo nixos-rebuild switch --flake .#foundation
warning: Git tree '/home/ghilston/Git/toolbox' is dirty
warning: updating lock file '/home/ghilston/Git/toolbox/nixos/flake.lock':
• Added input 'claude-desktop':
    'github:k3d3/claude-desktop-linux-flake/722b1c5ffe427dfc1473e4dd371796cffddc2d6b?narHash=sha256-cg8hkvtb%2B7RfhHI%2B2KTYAHU9uxJr83rrANQ1IWpK00M%3D' (2024-12-24)
• Added input 'claude-desktop/flake-utils':
    follows 'flake-utils'
• Added input 'claude-desktop/nixpkgs':
    follows 'nixpkgs'
• Added input 'flake-utils':
    'github:numtide/flake-utils/11707dc2f618dd54ca8739b309ec4fc024de578b?narHash=sha256-l0KFg5HjrsfsO/JpG%2Br7fRrqm12kzFHyUHqHCVpMMbI%3D' (2024-11-13)
• Added input 'flake-utils/systems':
    'github:nix-systems/default/da67096a3b9bf56a91d16901293e51ba5b49a27e?narHash=sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768%3D' (2023-04-09)
warning: Git tree '/home/ghilston/Git/toolbox' is dirty
evaluation warning: nur.overlay has been replaced by nur.overlays.default
building the system configuration...
warning: Git tree '/home/ghilston/Git/toolbox' is dirty
evaluation warning: nur.overlay has been replaced by nur.overlays.default
error:
       … while calling the 'head' builtin
         at /nix/store/6zgbbqlr7nnfxpzkyj7fsl4fpg89jbw0-source/lib/attrsets.nix:1574:11:
         1573|         || pred here (elemAt values 1) (head values) then
         1574|           head values
             |           ^
         1575|         else

       … while evaluating the attribute 'value'
         at /nix/store/6zgbbqlr7nnfxpzkyj7fsl4fpg89jbw0-source/lib/modules.nix:846:9:
          845|     in warnDeprecation opt //
          846|       { value = addErrorContext "while evaluating the option `${showOption loc}':" value;
             |         ^
          847|         inherit (res.defsFinal') highestPrio;

       … while evaluating the option `system.build.toplevel':

       … while evaluating definitions from `/nix/store/6zgbbqlr7nnfxpzkyj7fsl4fpg89jbw0-source/nixos/modules/system/activation/top-level.nix':

       … while evaluating the option `warnings':

       … while evaluating definitions from `/nix/store/6zgbbqlr7nnfxpzkyj7fsl4fpg89jbw0-source/nixos/modules/system/boot/systemd.nix':

       … while evaluating the option `systemd.services.home-manager-ghilston.serviceConfig':

       … while evaluating definitions from `/nix/store/6zgbbqlr7nnfxpzkyj7fsl4fpg89jbw0-source/flake.nix':

       … while evaluating the option `home-manager.users.ghilston.home.file."/home/ghilston/.config/fontconfig/conf.d/10-hm-fonts.conf".source':

       … while evaluating definitions from `/nix/store/mdzxa36ixdm9g8yli9h73izv3kpj7xjq-source/modules/files.nix':

       … while evaluating the option `home-manager.users.ghilston.home.file."/home/ghilston/.config/fontconfig/conf.d/10-hm-fonts.conf".text':

       … while evaluating definitions from `/nix/store/mdzxa36ixdm9g8yli9h73izv3kpj7xjq-source/modules/misc/xdg.nix':

       … while evaluating the option `home-manager.users.ghilston.xdg.configFile."fontconfig/conf.d/10-hm-fonts.conf".text':

       … while evaluating definitions from `/nix/store/mdzxa36ixdm9g8yli9h73izv3kpj7xjq-source/modules/misc/fontconfig.nix':

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

       error: Package ‘claude-desktop-0.7.7’ in /nix/store/al4vmxx16ki3dq4yn8dwjxyby73dxnvv-source/pkgs/claude-desktop.nix:128 has an unfree license (‘unfree’), refusing to evaluate.

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

            $ export NIXPKGS_ALLOW_UNFREE=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.allowUnfree = true; }
       in configuration.nix to override this.

       Alternatively you can configure a predicate to allow specific packages:
         { nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
             "claude-desktop"
           ];
         }

       c) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
         { allowUnfree = true; }
       to ~/.config/nixpkgs/config.nix.
error: Recipe `deploy` failed on line 4 with exit code 1
```
@GregHilston GregHilston self-assigned this Jan 11, 2025
current error:

```
$ just deploy foundation
NIXPKGS_ALLOW_INSECURE=1 NIXPKGS_ALLOW_UNFREE=1 sudo -E nixos-rebuild switch --flake .#foundation --impure
warning: $HOME ('/home/ghilston') is not owned by you, falling back to the one defined in the 'passwd' file ('/root')
warning: Git tree '/home/ghilston/Git/toolbox' is dirty
evaluation warning: nur.overlay has been replaced by nur.overlays.default
building the system configuration...
warning: $HOME ('/home/ghilston') is not owned by you, falling back to the one defined in the 'passwd' file ('/root')
warning: Git tree '/home/ghilston/Git/toolbox' is dirty
evaluation warning: nur.overlay has been replaced by nur.overlays.default
evaluation warning: ghilston profile: You are using

                      Home Manager version 24.11 and
                      Nixpkgs version 25.05.

                    Using mismatched versions is likely to cause errors and unexpected
                    behavior. It is therefore highly recommended to use a release of Home
                    Manager that corresponds with your chosen release of Nixpkgs.

                    If you insist then you can disable this warning by adding

                      home.enableNixpkgsReleaseCheck = false;

                    to your configuration.
[4/0/34 built, 9/9/28 copied (11.3/491.5 MiB), 2.7/111.4 MiB DL] building crate-napi-derive-2.16.13.tar.gzwarning: $HOME ('/home/ghilston') is not owned by you, falling back to the one defined in the 'passwd' file ('/root')
error: hash mismatch in fixed-output derivation '/nix/store/5hdsbgr6idacqvi86nbg3yb3cq4ga4vv-Claude-Setup-x64.exe.drv':
         specified: sha256-kzuvh0wl/saZlBHnpL0/EZItjsPpiX4kYrsd89A1sQo=
            got:    sha256-SOO1FkAfcOP50Z4YPyrrpSIi322gQdy9vk0CKdYjMwA=
error: 1 dependencies of derivation '/nix/store/jpz65h4y63vfbp32jxbw95n5s3vzjp4a-claude-desktop-0.7.7.drv' failed to build
error: 1 dependencies of derivation '/nix/store/jgq7r98bkyqhyrgs9fz67571fs794wpg-home-manager-path.drv' failed to build
error: 1 dependencies of derivation '/nix/store/4q62wgq1v2mjnyp5h72haq6yh0mxrpz3-home-manager-generation.drv' failed to build
error: 1 dependencies of derivation '/nix/store/mf0pqhgf7blaj8rilir15wah42l8cx86-user-environment.drv' failed to build
error: 1 dependencies of derivation '/nix/store/d4rfsfsif8l3v0ga89vxppcgm1iw7ndc-etc.drv' failed to build
error: 1 dependencies of derivation '/nix/store/kcmasyilil7x8n6v8g2qrwpbyf6ngcda-nixos-system-foundation-25.05.20241217.d3c42f1.drv' failed to build
error: Recipe `deploy` failed on line 4 with exit code 1
```
I ran into a hash mismatch, and found this PR which led me to the
nonsleepr fork, which fixed my issue:

k3d3/claude-desktop-linux-flake#5 (comment)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant