Compile error on newer Lix in libcmd #977

Open
opened 2025-08-22 02:57:49 +00:00 by amyipdev · 2 comments

Describe the bug

Lix fails to build using the hashes published on https://lix.systems/add-to-config/.

Steps To Reproduce

Add the following to Nix config imports:

      (let
        module = fetchTarball {
          name = "source";
          url = "https://git.lix.systems/lix-project/nixos-module/archive/2.93.3-1.tar.gz";
          sha256 = "sha256-KYMUrTV7H/RR5/HRnjV5R3rRIuBXMemyJzTLi50NFTs=";
        };
        lixSrc = fetchTarball {
          name = "source";
          url = "https://git.lix.systems/lix-project/lix/archive/2.93.3.tar.gz";
          sha256 = "sha256-Oqw04eboDM8rrUgAXiT7w5F2uGrQdt8sGX+Mk6mVXZQ=";
        };
        # This is the core of the code you need; it is an exercise to the
        # reader to write the sources in a nicer way, or by using npins or
        # similar pinning tools.
        in import "${module}/module.nix" { lix = lixSrc; }
      )

Then run a regular nixos-build switch --upgrade.

Expected behavior

Lix successfully builds.

Actual behavior

[225/523] Compiling C++ object lix/libcmd/liblixcmd.so.p/markdown.cc.o
FAILED: lix/libcmd/liblixcmd.so.p/markdown.cc.o 
clang++ -Ilix/libcmd/liblixcmd.so.p -Ilix/libcmd -I../lix/libcmd -I. -I.. -Ilix/libutil -Ilix/libstore -Ilix/libexpr -Ilix/libfetchers -fdiagnostics-color=always -D_GLIBCXX_ASSERTIONS=1 -fpch-instantiate-templates -include-pch lix/libcmd/liblixcmd.so.p/precompiled-headers.hh.pch -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -std=c++23 -O2 -g -DLIX_UR_COMPILER_UWU -fpch-instantiate-templates -include lix/config.h -Wno-unused-parameter -Wno-deprecated-declarations -Wno-missing-field-initializers -Wimplicit-fallthrough -Werror=switch -Werror=switch-enum -Werror=unused-result -Wdeprecated-copy -Wignored-qualifiers -Werror=suggest-override -DJSON_DISABLE_ENUM_SERIALIZATION=1 -fsanitize=signed-integer-overflow -fsanitize-undefined-trap-on-error -ffile-prefix-map=../lix=lix -fPIC -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -pthread -DBOOST_CONTAINER_DYN_LINK=1 -DBOOST_ALL_NO_LIB -MD -MQ lix/libcmd/liblixcmd.so.p/markdown.cc.o -MF lix/libcmd/liblixcmd.so.p/markdown.cc.o.d -o lix/libcmd/liblixcmd.so.p/markdown.cc.o -c ../lix/libcmd/markdown.cc
../lix/libcmd/markdown.cc:18:10: error: field designator 'cols' does not refer to any field in type 'struct lowdown_opts'
   18 |         .cols = (size_t) std::max(windowWidth - 5, 60),
      |         ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../lix/libcmd/markdown.cc:19:10: error: field designator 'hmargin' does not refer to any field in type 'struct lowdown_opts'
   19 |         .hmargin = 0,
      |         ~^~~~~~~~~~~
../lix/libcmd/markdown.cc:20:10: error: field designator 'vmargin' does not refer to any field in type 'struct lowdown_opts'
   20 |         .vmargin = 0,
      |         ~^~~~~~~~~~~

nix --version output

nix (Lix, like Nix) 2.91.1

Additional context

I can't rebuild 2.91.1, 2.92.0-3, or 2.93.0 because of the following error:

error: separateDebugInfo = true in lix requires __structuredAttrs if {dis,}allowedRequisites or {dis,}allowedReferences is set
## Describe the bug Lix fails to build using the hashes published on https://lix.systems/add-to-config/. ## Steps To Reproduce Add the following to Nix config imports: ```nix (let module = fetchTarball { name = "source"; url = "https://git.lix.systems/lix-project/nixos-module/archive/2.93.3-1.tar.gz"; sha256 = "sha256-KYMUrTV7H/RR5/HRnjV5R3rRIuBXMemyJzTLi50NFTs="; }; lixSrc = fetchTarball { name = "source"; url = "https://git.lix.systems/lix-project/lix/archive/2.93.3.tar.gz"; sha256 = "sha256-Oqw04eboDM8rrUgAXiT7w5F2uGrQdt8sGX+Mk6mVXZQ="; }; # This is the core of the code you need; it is an exercise to the # reader to write the sources in a nicer way, or by using npins or # similar pinning tools. in import "${module}/module.nix" { lix = lixSrc; } ) ``` Then run a regular `nixos-build switch --upgrade`. ## Expected behavior Lix successfully builds. ## Actual behavior ```cpp [225/523] Compiling C++ object lix/libcmd/liblixcmd.so.p/markdown.cc.o FAILED: lix/libcmd/liblixcmd.so.p/markdown.cc.o clang++ -Ilix/libcmd/liblixcmd.so.p -Ilix/libcmd -I../lix/libcmd -I. -I.. -Ilix/libutil -Ilix/libstore -Ilix/libexpr -Ilix/libfetchers -fdiagnostics-color=always -D_GLIBCXX_ASSERTIONS=1 -fpch-instantiate-templates -include-pch lix/libcmd/liblixcmd.so.p/precompiled-headers.hh.pch -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -std=c++23 -O2 -g -DLIX_UR_COMPILER_UWU -fpch-instantiate-templates -include lix/config.h -Wno-unused-parameter -Wno-deprecated-declarations -Wno-missing-field-initializers -Wimplicit-fallthrough -Werror=switch -Werror=switch-enum -Werror=unused-result -Wdeprecated-copy -Wignored-qualifiers -Werror=suggest-override -DJSON_DISABLE_ENUM_SERIALIZATION=1 -fsanitize=signed-integer-overflow -fsanitize-undefined-trap-on-error -ffile-prefix-map=../lix=lix -fPIC -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -pthread -DBOOST_CONTAINER_DYN_LINK=1 -DBOOST_ALL_NO_LIB -MD -MQ lix/libcmd/liblixcmd.so.p/markdown.cc.o -MF lix/libcmd/liblixcmd.so.p/markdown.cc.o.d -o lix/libcmd/liblixcmd.so.p/markdown.cc.o -c ../lix/libcmd/markdown.cc ../lix/libcmd/markdown.cc:18:10: error: field designator 'cols' does not refer to any field in type 'struct lowdown_opts' 18 | .cols = (size_t) std::max(windowWidth - 5, 60), | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../lix/libcmd/markdown.cc:19:10: error: field designator 'hmargin' does not refer to any field in type 'struct lowdown_opts' 19 | .hmargin = 0, | ~^~~~~~~~~~~ ../lix/libcmd/markdown.cc:20:10: error: field designator 'vmargin' does not refer to any field in type 'struct lowdown_opts' 20 | .vmargin = 0, | ~^~~~~~~~~~~ ``` ## `nix --version` output `nix (Lix, like Nix) 2.91.1` ## Additional context I can't rebuild 2.91.1, 2.92.0-3, or 2.93.0 because of the following error: ```nix error: separateDebugInfo = true in lix requires __structuredAttrs if {dis,}allowedRequisites or {dis,}allowedReferences is set ```
Owner

this is a duplicate of .. something, the root cause of this bug is nixpkgs breakages causing burnout that causes not releasing a 2.93.4 with fixes that are already in a branch. please use nixosModules.lixFromNixpkgs or switch both module and lix to release-2.93 or use the running main guide at wiki.lix.systems.

this is a duplicate of .. something, the root cause of this bug is nixpkgs breakages causing burnout that causes not releasing a 2.93.4 with fixes that are already in a branch. please use nixosModules.lixFromNixpkgs or switch both module and lix to release-2.93 or use the running main guide at wiki.lix.systems.
Owner

see lix-project/nixos-module#61 for fixing the burnout inducing urgent releases problem

see https://git.lix.systems/lix-project/nixos-module/issues/61 for fixing the burnout inducing urgent releases problem
Sign in to join this conversation.
No milestone
No project
No assignees
2 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#977
No description provided.