Merge staging-next into staging

This commit is contained in:
github-actions[bot]
2023-12-21 00:02:47 +00:00
committed by GitHub
1064 changed files with 7831 additions and 4999 deletions
+1 -1
View File
@@ -29,4 +29,4 @@ jobs:
name: nixpkgs-ci
signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}'
- name: Building Nixpkgs manual
run: NIX_PATH=nixpkgs=$(pwd) nix-build --option restrict-eval true pkgs/top-level/release.nix -A manual
run: NIX_PATH=nixpkgs=$(pwd) nix-build --option restrict-eval true pkgs/top-level/release.nix -A manual -A manual.tests
+22
View File
@@ -149,4 +149,26 @@ in pkgs.stdenv.mkDerivation {
echo "doc manual $dest ${common.indexPath}" >> $out/nix-support/hydra-build-products
echo "doc manual $dest nixpkgs-manual.epub" >> $out/nix-support/hydra-build-products
'';
passthru.tests.manpage-urls = with pkgs; testers.invalidateFetcherByDrvHash
({ name ? "manual_check-manpage-urls"
, script
, urlsFile
}: runCommand name {
nativeBuildInputs = [
cacert
(python3.withPackages (p: with p; [
aiohttp
rich
structlog
]))
];
outputHash = "sha256-47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU="; # Empty output
} ''
python3 ${script} ${urlsFile}
touch $out
'') {
script = ./tests/manpage-urls.py;
urlsFile = ./manpage-urls.json;
};
}
+1 -1
View File
@@ -1,5 +1,5 @@
{
"gnunet.conf(5)": "https://docs.gnunet.org/users/configuration.html",
"gnunet.conf(5)": "https://docs.gnunet.org/latest/users/configuration.html",
"mpd(1)": "https://mpd.readthedocs.io/en/latest/mpd.1.html",
"mpd.conf(5)": "https://mpd.readthedocs.io/en/latest/mpd.conf.5.html",
"nix.conf(5)": "https://nixos.org/manual/nix/stable/command-ref/conf-file.html",
+3 -3
View File
@@ -831,7 +831,7 @@ Note that shell arrays cannot be passed through environment variables, so you ca
##### `buildFlags` / `buildFlagsArray` {#var-stdenv-buildFlags}
A list of strings passed as additional flags to `make`. Like `makeFlags` and `makeFlagsArray`, but only used by the build phase.
A list of strings passed as additional flags to `make`. Like `makeFlags` and `makeFlagsArray`, but only used by the build phase. Any build targets should be specified as part of the `buildFlags`.
##### `preBuild` {#var-stdenv-preBuild}
@@ -872,7 +872,7 @@ If unset, use `check` if it exists, otherwise `test`; if neither is found, do no
##### `checkFlags` / `checkFlagsArray` {#var-stdenv-checkFlags}
A list of strings passed as additional flags to `make`. Like `makeFlags` and `makeFlagsArray`, but only used by the check phase.
A list of strings passed as additional flags to `make`. Like `makeFlags` and `makeFlagsArray`, but only used by the check phase. Unlike with `buildFlags`, the `checkTarget` is automatically added to the `make` invocation in addition to any `checkFlags` specified.
##### `checkInputs` {#var-stdenv-checkInputs}
@@ -914,7 +914,7 @@ installTargets = "install-bin install-doc";
##### `installFlags` / `installFlagsArray` {#var-stdenv-installFlags}
A list of strings passed as additional flags to `make`. Like `makeFlags` and `makeFlagsArray`, but only used by the install phase.
A list of strings passed as additional flags to `make`. Like `makeFlags` and `makeFlagsArray`, but only used by the install phase. Unlike with `buildFlags`, the `installTargets` are automatically added to the `make` invocation in addition to any `installFlags` specified.
##### `preInstall` {#var-stdenv-preInstall}
+109
View File
@@ -0,0 +1,109 @@
#! /usr/bin/env nix-shell
#! nix-shell -i "python3 -I" -p "python3.withPackages(p: with p; [ aiohttp rich structlog ])"
from argparse import ArgumentParser, Namespace
from collections import defaultdict
from collections.abc import Mapping, Sequence
from enum import IntEnum
from http import HTTPStatus
from pathlib import Path
from typing import Optional
import asyncio, json, logging
import aiohttp, structlog
from structlog.contextvars import bound_contextvars as log_context
LogLevel = IntEnum('LogLevel', {
lvl: getattr(logging, lvl)
for lvl in ('DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL')
})
LogLevel.__str__ = lambda self: self.name
EXPECTED_STATUS=frozenset((
HTTPStatus.OK, HTTPStatus.FOUND,
HTTPStatus.NOT_FOUND,
))
async def check(session: aiohttp.ClientSession, manpage: str, url: str) -> HTTPStatus:
with log_context(manpage=manpage, url=url):
logger.debug("Checking")
async with session.head(url) as resp:
st = HTTPStatus(resp.status)
match st:
case HTTPStatus.OK | HTTPStatus.FOUND:
logger.debug("OK!")
case HTTPStatus.NOT_FOUND:
logger.error("Broken link!")
case _ if st < 400:
logger.info("Unexpected code", status=st)
case _ if 400 <= st < 600:
logger.warn("Unexpected error", status=st)
return st
async def main(urls_path: Path) -> Mapping[HTTPStatus, int]:
logger.info(f"Parsing {urls_path}")
with urls_path.open() as urls_file:
urls = json.load(urls_file)
count: defaultdict[HTTPStatus, int] = defaultdict(lambda: 0)
logger.info(f"Checking URLs from {urls_path}")
async with aiohttp.ClientSession() as session:
for status in asyncio.as_completed([
check(session, manpage, url)
for manpage, url in urls.items()
]):
count[await status]+=1
ok = count[HTTPStatus.OK] + count[HTTPStatus.FOUND]
broken = count[HTTPStatus.NOT_FOUND]
unknown = sum(c for st, c in count.items() if st not in EXPECTED_STATUS)
logger.info(f"Done: {broken} broken links, "
f"{ok} correct links, and {unknown} unexpected status")
return count
def parse_args(args: Optional[Sequence[str]] = None) -> Namespace:
parser = ArgumentParser(
prog = 'check-manpage-urls',
description = 'Check the validity of the manpage URLs linked in the nixpkgs manual',
)
parser.add_argument(
'-l', '--log-level',
default = os.getenv('LOG_LEVEL', 'INFO'),
type = lambda s: LogLevel[s],
choices = list(LogLevel),
)
parser.add_argument(
'file',
type = Path,
nargs = '?',
)
return parser.parse_args(args)
if __name__ == "__main__":
import os, sys
args = parse_args()
structlog.configure(
wrapper_class=structlog.make_filtering_bound_logger(args.log_level),
)
logger = structlog.getLogger("check-manpage-urls.py")
urls_path = args.file
if urls_path is None:
REPO_ROOT = Path(__file__).parent.parent.parent.parent
logger.info(f"Assuming we are in a nixpkgs repo rooted at {REPO_ROOT}")
urls_path = REPO_ROOT / 'doc' / 'manpage-urls.json'
count = asyncio.run(main(urls_path))
sys.exit(0 if count[HTTPStatus.NOT_FOUND] == 0 else 1)
+6
View File
@@ -16977,6 +16977,12 @@
githubId = 8017899;
name = "Sivaram Balakrishnan";
};
sixstring982 = {
email = "sixstring982@gmail.com";
github = "sixstring982";
githubId = 1328977;
name = "Trent Small";
};
sjagoe = {
email = "simon@simonjagoe.com";
github = "sjagoe";
@@ -468,8 +468,8 @@ in {
mkdir -p "${cfg.configDir}/custom_components"
# remove components symlinked in from below the /nix/store
components="$(find "${cfg.configDir}/custom_components" -maxdepth 1 -type l)"
for component in "$components"; do
readarray -d "" components < <(find "${cfg.configDir}/custom_components" -maxdepth 1 -type l -print0)
for component in "''${components[@]}"; do
if [[ "$(readlink "$component")" =~ ^${escapeShellArg builtins.storeDir} ]]; then
rm "$component"
fi
+15
View File
@@ -234,6 +234,13 @@ in
description = lib.mdDoc "Path to the git repositories.";
};
camoHmacKeyFile = mkOption {
type = types.nullOr types.str;
default = null;
example = "/var/lib/secrets/gitea/camoHmacKey";
description = lib.mdDoc "Path to a file containing the camo HMAC key.";
};
mailerPasswordFile = mkOption {
type = types.nullOr types.str;
default = null;
@@ -429,6 +436,10 @@ in
LFS_JWT_SECRET = "#lfsjwtsecret#";
};
camo = mkIf (cfg.camoHmacKeyFile != null) {
HMAC_KEY = "#hmackey#";
};
session = {
COOKIE_NAME = lib.mkDefault "session";
};
@@ -570,6 +581,10 @@ in
${replaceSecretBin} '#lfsjwtsecret#' '${lfsJwtSecret}' '${runConfig}'
''}
${lib.optionalString (cfg.camoHmacKeyFile != null) ''
${replaceSecretBin} '#hmackey#' '${cfg.camoHmacKeyFile}' '${runConfig}'
''}
${lib.optionalString (cfg.mailerPasswordFile != null) ''
${replaceSecretBin} '#mailerpass#' '${cfg.mailerPasswordFile}' '${runConfig}'
''}
@@ -43,14 +43,14 @@ in
};
};
serviceOpts = mkMerge ([{
environment.CONST_LABELS = concatStringsSep "," cfg.constLabels;
serviceConfig = {
ExecStart = ''
${pkgs.prometheus-nginx-exporter}/bin/nginx-prometheus-exporter \
--nginx.scrape-uri='${cfg.scrapeUri}' \
--nginx.ssl-verify=${boolToString cfg.sslVerify} \
--${lib.optionalString (!cfg.sslVerify) "no-"}nginx.ssl-verify \
--web.listen-address=${cfg.listenAddress}:${toString cfg.port} \
--web.telemetry-path=${cfg.telemetryPath} \
--prometheus.const-labels=${concatStringsSep "," cfg.constLabels} \
${concatStringsSep " \\\n " cfg.extraFlags}
'';
};
+2 -1
View File
@@ -806,6 +806,7 @@ let
nginx = {
exporterConfig = {
enable = true;
constLabels = [ "foo=bar" ];
};
metricProvider = {
services.nginx = {
@@ -818,7 +819,7 @@ let
wait_for_unit("nginx.service")
wait_for_unit("prometheus-nginx-exporter.service")
wait_for_open_port(9113)
succeed("curl -sSf http://localhost:9113/metrics | grep 'nginx_up 1'")
succeed("curl -sSf http://localhost:9113/metrics | grep 'nginx_up{foo=\"bar\"} 1'")
'';
};
@@ -64,10 +64,6 @@ in python3.pkgs.buildPythonApplication rec {
"--prefix" "PATH" ":" (lib.makeBinPath bins)
];
preBuild = ''
export SETUPTOOLS_SCM_PRETEND_VERSION="${version}"
'';
outputs = [ "out" "man" ];
postBuild = ''
make -C man
+1
View File
@@ -34,6 +34,7 @@ python3.pkgs.buildPythonApplication rec {
];
pytestFlagsArray = [
"-W" "ignore::sphinx.deprecation.RemovedInSphinx90Warning"
"--rootdir" "src/ablog"
];
+9 -3
View File
@@ -6,15 +6,21 @@
python3Packages.buildPythonApplication rec {
pname = "acpic";
version = "1.0.0";
format = "setuptools";
pyproject = true;
src = fetchPypi {
inherit version pname;
hash = "sha256-vQ9VxCNbOmqHIY3e1wq1wNJl5ywfU2tm62gDg3vKvcg=";
};
nativeBuildInputs = [
python3Packages.pbr
postPatch = ''
substituteInPlace setup.py \
--replace "pbr>=5.8.1,<6" "pbr"
'';
nativeBuildInputs = with python3Packages; [
pbr
setuptools
];
# no tests
+5
View File
@@ -19,6 +19,7 @@ in
with python3.pkgs; buildPythonApplication rec {
version = "4.8";
pname = "buku";
pyproject = true;
src = fetchFromGitHub {
owner = "jarun";
@@ -27,6 +28,10 @@ with python3.pkgs; buildPythonApplication rec {
sha256 = "sha256-kPVlfTYUusf5CZnKB53WZcCHo3MEnA2bLUHTRPGPn+8=";
};
nativeBuildInputs = [
setuptools
];
nativeCheckInputs = [
hypothesis
pytest
@@ -17,8 +17,6 @@ python3Packages.buildPythonApplication rec {
hatch-vcs
];
env.SETUPTOOLS_SCM_PRETEND_VERSION = version;
propagatedBuildInputs = with python3Packages; [
pykeepass
pynput
-2
View File
@@ -17,8 +17,6 @@ python3.pkgs.buildPythonApplication rec {
hash = "sha256-yI33pB/t+UISvSbLUzmsZqBxLF6r8R3j9iPNeosKcYw=";
};
SETUPTOOLS_SCM_PRETEND_VERSION = version;
nativeBuildInputs = [
glibcLocales
installShellFiles
-1
View File
@@ -9,7 +9,6 @@ python3.pkgs.buildPythonApplication rec {
sha256 = "sha256-WfMKDaPD2j6wT02+GO5HY5E7aF2Z7IQY/VdKiMSRxJA=";
};
SETUPTOOLS_SCM_PRETEND_VERSION = version;
nativeBuildInputs = with python3.pkgs; [
setuptools-scm
sphinxHook
@@ -30,8 +30,6 @@ python3.pkgs.buildPythonApplication rec {
setuptools-scm
];
env.SETUPTOOLS_SCM_PRETEND_VERSION = version;
propagatedBuildInputs = with python3.pkgs; [
colorama
distro
+1 -1
View File
@@ -163,7 +163,7 @@ let
zeroconf
zipstream-ng
class-doc
pydantic
pydantic_1
] ++ lib.optionals stdenv.isDarwin [
py.pkgs.appdirs
] ++ lib.optionals (!stdenv.isDarwin) [
@@ -15,9 +15,14 @@ python3.pkgs.buildPythonApplication rec {
hash = "sha256-TwHDXWgGWuQVgatBDc1iympnb6dy4xYThLR5MouEZHA=";
};
nativeBuildInputs = [
python3.pkgs.setuptools
python3.pkgs.wheel
nativeBuildInputs = with python3.pkgs; [
setuptools
pythonRelaxDepsHook
];
pythonRelaxDeps = [
"click"
"rich"
];
propagatedBuildInputs = with python3.pkgs; [
@@ -15,8 +15,6 @@ python3.pkgs.buildPythonApplication rec {
hash = "sha256-OzcoOIgEiadWrsUPIxBJTuZQYjScJBYKyqCu1or6fz8=";
};
SETUPTOOLS_SCM_PRETEND_VERSION = version;
nativeBuildInputs = with python3.pkgs; [
hatchling
hatch-vcs
@@ -24,7 +24,7 @@ python3.pkgs.buildPythonApplication rec {
attrs
click
cloudflare
pydantic
pydantic_1
requests
];
@@ -1,30 +1,42 @@
GEM
remote: https://rubygems.org/
specs:
activesupport (7.0.7.2)
activesupport (7.1.2)
base64
bigdecimal
concurrent-ruby (~> 1.0, >= 1.0.2)
connection_pool (>= 2.2.5)
drb
i18n (>= 1.6, < 2)
minitest (>= 5.1)
mutex_m
tzinfo (~> 2.0)
addressable (2.8.5)
addressable (2.8.6)
public_suffix (>= 2.0.2, < 6.0)
base64 (0.2.0)
bigdecimal (3.1.5)
colorize (0.8.1)
concurrent-ruby (1.2.2)
domain_name (0.5.20190701)
unf (>= 0.0.5, < 1.0.0)
connection_pool (2.4.1)
domain_name (0.6.20231109)
drb (2.2.0)
ruby2_keywords
ejson (1.4.1)
faraday (2.7.10)
faraday (2.7.12)
base64
faraday-net_http (>= 2.0, < 3.1)
ruby2_keywords (>= 0.0.4)
faraday-net_http (3.0.2)
ffi (1.15.5)
ffi (1.16.3)
ffi-compiler (1.0.1)
ffi (>= 1.0.0)
rake
googleauth (1.7.0)
faraday (>= 0.17.3, < 3.a)
google-cloud-env (2.1.0)
faraday (>= 1.0, < 3.a)
googleauth (1.9.1)
faraday (>= 1.0, < 3.a)
google-cloud-env (~> 2.1)
jwt (>= 1.4, < 3.0)
memoist (~> 0.16)
multi_json (~> 1.11)
os (>= 0.9, < 2.0)
signet (>= 0.16, < 2.a)
@@ -39,10 +51,10 @@ GEM
http-form_data (2.3.0)
i18n (1.14.1)
concurrent-ruby (~> 1.0)
jsonpath (1.1.3)
jsonpath (1.1.5)
multi_json
jwt (2.7.1)
krane (3.3.0)
krane (3.4.0)
activesupport (>= 5.0)
colorize (~> 0.8)
concurrent-ruby (~> 1.1)
@@ -61,16 +73,16 @@ GEM
llhttp-ffi (0.4.0)
ffi-compiler (~> 1.0)
rake (~> 13.0)
memoist (0.16.2)
mime-types (3.5.1)
mime-types-data (~> 3.2015)
mime-types-data (3.2023.0808)
minitest (5.19.0)
mime-types-data (3.2023.1205)
minitest (5.20.0)
multi_json (1.15.0)
mutex_m (0.2.0)
netrc (0.11.0)
os (1.1.4)
public_suffix (5.0.3)
rake (13.0.6)
public_suffix (5.0.4)
rake (13.1.0)
recursive-open-struct (1.1.3)
rest-client (2.1.0)
http-accept (>= 1.7.0, < 2.0)
@@ -78,18 +90,15 @@ GEM
mime-types (>= 1.16, < 4.0)
netrc (~> 0.8)
ruby2_keywords (0.0.5)
signet (0.17.0)
signet (0.18.0)
addressable (~> 2.8)
faraday (>= 0.17.5, < 3.a)
jwt (>= 1.5, < 3.0)
multi_json (~> 1.10)
statsd-instrument (3.5.11)
thor (1.2.2)
statsd-instrument (3.6.1)
thor (1.3.0)
tzinfo (2.0.6)
concurrent-ruby (~> 1.0)
unf (0.1.4)
unf_ext
unf_ext (0.0.8.2)
PLATFORMS
ruby
@@ -98,4 +107,4 @@ DEPENDENCIES
krane
BUNDLED WITH
2.4.18
2.4.22
@@ -13,6 +13,7 @@ bundlerApp {
meta = with lib; {
description = "A command-line tool that helps you ship changes to a Kubernetes namespace and understand the result";
homepage = "https://github.com/Shopify/krane";
changelog = "https://github.com/Shopify/krane/blob/main/CHANGELOG.md";
license = licenses.mit;
maintainers = with maintainers; [ kira-bruneau ];
};
@@ -1,14 +1,14 @@
{
activesupport = {
dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"];
dependencies = ["base64" "bigdecimal" "concurrent-ruby" "connection_pool" "drb" "i18n" "minitest" "mutex_m" "tzinfo"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1vlzcnyqlbchaq85phmdv73ydlc18xpvxy1cbsk191cwd29i7q32";
sha256 = "1l6hmf99zgckpn812qfxfz60rbh0zixv1hxnxhjlg8942pvixn2v";
type = "gem";
};
version = "7.0.7.2";
version = "7.1.2";
};
addressable = {
dependencies = ["public_suffix"];
@@ -16,10 +16,30 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "05r1fwy487klqkya7vzia8hnklcxy4vr92m9dmni3prfwk6zpw33";
sha256 = "0irbdwkkjwzajq1ip6ba46q49sxnrl2cw7ddkdhsfhb6aprnm3vr";
type = "gem";
};
version = "2.8.5";
version = "2.8.6";
};
base64 = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "01qml0yilb9basf7is2614skjp8384h2pycfx86cr8023arfj98g";
type = "gem";
};
version = "0.2.0";
};
bigdecimal = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1b1gqa90amazwnll9590m5ighywh9sacsmpyd5ihljivmvjswksk";
type = "gem";
};
version = "3.1.5";
};
colorize = {
groups = ["default"];
@@ -41,16 +61,36 @@
};
version = "1.2.2";
};
domain_name = {
dependencies = ["unf"];
connection_pool = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0lcqjsmixjp52bnlgzh4lg9ppsk52x9hpwdjd53k8jnbah2602h0";
sha256 = "1x32mcpm2cl5492kd6lbjbaf17qsssmpx9kdyr7z1wcif2cwyh0g";
type = "gem";
};
version = "0.5.20190701";
version = "2.4.1";
};
domain_name = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1gpciaifmxql8h01ci12qq08dnqrdlzkkz6fmia9v9yc3r9a29si";
type = "gem";
};
version = "0.6.20231109";
};
drb = {
dependencies = ["ruby2_keywords"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "03ylflxbp9jrs1hx3d4wvx05yb9hdq4a0r706zz6qc6kvqfazr79";
type = "gem";
};
version = "2.2.0";
};
ejson = {
groups = ["default"];
@@ -63,15 +103,15 @@
version = "1.4.1";
};
faraday = {
dependencies = ["faraday-net_http" "ruby2_keywords"];
dependencies = ["base64" "faraday-net_http" "ruby2_keywords"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "187clqhp9mv5mnqmjlfdp57svhsg1bggz84ak8v333j9skrnrgh9";
sha256 = "19w1lzipnxs6vy3y0pw1mf956f768ppzgfrnlpwgrpnjjv9xqf7d";
type = "gem";
};
version = "2.7.10";
version = "2.7.12";
};
faraday-net_http = {
groups = ["default"];
@@ -88,10 +128,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1862ydmclzy1a0cjbvm8dz7847d9rch495ib0zb64y84d3xd4bkg";
sha256 = "1yvii03hcgqj30maavddqamqy50h7y6xcn2wcyq72wn823zl4ckd";
type = "gem";
};
version = "1.15.5";
version = "1.16.3";
};
ffi-compiler = {
dependencies = ["ffi" "rake"];
@@ -104,16 +144,27 @@
};
version = "1.0.1";
};
googleauth = {
dependencies = ["faraday" "jwt" "memoist" "multi_json" "os" "signet"];
google-cloud-env = {
dependencies = ["faraday"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0h1k47vjaq37l0w9q49g3f50j1b0c1svhk07rmd1h49w38v2hxag";
sha256 = "056r1p8vhjswnx2cy3mzhwc5gj03whmpz8m4p2ph37gag5bpnxmf";
type = "gem";
};
version = "1.7.0";
version = "2.1.0";
};
googleauth = {
dependencies = ["faraday" "google-cloud-env" "jwt" "multi_json" "os" "signet"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0spv89di017rg25psiv4w3pn6f67y2w6vv8w910i83b5yii84rl1";
type = "gem";
};
version = "1.9.1";
};
http = {
dependencies = ["addressable" "http-cookie" "http-form_data" "llhttp-ffi"];
@@ -174,10 +225,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1i1idcl0rpfkzkxngadw33a33v3gqf93a3kj52y2ha2zs26bdzjp";
sha256 = "1ghxjcs9rss0fd43yqnc3ab6fhnm4qrkvv34p0xcjb9s35kh9xr9";
type = "gem";
};
version = "1.1.3";
version = "1.1.5";
};
jwt = {
groups = ["default"];
@@ -195,10 +246,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1qf5la1w4zrbda5n3s01pb9gij5hyknwglsnqsrc0vcm6bslfygj";
sha256 = "1phcappqkj30i99cqggj4sqzhcb3gim9my5xqzybq3byqfrcprqg";
type = "gem";
};
version = "3.3.0";
version = "3.4.0";
};
kubeclient = {
dependencies = ["http" "jsonpath" "recursive-open-struct" "rest-client"];
@@ -222,16 +273,6 @@
};
version = "0.4.0";
};
memoist = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0i9wpzix3sjhf6d9zw60dm4371iq8kyz7ckh2qapan2vyaim6b55";
type = "gem";
};
version = "0.16.2";
};
mime-types = {
dependencies = ["mime-types-data"];
groups = ["default"];
@@ -248,20 +289,20 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "17zdim7kzrh5j8c97vjqp4xp78wbyz7smdp4hi5iyzk0s9imdn5a";
sha256 = "08ja4k3yjczzz7n6rp1f3qvz4v45bc6fy04clnvdxbq3kfr7jk4c";
type = "gem";
};
version = "3.2023.0808";
version = "3.2023.1205";
};
minitest = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0jnpsbb2dbcs95p4is4431l2pw1l5pn7dfg3vkgb4ga464j0c5l6";
sha256 = "0bkmfi9mb49m0fkdhl2g38i3xxa02d411gg0m8x0gvbwfmmg5ym3";
type = "gem";
};
version = "5.19.0";
version = "5.20.0";
};
multi_json = {
groups = ["default"];
@@ -273,6 +314,16 @@
};
version = "1.15.0";
};
mutex_m = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1ma093ayps1m92q845hmpk0dmadicvifkbf05rpq9pifhin0rvxn";
type = "gem";
};
version = "0.2.0";
};
netrc = {
groups = ["default"];
platforms = [];
@@ -298,20 +349,20 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0n9j7mczl15r3kwqrah09cxj8hxdfawiqxa60kga2bmxl9flfz9k";
sha256 = "1bni4qjrsh2q49pnmmd6if4iv3ak36bd2cckrs6npl111n769k9m";
type = "gem";
};
version = "5.0.3";
version = "5.0.4";
};
rake = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "15whn7p9nrkxangbs9hh75q585yfn66lv0v2mhj6q6dl6x8bzr2w";
sha256 = "1ilr853hawi09626axx0mps4rkkmxcs54mapz9jnqvpnlwd3wsmy";
type = "gem";
};
version = "13.0.6";
version = "13.1.0";
};
recursive-open-struct = {
groups = ["default"];
@@ -350,30 +401,30 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0100rclkhagf032rg3r0gf3f4znrvvvqrimy6hpa73f21n9k2a0x";
sha256 = "0fzakk5y7zzii76zlkynpp1c764mzkkfg4mpj18f5pf2xp1aikb6";
type = "gem";
};
version = "0.17.0";
version = "0.18.0";
};
statsd-instrument = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1zpr5ms18ynygpwx73v0a8nkf41kpjylc9m3fyhvchq3ms17hcb0";
sha256 = "1psmiygzad3j4l0vzh2x48cmk4v6q87yg8ndvnp9jkcsbik77bzx";
type = "gem";
};
version = "3.5.11";
version = "3.6.1";
};
thor = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0k7j2wn14h1pl4smibasw0bp66kg626drxb59z7rzflch99cd4rg";
sha256 = "1hx77jxkrwi66yvs10wfxqa8s25ds25ywgrrf66acm9nbfg7zp0s";
type = "gem";
};
version = "1.2.2";
version = "1.3.0";
};
tzinfo = {
dependencies = ["concurrent-ruby"];
@@ -386,25 +437,4 @@
};
version = "2.0.6";
};
unf = {
dependencies = ["unf_ext"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0bh2cf73i2ffh4fcpdn9ir4mhq8zi50ik0zqa1braahzadx536a9";
type = "gem";
};
version = "0.1.4";
};
unf_ext = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1yj2nz2l101vr1x9w2k83a0fag1xgnmjwp8w8rw4ik2rwcz65fch";
type = "gem";
};
version = "0.0.8.2";
};
}
@@ -23,8 +23,6 @@ python3.pkgs.buildPythonApplication rec {
setuptools-scm
];
SETUPTOOLS_SCM_PRETEND_VERSION = version;
propagatedBuildInputs = with python3.pkgs; [
appdirs
deltachat
@@ -29,8 +29,6 @@ buildPythonPackage rec {
patchShebangs ../tools
'';
env.SETUPTOOLS_SCM_PRETEND_VERSION = version;
propagatedBuildInputs = [
distro
setuptools
@@ -29,8 +29,6 @@ buildPythonPackage rec {
patchShebangs ../tools
'';
env.SETUPTOOLS_SCM_PRETEND_VERSION = version;
nativeBuildInputs = [
pkgs.gettext
pkgs.which
@@ -44,8 +44,6 @@ buildPythonPackage rec {
patchShebangs ../tools
'';
env.SETUPTOOLS_SCM_PRETEND_VERSION = version;
propagatedBuildInputs = [
distro
gtk3
@@ -42,8 +42,6 @@ python3Packages.buildPythonApplication rec {
sourceRoot = "${src.name}/paperwork-gtk";
env.SETUPTOOLS_SCM_PRETEND_VERSION = version;
postPatch = ''
chmod a+w -R ..
patchShebangs ../tools
@@ -32,8 +32,6 @@ buildPythonPackage rec {
chmod a+w -R ..
patchShebangs ../tools
'';
env.SETUPTOOLS_SCM_PRETEND_VERSION = version;
propagatedBuildInputs = [
openpaperwork-core
paperwork-backend
@@ -19,8 +19,6 @@ python3.pkgs.buildPythonApplication rec {
hash = "sha256-5tQaNT6QVN9mxa9t6OvMux4ZGy4flUqszTAwet2QL0w=";
};
SETUPTOOLS_SCM_PRETEND_VERSION = version;
nativeBuildInputs = [
installShellFiles
] ++ (with python3.pkgs; [
@@ -31,8 +31,6 @@ python3.pkgs.buildPythonApplication rec {
setuptools-scm
];
SETUPTOOLS_SCM_PRETEND_VERSION = version;
doCheck = false;
dontWrapGApps = true;
@@ -8,36 +8,32 @@
buildDotnetModule rec {
pname = "Dafny";
version = "4.3.0";
version = "4.4.0";
src = fetchFromGitHub {
owner = "dafny-lang";
repo = "dafny";
rev = "v${version}";
hash = "sha256-bnKaaqh1/921SRwnwqgYb31SJ8vguEBtzywPTz79S6I=";
hash = "sha256-rnPZms60vRtefEV+3IeVXoZJU9WMjVxPVioRaEcyw/o=";
};
postPatch =
# This version number seems to be hardcoded and didn't get updated with the
# version bump from 4.2.0 to 4.3.0.
let dafnyRuntimeJarVersion = "4.2.0";
in ''
cp ${
writeScript "fake-gradlew-for-dafny" ''
mkdir -p build/libs/
javac $(find -name "*.java" | grep "^./src/main") -d classes
jar cf build/libs/DafnyRuntime-${dafnyRuntimeJarVersion}.jar -C classes dafny
''} Source/DafnyRuntime/DafnyRuntimeJava/gradlew
postPatch = ''
cp ${
writeScript "fake-gradlew-for-dafny" ''
mkdir -p build/libs/
javac $(find -name "*.java" | grep "^./src/main") -d classes
jar cf build/libs/DafnyRuntime-${version}.jar -C classes dafny
''} Source/DafnyRuntime/DafnyRuntimeJava/gradlew
# Needed to fix
# "error NETSDK1129: The 'Publish' target is not supported without
# specifying a target framework. The current project targets multiple
# frameworks, you must specify the framework for the published
# application."
substituteInPlace Source/DafnyRuntime/DafnyRuntime.csproj \
--replace TargetFrameworks TargetFramework \
--replace "netstandard2.0;net452" net6.0
'';
# Needed to fix
# "error NETSDK1129: The 'Publish' target is not supported without
# specifying a target framework. The current project targets multiple
# frameworks, you must specify the framework for the published
# application."
substituteInPlace Source/DafnyRuntime/DafnyRuntime.csproj \
--replace TargetFrameworks TargetFramework \
--replace "netstandard2.0;net452" net6.0
'';
buildInputs = [ jdk11 ];
nugetDeps = ./deps.nix;
+13 -14
View File
@@ -2,21 +2,20 @@
# Please dont edit it manually, your changes might get overwritten!
{ fetchNuGet }: [
(fetchNuGet { pname = "Boogie"; version = "2.16.0"; sha256 = "1zcbbqhn7brxnywp3m5pfd7rcapg5w1xjr5pkfsqmmv8fk36nfja"; })
(fetchNuGet { pname = "Boogie.AbstractInterpretation"; version = "2.16.8"; sha256 = "1a4pfzc7r6yxzwixsij2xijiyk50ii84zlwl151naw0y05yj4zxn"; })
(fetchNuGet { pname = "Boogie.BaseTypes"; version = "2.16.8"; sha256 = "17zii7d31bqlhn2ygfjh5a37nb98wkn377z8rm6fg44f83788ll9"; })
(fetchNuGet { pname = "Boogie.CodeContractsExtender"; version = "2.16.8"; sha256 = "18aixxw5xrivzpwrwj91dyhdnj3xd1apmjrgbdgg5f0z6p9863nq"; })
(fetchNuGet { pname = "Boogie.Concurrency"; version = "2.16.8"; sha256 = "1qsp24ckvjz01mjq1fxssdvpsx6kvrdx8l7hd2rll86rrh1bc6w4"; })
(fetchNuGet { pname = "Boogie.Core"; version = "2.16.8"; sha256 = "1qp6yaa0h16ihqrr2vgbgnakmvshd76skdhqrp1v7jcp7mw8af7n"; })
(fetchNuGet { pname = "Boogie.ExecutionEngine"; version = "2.16.8"; sha256 = "1q3x8im85i68vz8ls51ywd4ayjsy53ygra01byscbnhc1qflpzia"; })
(fetchNuGet { pname = "Boogie.Graph"; version = "2.16.8"; sha256 = "1pyd35rfv0bn0b1xxvqzixnprwjbps54zs0yaily9xxsyg33y1jr"; })
(fetchNuGet { pname = "Boogie.Houdini"; version = "2.16.8"; sha256 = "1n6dlr84y9kni1sskgd6zx4cfflw28yavwwaz6hmmm01l8zg8y6w"; })
(fetchNuGet { pname = "Boogie.Model"; version = "2.16.8"; sha256 = "0cbq5lyprz0m1kv6a8yyjnhyx42k1jbl00ljrj1bldlj7dz4ahw3"; })
(fetchNuGet { pname = "Boogie.Provers.SMTLib"; version = "2.16.8"; sha256 = "1q48xzmzch4mc8z0wg2ap8f9glmxcj59i9a645ybysf1jah6yphy"; })
(fetchNuGet { pname = "Boogie.VCExpr"; version = "2.16.8"; sha256 = "130jmlvvjd2ls95ry7ds0y2h7pxa109dikx1p3a3psb9dph7zxkr"; })
(fetchNuGet { pname = "Boogie.VCGeneration"; version = "2.16.8"; sha256 = "0fim2d7p1y6ms1m8f1d5yl4pq3167pi4i7nwink5ydv3fvsckh08"; })
(fetchNuGet { pname = "Boogie"; version = "3.0.9"; sha256 = "12700rvm3zj73pkkjaypfa72fvqz8bp78hi3jkh89dqavhg3l7p5"; })
(fetchNuGet { pname = "Boogie.AbstractInterpretation"; version = "3.0.9"; sha256 = "1612d1x7smhcczmk21z9kswjjvq3h0r5mlf1zb8mznyx0154pckg"; })
(fetchNuGet { pname = "Boogie.BaseTypes"; version = "3.0.9"; sha256 = "0v6x8k61rl6bvp1zbvbhnlpkakbw11c2mf8glafmf4znrakwil23"; })
(fetchNuGet { pname = "Boogie.CodeContractsExtender"; version = "3.0.9"; sha256 = "045z0j7bhsb8fypzkz8spixfqdchcpsq3bb9bfwb95if2mna4zx2"; })
(fetchNuGet { pname = "Boogie.Concurrency"; version = "3.0.9"; sha256 = "00k08qh614vciadzk7lr1dcwsvrcfpslvs342amq12c25rxh3125"; })
(fetchNuGet { pname = "Boogie.Core"; version = "3.0.9"; sha256 = "03fip919iw7y3vwk5nj53jj73ry43z9fpn752j5fbgygkl2zbx4q"; })
(fetchNuGet { pname = "Boogie.ExecutionEngine"; version = "3.0.9"; sha256 = "098l1qmya021raqgdapxvwq3pra4v7wpv7j3dmmhsnpg8zs30jgi"; })
(fetchNuGet { pname = "Boogie.Graph"; version = "3.0.9"; sha256 = "1y8aai7wmsyh2pn9bl1rp2nifs3k9b8kb2lqx5rgs1fdiyk2q24j"; })
(fetchNuGet { pname = "Boogie.Houdini"; version = "3.0.9"; sha256 = "1ssr82swqmjsap6v344v2kwkfsv70gx082dk54x7vpapr56f1fgp"; })
(fetchNuGet { pname = "Boogie.Model"; version = "3.0.9"; sha256 = "1cy04a7dr1z7dxfkx6l9kfm30rx5wsn7g50b0wyzp4ns6sbkh47f"; })
(fetchNuGet { pname = "Boogie.Provers.SMTLib"; version = "3.0.9"; sha256 = "1ijzn67wl82ycr1k7gbh8dhq99zxqqjdc48glf4ld832l7sp3vam"; })
(fetchNuGet { pname = "Boogie.VCExpr"; version = "3.0.9"; sha256 = "0hivg31c8v9ix5b8mici6mxz1yzydwiyvgb510bnghxciwbnd4gp"; })
(fetchNuGet { pname = "Boogie.VCGeneration"; version = "3.0.9"; sha256 = "1j9853vixzpgdfd60c3hr5padfdj3sbrbhmr6jg9a0cr3afk72sm"; })
(fetchNuGet { pname = "CocoR"; version = "2014.12.24"; sha256 = "0ps8h7aawkcc1910qnh13llzb01pvgsjmg862pxp0p4wca2dn7a2"; })
(fetchNuGet { pname = "dotnet-format"; version = "5.1.250801"; sha256 = "1i0icx2yyp9141rjb2a221a71fvsy0knrfyvv631vb56r8fnsywh"; })
(fetchNuGet { pname = "JetBrains.Annotations"; version = "2021.1.0"; sha256 = "07pnhxxlgx8spmwmakz37nmbvgyb6yjrbrhad5rrn6y767z5r1gb"; })
(fetchNuGet { pname = "MediatR"; version = "8.1.0"; sha256 = "0cqx7yfh998xhsfk5pr6229lcjcs1jxxyqz7dwskc9jddl6a2akp"; })
(fetchNuGet { pname = "Microsoft.Bcl.AsyncInterfaces"; version = "1.1.1"; sha256 = "0a1ahssqds2ympr7s4xcxv5y8jgxs7ahd6ah6fbgglj4rki1f1vw"; })
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "fasttext";
version = "0.9.2";
version = "0.9.2-unstable-2023-11-28";
src = fetchFromGitHub {
owner = "facebookresearch";
repo = "fastText";
rev = "v${version}";
sha256 = "07cz2ghfq6amcljaxpdr5chbd64ph513y8zqmibfx2xwfp74xkhn";
rev = "6c2204ba66776b700095ff73e3e599a908ffd9c3";
hash = "sha256-lSIah4T+QqZwCRpeI3mxJ7PZT6pSHBO26rcEFfK8DSk=";
};
nativeBuildInputs = [ cmake ];
@@ -52,8 +52,6 @@ python3.pkgs.buildPythonApplication rec {
pyyaml
];
SETUPTOOLS_SCM_PRETEND_VERSION = version;
makeFlags = [
"PREFIX=${placeholder "out"}"
];
@@ -11,8 +11,6 @@ python3Packages.buildPythonApplication rec {
hash = "sha256-PtV2mzxOfZ88THiFD4K+qtOi41GeLF1GcdiFFhUR8Ak=";
};
env.SETUPTOOLS_SCM_PRETEND_VERSION = version;
buildInputs = lib.optionals stdenv.isLinux [ qt5.qtwayland ];
propagatedBuildInputs = with python3Packages; [ git pyqt5 qtpy send2trash ];
nativeBuildInputs = with python3Packages; [ setuptools-scm gettext qt5.wrapQtAppsHook ];
@@ -17,8 +17,6 @@ python3.pkgs.buildPythonApplication rec {
hash = "sha256-4SGkkC4LjZXTDXwK6jMOIKXR1qX76CasOwSqv8XUrjs=";
};
SETUPTOOLS_SCM_PRETEND_VERSION = version;
# Upstream splitted the project into gitlint and gitlint-core to
# simplify the dependency handling
sourceRoot = "${src.name}/gitlint-core";
@@ -1,6 +1,8 @@
{ lib, stdenv, fetchurl, fetchpatch, python3Packages, makeWrapper, gettext, installShellFiles
, re2Support ? true
, rustSupport ? stdenv.hostPlatform.isLinux, cargo, rustPlatform, rustc
# depends on rust-cpython which won't support python312
# https://github.com/dgrunwald/rust-cpython/commit/e815555629e557be084813045ca1ddebc2f76ef9
, rustSupport ? (stdenv.hostPlatform.isLinux && python3Packages.pythonOlder "3.12"), cargo, rustPlatform, rustc
, fullBuild ? false
, gitSupport ? fullBuild
, guiSupport ? fullBuild, tk
@@ -43,7 +45,7 @@ let
propagatedBuildInputs = lib.optional re2Support fb-re2
++ lib.optional gitSupport pygit2
++ lib.optional highlightSupport pygments;
nativeBuildInputs = [ makeWrapper gettext installShellFiles ]
nativeBuildInputs = [ makeWrapper gettext installShellFiles python3Packages.setuptools ]
++ lib.optionals rustSupport [
rustPlatform.cargoSetupHook
cargo
@@ -42,9 +42,6 @@ python3.pkgs.buildPythonApplication rec {
substituteInPlace pyproject.toml requirements.txt --replace "opencv-python" "opencv"
'';
# Let setuptools know deface version
SETUPTOOLS_SCM_PRETEND_VERSION = "v${version}";
pythonImportsCheck = [ "deface" "onnx" "onnxruntime" ];
meta = with lib; {
@@ -25,6 +25,12 @@ let
python = python3.override {
packageOverrides = self: super: {
pydantic = super.pydantic_1;
versioningit = super.versioningit.overridePythonAttrs {
# checkPhase requires pydantic>=2
doCheck = false;
};
};
};
@@ -25,7 +25,7 @@ maturinBuildHook() {
# Move the wheel to dist/ so that regular Python tooling can find it.
mkdir -p dist
mv target/wheels/*.whl dist/
mv ${cargoRoot:+$cargoRoot/}target/wheels/*.whl dist/
# These are python build hooks and may depend on ./dist
runHook postBuild
+10 -5
View File
@@ -1,7 +1,6 @@
{ lib
, python3
, fetchPypi
, argparse
, kubernetes-helm
, kind
, docker
@@ -17,16 +16,22 @@ python3.pkgs.buildPythonApplication rec {
inherit pname version;
hash = "sha256-1LE3fpfX4NExJdUdSjt4BXvxQTLJ8zrRkGHkxo/6Pb8=";
};
postPatch = ''
sed -i '/argparse/d' pyproject.toml
'';
nativeBuildInputs = [
python3.pkgs.poetry-core
];
buildInputs = [
kubernetes-helm
kind
docker
];
nativeBuildInputs = [
python3.pkgs.poetry-core
];
propagatedBuildInputs = with python3.pkgs; [
argparse
halo
pyyaml
hiyapyco
@@ -41,8 +41,6 @@ python3.pkgs.buildPythonApplication rec {
tree-sitter
];
SETUPTOOLS_SCM_PRETEND_VERSION = version;
# The scikit-build-core runs CMake internally so we must let it run the configure step itself.
dontUseCmakeConfigure = true;
SKBUILD_CMAKE_ARGS = lib.strings.concatStringsSep ";" [
@@ -16,8 +16,12 @@ python3.pkgs.buildPythonApplication rec {
};
nativeBuildInputs = with python3.pkgs; [
pythonRelaxDepsHook
setuptools
wheel
];
pythonRelaxDeps = [
"aiohttp"
];
propagatedBuildInputs = with python3.pkgs; [
+3 -3
View File
@@ -8,16 +8,16 @@
buildGoModule rec {
pname = "netclient";
version = "0.21.1";
version = "0.21.2";
src = fetchFromGitHub {
owner = "gravitl";
repo = "netclient";
rev = "v${version}";
hash = "sha256-r5Du9Gwt+deeUe6AJDN85o4snybvzZIIsyt+cfgMq2Q=";
hash = "sha256-yUyC6QTNhTNN/npGXiwS7M6cGKjh4H9vR8/z2/Sckz4=";
};
vendorHash = "sha256-/RNteV+Ys7TVTJtQsWcGK/1C6mf/sQUahIeEzefBe3A=";
vendorHash = "sha256-cnzdqSd3KOITOAH++zxKTqvUzjFxszf/rwkCF6vDpMc=";
buildInputs = lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Cocoa
++ lib.optional stdenv.isLinux libX11;
+2 -3
View File
@@ -5,18 +5,17 @@
python3.pkgs.buildPythonApplication rec {
pname = "websecprobe";
version = "0.0.10";
version = "0.0.11";
pyproject = true;
src = fetchPypi {
pname = "WebSecProbe";
inherit version;
hash = "sha256-QvXOyQUptMyim/bgvhihjgGs7vX0qX8MqK2ol8q9ePc=";
hash = "sha256-OKbKz3HSTtwyx/JNUtLJBTaHQcxkUWroMg9/msVWgk4=";
};
nativeBuildInputs = with python3.pkgs; [
setuptools
wheel
];
propagatedBuildInputs = with python3.pkgs; [
@@ -30,10 +30,6 @@ with python3Packages; buildPythonApplication rec {
nativeBuildInputs = [ setuptools-scm ];
preBuild = ''
export SETUPTOOLS_SCM_PRETEND_VERSION="${version}"
'';
meta = with lib; {
homepage = "https://github.com/tinyfpga/TinyFPGA-Bootloader/tree/master/programmer";
description = "Programmer for FPGA boards using the TinyFPGA USB Bootloader";
@@ -30,10 +30,10 @@
sourceVersion = {
major = "3";
minor = "11";
patch = "6";
patch = "7";
suffix = "";
};
hash = "sha256-D6t4+n8TP084IQxiYNkNfA1ccZhEZBnOBX7HrC5vXzg=";
hash = "sha256-GOGqfmb/OlhCPVntIoFaaVTlM0ISLEXfIMlod8Biubc=";
};
};
@@ -172,6 +172,16 @@ in {
};
} ./python-remove-tests-dir-hook.sh) {};
pythonRuntimeDepsCheckHook = callPackage ({ makePythonHook, packaging }:
makePythonHook {
name = "python-runtime-deps-check-hook.sh";
propagatedBuildInputs = [ packaging ];
substitutions = {
inherit pythonInterpreter pythonSitePackages;
hook = ./python-runtime-deps-check-hook.py;
};
} ./python-runtime-deps-check-hook.sh) {};
setuptoolsBuildHook = callPackage ({ makePythonHook, setuptools, wheel }:
makePythonHook {
name = "setuptools-setup-hook";
@@ -52,7 +52,7 @@ _pythonRelaxDeps() {
else
for dep in $pythonRelaxDeps; do
sed -i "$metadata_file" -r \
-e "s/(Requires-Dist: $dep\s*(\[[^]]+\])?)[^;]*(;.*)?/\1\3/"
-e "s/(Requires-Dist: $dep\s*(\[[^]]+\])?)[^;]*(;.*)?/\1\3/i"
done
fi
}
@@ -0,0 +1,97 @@
#!/usr/bin/env python3
"""
The runtimeDependenciesHook validates, that all dependencies specified
in wheel metadata are available in the local environment.
In case that does not hold, it will print missing dependencies and
violated version constraints.
"""
import importlib.metadata
import re
import sys
import tempfile
from argparse import ArgumentParser
from zipfile import ZipFile
from packaging.metadata import Metadata, parse_email
from packaging.requirements import Requirement
argparser = ArgumentParser()
argparser.add_argument("wheel", help="Path to the .whl file to test")
def error(msg: str) -> None:
print(f" - {msg}", file=sys.stderr)
def normalize_name(name: str) -> str:
"""
Normalize package names according to PEP503
"""
return re.sub(r"[-_.]+", "-", name).lower()
def get_manifest_text_from_wheel(wheel: str) -> str:
"""
Given a path to a wheel, this function will try to extract the
METADATA file in the wheels .dist-info directory.
"""
with ZipFile(wheel) as zipfile:
for zipinfo in zipfile.infolist():
if zipinfo.filename.endswith(".dist-info/METADATA"):
with tempfile.TemporaryDirectory() as tmp:
path = zipfile.extract(zipinfo, path=tmp)
with open(path, encoding="utf-8") as fd:
return fd.read()
raise RuntimeError("No METADATA file found in wheel")
def get_metadata(wheel: str) -> Metadata:
"""
Given a path to a wheel, returns a parsed Metadata object.
"""
text = get_manifest_text_from_wheel(wheel)
raw, _ = parse_email(text)
metadata = Metadata.from_raw(raw)
return metadata
def test_requirement(requirement: Requirement) -> bool:
"""
Given a requirement specification, tests whether the dependency can
be resolved in the local environment, and whether it satisfies the
specified version constraints.
"""
if requirement.marker and not requirement.marker.evaluate():
# ignore requirements with incompatible markers
return True
package_name = normalize_name(requirement.name)
try:
package = importlib.metadata.distribution(requirement.name)
except importlib.metadata.PackageNotFoundError:
error(f"{package_name} not installed")
return False
if package.version not in requirement.specifier:
error(
f"{package_name}{requirement.specifier} not satisfied by version {package.version}"
)
return False
return True
if __name__ == "__main__":
args = argparser.parse_args()
metadata = get_metadata(args.wheel)
tests = [test_requirement(requirement) for requirement in metadata.requires_dist]
if not all(tests):
sys.exit(1)
@@ -0,0 +1,20 @@
# Setup hook for PyPA installer.
echo "Sourcing python-runtime-deps-check-hook"
pythonRuntimeDepsCheckHook() {
echo "Executing pythonRuntimeDepsCheck"
export PYTHONPATH="$out/@pythonSitePackages@:$PYTHONPATH"
for wheel in dist/*.whl; do
echo "Checking runtime dependencies for $(basename $wheel)"
@pythonInterpreter@ @hook@ "$wheel"
done
echo "Finished executing pythonRuntimeDepsCheck"
}
if [ -z "${dontCheckRuntimeDeps-}" ]; then
echo "Using pythonRuntimeDepsCheckHook"
preInstallPhases+=" pythonRuntimeDepsCheckHook"
fi
@@ -19,6 +19,7 @@
, pythonOutputDistHook
, pythonRemoveBinBytecodeHook
, pythonRemoveTestsDirHook
, pythonRuntimeDepsCheckHook
, setuptoolsBuildHook
, setuptoolsCheckHook
, wheelUnpackHook
@@ -229,6 +230,13 @@ let
}
else
pypaBuildHook
) (
if isBootstrapPackage then
pythonRuntimeDepsCheckHook.override {
inherit (python.pythonOnBuildForHost.pkgs.bootstrap) packaging;
}
else
pythonRuntimeDepsCheckHook
)] ++ lib.optionals (format' == "wheel") [
wheelUnpackHook
] ++ lib.optionals (format' == "egg") [
@@ -1,6 +1,7 @@
{ lib
, stdenv
, fetchFromGitHub
, fetchpatch
, c-ares
, cmake
, crc32c
@@ -18,6 +19,7 @@
, staticOnly ? stdenv.hostPlatform.isStatic
}:
let
# defined in cmake/GoogleapisConfig.cmake
googleapisRev = "85f8c758016c279fb7fa8f0d51ddc7ccc0dd5e05";
googleapis = fetchFromGitHub {
name = "googleapis-src";
@@ -39,6 +41,15 @@ stdenv.mkDerivation rec {
sha256 = "sha256-0SoOaAqvk8cVC5W3ejTfe4O/guhrro3uAzkeIpAkCpg=";
};
patches = [
# https://github.com/googleapis/google-cloud-cpp/pull/12554, tagged in 2.16.0
(fetchpatch {
name = "prepare-for-GCC-13.patch";
url = "https://github.com/googleapis/google-cloud-cpp/commit/ae30135c86982c36e82bb0f45f99baa48c6a780b.patch";
hash = "sha256-L0qZfdhP8Zt/gYBWvJafteVgBHR8Kup49RoOrLDtj3k=";
})
];
postPatch = ''
substituteInPlace external/googleapis/CMakeLists.txt \
--replace "https://github.com/googleapis/googleapis/archive/\''${_GOOGLE_CLOUD_CPP_GOOGLEAPIS_COMMIT_SHA}.tar.gz" "file://${googleapis}"
@@ -69,7 +80,7 @@ stdenv.mkDerivation rec {
];
# https://hydra.nixos.org/build/222679737/nixlog/3/tail
NIX_CFLAGS_COMPILE = if stdenv.isAarch64 then "-Wno-error=maybe-uninitialized" else null;
env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isAarch64 "-Wno-error=maybe-uninitialized";
doInstallCheck = true;
@@ -1,5 +1,5 @@
{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, gtest, libdrm, libpciaccess, libva, libX11
, libXau, libXdmcp, libpthreadstubs }:
, libXau, libXdmcp, libpthreadstubs, fetchpatch }:
stdenv.mkDerivation rec {
pname = "intel-media-sdk";
@@ -12,6 +12,15 @@ stdenv.mkDerivation rec {
hash = "sha256-wno3a/ZSKvgHvZiiJ0Gq9GlrEbfHCizkrSiHD6k/Loo=";
};
patches = [
# https://github.com/Intel-Media-SDK/MediaSDK/pull/3005
(fetchpatch {
name = "include-cstdint-explicitly.patch";
url = "https://github.com/Intel-Media-SDK/MediaSDK/commit/a4f37707c1bfdd5612d3de4623ffb2d21e8c1356.patch";
hash = "sha256-OPwGzcMTctJvHcKn5bHqV8Ivj4P7+E4K9WOKgECqf04=";
})
];
nativeBuildInputs = [ cmake pkg-config ];
buildInputs = [
libdrm libva libpciaccess libX11 libXau libXdmcp libpthreadstubs
+1 -1
View File
@@ -1,4 +1,4 @@
{ version, hash, github ? false }:
{ version, hash }:
{ lib
, stdenv
, fetchFromGitHub
+2 -2
View File
@@ -5,6 +5,6 @@
# Example: nix-shell ./maintainers/scripts/update.nix --argstr package cacert
import ./generic.nix {
version = "3.96";
hash = "sha256-OdvJ7OLL3CDvJkgtnMsuE1CVaaKpmgRmzEzW0WmD8Jo=";
version = "3.96.1";
hash = "sha256-HhN3wZEdi9R/KD0nl3+et+94LBJjGLDVqDX8v5qGrqQ=";
}
@@ -25,6 +25,8 @@ let
buildInputs = [ libuuid zlib ];
nativeBuildInputs = [ autoreconfHook ];
enableParallelBuilding = true;
doCheck = true;
env.AUTOMATED_TESTING = true; # https://trac.xapian.org/changeset/8be35f5e1/git
@@ -2,20 +2,25 @@
, lib
, pythonOlder
, fetchPypi
, setuptools
, six
, enum34
}:
buildPythonPackage rec {
pname = "absl-py";
version = "1.4.0";
format = "setuptools";
version = "2.0.0";
pyproject = true;
src = fetchPypi {
inherit pname version;
hash = "sha256-0sJE0BBIukdufAgL0sbfXhQdIR3oAiNGDVs7iipYQz0=";
hash = "sha256-2WkCEcX8/vzdGkVHCsK1xazUUkHDr3Hu2WvFRBdGwNU=";
};
nativeBuildInputs = [
setuptools
];
propagatedBuildInputs = [
six
] ++ lib.optionals (pythonOlder "3.4") [
@@ -19,7 +19,7 @@
buildPythonPackage rec {
pname = "accelerate";
version = "0.24.1";
version = "0.25.0";
format = "pyproject";
disabled = pythonOlder "3.7";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
owner = "huggingface";
repo = pname;
rev = "refs/tags/v${version}";
hash = "sha256-DKyFb+4DUMhVUwr+sgF2IaJS9pEj2o2shGYwExfffWg=";
hash = "sha256-WIMOSfo9fGbevMkUHvFsA51SOiGkBO1cK388FudRDY0=";
};
patches = [
@@ -29,8 +29,6 @@ buildPythonPackage rec {
hash = "sha256-0aLPDh9lrKpHo97VFFwCmPXyXXNFGgkdjoppzm3BCTo=";
};
SETUPTOOLS_SCM_PRETEND_VERSION = version;
nativeBuildInputs = [
setuptools
setuptools-scm
@@ -22,8 +22,6 @@ buildPythonPackage rec {
hash = "sha256-vfjyU+czLtUA0WDEvc0iYmJ2Tn75o/OsX909clfDsUE=";
};
SETUPTOOLS_SCM_PRETEND_VERSION = version;
nativeBuildInputs = [
setuptools-scm
];
@@ -18,8 +18,6 @@ buildPythonPackage rec {
hash = "sha256-tw95VnxsK57KBMw0fzzgJnFe8O8Ef0rQ9qBMIeYrkHQ=";
};
SETUPTOOLS_SCM_PRETEND_VERSION = version;
nativeBuildInputs = [
setuptools-scm
];
@@ -18,8 +18,6 @@ buildPythonPackage rec {
sha256 = "0h5k9kzms2f0r48pdhsgv8pimk0vsxw8vs0k6880mank8ij914wr";
};
SETUPTOOLS_SCM_PRETEND_VERSION = version;
nativeBuildInputs = [
setuptools-scm
];
@@ -3,13 +3,15 @@
, fetchPypi
, pyparsing
, pytestCheckHook
, pythonAtLeast
, pythonOlder
, setuptools
}:
buildPythonPackage rec {
pname = "aenum";
version = "3.1.15";
format = "setuptools";
pyproject = true;
disabled = pythonOlder "3.7";
@@ -18,6 +20,10 @@ buildPythonPackage rec {
hash = "sha256-jL12zRjE+HD/ObJChNPqAo++hzGljfOqWB5DTFdblVk=";
};
nativeBuildInputs = [
setuptools
];
nativeCheckInputs = [
pyparsing
pytestCheckHook
@@ -36,6 +42,9 @@ buildPythonPackage rec {
"test_arduino_headers"
"test_c_header_scanner"
"test_extend_flag_backwards_stdlib"
] ++ lib.optionals (pythonAtLeast "3.12") [
# AttributeError: <enum 'Color'> has no attribute 'value'. Did you mean: 'blue'?
"test_extend_enum_shadow_property_stdlib"
];
meta = with lib; {
@@ -23,8 +23,6 @@ buildPythonPackage rec {
hash = "sha256-eE5BsXNtSU6YUhRn4/SKpMrqaYf8tyfLKdxxGOmNJ9I=";
};
SETUPTOOLS_SCM_PRETEND_VERSION = version;
nativeBuildInputs = [
setuptools-scm
];
@@ -16,16 +16,16 @@
buildPythonPackage rec {
pname = "aiobotocore";
version = "2.6.0";
version = "2.8.0";
format = "setuptools";
disabled = pythonOlder "3.7";
disabled = pythonOlder "3.8";
src = fetchFromGitHub {
owner = "aio-libs";
repo = pname;
rev = "refs/tags/${version}";
hash = "sha256-e8FBUG08yWNL9B51Uv4ftYx1C0kcdoweOreUtvvvTAk=";
hash = "sha256-mVG3dCz9DnExteUFhvTGjZu81E0KbrObP3OX0w/OVzU=";
};
# Relax version constraints: aiobotocore works with newer botocore versions
@@ -82,6 +82,8 @@ buildPythonPackage rec {
"test_sso_credential_fetcher_can_fetch_credentials"
];
__darwinAllowLocalNetworking = true;
meta = with lib; {
description = "Python client for amazon services";
homepage = "https://github.com/aio-libs/aiobotocore";
@@ -1,6 +1,7 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, setuptools
, pytest-asyncio
, pytestCheckHook
, pythonOlder
@@ -56,6 +57,7 @@ buildPythonPackage rec {
];
meta = with lib; {
changelog = "https://github.com/vxgmichel/aioconsole/releases/tag/v${version}";
description = "Asynchronous console and interfaces for asyncio";
homepage = "https://github.com/vxgmichel/aioconsole";
changelog = "https://github.com/vxgmichel/aioconsole/releases/tag/v${version}";
@@ -1,6 +1,7 @@
{ lib
, buildPythonPackage
, fetchPypi
, setuptools
, python
, croniter
, tzlocal
@@ -10,13 +11,17 @@
buildPythonPackage rec {
pname = "aiocron";
version = "1.8";
format = "setuptools";
pyproject = true;
src = fetchPypi {
inherit pname version;
hash = "sha256-SFRlE/ry63kB5lpk66e2U8gBBu0A7ZyjQZw9ELZVWgE=";
};
nativeBuildInputs = [
setuptools
];
propagatedBuildInputs = [
croniter
tzlocal
@@ -3,36 +3,43 @@
, fetchFromGitHub
, pycares
, pythonOlder
, typing
, setuptools
}:
buildPythonPackage rec {
pname = "aiodns";
version = "3.0.0";
format = "setuptools";
version = "3.1.1";
pyproject = true;
disabled = pythonOlder "3.6";
src = fetchFromGitHub {
owner = "saghul";
repo = pname;
rev = "aiodns-${version}";
sha256 = "1i91a43gsq222r8212jn4m6bxc3fl04z1mf2h7s39nqywxkggvlp";
repo = "aiodns";
rev = "refs/tags/v${version}";
sha256 = "sha256-JZS53kICsrXDot3CKjG30AOjkYycKpMJvC9yS3c1v5Q=";
};
nativeBuildInputs = [
setuptools
];
propagatedBuildInputs = [
pycares
] ++ lib.optionals (pythonOlder "3.7") [
typing
];
# Could not contact DNS servers
doCheck = false;
pythonImportsCheck = [ "aiodns" ];
pythonImportsCheck = [
"aiodns"
];
meta = with lib; {
description = "Simple DNS resolver for asyncio";
homepage = "https://github.com/saghul/aiodns";
changelog = "https://github.com/saghul/aiodns/releases/tag/v${version}";
license = licenses.mit;
maintainers = with maintainers; [ fab ];
};
@@ -1,18 +1,24 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, pythonOlder
# build-system
, cython_3
, setuptools
# dependencies
, aiohappyeyeballs
, async-timeout
, buildPythonPackage
, chacha20poly1305-reuseable
, cython_3
, fetchFromGitHub
, mock
, noiseprotocol
, protobuf
, zeroconf
# tests
, mock
, pytest-asyncio
, pytestCheckHook
, pythonOlder
, setuptools
, zeroconf
}:
buildPythonPackage rec {
@@ -9,11 +9,12 @@
, pytest-asyncio
, pytestCheckHook
, pythonOlder
, sigstore
}:
buildPythonPackage rec {
pname = "aiogithubapi";
version = "23.2.1";
version = "23.11.0";
format = "pyproject";
disabled = pythonOlder "3.8";
@@ -22,7 +23,7 @@ buildPythonPackage rec {
owner = "ludeeus";
repo = pname;
rev = "refs/tags/${version}";
hash = "sha256-J6kcEVqADmVJZDbU9eqLCL0rohMSA/Ig7FSp/Ye5Sfk=";
hash = "sha256-SbpfHKD4QJuCe3QG0GTvsffkuFiGPLEUXOVW9f1gyTI=";
};
postPatch = ''
@@ -41,6 +42,7 @@ buildPythonPackage rec {
aiohttp
async-timeout
backoff
sigstore
];
nativeCheckInputs = [
@@ -17,7 +17,7 @@
buildPythonPackage rec {
pname = "aiogram";
version = "3.0.0";
version = "3.2.0";
format = "setuptools";
disabled = pythonOlder "3.7";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
owner = "aiogram";
repo = "aiogram";
rev = "refs/tags/v${version}";
hash = "sha256-bWwK761gn7HsR9ObcBDfvQH0fJfTAo0QAcL/HcNdHik=";
hash = "sha256-8SYrg+gfNSTR0CTPf4cYDa4bfA0LPBmZtPcATF22fqw=";
};
postPatch = ''
@@ -3,6 +3,7 @@
, async-timeout
, asyncio-dgram
, buildPythonPackage
, certifi
, docutils
, fetchFromGitHub
, poetry-core
@@ -35,6 +36,7 @@ buildPythonPackage rec {
aiohttp
async-timeout
asyncio-dgram
certifi
docutils
voluptuous
];
@@ -1,10 +1,20 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, pythonOlder
# build-system
, poetry-core
# optional-dependencies
, furo
, myst-parser
, sphinx-autobuild
, sphinxHook
# tests
, pytest-asyncio
, pytestCheckHook
, pythonOlder
}:
buildPythonPackage rec {
@@ -21,6 +31,11 @@ buildPythonPackage rec {
hash = "sha256-LMvELnN6Sy6DssXfH6fQ84N2rhdjqB8AlikTMidrjT4=";
};
outputs = [
"out"
"doc"
];
postPatch = ''
substituteInPlace pyproject.toml \
--replace " --cov=aiohappyeyeballs --cov-report=term-missing:skip-covered" ""
@@ -28,7 +43,16 @@ buildPythonPackage rec {
nativeBuildInputs = [
poetry-core
];
] ++ passthru.optional-dependencies.docs;
passthru.optional-dependencies = {
docs = [
furo
myst-parser
sphinx-autobuild
sphinxHook
];
};
nativeCheckInputs = [
pytest-asyncio
@@ -40,15 +64,15 @@ buildPythonPackage rec {
];
disabledTestPaths = [
# Test has typos
# https://github.com/bdraco/aiohappyeyeballs/issues/30
"tests/test_impl.py"
];
meta = with lib; {
description = "Modul for connecting with Happy Eyeballs";
description = "Happy Eyeballs for pre-resolved hosts";
homepage = "https://github.com/bdraco/aiohappyeyeballs";
changelog = "https://github.com/bdraco/aiohappyeyeballs/blob/${version}/CHANGELOG.md";
changelog = "https://github.com/bdraco/aiohappyeyeballs/blob/${src.rev}/CHANGELOG.md";
license = licenses.psfl;
maintainers = with maintainers; [ fab ];
maintainers = with maintainers; [ fab hexa ];
};
}
@@ -10,14 +10,14 @@
buildPythonPackage rec {
pname = "aiohttp-jinja2";
version = "1.5.1";
version = "1.6";
format = "setuptools";
disabled = pythonOlder "3.7";
src = fetchPypi {
inherit pname version;
hash = "sha256-jRSbKlfZH3lLM6OU6lvGa1Z/OMdKWmqUd6/CRQ8QXAE=";
hash = "sha256-o6f/UmTlvKUuiuVHu/0HYbcklSMNQ40FtsCRW+YZsOI=";
};
propagatedBuildInputs = [
@@ -1,23 +1,46 @@
{ lib, fetchPypi, buildPythonPackage, pythonOlder, aiohttp, python-socks, attrs }:
{ lib
, fetchPypi
, buildPythonPackage
, pythonOlder
# build-system
, setuptools
# dependencies
, aiohttp
, attrs
, python-socks
}:
buildPythonPackage rec {
pname = "aiohttp-socks";
version = "0.8.3";
format = "setuptools";
version = "0.8.4";
pyproject = true;
disabled = pythonOlder "3.6";
src = fetchPypi {
inherit version;
pname = "aiohttp_socks";
hash = "sha256-aqtSj2aeCHMBj9N3c7gzouK6KEJDvmcoF/pAG8eUHsY=";
hash = "sha256-a2EdTOg46c8sL+1eDbpEfMhIJKbLqV3FdHYGIB2kbLQ=";
};
propagatedBuildInputs = [ aiohttp attrs python-socks ];
nativeBuildInputs = [
setuptools
];
propagatedBuildInputs = [
aiohttp
attrs
python-socks
];
# Checks needs internet access
doCheck = false;
pythonImportsCheck = [ "aiohttp_socks" ];
disabled = pythonOlder "3.5.3";
pythonImportsCheck = [
"aiohttp_socks"
];
meta = {
description = "SOCKS proxy connector for aiohttp";
@@ -1,15 +1,15 @@
{ lib
, stdenv
, buildPythonPackage
, fetchPypi
, fetchpatch
, pythonOlder
, fetchFromGitHub
, substituteAll
, llhttp
# build_requires
, cython
, setuptools
, wheel
# install_requires
, attrs
, charset-normalizer
, multidict
, async-timeout
, yarl
@@ -17,70 +17,74 @@
, aiosignal
, aiodns
, brotli
, faust-cchardet
, typing-extensions
# tests_require
, async-generator
, freezegun
, gunicorn
, pytest-mock
, pytestCheckHook
, python-on-whales
, re-assert
, time-machine
, trustme
}:
buildPythonPackage rec {
pname = "aiohttp";
version = "3.8.6";
format = "pyproject";
version = "3.9.1";
pyproject = true;
disabled = pythonOlder "3.6";
disabled = pythonOlder "3.8";
src = fetchPypi {
inherit pname version;
hash = "sha256-sM8qRQG/+TMKilJItM6VGFHkFb3M6dwVjnbP1V4VCFw=";
src = fetchFromGitHub {
owner = "aio-libs";
repo = "aiohttp";
rev = "refs/tags/v${version}";
hash = "sha256-uiqBUDbmROrhkanfBz4avvTSrnKxgVqw54k4jKhfRGY=";
};
patches = [
(fetchpatch {
# https://github.com/aio-libs/aiohttp/pull/7260
# Merged upstream, should be dropped once updated to 3.9.0
url = "https://github.com/aio-libs/aiohttp/commit/7dcc235cafe0c4521bbbf92f76aecc82fee33e8b.patch";
hash = "sha256-ZzhlE50bmA+e2XX2RH1FuWQHZIAa6Dk/hZjxPoX5t4g=";
(substituteAll {
src = ./unvendor-llhttp.patch;
llhttpDev = lib.getDev llhttp;
llhttpLib = lib.getLib llhttp;
})
];
postPatch = ''
sed -i '/--cov/d' setup.cfg
rm -r vendor
patchShebangs tools
touch .git # tools/gen.py uses .git to find the project root
'';
nativeBuildInputs = [
cython
setuptools
wheel
];
preBuild = ''
make cythonize
'';
propagatedBuildInputs = [
attrs
charset-normalizer
multidict
async-timeout
yarl
typing-extensions
frozenlist
aiosignal
aiodns
brotli
faust-cchardet
];
# NOTE: pytest-xdist cannot be added because it is flaky. See https://github.com/NixOS/nixpkgs/issues/230597 for more info.
nativeCheckInputs = [
async-generator
freezegun
gunicorn
pytest-mock
pytestCheckHook
python-on-whales
re-assert
time-machine
] ++ lib.optionals (!(stdenv.isDarwin && stdenv.isAarch64)) [
# Optional test dependency. Depends indirectly on pyopenssl, which is
# broken on aarch64-darwin.
@@ -100,6 +104,8 @@ buildPythonPackage rec {
"test_static_file_if_none_match"
"test_static_file_if_match"
"test_static_file_if_modified_since_past_date"
# don't run benchmarks
"test_import_time"
] ++ lib.optionals stdenv.is32bit [
"test_cookiejar"
] ++ lib.optionals stdenv.isDarwin [
@@ -108,15 +114,15 @@ buildPythonPackage rec {
];
disabledTestPaths = [
"test_proxy_functional.py" # FIXME package proxy.py
"tests/test_proxy_functional.py" # FIXME package proxy.py
];
__darwinAllowLocalNetworking = true;
# aiohttp in current folder shadows installed version
# Probably because we run `python -m pytest` instead of `pytest` in the hook.
preCheck = ''
cd tests
rm -r aiohttp
touch tests/data.unknown_mime_type # has to be modified after 1 Jan 1990
'' + lib.optionalString stdenv.isDarwin ''
# Work around "OSError: AF_UNIX path too long"
export TMPDIR="/tmp"
@@ -0,0 +1,60 @@
diff --git a/Makefile b/Makefile
index 5769d2a1..f505dd81 100644
--- a/Makefile
+++ b/Makefile
@@ -71,7 +71,7 @@ vendor/llhttp/node_modules: vendor/llhttp/package.json
generate-llhttp: .llhttp-gen
.PHONY: cythonize
-cythonize: .install-cython $(PYXS:.pyx=.c)
+cythonize: $(PYXS:.pyx=.c)
.install-deps: .install-cython $(PYXS:.pyx=.c) $(call to-hash,$(CYS) $(REQS))
@python -m pip install -r requirements/dev.txt -c requirements/constraints.txt
diff --git a/aiohttp/_cparser.pxd b/aiohttp/_cparser.pxd
index 165dd61d..bc6bf86d 100644
--- a/aiohttp/_cparser.pxd
+++ b/aiohttp/_cparser.pxd
@@ -10,7 +10,7 @@ from libc.stdint cimport (
)
-cdef extern from "../vendor/llhttp/build/llhttp.h":
+cdef extern from "@llhttpDev@/include/llhttp.h":
struct llhttp__internal_s:
int32_t _index
diff --git a/setup.py b/setup.py
index 4d59a022..d87d5b69 100644
--- a/setup.py
+++ b/setup.py
@@ -17,13 +17,6 @@ if sys.implementation.name != "cpython":
NO_EXTENSIONS = True
-if IS_GIT_REPO and not (HERE / "vendor/llhttp/README.md").exists():
- print("Install submodules when building from git clone", file=sys.stderr)
- print("Hint:", file=sys.stderr)
- print(" git submodule update --init", file=sys.stderr)
- sys.exit(2)
-
-
# NOTE: makefile cythonizes all Cython modules
extensions = [
@@ -33,12 +26,11 @@ extensions = [
[
"aiohttp/_http_parser.c",
"aiohttp/_find_header.c",
- "vendor/llhttp/build/c/llhttp.c",
- "vendor/llhttp/src/native/api.c",
- "vendor/llhttp/src/native/http.c",
],
define_macros=[("LLHTTP_STRICT_MODE", 0)],
- include_dirs=["vendor/llhttp/build"],
+ include_dirs=["@llhttpDev@/include"],
+ library_dirs=["@llhttpLib@/lib"],
+ libraries=["llhttp"],
),
Extension("aiohttp._helpers", ["aiohttp/_helpers.c"]),
Extension("aiohttp._http_writer", ["aiohttp/_http_writer.c"]),
@@ -11,7 +11,7 @@
buildPythonPackage rec {
pname = "aiojobs";
version = "1.2.0";
version = "1.2.1";
format = "pyproject";
disabled = pythonOlder "3.8";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
owner = "aio-libs";
repo = "aiojobs";
rev = "refs/tags/v${version}";
hash = "sha256-/+PTHLrZyf2UuYkLWkNgzf9amFywDJnP2OKVWvARcAA=";
hash = "sha256-LwFXb/SHP6bbqPg1tqYwE03FKHf4Mv1PPOxnPdESH0I=";
};
postPatch = ''
@@ -2,8 +2,8 @@
, aiohttp
, aresponses
, buildPythonPackage
, certifi
, fetchFromGitHub
, fetchpatch
, poetry-core
, pydantic
, pytest-aiohttp
@@ -15,7 +15,7 @@
buildPythonPackage rec {
pname = "aionotion";
version = "2023.05.5";
version = "2023.11.0";
format = "pyproject";
disabled = pythonOlder "3.7";
@@ -23,30 +23,17 @@ buildPythonPackage rec {
src = fetchFromGitHub {
owner = "bachya";
repo = pname;
rev = version;
hash = "sha256-/2sF8m5R8YXkP89bi5zR3h13r5LrFOl1OsixAcX0D4o=";
rev = "refs/tags/${version}";
hash = "sha256-SxlMsntiG/geDDWDx5dyXkDaOkTEaDJI2zHlv4/+SDQ=";
};
patches = [
# This patch removes references to setuptools and wheel that are no longer
# necessary and changes poetry to poetry-core, so that we don't need to add
# unnecessary nativeBuildInputs.
#
# https://github.com/bachya/aionotion/pull/269
#
(fetchpatch {
name = "clean-up-build-dependencies.patch";
url = "https://github.com/bachya/aionotion/commit/53c7285110d12810f9b43284295f71d052a81b83.patch";
hash = "sha256-RLRbHmaR2A8MNc96WHx0L8ccyygoBUaOulAuRJkFuUM=";
})
];
nativeBuildInputs = [
poetry-core
];
propagatedBuildInputs = [
aiohttp
certifi
pydantic
];
@@ -71,6 +58,7 @@ buildPythonPackage rec {
meta = with lib; {
description = "Python library for Notion Home Monitoring";
homepage = "https://github.com/bachya/aionotion";
changelog = "https://github.com/bachya/aionotion/releases/tag/${src.rev}";
license = with licenses; [ mit ];
maintainers = with maintainers; [ fab ];
};
@@ -27,8 +27,6 @@ buildPythonPackage rec {
hash = "sha256-PwgbUZAuk2woEmLYDdWF5hTs19DASxxUv3Ga844ai7g=";
};
SETUPTOOLS_SCM_PRETEND_VERSION = version;
pythonRelaxDeps = [
"aiohttp"
"oss2"
@@ -2,8 +2,8 @@
, aiohttp
, aresponses
, buildPythonPackage
, certifi
, fetchFromGitHub
, fetchpatch
, poetry-core
, pydantic
, pytest-aiohttp
@@ -14,7 +14,7 @@
buildPythonPackage rec {
pname = "aiopurpleair";
version = "2022.12.1";
version = "2023.10.0";
format = "pyproject";
disabled = pythonOlder "3.9";
@@ -23,28 +23,9 @@ buildPythonPackage rec {
owner = "bachya";
repo = pname;
rev = "refs/tags/${version}";
hash = "sha256-YmJH4brWkTpgzyHwu9UnIWrY5qlDCmMtvF+KxQFXwfk=";
hash = "sha256-SNgdz3pnPyEH9qIi+aTBbEG6YBIXpwPYZuNJ4dEPLW8=";
};
patches = [
# This patch removes references to setuptools and wheel that are no longer
# necessary and changes poetry to poetry-core, so that we don't need to add
# unnecessary nativeBuildInputs.
#
# https://github.com/bachya/aiopurpleair/pull/207
#
(fetchpatch {
name = "clean-up-build-dependencies.patch";
url = "https://github.com/bachya/aiopurpleair/commit/8c704c51ea50da266f52a7f53198d29d643b30c5.patch";
hash = "sha256-RLRbHmaR2A8MNc96WHx0L8ccyygoBUaOulAuRJkFuUM=";
})
];
postPatch = ''
substituteInPlace pyproject.toml \
--replace 'pydantic = "^1.10.2"' 'pydantic = "*"'
'';
nativeBuildInputs = [
poetry-core
];
@@ -52,6 +33,7 @@ buildPythonPackage rec {
propagatedBuildInputs = [
aiohttp
pydantic
certifi
];
__darwinAllowLocalNetworking = true;
@@ -0,0 +1,111 @@
diff --git a/aiopurpleair/api.py b/aiopurpleair/api.py
index d3b276b..c557015 100644
--- a/aiopurpleair/api.py
+++ b/aiopurpleair/api.py
@@ -5,7 +5,10 @@ from typing import Any, cast
from aiohttp import ClientSession, ClientTimeout
from aiohttp.client_exceptions import ClientError
-from pydantic import BaseModel, ValidationError
+try:
+ from pydantic.v1 import BaseModel, ValidationError
+except ModuleNotFoundError:
+ from pydantic import BaseModel, ValidationError
from aiopurpleair.const import LOGGER
from aiopurpleair.endpoints.sensors import SensorsEndpoints
diff --git a/aiopurpleair/endpoints/__init__.py b/aiopurpleair/endpoints/__init__.py
index 4d263e1..6632310 100644
--- a/aiopurpleair/endpoints/__init__.py
+++ b/aiopurpleair/endpoints/__init__.py
@@ -4,7 +4,10 @@ from __future__ import annotations
from collections.abc import Awaitable, Callable, Iterable
from typing import Any
-from pydantic import BaseModel, ValidationError
+try:
+ from pydantic.v1 import BaseModel, ValidationError
+except ModuleNotFoundError:
+ from pydantic import BaseModel, ValidationError
from aiopurpleair.errors import InvalidRequestError
from aiopurpleair.helpers.typing import ModelT
diff --git a/aiopurpleair/helpers/typing.py b/aiopurpleair/helpers/typing.py
index 4ae01e6..49f59e6 100644
--- a/aiopurpleair/helpers/typing.py
+++ b/aiopurpleair/helpers/typing.py
@@ -1,6 +1,9 @@
"""Define typing helpers."""
from typing import TypeVar
-from pydantic import BaseModel
+try:
+ from pydantic.v1 import BaseModel
+except ModuleNotFoundError:
+ from pydantic import BaseModel
ModelT = TypeVar("ModelT", bound=BaseModel)
diff --git a/aiopurpleair/models/keys.py b/aiopurpleair/models/keys.py
index 591ae01..ffadbcc 100644
--- a/aiopurpleair/models/keys.py
+++ b/aiopurpleair/models/keys.py
@@ -3,7 +3,10 @@ from __future__ import annotations
from datetime import datetime
-from pydantic import BaseModel, validator
+try:
+ from pydantic.v1 import BaseModel, validator
+except ModuleNotFoundError:
+ from pydantic import BaseModel, validator
from aiopurpleair.backports.enum import StrEnum
from aiopurpleair.helpers.validators import validate_timestamp
diff --git a/aiopurpleair/models/sensors.py b/aiopurpleair/models/sensors.py
index 5b99b51..d435996 100644
--- a/aiopurpleair/models/sensors.py
+++ b/aiopurpleair/models/sensors.py
@@ -5,7 +5,10 @@ from __future__ import annotations
from datetime import datetime
from typing import Any, Optional
-from pydantic import BaseModel, root_validator, validator
+try:
+ from pydantic.v1 import BaseModel, root_validator, validator
+except ModuleNotFoundError:
+ from pydantic import BaseModel, root_validator, validator
from aiopurpleair.const import SENSOR_FIELDS, ChannelFlag, ChannelState, LocationType
from aiopurpleair.helpers.validators import validate_timestamp
diff --git a/tests/models/test_keys.py b/tests/models/test_keys.py
index 0d7d7c8..b2e30c1 100644
--- a/tests/models/test_keys.py
+++ b/tests/models/test_keys.py
@@ -5,7 +5,10 @@ from datetime import datetime
from typing import Any
import pytest
-from pydantic import ValidationError
+try:
+ from pydantic.v1 import ValidationError
+except ModuleNotFoundError:
+ from pydantic import ValidationError
from aiopurpleair.models.keys import ApiKeyType, GetKeysResponse
diff --git a/tests/models/test_sensors.py b/tests/models/test_sensors.py
index a984b36..7b2c84f 100644
--- a/tests/models/test_sensors.py
+++ b/tests/models/test_sensors.py
@@ -5,7 +5,10 @@ from datetime import datetime
from typing import Any
import pytest
-from pydantic import ValidationError
+try:
+ from pydantic.v1 import ValidationError
+except ModuleNotFoundError:
+ from pydantic import ValidationError
from aiopurpleair.models.sensors import (
GetSensorsRequest,
@@ -9,7 +9,7 @@
buildPythonPackage rec {
pname = "aiopvapi";
version = "2.0.4";
version = "3.0.1";
format = "setuptools";
disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
owner = "sander76";
repo = "aio-powerview-api";
rev = "refs/tags/v${version}";
hash = "sha256-cghfNi5T343/7GxNLDrE0iAewMlRMycQTP7SvDVpU2M=";
hash = "sha256-+jhfp8gLEmL8TGPPN7QY8lw1SkV4sMSDb4VSq2OJ6PU=";
};
propagatedBuildInputs = [
@@ -7,24 +7,31 @@
, pyopenssl
, pytestCheckHook
, pythonOlder
, setuptools
, service-identity
}:
buildPythonPackage rec {
pname = "aioquic";
version = "0.9.21";
format = "setuptools";
version = "0.9.23";
pyproject = true;
disabled = pythonOlder "3.8";
src = fetchPypi {
inherit pname version;
hash = "sha256-ecfsBjGOeFYnZlyk6HI63zR7ciW30AbjMtJXWh9RbvU=";
hash = "sha256-UsnaYO0IN/6LimoNfc8N++vsjpoCfhDr9yBPBWnFj6g=";
};
nativeBuildInputs = [
setuptools
];
propagatedBuildInputs = [
certifi
pylsqpack
pyopenssl
service-identity
];
buildInputs = [
@@ -1,33 +1,43 @@
{ lib
, aiohttp
, buildPythonPackage
, ddt
, fetchPypi
, pbr
, pytestCheckHook
, pythonOlder
# build-system
, pbr
, setuptools
# dependencies
, aiohttp
# tests
, ddt
, pytestCheckHook
}:
buildPythonPackage rec {
pname = "aioresponses";
version = "0.7.4";
format = "setuptools";
version = "0.7.6";
pyproject = true;
disabled = pythonOlder "3.5";
src = fetchPypi {
inherit pname version;
hash = "sha256-m4wQizY1TARjO60Op1K1XZVqdgL+PjI0uTn8RK+W8dg=";
hash = "sha256-95XZ29otYXdIQOfjL1Nm9FdS0a3Bt0yTYq/QFylsfuE=";
};
nativeBuildInputs = [
pbr
setuptools
];
propagatedBuildInputs = [
aiohttp
setuptools
];
pythonImportsCheck = [
"aioresponses"
];
nativeCheckInputs = [
@@ -41,10 +51,6 @@ buildPythonPackage rec {
"test_pass_through_with_origin_params"
];
pythonImportsCheck = [
"aioresponses"
];
meta = {
description = "A helper to mock/fake web requests in python aiohttp package";
homepage = "https://github.com/pnuckowski/aioresponses";
@@ -2,6 +2,7 @@
, aiohttp
, aresponses
, buildPythonPackage
, certifi
, fetchFromGitHub
, freezegun
, poetry-core
@@ -35,6 +36,7 @@ buildPythonPackage rec {
propagatedBuildInputs = [
aiohttp
certifi
pyjwt
pytz
titlecase
@@ -6,9 +6,7 @@
, pytestCheckHook
, pamqp
, yarl
, setuptools
, poetry-core
, aiomisc
}:
buildPythonPackage rec {
@@ -20,13 +18,13 @@ buildPythonPackage rec {
src = fetchFromGitHub {
owner = "mosquito";
repo = pname;
rev = "refs/tags/${version}";
hash = "sha256-X5Uy1DGxvsyEFR1UgVYqxOX6mESLnNzQl7sVkvzjcw4=";
repo = "aiormq";
# https://github.com/mosquito/aiormq/issues/189
rev = "72c44f55313fc14e2a760a45a09831237b64c48d";
hash = "sha256-IIlna8aQY6bIA7OZHthfvMFFWnf3DDRBP1uiFCD7+Do=";
};
nativeBuildInputs = [
setuptools
poetry-core
];
@@ -21,8 +21,6 @@ buildPythonPackage rec {
hash = "sha256-XIGjiLjoyS/7vUDIyBPvHNMyHOBa0gsg/c/vGgrhZAg=";
};
SETUPTOOLS_SCM_PRETEND_VERSION = version;
nativeBuildInputs = [
setuptools-scm
];
@@ -1,17 +1,20 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, pythonAtLeast
, setuptools
, nose
, coverage
, isPy27
, wrapt
}:
buildPythonPackage rec {
pname = "aiounittest";
version = "1.4.2";
format = "setuptools";
disabled = isPy27;
pyproject = true;
# requires the imp module
disabled = pythonAtLeast "3.12";
src = fetchFromGitHub {
owner = "kwarunek";
@@ -20,6 +23,10 @@ buildPythonPackage rec {
hash = "sha256-7lDOI1SHPpRZLTHRTmfbKlZH18T73poJdFyVmb+HKms=";
};
nativeBuildInputs = [
setuptools
];
propagatedBuildInputs = [
wrapt
];
@@ -2,49 +2,38 @@
, aiohttp
, aresponses
, buildPythonPackage
, certifi
, fetchFromGitHub
, fetchpatch
, poetry-core
, pytest-aiohttp
, pytest-asyncio
, pytestCheckHook
, pythonOlder
, yarl
}:
buildPythonPackage rec {
pname = "aiowatttime";
version = "2023.08.0";
version = "2023.10.0";
format = "pyproject";
disabled = pythonOlder "3.8";
disabled = pythonOlder "3.10";
src = fetchFromGitHub {
owner = "bachya";
repo = pname;
rev = "refs/tags/${version}";
hash = "sha256-/ulDImbLOTcoA4iH8e65A01aqqnCLn+01DWuM/4H4p4=";
hash = "sha256-3cVs/mIMkHx5jyfICL+I9pOr0uCV2uzasrEcAN4UFGg=";
};
patches = [
# This patch removes references to setuptools and wheel that are no longer
# necessary and changes poetry to poetry-core, so that we don't need to add
# unnecessary nativeBuildInputs.
#
# https://github.com/bachya/aiowatttime/pull/206
#
(fetchpatch {
name = "clean-up-build-dependencies.patch";
url = "https://github.com/bachya/aiowatttime/commit/c3cd53f794964c5435148caacd04f4e0ab8f550a.patch";
hash = "sha256-RLRbHmaR2A8MNc96WHx0L8ccyygoBUaOulAuRJkFuUM=";
})
];
nativeBuildInputs = [
poetry-core
];
propagatedBuildInputs = [
aiohttp
certifi
yarl
];
__darwinAllowLocalNetworking = true;
@@ -13,14 +13,14 @@
buildPythonPackage rec {
pname = "alembic";
version = "1.12.0";
version = "1.13.0";
format = "setuptools";
disabled = pythonOlder "3.6";
src = fetchPypi {
inherit pname version;
hash = "sha256-jnZFwy5PIAZ15p8HRUFTNetZo2Y/X+tIer+gswxFiIs=";
hash = "sha256-q0s7lNLh5fgeNL6Km3t1dfyd1TmPzLC+81HsmxSHJiM=";
};
propagatedBuildInputs = [
@@ -12,7 +12,7 @@
buildPythonPackage rec {
pname = "amazon-ion";
version = "0.11.2";
version = "0.11.3";
pyproject = true;
disabled = pythonOlder "3.7";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
rev = "refs/tags/v${version}";
# Test vectors require git submodule
fetchSubmodules = true;
hash = "sha256-0/+bX02qTbOydWDxex4OWL7woP7dW1yJZBmDZAivE7U=";
hash = "sha256-wA24ASd6+rTAqHNQ9ZGMnCK9ykJjogCtEWfrXY1B87o=";
};
postPatch = ''
@@ -5,21 +5,26 @@
, pytestCheckHook
, python-dateutil
, pythonOlder
, setuptools
, urllib3
}:
buildPythonPackage rec {
pname = "amberelectric";
version = "1.0.4";
format = "setuptools";
version = "1.1.0";
pyproject = true;
disabled = pythonOlder "3.6";
disabled = pythonOlder "3.7";
src = fetchPypi {
inherit pname version;
hash = "sha256-5SWJnTxRm6mzP0RxrgA+jnV+Gp23WjqQA57wbT2V9Dk=";
hash = "sha256-HujjqJ3nkPIj8P0qAiQnQzLhji5l8qOAO2Gh53OJ7UY=";
};
nativeBuildInputs = [
setuptools
];
propagatedBuildInputs = [
urllib3
python-dateutil
@@ -30,7 +35,9 @@ buildPythonPackage rec {
pytestCheckHook
];
pythonImportsCheck = [ "amberelectric" ];
pythonImportsCheck = [
"amberelectric"
];
meta = with lib; {
description = "Python Amber Electric API interface";
@@ -2,13 +2,13 @@
, buildPythonPackage
, docopt
, fetchFromGitHub
, fetchpatch
, hypothesis
, passlib
, poetry-core
, pytest-logdog
, pytest-asyncio
, pytestCheckHook
, pythonAtLeast
, pythonOlder
, pyyaml
, setuptools
@@ -60,6 +60,19 @@ buildPythonPackage rec {
"--asyncio-mode=auto"
];
disabledTests = lib.optionals (pythonAtLeast "3.12") [
# stuck in epoll
"test_publish_qos0"
"test_publish_qos1"
"test_publish_qos1_retry"
"test_publish_qos2"
"test_publish_qos2_retry"
"test_receive_qos0"
"test_receive_qos1"
"test_receive_qos2"
"test_start_stop"
];
disabledTestPaths = [
# Test are not ported from hbmqtt yet
"tests/test_client.py"
@@ -1,15 +1,35 @@
{ lib, buildPythonPackage, fetchPypi, ansible-core, ... }:
{ lib
, buildPythonPackage
, fetchPypi
# build-system
, setuptools
# dependencies
, ansible-core
# tests
, pytestCheckHook
}:
buildPythonPackage rec {
pname = "ansible-vault-rw";
version = "2.1.0";
format = "setuptools";
pyproject = true;
src = fetchPypi {
pname = "ansible-vault";
inherit version;
sha256 = "sha256-XOj9tUcPFEm3a/B64qvFZIDa1INWrkBchbaG77ZNvV4";
hash = "sha256-XOj9tUcPFEm3a/B64qvFZIDa1INWrkBchbaG77ZNvV4";
};
propagatedBuildInputs = [ ansible-core ];
nativeBuildInputs = [
setuptools
];
propagatedBuildInputs = [
ansible-core
];
# Otherwise tests will fail to create directory
# Permission denied: '/homeless-shelter'
@@ -17,6 +37,13 @@ buildPythonPackage rec {
export HOME=$(mktemp -d)
'';
# no tests in sdist, no 2.1.0 tag on git
doCheck = false;
nativeCheckInputs = [
pytestCheckHook
];
meta = with lib; {
description = "This project aim to R/W an ansible-vault yaml file.";
homepage = "https://github.com/tomoh1r/ansible-vault";
@@ -21,7 +21,7 @@
let
pname = "ansible";
version = "8.6.0";
version = "9.0.1";
in
buildPythonPackage {
inherit pname version;
@@ -31,7 +31,7 @@ buildPythonPackage {
src = fetchPypi {
inherit pname version;
hash = "sha256-lfTlkydNWdU/NvYiB1NbfScq3CcBrHoO169qbYFjemA=";
hash = "sha256-zAbCUfFCg3z1QLeXdyRZapTz0P6dqWGRdeneZTnNBwU=";
};
postPatch = ''

Some files were not shown because too many files have changed in this diff Show More