diff options
Diffstat (limited to 'pkgs/top-level')
-rw-r--r-- | pkgs/top-level/aliases.nix | 17 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 101 | ||||
-rw-r--r-- | pkgs/top-level/config.nix | 32 | ||||
-rw-r--r-- | pkgs/top-level/kodi-packages.nix | 209 | ||||
-rw-r--r-- | pkgs/top-level/octave-packages.nix | 10 | ||||
-rw-r--r-- | pkgs/top-level/php-packages.nix | 2 | ||||
-rw-r--r-- | pkgs/top-level/python-packages.nix | 12 | ||||
-rw-r--r-- | pkgs/top-level/release-cross.nix | 169 | ||||
-rw-r--r-- | pkgs/top-level/release-cuda.nix | 11 | ||||
-rw-r--r-- | pkgs/top-level/release-haskell.nix | 2 | ||||
-rw-r--r-- | pkgs/top-level/release-lib.nix | 65 | ||||
-rw-r--r-- | pkgs/top-level/release-python.nix | 13 | ||||
-rw-r--r-- | pkgs/top-level/release-r.nix | 8 | ||||
-rw-r--r-- | pkgs/top-level/release-small.nix | 8 | ||||
-rw-r--r-- | pkgs/top-level/release.nix | 42 | ||||
-rw-r--r-- | pkgs/top-level/unixtools.nix | 13 |
16 files changed, 395 insertions, 319 deletions
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index d5107bbf9b6c..d47a8a9fec47 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -230,6 +230,8 @@ mapAliases ({ docker-machine = throw "'docker-machine' has been removed, because the upstream project was archived"; # Added 2023-12-27 docker-machine-kvm = throw "'docker-machine-kvm' has been removed, because 'docker-machine' was archived upstream and removed"; # Added 2023-12-27 docker-machine-xhyve = throw "'docker-machine-xhyve' has been removed, because 'docker-machine' was archived upstream and removed"; # Added 2023-12-27 + dogecoin = throw "'dogecoin' has been removed, as it was broken and unmaintained"; # Added 2024-03-11 + dogecoind = throw "'dogecoind' has been removed, as it was broken and unmaintained"; # Added 2024-03-11 dolphin-emu-beta = dolphin-emu; # Added 2023-02-11 dolphinEmu = dolphin-emu; # Added 2021-11-10 dolphinEmuMaster = dolphin-emu-beta; # Added 2021-11-10 @@ -284,6 +286,7 @@ mapAliases ({ erlang_23 = throw "erlangR23 has been removed in favor of newer versions."; # added 2023-09-11 erlangR23 = erlang_23; etcd_3_3 = throw "etcd_3_3 has been removed because upstream no longer maintains it"; # Added 2023-09-29 + etcher = throw "'etcher' has been removed because it depended on an insecure version of Electron"; # Added 2024-03-14 eterm = throw "eterm was removed because it is still insecure: https://github.com/mej/Eterm/issues/7"; # Added 2023-09-10 exa = throw "'exa' has been removed because it is unmaintained upstream. Consider using 'eza', a maintained fork"; # Added 2023-09-07 exhibitor = throw "'exhibitor' has been removed because it is unmaintained upstream"; # Added 2023-06-20 @@ -447,6 +450,7 @@ mapAliases ({ gr-rds = throw "'gr-rds' has been renamed to/replaced by 'gnuradio3_7.pkgs.rds'"; # Converted to throw 2023-09-10 grub2_full = grub2; # Added 2022-11-18 grub = throw "grub1 was removed after not being maintained upstream for a decade. Please switch to another bootloader"; # Added 2023-04-11 + gtkcord4 = dissent; # Added 2024-03-10 guile-disarchive = disarchive; # Added 2023-10-27 guile-lint = throw "'guile-lint' has been removed, please use 'guild lint' instead"; # Added 2023-10-16 @@ -470,6 +474,8 @@ mapAliases ({ hip-nvidia = throw "'hip-nvidia' has been removed in favor of 'rocmPackages.clr'"; # Added 2023-10-08 ht-rust = xh; # Added 2021-02-13 hydra-unstable = hydra_unstable; # added 2022-05-10 + hyper-haskell = throw "'hyper-haskell' has been removed. reason: has been broken for a long time and depends on an insecure electron version"; # Added 2024-03-14 + hyper-haskell-server-with-packages = throw "'hyper-haskell-server-with-packages' has been removed. reason: has been broken for a long time"; # Added 2024-03-14 ### I ### @@ -514,6 +520,8 @@ mapAliases ({ ### K ### + k3s_1_24 = throw "'k3s_1_24' has been removed from nixpkgs as it has reached end of life"; # Added 2024-03-14 + k3s_1_25 = throw "'k3s_1_25' has been removed from nixpkgs as it has reached end of life"; # Added 2024-03-14 # k3d was a 3d editing software k-3d - "k3d has been removed because it was broken and has seen no release since 2016" Added 2022-01-04 # now kube3d/k3d will take it's place kube3d = k3d; # Added 2022-0705 @@ -910,11 +918,12 @@ mapAliases ({ # soon: throw "'pinentry' has been removed. Pick an appropriate variant like 'pinentry-curses' or 'pinentry-gnome3'"; pinentry = pinentry-all // { curses = pinentry-curses; + emacs = pinentry-emacs; + gnome3 = pinentry-gnome3; gtk2 = pinentry-gtk2; - gnome2 = pinentry-gnome3; qt = pinentry-qt; - emacs = pinentry-emacs; - flavors = [ "curses" "gtk2" "gnome2" "qt" "emacs" ]; + tty = pinentry-tty; + flavors = [ "curses" "emacs" "gnome3" "gtk2" "qt" "tty" ]; }; # added 2024-01-15 pinentry_curses = throw "'pinentry_curses' has been renamed to/replaced by 'pinentry-curses'"; # Converted to throw 2023-09-10 pinentry_emacs = throw "'pinentry_emacs' has been renamed to/replaced by 'pinentry-emacs'"; # Converted to throw 2023-09-10 @@ -985,6 +994,7 @@ mapAliases ({ ricochet = throw "ricochet has been deprecated in favor of ricochet-refresh"; # Added 2024-02-26 rigsofrods = rigsofrods-bin; # Added 2023-03-22 ring-daemon = jami-daemon; # Added 2021-10-26 + rnix-lsp = throw "'rnix-lsp' has been removed as it is unmaintained"; # Added 2024-03-09 rockbox_utility = rockbox-utility; # Added 2022-03-17 rocalution = throw "'rocalution' has been replaced with 'rocmPackages.rocalution'"; # Added 2023-10-08 rocblas = throw "'rocblas' has been replaced with 'rocmPackages.rocblas'"; # Added 2023-10-08 @@ -1103,6 +1113,7 @@ mapAliases ({ spice-gtk_libsoup2 = throw "'spice-gtk_libsoup2' has been renamed to/replaced by 'spice-gtk'"; # Added 2023-02-21 # spidermonkey is not ABI upwards-compatible, so only allow this for nix-shell spidermonkey = spidermonkey_78; # Added 2020-10-09 + spotify-tui = throw "'spotify-tui' has been removed, as it was broken and unmaintained"; # Added 2024-03-12 spotify-unwrapped = spotify; # added 2022-11-06 spring-boot = spring-boot-cli; # added 2020-04-24 squid4 = throw "'squid4' has been renamed to/replaced by 'squid'"; # Converted to throw 2023-09-10 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 6fec9f405927..04b249992ac7 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -107,7 +107,7 @@ with pkgs; Please be informed that this pseudo-package is not the only part of Nixpkgs that fails to evaluate. You should not evaluate entire Nixpkgs without some special measures to handle failing - packages, like using pkgs/top-level/release-attrpaths.nix. + packages, like using pkgs/top-level/release-attrpaths-superset.nix. ''; tests = callPackages ../test { }; @@ -278,8 +278,6 @@ with pkgs; asitop = pkgs.python3Packages.callPackage ../os-specific/darwin/asitop { }; - asn = callPackage ../applications/networking/asn { }; - asnmap = callPackage ../tools/security/asnmap { }; astrolog = callPackage ../applications/science/astronomy/astrolog { }; @@ -891,7 +889,7 @@ with pkgs; tarsum = callPackage ../build-support/docker/tarsum.nix { }; - snapTools = callPackage ../build-support/snap { }; + snapTools = throw "snapTools was removed because makeSnap produced broken snaps and it was the only function in snapTools. See https://github.com/NixOS/nixpkgs/issues/100618 for more details."; # 2024-03-04; nix-prefetch-docker = callPackage ../build-support/docker/nix-prefetch-docker.nix { }; @@ -6139,10 +6137,6 @@ with pkgs; opam-publish = callPackage ../development/tools/ocaml/opam-publish { }; - opencomposite = callPackage ../development/libraries/opencomposite { }; - - opencomposite-helper = callPackage ../development/libraries/opencomposite/helper.nix { }; - osdlyrics = callPackage ../applications/audio/osdlyrics { }; ossutil = callPackage ../tools/admin/ossutil { }; @@ -6810,12 +6804,11 @@ with pkgs; cirrusgo = callPackage ../tools/security/cirrusgo { }; inherit (callPackage ../applications/networking/remote/citrix-workspace { }) - citrix_workspace_23_02_0 - citrix_workspace_23_07_0 citrix_workspace_23_09_0 citrix_workspace_23_11_0 + citrix_workspace_24_02_0 ; - citrix_workspace = citrix_workspace_23_11_0; + citrix_workspace = citrix_workspace_24_02_0; clima = callPackage ../tools/text/clima { }; @@ -7094,6 +7087,8 @@ with pkgs; certstrap = callPackage ../tools/security/certstrap { }; + cffconvert = python3Packages.toPythonApplication python3Packages.cffconvert; + cfssl = callPackage ../tools/security/cfssl { }; cfs-zen-tweaks = callPackage ../os-specific/linux/cfs-zen-tweaks { }; @@ -7947,10 +7942,6 @@ with pkgs; esshader = callPackage ../tools/graphics/esshader { }; - etcher = callPackage ../tools/misc/etcher { - electron = electron_19; - }; - ethercalc = callPackage ../servers/web-apps/ethercalc { }; ethtool = callPackage ../tools/misc/ethtool { }; @@ -9792,9 +9783,7 @@ with pkgs; kdiff3 = libsForQt5.callPackage ../tools/text/kdiff3 { }; - kube-router = callPackage ../applications/networking/cluster/kube-router { - buildGoModule = buildGo120Module; - }; + kube-router = callPackage ../applications/networking/cluster/kube-router { }; kubedock = callPackage ../development/tools/kubedock { }; @@ -11988,6 +11977,7 @@ with pkgs; pinentry-gtk2 pinentry-gnome3 pinentry-qt + pinentry-tty pinentry-all; pinentry_mac = callPackage ../tools/security/pinentry/mac.nix { @@ -12216,7 +12206,8 @@ with pkgs; prototypejs = callPackage ../development/libraries/prototypejs { }; proxmark3 = libsForQt5.callPackage ../tools/security/proxmark3/default.nix { - inherit (darwin.apple_sdk.frameworks) Foundation AppKit; + inherit (darwin.apple_sdk_11_0.frameworks) Foundation AppKit; + stdenv = if stdenv.isDarwin then darwin.apple_sdk_11_0.stdenv else stdenv; }; proxychains = callPackage ../tools/networking/proxychains { }; @@ -16749,7 +16740,7 @@ with pkgs; rasm = callPackage ../development/compilers/rasm { }; replibyte = callPackage ../development/tools/database/replibyte { - inherit (darwin.apple_sdk.frameworks) Security; + inherit (darwin.apple_sdk.frameworks) Security SystemConfiguration; }; rgbds = callPackage ../development/compilers/rgbds { }; @@ -18186,10 +18177,6 @@ with pkgs; pylyzer = callPackage ../development/tools/language-servers/pylyzer { }; - rnix-lsp = callPackage ../development/tools/language-servers/rnix-lsp { - nix = nixVersions.nix_2_15; - }; - ruff-lsp = python3Packages.callPackage ../development/tools/language-servers/ruff-lsp { }; rune-languageserver = callPackage ../development/tools/language-servers/rune-languageserver { }; @@ -18299,10 +18286,11 @@ with pkgs; electron_23 = electron_23-bin; electron_24 = electron_24-bin; electron_25 = electron_25-bin; - electron_26 = if lib.meta.availableOn stdenv.hostPlatform electron-source.electron_26 then electron-source.electron_26 else electron_26-bin; + electron_26 = electron_26-bin; electron_27 = if lib.meta.availableOn stdenv.hostPlatform electron-source.electron_27 then electron-source.electron_27 else electron_27-bin; electron_28 = if lib.meta.availableOn stdenv.hostPlatform electron-source.electron_28 then electron-source.electron_28 else electron_28-bin; - electron = electron_28; + electron_29 = electron-source.electron_29; + electron = electron_29; autobuild = callPackage ../development/tools/misc/autobuild { }; @@ -19991,7 +19979,9 @@ with pkgs; terracognita = callPackage ../development/tools/misc/terracognita { }; terraform-lsp = callPackage ../development/tools/misc/terraform-lsp { }; - terraform-ls = callPackage ../development/tools/misc/terraform-ls { }; + terraform-ls = callPackage ../development/tools/misc/terraform-ls { + buildGoModule = buildGo122Module; + }; terraformer = callPackage ../development/tools/misc/terraformer { }; @@ -24231,10 +24221,6 @@ with pkgs; prime-server = callPackage ../development/libraries/prime-server { }; - primecount = callPackage ../applications/science/math/primecount { }; - - primesieve = callPackage ../applications/science/math/primesieve { }; - proj = callPackage ../development/libraries/proj { stdenv = if stdenv.cc.isClang then overrideLibcxx llvmPackages_13.stdenv else stdenv; }; @@ -27234,10 +27220,6 @@ with pkgs; pg_tileserv = callPackage ../servers/geospatial/pg_tileserv { }; - t-rex = callPackage ../servers/geospatial/t-rex { - inherit (darwin.apple_sdk.frameworks) Security; - }; - tegola = callPackage ../servers/geospatial/tegola { }; tile38 = callPackage ../servers/geospatial/tile38 { }; @@ -29917,11 +29899,6 @@ with pkgs; qmapshack = libsForQt5.callPackage ../applications/gis/qmapshack { }; - saga = callPackage ../applications/gis/saga { - inherit (darwin.apple_sdk.frameworks) Cocoa; - inherit (libsForQt5) dxflib; - }; - spatialite_gui = callPackage ../applications/gis/spatialite-gui { inherit (darwin.apple_sdk.frameworks) Carbon Cocoa IOKit; wxGTK = wxGTK32; @@ -30782,7 +30759,7 @@ with pkgs; dnglab = callPackage ../tools/graphics/dnglab { }; inherit (callPackage ../applications/virtualization/docker {}) - docker_20_10 docker_24 docker_25; + docker_24 docker_25; docker = docker_24; docker-client = docker.override { clientOnly = true; }; @@ -31073,8 +31050,6 @@ with pkgs; gspeech = callPackage ../applications/audio/gspeech { }; - gtkcord4 = callPackage ../applications/audio/gtkcord4 { }; - haruna = libsForQt5.callPackage ../applications/video/haruna { }; hdrmerge = libsForQt5.callPackage ../applications/graphics/hdrmerge { }; @@ -32082,20 +32057,6 @@ with pkgs; hydroxide = callPackage ../applications/networking/hydroxide { }; - hyper-haskell-server-with-packages = callPackage ../development/tools/haskell/hyper-haskell/server.nix { - inherit (haskellPackages) ghcWithPackages; - packages = self: with self; []; - }; - - hyper-haskell = callPackage ../development/tools/haskell/hyper-haskell { - hyper-haskell-server = hyper-haskell-server-with-packages.override { - packages = self: with self; [ - hyper-extra diagrams csound-catalog - ]; - }; - extra-packages = [ csound ]; - }; - hyperion-ng = libsForQt5.callPackage ../applications/video/hyperion-ng { protobuf = protobuf_21; }; @@ -32591,12 +32552,6 @@ with pkgs; jwm-settings-manager = callPackage ../applications/window-managers/jwm/jwm-settings-manager.nix { }; - k3s_1_24 = callPackage ../applications/networking/cluster/k3s/1_24 { - buildGoModule = buildGo120Module; - }; - k3s_1_25 = callPackage ../applications/networking/cluster/k3s/1_25 { - buildGoModule = buildGo120Module; - }; inherit (callPackage ../applications/networking/cluster/k3s { buildGoModule = buildGo120Module; }) k3s_1_26 k3s_1_27 k3s_1_28; @@ -33619,8 +33574,6 @@ with pkgs; webkitgtk = webkitgtk_6_0; }; - nicotine-plus = callPackage ../applications/networking/soulseek/nicotine-plus { }; - nice-dcv-client = callPackage ../applications/networking/remote/nice-dcv-client { }; nixos-shell = callPackage ../tools/virtualization/nixos-shell { }; @@ -34884,10 +34837,6 @@ with pkgs; spotify-tray = callPackage ../applications/misc/spotify-tray { }; - spotify-tui = callPackage ../applications/audio/spotify-tui { - inherit (darwin.apple_sdk.frameworks) AppKit Security; - }; - sptlrx = callPackage ../applications/audio/sptlrx { }; sptk = callPackage ../development/libraries/sptk { }; @@ -35037,8 +34986,6 @@ with pkgs; skrooge = libsForQt5.callPackage ../applications/office/skrooge { }; - smartgithg = callPackage ../applications/version-management/smartgithg { }; - smartdeblur = libsForQt5.callPackage ../applications/graphics/smartdeblur { }; snapper = callPackage ../tools/misc/snapper { }; @@ -35793,6 +35740,7 @@ with pkgs; virtualbox = libsForQt5.callPackage ../applications/virtualization/virtualbox { stdenv = stdenv_32bit; inherit (gnome2) libIDL; + jdk = openjdk17; }; virtualboxKvm = lowPrio (virtualbox.override { @@ -36051,7 +35999,7 @@ with pkgs; wgnord = callPackage ../applications/networking/wgnord/default.nix { }; whalebird = callPackage ../applications/misc/whalebird { - electron = electron_21; + electron = electron_27; }; windowlab = callPackage ../applications/window-managers/windowlab { }; @@ -36225,8 +36173,6 @@ with pkgs; xdg-desktop-portal-xapp = callPackage ../development/libraries/xdg-desktop-portal-xapp { }; - xdg-user-dirs = callPackage ../tools/X11/xdg-user-dirs { }; - xdg-utils = callPackage ../tools/X11/xdg-utils {}; xdgmenumaker = callPackage ../applications/misc/xdgmenumaker { }; @@ -36616,13 +36562,6 @@ with pkgs; buildGoModule = buildGo120Module; }; - dogecoin = libsForQt5.callPackage ../applications/blockchains/dogecoin { - withGui = true; - }; - dogecoind = callPackage ../applications/blockchains/dogecoin { - withGui = false; - }; - eclair = callPackage ../applications/blockchains/eclair { }; electrs = callPackage ../applications/blockchains/electrs { diff --git a/pkgs/top-level/config.nix b/pkgs/top-level/config.nix index aa3a235553ef..3418a44e0f13 100644 --- a/pkgs/top-level/config.nix +++ b/pkgs/top-level/config.nix @@ -2,14 +2,20 @@ { config, lib, ... }: -with lib; - let + inherit (lib) + literalExpression + mapAttrsToList + mdDoc + mkOption + optionals + types + ; mkMassRebuild = args: mkOption (builtins.removeAttrs args [ "feature" ] // { type = args.type or (types.uniq types.bool); default = args.default or false; - description = lib.mdDoc ((args.description or '' + description = mdDoc ((args.description or '' Whether to ${args.feature} while building nixpkgs packages. '') + '' Changing the default may cause a mass rebuild. @@ -34,7 +40,7 @@ let /* Config options */ warnUndeclaredOptions = mkOption { - description = lib.mdDoc "Whether to warn when `config` contains an unrecognized attribute."; + description = mdDoc "Whether to warn when `config` contains an unrecognized attribute."; type = types.bool; default = false; }; @@ -66,7 +72,7 @@ let allowAliases = mkOption { type = types.bool; default = true; - description = lib.mdDoc '' + description = mdDoc '' Whether to expose old attribute names for compatibility. The recommended setting is to enable this, as it @@ -86,7 +92,7 @@ let default = false; # getEnv part is in check-meta.nix defaultText = literalExpression ''false || builtins.getEnv "NIXPKGS_ALLOW_UNFREE" == "1"''; - description = lib.mdDoc '' + description = mdDoc '' Whether to allow unfree packages. See [Installing unfree packages](https://nixos.org/manual/nixpkgs/stable/#sec-allow-unfree) in the NixOS manual. @@ -98,7 +104,7 @@ let default = false; # getEnv part is in check-meta.nix defaultText = literalExpression ''false || builtins.getEnv "NIXPKGS_ALLOW_BROKEN" == "1"''; - description = lib.mdDoc '' + description = mdDoc '' Whether to allow broken packages. See [Installing broken packages](https://nixos.org/manual/nixpkgs/stable/#sec-allow-broken) in the NixOS manual. @@ -110,7 +116,7 @@ let default = false; # getEnv part is in check-meta.nix defaultText = literalExpression ''false || builtins.getEnv "NIXPKGS_ALLOW_UNSUPPORTED_SYSTEM" == "1"''; - description = lib.mdDoc '' + description = mdDoc '' Whether to allow unsupported packages. See [Installing packages on unsupported systems](https://nixos.org/manual/nixpkgs/stable/#sec-allow-unsupported-system) in the NixOS manual. @@ -132,7 +138,7 @@ let showDerivationWarnings = mkOption { type = types.listOf (types.enum [ "maintainerless" ]); default = []; - description = lib.mdDoc '' + description = mdDoc '' Which warnings to display for potentially dangerous or deprecated values passed into `stdenv.mkDerivation`. @@ -147,7 +153,7 @@ let checkMeta = mkOption { type = types.bool; default = false; - description = lib.mdDoc '' + description = mdDoc '' Whether to check that the `meta` attribute of derivations are correct during evaluation time. ''; }; @@ -156,7 +162,7 @@ let in { freeformType = - let t = lib.types.lazyAttrsOf lib.types.raw; + let t = types.lazyAttrsOf types.raw; in t // { merge = loc: defs: let r = t.merge loc defs; @@ -166,8 +172,8 @@ in { inherit options; config = { - warnings = lib.optionals config.warnUndeclaredOptions ( - lib.mapAttrsToList (k: v: "undeclared Nixpkgs option set: config.${k}") config._undeclared or {} + warnings = optionals config.warnUndeclaredOptions ( + mapAttrsToList (k: v: "undeclared Nixpkgs option set: config.${k}") config._undeclared or {} ); }; diff --git a/pkgs/top-level/kodi-packages.nix b/pkgs/top-level/kodi-packages.nix index 0014a1ff53f3..09ec68b592f8 100644 --- a/pkgs/top-level/kodi-packages.nix +++ b/pkgs/top-level/kodi-packages.nix @@ -1,29 +1,18 @@ { config, lib, newScope, kodi, libretro }: -with lib; - let - inherit (libretro) fuse genesis-plus-gx mgba nestopia snes9x twenty-fortyeight; -in - -let self = rec { + inherit (lib) + catAttrs + concatLists + filter + optionalAttrs + unique + ; - addonDir = "/share/kodi/addons"; - rel = "Nexus"; + inherit (libretro) fuse genesis-plus-gx mgba nestopia snes9x twenty-fortyeight; callPackage = newScope self; - inherit kodi; - - # Convert derivation to a kodi module. Stolen from ../../../top-level/python-packages.nix - toKodiAddon = drv: drv.overrideAttrs (oldAttrs: { - # Use passthru in order to prevent rebuilds when possible. - passthru = (oldAttrs.passthru or {}) // { - kodiAddonFor = kodi; - requiredKodiAddons = requiredKodiAddons drv.propagatedBuildInputs; - }; - }); - # Check whether a derivation provides a Kodi addon. hasKodiAddon = drv: drv ? kodiAddonFor && drv.kodiAddonFor == kodi; @@ -34,170 +23,186 @@ let self = rec { in unique (modules ++ concatLists (catAttrs "requiredKodiAddons" modules)); - # package update scripts + self = { + addonDir = "/share/kodi/addons"; + + rel = "Nexus"; + + inherit callPackage kodi hasKodiAddon requiredKodiAddons; + + # Convert derivation to a kodi module. Stolen from ../../../top-level/python-packages.nix + toKodiAddon = drv: drv.overrideAttrs (oldAttrs: { + # Use passthru in order to prevent rebuilds when possible. + passthru = (oldAttrs.passthru or {}) // { + kodiAddonFor = kodi; + requiredKodiAddons = requiredKodiAddons drv.propagatedBuildInputs; + }; + }); + + # package update scripts - addonUpdateScript = callPackage ../applications/video/kodi/addons/addon-update-script { }; + addonUpdateScript = callPackage ../applications/video/kodi/addons/addon-update-script { }; - # package builders + # package builders - buildKodiAddon = callPackage ../applications/video/kodi/build-kodi-addon.nix { }; + buildKodiAddon = callPackage ../applications/video/kodi/build-kodi-addon.nix { }; - buildKodiBinaryAddon = callPackage ../applications/video/kodi/build-kodi-binary-addon.nix { }; + buildKodiBinaryAddon = callPackage ../applications/video/kodi/build-kodi-binary-addon.nix { }; - # regular packages + # regular packages - kodi-platform = callPackage ../applications/video/kodi/addons/kodi-platform { }; + kodi-platform = callPackage ../applications/video/kodi/addons/kodi-platform { }; - # addon packages + # addon packages - a4ksubtitles = callPackage ../applications/video/kodi/addons/a4ksubtitles { }; + a4ksubtitles = callPackage ../applications/video/kodi/addons/a4ksubtitles { }; - arteplussept = callPackage ../applications/video/kodi/addons/arteplussept { }; + arteplussept = callPackage ../applications/video/kodi/addons/arteplussept { }; - controller-topology-project = callPackage ../applications/video/kodi/addons/controller-topology-project { }; + controller-topology-project = callPackage ../applications/video/kodi/addons/controller-topology-project { }; - iagl = callPackage ../applications/video/kodi/addons/iagl { }; + iagl = callPackage ../applications/video/kodi/addons/iagl { }; - invidious = callPackage ../applications/video/kodi/addons/invidious { }; + invidious = callPackage ../applications/video/kodi/addons/invidious { }; - libretro = callPackage ../applications/video/kodi/addons/libretro { }; + libretro = callPackage ../applications/video/kodi/addons/libretro { }; - libretro-2048 = callPackage ../applications/video/kodi/addons/libretro-2048 { inherit twenty-fortyeight; }; + libretro-2048 = callPackage ../applications/video/kodi/addons/libretro-2048 { inherit twenty-fortyeight; }; - libretro-fuse = callPackage ../applications/video/kodi/addons/libretro-fuse { inherit fuse; }; + libretro-fuse = callPackage ../applications/video/kodi/addons/libretro-fuse { inherit fuse; }; - libretro-genplus = callPackage ../applications/video/kodi/addons/libretro-genplus { inherit genesis-plus-gx; }; + libretro-genplus = callPackage ../applications/video/kodi/addons/libretro-genplus { inherit genesis-plus-gx; }; - libretro-mgba = callPackage ../applications/video/kodi/addons/libretro-mgba { inherit mgba; }; + libretro-mgba = callPackage ../applications/video/kodi/addons/libretro-mgba { inherit mgba; }; - libretro-nestopia = callPackage ../applications/video/kodi/addons/libretro-nestopia { inherit nestopia; }; + libretro-nestopia = callPackage ../applications/video/kodi/addons/libretro-nestopia { inherit nestopia; }; - libretro-snes9x = callPackage ../applications/video/kodi/addons/libretro-snes9x { inherit snes9x; }; + libretro-snes9x = callPackage ../applications/video/kodi/addons/libretro-snes9x { inherit snes9x; }; - jellyfin = callPackage ../applications/video/kodi/addons/jellyfin { }; + jellyfin = callPackage ../applications/video/kodi/addons/jellyfin { }; - joystick = callPackage ../applications/video/kodi/addons/joystick { }; + joystick = callPackage ../applications/video/kodi/addons/joystick { }; - keymap = callPackage ../applications/video/kodi/addons/keymap { }; + keymap = callPackage ../applications/video/kodi/addons/keymap { }; - mediacccde = callPackage ../applications/video/kodi/addons/mediacccde { }; + mediacccde = callPackage ../applications/video/kodi/addons/mediacccde { }; - mediathekview = callPackage ../applications/video/kodi/addons/mediathekview { }; + mediathekview = callPackage ../applications/video/kodi/addons/mediathekview { }; - netflix = callPackage ../applications/video/kodi/addons/netflix { }; + netflix = callPackage ../applications/video/kodi/addons/netflix { }; - orftvthek = callPackage ../applications/video/kodi/addons/orftvthek { }; + orftvthek = callPackage ../applications/video/kodi/addons/orftvthek { }; - radioparadise = callPackage ../applications/video/kodi/addons/radioparadise { }; + radioparadise = callPackage ../applications/video/kodi/addons/radioparadise { }; - svtplay = callPackage ../applications/video/kodi/addons/svtplay { }; + svtplay = callPackage ../applications/video/kodi/addons/svtplay { }; - steam-controller = callPackage ../applications/video/kodi/addons/steam-controller { }; + steam-controller = callPackage ../applications/video/kodi/addons/steam-controller { }; - steam-launcher = callPackage ../applications/video/kodi/addons/steam-launcher { }; + steam-launcher = callPackage ../applications/video/kodi/addons/steam-launcher { }; - steam-library = callPackage ../applications/video/kodi/addons/steam-library { }; + steam-library = callPackage ../applications/video/kodi/addons/steam-library { }; - somafm = callPackage ../applications/video/kodi/addons/somafm { }; + somafm = callPackage ../applications/video/kodi/addons/somafm { }; - pdfreader = callPackage ../applications/video/kodi/addons/pdfreader { }; + pdfreader = callPackage ../applications/video/kodi/addons/pdfreader { }; - pvr-hts = callPackage ../applications/video/kodi/addons/pvr-hts { }; + pvr-hts = callPackage ../applications/video/kodi/addons/pvr-hts { }; - pvr-hdhomerun = callPackage ../applications/video/kodi/addons/pvr-hdhomerun { }; + pvr-hdhomerun = callPackage ../applications/video/kodi/addons/pvr-hdhomerun { }; - pvr-iptvsimple = callPackage ../applications/video/kodi/addons/pvr-iptvsimple { }; + pvr-iptvsimple = callPackage ../applications/video/kodi/addons/pvr-iptvsimple { }; - pvr-vdr-vnsi = callPackage ../applications/video/kodi/addons/pvr-vdr-vnsi { }; + pvr-vdr-vnsi = callPackage ../applications/video/kodi/addons/pvr-vdr-vnsi { }; - osmc-skin = callPackage ../applications/video/kodi/addons/osmc-skin { }; + osmc-skin = callPackage ../applications/video/kodi/addons/osmc-skin { }; - vfs-libarchive = callPackage ../applications/video/kodi/addons/vfs-libarchive { }; + vfs-libarchive = callPackage ../applications/video/kodi/addons/vfs-libarchive { }; - vfs-rar = callPackage ../applications/video/kodi/addons/vfs-rar { }; + vfs-rar = callPackage ../applications/video/kodi/addons/vfs-rar { }; - vfs-sftp = callPackage ../applications/video/kodi/addons/vfs-sftp { }; + vfs-sftp = callPackage ../applications/video/kodi/addons/vfs-sftp { }; - visualization-fishbmc = callPackage ../applications/video/kodi/addons/visualization-fishbmc { }; + visualization-fishbmc = callPackage ../applications/video/kodi/addons/visualization-fishbmc { }; - visualization-goom = callPackage ../applications/video/kodi/addons/visualization-goom { }; + visualization-goom = callPackage ../applications/video/kodi/addons/visualization-goom { }; - visualization-matrix = callPackage ../applications/video/kodi/addons/visualization-matrix { }; + visualization-matrix = callPackage ../applications/video/kodi/addons/visualization-matrix { }; - visualization-pictureit = callPackage ../applications/video/kodi/addons/visualization-pictureit { }; + visualization-pictureit = callPackage ../applications/video/kodi/addons/visualization-pictureit { }; - visualization-projectm = callPackage ../applications/video/kodi/addons/visualization-projectm { }; + visualization-projectm = callPackage ../applications/video/kodi/addons/visualization-projectm { }; - visualization-shadertoy = callPackage ../applications/video/kodi/addons/visualization-shadertoy { }; + visualization-shadertoy = callPackage ../applications/video/kodi/addons/visualization-shadertoy { }; - visualization-spectrum = callPackage ../applications/video/kodi/addons/visualization-spectrum { }; + visualization-spectrum = callPackage ../applications/video/kodi/addons/visualization-spectrum { }; - visualization-starburst = callPackage ../applications/video/kodi/addons/visualization-starburst { }; + visualization-starburst = callPackage ../applications/video/kodi/addons/visualization-starburst { }; - visualization-waveform = callPackage ../applications/video/kodi/addons/visualization-waveform { }; + visualization-waveform = callPackage ../applications/video/kodi/addons/visualization-waveform { }; - youtube = callPackage ../applications/video/kodi/addons/youtube { }; + youtube = callPackage ../applications/video/kodi/addons/youtube { }; - # addon packages (dependencies) + # addon packages (dependencies) - archive_tool = callPackage ../applications/video/kodi/addons/archive_tool { }; + archive_tool = callPackage ../applications/video/kodi/addons/archive_tool { }; - certifi = callPackage ../applications/video/kodi/addons/certifi { }; + certifi = callPackage ../applications/video/kodi/addons/certifi { }; - chardet = callPackage ../applications/video/kodi/addons/chardet { }; + chardet = callPackage ../applications/video/kodi/addons/chardet { }; - dateutil = callPackage ../applications/video/kodi/addons/dateutil { }; + dateutil = callPackage ../applications/video/kodi/addons/dateutil { }; - defusedxml = callPackage ../applications/video/kodi/addons/defusedxml { }; + defusedxml = callPackage ../applications/video/kodi/addons/defusedxml { }; - future = callPackage ../applications/video/kodi/addons/future { }; + future = callPackage ../applications/video/kodi/addons/future { }; - idna = callPackage ../applications/video/kodi/addons/idna { }; + idna = callPackage ../applications/video/kodi/addons/idna { }; - infotagger = callPackage ../applications/video/kodi/addons/infotagger { }; + infotagger = callPackage ../applications/video/kodi/addons/infotagger { }; - inputstream-adaptive = callPackage ../applications/video/kodi/addons/inputstream-adaptive { }; + inputstream-adaptive = callPackage ../applications/video/kodi/addons/inputstream-adaptive { }; - inputstream-ffmpegdirect = callPackage ../applications/video/kodi/addons/inputstream-ffmpegdirect { }; + inputstream-ffmpegdirect = callPackage ../applications/video/kodi/addons/inputstream-ffmpegdirect { }; - inputstream-rtmp = callPackage ../applications/video/kodi/addons/inputstream-rtmp { }; + inputstream-rtmp = callPackage ../applications/video/kodi/addons/inputstream-rtmp { }; - inputstreamhelper = callPackage ../applications/video/kodi/addons/inputstreamhelper { }; + inputstreamhelper = callPackage ../applications/video/kodi/addons/inputstreamhelper { }; - kodi-six = callPackage ../applications/video/kodi/addons/kodi-six { }; + kodi-six = callPackage ../applications/video/kodi/addons/kodi-six { }; - myconnpy = callPackage ../applications/video/kodi/addons/myconnpy { }; + myconnpy = callPackage ../applications/video/kodi/addons/myconnpy { }; - requests = callPackage ../applications/video/kodi/addons/requests { }; + requests = callPackage ../applications/video/kodi/addons/requests { }; - requests-cache = callPackage ../applications/video/kodi/addons/requests-cache { }; + requests-cache = callPackage ../applications/video/kodi/addons/requests-cache { }; - routing = callPackage ../applications/video/kodi/addons/routing { }; + routing = callPackage ../applications/video/kodi/addons/routing { }; - sendtokodi = callPackage ../applications/video/kodi/addons/sendtokodi { }; + sendtokodi = callPackage ../applications/video/kodi/addons/sendtokodi { }; - signals = callPackage ../applications/video/kodi/addons/signals { }; + signals = callPackage ../applications/video/kodi/addons/signals { }; - simplejson = callPackage ../applications/video/kodi/addons/simplejson { }; + simplejson = callPackage ../applications/video/kodi/addons/simplejson { }; - six = callPackage ../applications/video/kodi/addons/six { }; + six = callPackage ../applications/video/kodi/addons/six { }; - sponsorblock = callPackage ../applications/video/kodi/addons/sponsorblock { }; + sponsorblock = callPackage ../applications/video/kodi/addons/sponsorblock { }; - urllib3 = callPackage ../applications/video/kodi/addons/urllib3 { }; + urllib3 = callPackage ../applications/video/kodi/addons/urllib3 { }; - websocket = callPackage ../applications/video/kodi/addons/websocket { }; + websocket = callPackage ../applications/video/kodi/addons/websocket { }; - xbmcswift2 = callPackage ../applications/video/kodi/addons/xbmcswift2 { }; + xbmcswift2 = callPackage ../applications/video/kodi/addons/xbmcswift2 { }; - typing_extensions = callPackage ../applications/video/kodi/addons/typing_extensions { }; + typing_extensions = callPackage ../applications/video/kodi/addons/typing_extensions { }; - arrow = callPackage ../applications/video/kodi/addons/arrow { }; + arrow = callPackage ../applications/video/kodi/addons/arrow { }; - trakt-module = callPackage ../applications/video/kodi/addons/trakt-module { }; + trakt-module = callPackage ../applications/video/kodi/addons/trakt-module { }; - trakt = callPackage ../applications/video/kodi/addons/trakt { }; -}; in self // lib.optionalAttrs config.allowAliases { + trakt = callPackage ../applications/video/kodi/addons/trakt { }; +}; in self // optionalAttrs config.allowAliases { # deprecated or renamed packages controllers = throw "kodi.packages.controllers has been replaced with kodi.packages.controller-topology-project - a package which contains a large number of controller profiles." { }; diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix index 374163fa5673..c6d0839e9682 100644 --- a/pkgs/top-level/octave-packages.nix +++ b/pkgs/top-level/octave-packages.nix @@ -19,7 +19,15 @@ , octave }: -with lib; +let + inherit (lib) + catAttrs + concatLists + filter + makeScope + unique + ; +in makeScope newScope (self: let diff --git a/pkgs/top-level/php-packages.nix b/pkgs/top-level/php-packages.nix index fe1c743d51c8..e8144409ba12 100644 --- a/pkgs/top-level/php-packages.nix +++ b/pkgs/top-level/php-packages.nix @@ -372,7 +372,7 @@ lib.makeScope pkgs.newScope (self: with self; { "--enable-dom" ]; # Add a PHP lower version bound constraint to avoid applying the patch on older PHP versions. - patches = lib.optionals (lib.versionOlder php.version "8.2.14" && lib.versionAtLeast php.version "8.1.27") [ + patches = lib.optionals ((lib.versions.majorMinor php.version == "8.2" && lib.versionOlder php.version "8.2.14" && lib.versionAtLeast php.version "8.2.7") || (lib.versions.majorMinor php.version == "8.1" && lib.versionAtLeast php.version "8.1.27")) [ # Fix tests with libxml 2.12 # Part of 8.3.1RC1+, 8.2.14RC1+ (fetchpatch { diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 2fed59c03d0e..545fe4a7dae3 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -1987,6 +1987,8 @@ self: super: with self; { cf-xarray = callPackage ../development/python-modules/cf-xarray { }; + cffconvert = callPackage ../development/python-modules/cffconvert { }; + cffi = callPackage ../development/python-modules/cffi { }; cffsubr = callPackage ../development/python-modules/cffsubr { }; @@ -4937,6 +4939,8 @@ self: super: with self; { gpsoauth = callPackage ../development/python-modules/gpsoauth { }; + gpuctypes = callPackage ../development/python-modules/gpuctypes { }; + gpustat = callPackage ../development/python-modules/gpustat { }; gpxpy = callPackage ../development/python-modules/gpxpy { }; @@ -11171,10 +11175,6 @@ self: super: with self; { pyomo = callPackage ../development/python-modules/pyomo { }; - pyp = callPackage ../development/python-modules/pyp { - inherit (pkgs) jq; - }; - pypng = callPackage ../development/python-modules/pypng { }; phonemizer = callPackage ../development/python-modules/phonemizer { }; @@ -11323,7 +11323,7 @@ self: super: with self; { pyqt6-sip = callPackage ../development/python-modules/pyqt/pyqt6-sip.nix { }; - pyqt6-webengine = callPackage ../development/python-modules/pyqt6-webengine.nix { }; + pyqt6-webengine = callPackage ../development/python-modules/pyqt6-webengine { }; pyqt3d = pkgs.libsForQt5.callPackage ../development/python-modules/pyqt3d { inherit (self) buildPythonPackage pyqt5 pyqt-builder python pythonOlder @@ -14765,6 +14765,8 @@ self: super: with self; { tinydb = callPackage ../development/python-modules/tinydb { }; + tinygrad = callPackage ../development/python-modules/tinygrad { }; + tinyobjloader-py = callPackage ../development/python-modules/tinyobjloader-py { }; tinyrecord = callPackage ../development/python-modules/tinyrecord { }; diff --git a/pkgs/top-level/release-cross.nix b/pkgs/top-level/release-cross.nix index 6fae32c9290b..93d1eaa9a83a 100644 --- a/pkgs/top-level/release-cross.nix +++ b/pkgs/top-level/release-cross.nix @@ -20,9 +20,40 @@ nixpkgsArgs ? { config = { allowUnfree = false; inHydra = true; }; } }: -with import ./release-lib.nix { inherit supportedSystems scrubJobs nixpkgsArgs; }; - let + release-lib = import ./release-lib.nix { + inherit supportedSystems scrubJobs nixpkgsArgs; + }; + + inherit (release-lib) + all + assertTrue + darwin + forMatchingSystems + hydraJob' + linux + mapTestOnCross + pkgsForCross + unix + ; + + inherit (release-lib.lib) + mapAttrs + addMetaAttrs + elem + getAttrFromPath + isDerivation + maintainers + mapAttrsRecursive + mapAttrsRecursiveCond + recursiveUpdate + systems + ; + + inherit (release-lib.lib.attrsets) + removeAttrs + ; + nativePlatforms = all; embedded = { @@ -42,14 +73,14 @@ let cargo = nativePlatforms; }; - gnuCommon = lib.recursiveUpdate common { + gnuCommon = recursiveUpdate common { buildPackages.gcc = nativePlatforms; coreutils = nativePlatforms; haskell.packages.ghcHEAD.hello = nativePlatforms; haskellPackages.hello = nativePlatforms; }; - linuxCommon = lib.recursiveUpdate gnuCommon { + linuxCommon = recursiveUpdate gnuCommon { buildPackages.gdb = nativePlatforms; bison = nativePlatforms; @@ -60,7 +91,7 @@ let patch = nativePlatforms; }; - windowsCommon = lib.recursiveUpdate gnuCommon { + windowsCommon = recursiveUpdate gnuCommon { boehmgc = nativePlatforms; guile_1_8 = nativePlatforms; libffi = nativePlatforms; @@ -120,7 +151,7 @@ in # good idea lest there be some irrelevant pass-through debug attrs that # cause false negatives. testEqualOne = path: system: let - f = path: crossSystem: system: builtins.toString (lib.getAttrFromPath path (pkgsForCross crossSystem system)); + f = path: crossSystem: system: toString (getAttrFromPath path (pkgsForCross crossSystem system)); in assertTrue ( f path null system == @@ -129,7 +160,7 @@ in testEqual = path: systems: forMatchingSystems systems (testEqualOne path); - mapTestEqual = lib.mapAttrsRecursive testEqual; + mapTestEqual = mapAttrsRecursive testEqual; in mapTestEqual { boehmgc = nativePlatforms; @@ -142,105 +173,107 @@ in guile = nativePlatforms; }; - crossIphone64 = mapTestOnCross lib.systems.examples.iphone64 darwinCommon; + crossIphone64 = mapTestOnCross systems.examples.iphone64 darwinCommon; - crossIphone32 = mapTestOnCross lib.systems.examples.iphone32 darwinCommon; + crossIphone32 = mapTestOnCross systems.examples.iphone32 darwinCommon; /* Test some cross builds to the Sheevaplug */ - crossSheevaplugLinux = mapTestOnCross lib.systems.examples.sheevaplug (linuxCommon // { + crossSheevaplugLinux = mapTestOnCross systems.examples.sheevaplug (linuxCommon // { ubootSheevaplug = nativePlatforms; }); /* Test some cross builds on 32 bit mingw-w64 */ - crossMingw32 = mapTestOnCross lib.systems.examples.mingw32 windowsCommon; + crossMingw32 = mapTestOnCross systems.examples.mingw32 windowsCommon; /* Test some cross builds on 64 bit mingw-w64 */ - crossMingwW64 = mapTestOnCross lib.systems.examples.mingwW64 windowsCommon; + crossMingwW64 = mapTestOnCross systems.examples.mingwW64 windowsCommon; /* Linux on mipsel */ - fuloongminipc = mapTestOnCross lib.systems.examples.fuloongminipc linuxCommon; - ben-nanonote = mapTestOnCross lib.systems.examples.ben-nanonote linuxCommon; + fuloongminipc = mapTestOnCross systems.examples.fuloongminipc linuxCommon; + ben-nanonote = mapTestOnCross systems.examples.ben-nanonote linuxCommon; /* Javacript */ - ghcjs = mapTestOnCross lib.systems.examples.ghcjs { + ghcjs = mapTestOnCross systems.examples.ghcjs { haskell.packages.ghcjs.hello = nativePlatforms; haskell.packages.native-bignum.ghcHEAD.hello = nativePlatforms; haskellPackages.hello = nativePlatforms; }; /* Linux on Raspberrypi */ - rpi = mapTestOnCross lib.systems.examples.raspberryPi rpiCommon; - rpi-musl = mapTestOnCross lib.systems.examples.muslpi rpiCommon; + rpi = mapTestOnCross systems.examples.raspberryPi rpiCommon; + rpi-musl = mapTestOnCross systems.examples.muslpi rpiCommon; /* Linux on the Remarkable */ - remarkable1 = mapTestOnCross lib.systems.examples.remarkable1 linuxCommon; - remarkable2 = mapTestOnCross lib.systems.examples.remarkable2 linuxCommon; + remarkable1 = mapTestOnCross systems.examples.remarkable1 linuxCommon; + remarkable2 = mapTestOnCross systems.examples.remarkable2 linuxCommon; /* Linux on armv7l-hf */ - armv7l-hf = mapTestOnCross lib.systems.examples.armv7l-hf-multiplatform linuxCommon; + armv7l-hf = mapTestOnCross systems.examples.armv7l-hf-multiplatform linuxCommon; - pogoplug4 = mapTestOnCross lib.systems.examples.pogoplug4 linuxCommon; + pogoplug4 = mapTestOnCross systems.examples.pogoplug4 linuxCommon; /* Linux on aarch64 */ - aarch64 = mapTestOnCross lib.systems.examples.aarch64-multiplatform linuxCommon; - aarch64-musl = mapTestOnCross lib.systems.examples.aarch64-multiplatform-musl linuxCommon; + aarch64 = mapTestOnCross systems.examples.aarch64-multiplatform linuxCommon; + aarch64-musl = mapTestOnCross systems.examples.aarch64-multiplatform-musl linuxCommon; /* Linux on RISCV */ - riscv64 = mapTestOnCross lib.systems.examples.riscv64 linuxCommon; - riscv32 = mapTestOnCross lib.systems.examples.riscv32 linuxCommon; + riscv64 = mapTestOnCross systems.examples.riscv64 linuxCommon; + riscv32 = mapTestOnCross systems.examples.riscv32 linuxCommon; /* Linux on LoongArch */ - loongarch64-linux = mapTestOnCross lib.systems.examples.loongarch64-linux linuxCommon; + loongarch64-linux = mapTestOnCross systems.examples.loongarch64-linux linuxCommon; - m68k = mapTestOnCross lib.systems.examples.m68k linuxCommon; - s390x = mapTestOnCross lib.systems.examples.s390x linuxCommon; + m68k = mapTestOnCross systems.examples.m68k linuxCommon; + s390x = mapTestOnCross systems.examples.s390x linuxCommon; /* (Cross-compiled) Linux on x86 */ - x86_64-musl = mapTestOnCross lib.systems.examples.musl64 linuxCommon; - x86_64-gnu = mapTestOnCross lib.systems.examples.gnu64 linuxCommon; - i686-musl = mapTestOnCross lib.systems.examples.musl32 linuxCommon; - i686-gnu = mapTestOnCross lib.systems.examples.gnu32 linuxCommon; - - ppc64le = mapTestOnCross lib.systems.examples.powernv linuxCommon; - ppc64le-musl = mapTestOnCross lib.systems.examples.musl-power linuxCommon; - - android64 = mapTestOnCross lib.systems.examples.aarch64-android-prebuilt linuxCommon; - android32 = mapTestOnCross lib.systems.examples.armv7a-android-prebuilt linuxCommon; - - wasi32 = mapTestOnCross lib.systems.examples.wasi32 wasiCommon; - - msp430 = mapTestOnCross lib.systems.examples.msp430 embedded; - mmix = mapTestOnCross lib.systems.examples.mmix embedded; - vc4 = mapTestOnCross lib.systems.examples.vc4 embedded; - or1k = mapTestOnCross lib.systems.examples.or1k embedded; - avr = mapTestOnCross lib.systems.examples.avr embedded; - arm-embedded = mapTestOnCross lib.systems.examples.arm-embedded embedded; - armhf-embedded = mapTestOnCross lib.systems.examples.armhf-embedded embedded; - aarch64-embedded = mapTestOnCross lib.systems.examples.aarch64-embedded embedded; - aarch64be-embedded = mapTestOnCross lib.systems.examples.aarch64be-embedded embedded; - powerpc-embedded = mapTestOnCross lib.systems.examples.ppc-embedded embedded; - powerpcle-embedded = mapTestOnCross lib.systems.examples.ppcle-embedded embedded; - i686-embedded = mapTestOnCross lib.systems.examples.i686-embedded embedded; - x86_64-embedded = mapTestOnCross lib.systems.examples.x86_64-embedded embedded; - riscv64-embedded = mapTestOnCross lib.systems.examples.riscv64-embedded embedded; - riscv32-embedded = mapTestOnCross lib.systems.examples.riscv32-embedded embedded; - rx-embedded = mapTestOnCross lib.systems.examples.rx-embedded embedded; - - x86_64-freebsd = mapTestOnCross lib.systems.examples.x86_64-freebsd common; - x86_64-netbsd = mapTestOnCross lib.systems.examples.x86_64-netbsd common; + x86_64-musl = mapTestOnCross systems.examples.musl64 linuxCommon; + x86_64-gnu = mapTestOnCross systems.examples.gnu64 linuxCommon; + i686-musl = mapTestOnCross systems.examples.musl32 linuxCommon; + i686-gnu = mapTestOnCross systems.examples.gnu32 linuxCommon; + + ppc64le = mapTestOnCross systems.examples.powernv linuxCommon; + ppc64le-musl = mapTestOnCross systems.examples.musl-power linuxCommon; + + android64 = mapTestOnCross systems.examples.aarch64-android-prebuilt linuxCommon; + android32 = mapTestOnCross systems.examples.armv7a-android-prebuilt linuxCommon; + + wasi32 = mapTestOnCross systems.examples.wasi32 wasiCommon; + + msp430 = mapTestOnCross systems.examples.msp430 embedded; + mmix = mapTestOnCross systems.examples.mmix embedded; + vc4 = mapTestOnCross systems.examples.vc4 embedded; + or1k = mapTestOnCross systems.examples.or1k embedded; + avr = mapTestOnCross systems.examples.avr embedded; + arm-embedded = mapTestOnCross systems.examples.arm-embedded embedded; + armhf-embedded = mapTestOnCross systems.examples.armhf-embedded embedded; + aarch64-embedded = mapTestOnCross systems.examples.aarch64-embedded embedded; + aarch64be-embedded = mapTestOnCross systems.examples.aarch64be-embedded embedded; + powerpc-embedded = mapTestOnCross systems.examples.ppc-embedded embedded; + powerpcle-embedded = mapTestOnCross systems.examples.ppcle-embedded embedded; + i686-embedded = mapTestOnCross systems.examples.i686-embedded embedded; + x86_64-embedded = mapTestOnCross systems.examples.x86_64-embedded embedded; + riscv64-embedded = mapTestOnCross systems.examples.riscv64-embedded embedded; + riscv32-embedded = mapTestOnCross systems.examples.riscv32-embedded embedded; + rx-embedded = mapTestOnCross systems.examples.rx-embedded embedded; + + x86_64-freebsd = mapTestOnCross systems.examples.x86_64-freebsd common; + x86_64-netbsd = mapTestOnCross systems.examples.x86_64-netbsd common; # we test `embedded` instead of `linuxCommon` because very few packages # successfully cross-compile to Redox so far - x86_64-redox = mapTestOnCross lib.systems.examples.x86_64-unknown-redox embedded; + x86_64-redox = mapTestOnCross systems.examples.x86_64-unknown-redox embedded; /* Cross-built bootstrap tools for every supported platform */ bootstrapTools = let tools = import ../stdenv/linux/make-bootstrap-tools-cross.nix { system = "x86_64-linux"; }; - maintainers = [ lib.maintainers.dezgeg ]; + meta = { + maintainers = [ maintainers.dezgeg ]; + }; mkBootstrapToolsJob = drv: - assert lib.elem drv.system supportedSystems; - hydraJob' (lib.addMetaAttrs { inherit maintainers; } drv); - in lib.mapAttrsRecursiveCond (as: !lib.isDerivation as) (name: mkBootstrapToolsJob) + assert elem drv.system supportedSystems; + hydraJob' (addMetaAttrs meta drv); + in mapAttrsRecursiveCond (as: !isDerivation as) (name: mkBootstrapToolsJob) # The `bootstrapTools.${platform}.bootstrapTools` derivation # *unpacks* the bootstrap-files using their own `busybox` binary, # so it will fail unless buildPlatform.canExecute hostPlatform. @@ -248,9 +281,9 @@ in # attribute, so there is no way to detect this -- we must add it # as a special case. We filter the "test" attribute (only from # *cross*-built bootstrapTools) for the same reason. - (builtins.mapAttrs (_: v: builtins.removeAttrs v ["bootstrapTools" "test"]) tools); + (mapAttrs (_: v: removeAttrs v ["bootstrapTools" "test"]) tools); # Cross-built nixStatic for platforms for enabled-but-unsupported platforms - mips64el-nixCrossStatic = mapTestOnCross lib.systems.examples.mips64el-linux-gnuabi64 nixCrossStatic; - powerpc64le-nixCrossStatic = mapTestOnCross lib.systems.examples.powernv nixCrossStatic; + mips64el-nixCrossStatic = mapTestOnCross systems.examples.mips64el-linux-gnuabi64 nixCrossStatic; + powerpc64le-nixCrossStatic = mapTestOnCross systems.examples.powernv nixCrossStatic; } diff --git a/pkgs/top-level/release-cuda.nix b/pkgs/top-level/release-cuda.nix index c96f08af41bf..f9577b9b72c7 100644 --- a/pkgs/top-level/release-cuda.nix +++ b/pkgs/top-level/release-cuda.nix @@ -18,10 +18,15 @@ nixpkgsArgs ? { config = { allowUnfree = true; inHydra = true; }; } }: -with import ./release-lib.nix {inherit supportedSystems nixpkgsArgs; }; -with lib; - let + release-lib = import ./release-lib.nix { + inherit supportedSystems nixpkgsArgs; + }; + + inherit (release-lib) linux mapTestOn packagePlatforms pkgs; + + inherit (release-lib.lib) genAttrs; + # Package sets to evaluate packageSets = [ "cudaPackages_10_0" diff --git a/pkgs/top-level/release-haskell.nix b/pkgs/top-level/release-haskell.nix index 435e17da15e0..ebbe1c4c9e48 100644 --- a/pkgs/top-level/release-haskell.nix +++ b/pkgs/top-level/release-haskell.nix @@ -306,8 +306,6 @@ let hledger-web hlint hpack - # hyper-haskell # depends on electron-10.4.7 which is marked as insecure - # hyper-haskell-server-with-packages # hyper-haskell-server is broken icepeak ihaskell jacinda diff --git a/pkgs/top-level/release-lib.nix b/pkgs/top-level/release-lib.nix index 38e6f8072776..9f2886895689 100644 --- a/pkgs/top-level/release-lib.nix +++ b/pkgs/top-level/release-lib.nix @@ -7,13 +7,33 @@ let lib = import ../../lib; -in with lib; - -rec { - - pkgs = packageSet (lib.recursiveUpdate { system = "x86_64-linux"; config.allowUnsupportedSystem = true; } nixpkgsArgs); - inherit lib; + inherit (lib) + addMetaAttrs + any + derivations + filter + flip + genAttrs + getAttrFromPath + hydraJob + id + isDerivation + lists + maintainers + mapAttrs + mapAttrs' + mapAttrsRecursive + matchAttrs + meta + nameValuePair + platforms + recursiveUpdate + subtractLists + systems + ; + + pkgs = packageSet (recursiveUpdate { system = "x86_64-linux"; config.allowUnsupportedSystem = true; } nixpkgsArgs); hydraJob' = if scrubJobs then hydraJob else id; @@ -57,8 +77,8 @@ rec { # More poor man's memoisation pkgsForCross = let - examplesByConfig = lib.flip lib.mapAttrs' - lib.systems.examples + examplesByConfig = flip mapAttrs' + systems.examples (_: crossSystem: nameValuePair crossSystem.config { inherit crossSystem; pkgsFor = mkPkgsFor crossSystem; @@ -68,7 +88,7 @@ rec { candidate = examplesByConfig.${crossSystem.config} or null; in if crossSystem == null then native - else if candidate != null && lib.matchAttrs crossSystem candidate.crossSystem + else if candidate != null && matchAttrs crossSystem candidate.crossSystem then candidate.pkgsFor else mkPkgsFor crossSystem; # uncached fallback @@ -80,12 +100,12 @@ rec { # This is written in a funny way so that we only elaborate the systems once. supportedMatches = let supportedPlatforms = map - (system: lib.systems.elaborate { inherit system; }) + (system: systems.elaborate { inherit system; }) supportedSystems; in metaPatterns: let anyMatch = platform: - lib.any (lib.meta.platformMatch platform) metaPatterns; - matchingPlatforms = lib.filter anyMatch supportedPlatforms; + any (meta.platformMatch platform) metaPatterns; + matchingPlatforms = filter anyMatch supportedPlatforms; in map ({ system, ...}: system) matchingPlatforms; @@ -135,7 +155,6 @@ rec { (path: metaPatterns: testOnCross crossSystem metaPatterns (pkgs: f (getAttrFromPath path pkgs))); - /* Similar to the testOn function, but with an additional 'crossSystem' * parameter for packageSet', defining the target platform for cross builds, * and triggering the build of the host derivation. */ @@ -148,7 +167,7 @@ rec { packagePlatforms = mapAttrs (name: value: if isDerivation value then value.meta.hydraPlatforms - or (lib.subtractLists (value.meta.badPlatforms or []) + or (subtractLists (value.meta.badPlatforms or []) (value.meta.platforms or [ "x86_64-linux" ])) else if value.recurseForDerivations or false || value.recurseForRelease or false then packagePlatforms value @@ -156,8 +175,24 @@ rec { [] ); - +in { /* Common platform groups on which to test packages. */ inherit (platforms) unix linux darwin cygwin all mesaPlatforms; + inherit + assertTrue + forAllSystems + forMatchingSystems + hydraJob' + lib + mapTestOn + mapTestOnCross + packagePlatforms + pkgs + pkgsFor + pkgsForCross + supportedMatches + testOn + testOnCross + ; } diff --git a/pkgs/top-level/release-python.nix b/pkgs/top-level/release-python.nix index bc54860d45f6..81ea4d3403a7 100644 --- a/pkgs/top-level/release-python.nix +++ b/pkgs/top-level/release-python.nix @@ -21,10 +21,15 @@ }; } }: -with import ./release-lib.nix {inherit supportedSystems nixpkgsArgs; }; -with lib; - let + release-lib = import ./release-lib.nix { + inherit supportedSystems nixpkgsArgs; + }; + + inherit (release-lib) mapTestOn pkgs; + + inherit (release-lib.lib) isDerivation mapAttrs optionals; + packagePython = mapAttrs (name: value: let res = builtins.tryEval ( if isDerivation value then @@ -33,7 +38,7 @@ let packagePython value else []); - in lib.optionals res.success res.value + in optionals res.success res.value ); jobs = { diff --git a/pkgs/top-level/release-r.nix b/pkgs/top-level/release-r.nix index 4c715a7786d6..898436de8cc4 100644 --- a/pkgs/top-level/release-r.nix +++ b/pkgs/top-level/release-r.nix @@ -6,7 +6,13 @@ */ { supportedSystems ? [ "x86_64-linux" "aarch64-linux" ] }: -with import ./release-lib.nix { inherit supportedSystems; }; +let + inherit (import ./release-lib.nix { inherit supportedSystems; }) + mapTestOn + packagePlatforms + pkgs + ; +in mapTestOn { rPackages = packagePlatforms pkgs.rPackages; diff --git a/pkgs/top-level/release-small.nix b/pkgs/top-level/release-small.nix index 30e0c188bb70..2b143248948f 100644 --- a/pkgs/top-level/release-small.nix +++ b/pkgs/top-level/release-small.nix @@ -7,7 +7,13 @@ nixpkgsArgs ? { config = { allowUnfree = false; inHydra = true; }; } }: -with import ./release-lib.nix { inherit supportedSystems nixpkgsArgs; }; +let + release-lib = import ./release-lib.nix { + inherit supportedSystems nixpkgsArgs; + }; + + inherit (release-lib) all linux darwin mapTestOn unix; +in { diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix index a8f1e69b361f..c3ea17b85d6c 100644 --- a/pkgs/top-level/release.nix +++ b/pkgs/top-level/release.nix @@ -52,15 +52,30 @@ , attrNamesOnly ? false }: -let release-lib = import ./release-lib.nix { inherit supportedSystems scrubJobs nixpkgsArgs; }; in -with release-lib; - let + release-lib = import ./release-lib.nix { + inherit supportedSystems scrubJobs nixpkgsArgs; + }; + + inherit (release-lib) mapTestOn pkgs; + + inherit (release-lib.lib) + collect + elem + genAttrs + hasInfix + hasSuffix + id + isDerivation + optionals + ; + + inherit (release-lib.lib.attrsets) unionOfDisjoint; - supportDarwin = lib.genAttrs [ + supportDarwin = genAttrs [ "x86_64" "aarch64" - ] (arch: builtins.elem "${arch}-darwin" supportedSystems); + ] (arch: elem "${arch}-darwin" supportedSystems); nonPackageJobs = { tarball = import ./make-tarball.nix { inherit pkgs nixpkgs officialRelease supportedSystems; }; @@ -162,8 +177,8 @@ let jobs.tests.stdenv.hooks.patch-shebangs.x86_64-linux */ ] - ++ lib.collect lib.isDerivation jobs.stdenvBootstrapTools - ++ lib.optionals supportDarwin.x86_64 [ + ++ collect isDerivation jobs.stdenvBootstrapTools + ++ optionals supportDarwin.x86_64 [ jobs.stdenv.x86_64-darwin jobs.cargo.x86_64-darwin jobs.cachix.x86_64-darwin @@ -190,7 +205,7 @@ let jobs.tests.stdenv.hooks.patch-shebangs.x86_64-darwin */ ] - ++ lib.optionals supportDarwin.aarch64 [ + ++ optionals supportDarwin.aarch64 [ jobs.stdenv.aarch64-darwin jobs.cargo.aarch64-darwin jobs.cachix.aarch64-darwin @@ -210,8 +225,7 @@ let ]; }; - stdenvBootstrapTools = with lib; - genAttrs bootstrapConfigs (config: + stdenvBootstrapTools = genAttrs bootstrapConfigs (config: if hasInfix "-linux-" config then let bootstrap = import ../stdenv/linux/make-bootstrap-tools.nix { @@ -244,13 +258,13 @@ let # Conflicts usually cause silent job drops like in # https://github.com/NixOS/nixpkgs/pull/182058 jobs = let - packagePlatforms = if attrNamesOnly then lib.id else release-lib.packagePlatforms; + packagePlatforms = if attrNamesOnly then id else release-lib.packagePlatforms; packageJobs = { haskell.compiler = packagePlatforms pkgs.haskell.compiler; haskellPackages = packagePlatforms pkgs.haskellPackages; # Build selected packages (HLS) for multiple Haskell compilers to rebuild # the cache after a staging merge - haskell.packages = lib.genAttrs [ + haskell.packages = genAttrs [ # TODO: share this list between release.nix and release-haskell.nix "ghc90" "ghc92" @@ -285,8 +299,6 @@ let then pkgs // packageJobs else mapTestOn ((packagePlatforms pkgs) // packageJobs); in - lib.attrsets.unionOfDisjoint - nonPackageJobs - mapTestOn-packages; + unionOfDisjoint nonPackageJobs mapTestOn-packages; in jobs diff --git a/pkgs/top-level/unixtools.nix b/pkgs/top-level/unixtools.nix index bcbbd6799d88..454c4802dc91 100644 --- a/pkgs/top-level/unixtools.nix +++ b/pkgs/top-level/unixtools.nix @@ -10,9 +10,14 @@ # instance, if your program needs to use "ps", just list it as a build # input, not "procps" which requires Linux. -with lib; - let + inherit (lib) + getBin + getOutput + mapAttrs + platforms + ; + version = "1003.1-2008"; singleBinary = cmd: providers: let @@ -23,7 +28,7 @@ let meta = { mainProgram = cmd; priority = 10; - platforms = lib.platforms.${stdenv.hostPlatform.parsed.kernel.name} or lib.platforms.all; + platforms = platforms.${stdenv.hostPlatform.parsed.kernel.name} or platforms.all; }; passthru = { inherit provider; }; preferLocalBuild = true; @@ -187,7 +192,7 @@ let # Compatibility derivations # Provided for old usage of these commands. - compat = with bins; lib.mapAttrs makeCompat { + compat = with bins; mapAttrs makeCompat { procps = [ ps sysctl top watch ]; util-linux = [ fsck fdisk getopt hexdump mount script umount whereis write col column ]; |