From 6f9ff4d98a061d54f1795e46760c556f01d4995e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Fri, 20 Jun 2025 11:43:19 +0200 Subject: [PATCH] compatibility shim --- nix/sources.json | 256 ----------------------------------------------- nix/sources.nix | 200 +----------------------------------- 2 files changed, 2 insertions(+), 454 deletions(-) delete mode 100644 nix/sources.json diff --git a/nix/sources.json b/nix/sources.json deleted file mode 100644 index 53d36cb7..00000000 --- a/nix/sources.json +++ /dev/null @@ -1,256 +0,0 @@ -{ - "agenix": { - "branch": "main", - "description": "age-encrypted secrets for NixOS and Home manager", - "homepage": "https://matrix.to/#/#agenix:nixos.org", - "owner": "ryantm", - "repo": "agenix", - "rev": "e600439ec4c273cf11e06fe4d9d906fb98fa097c", - "sha256": "006ngydiykjgqs85cl19h9klq8kaqm5zs0ng51dnwy7nzgqxzsdr", - "type": "tarball", - "url": "https://github.com/ryantm/agenix/archive/e600439ec4c273cf11e06fe4d9d906fb98fa097c.tar.gz", - "url_template": "https://github.com///archive/.tar.gz", - "version": "0.15.0" - }, - "disko": { - "branch": "master", - "description": "Declarative disk partitioning and formatting using nix [maintainers=Lassulus Enzime iFreilicht Mic92 phaer]", - "homepage": "", - "owner": "nix-community", - "repo": "disko", - "rev": "0141aabed359f063de7413f80d906e1d98c0c123", - "sha256": "13brimg7z7k9y36n4jc1pssqyw94nd8qvgfjv53z66lv4xkhin92", - "type": "tarball", - "url": "https://github.com/nix-community/disko/archive/0141aabed359f063de7413f80d906e1d98c0c123.tar.gz", - "url_template": "https://github.com///archive/.tar.gz", - "version": "v1.11.0" - }, - "flake-compat": { - "branch": "master", - "description": null, - "homepage": null, - "owner": "edolstra", - "repo": "flake-compat", - "rev": "v1.1.0", - "sha256": "19d2z6xsvpxm184m41qrpi1bplilwipgnzv9jy17fgw421785q1m", - "type": "tarball", - "url": "https://github.com/edolstra/flake-compat/archive/v1.1.0.tar.gz", - "url_template": "https://github.com///archive/.tar.gz" - }, - "home-manager": { - "branch": "release-25.05", - "description": "Manage a user environment using Nix [maintainer=@rycee] ", - "homepage": "https://nix-community.github.io/home-manager/", - "owner": "nix-community", - "repo": "home-manager", - "rev": "d0bbd221482c2713cccb80220f3c9d16a6e20a33", - "sha256": "1iqfq5lz3102cp3ryqqqs2hr2bdmwn0mdajprh1ls5h5nsfkigs1", - "type": "tarball", - "url": "https://github.com/nix-community/home-manager/archive/d0bbd221482c2713cccb80220f3c9d16a6e20a33.tar.gz", - "url_template": "https://github.com///archive/.tar.gz" - }, - "infuse": { - "branch": "trunk", - "repo": "https://codeberg.org/amjoseph/infuse.nix", - "rev": "c8fb7397039215e1444c835e36a0da7dc3c743f8", - "type": "git" - }, - "lix": { - "branch": "main", - "repo": "https://git.lix.systems/lix-project/lix.git", - "rev": "df214a1db80667749d15659c0aded6d45dc10fa4", - "type": "git" - }, - "lix-module": { - "branch": "main", - "repo": "https://git.lix.systems/lix-project/nixos-module.git", - "rev": "cd2a9c028df820a83ca2807dc6c6e7abc3dfa7fc", - "type": "git" - }, - "nil": { - "branch": "main", - "description": "NIx Language server, an incremental analysis assistant for writing in Nix.", - "homepage": "", - "owner": "oxalica", - "repo": "nil", - "rev": "870a4b1b5f12004832206703ac15aa85c42c247b", - "sha256": "1xlbzv9495g2gx6nmnw79v5g9ajwzkl1qwlpkqwqzqz4380qnnxy", - "type": "tarball", - "url": "https://github.com/oxalica/nil/archive/870a4b1b5f12004832206703ac15aa85c42c247b.tar.gz", - "url_template": "https://github.com///archive/.tar.gz" - }, - "nix-tree": { - "branch": "main", - "description": "Interactively browse dependency graphs of Nix derivations.", - "homepage": "", - "owner": "utdemir", - "repo": "nix-tree", - "rev": "fdcac72b7261f32e2faf9866c5d759d38a19771a", - "sha256": "00h7crplyi5njsi146227bzrnf6rmwpzmrl1l2ckii0lmvmnsfsw", - "type": "tarball", - "url": "https://github.com/utdemir/nix-tree/archive/fdcac72b7261f32e2faf9866c5d759d38a19771a.tar.gz", - "url_template": "https://github.com///archive/.tar.gz" - }, - "nixos-hardware": { - "branch": "master", - "description": "A collection of NixOS modules covering hardware quirks.", - "homepage": "", - "owner": "NixOS", - "repo": "nixos-hardware", - "rev": "ecaa2d911e77c265c2a5bac8b583c40b0f151726", - "sha256": "1xjrlq04i6an90f0s689ip3abky88mljxjik7c9s6kw9q0d3ix6f", - "type": "tarball", - "url": "https://github.com/NixOS/nixos-hardware/archive/ecaa2d911e77c265c2a5bac8b583c40b0f151726.tar.gz", - "url_template": "https://github.com///archive/.tar.gz" - }, - "nixpkgs": { - "branch": "nixos-25.05", - "description": "Nix Packages collection", - "homepage": null, - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "36ab78dab7da2e4e27911007033713bab534187b", - "sha256": "072rx8y4bravd9163brjicqsb1i11f0n9v4bhikzbvc7wpb7kdds", - "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/36ab78dab7da2e4e27911007033713bab534187b.tar.gz", - "url_template": "https://github.com///archive/.tar.gz" - }, - "nixpkgs-unstable": { - "branch": "nixos-unstable", - "description": "Nix Packages collection & NixOS", - "homepage": "", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "f675531bc7e6657c10a18b565cfebd8aa9e24c14", - "sha256": "0ifzcx95bj4ab59qx01csj75xvhjlri8bqx2cmlh97gx9n27vfc1", - "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/f675531bc7e6657c10a18b565cfebd8aa9e24c14.tar.gz", - "url_template": "https://github.com///archive/.tar.gz" - }, - "nur": { - "branch": "main", - "description": "Nix User Repository: User contributed nix packages [maintainer=@Pandapip1]", - "homepage": "https://nur.nix-community.org/", - "owner": "nix-community", - "repo": "nur", - "rev": "7900ebe42597974c57fce20b14876664ae32e7b5", - "sha256": "0yh1z2r26z5d9gq6dl62hfb918iwkrysm4i8qaqq9w7hk7pg9kwv", - "type": "tarball", - "url": "https://github.com/nix-community/nur/archive/7900ebe42597974c57fce20b14876664ae32e7b5.tar.gz", - "url_template": "https://github.com///archive/.tar.gz" - }, - "pin-emacs28": { - "branch": "master", - "description": "Nix Packages collection & NixOS", - "homepage": "", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "93c121f6888986f9148a33afd39d714f4b2ca98c", - "sha256": "198p4lv3zqw3s6j3yflgic0jxig4y0vsb1k8433jv227ks89kqdg", - "type": "tarball", - "url": "https://github.com/nixos/nixpkgs/archive/93c121f6888986f9148a33afd39d714f4b2ca98c.tar.gz", - "url_template": "https://github.com///archive/.tar.gz" - }, - "pin-florashell": { - "branch": "nixos-25.05", - "description": "Nix Packages collection", - "homepage": null, - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "7282cb574e0607e65224d33be8241eae7cfe0979", - "sha256": "0klkpy7ah033y3cwj51a0l96lwmkqqvwgfv3kid4z9x5g2rqr0l5", - "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/7282cb574e0607e65224d33be8241eae7cfe0979.tar.gz", - "url_template": "https://github.com///archive/.tar.gz" - }, - "pin-fourmolu": { - "branch": "haskell-updates", - "description": "Nix Packages collection & NixOS", - "homepage": "", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "f6cf0e77542dd938f002652dd54391b973f792de", - "sha256": "1a8kcw1biyzmf5k8qjrji5fvgr8bbmi7fvf8pvfgjmf1df8rrcz1", - "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/f6cf0e77542dd938f002652dd54391b973f792de.tar.gz", - "url_template": "https://github.com///archive/.tar.gz" - }, - "pin-isabelle": { - "branch": "master", - "description": "Nix Packages collection & NixOS", - "homepage": "", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "805a384895c696f802a9bf5bf4720f37385df547", - "sha256": "1q7y5ygr805l5axcjhn0rn3wj8zrwbrr0c6a8xd981zh8iccmx0p", - "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/805a384895c696f802a9bf5bf4720f37385df547.tar.gz", - "url_template": "https://github.com///archive/.tar.gz" - }, - "pin-necro-man-nixpkgs": { - "branch": "master", - "description": "Nix Packages collection & NixOS", - "homepage": "", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "c58ed2fc0f592ebc280bfba077ea418ce10213d1", - "sha256": "1y5is3cjwsy9n5cqs8i7qc9kf8cny9yxzirzzspkqbrm51axv53i", - "type": "tarball", - "url": "https://github.com/nixos/nixpkgs/archive/c58ed2fc0f592ebc280bfba077ea418ce10213d1.tar.gz", - "url_template": "https://github.com///archive/.tar.gz" - }, - "pin-vim-tw": { - "branch": "master", - "description": "Nix Packages collection & NixOS", - "homepage": "", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "c93c1b3413bd7e235fc22b469bc0d2feec332cf5", - "sha256": "115sdkhyp0pm5rmag4gq0myg2rs20irisgnpf26zjfm92pw8isq4", - "type": "tarball", - "url": "https://github.com/nixos/nixpkgs/archive/c93c1b3413bd7e235fc22b469bc0d2feec332cf5.tar.gz", - "url_template": "https://github.com///archive/.tar.gz" - }, - "pin-wireshark": { - "branch": "master", - "description": "Nix Packages collection & NixOS", - "homepage": "", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "9d3ae807ebd2981d593cddd0080856873139aa40", - "sha256": "0bjqgsprq9fgl5yh58dk59xmchi4dajq3sf5i447q02dbiasjsil", - "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/9d3ae807ebd2981d593cddd0080856873139aa40.tar.gz", - "url_template": "https://github.com///archive/.tar.gz" - }, - "url-eater": { - "branch": "mistress", - "description": "Clean unnecessary parameters from URLs copied to clipboard", - "homepage": null, - "owner": "AgathaSorceress", - "repo": "url-eater", - "rev": "96af6b75a3605043141db6bf80ad60866c10c827", - "sha256": "0lfq1hxdc7y1n00h1hl9ckxb7969nck0x654af77axvw1v3hamj0", - "type": "tarball", - "url": "https://github.com/AgathaSorceress/url-eater/archive/96af6b75a3605043141db6bf80ad60866c10c827.tar.gz", - "url_template": "https://github.com///archive/.tar.gz" - }, - "wallpapers": { - "branch": "mistress", - "repo": "https://git.confusedcompiler.org/leana8959/wallpapers.git", - "rev": "189b0f83db95462244e2dc2e12c68741c924cb46", - "type": "git" - }, - "wired-notify": { - "branch": "master", - "description": "Lightweight notification daemon with highly customizable layout blocks, written in Rust.", - "homepage": "", - "owner": "Toqozz", - "repo": "wired-notify", - "rev": "75d43f54a02b15f2a15f5c1a0e1c7d15100067a6", - "sha256": "020j5807jkwzsnjjl8v8y17bbj1q1xcmiki4fnscj76ds168024j", - "type": "tarball", - "url": "https://github.com/leana8959/wired-notify/archive/2fc6624d3aeb03bbb3fb48b696ce8e5cc8e65165.tar.gz", - "url_template": "https://github.com///archive/.tar.gz" - } -} diff --git a/nix/sources.nix b/nix/sources.nix index 21f41e10..fa4ff0b5 100644 --- a/nix/sources.nix +++ b/nix/sources.nix @@ -1,198 +1,2 @@ -# This file has been generated by Niv. - -let - - # - # The fetchers. fetch_ fetches specs of type . - # - - fetch_file = pkgs: name: spec: - let - name' = sanitizeName name + "-src"; - in - if spec.builtin or true then - builtins_fetchurl { inherit (spec) url sha256; name = name'; } - else - pkgs.fetchurl { inherit (spec) url sha256; name = name'; }; - - fetch_tarball = pkgs: name: spec: - let - name' = sanitizeName name + "-src"; - in - if spec.builtin or true then - builtins_fetchTarball { name = name'; inherit (spec) url sha256; } - else - pkgs.fetchzip { name = name'; inherit (spec) url sha256; }; - - fetch_git = name: spec: - let - ref = - spec.ref or ( - if spec ? branch then "refs/heads/${spec.branch}" else - if spec ? tag then "refs/tags/${spec.tag}" else - abort "In git source '${name}': Please specify `ref`, `tag` or `branch`!" - ); - submodules = spec.submodules or false; - submoduleArg = - let - nixSupportsSubmodules = builtins.compareVersions builtins.nixVersion "2.4" >= 0; - emptyArgWithWarning = - if submodules - then - builtins.trace - ( - "The niv input \"${name}\" uses submodules " - + "but your nix's (${builtins.nixVersion}) builtins.fetchGit " - + "does not support them" - ) - { } - else { }; - in - if nixSupportsSubmodules - then { inherit submodules; } - else emptyArgWithWarning; - in - builtins.fetchGit - ({ url = spec.repo; inherit (spec) rev; inherit ref; allRefs = true; } // submoduleArg); - - fetch_local = spec: spec.path; - - fetch_builtin-tarball = name: throw - ''[${name}] The niv type "builtin-tarball" is deprecated. You should instead use `builtin = true`. - $ niv modify ${name} -a type=tarball -a builtin=true''; - - fetch_builtin-url = name: throw - ''[${name}] The niv type "builtin-url" will soon be deprecated. You should instead use `builtin = true`. - $ niv modify ${name} -a type=file -a builtin=true''; - - # - # Various helpers - # - - # https://github.com/NixOS/nixpkgs/pull/83241/files#diff-c6f540a4f3bfa4b0e8b6bafd4cd54e8bR695 - sanitizeName = name: - ( - concatMapStrings (s: if builtins.isList s then "-" else s) - ( - builtins.split "[^[:alnum:]+._?=-]+" - ((x: builtins.elemAt (builtins.match "\\.*(.*)" x) 0) name) - ) - ); - - # The set of packages used when specs are fetched using non-builtins. - mkPkgs = sources: system: - let - sourcesNixpkgs = - import (builtins_fetchTarball { inherit (sources.nixpkgs) url sha256; }) { inherit system; }; - hasNixpkgsPath = builtins.any (x: x.prefix == "nixpkgs") builtins.nixPath; - hasThisAsNixpkgsPath = == ./.; - in - if builtins.hasAttr "nixpkgs" sources - then sourcesNixpkgs - else if hasNixpkgsPath && ! hasThisAsNixpkgsPath then - import { } - else - abort - '' - Please specify either (through -I or NIX_PATH=nixpkgs=...) or - add a package called "nixpkgs" to your sources.json. - ''; - - # The actual fetching function. - fetch = pkgs: name: spec: - - if ! builtins.hasAttr "type" spec then - abort "ERROR: niv spec ${name} does not have a 'type' attribute" - else if spec.type == "file" then fetch_file pkgs name spec - else if spec.type == "tarball" then fetch_tarball pkgs name spec - else if spec.type == "git" then fetch_git name spec - else if spec.type == "local" then fetch_local spec - else if spec.type == "builtin-tarball" then fetch_builtin-tarball name - else if spec.type == "builtin-url" then fetch_builtin-url name - else - abort "ERROR: niv spec ${name} has unknown type ${builtins.toJSON spec.type}"; - - # If the environment variable NIV_OVERRIDE_${name} is set, then use - # the path directly as opposed to the fetched source. - replace = name: drv: - let - saneName = stringAsChars (c: if (builtins.match "[a-zA-Z0-9]" c) == null then "_" else c) name; - ersatz = builtins.getEnv "NIV_OVERRIDE_${saneName}"; - in - if ersatz == "" then drv else - # this turns the string into an actual Nix path (for both absolute and - # relative paths) - if builtins.substring 0 1 ersatz == "/" then /. + ersatz else /. + builtins.getEnv "PWD" + "/${ersatz}"; - - # Ports of functions for older nix versions - - # a Nix version of mapAttrs if the built-in doesn't exist - mapAttrs = builtins.mapAttrs or ( - f: set: with builtins; - listToAttrs (map (attr: { name = attr; value = f attr set.${attr}; }) (attrNames set)) - ); - - # https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/lists.nix#L295 - range = first: last: if first > last then [ ] else builtins.genList (n: first + n) (last - first + 1); - - # https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/strings.nix#L257 - stringToCharacters = s: map (p: builtins.substring p 1 s) (range 0 (builtins.stringLength s - 1)); - - # https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/strings.nix#L269 - stringAsChars = f: s: concatStrings (map f (stringToCharacters s)); - concatMapStrings = f: list: concatStrings (map f list); - concatStrings = builtins.concatStringsSep ""; - - # https://github.com/NixOS/nixpkgs/blob/8a9f58a375c401b96da862d969f66429def1d118/lib/attrsets.nix#L331 - optionalAttrs = cond: as: if cond then as else { }; - - # fetchTarball version that is compatible between all the versions of Nix - builtins_fetchTarball = { url, name ? null, sha256 }@attrs: - let - inherit (builtins) lessThan nixVersion fetchTarball; - in - if lessThan nixVersion "1.12" then - fetchTarball ({ inherit url; } // (optionalAttrs (name != null) { inherit name; })) - else - fetchTarball attrs; - - # fetchurl version that is compatible between all the versions of Nix - builtins_fetchurl = { url, name ? null, sha256 }@attrs: - let - inherit (builtins) lessThan nixVersion fetchurl; - in - if lessThan nixVersion "1.12" then - fetchurl ({ inherit url; } // (optionalAttrs (name != null) { inherit name; })) - else - fetchurl attrs; - - # Create the final "sources" from the config - mkSources = config: - mapAttrs - ( - name: spec: - if builtins.hasAttr "outPath" spec - then - abort - "The values in sources.json should not have an 'outPath' attribute" - else - spec // { outPath = replace name (fetch config.pkgs name spec); } - ) - config.sources; - - # The "config" used by the fetchers - mkConfig = - { sourcesFile ? if builtins.pathExists ./sources.json then ./sources.json else null - , sources ? if sourcesFile == null then { } else builtins.fromJSON (builtins.readFile sourcesFile) - , system ? builtins.currentSystem - , pkgs ? mkPkgs sources system - }: rec { - # The sources, i.e. the attribute set of spec name to spec - inherit sources; - - # The "pkgs" (evaluated nixpkgs) to use for e.g. non-builtin fetchers - inherit pkgs; - }; - -in -mkSources (mkConfig { }) // { __functor = _: settings: mkSources (mkConfig settings); } +# Compatibility shim that redirects to npins +import ../npins