-
-
Notifications
You must be signed in to change notification settings - Fork 14.9k
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
lix_2_92: init at 2.92.0 #375030
base: master
Are you sure you want to change the base?
lix_2_92: init at 2.92.0 #375030
Conversation
This is required in the upcoming release of Lix and will benefit the whole ecosystem of editline dependents. It's already merged upstream and pending a final release. Change-Id: I85fcf283494891c28bb05973bacb83030d942a9a Signed-off-by: Raito Bezarius <[email protected]>
This gives a richer editline for dependents in exchange of a ncurses dependency. This effectively makes editline not a replacement _without_ ncurses. This can be re-obtained at the cost of a conditional or a feature flag matrix like the kernel has. Change-Id: Ic28c815171745e0e1fce2ffb6399f70490b7c359 Signed-off-by: Raito Bezarius <[email protected]>
The Lix team will take maintainership on this one as we are critically dependent on the Cap'n'Proto runtime. Change-Id: Iee99f88fa73540ea91a2ba2825fba1e0b8969a07 Signed-off-by: Raito Bezarius <[email protected]>
This introduces https://lix.systems/blog/2025-01-18-lix-2.92-release/ in nixpkgs. This new release introduces a bunch of changes at the packaging level, reliant on new features of Meson, new features of some of our dependencies which are done in previous commits (editline & capnproto). The approach taken here is that it's OK to add more dependencies than required for older versions but not OK to break them. Moreover, Lix is now load-bearing dependent on the Clang stdenv, it cannot be compiled with GCC anymore. An escape hatch is included but if this escape hatch is used, the user is on its own and should probably work with GCC upstream to fix miscompilations. Change-Id: I4d51831c10e5d56723240b80fcafc9d951aff279 Signed-off-by: Raito Bezarius <[email protected]>
cdd325c
to
cf9b451
Compare
src ? fetchFromGitHub { | ||
owner = "lix-project"; | ||
repo = "lix"; | ||
rev = version; | ||
inherit hash; | ||
inherit hash postFetch; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
will remove postFetch
common { | ||
version = "2.92.0"; | ||
hash = "sha256-vm5Ddu2PFeu/zACE+M/xyT04sfZ4FApvyiUgrZ0BA84="; | ||
docCargoHash = "sha256-waA1VX/xW9Yj+EBcu6bnAXgJN2pNkPfnIuV+cwxozc8="; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
should get rid of this
hash = "sha256-vm5Ddu2PFeu/zACE+M/xyT04sfZ4FApvyiUgrZ0BA84="; | ||
docCargoHash = "sha256-waA1VX/xW9Yj+EBcu6bnAXgJN2pNkPfnIuV+cwxozc8="; | ||
cargoHash = "sha256-YMyNOXdlx0I30SkcmdW/6DU0BYc3ZOa2FMJSKMkr7I8="; | ||
postFetch = '' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
not required anymore
src, | ||
rustPlatform, | ||
version, | ||
cargoHash ? null, | ||
cargoLock ? null, | ||
}: | ||
|
||
let |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
all change of this file should disappear and this file should only be kept for <2.92 compat
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
With Clang being the default/requirement now, it'd probably be a good idea to implement this suggestion from #353576
I think something like the following should work and not affect previous versions. Everything built and tests ran just fine on my end
- (lib.mesonBool "b_lto" (!stdenv.hostPlatform.isStatic && stdenv.cc.isGNU))
+ (lib.mesonBool "b_lto" (!stdenv.hostPlatform.isStatic && (lib.versionAtLeast version "2.92.0" && !stdenv.hostPlatform.isDarwin || stdenv.cc.isGNU)))
pkgsLLVM.lix
should also be fixed after https://gerrit.lix.systems/c/lix/+/2286 (though I still wasn't able to build it since lix-doc
is passing -lgcc_s
to the compiler now for some reason, but applying the patch to previous versions worked)
Edit: Seems I have stumbled into a landmine here. The pkgsLLVM
failures are apparently caused by an upstream Rust bug that we're currently tracking solutions for in #311930; it's nothing to do with Lix. LTO with only Clang should still be good to go, though
Edit 2: Opened #375267 to flag this in rustc itself. Hopefully no one else will need to come across this unintentionally
Last edit: pkgsLLVM.pkgsMusl.lix
works after fixing another include snuck in through glibc. All of LLVM should be fine on Linux
please hold for a lix 2.92.1, we found a critical bug that somehow we didn't manage to hit until after release |
Is there anywhere we can get more information? |
the first bug actually turned out to not affect 2.92.0 but we fixed it. currently blocked on https://git.lix.systems/lix-project/lix/issues/662 |
This brings the required stuff to package Lix 2.92 in Nixpkgs.
https://lix.systems/blog/2025-01-18-lix-2.92-release/
If you want to review this PR, to make it easier on authors, please get involved in Lix release management and do not mindlessly nixpkgs-review or comment on things you do not necessarily understand.
Lix release management QA list