diff --git a/doc/build-helpers/fetchers.chapter.md b/doc/build-helpers/fetchers.chapter.md index ad2378fd0e74..b326f189d50e 100644 --- a/doc/build-helpers/fetchers.chapter.md +++ b/doc/build-helpers/fetchers.chapter.md @@ -262,6 +262,10 @@ or *** ``` + +This function should only be used by non-redistributable software with an unfree license that we need to require the user to download manually. +It produces packages that cannot be built automatically. + ## `fetchtorrent` {#fetchtorrent} `fetchtorrent` expects two arguments. `url` which can either be a Magnet URI (Magnet Link) such as `magnet:?xt=urn:btih:dd8255ecdc7ca55fb0bbf81323d87062db1f6d1c` or an HTTP URL pointing to a `.torrent` file. It can also take a `config` argument which will craft a `settings.json` configuration file and give it to `transmission`, the underlying program that is performing the fetch. The available config options for `transmission` can be found [here](https://github.com/transmission/transmission/blob/main/docs/Editing-Configuration-Files.md#options) diff --git a/doc/build-helpers/trivial-build-helpers.chapter.md b/doc/build-helpers/trivial-build-helpers.chapter.md index 384e25035060..02d0a8682bf7 100644 --- a/doc/build-helpers/trivial-build-helpers.chapter.md +++ b/doc/build-helpers/trivial-build-helpers.chapter.md @@ -7,7 +7,9 @@ Like [`stdenv.mkDerivation`](#sec-using-stdenv), each of these build helpers cre `runCommand :: String -> AttrSet -> String -> Derivation` -`runCommand name drvAttrs buildCommand` returns a derivation that is built by running the specified shell commands. +The result of `runCommand name drvAttrs buildCommand` is a derivation that is built by running the specified shell commands. + +By default `runCommand` runs in a stdenv with no compiler environment, whereas [`runCommandCC`](#trivial-builder-runCommandCC) uses the default stdenv, `pkgs.stdenv`. `name :: String` : The name that Nix will append to the store path in the same way that `stdenv.mkDerivation` uses its `name` attribute. @@ -153,6 +155,12 @@ Write a text file to the Nix store. Default: `true` +`derivationArgs` (Attribute set, _optional_) + +: Extra arguments to pass to the underlying call to `stdenv.mkDerivation`. + + Default: `{}` + The resulting store path will include some variation of the name, and it will be a file unless `destination` is used, in which case it will be a directory. ::: {.example #ex-writeTextFile} diff --git a/nixos/modules/virtualisation/incus.nix b/nixos/modules/virtualisation/incus.nix index a561c5682ae5..74217b2411ac 100644 --- a/nixos/modules/virtualisation/incus.nix +++ b/nixos/modules/virtualisation/incus.nix @@ -164,19 +164,24 @@ in "network-online.target" "lxcfs.service" "incus.socket" - ]; + ] + ++ lib.optional config.virtualisation.vswitch.enable "ovs-vswitchd.service"; + requires = [ "lxcfs.service" "incus.socket" - ]; + ] + ++ lib.optional config.virtualisation.vswitch.enable "ovs-vswitchd.service"; + wants = [ "network-online.target" ]; - path = lib.mkIf config.boot.zfs.enabled [ + path = lib.optional config.boot.zfs.enabled [ config.boot.zfs.package "${config.boot.zfs.package}/lib/udev" - ]; + ] + ++ lib.optional config.virtualisation.vswitch.enable config.virtualisation.vswitch.package; environment = lib.mkMerge [ { # Override Path to the LXC template configuration directory diff --git a/nixos/tests/incus/default.nix b/nixos/tests/incus/default.nix index ff36fe9d6730..474a621c5ce9 100644 --- a/nixos/tests/incus/default.nix +++ b/nixos/tests/incus/default.nix @@ -11,6 +11,7 @@ boot.initrd.systemd.enable = true; }; }; lxd-to-incus = import ./lxd-to-incus.nix { inherit system pkgs; }; + openvswitch = import ./openvswitch.nix { inherit system pkgs; }; preseed = import ./preseed.nix { inherit system pkgs; }; socket-activated = import ./socket-activated.nix { inherit system pkgs; }; ui = import ./ui.nix {inherit system pkgs;}; diff --git a/nixos/tests/incus/openvswitch.nix b/nixos/tests/incus/openvswitch.nix new file mode 100644 index 000000000000..5d4aef031ad0 --- /dev/null +++ b/nixos/tests/incus/openvswitch.nix @@ -0,0 +1,65 @@ +import ../make-test-python.nix ({ pkgs, lib, ... } : + +{ + name = "incus-openvswitch"; + + meta = { + maintainers = lib.teams.lxc.members; + }; + + nodes.machine = { lib, ... }: { + virtualisation = { + incus.enable = true; + vswitch.enable = true; + incus.preseed = { + networks = [ + { + name = "nixostestbr0"; + type = "bridge"; + config = { + "bridge.driver" = "openvswitch"; + "ipv4.address" = "10.0.100.1/24"; + "ipv4.nat" = "true"; + }; + } + ]; + profiles = [ + { + name = "nixostest_default"; + devices = { + eth0 = { + name = "eth0"; + network = "nixostestbr0"; + type = "nic"; + }; + root = { + path = "/"; + pool = "default"; + size = "35GiB"; + type = "disk"; + }; + }; + } + ]; + storage_pools = [ + { + name = "nixostest_pool"; + driver = "dir"; + } + ]; + }; + }; + networking.nftables.enable = true; + }; + + testScript = '' + machine.wait_for_unit("incus.service") + machine.wait_for_unit("incus-preseed.service") + + with subtest("Verify openvswitch bridge"): + machine.succeed("incus network info nixostestbr0") + + with subtest("Verify openvswitch bridge"): + machine.succeed("ovs-vsctl br-exists nixostestbr0") + ''; +}) diff --git a/pkgs/applications/misc/keepassxc/default.nix b/pkgs/applications/misc/keepassxc/default.nix index ed7884ad2562..b40283538c87 100644 --- a/pkgs/applications/misc/keepassxc/default.nix +++ b/pkgs/applications/misc/keepassxc/default.nix @@ -40,13 +40,13 @@ stdenv.mkDerivation rec { pname = "keepassxc"; - version = "2.7.6"; + version = "2.7.7"; src = fetchFromGitHub { owner = "keepassxreboot"; repo = "keepassxc"; rev = version; - hash = "sha256-xgrkMz7BCBxjfxHsAz/CFLv1d175LnrAJIOZMM3GmU0="; + hash = "sha256-HjDzb1H3eMSraKbfHgg9S+w4TXNt40lQkDz+EChb5Ks="; }; env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang (toString [ diff --git a/pkgs/applications/science/logic/coq/default.nix b/pkgs/applications/science/logic/coq/default.nix index e52a51936180..37a8aba7d8c7 100644 --- a/pkgs/applications/science/logic/coq/default.nix +++ b/pkgs/applications/science/logic/coq/default.nix @@ -57,6 +57,7 @@ let "8.17.1".sha256 = "sha256-x+RwkbxMg9aR0L3WSCtpIz8jwA5cJA4tXAtHMZb20y4="; "8.18.0".sha256 = "sha256-WhiBs4nzPHQ0R24xAdM49kmxSCPOxiOVMA1iiMYunz4="; "8.19.0".sha256 = "sha256-ixsYCvCXpBHqJ71hLQklphlwoOO3i/6w2PJjllKqf9k="; + "8.19.1".sha256 = "sha256-kmZ8Uk8jpzjOd67aAPp3C+vU2oNaBw9pr7+Uixcgg94="; }; releaseRev = v: "V${v}"; fetched = import ../../../../build-support/coq/meta-fetch/default.nix diff --git a/pkgs/applications/video/kodi/addons/orftvthek/default.nix b/pkgs/applications/video/kodi/addons/orftvthek/default.nix index 634347be4826..4a6b4480b050 100644 --- a/pkgs/applications/video/kodi/addons/orftvthek/default.nix +++ b/pkgs/applications/video/kodi/addons/orftvthek/default.nix @@ -3,13 +3,13 @@ buildKodiAddon rec { pname = "orftvthek"; namespace = "plugin.video.orftvthek"; - version = "0.12.6"; + version = "0.12.9"; src = fetchFromGitHub { owner = "s0faking"; repo = namespace; rev = version; - sha256 = "sha256-r18vQ+2TSeflwByEAX33vIZG5qIGneraf5rLBugl5BU="; + sha256 = "sha256-bqGY9PPukn5/HJa3OqU5NM+ReeDJdVn60jXh1+2Qef8="; }; propagatedBuildInputs = [ diff --git a/pkgs/build-support/docker/default.nix b/pkgs/build-support/docker/default.nix index 0583f522bda3..ea464ebea18c 100644 --- a/pkgs/build-support/docker/default.nix +++ b/pkgs/build-support/docker/default.nix @@ -1200,6 +1200,7 @@ rec { # Root certificates for internet access SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt"; + NIX_SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt"; # https://github.com/NixOS/nix/blob/2.8.0/src/libstore/build/local-derivation-goal.cc#L1027-L1030 # PATH = "/path-not-set"; diff --git a/pkgs/build-support/trivial-builders/default.nix b/pkgs/build-support/trivial-builders/default.nix index cecf3f5eae84..df81d67d868d 100644 --- a/pkgs/build-support/trivial-builders/default.nix +++ b/pkgs/build-support/trivial-builders/default.nix @@ -9,55 +9,24 @@ in rec { - /* - Run the shell command `buildCommand` to produce a store path named `name`. - - The attributes in `env` are added to the environment prior to running the command. - Environment variables set by `stdenv.mkDerivation` take precedence. - - By default `runCommand` runs in a stdenv with no compiler environment. - `runCommandCC` uses the default stdenv, `pkgs.stdenv`. - - Example: - - ```nix - runCommand "name" {envVariable = true;} ''echo hello > $out''; - ``` - - ```nix - runCommandCC "name" {} ''gcc -o myfile myfile.c; cp myfile $out''; - ``` - - The `*Local` variants force a derivation to be built locally, - it is not substituted. - - This is intended for very cheap commands (<1s execution time). - It saves on the network roundrip and can speed up a build. - - It is the same as adding the special fields - - ```nix - { - preferLocalBuild = true; - allowSubstitutes = false; - } - ``` - - to a derivation’s attributes. - */ + # Docs in doc/build-helpers/trivial-build-helpers.chapter.md + # See https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-runCommand runCommand = name: env: runCommandWith { stdenv = stdenvNoCC; runLocal = false; inherit name; derivationArgs = env; }; + # Docs in doc/build-helpers/trivial-build-helpers.chapter.md + # See https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-runCommandLocal runCommandLocal = name: env: runCommandWith { stdenv = stdenvNoCC; runLocal = true; inherit name; derivationArgs = env; }; - + # Docs in doc/build-helpers/trivial-build-helpers.chapter.md + # See https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-runCommandCC runCommandCC = name: env: runCommandWith { stdenv = stdenv; runLocal = false; @@ -67,6 +36,7 @@ rec { # `runCommandCCLocal` left out on purpose. # We shouldn’t force the user to have a cc in scope. + # TODO: Move documentation for runCommandWith to the Nixpkgs manual /* Generalized version of the `runCommand`-variants which does customized behavior via a single @@ -112,47 +82,18 @@ rec { // builtins.removeAttrs derivationArgs [ "passAsFile" ]); - /* - Writes a text file to the nix store. - The contents of text is added to the file in the store. - - Example: - - - # Writes my-file to /nix/store/ - writeTextFile { - name = "my-file"; - text = '' - Contents of File - ''; - } - - - See also the `writeText` helper function below. - - - # Writes executable my-file to /nix/store//bin/my-file - writeTextFile { - name = "my-file"; - text = '' - Contents of File - ''; - executable = true; - destination = "/bin/my-file"; - } - - - */ + # Docs in doc/build-helpers/trivial-build-helpers.chapter.md + # See https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-writeTextFile writeTextFile = - { name # the name of the derivation + { name , text - , executable ? false # run chmod +x ? - , destination ? "" # relative path appended to $out eg "/bin/foo" - , checkPhase ? "" # syntax checks, e.g. for scripts + , executable ? false + , destination ? "" + , checkPhase ? "" , meta ? { } , allowSubstitutes ? false , preferLocalBuild ? true - , derivationArgs ? { } # Extra arguments to pass to `stdenv.mkDerivation` + , derivationArgs ? { } }: let matches = builtins.match "/bin/([^/]+)" destination; @@ -240,8 +181,9 @@ rec { meta.mainProgram = name; }; + # TODO: move parameter documentation to the Nixpkgs manual # See doc/build-helpers/trivial-build-helpers.chapter.md - # or https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-text-writing + # or https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-writeShellApplication writeShellApplication = { /* @@ -357,6 +299,7 @@ rec { }; # Create a C binary + # TODO: add to writers? pkgs/build-support/writers writeCBin = pname: code: runCommandCC pname { @@ -377,7 +320,9 @@ rec { $CC -x c code.c -o "$n" ''; - + # TODO: deduplicate with documentation in doc/build-helpers/trivial-build-helpers.chapter.md + # see also https://github.com/NixOS/nixpkgs/pull/249721 + # See https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-concatText /* concat a list of files to the nix store. The contents of files are added to the file in the store. @@ -426,7 +371,9 @@ rec { eval "$checkPhase" ''; - + # TODO: deduplicate with documentation in doc/build-helpers/trivial-build-helpers.chapter.md + # see also https://github.com/NixOS/nixpkgs/pull/249721 + # See https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-concatText /* Writes a text file to nix store with no optional parameters available. @@ -440,6 +387,9 @@ rec { */ concatText = name: files: concatTextFile { inherit name files; }; + # TODO: deduplicate with documentation in doc/build-helpers/trivial-build-helpers.chapter.md + # see also https://github.com/NixOS/nixpkgs/pull/249721 + # See https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-concatText /* Writes a text file to nix store with and mark it as executable. @@ -452,6 +402,10 @@ rec { /* + TODO: Deduplicate this documentation. + More docs in doc/build-helpers/trivial-build-helpers.chapter.md + See https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-symlinkJoin + Create a forest of symlinks to the files in `paths`. This creates a single derivation that replicates the directory structure @@ -528,6 +482,7 @@ rec { ${postBuild} ''; + # TODO: move linkFarm docs to the Nixpkgs manual /* Quickly create a set of symlinks to derivations. @@ -584,6 +539,7 @@ rec { ${lib.concatStrings linkCommands} ''; + # TODO: move linkFarmFromDrvs docs to the Nixpkgs manual /* Easily create a linkFarm from a set of derivations. @@ -609,6 +565,7 @@ rec { let mkEntryFromDrv = drv: { name = drv.name; path = drv; }; in linkFarm name (map mkEntryFromDrv drvs); + # TODO: move onlyBin docs to the Nixpkgs manual /* Produce a derivation that links to the target derivation's `/bin`, and *only* `/bin`. @@ -623,7 +580,8 @@ rec { ''; - # docs in doc/builders/special/makesetuphook.section.md + # Docs in doc/builders/special/makesetuphook.section.md + # See https://nixos.org/manual/nixpkgs/unstable/#sec-pkgs.makeSetupHook makeSetupHook = { name ? lib.warn "calling makeSetupHook without passing a name is deprecated." "hook" , deps ? [ ] @@ -665,8 +623,8 @@ rec { ''); - # Write the references (i.e. the runtime dependencies in the Nix store) of `path` to a file. - + # Docs in doc/build-helpers/trivial-build-helpers.chapter.md + # See https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-writeReferencesToFile writeReferencesToFile = path: runCommand "runtime-deps" { exportReferencesGraph = [ "graph" path ]; @@ -681,11 +639,8 @@ rec { done < graph ''; - /* - Write the set of references to a file, that is, their immediate dependencies. - - This produces the equivalent of `nix-store -q --references`. - */ + # Docs in doc/build-helpers/trivial-build-helpers.chapter.md + # See https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-writeDirectReferencesToFile writeDirectReferencesToFile = path: runCommand "runtime-references" { exportReferencesGraph = [ "graph" path ]; @@ -710,7 +665,7 @@ rec { sort ./references >$out ''; - + # TODO: move writeStringReferencesToFile docs to the Nixpkgs manual /* Extract a string's references to derivations and paths (its context) and write them to a text file, removing the input string @@ -793,21 +748,8 @@ rec { writeDirectReferencesToFile (writeText "string-file" string); - /* Print an error message if the file with the specified name and - hash doesn't exist in the Nix store. This function should only - be used by non-redistributable software with an unfree license - that we need to require the user to download manually. It produces - packages that cannot be built automatically. - - Example: - - requireFile { - name = "my-file"; - url = "http://example.com/download/"; - sha256 = "ffffffffffffffffffffffffffffffffffffffffffffffffffff"; - } - - */ + # Docs in doc/build-helpers/fetchers.chapter.md + # See https://nixos.org/manual/nixpkgs/unstable/#requirefile requireFile = { name ? null , sha256 ? null @@ -863,6 +805,7 @@ rec { }; + # TODO: move copyPathToStore docs to the Nixpkgs manual /* Copy a path to the Nix store. Nix automatically copies files to the store before stringifying paths. @@ -872,11 +815,13 @@ rec { copyPathToStore = builtins.filterSource (p: t: true); + # TODO: move copyPathsToStore docs to the Nixpkgs manual /* Copy a list of paths to the Nix store. */ copyPathsToStore = builtins.map copyPathToStore; + # TODO: move applyPatches docs to the Nixpkgs manual /* Applies a list of patches to a source directory. Example: @@ -922,6 +867,7 @@ rec { // (optionalAttrs (src?meta) { inherit (src) meta; }) // (removeAttrs args [ "src" "name" "patches" "prePatch" "postPatch" ])); + # TODO: move docs to Nixpkgs manual /* An immutable file in the store with a length of 0 bytes. */ emptyFile = runCommand "empty-file" { @@ -931,6 +877,7 @@ rec { preferLocalBuild = true; } "touch $out"; + # TODO: move docs to Nixpkgs manual /* An immutable empty directory in the store. */ emptyDirectory = runCommand "empty-directory" { diff --git a/pkgs/by-name/ja/jackass/package.nix b/pkgs/by-name/ja/jackass/package.nix new file mode 100644 index 000000000000..700ba4254091 --- /dev/null +++ b/pkgs/by-name/ja/jackass/package.nix @@ -0,0 +1,66 @@ +{ lib, stdenv, fetchFromGitHub, fetchzip, pkg-config, wine64, enableJackAssWine64 ? false }: + +let + # equal to vst-sdk in ../oxefmsynth/default.nix + vst-sdk = stdenv.mkDerivation (finalAttrs: { + name = "vstsdk3610_11_06_2018_build_37"; + src = fetchzip { + url = "https://web.archive.org/web/20181016150224if_/https://download.steinberg.net/sdk_downloads/${finalAttrs.name}.zip"; + hash = "sha256-cjYakxnqSDqSZ32FPK3OUhDpslOlavHh5SAVpng0QTU="; + }; + installPhase = '' + runHook preInstall + cp -r . $out + runHook postInstall + ''; + }); + +in +stdenv.mkDerivation (finalAttrs: { + pname = "jackass"; + version = "1.1"; + + src = fetchFromGitHub { + owner = "falkTX"; + repo = "JackAss"; + rev = "v${finalAttrs.version}"; + hash = "sha256-6mqG4H6iGvDbGnmMeP/vcvSnvUGClZUl06XpKovt50E="; + }; + + postPatch = '' + cp -r ${vst-sdk}/VST2_SDK/{public.sdk,pluginterfaces} vstsdk2.4 + ''; + + nativeBuildInputs = [ pkg-config ] ++ lib.optionals enableJackAssWine64 [ wine64 ]; + + makeFlags = [ "linux" ] ++ lib.optionals enableJackAssWine64 [ "wine64" ]; + + installPhase = '' + runHook preInstall + + install_dir="$out/lib/vst" + mkdir -p $install_dir + for file in JackAss.so JackAssWine64.dll; do + if test -f "$file"; then + cp $file $install_dir + fi + done + + runHook postInstall + ''; + + enableParallelBuilding = true; + + meta = with lib; { + description = "JackAss is a VST plugin that provides JACK-MIDI support for VST hosts."; + longDescription = '' + Simply load the plugin in your favourite host to get a JACK-MIDI port. + Optionally includes a special Wine build for running in Wine + applications. Set enableJackAssWine64 to true to enable this output. + ''; + homepage = "https://github.com/falkTX/JackAss"; + maintainers = with maintainers; [ PowerUser64 ]; + license = with licenses; [ mit unfree ]; + platforms = platforms.linux; + }; +}) diff --git a/pkgs/by-name/pq/pqiv/package.nix b/pkgs/by-name/pq/pqiv/package.nix index d3bb3efcf606..ec621a56dca3 100644 --- a/pkgs/by-name/pq/pqiv/package.nix +++ b/pkgs/by-name/pq/pqiv/package.nix @@ -14,13 +14,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "pqiv"; - version = "2.13"; + version = "2.13.1"; src = fetchFromGitHub { owner = "phillipberndt"; repo = "pqiv"; rev = finalAttrs.version; - hash = "sha256-Jlc6sd9lRWUC1/2GZnJ0EmVRHxCXP8dTZNZEhJBS7oQ="; + hash = "sha256-Op+N4zzq7MazjFvx5VisjsRXbIqLtWPv4hdVjmS7lPY="; }; nativeBuildInputs = [ pkg-config ]; diff --git a/pkgs/development/ocaml-modules/camlpdf/default.nix b/pkgs/development/ocaml-modules/camlpdf/default.nix index 6627ac75a86e..115bc5b2c55c 100644 --- a/pkgs/development/ocaml-modules/camlpdf/default.nix +++ b/pkgs/development/ocaml-modules/camlpdf/default.nix @@ -5,14 +5,14 @@ then throw "camlpdf is not available for OCaml ${ocaml.version}" else stdenv.mkDerivation rec { - version = "2.6"; + version = "2.7"; pname = "ocaml${ocaml.version}-camlpdf"; src = fetchFromGitHub { owner = "johnwhitington"; repo = "camlpdf"; rev = "v${version}"; - hash = "sha256-CJWVvZSbvSzG3PIr7w0vmbmY6tH59AgBAWRfDpQ9MCk="; + hash = "sha256-SVmLWffB7GF+Bu0tj5fIvQVMRh6uV3u2G3rC4cVH2Gw="; }; nativeBuildInputs = [ which ocaml findlib ]; diff --git a/pkgs/development/ocaml-modules/cpdf/default.nix b/pkgs/development/ocaml-modules/cpdf/default.nix index 3660182df370..30167f1c2ae2 100644 --- a/pkgs/development/ocaml-modules/cpdf/default.nix +++ b/pkgs/development/ocaml-modules/cpdf/default.nix @@ -6,13 +6,13 @@ else stdenv.mkDerivation rec { pname = "ocaml${ocaml.version}-cpdf"; - version = "2.6"; + version = "2.7"; src = fetchFromGitHub { owner = "johnwhitington"; repo = "cpdf-source"; rev = "v${version}"; - hash = "sha256-5gEv/lmca3FR16m4uxbCJ3y/XtTSBvoIojeKszc24ss="; + hash = "sha256-Tm+xvL2HNdQsD04I9eR9tLL0bs5Ls2q+IndLV/p9sHs="; }; nativeBuildInputs = [ ocaml findlib ]; diff --git a/pkgs/development/php-packages/composer/default.nix b/pkgs/development/php-packages/composer/default.nix index 1f9a16b197be..40709f4b4973 100644 --- a/pkgs/development/php-packages/composer/default.nix +++ b/pkgs/development/php-packages/composer/default.nix @@ -16,7 +16,7 @@ php.buildComposerProject (finalAttrs: { # use together with the version from this package to keep the # bootstrap phar file up-to-date together with the end user composer # package. - passthru.pharHash = "sha256-H/0L4/J+I3sa5H+ejyn5asf1CgvZ7vT4jNvpTdBL//A="; + passthru.pharHash = "sha256-BJuODtnyZNdwoFEIWM/7w1QBUQdZ7cmnhLOlxuAgvKw="; composer = callPackage ../../../build-support/php/pkgs/composer-phar.nix { inherit (finalAttrs) version; @@ -24,13 +24,13 @@ php.buildComposerProject (finalAttrs: { }; pname = "composer"; - version = "2.7.1"; + version = "2.7.2"; src = fetchFromGitHub { owner = "composer"; repo = "composer"; rev = finalAttrs.version; - hash = "sha256-OThWqY3m/pIas4qvR/kiYgc/2QrAbnsYEOxpHxKhDfM="; + hash = "sha256-Rev3OW1G+LVgJmHLwuV5u0s7F7lKrvtI43eS7y9SAYA="; }; nativeBuildInputs = [ makeBinaryWrapper ]; @@ -40,7 +40,7 @@ php.buildComposerProject (finalAttrs: { --prefix PATH : ${lib.makeBinPath [ _7zz cacert curl git unzip xz ]} ''; - vendorHash = "sha256-NJa6nu60HQeBJr7dd79ATptjcekgY35Jq9V40SrN9Ds"; + vendorHash = "sha256-JLMhjOradyo64mPNos0qtM5bTnAYTRvSWnFUQrLQNjw="; meta = { changelog = "https://github.com/composer/composer/releases/tag/${finalAttrs.version}"; diff --git a/pkgs/development/python-modules/vallox-websocket-api/default.nix b/pkgs/development/python-modules/vallox-websocket-api/default.nix index 22be3621a458..3d38c9a17ccb 100644 --- a/pkgs/development/python-modules/vallox-websocket-api/default.nix +++ b/pkgs/development/python-modules/vallox-websocket-api/default.nix @@ -13,7 +13,7 @@ buildPythonPackage rec { pname = "vallox-websocket-api"; - version = "5.1.0"; + version = "5.1.1"; pyproject = true; disabled = pythonOlder "3.9"; @@ -22,7 +22,7 @@ buildPythonPackage rec { owner = "yozik04"; repo = "vallox_websocket_api"; rev = "refs/tags/${version}"; - hash = "sha256-ZYcLoOYwQK1+txiBuCEIDp+tYM3eXFtOSR0iNIrIP0w="; + hash = "sha256-BhAI/bGzaSckyZJq7GYUldziotr2bMlA5cWgQEwiUcQ="; }; nativeBuildInputs = [ diff --git a/pkgs/development/tools/analysis/frama-c/default.nix b/pkgs/development/tools/analysis/frama-c/default.nix index 1bf477cf3d16..37b44e1f8044 100644 --- a/pkgs/development/tools/analysis/frama-c/default.nix +++ b/pkgs/development/tools/analysis/frama-c/default.nix @@ -37,12 +37,12 @@ in stdenv.mkDerivation rec { pname = "frama-c"; - version = "28.0"; + version = "28.1"; slang = "Nickel"; src = fetchurl { url = "https://frama-c.com/download/frama-c-${version}-${slang}.tar.gz"; - hash = "sha256-KWEogjMOy27d0LTKOvwEkrcND+szeaG46JMZTG4XOYM="; + hash = "sha256-AiC8dDt9okaM65JvMx7cfd+qfGA7pHli3j4zyOHj9ZM="; }; preConfigure = '' diff --git a/pkgs/servers/monitoring/telegraf/default.nix b/pkgs/servers/monitoring/telegraf/default.nix index 1345b3acc1d2..4d21ef645a70 100644 --- a/pkgs/servers/monitoring/telegraf/default.nix +++ b/pkgs/servers/monitoring/telegraf/default.nix @@ -8,7 +8,7 @@ buildGoModule rec { pname = "telegraf"; - version = "1.29.5"; + version = "1.30.0"; subPackages = [ "cmd/telegraf" ]; @@ -16,10 +16,10 @@ buildGoModule rec { owner = "influxdata"; repo = "telegraf"; rev = "v${version}"; - hash = "sha256-yVxpUKEmy7pllZQq6A0zIDekewh4BQX+/kaeLcZ2aLg="; + hash = "sha256-+dQMQsieer0/BfvAKnT35bjNjPjC0Z1houUqFBVIWDE="; }; - vendorHash = "sha256-amcI5X/xLOjItraG+twsv7sn5ei3mkZsclEd4TGiXwM="; + vendorHash = "sha256-6RfhSrb9mTt2IzEv3zzj26gChz7XKV5uazfwanNe7Pc="; proxyVendor = true; ldflags = [ diff --git a/pkgs/servers/sunshine/default.nix b/pkgs/servers/sunshine/default.nix index 331770a565d5..aa7b079fea19 100644 --- a/pkgs/servers/sunshine/default.nix +++ b/pkgs/servers/sunshine/default.nix @@ -1,6 +1,7 @@ { lib , stdenv , fetchFromGitHub +, fetchpatch , autoPatchelfHook , makeWrapper , buildNpmPackage @@ -39,29 +40,42 @@ , vulkan-loader , libappindicator , libnotify +, miniupnpc , config , cudaSupport ? config.cudaSupport -, cudaPackages ? {} +, cudaPackages ? { } }: -stdenv.mkDerivation rec { +let + stdenv' = if cudaSupport then cudaPackages.backendStdenv else stdenv; +in +stdenv'.mkDerivation rec { pname = "sunshine"; - version = "0.21.0"; + version = "0.22.0"; src = fetchFromGitHub { owner = "LizardByte"; repo = "Sunshine"; rev = "v${version}"; - sha256 = "sha256-uvQAJkoKazFLz5iTpYSAGYJQZ2EprQ+p9+tryqorFHM="; + sha256 = "sha256-O9U4zP1o6yWtzk+2DW7ueimvsTuajLY8IETlvCT4jTE="; fetchSubmodules = true; }; - # fetch node_modules needed for webui + patches = [ + # remove npm install as it needs internet access -- handled separately below + ./dont-build-webui.patch + # revert https://github.com/LizardByte/Sunshine/pull/2046 - let cmake install handle udev and systemd files + (fetchpatch { + url = "https://github.com/LizardByte/Sunshine/commit/0d4dfcd708c0027b7d8827a03163858800fa79fa.patch"; + hash = "sha256-77NtfX0zB7ty92AyFOz9wJoa1jHshlNbPQ7NOpqUuYo="; + revert = true; + }) + ]; + + # build webui ui = buildNpmPackage { inherit src version; pname = "sunshine-ui"; - npmDepsHash = "sha256-+T1XAf4SThoJLOFpnVxDa2qiKFLIKQPGewjA83GQovM="; - - dontNpmBuild = true; + npmDepsHash = "sha256-jAZUu2CfcqhC2xMiZYpY7KPCRVFQgT/kgUvSI+5Cpkc="; # use generated package-lock.json as upstream does not provide one postPatch = '' @@ -70,7 +84,7 @@ stdenv.mkDerivation rec { installPhase = '' mkdir -p $out - cp -r node_modules $out/ + cp -r * $out/ ''; }; @@ -121,6 +135,7 @@ stdenv.mkDerivation rec { svt-av1 libappindicator libnotify + miniupnpc ] ++ lib.optionals cudaSupport [ cudaPackages.cudatoolkit ] ++ lib.optionals stdenv.isx86_64 [ @@ -146,13 +161,13 @@ stdenv.mkDerivation rec { substituteInPlace packaging/linux/sunshine.desktop \ --replace '@PROJECT_NAME@' 'Sunshine' \ - --replace '@PROJECT_DESCRIPTION@' 'Self-hosted game stream host for Moonlight' + --replace '@PROJECT_DESCRIPTION@' 'Self-hosted game stream host for Moonlight' \ + --replace '/usr/bin/env systemctl start --u sunshine' 'sunshine' ''; preBuild = '' - # copy node_modules where they can be picked up by build - mkdir -p ../node_modules - cp -r ${ui}/node_modules/* ../node_modules + # copy webui where it can be picked up by build + cp -r ${ui}/build ../ ''; # allow Sunshine to find libvulkan diff --git a/pkgs/servers/sunshine/dont-build-webui.patch b/pkgs/servers/sunshine/dont-build-webui.patch new file mode 100644 index 000000000000..cba7a1e243b1 --- /dev/null +++ b/pkgs/servers/sunshine/dont-build-webui.patch @@ -0,0 +1,14 @@ +diff --git a/cmake/targets/common.cmake b/cmake/targets/common.cmake +index 3dd629e..acec58d 100644 +--- a/cmake/targets/common.cmake ++++ b/cmake/targets/common.cmake +@@ -37,8 +37,4 @@ endif() + + target_compile_options(sunshine PRIVATE $<$:${SUNSHINE_COMPILE_OPTIONS}>;$<$:${SUNSHINE_COMPILE_OPTIONS_CUDA};-std=c++17>) # cmake-lint: disable=C0301 + +-#WebUI build +-add_custom_target(web-ui ALL +- WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" +- COMMENT "Installing NPM Dependencies and Building the Web UI" +- COMMAND bash -c \"npm install && SUNSHINE_SOURCE_ASSETS_DIR=${SUNSHINE_SOURCE_ASSETS_DIR} SUNSHINE_ASSETS_DIR=${CMAKE_BINARY_DIR} npm run build\") # cmake-lint: disable=C0301 ++ diff --git a/pkgs/servers/sunshine/package-lock.json b/pkgs/servers/sunshine/package-lock.json index 0af94fdd8a10..ea31d56d727c 100644 --- a/pkgs/servers/sunshine/package-lock.json +++ b/pkgs/servers/sunshine/package-lock.json @@ -1,38 +1,513 @@ { - "name": "sunshine", + "name": "Sunshine", "lockfileVersion": 3, "requires": true, "packages": { "": { "dependencies": { - "@fortawesome/fontawesome-free": "6.4.2", - "bootstrap": "5.3.2", - "vue": "2.6.12" + "@fortawesome/fontawesome-free": "6.5.1", + "@popperjs/core": "2.11.8", + "@vitejs/plugin-vue": "4.6.2", + "bootstrap": "5.3.3", + "vite": "4.5.2", + "vite-plugin-ejs": "1.6.4", + "vue": "3.4.5" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.0.tgz", + "integrity": "sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" } }, "node_modules/@fortawesome/fontawesome-free": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.4.2.tgz", - "integrity": "sha512-m5cPn3e2+FDCOgi1mz0RexTUvvQibBebOUlUlW0+YrMjDTPkiJ6VTKukA1GRsvRw+12KyJndNjj0O4AgTxm2Pg==", + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.5.1.tgz", + "integrity": "sha512-CNy5vSwN3fsUStPRLX7fUYojyuzoEMSXPl7zSLJ8TgtRfjv24LOnOWKT2zYwaHZCJGkdyRnTmstR0P+Ah503Gw==", "hasInstallScript": true, "engines": { "node": ">=6" } }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, "node_modules/@popperjs/core": { "version": "2.11.8", "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", - "peer": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/popperjs" } }, + "node_modules/@vitejs/plugin-vue": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.6.2.tgz", + "integrity": "sha512-kqf7SGFoG+80aZG6Pf+gsZIVvGSCKE98JbiWqcCV9cThtg91Jav0yvYFC9Zb+jKetNGF6ZKeoaxgZfND21fWKw==", + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.0.0 || ^5.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.4.5", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.5.tgz", + "integrity": "sha512-Daka7P1z2AgKjzuueWXhwzIsKu0NkLB6vGbNVEV2iJ8GJTrzraZo/Sk4GWCMRtd/qVi3zwnk+Owbd/xSZbwHtQ==", + "dependencies": { + "@babel/parser": "^7.23.6", + "@vue/shared": "3.4.5", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.0.2" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.4.5", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.5.tgz", + "integrity": "sha512-J8YlxknJVd90SXFJ4HwGANSAXsx5I0lK30sO/zvYV7s5gXf7gZR7r/1BmZ2ju7RGH1lnc6bpBc6nL61yW+PsAQ==", + "dependencies": { + "@vue/compiler-core": "3.4.5", + "@vue/shared": "3.4.5" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.4.5", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.5.tgz", + "integrity": "sha512-jauvkDuSSUbP0ebhfNqljhShA90YEfX/0wZ+w40oZF43IjGyWYjqYaJbvMJwGOd+9+vODW6eSvnk28f0SGV7OQ==", + "dependencies": { + "@babel/parser": "^7.23.6", + "@vue/compiler-core": "3.4.5", + "@vue/compiler-dom": "3.4.5", + "@vue/compiler-ssr": "3.4.5", + "@vue/shared": "3.4.5", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.5", + "postcss": "^8.4.32", + "source-map-js": "^1.0.2" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.4.5", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.5.tgz", + "integrity": "sha512-DDdEcDzj2lWTMfUMMtEpLDhURai9LhM0zSZ219jCt7b2Vyl0/jy3keFgCPMitG0V1S1YG4Cmws3lWHWdxHQOpg==", + "dependencies": { + "@vue/compiler-dom": "3.4.5", + "@vue/shared": "3.4.5" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.4.5", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.5.tgz", + "integrity": "sha512-BcWkKvjdvqJwb7BhhFkXPLDCecX4d4a6GATvCduJQDLv21PkPowAE5GKuIE5p6RC07/Lp9FMkkq4AYCTVF5KlQ==", + "dependencies": { + "@vue/shared": "3.4.5" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.4.5", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.5.tgz", + "integrity": "sha512-wh9ELIOQKeWT9SaUPdLrsxRkZv14jp+SJm9aiQGWio+/MWNM3Lib0wE6CoKEqQ9+SCYyGjDBhTOTtO47kCgbkg==", + "dependencies": { + "@vue/reactivity": "3.4.5", + "@vue/shared": "3.4.5" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.4.5", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.5.tgz", + "integrity": "sha512-n5ewvOjyG3IEpqGBahdPXODFSpVlSz3H4LF76Sx0XAqpIOqyJ5bIb2PrdYuH2ogBMAQPh+o5tnoH4nJpBr8U0Q==", + "dependencies": { + "@vue/runtime-core": "3.4.5", + "@vue/shared": "3.4.5", + "csstype": "^3.1.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.4.5", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.5.tgz", + "integrity": "sha512-jOFc/VE87yvifQpNju12VcqimH8pBLxdcT+t3xMeiED1K6DfH9SORyhFEoZlW5TG2Vwfn3Ul5KE+1aC99xnSBg==", + "dependencies": { + "@vue/compiler-ssr": "3.4.5", + "@vue/shared": "3.4.5" + }, + "peerDependencies": { + "vue": "3.4.5" + } + }, + "node_modules/@vue/shared": { + "version": "3.4.5", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.5.tgz", + "integrity": "sha512-6XptuzlMvN4l4cDnDw36pdGEV+9njYkQ1ZE0Q6iZLwrKefKaOJyiFmcP3/KBDHbt72cJZGtllAc1GaHe6XGAyg==" + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/async": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==" + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, "node_modules/bootstrap": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.2.tgz", - "integrity": "sha512-D32nmNWiQHo94BKHLmOrdjlL05q1c8oxbtBphQFb9Z5to6eGRDCm0QgeaZ4zFBHzfg2++rqa2JkqCcxDy0sH0g==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.3.tgz", + "integrity": "sha512-8HLCdWgyoMguSO9o+aH+iuZ+aht+mzW0u3HIMzVu7Srrpv7EBBxTnrFlSCskwdY1+EOFQSm7uMJhNQHkdPcmjg==", "funding": [ { "type": "github", @@ -47,10 +522,373 @@ "@popperjs/core": "^2.11.8" } }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "node_modules/ejs": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz", + "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==", + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/esbuild": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jake": { + "version": "10.8.7", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz", + "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==", + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/magic-string": { + "version": "0.30.8", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.8.tgz", + "integrity": "sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/postcss": { + "version": "8.4.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", + "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/rollup": { + "version": "3.29.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", + "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/vite": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.2.tgz", + "integrity": "sha512-tBCZBNSBbHQkaGyhGCDUGqeo2ph8Fstyp6FMSvTtsXeZSPpSMGlviAOav2hxVTqFcx8Hj/twtWKsMJXNY0xI8w==", + "dependencies": { + "esbuild": "^0.18.10", + "postcss": "^8.4.27", + "rollup": "^3.27.1" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-plugin-ejs": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/vite-plugin-ejs/-/vite-plugin-ejs-1.6.4.tgz", + "integrity": "sha512-23p1RS4PiA0veXY5/gHZ60pl3pPvd8NEqdBsDgxNK8nM1rjFFDcVb0paNmuipzCgNP/Y0f/Id22M7Il4kvZ2jA==", + "dependencies": { + "ejs": "^3.1.8" + } + }, "node_modules/vue": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/vue/-/vue-2.6.12.tgz", - "integrity": "sha512-uhmLFETqPPNyuLLbsKz6ioJ4q7AZHzD8ZVFNATNyICSZouqP2Sz0rotWQC8UNBF6VGSCs5abnKJoStA6JbCbfg==" + "version": "3.4.5", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.5.tgz", + "integrity": "sha512-VH6nHFhLPjgu2oh5vEBXoNZxsGHuZNr3qf4PHClwJWw6IDqw6B3x+4J+ABdoZ0aJuT8Zi0zf3GpGlLQCrGWHrw==", + "dependencies": { + "@vue/compiler-dom": "3.4.5", + "@vue/compiler-sfc": "3.4.5", + "@vue/runtime-dom": "3.4.5", + "@vue/server-renderer": "3.4.5", + "@vue/shared": "3.4.5" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } } } } diff --git a/pkgs/tools/networking/croc/default.nix b/pkgs/tools/networking/croc/default.nix index de3c44608655..f6a16b11b54b 100644 --- a/pkgs/tools/networking/croc/default.nix +++ b/pkgs/tools/networking/croc/default.nix @@ -2,16 +2,16 @@ buildGoModule rec { pname = "croc"; - version = "9.6.13"; + version = "9.6.14"; src = fetchFromGitHub { owner = "schollz"; repo = pname; rev = "v${version}"; - sha256 = "sha256-uuE3Ci0JeWhYMHj5xO5UNZR4BOuaD15nMqFQFZIQCkY="; + sha256 = "sha256-0FtzPjaWJ1Q94rsx2WF7n24mQu2IsVBSQfddbPzQZ84="; }; - vendorHash = "sha256-pUWUYV1Ts/dFXUzufIWt5ETRQVpxIGzxRFq9jviG0Fs="; + vendorHash = "sha256-IsecKLKPJgM4IoKAn8k8ipSWamdTVXcfF9V3r87eApE="; subPackages = [ "." ]; diff --git a/pkgs/tools/networking/openssh/default.nix b/pkgs/tools/networking/openssh/default.nix index e13e9cb92731..770c735494f5 100644 --- a/pkgs/tools/networking/openssh/default.nix +++ b/pkgs/tools/networking/openssh/default.nix @@ -18,15 +18,15 @@ in openssh_hpn = common rec { pname = "openssh-with-hpn"; - version = "9.5p1"; + version = "9.7p1"; extraDesc = " with high performance networking patches"; src = fetchurl { url = "mirror://openbsd/OpenSSH/portable/openssh-${version}.tar.gz"; - hash = "sha256-8Cbnt5un+1QPdRgq+W3IqPHbOV+SK7yfbKYDZyaGCGs="; + hash = "sha256-SQQm92bYKidj/KzY2D6j1weYdQx70q/y5X3FZg93P/0="; }; - extraPatches = let url = "https://raw.githubusercontent.com/freebsd/freebsd-ports/700625bcd86b74cf3fb9536aeea250d7f8cd1fd5/security/openssh-portable/files/extra-patch-hpn"; in + extraPatches = let url = "https://raw.githubusercontent.com/freebsd/freebsd-ports/b3f86656fc67aa397f60747c85f7f7b967c3279d/security/openssh-portable/files/extra-patch-hpn"; in [ ./ssh-keysign-8.5.patch @@ -36,7 +36,7 @@ in inherit url; stripLen = 1; excludes = [ "channels.c" ]; - hash = "sha256-hYB3i0ifNOgGLYwElMJFcT+ktczLKciq3qw1tTHZHcc="; + hash = "sha256-MydulQvz8sDVQ6Up9U1yrsiyI5EGmyKl/stUk7DvVOU="; }) (fetchpatch { diff --git a/pkgs/tools/package-management/nix/common.nix b/pkgs/tools/package-management/nix/common.nix index d0840d206b67..19080e22ed3d 100644 --- a/pkgs/tools/package-management/nix/common.nix +++ b/pkgs/tools/package-management/nix/common.nix @@ -42,6 +42,7 @@ in , docbook5 , editline , flex +, git , gnutar , gtest , gzip @@ -54,6 +55,7 @@ in , libxml2 , libxslt , lowdown +, man , mdbook , mdbook-linkcheck , nlohmann_json @@ -142,6 +144,11 @@ self = stdenv.mkDerivation { aws-sdk-cpp ]; + installCheckInputs = lib.optionals atLeast221 [ + git + man + ]; + propagatedBuildInputs = [ boehmgc ] ++ lib.optionals (atLeast27) [ diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix index 92c988ea5d08..f5f2b81f6532 100644 --- a/pkgs/tools/package-management/nix/default.nix +++ b/pkgs/tools/package-management/nix/default.nix @@ -263,6 +263,11 @@ in lib.makeExtensible (self: ({ hash = "sha256-bfFe38BkoQws7om4gBtBWoNTLkt9piMXdLLoHYl+vBQ="; }; + nix_2_21 = common { + version = "2.21.0"; + hash = "sha256-9b9qJ+7rGjLKbIswMf0/2pgUWH/xOlYLk7P4WYNcGDs="; + }; + # The minimum Nix version supported by Nixpkgs # Note that some functionality *might* have been backported into this Nix version, # making this package an inaccurate representation of what features are available @@ -282,7 +287,7 @@ in lib.makeExtensible (self: ({ stable = addFallbackPathsCheck self.nix_2_18; - unstable = self.nix_2_20; + unstable = self.nix_2_21; } // lib.optionalAttrs config.allowAliases { nix_2_4 = throw "nixVersions.nix_2_4 has been removed"; 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 (lib) + catAttrs + concatLists + filter + optionalAttrs + unique + ; + inherit (libretro) fuse genesis-plus-gx mgba nestopia snes9x twenty-fortyeight; -in - -let self = rec { - - addonDir = "/share/kodi/addons"; - rel = "Nexus"; 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"; - addonUpdateScript = callPackage ../applications/video/kodi/addons/addon-update-script { }; + rel = "Nexus"; - # package builders + inherit callPackage kodi hasKodiAddon requiredKodiAddons; - buildKodiAddon = callPackage ../applications/video/kodi/build-kodi-addon.nix { }; + # 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; + }; + }); - buildKodiBinaryAddon = callPackage ../applications/video/kodi/build-kodi-binary-addon.nix { }; + # package update scripts - # regular packages + addonUpdateScript = callPackage ../applications/video/kodi/addons/addon-update-script { }; - kodi-platform = callPackage ../applications/video/kodi/addons/kodi-platform { }; + # package builders - # addon packages + buildKodiAddon = callPackage ../applications/video/kodi/build-kodi-addon.nix { }; - a4ksubtitles = callPackage ../applications/video/kodi/addons/a4ksubtitles { }; + buildKodiBinaryAddon = callPackage ../applications/video/kodi/build-kodi-binary-addon.nix { }; - arteplussept = callPackage ../applications/video/kodi/addons/arteplussept { }; + # regular packages - controller-topology-project = callPackage ../applications/video/kodi/addons/controller-topology-project { }; + kodi-platform = callPackage ../applications/video/kodi/addons/kodi-platform { }; - iagl = callPackage ../applications/video/kodi/addons/iagl { }; + # addon packages - invidious = callPackage ../applications/video/kodi/addons/invidious { }; + a4ksubtitles = callPackage ../applications/video/kodi/addons/a4ksubtitles { }; - libretro = callPackage ../applications/video/kodi/addons/libretro { }; + arteplussept = callPackage ../applications/video/kodi/addons/arteplussept { }; - libretro-2048 = callPackage ../applications/video/kodi/addons/libretro-2048 { inherit twenty-fortyeight; }; + controller-topology-project = callPackage ../applications/video/kodi/addons/controller-topology-project { }; - libretro-fuse = callPackage ../applications/video/kodi/addons/libretro-fuse { inherit fuse; }; + iagl = callPackage ../applications/video/kodi/addons/iagl { }; - libretro-genplus = callPackage ../applications/video/kodi/addons/libretro-genplus { inherit genesis-plus-gx; }; + invidious = callPackage ../applications/video/kodi/addons/invidious { }; - libretro-mgba = callPackage ../applications/video/kodi/addons/libretro-mgba { inherit mgba; }; + libretro = callPackage ../applications/video/kodi/addons/libretro { }; - libretro-nestopia = callPackage ../applications/video/kodi/addons/libretro-nestopia { inherit nestopia; }; + libretro-2048 = callPackage ../applications/video/kodi/addons/libretro-2048 { inherit twenty-fortyeight; }; - libretro-snes9x = callPackage ../applications/video/kodi/addons/libretro-snes9x { inherit snes9x; }; + libretro-fuse = callPackage ../applications/video/kodi/addons/libretro-fuse { inherit fuse; }; - jellyfin = callPackage ../applications/video/kodi/addons/jellyfin { }; + libretro-genplus = callPackage ../applications/video/kodi/addons/libretro-genplus { inherit genesis-plus-gx; }; - joystick = callPackage ../applications/video/kodi/addons/joystick { }; + libretro-mgba = callPackage ../applications/video/kodi/addons/libretro-mgba { inherit mgba; }; - keymap = callPackage ../applications/video/kodi/addons/keymap { }; + libretro-nestopia = callPackage ../applications/video/kodi/addons/libretro-nestopia { inherit nestopia; }; - mediacccde = callPackage ../applications/video/kodi/addons/mediacccde { }; + libretro-snes9x = callPackage ../applications/video/kodi/addons/libretro-snes9x { inherit snes9x; }; - mediathekview = callPackage ../applications/video/kodi/addons/mediathekview { }; + jellyfin = callPackage ../applications/video/kodi/addons/jellyfin { }; - netflix = callPackage ../applications/video/kodi/addons/netflix { }; + joystick = callPackage ../applications/video/kodi/addons/joystick { }; - orftvthek = callPackage ../applications/video/kodi/addons/orftvthek { }; + keymap = callPackage ../applications/video/kodi/addons/keymap { }; - radioparadise = callPackage ../applications/video/kodi/addons/radioparadise { }; + mediacccde = callPackage ../applications/video/kodi/addons/mediacccde { }; - svtplay = callPackage ../applications/video/kodi/addons/svtplay { }; + mediathekview = callPackage ../applications/video/kodi/addons/mediathekview { }; - steam-controller = callPackage ../applications/video/kodi/addons/steam-controller { }; + netflix = callPackage ../applications/video/kodi/addons/netflix { }; - steam-launcher = callPackage ../applications/video/kodi/addons/steam-launcher { }; + orftvthek = callPackage ../applications/video/kodi/addons/orftvthek { }; - steam-library = callPackage ../applications/video/kodi/addons/steam-library { }; + radioparadise = callPackage ../applications/video/kodi/addons/radioparadise { }; - somafm = callPackage ../applications/video/kodi/addons/somafm { }; + svtplay = callPackage ../applications/video/kodi/addons/svtplay { }; - pdfreader = callPackage ../applications/video/kodi/addons/pdfreader { }; + steam-controller = callPackage ../applications/video/kodi/addons/steam-controller { }; - pvr-hts = callPackage ../applications/video/kodi/addons/pvr-hts { }; + steam-launcher = callPackage ../applications/video/kodi/addons/steam-launcher { }; - pvr-hdhomerun = callPackage ../applications/video/kodi/addons/pvr-hdhomerun { }; + steam-library = callPackage ../applications/video/kodi/addons/steam-library { }; - pvr-iptvsimple = callPackage ../applications/video/kodi/addons/pvr-iptvsimple { }; + somafm = callPackage ../applications/video/kodi/addons/somafm { }; - pvr-vdr-vnsi = callPackage ../applications/video/kodi/addons/pvr-vdr-vnsi { }; + pdfreader = callPackage ../applications/video/kodi/addons/pdfreader { }; - osmc-skin = callPackage ../applications/video/kodi/addons/osmc-skin { }; + pvr-hts = callPackage ../applications/video/kodi/addons/pvr-hts { }; - vfs-libarchive = callPackage ../applications/video/kodi/addons/vfs-libarchive { }; + pvr-hdhomerun = callPackage ../applications/video/kodi/addons/pvr-hdhomerun { }; - vfs-rar = callPackage ../applications/video/kodi/addons/vfs-rar { }; + pvr-iptvsimple = callPackage ../applications/video/kodi/addons/pvr-iptvsimple { }; - vfs-sftp = callPackage ../applications/video/kodi/addons/vfs-sftp { }; + pvr-vdr-vnsi = callPackage ../applications/video/kodi/addons/pvr-vdr-vnsi { }; - visualization-fishbmc = callPackage ../applications/video/kodi/addons/visualization-fishbmc { }; + osmc-skin = callPackage ../applications/video/kodi/addons/osmc-skin { }; - visualization-goom = callPackage ../applications/video/kodi/addons/visualization-goom { }; + vfs-libarchive = callPackage ../applications/video/kodi/addons/vfs-libarchive { }; - visualization-matrix = callPackage ../applications/video/kodi/addons/visualization-matrix { }; + vfs-rar = callPackage ../applications/video/kodi/addons/vfs-rar { }; - visualization-pictureit = callPackage ../applications/video/kodi/addons/visualization-pictureit { }; + vfs-sftp = callPackage ../applications/video/kodi/addons/vfs-sftp { }; - visualization-projectm = callPackage ../applications/video/kodi/addons/visualization-projectm { }; + visualization-fishbmc = callPackage ../applications/video/kodi/addons/visualization-fishbmc { }; - visualization-shadertoy = callPackage ../applications/video/kodi/addons/visualization-shadertoy { }; + visualization-goom = callPackage ../applications/video/kodi/addons/visualization-goom { }; - visualization-spectrum = callPackage ../applications/video/kodi/addons/visualization-spectrum { }; + visualization-matrix = callPackage ../applications/video/kodi/addons/visualization-matrix { }; - visualization-starburst = callPackage ../applications/video/kodi/addons/visualization-starburst { }; + visualization-pictureit = callPackage ../applications/video/kodi/addons/visualization-pictureit { }; - visualization-waveform = callPackage ../applications/video/kodi/addons/visualization-waveform { }; + visualization-projectm = callPackage ../applications/video/kodi/addons/visualization-projectm { }; - youtube = callPackage ../applications/video/kodi/addons/youtube { }; + visualization-shadertoy = callPackage ../applications/video/kodi/addons/visualization-shadertoy { }; - # addon packages (dependencies) + visualization-spectrum = callPackage ../applications/video/kodi/addons/visualization-spectrum { }; - archive_tool = callPackage ../applications/video/kodi/addons/archive_tool { }; + visualization-starburst = callPackage ../applications/video/kodi/addons/visualization-starburst { }; - certifi = callPackage ../applications/video/kodi/addons/certifi { }; + visualization-waveform = callPackage ../applications/video/kodi/addons/visualization-waveform { }; - chardet = callPackage ../applications/video/kodi/addons/chardet { }; + youtube = callPackage ../applications/video/kodi/addons/youtube { }; - dateutil = callPackage ../applications/video/kodi/addons/dateutil { }; + # addon packages (dependencies) - defusedxml = callPackage ../applications/video/kodi/addons/defusedxml { }; + archive_tool = callPackage ../applications/video/kodi/addons/archive_tool { }; - future = callPackage ../applications/video/kodi/addons/future { }; + certifi = callPackage ../applications/video/kodi/addons/certifi { }; - idna = callPackage ../applications/video/kodi/addons/idna { }; + chardet = callPackage ../applications/video/kodi/addons/chardet { }; - infotagger = callPackage ../applications/video/kodi/addons/infotagger { }; + dateutil = callPackage ../applications/video/kodi/addons/dateutil { }; - inputstream-adaptive = callPackage ../applications/video/kodi/addons/inputstream-adaptive { }; + defusedxml = callPackage ../applications/video/kodi/addons/defusedxml { }; - inputstream-ffmpegdirect = callPackage ../applications/video/kodi/addons/inputstream-ffmpegdirect { }; + future = callPackage ../applications/video/kodi/addons/future { }; - inputstream-rtmp = callPackage ../applications/video/kodi/addons/inputstream-rtmp { }; + idna = callPackage ../applications/video/kodi/addons/idna { }; - inputstreamhelper = callPackage ../applications/video/kodi/addons/inputstreamhelper { }; + infotagger = callPackage ../applications/video/kodi/addons/infotagger { }; - kodi-six = callPackage ../applications/video/kodi/addons/kodi-six { }; + inputstream-adaptive = callPackage ../applications/video/kodi/addons/inputstream-adaptive { }; - myconnpy = callPackage ../applications/video/kodi/addons/myconnpy { }; + inputstream-ffmpegdirect = callPackage ../applications/video/kodi/addons/inputstream-ffmpegdirect { }; - requests = callPackage ../applications/video/kodi/addons/requests { }; + inputstream-rtmp = callPackage ../applications/video/kodi/addons/inputstream-rtmp { }; - requests-cache = callPackage ../applications/video/kodi/addons/requests-cache { }; + inputstreamhelper = callPackage ../applications/video/kodi/addons/inputstreamhelper { }; - routing = callPackage ../applications/video/kodi/addons/routing { }; + kodi-six = callPackage ../applications/video/kodi/addons/kodi-six { }; - sendtokodi = callPackage ../applications/video/kodi/addons/sendtokodi { }; + myconnpy = callPackage ../applications/video/kodi/addons/myconnpy { }; - signals = callPackage ../applications/video/kodi/addons/signals { }; + requests = callPackage ../applications/video/kodi/addons/requests { }; - simplejson = callPackage ../applications/video/kodi/addons/simplejson { }; + requests-cache = callPackage ../applications/video/kodi/addons/requests-cache { }; - six = callPackage ../applications/video/kodi/addons/six { }; + routing = callPackage ../applications/video/kodi/addons/routing { }; - sponsorblock = callPackage ../applications/video/kodi/addons/sponsorblock { }; + sendtokodi = callPackage ../applications/video/kodi/addons/sendtokodi { }; - urllib3 = callPackage ../applications/video/kodi/addons/urllib3 { }; + signals = callPackage ../applications/video/kodi/addons/signals { }; - websocket = callPackage ../applications/video/kodi/addons/websocket { }; + simplejson = callPackage ../applications/video/kodi/addons/simplejson { }; - xbmcswift2 = callPackage ../applications/video/kodi/addons/xbmcswift2 { }; + six = callPackage ../applications/video/kodi/addons/six { }; - typing_extensions = callPackage ../applications/video/kodi/addons/typing_extensions { }; + sponsorblock = callPackage ../applications/video/kodi/addons/sponsorblock { }; - arrow = callPackage ../applications/video/kodi/addons/arrow { }; + urllib3 = callPackage ../applications/video/kodi/addons/urllib3 { }; - trakt-module = callPackage ../applications/video/kodi/addons/trakt-module { }; + websocket = callPackage ../applications/video/kodi/addons/websocket { }; - trakt = callPackage ../applications/video/kodi/addons/trakt { }; -}; in self // lib.optionalAttrs config.allowAliases { + xbmcswift2 = callPackage ../applications/video/kodi/addons/xbmcswift2 { }; + + typing_extensions = callPackage ../applications/video/kodi/addons/typing_extensions { }; + + arrow = callPackage ../applications/video/kodi/addons/arrow { }; + + trakt-module = callPackage ../applications/video/kodi/addons/trakt-module { }; + + 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/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; + 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 lib.systems.examples.powernv linuxCommon; - ppc64le-musl = mapTestOnCross lib.systems.examples.musl-power linuxCommon; + ppc64le = mapTestOnCross systems.examples.powernv linuxCommon; + ppc64le-musl = mapTestOnCross systems.examples.musl-power linuxCommon; - android64 = mapTestOnCross lib.systems.examples.aarch64-android-prebuilt linuxCommon; - android32 = mapTestOnCross lib.systems.examples.armv7a-android-prebuilt linuxCommon; + android64 = mapTestOnCross systems.examples.aarch64-android-prebuilt linuxCommon; + android32 = mapTestOnCross systems.examples.armv7a-android-prebuilt linuxCommon; - wasi32 = mapTestOnCross lib.systems.examples.wasi32 wasiCommon; + wasi32 = mapTestOnCross 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; + 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 lib.systems.examples.x86_64-freebsd common; - x86_64-netbsd = mapTestOnCross lib.systems.examples.x86_64-netbsd common; + 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-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; + }; - supportDarwin = lib.genAttrs [ + inherit (release-lib) mapTestOn pkgs; + + inherit (release-lib.lib) + collect + elem + genAttrs + hasInfix + hasSuffix + id + isDerivation + optionals + ; + + inherit (release-lib.lib.attrsets) unionOfDisjoint; + + 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 ];