Merge staging-next into staging
This commit is contained in:
commit
c9743f0e5c
@ -8,4 +8,4 @@ HTTP has a couple of different mechanisms for caching to prevent clients from ha
|
||||
|
||||
Fortunately, HTTP supports an alternative (and more effective) caching mechanism: the [`ETag`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag) response header. The value of the `ETag` header specifies some identifier for the particular content that the server is sending (e.g., a hash). When a client makes a second request for the same resource, it sends that value back in an `If-None-Match` header. If the ETag value is unchanged, then the server does not need to resend the content.
|
||||
|
||||
As of NixOS 19.09, the nginx package in Nixpkgs is patched such that when nginx serves a file out of `/nix/store`, the hash in the store path is used as the `ETag` header in the HTTP response, thus providing proper caching functionality. This happens automatically; you do not need to do modify any configuration to get this behavior.
|
||||
As of NixOS 19.09, the nginx package in Nixpkgs is patched such that when nginx serves a file out of `/nix/store`, the hash in the store path is used as the `ETag` header in the HTTP response, thus providing proper caching functionality. With NixOS 24.05 and later, the `ETag` additionally includes the response content length, to ensure files served with static compression do not share `ETag`s with their uncompressed version. This `ETag` functionality is enabled automatically; you do not need to do modify any configuration to get this behavior.
|
||||
|
@ -599,6 +599,16 @@
|
||||
githubId = 4732885;
|
||||
name = "Ivan Jager";
|
||||
};
|
||||
aikooo7 = {
|
||||
name = "Diogo Fernandes";
|
||||
email = "prozinhopro1973@gmail.com";
|
||||
matrix = "@aikoo7:matrix.org";
|
||||
github = "aikooo7";
|
||||
githubId = 79667753;
|
||||
keys = [{
|
||||
fingerprint = "B0D7 2955 235F 6AB5 ACFA 1619 8C7F F5BB 1ADE F191";
|
||||
}];
|
||||
};
|
||||
aiotter = {
|
||||
email = "git@aiotter.com";
|
||||
github = "aiotter";
|
||||
|
@ -584,6 +584,7 @@ in {
|
||||
nginx = handleTest ./nginx.nix {};
|
||||
nginx-auth = handleTest ./nginx-auth.nix {};
|
||||
nginx-etag = handleTest ./nginx-etag.nix {};
|
||||
nginx-etag-compression = handleTest ./nginx-etag-compression.nix {};
|
||||
nginx-globalredirect = handleTest ./nginx-globalredirect.nix {};
|
||||
nginx-http3 = handleTest ./nginx-http3.nix {};
|
||||
nginx-modsecurity = handleTest ./nginx-modsecurity.nix {};
|
||||
|
45
nixos/tests/nginx-etag-compression.nix
Normal file
45
nixos/tests/nginx-etag-compression.nix
Normal file
@ -0,0 +1,45 @@
|
||||
import ./make-test-python.nix {
|
||||
name = "nginx-etag-compression";
|
||||
|
||||
nodes.machine = { pkgs, lib, ... }: {
|
||||
services.nginx = {
|
||||
enable = true;
|
||||
recommendedGzipSettings = true;
|
||||
virtualHosts.default = {
|
||||
root = pkgs.runCommandLocal "testdir" {} ''
|
||||
mkdir "$out"
|
||||
cat > "$out/index.html" <<EOF
|
||||
Hello, world!
|
||||
Hello, world!
|
||||
Hello, world!
|
||||
Hello, world!
|
||||
Hello, world!
|
||||
Hello, world!
|
||||
Hello, world!
|
||||
Hello, world!
|
||||
EOF
|
||||
${pkgs.gzip}/bin/gzip -k "$out/index.html"
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
testScript = { nodes, ... }: ''
|
||||
machine.wait_for_unit("nginx")
|
||||
machine.wait_for_open_port(80)
|
||||
|
||||
etag_plain = machine.succeed("curl -s -w'%header{etag}' -o/dev/null -H 'Accept-encoding:' http://127.0.0.1/")
|
||||
etag_gzip = machine.succeed("curl -s -w'%header{etag}' -o/dev/null -H 'Accept-encoding:gzip' http://127.0.0.1/")
|
||||
|
||||
with subtest("different representations have different etags"):
|
||||
assert etag_plain != etag_gzip, f"etags should differ: {etag_plain} == {etag_gzip}"
|
||||
|
||||
with subtest("etag for uncompressed response is reproducible"):
|
||||
etag_plain_repeat = machine.succeed("curl -s -w'%header{etag}' -o/dev/null -H 'Accept-encoding:' http://127.0.0.1/")
|
||||
assert etag_plain == etag_plain_repeat, f"etags should be the same: {etag_plain} != {etag_plain_repeat}"
|
||||
|
||||
with subtest("etag for compressed response is reproducible"):
|
||||
etag_gzip_repeat = machine.succeed("curl -s -w'%header{etag}' -o/dev/null -H 'Accept-encoding:gzip' http://127.0.0.1/")
|
||||
assert etag_gzip == etag_gzip_repeat, f"etags should be the same: {etag_gzip} != {etag_gzip_repeat}"
|
||||
'';
|
||||
}
|
@ -11,13 +11,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "fulcrum";
|
||||
version = "1.9.7";
|
||||
version = "1.9.8";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cculianu";
|
||||
repo = "Fulcrum";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-EslrlnMgH6W/0q/P4H/o6n3zbBDNIGuNAFyGWcZBYL4=";
|
||||
sha256 = "sha256-cWrhALYIjhOCKi/uPXD8Ty0wuN4WQq+8o97M6CtW+YE=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config qmake ];
|
||||
|
8919
pkgs/applications/blockchains/solana/Cargo.lock
generated
Normal file
8919
pkgs/applications/blockchains/solana/Cargo.lock
generated
Normal file
File diff suppressed because it is too large
Load Diff
12
pkgs/applications/blockchains/solana/account-info.patch
Normal file
12
pkgs/applications/blockchains/solana/account-info.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff --git a/sdk/program/src/account_info.rs b/sdk/program/src/account_info.rs
|
||||
index 372370d0e15a0f2877b02ad29586e5b352438b24..3db3e9839b6535786e60be5602c03d0c909bf937 100644
|
||||
--- a/sdk/program/src/account_info.rs
|
||||
+++ b/sdk/program/src/account_info.rs
|
||||
@@ -182,6 +182,7 @@ impl<'a> AccountInfo<'a> {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
+ #[rustversion::attr(since(1.72), allow(invalid_reference_casting))]
|
||||
pub fn assign(&self, new_owner: &Pubkey) {
|
||||
// Set the non-mut owner field
|
||||
unsafe {
|
@ -18,22 +18,10 @@
|
||||
"solana-gossip"
|
||||
"solana-install"
|
||||
"solana-keygen"
|
||||
"solana-ledger-tool"
|
||||
"solana-log-analyzer"
|
||||
"solana-net-shaper"
|
||||
"solana-sys-tuner"
|
||||
"rbpf-cli"
|
||||
"solana-validator"
|
||||
"solana-ledger-tool"
|
||||
"cargo-build-bpf"
|
||||
"cargo-test-bpf"
|
||||
"solana-dos"
|
||||
"solana-install-init"
|
||||
"solana-stake-accounts"
|
||||
"solana-test-validator"
|
||||
"solana-tokens"
|
||||
"solana-watchtower"
|
||||
"cargo-test-sbf"
|
||||
"cargo-build-sbf"
|
||||
] ++ [
|
||||
# XXX: Ensure `solana-genesis` is built LAST!
|
||||
# See https://github.com/solana-labs/solana/issues/5826
|
||||
@ -41,16 +29,15 @@
|
||||
]
|
||||
}:
|
||||
let
|
||||
version = "1.14.23";
|
||||
sha256 = "sha256-NUkkLzLNh8P7PFh/SVtd9JM18w3egDaaK80urGw1SSs=";
|
||||
cargoSha256 = "sha256-7t8Quh6T2MzJWEM5Y50CgCyFfx2ZJRAdCpZyyYvJrt4=";
|
||||
version = "1.16.27";
|
||||
sha256 = "sha256-xd0FCSlpPJDVWOlt9rIlnSbjksmvlXJWHkvlZONd2dM=";
|
||||
|
||||
inherit (darwin.apple_sdk_11_0) Libsystem;
|
||||
inherit (darwin.apple_sdk_11_0.frameworks) System IOKit AppKit Security;
|
||||
in
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "solana-cli";
|
||||
inherit version cargoSha256;
|
||||
inherit version;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "solana-labs";
|
||||
@ -59,6 +46,21 @@ rustPlatform.buildRustPackage rec {
|
||||
inherit sha256;
|
||||
};
|
||||
|
||||
cargoLock = {
|
||||
lockFile = ./Cargo.lock;
|
||||
|
||||
outputHashes = {
|
||||
"crossbeam-epoch-0.9.5" = "sha256-Jf0RarsgJiXiZ+ddy0vp4jQ59J9m0k3sgXhWhCdhgws=";
|
||||
"ntapi-0.3.7" = "sha256-G6ZCsa3GWiI/FeGKiK9TWkmTxen7nwpXvm5FtjNtjWU=";
|
||||
};
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Fix: https://github.com/solana-labs/solana/issues/34203
|
||||
# From https://github.com/Homebrew/homebrew-core/pull/156930/files#diff-f27c55b86df31cd4935c956efee1be743eae0958e3850f3f9891d51bfea50b1cR76
|
||||
./account-info.patch
|
||||
];
|
||||
|
||||
strictDeps = true;
|
||||
cargoBuildFlags = builtins.map (n: "--bin=${n}") solanaPkgs;
|
||||
|
||||
@ -101,7 +103,7 @@ rustPlatform.buildRustPackage rec {
|
||||
description = "Web-Scale Blockchain for fast, secure, scalable, decentralized apps and marketplaces. ";
|
||||
homepage = "https://solana.com";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ netfox happysalada ];
|
||||
maintainers = with maintainers; [ netfox happysalada aikooo7 ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
|
||||
|
@ -6,7 +6,7 @@
|
||||
|
||||
let
|
||||
pname = "lefthook";
|
||||
version = "1.5.5";
|
||||
version = "1.5.6";
|
||||
in
|
||||
buildGoModule rec {
|
||||
inherit pname version;
|
||||
@ -15,7 +15,7 @@ buildGoModule rec {
|
||||
owner = "evilmartians";
|
||||
repo = "lefthook";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-TNXnXQMlMNXKPxN5GneZr+LyByfQX2TToUebpdD/d+U=";
|
||||
hash = "sha256-6RSIrsm2VNlOtjAwz/HuCH4VOz/3W6snHSI1LypINYU=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-/VLS7+nPERjIU7V2CzqXH69Z3/y+GKZbAFn+KcRKRuA=";
|
||||
|
66
pkgs/by-name/pg/pgcopydb/package.nix
Normal file
66
pkgs/by-name/pg/pgcopydb/package.nix
Normal file
@ -0,0 +1,66 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, libkrb5
|
||||
, openssl
|
||||
, pam
|
||||
, pkg-config
|
||||
, postgresql
|
||||
, readline
|
||||
, sqlite
|
||||
, testers
|
||||
, zlib
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "pgcopydb";
|
||||
version = "0.15";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dimitri";
|
||||
repo = "pgcopydb";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-m9iIF8h6V3wWLUQuPntXtRAh16RrmR3uqZZIljGCY08=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
libkrb5
|
||||
openssl
|
||||
postgresql
|
||||
readline
|
||||
sqlite
|
||||
zlib
|
||||
] ++ lib.optionals stdenv.isLinux [
|
||||
pam
|
||||
];
|
||||
|
||||
hardeningDisable = [ "format" ];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
install -D -t $out/bin/ src/bin/pgcopydb/pgcopydb
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
passthru.tests = {
|
||||
version = testers.testVersion {
|
||||
package = finalAttrs.finalPackage;
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Copy a Postgres database to a target Postgres server (pg_dump | pg_restore on steroids";
|
||||
homepage = "https://github.com/dimitri/pgcopydb";
|
||||
changelog = "https://github.com/dimitri/pgcopydb/blob/${finalAttrs.src.rev}/CHANGELOG.md";
|
||||
license = licenses.postgresql;
|
||||
maintainers = with maintainers; [ marsam ];
|
||||
mainProgram = "pgcopydb";
|
||||
platforms = platforms.all;
|
||||
};
|
||||
})
|
60
pkgs/by-name/wl/wl-clipboard-rs/package.nix
Normal file
60
pkgs/by-name/wl/wl-clipboard-rs/package.nix
Normal file
@ -0,0 +1,60 @@
|
||||
{ lib
|
||||
, rustPlatform
|
||||
, fetchFromGitHub
|
||||
, pkg-config
|
||||
, wayland
|
||||
, withNativeLibs ? false
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage {
|
||||
pname = "wl-clipboard-rs";
|
||||
version = "0.8.0-unstable-2023-11-27";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "YaLTeR";
|
||||
repo = "wl-clipboard-rs";
|
||||
rev = "be851408e0f91edffdc2f1a76805035847f9f8a9";
|
||||
hash = "sha256-OfLn7izG1KSUjdd2gO4aaSCDlcaWoFiFmgwwhR1hRsQ=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-rYFCPyWTUhyrEcoRM8I+iX7IaY/6i1tBVjhs47m3XY8=";
|
||||
|
||||
cargoBuildFlags = [
|
||||
"--package=wl-clipboard-rs"
|
||||
"--package=wl-clipboard-rs-tools"
|
||||
] ++ lib.optionals withNativeLibs [
|
||||
"--features=native_lib"
|
||||
];
|
||||
|
||||
nativeBuildInputs = lib.optionals withNativeLibs [
|
||||
pkg-config
|
||||
];
|
||||
|
||||
buildInputs = lib.optionals withNativeLibs [
|
||||
wayland
|
||||
];
|
||||
|
||||
preCheck = ''
|
||||
export XDG_RUNTIME_DIR=$(mktemp -d)
|
||||
'';
|
||||
|
||||
# Assertion errors
|
||||
checkFlags = [
|
||||
"--skip=tests::copy::copy_large"
|
||||
"--skip=tests::copy::copy_multi_no_additional_text_mime_types_test"
|
||||
"--skip=tests::copy::copy_multi_test"
|
||||
"--skip=tests::copy::copy_randomized"
|
||||
"--skip=tests::copy::copy_test"
|
||||
];
|
||||
|
||||
meta = {
|
||||
description = "Command-line copy/paste utilities for Wayland, written in Rust";
|
||||
homepage = "https://github.com/YaLTeR/wl-clipboard-rs";
|
||||
# TODO: add `${version}` once we switch to tagged release
|
||||
changelog = "https://github.com/YaLTeR/wl-clipboard-rs/blob/master/CHANGELOG.md";
|
||||
platforms = lib.platforms.linux;
|
||||
license = with lib.licenses; [ asl20 mit ];
|
||||
mainProgram = "wl-clip";
|
||||
maintainers = with lib.maintainers; [ thiagokokada ];
|
||||
};
|
||||
}
|
@ -20,7 +20,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "accelerate";
|
||||
version = "0.25.0";
|
||||
version = "0.26.1";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
@ -29,7 +29,7 @@ buildPythonPackage rec {
|
||||
owner = "huggingface";
|
||||
repo = pname;
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-WIMOSfo9fGbevMkUHvFsA51SOiGkBO1cK388FudRDY0=";
|
||||
hash = "sha256-l0RSBVAa2u3bGDLbg/e/1UP5WO8z2+YBqzwdviAcMA0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ setuptools ];
|
||||
|
@ -1,28 +1,44 @@
|
||||
{ lib
|
||||
, buildPythonPackage
|
||||
, dnspython
|
||||
, fetchPypi
|
||||
, python3
|
||||
, impacket
|
||||
, ldap3
|
||||
, pycryptodome
|
||||
, setuptools
|
||||
}:
|
||||
python3.pkgs.buildPythonPackage rec {
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "bloodhound-py";
|
||||
version = "1.7.1";
|
||||
version = "1.7.2";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit version;
|
||||
pname = "bloodhound";
|
||||
hash = "sha256-BryByUo9FCSrrJgXoXoVPBjpmh32I0xRoeKBsYj8nSE=";
|
||||
hash = "sha256-USZU19dLppoq19+JMFtiojyJk6bj96nP2JQDq7JFkHM=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with python3.pkgs; [
|
||||
impacket
|
||||
ldap3
|
||||
dnspython
|
||||
nativeBuildInputs = [
|
||||
setuptools
|
||||
];
|
||||
|
||||
# the package has no tests
|
||||
propagatedBuildInputs = [
|
||||
dnspython
|
||||
impacket
|
||||
ldap3
|
||||
pycryptodome
|
||||
];
|
||||
|
||||
# Module has no tests
|
||||
doCheck = false;
|
||||
|
||||
pythonImportsCheck = [
|
||||
"bloodhound"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Python based ingestor for BloodHound, based on Impacket.";
|
||||
description = "Python based ingestor for BloodHound, based on Impacket";
|
||||
homepage = "https://github.com/dirkjanm/BloodHound.py";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ exploitoverload ];
|
||||
|
@ -19,7 +19,7 @@
|
||||
, routes
|
||||
, setuptools-scm
|
||||
, simplejson
|
||||
, zc_lockfile
|
||||
, zc-lockfile
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
@ -52,7 +52,7 @@ buildPythonPackage rec {
|
||||
cheroot
|
||||
portend
|
||||
more-itertools
|
||||
zc_lockfile
|
||||
zc-lockfile
|
||||
jaraco-collections
|
||||
];
|
||||
|
||||
|
@ -11,7 +11,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "clarifai-grpc";
|
||||
version = "10.0.0";
|
||||
version = "10.0.3";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.8";
|
||||
@ -20,7 +20,7 @@ buildPythonPackage rec {
|
||||
owner = "Clarifai";
|
||||
repo = "clarifai-python-grpc";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-FpBrVoKwuKLanF0SYJLO1cd8qhI1xgBVa1wVpojG8p8=";
|
||||
hash = "sha256-mIiUwqagFlZXkm/diQlCXMBDAbnWNG4BNMHVedo5u/M=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -5,6 +5,7 @@
|
||||
, jinja2
|
||||
, jinja2-pluralize
|
||||
, pluggy
|
||||
, poetry-core
|
||||
, pycodestyle
|
||||
, pyflakes
|
||||
, pygments
|
||||
@ -19,7 +20,7 @@
|
||||
buildPythonPackage rec {
|
||||
pname = "diff-cover";
|
||||
version = "8.0.1";
|
||||
format = "setuptools";
|
||||
format = "pyproject";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
@ -29,6 +30,10 @@ buildPythonPackage rec {
|
||||
hash = "sha256-zDnRmety/kG83P7hZOtbWRUztMYlWA4/mprMaGkGTXw=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
poetry-core
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
chardet
|
||||
jinja2
|
||||
|
@ -47,7 +47,7 @@
|
||||
, tqdm
|
||||
, typing-extensions
|
||||
, voluptuous
|
||||
, zc_lockfile
|
||||
, zc-lockfile
|
||||
, enableGoogle ? false
|
||||
, enableAWS ? false
|
||||
, enableAzure ? false
|
||||
@ -119,7 +119,7 @@ buildPythonPackage rec {
|
||||
tqdm
|
||||
typing-extensions
|
||||
voluptuous
|
||||
zc_lockfile
|
||||
zc-lockfile
|
||||
]
|
||||
++ lib.optionals enableGoogle passthru.optional-dependencies.gs
|
||||
++ lib.optionals enableAWS passthru.optional-dependencies.s3
|
||||
|
@ -9,7 +9,7 @@
|
||||
, pytestCheckHook
|
||||
, pythonOlder
|
||||
, requests-toolbelt
|
||||
, update_checker
|
||||
, update-checker
|
||||
, websocket-client
|
||||
}:
|
||||
|
||||
@ -30,7 +30,7 @@ buildPythonPackage rec {
|
||||
propagatedBuildInputs = [
|
||||
mock
|
||||
prawcore
|
||||
update_checker
|
||||
update-checker
|
||||
websocket-client
|
||||
];
|
||||
|
||||
|
@ -7,7 +7,7 @@
|
||||
, pytest
|
||||
, setuptools-scm
|
||||
, toml
|
||||
, zc_lockfile
|
||||
, zc-lockfile
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
@ -30,7 +30,7 @@ buildPythonPackage rec {
|
||||
propagatedBuildInputs = [
|
||||
requests
|
||||
psutil
|
||||
zc_lockfile
|
||||
zc-lockfile
|
||||
];
|
||||
|
||||
# no tests in PyPI tarball
|
||||
|
@ -26,6 +26,7 @@
|
||||
, pyocd
|
||||
, pypemicro
|
||||
, pyserial
|
||||
, requests
|
||||
, ruamel-yaml
|
||||
, setuptools
|
||||
, sly
|
||||
@ -38,14 +39,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "spsdk";
|
||||
version = "2.0.0";
|
||||
version = "2.0.1";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "nxp-mcuxpresso";
|
||||
repo = pname;
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-1aW5ivdpnSscTaMIRn4tlsBG6StN95gHAyRIzmAO9Uo=";
|
||||
rev = version;
|
||||
hash = "sha256-C6cz5jhIHI4WkCYT0rURFa4kBAu6cMcKpQHiHACIiu8=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@ -63,6 +64,8 @@ buildPythonPackage rec {
|
||||
"pylink-square"
|
||||
"pyocd"
|
||||
"typing-extensions"
|
||||
"click"
|
||||
"ruamel.yaml"
|
||||
];
|
||||
|
||||
pythonRemoveDeps = [
|
||||
@ -93,6 +96,7 @@ buildPythonPackage rec {
|
||||
pyocd
|
||||
pypemicro
|
||||
pyserial
|
||||
requests
|
||||
ruamel-yaml
|
||||
sly
|
||||
typing-extensions
|
||||
|
@ -2,13 +2,14 @@
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "update_checker";
|
||||
pname = "update-checker";
|
||||
version = "0.18.0";
|
||||
format = "setuptools";
|
||||
disabled = isPy27;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
pname = "update_checker";
|
||||
inherit version;
|
||||
sha256 = "6a2d45bb4ac585884a6b03f9eade9161cedd9e8111545141e9aa9058932acb13";
|
||||
};
|
||||
|
@ -6,11 +6,12 @@
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "zc.lockfile";
|
||||
pname = "zc-lockfile";
|
||||
version = "3.0";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
pname = "zc.lockfile";
|
||||
inherit version;
|
||||
hash = "sha256-5Y/9ndYsbUMuhoK/oZbJDKw+XB4/JNrjuJ1ggihV14g=";
|
||||
};
|
||||
|
@ -9,7 +9,7 @@
|
||||
, zodbpickle
|
||||
, zconfig
|
||||
, persistent
|
||||
, zc_lockfile
|
||||
, zc-lockfile
|
||||
, btrees
|
||||
, manuel
|
||||
}:
|
||||
@ -35,7 +35,7 @@ buildPythonPackage rec {
|
||||
zodbpickle
|
||||
zconfig
|
||||
persistent
|
||||
zc_lockfile
|
||||
zc-lockfile
|
||||
btrees
|
||||
];
|
||||
|
||||
|
@ -81,7 +81,7 @@ python3.pkgs.buildPythonApplication rec {
|
||||
termcolor
|
||||
tqdm
|
||||
typing-extensions
|
||||
update_checker
|
||||
update-checker
|
||||
];
|
||||
|
||||
nativeCheckInputs = with python3.pkgs; [
|
||||
|
@ -31,7 +31,7 @@ python3.pkgs.buildPythonApplication rec {
|
||||
requests
|
||||
semver
|
||||
setuptools
|
||||
update_checker
|
||||
update-checker
|
||||
];
|
||||
|
||||
nativeCheckInputs = with python3.pkgs; [
|
||||
|
@ -177,28 +177,44 @@ runCmd() {
|
||||
}
|
||||
|
||||
buildHostCmd() {
|
||||
local c
|
||||
if [[ "${useSudo:-x}" = 1 ]]; then
|
||||
c=("${sudoCommand[@]}")
|
||||
else
|
||||
c=()
|
||||
fi
|
||||
|
||||
if [ -z "$buildHost" ]; then
|
||||
runCmd "$@"
|
||||
elif [ -n "$remoteNix" ]; then
|
||||
runCmd ssh $SSHOPTS "$buildHost" "${useSudo:+${sudoCommand[@]}}" env PATH="$remoteNix":'$PATH' "$@"
|
||||
runCmd ssh $SSHOPTS "$buildHost" "${c[@]}" env PATH="$remoteNix":'$PATH' "$@"
|
||||
else
|
||||
runCmd ssh $SSHOPTS "$buildHost" "${useSudo:+${sudoCommand[@]}}" "$@"
|
||||
runCmd ssh $SSHOPTS "$buildHost" "${c[@]}" "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
targetHostCmd() {
|
||||
if [ -z "$targetHost" ]; then
|
||||
runCmd "${useSudo:+${sudoCommand[@]}}" "$@"
|
||||
local c
|
||||
if [[ "${useSudo:-x}" = 1 ]]; then
|
||||
c=("${sudoCommand[@]}")
|
||||
else
|
||||
runCmd ssh $SSHOPTS "$targetHost" "${useSudo:+${sudoCommand[@]}}" "$@"
|
||||
c=()
|
||||
fi
|
||||
|
||||
if [ -z "$targetHost" ]; then
|
||||
runCmd "${c[@]}" "$@"
|
||||
else
|
||||
runCmd ssh $SSHOPTS "$targetHost" "${c[@]}" "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
targetHostSudoCmd() {
|
||||
if [ -n "$remoteSudo" ]; then
|
||||
useSudo=1 targetHostCmd "$@"
|
||||
useSudo=1 SSHOPTS="$SSHOPTS -t" targetHostCmd "$@"
|
||||
else
|
||||
targetHostCmd "$@"
|
||||
# While a tty might not be necessary, we apply it to be consistent with
|
||||
# sudo usage, and an experience that is more consistent with local deployment.
|
||||
SSHOPTS="$SSHOPTS -t" targetHostCmd "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
@ -436,7 +452,7 @@ if [ "$action" = edit ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
SSHOPTS="$NIX_SSHOPTS -o ControlMaster=auto -o ControlPath=$tmpDir/ssh-%n -o ControlPersist=60 -t"
|
||||
SSHOPTS="$NIX_SSHOPTS -o ControlMaster=auto -o ControlPath=$tmpDir/ssh-%n -o ControlPersist=60"
|
||||
|
||||
# First build Nix, since NixOS may require a newer version than the
|
||||
# current one.
|
||||
|
@ -192,7 +192,7 @@ stdenv.mkDerivation {
|
||||
passthru = {
|
||||
inherit modules;
|
||||
tests = {
|
||||
inherit (nixosTests) nginx nginx-auth nginx-etag nginx-globalredirect nginx-http3 nginx-proxyprotocol nginx-pubhtml nginx-sso nginx-status-page nginx-unix-socket;
|
||||
inherit (nixosTests) nginx nginx-auth nginx-etag nginx-etag-compression nginx-globalredirect nginx-http3 nginx-proxyprotocol nginx-pubhtml nginx-sso nginx-status-page nginx-unix-socket;
|
||||
variants = lib.recurseIntoAttrs nixosTests.nginx-variants;
|
||||
acme-integration = nixosTests.acme;
|
||||
} // passthru.tests;
|
||||
|
@ -2,10 +2,10 @@ This patch makes it possible to serve static content from Nix store paths, by
|
||||
using the hash of the store path for the ETag header.
|
||||
|
||||
diff --git a/src/http/ngx_http_core_module.c b/src/http/ngx_http_core_module.c
|
||||
index cb49ef74..7b456993 100644
|
||||
index 97a91aee2..2d07d71e6 100644
|
||||
--- a/src/http/ngx_http_core_module.c
|
||||
+++ b/src/http/ngx_http_core_module.c
|
||||
@@ -1583,6 +1583,8 @@ ngx_http_set_etag(ngx_http_request_t *r)
|
||||
@@ -1676,6 +1676,8 @@ ngx_http_set_etag(ngx_http_request_t *r)
|
||||
{
|
||||
ngx_table_elt_t *etag;
|
||||
ngx_http_core_loc_conf_t *clcf;
|
||||
@ -14,14 +14,25 @@ index cb49ef74..7b456993 100644
|
||||
|
||||
clcf = ngx_http_get_module_loc_conf(r, ngx_http_core_module);
|
||||
|
||||
@@ -1598,16 +1600,60 @@ ngx_http_set_etag(ngx_http_request_t *r)
|
||||
etag->hash = 1;
|
||||
@@ -1692,16 +1694,82 @@ ngx_http_set_etag(ngx_http_request_t *r)
|
||||
etag->next = NULL;
|
||||
ngx_str_set(&etag->key, "ETag");
|
||||
|
||||
- etag->value.data = ngx_pnalloc(r->pool, NGX_OFF_T_LEN + NGX_TIME_T_LEN + 3);
|
||||
- if (etag->value.data == NULL) {
|
||||
- etag->hash = 0;
|
||||
- return NGX_ERROR;
|
||||
+ // Upstream nginx uses file mod timestamp and content-length for Etag, but
|
||||
+ // files in the Nix store have their timestamps reset, so that doesn't work.
|
||||
+ // Instead, when serving from the Nix store, we use the hash from the store
|
||||
+ // path and content-length.
|
||||
+ //
|
||||
+ // Every file in under the given store path will share the same store path
|
||||
+ // hash. It is fine to serve different resources with the same Etag, but
|
||||
+ // different representations of the same resource (eg the same file, but
|
||||
+ // gzip-compressed) should have different Etags. Thus, we also append
|
||||
+ // content-length, which should be different when the response is compressed
|
||||
+
|
||||
+ err = ngx_errno;
|
||||
+ real = ngx_realpath(clcf->root.data, NULL);
|
||||
+ ngx_set_errno(err);
|
||||
@ -35,8 +46,10 @@ index cb49ef74..7b456993 100644
|
||||
+ && real[NIX_STORE_LEN] == '/'
|
||||
+ && real[NIX_STORE_LEN + 1] != '\0')
|
||||
+ {
|
||||
+ ptr1 = real + NIX_STORE_LEN;
|
||||
+ *ptr1 = '"';
|
||||
+ // extract the hash from a path formatted like
|
||||
+ // /nix/store/hashhere1234-pname-1.0.0
|
||||
+ // +1 to skip the leading /
|
||||
+ ptr1 = real + NIX_STORE_LEN + 1;
|
||||
+
|
||||
+ ptr2 = (u_char *) ngx_strchr(ptr1, '-');
|
||||
+
|
||||
@ -46,11 +59,11 @@ index cb49ef74..7b456993 100644
|
||||
+ return NGX_ERROR;
|
||||
+ }
|
||||
+
|
||||
+ *ptr2++ = '"';
|
||||
+ *ptr2 = '\0';
|
||||
+
|
||||
+ etag->value.len = ngx_strlen(ptr1);
|
||||
+ etag->value.data = ngx_pnalloc(r->pool, etag->value.len);
|
||||
+ // hash + content-length + quotes and hyphen. Note that the
|
||||
+ // content-length part of the string can vary in length.
|
||||
+ etag->value.data = ngx_pnalloc(r->pool, ngx_strlen(ptr1) + NGX_OFF_T_LEN + 3);
|
||||
+
|
||||
+ if (etag->value.data == NULL) {
|
||||
+ ngx_free(real);
|
||||
@ -58,9 +71,18 @@ index cb49ef74..7b456993 100644
|
||||
+ return NGX_ERROR;
|
||||
+ }
|
||||
+
|
||||
+ ngx_memcpy(etag->value.data, ptr1, etag->value.len);
|
||||
+
|
||||
+ // set value.data content to "{hash}-{content-length}" (including quote
|
||||
+ // marks), and set value.len to the length of the resulting string
|
||||
+ etag->value.len = ngx_sprintf(etag->value.data, "\"\%s-%xO\"",
|
||||
+ ptr1,
|
||||
+ r->headers_out.content_length_n)
|
||||
+ - etag->value.data;
|
||||
+
|
||||
+ ngx_http_clear_last_modified(r);
|
||||
+ } else {
|
||||
+ // outside of Nix store, use the upstream Nginx logic for etags
|
||||
+
|
||||
+ etag->value.data = ngx_pnalloc(r->pool, NGX_OFF_T_LEN + NGX_TIME_T_LEN + 3);
|
||||
+
|
||||
+ if (etag->value.data == NULL) {
|
||||
@ -82,4 +104,3 @@ index cb49ef74..7b456993 100644
|
||||
+ ngx_free(real);
|
||||
|
||||
r->headers_out.etag = etag;
|
||||
|
||||
|
2953
pkgs/servers/mail/stalwart/Cargo.lock
generated
2953
pkgs/servers/mail/stalwart/Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
@ -10,10 +10,11 @@
|
||||
, stdenv
|
||||
, darwin
|
||||
, nix-update-script
|
||||
, rocksdb
|
||||
}:
|
||||
|
||||
let
|
||||
version = "0.4.2";
|
||||
version = "0.5.2";
|
||||
in
|
||||
rustPlatform.buildRustPackage {
|
||||
pname = "stalwart-mail";
|
||||
@ -23,27 +24,18 @@ rustPlatform.buildRustPackage {
|
||||
owner = "stalwartlabs";
|
||||
repo = "mail-server";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-Ah53htK38Bm2yGN44IiC6iRWgxkMVRtrNvXXvPh+SJc=";
|
||||
hash = "sha256-U53v123mLD9mGmsNKgHlad8+2vr9lzMXizT4KeOChJY=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
cargoLock = {
|
||||
lockFile = ./Cargo.lock;
|
||||
outputHashes = {
|
||||
"hyper-util-0.0.0" = "sha256-9vp8eWjK/pjkJCMjVSI9J2b4amhXK5sat1VAq5Jd6mI=";
|
||||
"jmap-client-0.3.0" = "sha256-TJQEi2qH/92QA3YJrPBWgpO0nE5o7Atv6btq2gPNTmw=";
|
||||
"mail-auth-0.3.6" = "sha256-FTC0ZHyZ5H2yBlmNrOijm50xQ3qd2Q+52z8THCW5A5Q=";
|
||||
"mail-builder-0.3.1" = "sha256-JPV3vp/5+9yFoNNZzxuQ9sbnF8HgDbfHhtb6zQfLFqQ=";
|
||||
"mail-parser-0.9.1" = "sha256-PJh6s7SvspakhuziEy+dZccIN0hJpjkcIUGTYQRvKGc=";
|
||||
"mail-send-0.4.1" = "sha256-WK6pC8ZtSoIScanNatDbb3Y7Ch43Dj3463VHDwmEyG0=";
|
||||
"sieve-rs-0.3.1" = "sha256-PJ24mwlpA6EpB3l749HfSFQhYAmpPxKmYJh/nBmDKDs=";
|
||||
"smtp-proto-0.1.1" = "sha256-C73wm+dfq+LKteHH9wATw2L23YMw3dhzTIyFJMoqvBA=";
|
||||
};
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
protobuf
|
||||
rustPlatform.bindgenHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
@ -60,6 +52,8 @@ rustPlatform.buildRustPackage {
|
||||
env = {
|
||||
OPENSSL_NO_VENDOR = true;
|
||||
ZSTD_SYS_USE_PKG_CONFIG = true;
|
||||
ROCKSDB_INCLUDE_DIR = "${rocksdb}/include";
|
||||
ROCKSDB_LIB_DIR = "${rocksdb}/lib";
|
||||
};
|
||||
|
||||
# Tests require reading to /etc/resolv.conf
|
||||
|
@ -43,7 +43,7 @@ let
|
||||
sgmllib3k
|
||||
six
|
||||
tempora
|
||||
zc_lockfile
|
||||
zc-lockfile
|
||||
]);
|
||||
path = lib.makeBinPath [ coreutils par2cmdline-turbo unrar unzip p7zip util-linux ];
|
||||
in stdenv.mkDerivation rec {
|
||||
|
@ -11,16 +11,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "sing-box";
|
||||
version = "1.8.0";
|
||||
version = "1.8.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "SagerNet";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-MKvqnPHcao7Hpc6C2kEmBAAC3lHHI1nQ+Zpco9WwqoU=";
|
||||
hash = "sha256-gz0kfrpRz1OgruNBkpO6N80nmK4iAS+KlK9LYQZpRUQ=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-8qNH4tQQMwVMpyUTrpL6StkYawO1kWOYXorRTh4GeIQ=";
|
||||
vendorHash = "sha256-NgtZ0z/9X+GWaZqQJMecF/Bxq9u8JKCewgQGSru+EJc=";
|
||||
|
||||
tags = [
|
||||
"with_quic"
|
||||
|
@ -489,6 +489,7 @@ mapAliases ({
|
||||
ufoLib2 = ufolib2; # added 2024-01-07
|
||||
ukrainealarm = throw "ukrainealarm has been removed, as it has been replaced as a home-assistant dependency by uasiren."; # added 2024-01-05
|
||||
unittest2 = throw "unittest2 has been removed as it's a backport of unittest that's unmaintained and not needed beyond Python 3.4."; # added 2022-12-01
|
||||
update_checker = update-checker; # added 2024-01-07
|
||||
uproot3 = throw "uproot3 has been removed, use uproot instead"; # added 2022-12-13
|
||||
uproot3-methods = throw "uproot3-methods has been removed"; # added 2022-12-13
|
||||
validictory = throw "validictory has been removed, since it abandoned"; # added 2023-07-07
|
||||
@ -512,8 +513,9 @@ mapAliases ({
|
||||
Yapsy = yapsy; # added 2023-02-19
|
||||
z3 = z3-solver; # added 2023-12-03
|
||||
zake = throw "zake has been removed because it is abandoned"; # added 2023-06-20
|
||||
zc-buildout221 = zc-buildout; # added 2021-07-21
|
||||
zc_buildout_nix = throw "zc_buildout_nix was pinned to a version no longer compatible with other modules";
|
||||
zc-buildout221 = zc-buildout; # added 2021-07-21
|
||||
zc_lockfile = zc-lockfile; # added 2024-01-06
|
||||
zipstream-new = throw "zipstream-new has been removed, because it was packaged as a dependency for octoprint, which has switched to zipstream-ng since."; # added 2024-01-05
|
||||
zope_broken = throw "zope_broken has been removed because it is obsolete and not needed in zodb>=3.10"; # added 2023-07-26
|
||||
zope_component = zope-component; # added 2023-07-28
|
||||
|
@ -15672,7 +15672,7 @@ self: super: with self; {
|
||||
|
||||
upcloud-api = callPackage ../development/python-modules/upcloud-api { };
|
||||
|
||||
update_checker = callPackage ../development/python-modules/update_checker { };
|
||||
update-checker = callPackage ../development/python-modules/update-checker { };
|
||||
|
||||
update-copyright = callPackage ../development/python-modules/update-copyright { };
|
||||
|
||||
@ -16423,7 +16423,7 @@ self: super: with self; {
|
||||
|
||||
zc-buildout = callPackage ../development/python-modules/buildout { };
|
||||
|
||||
zc_lockfile = callPackage ../development/python-modules/zc_lockfile { };
|
||||
zc-lockfile = callPackage ../development/python-modules/zc-lockfile { };
|
||||
|
||||
zcbor = callPackage ../development/python-modules/zcbor { };
|
||||
|
||||
|
@ -1,4 +1,14 @@
|
||||
{
|
||||
abbrev = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0hj2qyx7rzpc7awhvqlm597x7qdxwi4kkml4aqnp5jylmsm4w6xd";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.1.2";
|
||||
};
|
||||
actioncable = {
|
||||
dependencies = ["actionpack" "activesupport" "nio4r" "websocket-driver" "zeitwerk"];
|
||||
groups = ["default"];
|
||||
@ -644,10 +654,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1dd9wik69yqi54r1mgmvi7gqzgzh7vw4nfwriknk1z7piwv6w22c";
|
||||
sha256 = "1kcvivig7vvw3bnds1pi4m69wn7cgmsffn93lw5i1nzw490x2da4";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.3.0";
|
||||
version = "0.4.0";
|
||||
};
|
||||
cocoapods-wholemodule = {
|
||||
groups = ["default"];
|
||||
@ -901,10 +911,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1gpciaifmxql8h01ci12qq08dnqrdlzkkz6fmia9v9yc3r9a29si";
|
||||
sha256 = "0cyr2xm576gqhqicsyqnhanni47408w2pgvrfi8pd13h2li3nsaz";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.6.20231109";
|
||||
version = "0.6.20240107";
|
||||
};
|
||||
dotenv = {
|
||||
groups = ["default"];
|
||||
@ -965,10 +975,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1vsqmx8pslcg1zca7hfc89vfnbcfvgyfbbxpdk2xm4cidl80zmv9";
|
||||
sha256 = "0l4znxsrcsa6a1ylig4wkml1kdydyvb3qzh7mr1gn39zn25wflj0";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.6.0";
|
||||
version = "0.7.1";
|
||||
};
|
||||
erubi = {
|
||||
groups = ["default"];
|
||||
@ -1016,10 +1026,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1q9yz7x36mpzpz04bg6hdyrzzk4bri9jg3h2ygw26bf6v3axq53q";
|
||||
sha256 = "1kmmwgjzlrnc3nnrdnw1z67c95nbw0hv54a73yj8jw6pcvl9585x";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.108.0";
|
||||
version = "0.109.0";
|
||||
};
|
||||
execjs = {
|
||||
groups = ["default"];
|
||||
@ -1032,25 +1042,26 @@
|
||||
version = "2.9.1";
|
||||
};
|
||||
faraday = {
|
||||
dependencies = ["base64" "faraday-net_http" "ruby2_keywords"];
|
||||
dependencies = ["faraday-net_http"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "19p45ryrvxff6ggdj4fq76dk7wlkfgrh474c3kwzdsjx3xpdq8x8";
|
||||
sha256 = "1qqb1rmk0f9m82iijjlqadh5yby1bhnr6svjk9vxdvh6f181988s";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.8.1";
|
||||
version = "2.9.0";
|
||||
};
|
||||
faraday-net_http = {
|
||||
dependencies = ["net-http"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "13byv3mp1gsjyv8k0ih4612y6vw5kqva6i03wcg4w2fqpsd950k8";
|
||||
sha256 = "17w51yk4rrm9rpnbc3x509s619kba0jga3qrj4b17l30950vw9qn";
|
||||
type = "gem";
|
||||
};
|
||||
version = "3.0.2";
|
||||
version = "3.1.0";
|
||||
};
|
||||
ffi = {
|
||||
groups = ["default"];
|
||||
@ -1100,10 +1111,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "06m6hxq8vspx9h9bgc2s19m56jzasvl45vblrfv1q5h1qg1k6amw";
|
||||
sha256 = "0p2xiw0n4l1k3ynma1vl0fzw5w8xhkv70x4f829nydxv7hply80y";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.3.0";
|
||||
version = "2.4.0";
|
||||
};
|
||||
fog-dnsimple = {
|
||||
dependencies = ["fog-core" "fog-json"];
|
||||
@ -1226,10 +1237,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0rf4603ffvdlvnzx1nmh2x5j8lic3p24115sm7bx6p2nwii09f69";
|
||||
sha256 = "0hfjw17g33qfsrb0lwcsl0capyjdpm6zpzxrspzfb4lyppqyyqic";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.18.0";
|
||||
version = "1.19.0";
|
||||
};
|
||||
github-pages = {
|
||||
dependencies = ["github-pages-health-check" "jekyll" "jekyll-avatar" "jekyll-coffeescript" "jekyll-commonmark-ghpages" "jekyll-default-layout" "jekyll-feed" "jekyll-gist" "jekyll-github-metadata" "jekyll-include-cache" "jekyll-mentions" "jekyll-optional-front-matter" "jekyll-paginate" "jekyll-readme-index" "jekyll-redirect-from" "jekyll-relative-links" "jekyll-remote-theme" "jekyll-sass-converter" "jekyll-seo-tag" "jekyll-sitemap" "jekyll-swiss" "jekyll-theme-architect" "jekyll-theme-cayman" "jekyll-theme-dinky" "jekyll-theme-hacker" "jekyll-theme-leap-day" "jekyll-theme-merlot" "jekyll-theme-midnight" "jekyll-theme-minimal" "jekyll-theme-modernist" "jekyll-theme-primer" "jekyll-theme-slate" "jekyll-theme-tactile" "jekyll-theme-time-machine" "jekyll-titles-from-headings" "jemoji" "kramdown" "kramdown-parser-gfm" "liquid" "mercenary" "minima" "nokogiri" "rouge" "terminal-table"];
|
||||
@ -1340,14 +1351,15 @@
|
||||
version = "5.0.0";
|
||||
};
|
||||
highline = {
|
||||
dependencies = ["abbrev"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1f8cr014j7mdqpdb9q17fp5vb5b8n1pswqaif91s3ylg5x3pygfn";
|
||||
sha256 = "1yw7mjnq498xr34rvpyacw7dagw1azsds0gk781p493ygx7ck7m6";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.1.0";
|
||||
version = "3.0.0";
|
||||
};
|
||||
hike = {
|
||||
groups = ["default"];
|
||||
@ -1520,10 +1532,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0phrzmmxbwqmkh4dzld3pc82yml996nzfdzjipniv8wwrxwbgb3r";
|
||||
sha256 = "0hh8d5l4ki6vg2p5x3v000gkrdqi1kdjv4vk5v8lfz9gr4kdc007";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.11.0";
|
||||
version = "1.11.1";
|
||||
};
|
||||
jaro_winkler = {
|
||||
groups = ["default"];
|
||||
@ -2115,20 +2127,20 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1s5v614c1kg5z4hqrmza5fr7qfpqvqirc51624wwsq9vismdisnv";
|
||||
sha256 = "1p6hdglfjx9r0rycn2fb0zjg2czl72nyfx8mmrf20w4qmslj0fj9";
|
||||
type = "gem";
|
||||
};
|
||||
version = "4.1.2";
|
||||
version = "5.0.2";
|
||||
};
|
||||
link-header-parser = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1wp8sdrv5j89gbb68zvxlyd84q4ddyz726db76sn76bbmm9621mc";
|
||||
sha256 = "1bm32imabc12rjjw8ysca55c99flcsichynfflphxy8gda07dj9x";
|
||||
type = "gem";
|
||||
};
|
||||
version = "5.1.0";
|
||||
version = "5.1.1";
|
||||
};
|
||||
liquid = {
|
||||
groups = ["default"];
|
||||
@ -2262,10 +2274,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0q8d881k1b3rbsfcdi3fx0b5vpdr5wcrhn88r2d9j7zjdkxp5mw5";
|
||||
sha256 = "1r64z0m5zrn4k37wabfnv43wa6yivgdfk6cf2rpmmirlz889yaf1";
|
||||
type = "gem";
|
||||
};
|
||||
version = "3.5.1";
|
||||
version = "3.5.2";
|
||||
};
|
||||
mime-types-data = {
|
||||
groups = ["default"];
|
||||
@ -2323,10 +2335,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0bkmfi9mb49m0fkdhl2g38i3xxa02d411gg0m8x0gvbwfmmg5ym3";
|
||||
sha256 = "1g4sjps6k8gvsm9hig3v6hnlpklgjipdaha2z2q0grxdfh6hrsb8";
|
||||
type = "gem";
|
||||
};
|
||||
version = "5.20.0";
|
||||
version = "5.21.1";
|
||||
};
|
||||
molinillo = {
|
||||
groups = ["default"];
|
||||
@ -2429,16 +2441,27 @@
|
||||
};
|
||||
version = "1.4.10";
|
||||
};
|
||||
net-http = {
|
||||
dependencies = ["uri"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "10n2n9aq00ih8v881af88l1zyrqgs5cl3njdw8argjwbl5ggqvm9";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.4.1";
|
||||
};
|
||||
net-imap = {
|
||||
dependencies = ["date" "net-protocol"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1izifdsinnfi34v2x3yavc0kxcmi1cwph11akqf949rf00sckkcp";
|
||||
sha256 = "0z9f6kfxz9qanar534gs3mk6snyvw8rnx3f6ykjn2jiziv0rv1ig";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.4.9";
|
||||
version = "0.4.9.1";
|
||||
};
|
||||
net-pop = {
|
||||
dependencies = ["net-protocol"];
|
||||
@ -2479,10 +2502,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1rx3758w0bmbr21s2nsc6llflsrnp50fwdnly3ixra4v53gbhzid";
|
||||
sha256 = "0csspzqrg7s2v2wdp6vqqs1rra6w5ilpgnps5h52ig6rp7x2i389";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.4.0";
|
||||
version = "0.4.0.1";
|
||||
};
|
||||
net-ssh = {
|
||||
groups = ["default"];
|
||||
@ -2520,7 +2543,7 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "NBOIGE6XXQkebjjOPzsziL+35Kw9eQ79jjkSSEQEC9E=";
|
||||
sha256 = "1l8b0i24h4irivyhwy9xmkjbggw86cxkzkiqdqg0jpcp9qc8h4rl";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.16.0";
|
||||
@ -2638,10 +2661,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0r69dbh6h6j4d54isany2ir4ni4gf2ysvk3k44awi6amz18nggpd";
|
||||
sha256 = "0c53sypj4pac5id0abxjbii9g5xnykb9aapwr1z38wzaqv1ys026";
|
||||
type = "gem";
|
||||
};
|
||||
version = "3.2.2.4";
|
||||
version = "3.3.0.3";
|
||||
};
|
||||
paru = {
|
||||
groups = ["default"];
|
||||
@ -2784,10 +2807,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1pp43n69p6bjvc640wgcz295w1q2v9awcqgbwcqn082dbvq5xvnx";
|
||||
sha256 = "0xgsr1agv754709fb7x11zn07skmbwlds88sa5s57d7x1apswmkd";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.4.0";
|
||||
version = "1.5.0";
|
||||
};
|
||||
psych = {
|
||||
dependencies = ["stringio"];
|
||||
@ -2816,10 +2839,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1y8jcw80zcxvdq0id329lzmp5pzx7hpac227d7sgjkblc89s3pfm";
|
||||
sha256 = "0i2vaww6qcazj0ywva1plmjnj6rk23b01szswc5jhcq7s2cikd1y";
|
||||
type = "gem";
|
||||
};
|
||||
version = "6.4.0";
|
||||
version = "6.4.2";
|
||||
};
|
||||
pwntools = {
|
||||
dependencies = ["crabstone" "dentaku" "elftools" "keystone-engine" "method_source" "one_gadget" "rainbow" "ruby2ruby" "rubyserial"];
|
||||
@ -2853,15 +2876,15 @@
|
||||
version = "2.2.8";
|
||||
};
|
||||
rack-protection = {
|
||||
dependencies = ["rack"];
|
||||
dependencies = ["base64" "rack"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0xsz78hccgza144n37bfisdkzpr2c8m0xl6rnlzgxdbsm1zrkg7r";
|
||||
sha256 = "1zzvivmdb4dkscc58i3gmcyrnypynsjwp6xgc4ylarlhqmzvlx1w";
|
||||
type = "gem";
|
||||
};
|
||||
version = "3.1.0";
|
||||
version = "3.2.0";
|
||||
};
|
||||
rack-session = {
|
||||
dependencies = ["rack"];
|
||||
@ -3039,10 +3062,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0ih6igmfcb4b9a8hd46ggn85zfyclz9h828d0xafy2pq5qlz9fs2";
|
||||
sha256 = "0sj80r3gy4sb27mrgc6pwcf2lra669p8p81axdv2p5pfm6k3mqbq";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.5.0";
|
||||
version = "2.6.0";
|
||||
};
|
||||
red-colors = {
|
||||
dependencies = ["matrix"];
|
||||
@ -3114,10 +3137,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1xrghj2vka7girycp1m88kvl4qxkm4mj4djz4w1jzywb4v97fclm";
|
||||
sha256 = "1ndxm0xnv27p4gv6xynk6q41irckj76q1jsqpysd9h6f86hhp841";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.8.3";
|
||||
version = "2.9.0";
|
||||
};
|
||||
reline = {
|
||||
dependencies = ["io-console"];
|
||||
@ -3125,10 +3148,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1hi6zfj6zqzxcbamhjm9w9cswv62f76l8gsdfcnmhpw35cyxphh8";
|
||||
sha256 = "0fhwdmw89zqb1fdxcd6lr57zabbfi08z8j6kqwngak0xnxi2j10l";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.4.1";
|
||||
version = "0.4.2";
|
||||
};
|
||||
rest-client = {
|
||||
dependencies = ["http-accept" "http-cookie" "mime-types" "netrc"];
|
||||
@ -3275,10 +3298,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0rfg3p6bblx9gv934fdgaji0wg0xl1drhrnlifqdgkw8wbiaw0jg";
|
||||
sha256 = "0cf7fn4dwf45r3nhnda0dhnwn8qghswyqbfxr2ippb3z8a6gmc8v";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.20.1";
|
||||
version = "1.20.2";
|
||||
};
|
||||
ruby-graphviz = {
|
||||
dependencies = ["rexml"];
|
||||
@ -3318,10 +3341,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1g1vdas991rv6lrjppjxjbfyzif4jxbncrcg9shgzrmibzilbnwr";
|
||||
sha256 = "1wajd1cib17jlvfh0agiz2x20p22v6g2ydvqpm6c7srv2x3g7vbb";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.13.2";
|
||||
version = "0.13.4";
|
||||
};
|
||||
ruby-lxc = {
|
||||
groups = ["default"];
|
||||
@ -3507,10 +3530,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "148cmk9bdj6y2ax06rd5q5i322lmzn49qd1cal616hys6qd04bm1";
|
||||
sha256 = "0csan4kfiwr8a94l0zy3xsrs525ygkc0ly8mdihx5lf9x6ywg6s0";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.21.0";
|
||||
version = "0.21.1";
|
||||
};
|
||||
sequel = {
|
||||
dependencies = ["bigdecimal"];
|
||||
@ -3518,10 +3541,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1b2ypz0sgivfjzsr4igh6cm46fifzkanmz0fw8p0yq5xr4isv722";
|
||||
sha256 = "1698b1fc8b5yxgb3y5w3bkz1xjxxwpa19b3x17211x8jhy5cjzjd";
|
||||
type = "gem";
|
||||
};
|
||||
version = "5.75.0";
|
||||
version = "5.76.0";
|
||||
};
|
||||
sequel_pg = {
|
||||
dependencies = ["pg" "sequel"];
|
||||
@ -3592,10 +3615,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "00541cnypsh1mnilfxxqlz6va9afrixf9m1asn4wzjp5m59777p8";
|
||||
sha256 = "01wq20aqk5kfggq3wagx5xr1cz0x08lg6dxbk9yhd1sf0d6pywkf";
|
||||
type = "gem";
|
||||
};
|
||||
version = "3.1.0";
|
||||
version = "3.2.0";
|
||||
};
|
||||
slather = {
|
||||
dependencies = ["CFPropertyList" "activesupport" "clamp" "nokogiri" "xcodeproj"];
|
||||
@ -3623,10 +3646,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1a77kysns9pz4nx149df0f987qj1pdfyjby2jr3iwmj2zj7r3klp";
|
||||
sha256 = "1ndib94d181y5gd7qg515ralb02zri91vd3q94k21fgc4r897cd4";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.3.0";
|
||||
version = "0.4.0";
|
||||
};
|
||||
snmp = {
|
||||
groups = ["default"];
|
||||
@ -3654,10 +3677,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0xm54yjrdz200iahvily91n0nlv9xr2yp1rjz077fq1z2pi1kadg";
|
||||
sha256 = "1raijm9if45lssx8a0m8dpnb9d7grqgyrgnx7g3v4vyw3wvn6pm0";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.5.11164";
|
||||
version = "0.5.11193";
|
||||
};
|
||||
sqlite3 = {
|
||||
dependencies = ["mini_portile2"];
|
||||
@ -3665,10 +3688,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "08irz5llz31im8pmkk5k0kw433jyyji1qa98xkdmpphncdjr38am";
|
||||
sha256 = "0g5frmpl4dlb36y4zv1p5mvd3pag5ya96bjpjmyxpchzb5jmjjw9";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.6.9";
|
||||
version = "1.7.0";
|
||||
};
|
||||
stringio = {
|
||||
groups = ["default"];
|
||||
@ -3788,10 +3811,10 @@
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1fqzm5a7wf7r9jl7pxs7g6m3qpvyzpia0pid0blzc0b34n0nrb35";
|
||||
sha256 = "1nva5glid3mpwqk0siws74r6qfv89n0amw9ffzwnwlm12cd4ahdm";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.1.6";
|
||||
version = "2.1.7";
|
||||
};
|
||||
treetop = {
|
||||
dependencies = ["polyglot"];
|
||||
@ -3899,6 +3922,16 @@
|
||||
};
|
||||
version = "2.5.0";
|
||||
};
|
||||
uri = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "094gk72ckazf495qc76gk09b5i318d5l9m7bicg2wxlrjcm3qm96";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.13.0";
|
||||
};
|
||||
uuid4r = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
|
Loading…
Reference in New Issue
Block a user