Merge master into staging-next

This commit is contained in:
github-actions[bot] 2021-11-17 00:01:49 +00:00 committed by GitHub
commit 90829d83e5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
63 changed files with 2695 additions and 1929 deletions

View file

@ -603,6 +603,12 @@
fingerprint = "7931 EB4E 4712 D7BE 04F8 6D34 07EE 1FFC A58A 11C5"; fingerprint = "7931 EB4E 4712 D7BE 04F8 6D34 07EE 1FFC A58A 11C5";
}]; }];
}; };
amfl = {
email = "amfl@none.none";
github = "amfl";
githubId = 382798;
name = "amfl";
};
amiddelk = { amiddelk = {
email = "amiddelk@gmail.com"; email = "amiddelk@gmail.com";
github = "amiddelk"; github = "amiddelk";

View file

@ -203,7 +203,6 @@ in
]; ];
# Create missing swapfiles. # Create missing swapfiles.
# FIXME: support changing the size of existing swapfiles.
systemd.services = systemd.services =
let let
@ -223,11 +222,7 @@ in
${optionalString (sw.size != null) '' ${optionalString (sw.size != null) ''
currentSize=$(( $(stat -c "%s" "${sw.device}" 2>/dev/null || echo 0) / 1024 / 1024 )) currentSize=$(( $(stat -c "%s" "${sw.device}" 2>/dev/null || echo 0) / 1024 / 1024 ))
if [ "${toString sw.size}" != "$currentSize" ]; then if [ "${toString sw.size}" != "$currentSize" ]; then
fallocate -l ${toString sw.size}M "${sw.device}" ||
dd if=/dev/zero of="${sw.device}" bs=1M count=${toString sw.size} dd if=/dev/zero of="${sw.device}" bs=1M count=${toString sw.size}
if [ "${toString sw.size}" -lt "$currentSize" ]; then
truncate --size "${toString sw.size}M" "${sw.device}"
fi
chmod 0600 ${sw.device} chmod 0600 ${sw.device}
${optionalString (!sw.randomEncryption.enable) "mkswap ${sw.realDevice}"} ${optionalString (!sw.randomEncryption.enable) "mkswap ${sw.realDevice}"}
fi fi

View file

@ -294,7 +294,7 @@ in
hardware.opengl.extraPackages32 = optional offloadCfg.enable nvidia_x11.lib32; hardware.opengl.extraPackages32 = optional offloadCfg.enable nvidia_x11.lib32;
environment.systemPackages = [ nvidia_x11.bin ] environment.systemPackages = [ nvidia_x11.bin ]
++ optionals nvidiaSettings [ nvidia_x11.settings ] ++ optionals cfg.nvidiaSettings [ nvidia_x11.settings ]
++ optionals nvidiaPersistencedEnabled [ nvidia_x11.persistenced ]; ++ optionals nvidiaPersistencedEnabled [ nvidia_x11.persistenced ];
systemd.packages = optional cfg.powerManagement.enable nvidia_x11.out; systemd.packages = optional cfg.powerManagement.enable nvidia_x11.out;

View file

@ -14,4 +14,6 @@ with lib;
documentation.enable = mkDefault false; documentation.enable = mkDefault false;
documentation.nixos.enable = mkDefault false; documentation.nixos.enable = mkDefault false;
programs.command-not-found.enable = mkDefault false;
} }

View file

@ -65,6 +65,29 @@ in
''; '';
}; };
extraScanners = mkOption {
type = types.listOf types.path;
default = [];
description = ''
A list of paths to extra scanners to install in Plex's scanners
directory.
Every time the systemd unit for Plex starts up, all of the symlinks
in Plex's scanners directory will be cleared and this module will
symlink all of the paths specified here to that directory.
'';
example = literalExpression ''
[
(fetchFromGitHub {
owner = "ZeroQI";
repo = "Absolute-Series-Scanner";
rev = "773a39f502a1204b0b0255903cee4ed02c46fde0";
sha256 = "4l+vpiDdC8L/EeJowUgYyB3JPNTZ1sauN8liFAcK+PY=";
})
]
'';
};
package = mkOption { package = mkOption {
type = types.package; type = types.package;
default = pkgs.plex; default = pkgs.plex;
@ -113,6 +136,7 @@ in
# Configuration for our FHS userenv script # Configuration for our FHS userenv script
PLEX_DATADIR=cfg.dataDir; PLEX_DATADIR=cfg.dataDir;
PLEX_PLUGINS=concatMapStringsSep ":" builtins.toString cfg.extraPlugins; PLEX_PLUGINS=concatMapStringsSep ":" builtins.toString cfg.extraPlugins;
PLEX_SCANNERS=concatMapStringsSep ":" builtins.toString cfg.extraScanners;
# The following variables should be set by the FHS userenv script: # The following variables should be set by the FHS userenv script:
# PLEX_MEDIA_SERVER_APPLICATION_SUPPORT_DIR # PLEX_MEDIA_SERVER_APPLICATION_SUPPORT_DIR

View file

@ -131,6 +131,7 @@ let
"fou" "fou"
"xfrm" "xfrm"
"ifb" "ifb"
"batadv"
]) ])
(assertByteFormat "MTUBytes") (assertByteFormat "MTUBytes")
(assertMacAddress "MACAddress") (assertMacAddress "MACAddress")
@ -381,6 +382,29 @@ let
(assertInt "Table") (assertInt "Table")
(assertMinimum "Table" 0) (assertMinimum "Table" 0)
]; ];
sectionBatmanAdvanced = checkUnitConfig "BatmanAdvanced" [
(assertOnlyFields [
"GatewayMode"
"Aggregation"
"BridgeLoopAvoidance"
"DistributedArpTable"
"Fragmentation"
"HopPenalty"
"OriginatorIntervalSec"
"GatewayBandwithDown"
"GatewayBandwithUp"
"RoutingAlgorithm"
])
(assertValueOneOf "GatewayMode" ["off" "client" "server"])
(assertValueOneOf "Aggregation" boolValues)
(assertValueOneOf "BridgeLoopAvoidance" boolValues)
(assertValueOneOf "DistributedArpTable" boolValues)
(assertValueOneOf "Fragmentation" boolValues)
(assertInt "HopPenalty")
(assertRange "HopPenalty" 0 255)
(assertValueOneOf "RoutingAlgorithm" ["batman-v" "batman-iv"])
];
}; };
network = { network = {
@ -473,6 +497,7 @@ let
"IgnoreCarrierLoss" "IgnoreCarrierLoss"
"Xfrm" "Xfrm"
"KeepConfiguration" "KeepConfiguration"
"BatmanAdvanced"
]) ])
# Note: For DHCP the values both, none, v4, v6 are deprecated # Note: For DHCP the values both, none, v4, v6 are deprecated
(assertValueOneOf "DHCP" ["yes" "no" "ipv4" "ipv6"]) (assertValueOneOf "DHCP" ["yes" "no" "ipv4" "ipv6"])
@ -1056,6 +1081,21 @@ let
''; '';
}; };
batmanAdvancedConfig = mkOption {
default = {};
example = {
GatewayMode = "server";
RoutingAlgorithm = "batman-v";
};
type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionBatmanAdvanced;
description = ''
Each attribute in this set specifies an option in the
<literal>[BatmanAdvanced]</literal> section of the unit. See
<citerefentry><refentrytitle>systemd.netdev</refentrytitle>
<manvolnum>5</manvolnum></citerefentry> for details.
'';
};
}; };
addressOptions = { addressOptions = {
@ -1507,6 +1547,10 @@ let
[VRF] [VRF]
${attrsToSection def.vrfConfig} ${attrsToSection def.vrfConfig}
'' ''
+ optionalString (def.batmanAdvancedConfig != { }) ''
[BatmanAdvanced]
${attrsToSection def.batmanAdvancedConfig}
''
+ def.extraConfig; + def.extraConfig;
}; };

View file

@ -18,13 +18,13 @@ in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "imagemagick"; pname = "imagemagick";
version = "7.1.0-13"; version = "7.1.0-14";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ImageMagick"; owner = "ImageMagick";
repo = "ImageMagick"; repo = "ImageMagick";
rev = version; rev = version;
sha256 = "sha256-W/XqgYOlSailHQdNBYsvf2P9go9sblWayDLrQQlekro="; sha256 = "sha256-w4h4KEfmDC/dDgtk7xgEnIYvSfPlKfsvdFhx43Tn9GA=";
}; };
outputs = [ "out" "dev" "doc" ]; # bin/ isn't really big outputs = [ "out" "dev" "doc" ]; # bin/ isn't really big

View file

@ -31,9 +31,9 @@
} }
}, },
"dev": { "dev": {
"version": "97.0.4692.8", "version": "97.0.4692.20",
"sha256": "0n47jfxs05g55p69f5939jf5pgyw88n4cpg78k019n3zr2vlv1qf", "sha256": "1njgfz3kz1pyyaaskqc47ldy2gzc3c9a8mjib81nalzrqbmd3372",
"sha256bin64": "1gisqc6dz7yfigj0dji7cnx5jdcjz0gmn248cp2a6zs9mfvwwbqv", "sha256bin64": "06vsmzz8nvmx7hfqwvqfmq4h000dw22srxdrgrdfgh7mry0yvf4a",
"deps": { "deps": {
"gn": { "gn": {
"version": "2021-11-03", "version": "2021-11-03",

View file

@ -6,7 +6,7 @@
let let
nodeEnv = import ../../../../development/node-packages/node-env.nix { nodeEnv = import ../../../../development/node-packages/node-env.nix {
inherit (pkgs) stdenv lib python2 runCommand writeTextFile; inherit (pkgs) stdenv lib python2 runCommand writeTextFile writeShellScript;
inherit pkgs nodejs; inherit pkgs nodejs;
libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null; libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
}; };

View file

@ -179,10 +179,10 @@
"owner": "cloudflare", "owner": "cloudflare",
"provider-source-address": "registry.terraform.io/cloudflare/cloudflare", "provider-source-address": "registry.terraform.io/cloudflare/cloudflare",
"repo": "terraform-provider-cloudflare", "repo": "terraform-provider-cloudflare",
"rev": "v2.23.0", "rev": "v3.4.0",
"sha256": "0cyw6lddw3pj5lqra78qn0nd16ffay86vc8sqa68grx7ik9jgn7l", "sha256": "1w37wkpb785jfqq91piclcsrhy3idpbmwb90n5y7rkgmm37ij7ij",
"vendorSha256": "19fdwif81lqp848jhawd09b0lalslrwadd519vsdw03v2wp4p962", "vendorSha256": "004pb5xnvisq3j113i6qfvnh1j06nkpkgzav3wb08k0bl19b6jks",
"version": "2.23.0" "version": "3.4.0"
}, },
"cloudinit": { "cloudinit": {
"owner": "hashicorp", "owner": "hashicorp",

View file

@ -1,5 +1,5 @@
#!/usr/bin/env nix-shell #!/usr/bin/env nix-shell
#! nix-shell -i bash -p nodePackages.node2nix #! nix-shell -I nixpkgs=../../../.. -i bash -p nodePackages.node2nix
node2nix \ node2nix \
--node-env node-env.nix \ --node-env node-env.nix \

View file

@ -1,4 +1,4 @@
# This file has been generated by node2nix 1.8.0. Do not edit! # This file has been generated by node2nix 1.9.0. Do not edit!
{pkgs ? import <nixpkgs> { {pkgs ? import <nixpkgs> {
inherit system; inherit system;
@ -6,12 +6,12 @@
let let
nodeEnv = import ./node-env.nix { nodeEnv = import ./node-env.nix {
inherit (pkgs) lib stdenv python2 util-linux runCommand writeTextFile; inherit (pkgs) stdenv lib python2 runCommand writeTextFile writeShellScript;
inherit nodejs; inherit pkgs nodejs;
libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null; libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
}; };
in in
import ./node-packages.nix { import ./node-packages.nix {
inherit (pkgs) fetchurl fetchgit; inherit (pkgs) fetchurl nix-gitignore stdenv lib fetchgit;
inherit nodeEnv; inherit nodeEnv;
} }

View file

@ -1,8 +1,11 @@
# This file originates from node2nix # This file originates from node2nix
{lib, stdenv, nodejs, python2, util-linux, libtool, runCommand, writeTextFile}: {lib, stdenv, nodejs, python2, pkgs, libtool, runCommand, writeTextFile, writeShellScript}:
let let
# Workaround to cope with utillinux in Nixpkgs 20.09 and util-linux in Nixpkgs master
utillinux = if pkgs ? utillinux then pkgs.utillinux else pkgs.util-linux;
python = if nodejs ? python then nodejs.python else python2; python = if nodejs ? python then nodejs.python else python2;
# Create a tar wrapper that filters all the 'Ignoring unknown extended header keyword' noise # Create a tar wrapper that filters all the 'Ignoring unknown extended header keyword' noise
@ -37,36 +40,22 @@ let
''; '';
}; };
includeDependencies = {dependencies}: # Common shell logic
lib.optionalString (dependencies != []) installPackage = writeShellScript "install-package" ''
(lib.concatMapStrings (dependency: installPackage() {
'' local packageName=$1 src=$2
# Bundle the dependencies of the package
mkdir -p node_modules
cd node_modules
# Only include dependencies if they don't exist. They may also be bundled in the package. local strippedName
if [ ! -e "${dependency.name}" ]
then
${composePackage dependency}
fi
cd .. local DIR=$PWD
''
) dependencies);
# Recursively composes the dependencies of a package
composePackage = { name, packageName, src, dependencies ? [], ... }@args:
builtins.addErrorContext "while evaluating node package '${packageName}'" ''
DIR=$(pwd)
cd $TMPDIR cd $TMPDIR
unpackFile ${src} unpackFile $src
# Make the base dir in which the target dependency resides first # Make the base dir in which the target dependency resides first
mkdir -p "$(dirname "$DIR/${packageName}")" mkdir -p "$(dirname "$DIR/$packageName")"
if [ -f "${src}" ] if [ -f "$src" ]
then then
# Figure out what directory has been unpacked # Figure out what directory has been unpacked
packageDir="$(find . -maxdepth 1 -type d | tail -1)" packageDir="$(find . -maxdepth 1 -type d | tail -1)"
@ -76,28 +65,53 @@ let
chmod -R u+w "$packageDir" chmod -R u+w "$packageDir"
# Move the extracted tarball into the output folder # Move the extracted tarball into the output folder
mv "$packageDir" "$DIR/${packageName}" mv "$packageDir" "$DIR/$packageName"
elif [ -d "${src}" ] elif [ -d "$src" ]
then then
# Get a stripped name (without hash) of the source directory. # Get a stripped name (without hash) of the source directory.
# On old nixpkgs it's already set internally. # On old nixpkgs it's already set internally.
if [ -z "$strippedName" ] if [ -z "$strippedName" ]
then then
strippedName="$(stripHash ${src})" strippedName="$(stripHash $src)"
fi fi
# Restore write permissions to make building work # Restore write permissions to make building work
chmod -R u+w "$strippedName" chmod -R u+w "$strippedName"
# Move the extracted directory into the output folder # Move the extracted directory into the output folder
mv "$strippedName" "$DIR/${packageName}" mv "$strippedName" "$DIR/$packageName"
fi fi
# Unset the stripped name to not confuse the next unpack step # Change to the package directory to install dependencies
unset strippedName cd "$DIR/$packageName"
}
'';
# Include the dependencies of the package # Bundle the dependencies of the package
cd "$DIR/${packageName}" #
# Only include dependencies if they don't exist. They may also be bundled in the package.
includeDependencies = {dependencies}:
lib.optionalString (dependencies != []) (
''
mkdir -p node_modules
cd node_modules
''
+ (lib.concatMapStrings (dependency:
''
if [ ! -e "${dependency.name}" ]; then
${composePackage dependency}
fi
''
) dependencies)
+ ''
cd ..
''
);
# Recursively composes the dependencies of a package
composePackage = { name, packageName, src, dependencies ? [], ... }@args:
builtins.addErrorContext "while evaluating node package '${packageName}'" ''
installPackage "${packageName}" "${src}"
${includeDependencies { inherit dependencies; }} ${includeDependencies { inherit dependencies; }}
cd .. cd ..
${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."} ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
@ -242,8 +256,8 @@ let
if(fs.existsSync("./package-lock.json")) { if(fs.existsSync("./package-lock.json")) {
var packageLock = JSON.parse(fs.readFileSync("./package-lock.json")); var packageLock = JSON.parse(fs.readFileSync("./package-lock.json"));
if(packageLock.lockfileVersion !== 1) { if(![1, 2].includes(packageLock.lockfileVersion)) {
process.stderr.write("Sorry, I only understand lock file version 1!\n"); process.stderr.write("Sorry, I only understand lock file versions 1 and 2!\n");
process.exit(1); process.exit(1);
} }
@ -388,15 +402,16 @@ let
, dontStrip ? true , dontStrip ? true
, unpackPhase ? "true" , unpackPhase ? "true"
, buildPhase ? "true" , buildPhase ? "true"
, meta ? {}
, ... }@args: , ... }@args:
let let
extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "preRebuild" "unpackPhase" "buildPhase" ]; extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "preRebuild" "unpackPhase" "buildPhase" "meta" ];
in in
stdenv.mkDerivation ({ stdenv.mkDerivation ({
name = "node_${name}-${version}"; name = "${name}-${version}";
buildInputs = [ tarWrapper python nodejs ] buildInputs = [ tarWrapper python nodejs ]
++ lib.optional (stdenv.isLinux) util-linux ++ lib.optional (stdenv.isLinux) utillinux
++ lib.optional (stdenv.isDarwin) libtool ++ lib.optional (stdenv.isDarwin) libtool
++ buildInputs; ++ buildInputs;
@ -411,6 +426,8 @@ let
passAsFile = [ "compositionScript" "pinpointDependenciesScript" ]; passAsFile = [ "compositionScript" "pinpointDependenciesScript" ];
installPhase = '' installPhase = ''
source ${installPackage}
# Create and enter a root node_modules/ folder # Create and enter a root node_modules/ folder
mkdir -p $out/lib/node_modules mkdir -p $out/lib/node_modules
cd $out/lib/node_modules cd $out/lib/node_modules
@ -443,10 +460,15 @@ let
# Run post install hook, if provided # Run post install hook, if provided
runHook postInstall runHook postInstall
''; '';
meta = {
# default to Node.js' platforms
platforms = nodejs.meta.platforms;
} // meta;
} // extraArgs); } // extraArgs);
# Builds a development shell # Builds a node environment (a node_modules folder and a set of binaries)
buildNodeShell = buildNodeDependencies =
{ name { name
, packageName , packageName
, version , version
@ -465,12 +487,12 @@ let
let let
extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" ]; extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" ];
in
nodeDependencies = stdenv.mkDerivation ({ stdenv.mkDerivation ({
name = "node-dependencies-${name}-${version}"; name = "node-dependencies-${name}-${version}";
buildInputs = [ tarWrapper python nodejs ] buildInputs = [ tarWrapper python nodejs ]
++ lib.optional (stdenv.isLinux) util-linux ++ lib.optional (stdenv.isLinux) utillinux
++ lib.optional (stdenv.isDarwin) libtool ++ lib.optional (stdenv.isDarwin) libtool
++ buildInputs; ++ buildInputs;
@ -483,6 +505,8 @@ let
passAsFile = [ "includeScript" "pinpointDependenciesScript" ]; passAsFile = [ "includeScript" "pinpointDependenciesScript" ];
installPhase = '' installPhase = ''
source ${installPackage}
mkdir -p $out/${packageName} mkdir -p $out/${packageName}
cd $out/${packageName} cd $out/${packageName}
@ -512,11 +536,32 @@ let
ln -s $out/lib/node_modules/.bin $out/bin ln -s $out/lib/node_modules/.bin $out/bin
''; '';
} // extraArgs); } // extraArgs);
# Builds a development shell
buildNodeShell =
{ name
, packageName
, version
, src
, dependencies ? []
, buildInputs ? []
, production ? true
, npmFlags ? ""
, dontNpmInstall ? false
, bypassCache ? false
, reconstructLock ? false
, dontStrip ? true
, unpackPhase ? "true"
, buildPhase ? "true"
, ... }@args:
let
nodeDependencies = buildNodeDependencies args;
in in
stdenv.mkDerivation { stdenv.mkDerivation {
name = "node-shell-${name}-${version}"; name = "node-shell-${name}-${version}";
buildInputs = [ python nodejs ] ++ lib.optional (stdenv.isLinux) util-linux ++ buildInputs; buildInputs = [ python nodejs ] ++ lib.optional (stdenv.isLinux) utillinux ++ buildInputs;
buildCommand = '' buildCommand = ''
mkdir -p $out/bin mkdir -p $out/bin
cat > $out/bin/shell <<EOF cat > $out/bin/shell <<EOF
@ -538,5 +583,6 @@ in
{ {
buildNodeSourceDist = lib.makeOverridable buildNodeSourceDist; buildNodeSourceDist = lib.makeOverridable buildNodeSourceDist;
buildNodePackage = lib.makeOverridable buildNodePackage; buildNodePackage = lib.makeOverridable buildNodePackage;
buildNodeDependencies = lib.makeOverridable buildNodeDependencies;
buildNodeShell = lib.makeOverridable buildNodeShell; buildNodeShell = lib.makeOverridable buildNodeShell;
} }

File diff suppressed because it is too large Load diff

View file

@ -1,4 +1,4 @@
{ lib, fetchFromGitHub, python3, glib, cairo, pango, pkg-config, libxcb, xcbutilcursor }: { lib, fetchFromGitHub, python3, mypy, glib, cairo, pango, pkg-config, libxcb, xcbutilcursor }:
let let
enabled-xcffib = cairocffi-xcffib: cairocffi-xcffib.override { enabled-xcffib = cairocffi-xcffib: cairocffi-xcffib.override {
@ -52,6 +52,11 @@ let
xkbcommon xkbcommon
]; ];
# for `qtile check`, needs `stubtest` and `mypy` commands
makeWrapperArgs = [
"--suffix PATH : ${lib.makeBinPath [ mypy ]}"
];
doCheck = false; # Requires X server #TODO this can be worked out with the existing NixOS testing infrastructure. doCheck = false; # Requires X server #TODO this can be worked out with the existing NixOS testing infrastructure.
meta = with lib; { meta = with lib; {

View file

@ -8,7 +8,7 @@
}@args: }@args:
let let
baseUrl = "https://${githubBase}/${owner}/${repo}"; baseUrl = "https://${githubBase}/${owner}/${repo}";
passthruAttrs = removeAttrs args [ "owner" "repo" "rev" "fetchSubmodules" "private" "githubBase" "varPrefix" ]; passthruAttrs = removeAttrs args [ "owner" "repo" "rev" "fetchSubmodules" "forceFetchGit" "private" "githubBase" "varPrefix" ];
varBase = "NIX${if varPrefix == null then "" else "_${varPrefix}"}_GITHUB_PRIVATE_"; varBase = "NIX${if varPrefix == null then "" else "_${varPrefix}"}_GITHUB_PRIVATE_";
useFetchGit = fetchSubmodules || (leaveDotGit == true) || deepClone || forceFetchGit; useFetchGit = fetchSubmodules || (leaveDotGit == true) || deepClone || forceFetchGit;
# We prefer fetchzip in cases we don't need submodules as the hash # We prefer fetchzip in cases we don't need submodules as the hash

View file

@ -7,13 +7,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "gnome-shell-extension-sound-output-device-chooser"; pname = "gnome-shell-extension-sound-output-device-chooser";
version = "38"; version = "39";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "kgshank"; owner = "kgshank";
repo = "gse-sound-output-device-chooser"; repo = "gse-sound-output-device-chooser";
rev = version; rev = version;
sha256 = "sha256-LZ+C9iK+j7+DEscYCIObxXc0Bn0Z0xSsEFMZxc8REWA="; sha256 = "sha256-RFdBdpKsz2MjdzxWX4UFwah+e68dqrkvm7ql0RAZZwg=";
}; };
patches = [ patches = [

View file

@ -6,7 +6,7 @@
let let
nodeEnv = import ../../../node-packages/node-env.nix { nodeEnv = import ../../../node-packages/node-env.nix {
inherit (pkgs) stdenv lib python2 runCommand writeTextFile; inherit (pkgs) stdenv lib python2 runCommand writeTextFile writeShellScript;
inherit pkgs nodejs; inherit pkgs nodejs;
libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null; libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
}; };

View file

@ -156,7 +156,10 @@ runCommand drvName
''; '';
preferLocalBuild = true; preferLocalBuild = true;
allowSubstitutes = false; allowSubstitutes = false;
passthru = { unwrapped = flutter; }; passthru = {
unwrapped = flutter;
inherit dart;
};
meta = with lib; { meta = with lib; {
description = "Flutter is Google's SDK for building mobile, web and desktop with Dart"; description = "Flutter is Google's SDK for building mobile, web and desktop with Dart";
longDescription = '' longDescription = ''

View file

@ -6,13 +6,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "unicorn"; pname = "unicorn";
version = "1.0.3"; version = "2.0.0-rc4";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "unicorn-engine"; owner = "unicorn-engine";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "079azb1df4nwsnsck36b200rnf03aqilw30h3fiaqi1ixash957k"; sha256 = "sha256-dNBebXp8HVmmY1RVRYuRFoJ3PStCf4taNTeYKi2lhQM=";
}; };
nativeBuildInputs = [ pkg-config cmake ]; nativeBuildInputs = [ pkg-config cmake ];

View file

@ -6,7 +6,7 @@
let let
nodeEnv = import ../../node-packages/node-env.nix { nodeEnv = import ../../node-packages/node-env.nix {
inherit (pkgs) stdenv lib python2 runCommand writeTextFile; inherit (pkgs) stdenv lib python2 runCommand writeTextFile writeShellScript;
inherit pkgs nodejs; inherit pkgs nodejs;
libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null; libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
}; };

View file

@ -6,7 +6,7 @@
let let
nodeEnv = import ./node-env.nix { nodeEnv = import ./node-env.nix {
inherit (pkgs) stdenv lib python2 runCommand writeTextFile; inherit (pkgs) stdenv lib python2 runCommand writeTextFile writeShellScript;
inherit pkgs nodejs; inherit pkgs nodejs;
libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null; libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
}; };

View file

@ -243,6 +243,11 @@ let
url = "https://github.com/svanderburg/node2nix/commit/58736093161f2d237c17e75a96529b018cd0ac64.patch"; url = "https://github.com/svanderburg/node2nix/commit/58736093161f2d237c17e75a96529b018cd0ac64.patch";
sha256 = "0sif7803c9g6gjmmdniw5qxrq5igiz9nqdmdrcf1hxfi5x43a32h"; sha256 = "0sif7803c9g6gjmmdniw5qxrq5igiz9nqdmdrcf1hxfi5x43a32h";
}) })
# Extract common logic from composePackage to a shell function
(fetchpatch {
url = "https://github.com/svanderburg/node2nix/commit/e4c951971df6c9f9584c7252971c13b55c369916.patch";
sha256 = "0w8fcyr12g2340rn06isv40jkmz2khmak81c95zpkjgipzx7hp7w";
})
]; ];
}; };
postInstall = '' postInstall = ''

View file

@ -1,6 +1,6 @@
# This file originates from node2nix # This file originates from node2nix
{lib, stdenv, nodejs, python2, pkgs, libtool, runCommand, writeTextFile}: {lib, stdenv, nodejs, python2, pkgs, libtool, runCommand, writeTextFile, writeShellScript}:
let let
# Workaround to cope with utillinux in Nixpkgs 20.09 and util-linux in Nixpkgs master # Workaround to cope with utillinux in Nixpkgs 20.09 and util-linux in Nixpkgs master
@ -40,36 +40,22 @@ let
''; '';
}; };
includeDependencies = {dependencies}: # Common shell logic
lib.optionalString (dependencies != []) installPackage = writeShellScript "install-package" ''
(lib.concatMapStrings (dependency: installPackage() {
'' local packageName=$1 src=$2
# Bundle the dependencies of the package
mkdir -p node_modules
cd node_modules
# Only include dependencies if they don't exist. They may also be bundled in the package. local strippedName
if [ ! -e "${dependency.name}" ]
then
${composePackage dependency}
fi
cd .. local DIR=$PWD
''
) dependencies);
# Recursively composes the dependencies of a package
composePackage = { name, packageName, src, dependencies ? [], ... }@args:
builtins.addErrorContext "while evaluating node package '${packageName}'" ''
DIR=$(pwd)
cd $TMPDIR cd $TMPDIR
unpackFile ${src} unpackFile $src
# Make the base dir in which the target dependency resides first # Make the base dir in which the target dependency resides first
mkdir -p "$(dirname "$DIR/${packageName}")" mkdir -p "$(dirname "$DIR/$packageName")"
if [ -f "${src}" ] if [ -f "$src" ]
then then
# Figure out what directory has been unpacked # Figure out what directory has been unpacked
packageDir="$(find . -maxdepth 1 -type d | tail -1)" packageDir="$(find . -maxdepth 1 -type d | tail -1)"
@ -79,28 +65,53 @@ let
chmod -R u+w "$packageDir" chmod -R u+w "$packageDir"
# Move the extracted tarball into the output folder # Move the extracted tarball into the output folder
mv "$packageDir" "$DIR/${packageName}" mv "$packageDir" "$DIR/$packageName"
elif [ -d "${src}" ] elif [ -d "$src" ]
then then
# Get a stripped name (without hash) of the source directory. # Get a stripped name (without hash) of the source directory.
# On old nixpkgs it's already set internally. # On old nixpkgs it's already set internally.
if [ -z "$strippedName" ] if [ -z "$strippedName" ]
then then
strippedName="$(stripHash ${src})" strippedName="$(stripHash $src)"
fi fi
# Restore write permissions to make building work # Restore write permissions to make building work
chmod -R u+w "$strippedName" chmod -R u+w "$strippedName"
# Move the extracted directory into the output folder # Move the extracted directory into the output folder
mv "$strippedName" "$DIR/${packageName}" mv "$strippedName" "$DIR/$packageName"
fi fi
# Unset the stripped name to not confuse the next unpack step # Change to the package directory to install dependencies
unset strippedName cd "$DIR/$packageName"
}
'';
# Include the dependencies of the package # Bundle the dependencies of the package
cd "$DIR/${packageName}" #
# Only include dependencies if they don't exist. They may also be bundled in the package.
includeDependencies = {dependencies}:
lib.optionalString (dependencies != []) (
''
mkdir -p node_modules
cd node_modules
''
+ (lib.concatMapStrings (dependency:
''
if [ ! -e "${dependency.name}" ]; then
${composePackage dependency}
fi
''
) dependencies)
+ ''
cd ..
''
);
# Recursively composes the dependencies of a package
composePackage = { name, packageName, src, dependencies ? [], ... }@args:
builtins.addErrorContext "while evaluating node package '${packageName}'" ''
installPackage "${packageName}" "${src}"
${includeDependencies { inherit dependencies; }} ${includeDependencies { inherit dependencies; }}
cd .. cd ..
${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."} ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
@ -415,6 +426,8 @@ let
passAsFile = [ "compositionScript" "pinpointDependenciesScript" ]; passAsFile = [ "compositionScript" "pinpointDependenciesScript" ];
installPhase = '' installPhase = ''
source ${installPackage}
# Create and enter a root node_modules/ folder # Create and enter a root node_modules/ folder
mkdir -p $out/lib/node_modules mkdir -p $out/lib/node_modules
cd $out/lib/node_modules cd $out/lib/node_modules
@ -492,6 +505,8 @@ let
passAsFile = [ "includeScript" "pinpointDependenciesScript" ]; passAsFile = [ "includeScript" "pinpointDependenciesScript" ];
installPhase = '' installPhase = ''
source ${installPackage}
mkdir -p $out/${packageName} mkdir -p $out/${packageName}
cd $out/${packageName} cd $out/${packageName}

File diff suppressed because it is too large Load diff

View file

@ -8,14 +8,14 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "aiolyric"; pname = "aiolyric";
version = "1.0.7"; version = "1.0.8";
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.7";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "timmo001"; owner = "timmo001";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-3UyWUsamluJclwrQD+MuUPLhNJoNU4/8w1m92OLWyrg="; sha256 = "sha256-A4EkqSIQ5p4E4DPLYu9a/lmb1sFhwDqFLhjhZS6Zf5c=";
}; };
propagatedBuildInputs = [ aiohttp ]; propagatedBuildInputs = [ aiohttp ];

View file

@ -11,11 +11,11 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "ibm-cloud-sdk-core"; pname = "ibm-cloud-sdk-core";
version = "3.12.0"; version = "3.13.0";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "ff3e8675a982f7754359ec598329ba5635014e2bfd51573b9413605849ef314a"; sha256 = "b27aec03e8c666b3e36c68b2331871f37a0c6c0467fe0f73462fda7300d3c19f";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View file

@ -13,11 +13,11 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "apache-libcloud"; pname = "apache-libcloud";
version = "3.3.1"; version = "3.4.0";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "d7450453eaf5904eb4fb4f74cf9f37dc83721a719bce34f5abb336b1a1ab974d"; sha256 = "17618ccbe3493f2be015db9e1efa35080ff34d470de723f1384d908ff126e51c";
}; };
checkInputs = [ mock pytest pytest-runner requests-mock ]; checkInputs = [ mock pytest pytest-runner requests-mock ];

View file

@ -1,38 +1,46 @@
{ lib { lib
, buildPythonPackage , buildPythonPackage
, fetchFromGitHub
, capstone , capstone
, crytic-compile , crytic-compile
, fetchFromGitHub
, intervaltree
, ply , ply
, prettytable , prettytable
, protobuf
, pyelftools , pyelftools
, pyevmasm , pyevmasm
, pysha3 , pysha3
, pytestCheckHook
, pythonOlder
, pyyaml , pyyaml
, rlp , rlp
, stdenv , stdenv
, unicorn , unicorn
, wasm , wasm
, yices , yices
, pytestCheckHook
, z3 , z3
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "manticore"; pname = "manticore";
version = "0.3.5"; version = "0.3.6";
format = "setuptools";
disabled = pythonOlder "3.7";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "trailofbits"; owner = "trailofbits";
repo = "manticore"; repo = "manticore";
rev = version; rev = version;
sha256 = "0z2nhfcraa5dx6srbrw8s11awh2la0x7d88yw9in8g548nv6qa69"; sha256 = "sha256-L112YwrBcdcLBeBsPLWt3C57u2WDvGLq50EzW9ojdyg=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [
crytic-compile crytic-compile
intervaltree
ply ply
prettytable prettytable
protobuf
pyevmasm pyevmasm
pysha3 pysha3
pyyaml pyyaml
@ -49,22 +57,29 @@ buildPythonPackage rec {
sed -ie s/z3-solver// setup.py sed -ie s/z3-solver// setup.py
''; '';
checkInputs = [ pytestCheckHook ]; checkInputs = [
preCheck = "export PATH=${yices}/bin:${z3}/bin:$PATH"; pytestCheckHook
pytestFlagsArray = [
"--ignore=tests/ethereum" # TODO: enable when solc works again
"--ignore=tests/ethereum_bench"
] ++ lib.optionals (!stdenv.isLinux) [
"--ignore=tests/native"
"--ignore=tests/other/test_locking.py"
"--ignore=tests/other/test_state_introspection.py"
]; ];
preCheck = ''
export PATH=${yices}/bin:${z3}/bin:$PATH
'';
disabledTestPaths = [
"tests/ethereum" # Enable when solc works again
"tests/ethereum_bench"
] ++ lib.optionals (!stdenv.isLinux) [
"tests/native"
"tests/other/test_locking.py"
"tests/other/test_state_introspection.py"
];
disabledTests = [ disabledTests = [
# failing tests # Failing tests
"test_chmod" "test_chmod"
"test_timeout" "test_timeout"
"test_wasm_main" "test_wasm_main"
# slow tests # Slow tests
"testmprotectFailSymbReading" "testmprotectFailSymbReading"
"test_ConstraintsForking" "test_ConstraintsForking"
"test_resume" "test_resume"
@ -97,6 +112,13 @@ buildPythonPackage rec {
"test_implicit_call" "test_implicit_call"
"test_trace" "test_trace"
"test_plugin" "test_plugin"
# Tests are failing with latest unicorn
"Aarch64UnicornInstructions"
"test_integration_resume"
];
pythonImportsCheck = [
"manticore"
]; ];
meta = with lib; { meta = with lib; {

View file

@ -16,7 +16,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "mne-python"; pname = "mne-python";
version = "0.23.4"; version = "0.24.0";
disabled = isPy27; disabled = isPy27;
@ -25,7 +25,7 @@ buildPythonPackage rec {
owner = "mne-tools"; owner = "mne-tools";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "1kik52ssa6difkqz8xnvrcbpp4p7792hj1rcgyypb4q7sc048aqy"; sha256 = "1982y54n7q9pl28haca0vx6cjrk2a8cj24piaj8j31f09rynn8k0";
}; };
propagatedBuildInputs = [ numpy scipy ]; propagatedBuildInputs = [ numpy scipy ];

View file

@ -1,22 +1,36 @@
{ lib, buildPythonPackage, fetchPypi, dill }: { lib
, buildPythonPackage
, dill
, fetchFromGitHub
}:
buildPythonPackage rec { buildPythonPackage rec {
pname = "multiprocess"; pname = "multiprocess";
version = "0.70.9"; version = "0.70.12.2";
format = "setuptools";
src = fetchPypi { src = fetchFromGitHub {
inherit pname version; owner = "uqfoundation";
sha256 = "9fd5bd990132da77e73dec6e9613408602a4612e1d73caf2e2b813d2b61508e5"; repo = pname;
rev = "multiprocess-${version}";
sha256 = "1npikdgj0qriqj384vg22qgq2xqylypk67sx1qfmdzvk6c4iyg0w";
}; };
propagatedBuildInputs = [ dill ]; propagatedBuildInputs = [
dill
];
# Python-version dependent tests # Python-version dependent tests
doCheck = false; doCheck = false;
pythonImportsCheck = [
"multiprocess"
];
meta = with lib; { meta = with lib; {
description = "Better multiprocessing and multithreading in python"; description = "Multiprocessing and multithreading in Python";
homepage = "https://github.com/uqfoundation/multiprocess"; homepage = "https://github.com/uqfoundation/multiprocess";
license = licenses.bsd3; license = licenses.bsd3;
maintainers = with maintainers; [ ];
}; };
} }

View file

@ -5,11 +5,11 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "pdfkit"; pname = "pdfkit";
version = "0.6.1"; version = "1.0.0";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "1lcc1njpjd2zadbljqsnkrvamschl6j099p4giz1jd6mg1ds67gg"; sha256 = "992f821e1e18fc8a0e701ecae24b51a2d598296a180caee0a24c0af181da02a9";
}; };
# tests are not distributed # tests are not distributed

View file

@ -2,11 +2,11 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "pypresence"; pname = "pypresence";
version = "4.2.0"; version = "4.2.1";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "1c8r7yxih5zp46qb9anq5s91pw2wr7d9d0nzcfh4l42x10c8lqal"; sha256 = "691daf98c8189fd216d988ebfc67779e0f664211512d9843f37ab0d51d4de066";
}; };
doCheck = false; # tests require internet connection doCheck = false; # tests require internet connection

View file

@ -1,33 +1,43 @@
{ lib { lib
, buildPythonPackage , buildPythonPackage
, fetchPypi
, capstone , capstone
, unicorn , fetchFromGitHub
, pefile , fetchPypi
, python-registry
, keystone-engine
, pyelftools
, gevent , gevent
, keystone-engine
, multiprocess
, pefile
, pyelftools
, python-registry
, unicorn
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "qiling"; pname = "qiling";
version = "1.3.0"; version = "1.4.0";
format = "setuptools";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "084ad706f6803d7de2391eab928ecf4cb3e8d892fd2988666d4791a422d6ab9a"; sha256 = "sha256-xUoNHMyGN0G2itVcKLsk+7QKxZdguzyh6OZCqCHNB4Y=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [
capstone capstone
unicorn
pefile
python-registry
keystone-engine
pyelftools
gevent gevent
keystone-engine
multiprocess
pefile
pyelftools
python-registry
unicorn
]; ];
postPatch = ''
substituteInPlace setup.py \
--replace "pefile==2021.5.24" "pefile>=2021.5.24"
'';
# Tests are broken (attempt to import a file that tells you not to import it, # Tests are broken (attempt to import a file that tells you not to import it,
# amongst other things) # amongst other things)
doCheck = false; doCheck = false;

View file

@ -1,10 +1,17 @@
{ lib, stdenv, buildPythonPackage, setuptools, unicorn-emu }: { lib
, stdenv
, buildPythonPackage
, setuptools
, unicorn-emu
}:
buildPythonPackage rec { buildPythonPackage rec {
pname = "unicorn"; pname = "unicorn";
version = lib.getVersion unicorn-emu; version = lib.getVersion unicorn-emu;
format = "setuptools";
src = unicorn-emu.src; src = unicorn-emu.src;
sourceRoot = "source/bindings/python"; sourceRoot = "source/bindings/python";
prePatch = '' prePatch = ''
@ -12,12 +19,21 @@ buildPythonPackage rec {
ln -s ${unicorn-emu}/lib/libunicorn.a prebuilt/ ln -s ${unicorn-emu}/lib/libunicorn.a prebuilt/
''; '';
propagatedBuildInputs = [ setuptools ]; propagatedBuildInputs = [
setuptools
];
# No tests present
doCheck = false;
pythonImportsCheck = [
"unicorn"
];
meta = with lib; { meta = with lib; {
description = "Python bindings for Unicorn CPU emulator engine"; description = "Python bindings for Unicorn CPU emulator engine";
homepage = "https://www.unicorn-engine.org/"; homepage = "https://www.unicorn-engine.org/";
license = [ licenses.gpl2 ]; license = licenses.gpl2Plus;
maintainers = with maintainers; [ bennofs ris ]; maintainers = with maintainers; [ bennofs ris ];
}; };
} }

View file

@ -11,14 +11,16 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "xknx"; pname = "xknx";
version = "0.18.12"; version = "0.18.13";
disabled = pythonOlder "3.7"; format = "setuptools";
disabled = pythonOlder "3.8";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "XKNX"; owner = "XKNX";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "sha256-Wk6+IRIGMaOPOEVEyzalBKyK88Y2yfKKo6T0fKxeOOE="; sha256 = "sha256-GZ5FRPQn69+/Fnx10VKWSIAaVXCcVyfvQVH1JaMGRC0=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [
@ -32,7 +34,9 @@ buildPythonPackage rec {
pytestCheckHook pytestCheckHook
]; ];
pythonImportsCheck = [ "xknx" ]; pythonImportsCheck = [
"xknx"
];
meta = with lib; { meta = with lib; {
description = "KNX Library Written in Python"; description = "KNX Library Written in Python";

View file

@ -1,7 +1,24 @@
{ stdenv, lib, fetchFromGitHub, scons, pkg-config, udev, libX11 { stdenv
, libXcursor , libXinerama, libXrandr, libXrender, libpulseaudio , lib
, libXi, libXext, libXfixes, freetype, openssl , fetchFromGitHub
, alsa-lib, libGLU, zlib, yasm , scons
, pkg-config
, udev
, libX11
, libXcursor
, libXinerama
, libXrandr
, libXrender
, libpulseaudio
, libXi
, libXext
, libXfixes
, freetype
, openssl
, alsa-lib
, libGLU
, zlib
, yasm
, withUdev ? true , withUdev ? true
}: }:
@ -11,34 +28,49 @@ let
pulseaudio = false; pulseaudio = false;
udev = withUdev; udev = withUdev;
}; };
in stdenv.mkDerivation rec { in
stdenv.mkDerivation rec {
pname = "godot"; pname = "godot";
version = "3.3.3"; version = "3.4";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "godotengine"; owner = "godotengine";
repo = "godot"; repo = "godot";
rev = "${version}-stable"; rev = "${version}-stable";
sha256 = "0bkng0iwsfawxk8bxlq01ib4n6kaxjkbwcif1bhpvw5ra19430rg"; sha256 = "0y542zla6msgxf31rd0349d9j3ya7f3njnwmmrh8lmzfgxx86qbx";
}; };
nativeBuildInputs = [ pkg-config ]; nativeBuildInputs = [ pkg-config ];
buildInputs = [ buildInputs = [
scons udev libX11 libXcursor libXinerama libXrandr libXrender scons
libXi libXext libXfixes freetype openssl alsa-lib libpulseaudio udev
libGLU zlib yasm libX11
libXcursor
libXinerama
libXrandr
libXrender
libXi
libXext
libXfixes
freetype
openssl
alsa-lib
libpulseaudio
libGLU
zlib
yasm
]; ];
patches = [ patches = [ ./pkg_config_additions.patch ./dont_clobber_environment.patch ];
./pkg_config_additions.patch
./dont_clobber_environment.patch
];
enableParallelBuilding = true; enableParallelBuilding = true;
sconsFlags = "target=release_debug platform=x11"; sconsFlags = "target=release_debug platform=x11";
preConfigure = '' preConfigure = ''
sconsFlags+=" ${lib.concatStringsSep " " (lib.mapAttrsToList (k: v: "${k}=${builtins.toJSON v}") options)}" sconsFlags+=" ${
lib.concatStringsSep " "
(lib.mapAttrsToList (k: v: "${k}=${builtins.toJSON v}") options)
}"
''; '';
outputs = [ "out" "dev" "man" ]; outputs = [ "out" "dev" "man" ];

View file

@ -6,7 +6,7 @@
let let
nodeEnv = import ../../node-packages/node-env.nix { nodeEnv = import ../../node-packages/node-env.nix {
inherit (pkgs) stdenv lib python2 runCommand writeTextFile; inherit (pkgs) stdenv lib python2 runCommand writeTextFile writeShellScript;
inherit pkgs nodejs; inherit pkgs nodejs;
libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null; libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
}; };

View file

@ -10,7 +10,7 @@ let
inherit (pkgs) stdenv lib nix-gitignore fetchurl fetchgit; inherit (pkgs) stdenv lib nix-gitignore fetchurl fetchgit;
}); });
nodeEnv = import ../../development/node-packages/node-env.nix { nodeEnv = import ../../development/node-packages/node-env.nix {
inherit (pkgs) stdenv lib python2 runCommand writeTextFile; inherit (pkgs) stdenv lib python2 runCommand writeTextFile writeShellScript;
inherit pkgs nodejs; inherit pkgs nodejs;
libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null; libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
}; };

View file

@ -199,6 +199,10 @@ let
linkVimlPlugin = plugin: packageName: dir: '' linkVimlPlugin = plugin: packageName: dir: ''
mkdir -p $out/pack/${packageName}/${dir} mkdir -p $out/pack/${packageName}/${dir}
if test -e "$out/pack/${packageName}/${dir}/${lib.getName plugin}"; then
printf "\nERROR - Duplicated vim plugin: ${lib.getName plugin}\n\n"
exit 1
fi
ln -sf ${plugin}/${rtpPath} $out/pack/${packageName}/${dir}/${lib.getName plugin} ln -sf ${plugin}/${rtpPath} $out/pack/${packageName}/${dir}/${lib.getName plugin}
''; '';

View file

@ -202,7 +202,7 @@ let
changelog = "https://github.com/openzfs/zfs/releases/tag/zfs-${version}"; changelog = "https://github.com/openzfs/zfs/releases/tag/zfs-${version}";
license = licenses.cddl; license = licenses.cddl;
platforms = platforms.linux; platforms = platforms.linux;
maintainers = with maintainers; [ hmenke jcumming jonringer wizeman fpletz globin mic92 ]; maintainers = with maintainers; [ hmenke jcumming jonringer wizeman fpletz globin ];
mainProgram = "zfs"; mainProgram = "zfs";
# If your Linux kernel version is not yet supported by zfs, try zfsUnstable. # If your Linux kernel version is not yet supported by zfs, try zfsUnstable.
# On NixOS set the option boot.zfs.enableUnstable. # On NixOS set the option boot.zfs.enableUnstable.
@ -215,8 +215,8 @@ in {
# to be adapted # to be adapted
zfsStable = common { zfsStable = common {
# check the release notes for compatible kernels # check the release notes for compatible kernels
kernelCompatible = kernel.kernelAtLeast "3.10" && kernel.kernelOlder "5.16"; kernelCompatible = kernel.kernelAtLeast "3.10" && kernel.kernelOlder "5.15";
latestCompatibleLinuxPackages = linuxPackages_5_15; latestCompatibleLinuxPackages = linuxPackages_5_14;
# this package should point to the latest release. # this package should point to the latest release.
version = "2.1.1"; version = "2.1.1";
@ -226,8 +226,8 @@ in {
zfsUnstable = common { zfsUnstable = common {
# check the release notes for compatible kernels # check the release notes for compatible kernels
kernelCompatible = kernel.kernelAtLeast "3.10" && kernel.kernelOlder "5.16"; kernelCompatible = kernel.kernelAtLeast "3.10" && kernel.kernelOlder "5.15";
latestCompatibleLinuxPackages = linuxPackages_5_15; latestCompatibleLinuxPackages = linuxPackages_5_14;
# this package should point to a version / git revision compatible with the latest kernel release # this package should point to a version / git revision compatible with the latest kernel release
# IMPORTANT: Always use a tagged release candidate or commits from the # IMPORTANT: Always use a tagged release candidate or commits from the

View file

@ -1,4 +1,4 @@
{ lib, stdenv, fetchFromGitHub, bison, libressl, libevent }: { lib, stdenv, fetchFromGitHub, fetchpatch, bison, libressl, libevent }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "gmid"; pname = "gmid";
@ -11,6 +11,14 @@ stdenv.mkDerivation rec {
sha256 = "sha256-BBd0AL5jRRslxzDnxcTZRR+8J5D23NAQ7mp9K+leXAQ="; sha256 = "sha256-BBd0AL5jRRslxzDnxcTZRR+8J5D23NAQ7mp9K+leXAQ=";
}; };
patches = [
# Fix cross-compilation
(fetchpatch {
url = "https://github.com/omar-polo/gmid/commit/eb77afa8d308a2f4f422df2ff19f023b5b2cc591.patch";
sha256 = "sha256-rTTZUpfXOg7X0Ad0Y9evyU7k+aVYpJ0t9SEkNA/sSdk=";
})
];
nativeBuildInputs = [ bison ]; nativeBuildInputs = [ bison ];
buildInputs = [ libressl libevent ]; buildInputs = [ libressl libevent ];

View file

@ -6,7 +6,7 @@
let let
nodeEnv = import ../../development/node-packages/node-env.nix { nodeEnv = import ../../development/node-packages/node-env.nix {
inherit (pkgs) stdenv lib python2 runCommand writeTextFile; inherit (pkgs) stdenv lib python2 runCommand writeTextFile writeShellScript;
inherit pkgs nodejs; inherit pkgs nodejs;
libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null; libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
}; };

View file

@ -6,7 +6,7 @@
let let
nodeEnv = import ../../../development/node-packages/node-env.nix { nodeEnv = import ../../../development/node-packages/node-env.nix {
inherit (pkgs) stdenv lib python2 runCommand writeTextFile; inherit (pkgs) stdenv lib python2 runCommand writeTextFile writeShellScript;
inherit pkgs nodejs; inherit pkgs nodejs;
libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null; libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
}; };

View file

@ -6,7 +6,7 @@
let let
nodeEnv = import ../../../development/node-packages/node-env.nix { nodeEnv = import ../../../development/node-packages/node-env.nix {
inherit (pkgs) stdenv lib python2 runCommand writeTextFile; inherit (pkgs) stdenv lib python2 runCommand writeTextFile writeShellScript;
inherit pkgs nodejs; inherit pkgs nodejs;
libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null; libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
}; };

View file

@ -6,7 +6,7 @@
let let
nodeEnv = import ../../../../../development/node-packages/node-env.nix { nodeEnv = import ../../../../../development/node-packages/node-env.nix {
inherit (pkgs) stdenv lib python2 runCommand writeTextFile; inherit (pkgs) stdenv lib python2 runCommand writeTextFile writeShellScript;
inherit pkgs nodejs; inherit pkgs nodejs;
libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null; libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
}; };

View file

@ -6,7 +6,7 @@
let let
nodeEnv = import ../../../../../development/node-packages/node-env.nix { nodeEnv = import ../../../../../development/node-packages/node-env.nix {
inherit (pkgs) stdenv lib python2 runCommand writeTextFile; inherit (pkgs) stdenv lib python2 runCommand writeTextFile writeShellScript;
inherit pkgs nodejs; inherit pkgs nodejs;
libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null; libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
}; };

View file

@ -6,7 +6,7 @@
let let
nodeEnv = import ../../development/node-packages/node-env.nix { nodeEnv = import ../../development/node-packages/node-env.nix {
inherit (pkgs) stdenv lib python2 runCommand writeTextFile; inherit (pkgs) stdenv lib python2 runCommand writeTextFile writeShellScript;
inherit pkgs nodejs; inherit pkgs nodejs;
libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null; libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
}; };

View file

@ -63,13 +63,9 @@ buildFHSUserEnv {
test -d "$pluginDir" || mkdir -p "$pluginDir" test -d "$pluginDir" || mkdir -p "$pluginDir"
# First, remove all of the symlinks in the plugins directory. # First, remove all of the symlinks in the plugins directory.
echo "Removing old symlinks" while IFS= read -r -d $'\0' f; do
for f in $(ls "$pluginDir/"); do echo "Removing plugin symlink: $f"
if [[ -L "$pluginDir/$f" ]]; then done < <(find "$pluginDir" -type l -print0)
echo "Removing plugin symlink: $pluginDir/$f"
rm "$pluginDir/$f"
fi
done
echo "Symlinking plugins" echo "Symlinking plugins"
IFS=':' read -ra pluginsArray <<< "$PLEX_PLUGINS" IFS=':' read -ra pluginsArray <<< "$PLEX_PLUGINS"
@ -87,6 +83,39 @@ buildFHSUserEnv {
done done
fi fi
if [[ -n "''${PLEX_SCANNERS:-}" ]]; then
for scannerType in Common Movies Music Series; do
echo "Preparing $scannerType scanners directory"
scannerDir="$PLEX_DATADIR/Plex Media Server/Scanners/$scannerType"
test -d "$scannerDir" || mkdir -p "$scannerDir"
# First, remove all of the symlinks in the scanners directory.
echo "Removing old symlinks"
while IFS= read -r -d $'\0' f; do
echo "Removing scanner symlink: $f"
done < <(find "$scannerDir" -type l -print0)
echo "Symlinking scanners"
IFS=':' read -ra scannersArray <<< "$PLEX_SCANNERS"
for path in "''${scannersArray[@]}"; do
# The provided source should contain a 'Scanners' directory; symlink
# from inside that.
subpath="$path/Scanners/$scannerType"
while IFS= read -r -d $'\0' file; do
dest="$scannerDir/$(basename "$file")"
if [[ -f "$dest" || -L "$dest" ]]; then
echo "Error symlinking scanner from $file to $dest: file or directory already exists"
else
echo "Symlinking scanner at: $file"
ln -s "$file" "$dest"
fi
done < <(find "$subpath" -type f -print0)
done
done
fi
# Tell Plex to use the data directory as the "Application Support" # Tell Plex to use the data directory as the "Application Support"
# directory, otherwise it tries to write things into the user's home # directory, otherwise it tries to write things into the user's home
# directory. # directory.

View file

@ -6,7 +6,7 @@
let let
nodeEnv = import ../../../development/node-packages/node-env.nix { nodeEnv = import ../../../development/node-packages/node-env.nix {
inherit (pkgs) stdenv lib python2 runCommand writeTextFile; inherit (pkgs) stdenv lib python2 runCommand writeTextFile writeShellScript;
inherit pkgs nodejs; inherit pkgs nodejs;
libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null; libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
}; };

View file

@ -6,7 +6,7 @@
let let
nodeEnv = import ../../../development/node-packages/node-env.nix { nodeEnv = import ../../../development/node-packages/node-env.nix {
inherit (pkgs) stdenv lib python2 runCommand writeTextFile; inherit (pkgs) stdenv lib python2 runCommand writeTextFile writeShellScript;
inherit pkgs nodejs; inherit pkgs nodejs;
libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null; libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
}; };

View file

@ -17,7 +17,7 @@
let let
nodejs = pkgs.nodejs-12_x; nodejs = pkgs.nodejs-12_x;
nodeEnv = import ../../../development/node-packages/node-env.nix { nodeEnv = import ../../../development/node-packages/node-env.nix {
inherit (pkgs) stdenv lib python2 runCommand writeTextFile; inherit (pkgs) stdenv lib python2 runCommand writeTextFile writeShellScript;
inherit pkgs nodejs; inherit pkgs nodejs;
libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null; libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
}; };

View file

@ -6,7 +6,7 @@
let let
nodeEnv = import ../../../../development/node-packages/node-env.nix { nodeEnv = import ../../../../development/node-packages/node-env.nix {
inherit (pkgs) stdenv lib python2 runCommand writeTextFile; inherit (pkgs) stdenv lib python2 runCommand writeTextFile writeShellScript;
inherit pkgs nodejs; inherit pkgs nodejs;
libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null; libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
}; };

View file

@ -1,9 +1,40 @@
{ lib, stdenv, fetchurl, dpkg {
, alsa-lib, at-spi2-atk, at-spi2-core, atk, cairo, cups, curl, dbus, expat, fontconfig, freetype, glib alsa-lib,
, gnome2, gdk-pixbuf, gtk3, pango, libnotify, libsecret, libuuid, libxcb, nspr, nss, systemd, xorg, wrapGAppsHook }: at-spi2-atk,
at-spi2-core,
atk,
cairo,
cups,
curl,
dbus,
dpkg,
expat,
fetchurl,
fontconfig,
freetype,
gdk-pixbuf,
glib,
gnome2,
gtk3,
lib,
libdrm,
libnotify,
libsecret,
libuuid,
libxcb,
libxkbcommon,
mesa,
nspr,
nss,
pango,
stdenv,
systemd,
wrapGAppsHook,
xorg,
}:
let let
version = "1.25.0"; version = "1.29.4";
rpath = lib.makeLibraryPath [ rpath = lib.makeLibraryPath [
alsa-lib alsa-lib
@ -17,22 +48,24 @@ let
expat expat
fontconfig fontconfig
freetype freetype
gdk-pixbuf
glib glib
gnome2.GConf gnome2.GConf
gdk-pixbuf
gtk3 gtk3
pango libdrm
libnotify libnotify
libsecret libsecret
libuuid libuuid
libxcb libxcb
libxkbcommon
mesa
nspr nspr
nss nss
pango
stdenv.cc.cc stdenv.cc.cc
systemd systemd
xorg.libxkbfile
xorg.libX11 xorg.libX11
xorg.libXScrnSaver
xorg.libXcomposite xorg.libXcomposite
xorg.libXcursor xorg.libXcursor
xorg.libXdamage xorg.libXdamage
@ -42,14 +75,16 @@ let
xorg.libXrandr xorg.libXrandr
xorg.libXrender xorg.libXrender
xorg.libXtst xorg.libXtst
xorg.libXScrnSaver xorg.libxkbfile
] + ":${stdenv.cc.cc.lib}/lib64"; xorg.libxshmfence
(lib.getLib stdenv.cc.cc)
];
src = src =
if stdenv.hostPlatform.system == "x86_64-linux" then if stdenv.hostPlatform.system == "x86_64-linux" then
fetchurl { fetchurl {
url = "https://downloads.mongodb.com/compass/mongodb-compass_${version}_amd64.deb"; url = "https://downloads.mongodb.com/compass/mongodb-compass_${version}_amd64.deb";
sha256 = "sha256-998/voQ04fLj3KZCy6BueUoI1v++4BoGRTGJT7Nsv40="; sha256 = "sha256-CqC6BrRhMfjxamSwC6ub1u3+FtDuIq3/OMNdUZgpCAQ=";
} }
else else
throw "MongoDB compass is not supported on ${stdenv.hostPlatform.system}"; throw "MongoDB compass is not supported on ${stdenv.hostPlatform.system}";
@ -94,8 +129,9 @@ in stdenv.mkDerivation {
meta = with lib; { meta = with lib; {
description = "The GUI for MongoDB"; description = "The GUI for MongoDB";
maintainers = with maintainers; [ bryanasdev000 ];
homepage = "https://www.mongodb.com/products/compass"; homepage = "https://www.mongodb.com/products/compass";
license = licenses.unfree; license = licenses.sspl;
platforms = [ "x86_64-linux" ]; platforms = [ "x86_64-linux" ];
}; };
} }

View file

@ -2,6 +2,7 @@
, fetchFromGitHub , fetchFromGitHub
, coreutils , coreutils
, sharutils , sharutils
, runtimeShell
, version , version
, sha256 , sha256
}: }:

View file

@ -1,7 +1,10 @@
{ callPackage }: { callPackage, runtimeShell }:
callPackage ./build.nix { (callPackage ./build.nix {
version = "a4da4dfac44d1bbc6986c5c76fea45a60ebdd8e5"; version = "a4da4dfac44d1bbc6986c5c76fea45a60ebdd8e5";
sha256 = "0gcjpw2q263hh8w2sjvq3f3k2d28qpkkv0jnl8hw1l7v604i8zxg"; sha256 = "0gcjpw2q263hh8w2sjvq3f3k2d28qpkkv0jnl8hw1l7v604i8zxg";
} }).overrideAttrs (old: {
postPatch = old.postPatch or "" + ''
echo 'echo ${runtimeShell}' > scripts/find_shell
'';
})

View file

@ -6,7 +6,7 @@
let let
nodeEnv = import ../../../development/node-packages/node-env.nix { nodeEnv = import ../../../development/node-packages/node-env.nix {
inherit (pkgs) stdenv lib python2 runCommand writeTextFile; inherit (pkgs) stdenv lib python2 runCommand writeTextFile writeShellScript;
inherit pkgs nodejs; inherit pkgs nodejs;
libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null; libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
}; };

View file

@ -0,0 +1,22 @@
{ lib, buildGoModule, fetchFromGitHub }:
buildGoModule rec {
pname = "gemget";
version = "1.8.0";
src = fetchFromGitHub {
owner = "makeworld-the-better-one";
repo = pname;
rev = "v${version}";
sha256 = "PmtIgxnzfLduNGTx8SNDky6juv+NTJ8Cr++SOCk/QNU=";
};
vendorSha256 = "sha256-Ep6HAJgurxFbA4L77z8V2ar06BBVWlAJS9VoSSUg27U=";
meta = with lib; {
description = "Command line downloader for the Gemini protocol";
homepage = "https://github.com/makeworld-the-better-one/gemget";
license = licenses.mit;
maintainers = with maintainers; [ amfl ];
};
}

View file

@ -2,13 +2,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "zerotierone"; pname = "zerotierone";
version = "1.8.2"; version = "1.8.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "zerotier"; owner = "zerotier";
repo = "ZeroTierOne"; repo = "ZeroTierOne";
rev = version; rev = version;
sha256 = "sha256-Itq06zE2AVQ1HSUEQdNUuvEazfU56Hs86T0DEVuF8d4="; sha256 = "sha256-668KZ2E0jx/s+w4pl+oJbPlfdRGr6ypP2/FoFEBReIk=";
}; };
preConfigure = '' preConfigure = ''

View file

@ -1,28 +1,37 @@
{ lib, stdenv, fetchCrate, rustPlatform, pkg-config, openssl, libiconv, curl, darwin }: { lib
, rustPlatform
, fetchCrate
, pkg-config
, openssl
, stdenv
, curl
, Security
, SystemConfiguration
}:
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "cargo-outdated"; pname = "cargo-outdated";
version = "0.9.18"; version = "0.10.1";
src = fetchCrate { src = fetchCrate {
inherit pname version; inherit pname version;
sha256 = "19r4nv28iq4cmzs5j127qgvdf7y3pfmgjp6jzzbb8b5xj7w06jhl"; sha256 = "sha256-jg8KuIu1SaIRlEI9yvpLCESZfAyNgSThJ6pe7+IM6j0=";
}; };
cargoSha256 = "1rf3sxprra9s76iip2xf82kclgs83fhnlx9ykl9hhn2y0z8r3342"; cargoSha256 = "sha256-jfZUtUVHEC8zK+FJHSOQxELWTG/Of2WSDoqdg/Sckws=";
nativeBuildInputs = [ pkg-config ]; nativeBuildInputs = [ pkg-config ];
buildInputs = [ openssl ]
++ lib.optionals stdenv.isDarwin [ buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [
darwin.apple_sdk.frameworks.Security
darwin.apple_sdk.frameworks.SystemConfiguration
libiconv
curl curl
Security
SystemConfiguration
]; ];
meta = with lib; { meta = with lib; {
description = "A cargo subcommand for displaying when Rust dependencies are out of date"; description = "A cargo subcommand for displaying when Rust dependencies are out of date";
homepage = "https://github.com/kbknapp/cargo-outdated"; homepage = "https://github.com/kbknapp/cargo-outdated";
changelog = "https://github.com/kbknapp/cargo-outdated/blob/${version}/CHANGELOG.md";
license = with licenses; [ asl20 /* or */ mit ]; license = with licenses; [ asl20 /* or */ mit ];
maintainers = with maintainers; [ sondr3 ivan ]; maintainers = with maintainers; [ sondr3 ivan ];
}; };

View file

@ -6,7 +6,7 @@
let let
nodeEnv = import ../../../development/node-packages/node-env.nix { nodeEnv = import ../../../development/node-packages/node-env.nix {
inherit (pkgs) stdenv lib python2 runCommand writeTextFile; inherit (pkgs) stdenv lib python2 runCommand writeTextFile writeShellScript;
inherit pkgs nodejs; inherit pkgs nodejs;
libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null; libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
}; };

View file

@ -6,7 +6,7 @@
let let
nodeEnv = import ../../../development/node-packages/node-env.nix { nodeEnv = import ../../../development/node-packages/node-env.nix {
inherit (pkgs) stdenv lib python2 runCommand writeTextFile; inherit (pkgs) stdenv lib python2 runCommand writeTextFile writeShellScript;
inherit pkgs nodejs; inherit pkgs nodejs;
libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null; libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
}; };

View file

@ -5439,6 +5439,8 @@ with pkgs;
gelasio = callPackage ../data/fonts/gelasio { }; gelasio = callPackage ../data/fonts/gelasio { };
gemget = callPackage ../tools/networking/gemget {};
gen-oath-safe = callPackage ../tools/security/gen-oath-safe { }; gen-oath-safe = callPackage ../tools/security/gen-oath-safe { };
genext2fs = callPackage ../tools/filesystems/genext2fs { }; genext2fs = callPackage ../tools/filesystems/genext2fs { };
@ -12788,7 +12790,9 @@ with pkgs;
cargo-graph = callPackage ../tools/package-management/cargo-graph { }; cargo-graph = callPackage ../tools/package-management/cargo-graph { };
cargo-license = callPackage ../tools/package-management/cargo-license { }; cargo-license = callPackage ../tools/package-management/cargo-license { };
cargo-llvm-lines = callPackage ../development/tools/rust/cargo-llvm-lines { }; cargo-llvm-lines = callPackage ../development/tools/rust/cargo-llvm-lines { };
cargo-outdated = callPackage ../tools/package-management/cargo-outdated {}; cargo-outdated = callPackage ../tools/package-management/cargo-outdated {
inherit (darwin.apple_sdk.frameworks) Security SystemConfiguration;
};
cargo-release = callPackage ../tools/package-management/cargo-release { cargo-release = callPackage ../tools/package-management/cargo-release {
inherit (darwin.apple_sdk.frameworks) Security; inherit (darwin.apple_sdk.frameworks) Security;
}; };