diff options
author | jade <lix@jade.fyi> | 2024-05-23 23:19:28 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@lix-systems> | 2024-05-23 23:19:28 +0000 |
commit | 9530b7f2b2b653fc11753ce452636896350324ff (patch) | |
tree | 837593bceacff5f2760594c5a115242ec63ddca9 /doc/manual/rl-next | |
parent | 677cf75473d0dd86119c4535d8733a6a0b1100c0 (diff) | |
parent | c97e17144e0d0b666d7b79d8b4b0d581bfdf373b (diff) |
Merge "packaging: rename nixexpr -> lixexpr and so on" into main
Diffstat (limited to 'doc/manual/rl-next')
-rw-r--r-- | doc/manual/rl-next/rename-lixexpr.md | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/doc/manual/rl-next/rename-lixexpr.md b/doc/manual/rl-next/rename-lixexpr.md new file mode 100644 index 000000000..698553c7f --- /dev/null +++ b/doc/manual/rl-next/rename-lixexpr.md @@ -0,0 +1,31 @@ +--- +synopsis: Rename all the libraries nixexpr, nixstore, etc to lixexpr, lixstore, etc +credits: jade +category: Breaking Changes +--- + +The Lix C++ API libraries have had the following changes: +- Includes moved from `include/nix/` to `include/lix/` +- `pkg-config` files renamed from `nix-expr` to `lix-expr` and so on. +- Libraries renamed from `libnixexpr.so` to `liblixexpr.so` and so on. + +There are other changes between Nix 2.18 and Lix, since these APIs are not +stable. However, this change in particular is a deliberate compatibility break +to force downstreams linking to Lix to specifically handle Lix and avoid Lix +accidentally getting ensnared in compatibility code for newer CppNix. + +Migration path: + +- expr.hh -> lix/libexpr/expr.hh +- nix/config.h -> lix/config.h + +To apply this migration automatically, remove all `<nix/>` from includes, so `#include <nix/expr.hh>` -> `#include <expr.hh>`. +Then, the correct paths will be resolved from the tangled mess, and the clang-tidy automated fix will work. + +Then run the following for out of tree projects: + +```console +lix_root=$HOME/lix +(cd $lix_root/clang-tidy && nix develop -c 'meson setup build && ninja -C build') +run-clang-tidy -checks='-*,lix-fixincludes' -load=$lix_root/clang-tidy/build/liblix-clang-tidy.so -p build/ -fix src +``` |