serenity icon indicating copy to clipboard operation
serenity copied to clipboard

Toolchain: serenity.nix error: 'xlibsWrapper' has been replaced by its constituents

Open tamara-schmitz opened this issue 1 year ago • 1 comments

On a host installation of NixOS 23.05.457.f0ba8235153, the following error message is displayed when attempting to create a Nix shell based on the provided toolchain .nix. The latest commit inthe master branch was 9e807d7c6a12b67c1278f9ac8c7fe1ffbf92414f.


$ nix-shell --show-trace Toolchain/serenity.nix
error:
       … while evaluating the attribute 'buildInputs' of the derivation 'cpp-env'

       at /nix/var/nix/profiles/per-user/root/channels/nixos/pkgs/stdenv/generic/make-derivation.nix:303:7:

          302|     // (lib.optionalAttrs (attrs ? name || (attrs ? pname && attrs ? version)) {
          303|       name =
             |       ^
          304|         let

       … while evaluating call site

       at «none»:0: (source not available)

       … while calling 'getOutput'

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/attrsets.nix:892:23:

          891|   */
          892|   getOutput = output: pkg:
             |                       ^
          893|     if ! pkg ? outputSpecified || ! pkg.outputSpecified

       … while evaluating call site

       at «none»:0: (source not available)

       … while calling anonymous lambda

       at /nix/var/nix/profiles/per-user/root/channels/nixos/pkgs/stdenv/generic/make-derivation.nix:249:13:

          248|       (map (drv: drv.__spliced.hostHost or drv) (checkDependencyList "depsHostHost" depsHostHost))
          249|       (map (drv: drv.__spliced.hostTarget or drv) (checkDependencyList "buildInputs" buildInputs'))
             |             ^
          250|     ]

       … while evaluating call site

       at «none»:0: (source not available)

       … while calling anonymous lambda

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/lists.nix:117:29:

          116|   */
          117|   imap1 = f: list: genList (n: f (n + 1) (elemAt list n)) (length list);
             |                             ^
          118|

       … while evaluating call site

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/lists.nix:117:32:

          116|   */
          117|   imap1 = f: list: genList (n: f (n + 1) (elemAt list n)) (length list);
             |                                ^
          118|

       … while calling anonymous lambda

       at /nix/var/nix/profiles/per-user/root/channels/nixos/pkgs/stdenv/generic/make-derivation.nix:216:81:

          215|   checkDependencyList = checkDependencyList' [];
          216|   checkDependencyList' = positions: name: deps: lib.flip lib.imap1 deps (index: dep:
             |                                                                                 ^
          217|     if lib.isDerivation dep || dep == null || builtins.typeOf dep == "string" || builtins.typeOf dep == "path" then dep

       … while evaluating call site

       at /nix/var/nix/profiles/per-user/root/channels/nixos/pkgs/stdenv/generic/make-derivation.nix:217:8:

          216|   checkDependencyList' = positions: name: deps: lib.flip lib.imap1 deps (index: dep:
          217|     if lib.isDerivation dep || dep == null || builtins.typeOf dep == "string" || builtins.typeOf dep == "path" then dep
             |        ^
          218|     else if lib.isList dep then checkDependencyList' ([index] ++ positions) name dep

       … while calling 'isDerivation'

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/attrsets.nix:636:5:

          635|     # Value to check.
          636|     value: value.type or null == "derivation";
             |     ^
          637|

       … while evaluating call site

       at «none»:0: (source not available)

       … while calling anonymous lambda

       at /nix/var/nix/profiles/per-user/root/channels/nixos/pkgs/top-level/aliases.nix:44:22:

           43|   mapAliases = aliases:
           44|     lib.mapAttrs (n: alias:
             |                      ^
           45|       removeDistribute

       … while evaluating call site

       at /nix/var/nix/profiles/per-user/root/channels/nixos/pkgs/top-level/aliases.nix:45:7:

           44|     lib.mapAttrs (n: alias:
           45|       removeDistribute
             |       ^
           46|         (removeRecurseForDerivations

       … while calling 'removeDistribute'

       at /nix/var/nix/profiles/per-user/root/channels/nixos/pkgs/top-level/aliases.nix:32:22:

           31|   # sets from building on Hydra.
           32|   removeDistribute = alias: with lib;
             |                      ^
           33|     if isDerivation alias then

       … while evaluating call site

       at /nix/var/nix/profiles/per-user/root/channels/nixos/pkgs/top-level/aliases.nix:33:8:

           32|   removeDistribute = alias: with lib;
           33|     if isDerivation alias then
             |        ^
           34|       dontDistribute alias

       … while calling 'isDerivation'

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/attrsets.nix:636:5:

          635|     # Value to check.
          636|     value: value.type or null == "derivation";
             |     ^
          637|

       … while evaluating call site

       at /nix/var/nix/profiles/per-user/root/channels/nixos/pkgs/top-level/aliases.nix:46:10:

           45|       removeDistribute
           46|         (removeRecurseForDerivations
             |          ^
           47|           (checkInPkgs n alias)))

       … while calling 'removeRecurseForDerivations'

       at /nix/var/nix/profiles/per-user/root/channels/nixos/pkgs/top-level/aliases.nix:25:33:

           24|   # to appear while listing all the packages available.
           25|   removeRecurseForDerivations = alias: with lib;
             |                                 ^
           26|     if alias.recurseForDerivations or false

       … while evaluating call site

       at /nix/var/nix/profiles/per-user/root/channels/nixos/pkgs/top-level/aliases.nix:47:12:

           46|         (removeRecurseForDerivations
           47|           (checkInPkgs n alias)))
             |            ^
           48|       aliases;

       … while calling 'checkInPkgs'

       at /nix/var/nix/profiles/per-user/root/channels/nixos/pkgs/top-level/aliases.nix:38:20:

           37|   # Make sure that we are not shadowing something from all-packages.nix.
           38|   checkInPkgs = n: alias:
             |                    ^
           39|     if builtins.hasAttr n super

       error: 'xlibsWrapper' has been replaced by its constituents

Suggested fix: remove xlibsWrapper from the buildInputs section.

tamara-schmitz avatar Jun 06 '23 19:06 tamara-schmitz

Related: https://github.com/NixOS/nixpkgs/issues/194054

They suggest replacing it with freetype fontconfig xorg.xorgproto xorg.libX11 xorg.libXt xorg.libXft xorg.libXext xorg.libSM xorg.libICE.

While this fixes the Nix error, it results in the following compilation error when ./Meta/serenity.sh run:

ldconfig: Can't open cache file /nix/store/dg8mpqqykmw9c7l0bgzzb5znkymlbfjw-glibc-2.37-8/etc/ld.so.cache
: No such file or directory
audio: Could not init `pa' audio driver
FAILED: CMakeFiles/run /home/engler/tmp/serenity/Build/x86_64/CMakeFiles/run 

cvengler avatar Jun 22 '23 16:06 cvengler