Compare commits

..

1 commit

Author SHA1 Message Date
puck 08ed89703c Fix build-release-notes being required 2024-05-16 12:40:59 +00:00
8 changed files with 82 additions and 107 deletions

View file

@ -36,11 +36,11 @@
"lix": { "lix": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1718767907, "lastModified": 1714969435,
"narHash": "sha256-gpd+mGQxqVHw2kO6rSPQel8TkChHh9UpqxjsmQi0QJM=", "narHash": "sha256-HNIT8NiSZ1qrQMQT69Cr1nIhxrIIqHNPqLlmsVdcl18=",
"rev": "85f282ef572577899b3d80ba8def1b920a386218", "rev": "106b95904304e498cc6c72aace705441768ab240",
"type": "tarball", "type": "tarball",
"url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/85f282ef572577899b3d80ba8def1b920a386218.tar.gz" "url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/106b95904304e498cc6c72aace705441768ab240.tar.gz"
}, },
"original": { "original": {
"type": "tarball", "type": "tarball",
@ -49,11 +49,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1718530797, "lastModified": 1714906307,
"narHash": "sha256-pup6cYwtgvzDpvpSCFh1TEUjw2zkNpk8iolbKnyFmmU=", "narHash": "sha256-UlRZtrCnhPFSJlDQE7M0eyhgvuuHBTe1eJ9N9AQlJQ0=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "b60ebf54c15553b393d144357375ea956f89e9a9", "rev": "25865a40d14b3f9cf19f19b924e2ab4069b09588",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -8,7 +8,7 @@
inputs.flakey-profile.url = "github:lf-/flakey-profile"; inputs.flakey-profile.url = "github:lf-/flakey-profile";
outputs = inputs@{ self, nixpkgs, lix, flake-utils, flakey-profile, ... }: outputs = inputs@{ self, nixpkgs, lix, flake-utils, flakey-profile, ... }:
let versionSuffix = "pre${builtins.substring 0 8 lix.lastModifiedDate}-${lix.shortRev or lix.dirtyShortRev}"; let versionSuffix = "pre${builtins.substring 0 8 lix.lastModifiedDate}-${lix.shortRev}";
in { in {
inherit inputs; inherit inputs;
nixosModules.default = import ./module.nix { inherit lix versionSuffix; }; nixosModules.default = import ./module.nix { inherit lix versionSuffix; };

View file

@ -1,5 +1,5 @@
{ lixSrc ? null, versionSuffix ? "" }: { lix, versionSuffix ? "" }:
{ pkgs, config, ... }: { pkgs, config, ... }:
{ {
nixpkgs.overlays = [ (import ./overlay.nix { inherit lixSrc versionSuffix; }) ]; nixpkgs.overlays = [ (import ./overlay.nix { inherit lix versionSuffix; }) ];
} }

View file

@ -1,25 +1,43 @@
{ lixSrc ? null, versionSuffix ? "" }: { lix, versionSuffix ? "" }:
final: prev: final: prev:
let let
boehmgc-patched = ((final.boehmgc.override {
enableLargeConfig = true;
}).overrideAttrs (o: {
# cherrypick: boehmgc: disable tests on aarch64-linux
# https://github.com/NixOS/nixpkgs/pull/309418
doCheck = !((final.stdenv.isDarwin && final.stdenv.isx86_64) || (final.stdenv.isLinux && final.stdenv.isAarch64));
patches = (o.patches or [ ]) ++ [
# for clown reasons this version is newer than the one in lix, we should
# fix this and update our nixpkgs pin
(prev.path + "/pkgs/tools/package-management/nix/patches/boehmgc-coroutine-sp-fallback.patch")
] ++ final.lib.optionals (final.lib.versionOlder o.version "8.2.6") [
# https://github.com/ivmai/bdwgc/pull/586
(builtins.path { path = lix + "/boehmgc-traceable_allocator-public.diff"; name = "boehmgc-traceable_allocator-public.patch"; })
];
})
);
lixFunctionArgs = builtins.functionArgs (import (lix + "/package.nix"));
# fix up build-release-notes being required in older versions of Lix.
lixPackageBuildReleaseNotes =
if lixFunctionArgs.build-release-notes or true
then { }
else { build-release-notes = null; };
# This is kind of scary to not override the nix version to pretend to be # 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 # 2.18 since nixpkgs can introduce new breakage in its Nix unstable CLI
# usage. # usage.
# https://github.com/nixos/nixpkgs/blob/6afb255d976f85f3359e4929abd6f5149c323a02/nixos/modules/config/nix.nix#L121 # https://github.com/nixos/nixpkgs/blob/6afb255d976f85f3359e4929abd6f5149c323a02/nixos/modules/config/nix.nix#L121
lixPkg = lixPkg = final.callPackage (lix + "/package.nix") ({
if lixSrc == null versionSuffix = "-lix${versionSuffix}";
then prev.pkgs.lix boehmgc-nix = boehmgc-patched;
else } // lixPackageBuildReleaseNotes);
final.callPackage (lixSrc + "/package.nix") ({
versionSuffix = "-${versionSuffix}";
# FIXME: do this more sensibly for future releases
# https://git.lix.systems/lix-project/lix/issues/406
officialRelease = false;
});
# These packages depend on Nix features that Lix does not support # These packages depend on Nix features that Lix does not support
overridelist_2_18 = [ overridelist_2_18 = [
"attic-client" "attic-client"
"devenv"
"nix-du" "nix-du"
"nix-init" "nix-init"
"nix-prefetch-git" "nix-prefetch-git"
@ -32,25 +50,12 @@ let
nix = final.nixVersions.nix_2_18_upstream; nix = final.nixVersions.nix_2_18_upstream;
}); });
warning = '' inherit (prev) lib;
warning: You have the lix overlay included into a nixpkgs import twice,
perhaps due to the NixOS module being included twice, or because of using
pkgs.nixos and also including it in imports, or perhaps some unknown
machinations of a complicated flake library.
This is completely harmless since we have no-op'd the second one if you are
seeing this message, but it would be a small style improvement to fix
it :)
P.S. If you had some hack to fix nixos-option build failures in your
configuration, that was caused by including an older version of the lix
overlay twice, which is now mitigated if you see this message, so you can
delete that.
P.P.S. This Lix has super catgirl powers.
'';
maybeWarnDuplicate = x: if final.lix-overlay-present > 1 then builtins.trace warning x else x; prefetch-npm-deps-args = lib.functionArgs prev.prefetch-npm-deps.override;
in
overlay = override_2_18 // { override_2_18 //
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*
# want to do that. # want to do that.
@ -58,7 +63,7 @@ let
nixVersions = prev.nixVersions // rec { nixVersions = prev.nixVersions // rec {
# FIXME: do something less scuffed # FIXME: do something less scuffed
nix_2_18 = maybeWarnDuplicate lixPkg; nix_2_18 = lixPkg;
stable = nix_2_18; stable = nix_2_18;
nix_2_18_upstream = prev.nixVersions.nix_2_18; nix_2_18_upstream = prev.nixVersions.nix_2_18;
}; };
@ -66,26 +71,22 @@ let
nix-eval-jobs = (prev.nix-eval-jobs.override { nix-eval-jobs = (prev.nix-eval-jobs.override {
# lix # lix
nix = final.nixVersions.nix_2_18; nix = final.nixVersions.nix_2_18;
}).overrideAttrs (old: }).overrideAttrs (old: {
let src = final.lix-sources.nix-eval-jobs;
in {
version = "2.90.0-lix-${builtins.substring 0 7 src.rev}";
# FIXME: should this be patches instead? # FIXME: should this be patches instead?
inherit src; src = final.lix-sources.nix-eval-jobs;
mesonBuildType = "debugoptimized"; mesonBuildType = "debugoptimized";
ninjaFlags = old.ninjaFlags or [ ] ++ [ "-v" ]; ninjaFlags = old.ninjaFlags or [ ] ++ [ "-v" ];
});
# support both having and missing https://github.com/NixOS/nixpkgs/pull/304913
prefetch-npm-deps =
if (prefetch-npm-deps-args ? nix) || (prefetch-npm-deps-args == {})
then prev.prefetch-npm-deps.override {
nix = final.nixVersions.nix_2_18_upstream;
} }
); else prev.prefetch-npm-deps;
nix-doc = prev.callPackage ./nix-doc/package.nix { withPlugin = false; }; nix-doc = prev.callPackage ./nix-doc/package.nix { withPlugin = false; };
}
pegtl = prev.callPackage ./pegtl.nix { };
};
in
# Make the overlay idempotent, since flakes passing nixos modules around by
# value and many other things make it way too easy to include the overlay
# twice
if (prev ? lix-overlay-present) then { lix-overlay-present = 2; } else overlay

View file

@ -1,23 +0,0 @@
{
stdenv,
cmake,
ninja,
fetchFromGitHub,
}:
stdenv.mkDerivation {
pname = "pegtl";
version = "3.2.7";
src = fetchFromGitHub {
repo = "PEGTL";
owner = "taocpp";
rev = "refs/tags/3.2.7";
hash = "sha256-IV5YNGE4EWVrmg2Sia/rcU8jCuiBynQGJM6n3DCWTQU=";
};
nativeBuildInputs = [
cmake
ninja
];
}

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": "02bcbe0c0eb829cc268e9f5c595047f609da9693", "nar_hash": "sha256-v0uj3ZbpSQYz84YGkadDXCZjHBk2xJwHBLY3pkdPrvY=", "locked_url": "https://git.lix.systems/api/v1/repos/lix-project/nix-eval-jobs/archive/02bcbe0c0eb829cc268e9f5c595047f609da9693.tar.gz?rev=02bcbe0c0eb829cc268e9f5c595047f609da9693", "url": "https://git.lix.systems/lix-project/nix-eval-jobs/archive/main.tar.gz"}}

View file

@ -14,13 +14,11 @@ let
narHash = args.nar_hash; narHash = args.nar_hash;
} }
else if kind == "tarball" then else if kind == "tarball" then
args // { builtins.fetchTarball
outPath = builtins.fetchTarball { {
name = "source"; name = "source";
url = args.locked_url; url = args.locked_url;
sha256 = args.nar_hash; sha256 = args.nar_hash;
}; } else builtins.throw "unsupported input type ${kind}";
}
else builtins.throw "unsupported input type ${kind}";
in in
builtins.mapAttrs (_: fetchPin) pins builtins.mapAttrs (_: fetchPin) pins

View file

@ -2,7 +2,6 @@
let let
configs = { configs = {
it-builds = nixos ({ ... }: { it-builds = nixos ({ ... }: {
imports = [ lix-module ];
documentation.enable = false; documentation.enable = false;
fileSystems."/".device = "ignore-root-device"; fileSystems."/".device = "ignore-root-device";
boot.loader.grub.enable = false; boot.loader.grub.enable = false;