diff --git a/flake.nix b/flake.nix index bf7480a6db2d..23c9f09a174b 100644 --- a/flake.nix +++ b/flake.nix @@ -9,17 +9,9 @@ nixpkgs = self; }; + libVersionInfoOverlay = import ./lib/__flake-version-info.nix self; lib = (import ./lib).extend libVersionInfoOverlay; - libVersionInfoOverlay = finalLib: prevLib: { - trivial = prevLib.trivial // { - versionSuffix = - ".${finalLib.substring 0 8 (self.lastModifiedDate or self.lastModified or "19700101")}.${self.shortRev or "dirty"}"; - version = finalLib.trivial.release + finalLib.trivial.versionSuffix; - revisionWithDefault = default: self.rev or default; - }; - }; - forAllSystems = lib.genAttrs lib.systems.flakeExposed; in { diff --git a/lib/__flake-version-info.nix b/lib/__flake-version-info.nix new file mode 100644 index 000000000000..19ce4c351cf1 --- /dev/null +++ b/lib/__flake-version-info.nix @@ -0,0 +1,17 @@ +# lib overlay to be used by the nixpkgs & nixpkgs/lib flakes +# to provide meaningful values for `lib.trivial.version` et al.. +# +# Internal and subject to change, don't use this anywhere else! + +self: # from the flake + +finalLib: prevLib: # lib overlay + +{ + trivial = prevLib.trivial // { + versionSuffix = + ".${finalLib.substring 0 8 (self.lastModifiedDate or self.lastModified or "19700101")}.${self.shortRev or "dirty"}"; + version = finalLib.trivial.release + finalLib.trivial.versionSuffix; + revisionWithDefault = default: self.rev or default; + }; +} diff --git a/lib/flake.nix b/lib/flake.nix index 0b5e54d547c5..475aa13edafb 100644 --- a/lib/flake.nix +++ b/lib/flake.nix @@ -1,5 +1,10 @@ { description = "Library of low-level helper functions for nix expressions."; - outputs = { self }: { lib = import ./.; }; + outputs = { self }: + let + lib' = import ./.; + in { + lib = lib'.extend (import ./__flake-version-info.nix self); + }; }