Compare commits

..

14 commits
main ... main

Author SHA1 Message Date
c374ebf554 update n-e-j 2024-12-06 13:56:53 -08:00
15b999f9c9 Merge commit '60edaab' into HEAD
Closes: lix-project/nixos-module#46
2024-11-25 22:48:18 -08:00
60edaab1ce add nixd and nixt to flake checks 2024-11-25 22:47:55 -08:00
c3f53365ce
upd8 nix-eval-jobs 2024-11-25 16:35:44 -05:00
d36f053070
fix: add nixd and its dependency to overridelist 2024-11-20 12:51:02 +01:00
aa2846680f Update n-e-j 2024-11-18 14:01:14 -08:00
6391b9f659 nix-doc hacks: remove
Not required anymore :3
2024-11-18 13:05:18 -08:00
691193879d update nix-eval-jobs to fix its build
Also updates the validation versions of nixpkgs and lix.
2024-11-09 12:55:31 -08:00
fd186f535a Merge pull request 'overlay: fix bug where prev should have been final' (#38) from fabianhjr/nixos-module:fix-bug-between-prev-final into main
Reviewed-on: lix-project/nixos-module#38
2024-10-01 03:21:01 +00:00
81d9ff97c9 overlay: fix bug where prev should have been final 2024-09-30 18:51:33 -06:00
7dd3d652a3 Fix up the flake checks 2024-09-30 13:49:18 -07:00
ca0cc16273 Merge pull request #37 into main
Closes lix-project/nixos-module#37
2024-09-30 13:35:21 -07:00
bb51b2d161 jade revision pass 2024-09-30 13:34:26 -07:00
b3457b78ac overlay: make finalNix depend on the nix version being used by a package
This should address both of the following (were 35 is more general and
36 a specific case)

- lix-project/nixos-module#35
- lix-project/nixos-module#36
2024-09-26 17:54:28 -06:00
5 changed files with 48 additions and 87 deletions

View file

@ -5,11 +5,11 @@
"systems": "systems" "systems": "systems"
}, },
"locked": { "locked": {
"lastModified": 1726560853, "lastModified": 1731533236,
"narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=", "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide", "owner": "numtide",
"repo": "flake-utils", "repo": "flake-utils",
"rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a", "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -36,11 +36,11 @@
"lix": { "lix": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1726590994, "lastModified": 1733448312,
"narHash": "sha256-CrvIEzBzvvfE7jGIXBv6hSYDxv4eYeHWAwVho5WrF48=", "narHash": "sha256-id5U81bzXk/Lg900nGLM4CQb0wmTdzIvQz7CZk2OcTM=",
"rev": "8ab5743904a06c78153281bf61b3aa8aa451a489", "rev": "2a9e560570982a91937d199af3e7b7a8f3cbe14b",
"type": "tarball", "type": "tarball",
"url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/8ab5743904a06c78153281bf61b3aa8aa451a489.tar.gz?rev=8ab5743904a06c78153281bf61b3aa8aa451a489" "url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/2a9e560570982a91937d199af3e7b7a8f3cbe14b.tar.gz?rev=2a9e560570982a91937d199af3e7b7a8f3cbe14b"
}, },
"original": { "original": {
"type": "tarball", "type": "tarball",
@ -49,11 +49,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1726463316, "lastModified": 1733392399,
"narHash": "sha256-gI9kkaH0ZjakJOKrdjaI/VbaMEo9qBbSUl93DnU7f4c=", "narHash": "sha256-kEsTJTUQfQFIJOcLYFt/RvNxIK653ZkTBIs4DG+cBns=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "99dc8785f6a0adac95f5e2ab05cc2e1bf666d172", "rev": "d0797a04b81caeae77bcff10a9dde78bc17f5661",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -47,7 +47,7 @@
{ {
inherit pkgs; inherit pkgs;
packages = { packages = {
default = pkgs.nixVersions.nix_2_18; default = pkgs.nix;
inherit (pkgs) nix-doc nix-eval-jobs; inherit (pkgs) nix-doc nix-eval-jobs;
}; };
@ -57,6 +57,7 @@
checks = { checks = {
inherit (self.packages.${system}) default nix-eval-jobs; inherit (self.packages.${system}) default nix-eval-jobs;
inherit (pkgs) nixos-option nix-doc nixd nixt;
} // lib.optionalAttrs (lib.elem system linux64BitSystems) { } // lib.optionalAttrs (lib.elem system linux64BitSystems) {
# wrongMajor intentionally not included here since it is expected to fail # wrongMajor intentionally not included here since it is expected to fail
inherit (self.nixosTests.${system}) it-builds; inherit (self.nixosTests.${system}) it-builds;

View file

@ -1,64 +0,0 @@
# Temporary replacement of the nix-doc package with
# https://github.com/NixOS/nixpkgs/pull/296523 so that we can have working Lix
# with nix-doc on 23.11 and 24.05-pre
#
# Can be removed when that commit is in 23.11 and 24.05-pre, or 24.05 is
# released with the commit.
{ lib
, stdenv
, rustPlatform
, fetchFromGitHub
, boost
, nix
, pkg-config
# Whether to build the nix-doc plugin for Nix
, withPlugin ? true
}:
let
packageFlags = [ "-p" "nix-doc" ] ++ lib.optionals withPlugin [ "-p" "nix-doc-plugin" ];
in
rustPlatform.buildRustPackage rec {
pname = "nix-doc";
version = "0.6.5";
src = fetchFromGitHub {
rev = "v${version}";
owner = "lf-";
repo = "nix-doc";
sha256 = "sha256-9cuNzq+CBA2jz0LkZb7lh/WISIlKklfovGBAbSo1Mgk=";
};
doCheck = true;
buildInputs = lib.optionals withPlugin [ boost nix ];
nativeBuildInputs = lib.optionals withPlugin [ pkg-config nix ];
cargoBuildFlags = packageFlags;
cargoTestFlags = packageFlags;
# Packaging support for making the nix-doc plugin load cleanly as a no-op on
# the wrong Nix version (disabling bindnow permits loading libraries
# requiring unavailable symbols if they are unreached)
hardeningDisable = lib.optionals withPlugin [ "bindnow" ];
# Due to a Rust bug, setting -Z relro-level to anything including "off" on
# macOS will cause link errors
env = lib.optionalAttrs (withPlugin && stdenv.isLinux) {
# nix-doc does not use nightly features, however, there is no other way to
# set relro-level
RUSTC_BOOTSTRAP = 1;
RUSTFLAGS = "-Z relro-level=partial";
};
cargoSha256 = "sha256-CHagzXTG9AfrFd3WmHanQ+YddMgmVxSuB8vK98A1Mlw=";
meta = with lib; {
description = "An interactive Nix documentation tool";
longDescription = "An interactive Nix documentation tool providing a CLI for function search, a Nix plugin for docs in the REPL, and a ctags implementation for Nix script";
homepage = "https://github.com/lf-/nix-doc";
license = licenses.lgpl3Plus;
maintainers = [ maintainers.lf- ];
platforms = platforms.unix;
mainProgram = "nix-doc";
};
}

View file

@ -1,23 +1,22 @@
{ lix, versionSuffix ? "" }: { lix, versionSuffix ? "" }:
final: prev: final: prev:
let let
# This is kind of scary to not override the nix version to pretend to be
# 2.18 since nixpkgs can introduce new breakage in its Nix unstable CLI
# usage.
# https://github.com/nixos/nixpkgs/blob/6afb255d976f85f3359e4929abd6f5149c323a02/nixos/modules/config/nix.nix#L121
lixPackageFromSource = final.callPackage (lix + "/package.nix") ({ lixPackageFromSource = final.callPackage (lix + "/package.nix") ({
inherit versionSuffix; inherit versionSuffix;
stdenv = final.clangStdenv; stdenv = final.clangStdenv;
}); });
# These packages depend on Nix features that Lix does not support # These packages should receive CppNix since they may link to it or otherwise
# cause problems (or even just silly mass-rebuilds) if we give them Lix
overridelist_upstream = [ overridelist_upstream = [
"attic-client" "attic-client"
"devenv" "devenv"
"nix-du" "nix-du"
"nix-init" "nix-init"
"nix-prefetch-git" "nix-prefetch-git"
"nixd"
"nixos-option" "nixos-option"
"nixt"
"nurl" "nurl"
"prefetch-yarn-deps" # force these onto upstream so we are not regularly rebuilding electron "prefetch-yarn-deps" # force these onto upstream so we are not regularly rebuilding electron
]; ];
@ -60,12 +59,37 @@ let
# errors. This is a simple safeguard to put in at least something that might be seen. # errors. This is a simple safeguard to put in at least something that might be seen.
maybeWarnWrongMajor = x: if !(lib.hasPrefix supportedLixMajor lixPackageToUse.version) then builtins.trace wrongMajorWarning x else x; maybeWarnWrongMajor = x: if !(lib.hasPrefix supportedLixMajor lixPackageToUse.version) then builtins.trace wrongMajorWarning x else x;
overlay = # It is not enough to *just* throw whatever the default nix version is at
# anything in the "don't give lix" list, we have to *also* ensure that we
# give whatever upstream version as specified in the callPackage invocation.
#
# Unfortunately I don't think there is any actual way to directly query that,
# so we instead do something extremely evil and guess which version it
# probably was. This code is not generalizable to arbitrary derivations, so
# it will hopefully not make us cry, at least.
useCppNixOverlay =
lib.genAttrs overridelist_upstream ( lib.genAttrs overridelist_upstream (
name: if (lib.functionArgs prev.${name}.override ? "nix") then prev.${name}.override { name:
nix = final.nixVersions.stable_upstream; if (lib.functionArgs prev.${name}.override ? "nix") then
} else prev.${name} let
) // { # Get the two common inputs of a derivation/package.
inputs = prev.${name}.buildInputs ++ prev.${name}.nativeBuildInputs;
nixDependency = lib.findFirst
(drv: (drv.pname or "") == "nix")
final.nixVersions.stable_upstream # default to stable nix if nix is not an input
inputs;
nixMajor = lib.versions.major (nixDependency.version or "");
nixMinor = lib.versions.minor (nixDependency.version or "");
nixAttr = "nix_${nixMajor}_${nixMinor}";
finalNix = final.nixVersions.${nixAttr};
in
prev.${name}.override {
nix = finalNix;
}
else prev.${name}
);
overlay = useCppNixOverlay // {
lix-overlay-present = 1; lix-overlay-present = 1;
# used for things that one wouldn't necessarily want to update, but we # used for things that one wouldn't necessarily want to update, but we
# nevertheless shove it in the overlay and fixed-point it in case one *does* # nevertheless shove it in the overlay and fixed-point it in case one *does*
@ -96,7 +120,7 @@ let
} }
); );
nix-doc = prev.callPackage ./nix-doc/package.nix { withPlugin = false; }; nix-doc = prev.nix-doc.override { withPlugin = false; };
}; };
in in
# Make the overlay idempotent, since flakes passing nixos modules around by # Make the overlay idempotent, since flakes passing nixos modules around by

View file

@ -1 +1 @@
{"nix-eval-jobs": {"kind": "tarball", "rev": "f8869bdcca7c1d5aaf37de3da3a4176811279a57", "nar_hash": "sha256-F/RvI9chHywnckEqHO1ggjzCayknhDnnl2kNnnVXpWg=", "locked_url": "https://git.lix.systems/api/v1/repos/lix-project/nix-eval-jobs/archive/f8869bdcca7c1d5aaf37de3da3a4176811279a57.tar.gz?rev=f8869bdcca7c1d5aaf37de3da3a4176811279a57", "url": "https://git.lix.systems/lix-project/nix-eval-jobs/archive/main.tar.gz"}} {"nix-eval-jobs": {"kind": "tarball", "rev": "df3edf37301cdc77ca5bd5f3f6fcccd6d0befee5", "nar_hash": "sha256-KpKmFgcUGQlAWhLUHyBn3AnTJLp7Kt82q2Cxfp3Yf44=", "locked_url": "https://git.lix.systems/api/v1/repos/lix-project/nix-eval-jobs/archive/df3edf37301cdc77ca5bd5f3f6fcccd6d0befee5.tar.gz?rev=df3edf37301cdc77ca5bd5f3f6fcccd6d0befee5", "url": "https://git.lix.systems/lix-project/nix-eval-jobs/archive/main.tar.gz"}}