Merge staging-next into staging
This commit is contained in:
commit
0917422ffe
|
@ -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)
|
||||
|
|
|
@ -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}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;};
|
||||
|
|
65
nixos/tests/incus/openvswitch.nix
Normal file
65
nixos/tests/incus/openvswitch.nix
Normal file
|
@ -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")
|
||||
'';
|
||||
})
|
|
@ -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 [
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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/<store path>
|
||||
writeTextFile {
|
||||
name = "my-file";
|
||||
text = ''
|
||||
Contents of File
|
||||
'';
|
||||
}
|
||||
|
||||
|
||||
See also the `writeText` helper function below.
|
||||
|
||||
|
||||
# Writes executable my-file to /nix/store/<store path>/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"
|
||||
{
|
||||
|
|
66
pkgs/by-name/ja/jackass/package.nix
Normal file
66
pkgs/by-name/ja/jackass/package.nix
Normal file
|
@ -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;
|
||||
};
|
||||
})
|
|
@ -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 ];
|
||||
|
|
|
@ -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 ];
|
||||
|
|
|
@ -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 ];
|
||||
|
|
|
@ -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}";
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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 = ''
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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
|
||||
|
|
14
pkgs/servers/sunshine/dont-build-webui.patch
Normal file
14
pkgs/servers/sunshine/dont-build-webui.patch
Normal file
|
@ -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 $<$<COMPILE_LANGUAGE:CXX>:${SUNSHINE_COMPILE_OPTIONS}>;$<$<COMPILE_LANGUAGE:CUDA>:${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
|
||||
+
|
866
pkgs/servers/sunshine/package-lock.json
generated
866
pkgs/servers/sunshine/package-lock.json
generated
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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 = [ "." ];
|
||||
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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) [
|
||||
|
|
|
@ -267,6 +267,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
|
||||
|
@ -286,7 +291,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";
|
||||
|
||||
|
|
|
@ -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 {}
|
||||
);
|
||||
};
|
||||
|
||||
|
|
|
@ -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." { };
|
||||
|
|
|
@ -19,7 +19,15 @@
|
|||
, octave
|
||||
}:
|
||||
|
||||
with lib;
|
||||
let
|
||||
inherit (lib)
|
||||
catAttrs
|
||||
concatLists
|
||||
filter
|
||||
makeScope
|
||||
unique
|
||||
;
|
||||
in
|
||||
|
||||
makeScope newScope (self:
|
||||
let
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
;
|
||||
}
|
||||
|
|
|
@ -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 = {
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
||||
{
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 ];
|
||||
|
|
Loading…
Reference in New Issue
Block a user