diff options
Diffstat (limited to 'pkgs/development')
43 files changed, 1004 insertions, 104 deletions
diff --git a/pkgs/development/beam-modules/build-mix.nix b/pkgs/development/beam-modules/build-mix.nix index 4c5ad3f6fa24..d61b5e91556b 100644 --- a/pkgs/development/beam-modules/build-mix.nix +++ b/pkgs/development/beam-modules/build-mix.nix @@ -5,6 +5,11 @@ , src , buildInputs ? [ ] , nativeBuildInputs ? [ ] +, erlangCompilerOptions ? [ ] + # Deterministic Erlang builds remove full system paths from debug information + # among other things to keep builds more reproducible. See their docs for more: + # https://www.erlang.org/doc/man/compile +, erlangDeterministicBuilds ? true , beamDeps ? [ ] , propagatedBuildInputs ? [ ] , postPatch ? "" @@ -31,6 +36,13 @@ let MIX_ENV = mixEnv; MIX_DEBUG = if enableDebugInfo then 1 else 0; HEX_OFFLINE = 1; + + ERL_COMPILER_OPTIONS = + let + options = erlangCompilerOptions ++ lib.optionals erlangDeterministicBuilds [ "deterministic" ]; + in + "[${lib.concatStringsSep "," options}]"; + LC_ALL = "C.UTF-8"; # add to ERL_LIBS so other modules can find at runtime. @@ -108,4 +120,3 @@ let }); in lib.fix pkg - diff --git a/pkgs/development/beam-modules/mix-release.nix b/pkgs/development/beam-modules/mix-release.nix index e5b44bc5dcdb..a762b8e0bc2e 100644 --- a/pkgs/development/beam-modules/mix-release.nix +++ b/pkgs/development/beam-modules/mix-release.nix @@ -8,6 +8,8 @@ , rebar3 , fetchMixDeps , findutils +, ripgrep +, bbe , makeWrapper , coreutils , gnused @@ -25,6 +27,17 @@ , mixEnv ? "prod" , compileFlags ? [ ] + # Options to be passed to the Erlang compiler. As documented in the reference + # manual, these must be valid Erlang terms. They will be turned into an + # erlang list and set as the ERL_COMPILER_OPTIONS environment variable. + # See https://www.erlang.org/doc/man/compile +, erlangCompilerOptions ? [ ] + + # Deterministic Erlang builds remove full system paths from debug information + # among other things to keep builds more reproducible. See their docs for more: + # https://www.erlang.org/doc/man/compile +, erlangDeterministicBuilds ? true + # Mix dependencies provided as a fixed output derivation , mixFodDeps ? null @@ -36,6 +49,7 @@ , mixNixDeps ? { } , elixir ? inputs.elixir +, erlang ? inputs.erlang , hex ? inputs.hex.override { inherit elixir; } # Remove releases/COOKIE @@ -63,7 +77,7 @@ }@attrs: let # Remove non standard attributes that cannot be coerced to strings - overridable = builtins.removeAttrs attrs [ "compileFlags" "mixNixDeps" ]; + overridable = builtins.removeAttrs attrs [ "compileFlags" "erlangCompilerOptions" "mixNixDeps" ]; in assert mixNixDeps != { } -> mixFodDeps == null; assert stripDebug -> !enableDebugInfo; @@ -75,7 +89,7 @@ stdenv.mkDerivation (overridable // { # Mix deps (builtins.attrValues mixNixDeps) ++ # other compile-time deps - [ findutils makeWrapper ]; + [ findutils ripgrep bbe makeWrapper ]; buildInputs = buildInputs; @@ -89,6 +103,12 @@ stdenv.mkDerivation (overridable // { MIX_REBAR = "${rebar}/bin/rebar"; MIX_REBAR3 = "${rebar3}/bin/rebar3"; + ERL_COMPILER_OPTIONS = + let + options = erlangCompilerOptions ++ lib.optionals erlangDeterministicBuilds [ "deterministic" ]; + in + "[${lib.concatStringsSep "," options}]"; + LC_ALL = "C.UTF-8"; postUnpack = '' @@ -161,10 +181,10 @@ stdenv.mkDerivation (overridable // { ''; postFixup = '' - # Remove files for Microsoft Windows + echo "removing files for Microsoft Windows" rm -f "$out"/bin/*.bat - # Wrap programs in $out/bin with their runtime deps + echo "wrapping programs in $out/bin with their runtime deps" for f in $(find $out/bin/ -type f -executable); do wrapProgram "$f" \ --prefix PATH : ${lib.makeBinPath [ @@ -176,34 +196,41 @@ stdenv.mkDerivation (overridable // { done '' + lib.optionalString removeCookie '' if [ -e $out/releases/COOKIE ]; then + echo "removing $out/releases/COOKIE" rm $out/releases/COOKIE fi + '' + '' + if [ -e $out/erts-* ]; then + # ERTS is included in the release, then erlang is not required as a runtime dependency. + # But, erlang is still referenced in some places. To removed references to erlang, + # following steps are required. + + # 1. remove references to erlang from plain text files + for file in $(rg "${erlang}/lib/erlang" "$out" --files-with-matches); do + echo "removing references to erlang in $file" + substituteInPlace "$file" --replace "${erlang}/lib/erlang" "$out" + done + + # 2. remove references to erlang from .beam files + # + # No need to do anything, because it has been handled by "deterministic" option specified + # by ERL_COMPILER_OPTIONS. + + # 3. remove references to erlang from normal binary files + for file in $(rg "${erlang}/lib/erlang" "$out" --files-with-matches --binary --iglob '!*.beam'); do + echo "removing references to erlang in $file" + # use bbe to substitute strings in binary files, because using substituteInPlace + # on binaries will raise errors + bbe -e "s|${erlang}/lib/erlang|$out|" -o "$file".tmp "$file" + rm -f "$file" + mv "$file".tmp "$file" + done + + # References to erlang should be removed from output after above processing. + fi '' + lib.optionalString stripDebug '' # Strip debug symbols to avoid hardreferences to "foreign" closures actually # not needed at runtime, while at the same time reduce size of BEAM files. erl -noinput -eval 'lists:foreach(fun(F) -> io:format("Stripping ~p.~n", [F]), beam_lib:strip(F) end, filelib:wildcard("'"$out"'/**/*.beam"))' -s init stop ''; - - # TODO: remove erlang references in resulting derivation - # - # # Step 1 - investigate why the resulting derivation still has references to erlang. - # - # The reason is that the generated binaries contains erlang reference. Here's a repo to - # demonstrate the problem - <https://github.com/plastic-gun/nix-mix-release-unwanted-references>. - # - # - # # Step 2 - remove erlang references from the binaries - # - # As said in above repo, it's hard to remove erlang references from `.beam` binaries. - # - # We need more experienced developers to resolve this issue. - # - # - # # Tips - # - # When resolving this issue, it is convenient to fail the build when erlang is referenced, - # which can be achieved by using: - # - # disallowedReferences = [ erlang ]; - # }) diff --git a/pkgs/development/compilers/gcc/default.nix b/pkgs/development/compilers/gcc/default.nix index 628b259acbd9..eef6faf26424 100644 --- a/pkgs/development/compilers/gcc/default.nix +++ b/pkgs/development/compilers/gcc/default.nix @@ -29,7 +29,7 @@ , buildPackages , pkgsBuildTarget , libxcrypt -, disableGdbPlugin ? !enablePlugin +, disableGdbPlugin ? !enablePlugin || (stdenv.targetPlatform.isAvr && stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64) , nukeReferences , callPackage , majorMinorVersion @@ -423,7 +423,11 @@ lib.pipe ((callFile ./common/builder.nix {}) ({ maintainers ; } // lib.optionalAttrs (!atLeast11) { - badPlatforms = if !(is48 || is49) then [ "aarch64-darwin" ] else lib.platforms.darwin; + badPlatforms = + # avr-gcc8 is maintained for the `qmk` package + if (is8 && targetPlatform.isAvr) then [] + else if !(is48 || is49) then [ "aarch64-darwin" ] + else lib.platforms.darwin; } // lib.optionalAttrs is11 { badPlatforms = if targetPlatform != hostPlatform then [ "aarch64-darwin" ] else [ ]; }; diff --git a/pkgs/development/compilers/gcc/patches/8/avr-gcc-8-darwin.patch b/pkgs/development/compilers/gcc/patches/8/avr-gcc-8-darwin.patch new file mode 100644 index 000000000000..3705ed99c49a --- /dev/null +++ b/pkgs/development/compilers/gcc/patches/8/avr-gcc-8-darwin.patch @@ -0,0 +1,16 @@ +From https://gist.githubusercontent.com/DavidEGrayson/88bceb3f4e62f45725ecbb9248366300/raw/c1f515475aff1e1e3985569d9b715edb0f317648/gcc-11-arm-darwin.patch + +diff -ur a/gcc/config/host-darwin.c b/gcc/config/host-darwin.c +--- a/gcc/config/host-darwin.c 2021-04-27 03:00:13.000000000 -0700 ++++ b/gcc/config/host-darwin.c 2021-06-11 14:49:13.754000000 -0700 +@@ -22,6 +22,10 @@ + #include "coretypes.h" + #include "diagnostic-core.h" + #include "config/host-darwin.h" ++#include "hosthooks.h" ++#include "hosthooks-def.h" ++ ++const struct host_hooks host_hooks = HOST_HOOKS_INITIALIZER; + + /* Yes, this is really supposed to work. */ + /* This allows for a pagesize of 16384, which we have on Darwin20, but should \ No newline at end of file diff --git a/pkgs/development/compilers/gcc/patches/default.nix b/pkgs/development/compilers/gcc/patches/default.nix index 32938be376d9..55636b8ab51c 100644 --- a/pkgs/development/compilers/gcc/patches/default.nix +++ b/pkgs/development/compilers/gcc/patches/default.nix @@ -215,6 +215,11 @@ in # which is not supported by the clang integrated assembler used by default on Darwin. ++ optional (is8 && hostPlatform.isDarwin) ./8/gcc8-darwin-as-gstabs.patch +# Make avr-gcc8 build on aarch64-darwin +# avr-gcc8 is maintained for the `qmk` package +# https://github.com/osx-cross/homebrew-avr/blob/main/Formula/avr-gcc%408.rb#L69 +++ optional (is8 && targetPlatform.isAvr && hostPlatform.isDarwin && hostPlatform.isAarch64) ./8/avr-gcc-8-darwin.patch + ## gcc 7.0 and older ############################################################################## diff --git a/pkgs/development/coq-modules/coq-ext-lib/default.nix b/pkgs/development/coq-modules/coq-ext-lib/default.nix index 54ef3f8b0f36..5d39e4f0c3c7 100644 --- a/pkgs/development/coq-modules/coq-ext-lib/default.nix +++ b/pkgs/development/coq-modules/coq-ext-lib/default.nix @@ -5,7 +5,7 @@ mkCoqDerivation rec { owner = "coq-ext-lib"; inherit version; defaultVersion = with lib.versions; lib.switch coq.coq-version [ - { case = range "8.11" "8.18"; out = "0.11.8"; } + { case = range "8.11" "8.18"; out = "0.12.0"; } { case = range "8.8" "8.16"; out = "0.11.6"; } { case = range "8.8" "8.14"; out = "0.11.4"; } { case = range "8.8" "8.13"; out = "0.11.3"; } @@ -13,6 +13,7 @@ mkCoqDerivation rec { { case = "8.6"; out = "0.9.5"; } { case = "8.5"; out = "0.9.4"; } ] null; + release."0.12.0".sha256 = "sha256-9szpnWoS83bDc+iLqElfgz0LNRo9hSRQwUFIgpTca4c="; release."0.11.8".sha256 = "sha256-uUBKJb7XjRnyb7rCisZrDcaDdsp1Bv1lXDIU3Ce8e5k="; release."0.11.7".sha256 = "sha256-HkxUny0mxDDT4VouBBh8btwxGZgsb459kBufTLLnuEY="; release."0.11.6".sha256 = "0w6iyrdszz7zc8kaybhy3mwjain2d2f83q79xfd5di0hgdayh7q7"; diff --git a/pkgs/development/libraries/botan/2.0.nix b/pkgs/development/libraries/botan/2.0.nix index e2b4aa880415..53b4e167a7d9 100644 --- a/pkgs/development/libraries/botan/2.0.nix +++ b/pkgs/development/libraries/botan/2.0.nix @@ -1,7 +1,7 @@ -{ callPackage, fetchpatch, ... } @ args: +{ callPackage, ... } @ args: callPackage ./generic.nix (args // { baseVersion = "2.19"; revision = "3"; - sha256 = "sha256-2uBH85nFpH8IfbXT2dno8RrkmF0UySjXHaGv+AGALVU="; + hash = "sha256-2uBH85nFpH8IfbXT2dno8RrkmF0UySjXHaGv+AGALVU="; }) diff --git a/pkgs/development/libraries/botan/3.0.nix b/pkgs/development/libraries/botan/3.0.nix index a9b6a7aa27d3..4c0eae63493a 100644 --- a/pkgs/development/libraries/botan/3.0.nix +++ b/pkgs/development/libraries/botan/3.0.nix @@ -1,9 +1,7 @@ -{ callPackage, fetchpatch, lib, ... } @ args: +{ callPackage, ... } @ args: callPackage ./generic.nix (args // { baseVersion = "3.2"; revision = "0"; - sha256 = "BJyEeDX89u86niBrM94F3TiZnDJeJHSCdypVmNnl7OM="; - # reconsider removing this platform marking, when MacOS uses Clang 14.0+ by default. - badPlatforms = lib.platforms.darwin; + hash = "sha256-BJyEeDX89u86niBrM94F3TiZnDJeJHSCdypVmNnl7OM="; }) diff --git a/pkgs/development/libraries/botan/generic.nix b/pkgs/development/libraries/botan/generic.nix index 795cd5189efe..8e053581e88b 100644 --- a/pkgs/development/libraries/botan/generic.nix +++ b/pkgs/development/libraries/botan/generic.nix @@ -1,6 +1,6 @@ { lib, stdenv, fetchurl, python3, bzip2, zlib, gmp, boost # Passed by version specific builders -, baseVersion, revision, sha256 +, baseVersion, revision, hash , sourceExtension ? "tar.xz" , extraConfigureFlags ? "" , extraPatches ? [ ] @@ -24,7 +24,7 @@ stdenv.mkDerivation rec { "http://files.randombit.net/botan/v${baseVersion}/Botan-${version}.${sourceExtension}" "http://botan.randombit.net/releases/Botan-${version}.${sourceExtension}" ]; - inherit sha256; + inherit hash; }; patches = extraPatches; inherit postPatch; diff --git a/pkgs/development/libraries/webkitgtk/default.nix b/pkgs/development/libraries/webkitgtk/default.nix index 8192dded7e4c..c5bf837b3dac 100644 --- a/pkgs/development/libraries/webkitgtk/default.nix +++ b/pkgs/development/libraries/webkitgtk/default.nix @@ -70,7 +70,7 @@ stdenv.mkDerivation (finalAttrs: { pname = "webkitgtk"; - version = "2.42.2"; + version = "2.42.3"; name = "${finalAttrs.pname}-${finalAttrs.version}+abi=${if lib.versionAtLeast gtk3.version "4.0" then "6.0" else "4.${if lib.versions.major libsoup.version == "2" then "0" else "1"}"}"; outputs = [ "out" "dev" "devdoc" ]; @@ -81,7 +81,7 @@ stdenv.mkDerivation (finalAttrs: { src = fetchurl { url = "https://webkitgtk.org/releases/webkitgtk-${finalAttrs.version}.tar.xz"; - hash = "sha256-VyCqPoYn8bn2MlIYfU3w+CM65x1pexeW6/vlynUL0Rg="; + hash = "sha256-ChpGMARWKLOm/pXactxHhSz/INZr4axv0NZpyIwT2OI="; }; patches = lib.optionals stdenv.isLinux [ diff --git a/pkgs/development/python-modules/azure-mgmt-kusto/default.nix b/pkgs/development/python-modules/azure-mgmt-kusto/default.nix index e272ff372ced..474b19814c0b 100644 --- a/pkgs/development/python-modules/azure-mgmt-kusto/default.nix +++ b/pkgs/development/python-modules/azure-mgmt-kusto/default.nix @@ -1,37 +1,42 @@ -{ lib, buildPythonPackage, fetchPypi, isPy27 +{ lib , azure-common , azure-mgmt-core -, msrest -, msrestazure +, buildPythonPackage +, fetchPypi +, isodate +, pythonOlder }: buildPythonPackage rec { - version = "3.2.0"; - format = "setuptools"; pname = "azure-mgmt-kusto"; - disabled = isPy27; + version = "3.3.0"; + format = "setuptools"; + + disabled = pythonOlder "3.8"; src = fetchPypi { inherit pname version; - hash = "sha256-zgkFMrufHoX3gq9QXo8SlJYZOfV5GlY3pVQXmIWyx7c="; - extension = "zip"; + hash = "sha256-PmGGtyVrYFCMnpiCq9x9uwoMboDO1ePlGAJzrMTj3ps="; }; propagatedBuildInputs = [ azure-common azure-mgmt-core - msrest - msrestazure + isodate ]; # no tests included doCheck = false; - pythonImportsCheck = [ "azure.common" "azure.mgmt.kusto" ]; + pythonImportsCheck = [ + "azure.common" + "azure.mgmt.kusto" + ]; meta = with lib; { description = "Microsoft Azure Kusto Management Client Library for Python"; homepage = "https://github.com/Azure/azure-sdk-for-python"; + changelog = "https://github.com/Azure/azure-sdk-for-python/blob/azure-mgmt-kusto_${version}/sdk/kusto/azure-mgmt-kusto/CHANGELOG.md"; license = licenses.mit; maintainers = with maintainers; [ jonringer ]; }; diff --git a/pkgs/development/python-modules/django-stubs-ext/default.nix b/pkgs/development/python-modules/django-stubs-ext/default.nix index a3bbfd91b0d8..6cc31a06b7c3 100644 --- a/pkgs/development/python-modules/django-stubs-ext/default.nix +++ b/pkgs/development/python-modules/django-stubs-ext/default.nix @@ -9,14 +9,14 @@ buildPythonPackage rec { pname = "django-stubs-ext"; - version = "4.2.2"; + version = "4.2.5"; format = "setuptools"; disabled = pythonOlder "3.8"; src = fetchPypi { inherit pname version; - hash = "sha256-xp0cxG8cTDt4lLaFpQIsKbKjbHz7UuI3YurzV+v8LJg="; + hash = "sha256-jE0ftfaEGbOyR0xlloGhiYA+J9al5av1qg2ldgG1hjM="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/django-stubs/default.nix b/pkgs/development/python-modules/django-stubs/default.nix index 6dcc875884e0..d404177a43c7 100644 --- a/pkgs/development/python-modules/django-stubs/default.nix +++ b/pkgs/development/python-modules/django-stubs/default.nix @@ -14,14 +14,14 @@ buildPythonPackage rec { pname = "django-stubs"; - version = "4.2.4"; + version = "4.2.6"; format = "setuptools"; disabled = pythonOlder "3.7"; src = fetchPypi { inherit pname version; - hash = "sha256-fUoTLDgVGYFehlwnqJ7KQby9BgVoMlByJIFqQ9dcYBw="; + hash = "sha256-5gtD3mYqGZ20sVyAPAZmngrFA1YUrykcvTuRWR99zJQ="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/dvc-data/default.nix b/pkgs/development/python-modules/dvc-data/default.nix index 3c054f1ccb0c..edfad3b6c247 100644 --- a/pkgs/development/python-modules/dvc-data/default.nix +++ b/pkgs/development/python-modules/dvc-data/default.nix @@ -14,7 +14,7 @@ buildPythonPackage rec { pname = "dvc-data"; - version = "2.22.3"; + version = "2.22.6"; pyproject = true; disabled = pythonOlder "3.8"; @@ -23,7 +23,7 @@ buildPythonPackage rec { owner = "iterative"; repo = "dvc-data"; rev = "refs/tags/${version}"; - hash = "sha256-5x+I6Ds7x3JqaZ1oyddrsaX0kbMM8pO+rF3ckpRdcgc="; + hash = "sha256-oHW80TqQe7LCvBpdB0kW8+vKCZ36/zXEssp7+kHUrTA="; }; SETUPTOOLS_SCM_PRETEND_VERSION = version; diff --git a/pkgs/development/python-modules/dvc-objects/default.nix b/pkgs/development/python-modules/dvc-objects/default.nix index 041d2b1a3db1..0458828812d3 100644 --- a/pkgs/development/python-modules/dvc-objects/default.nix +++ b/pkgs/development/python-modules/dvc-objects/default.nix @@ -8,6 +8,7 @@ , pytest-mock , pytestCheckHook , pythonOlder +, reflink , setuptools-scm , shortuuid , tqdm @@ -16,7 +17,7 @@ buildPythonPackage rec { pname = "dvc-objects"; - version = "1.3.2"; + version = "1.4.9"; format = "pyproject"; disabled = pythonOlder "3.8"; @@ -25,7 +26,7 @@ buildPythonPackage rec { owner = "iterative"; repo = pname; rev = "refs/tags/${version}"; - hash = "sha256-30UnTbEHpGSgSGnhml7pXtPDivH9+NO7nvK4jEmRRUA="; + hash = "sha256-9fuxlZDy83nl+rnVEFdAza1NHun8PdewgowMl3G5wZU="; }; SETUPTOOLS_SCM_PRETEND_VERSION = version; @@ -47,12 +48,18 @@ buildPythonPackage rec { nativeCheckInputs = [ pytest-mock pytestCheckHook + reflink ]; pythonImportsCheck = [ "dvc_objects" ]; + disabledTestPaths = [ + # Disable benchmarking + "tests/benchmarks/" + ]; + meta = with lib; { description = "Library for DVC objects"; homepage = "https://github.com/iterative/dvc-objects"; diff --git a/pkgs/development/python-modules/dvc/default.nix b/pkgs/development/python-modules/dvc/default.nix index f7ee2eccd3df..cf925f030944 100644 --- a/pkgs/development/python-modules/dvc/default.nix +++ b/pkgs/development/python-modules/dvc/default.nix @@ -55,14 +55,14 @@ buildPythonPackage rec { pname = "dvc"; - version = "3.30.3"; + version = "3.33.3"; format = "pyproject"; src = fetchFromGitHub { owner = "iterative"; repo = pname; rev = "refs/tags/${version}"; - hash = "sha256-efj2p5Tj3VWJC7o8/nLpNrkM0eZodLMsFZRcZQpLFws="; + hash = "sha256-S6RHRY0G6YYcLa7CBFNxi1fVSJH7ZdgyqAo3wmLUNbE="; }; pythonRelaxDeps = [ diff --git a/pkgs/development/python-modules/easyenergy/default.nix b/pkgs/development/python-modules/easyenergy/default.nix index 13184bb6bc6e..91031fd567aa 100644 --- a/pkgs/development/python-modules/easyenergy/default.nix +++ b/pkgs/development/python-modules/easyenergy/default.nix @@ -13,7 +13,7 @@ buildPythonPackage rec { pname = "easyenergy"; - version = "2.0.0"; + version = "2.1.0"; pyproject = true; disabled = pythonOlder "3.11"; @@ -22,7 +22,7 @@ buildPythonPackage rec { owner = "klaasnicolaas"; repo = "python-easyenergy"; rev = "refs/tags/v${version}"; - hash = "sha256-MqKhI38sEeTWiQn4IRivN0Rrq0ZMx4Pt0cFpsZQw/BI="; + hash = "sha256-WnDyGkF1JI0Yu4p+znBdtCRvzrmGl9DH7QygKDuhEZo="; }; postPatch = '' diff --git a/pkgs/development/python-modules/energyzero/default.nix b/pkgs/development/python-modules/energyzero/default.nix index de8c8b27c162..0c99ced94a13 100644 --- a/pkgs/development/python-modules/energyzero/default.nix +++ b/pkgs/development/python-modules/energyzero/default.nix @@ -13,7 +13,7 @@ buildPythonPackage rec { pname = "energyzero"; - version = "2.0.0"; + version = "2.1.0"; format = "pyproject"; disabled = pythonOlder "3.11"; @@ -22,7 +22,7 @@ buildPythonPackage rec { owner = "klaasnicolaas"; repo = "python-energyzero"; rev = "refs/tags/v${version}"; - hash = "sha256-iyvjXpJWFtC03xhpCBQ9wuEZQbP+zX5KrPj8MYqCvBg="; + hash = "sha256-NZbCiLCZC+hTcV0twOeCoKKD3eZ0/ZzPTnVpFyMLSfw="; }; postPatch = '' diff --git a/pkgs/development/python-modules/etils/default.nix b/pkgs/development/python-modules/etils/default.nix index b6a3eed265df..4eb12d98386e 100644 --- a/pkgs/development/python-modules/etils/default.nix +++ b/pkgs/development/python-modules/etils/default.nix @@ -28,14 +28,14 @@ buildPythonPackage rec { pname = "etils"; - version = "1.5.1"; + version = "1.5.2"; format = "pyproject"; disabled = pythonOlder "3.8"; src = fetchPypi { inherit pname version; - hash = "sha256-tTDA0bLtG42hrzZ9S5eJHmgKakZY1BkBgyELu7jPH7k="; + hash = "sha256-umo+Gv+Vx2kTB3aqF2wRVAY39d2IHzt5FypRSbaxxEY="; }; nativeBuildInputs = [ diff --git a/pkgs/development/python-modules/fpdf2/default.nix b/pkgs/development/python-modules/fpdf2/default.nix new file mode 100644 index 000000000000..dd24dc35972e --- /dev/null +++ b/pkgs/development/python-modules/fpdf2/default.nix @@ -0,0 +1,67 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub + +, setuptools + +, defusedxml +, pillow +, fonttools + +, pytestCheckHook +, qrcode +, camelot +, uharfbuzz +}: + +buildPythonPackage rec { + pname = "fpdf2"; + version = "2.7.6"; + pyproject = true; + + src = fetchFromGitHub { + owner = "py-pdf"; + repo = "fpdf2"; + rev = version; + hash = "sha256-wiCKmS+GlrYV2/6TEdXUbmWIMWU4hyzswFJZR9EOWxc="; + }; + + postPatch = '' + substituteInPlace setup.cfg \ + --replace "--cov=fpdf --cov-report=xml" "" + ''; + + nativeBuildInputs = [ setuptools ]; + + propagatedBuildInputs = [ + defusedxml + pillow + fonttools + ]; + + nativeCheckInputs = [ + pytestCheckHook + qrcode + camelot + uharfbuzz + ]; + + disabledTestPaths = [ + "test/table/test_table_extraction.py" # tabula-py not packaged yet + "test/signing/test_sign.py" # endesive not packaged yet + ]; + + disabledTests = [ + "test_png_url" # tries to download file + "test_page_background" # tries to download file + "test_share_images_cache" # uses timing functions + ]; + + meta = { + homepage = "https://github.com/py-pdf/fpdf2"; + description = "Simple PDF generation for Python"; + changelog = "https://github.com/py-pdf/fpdf2/blob/${version}/CHANGELOG.md"; + license = lib.licenses.lgpl3Only; + maintainers = with lib.maintainers; [ jfvillablanca ]; + }; +} diff --git a/pkgs/development/python-modules/identify/default.nix b/pkgs/development/python-modules/identify/default.nix index d754f90318cf..f2ce179d65bd 100644 --- a/pkgs/development/python-modules/identify/default.nix +++ b/pkgs/development/python-modules/identify/default.nix @@ -9,7 +9,7 @@ buildPythonPackage rec { pname = "identify"; - version = "2.5.32"; + version = "2.5.33"; format = "setuptools"; disabled = pythonOlder "3.8"; @@ -18,7 +18,7 @@ buildPythonPackage rec { owner = "pre-commit"; repo = pname; rev = "refs/tags/v${version}"; - hash = "sha256-fKcxK11IxC0wmpPdyGzYQViSW2rx1v9Bvc+uBvGT8kE="; + hash = "sha256-v0k+N/E1xzhL2iWM0HQzYCxHfzuP8Za4eupkofN7bAA="; }; nativeCheckInputs = [ diff --git a/pkgs/development/python-modules/proton-core/default.nix b/pkgs/development/python-modules/proton-core/default.nix new file mode 100644 index 000000000000..9623cb0544d9 --- /dev/null +++ b/pkgs/development/python-modules/proton-core/default.nix @@ -0,0 +1,76 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, setuptools +, aiohttp +, bcrypt +, pyopenssl +, python-gnupg +, requests +, pytestCheckHook +}: + +buildPythonPackage { + pname = "proton-core"; + version = "0.1.15-unstable-2023-10-24"; + pyproject = true; + + src = fetchFromGitHub { + owner = "ProtonVPN"; + repo = "python-proton-core"; + rev = "5e795e04094dff67c03c56f2f3de03ff43514cc4"; + hash = "sha256-hchwrolc65tVmSe2IzxwH2zDU2JZzXrCMzWaETWcMDI="; + }; + + nativeBuildInputs = [ + setuptools + ]; + + propagatedBuildInputs = [ + bcrypt + aiohttp + pyopenssl + python-gnupg + requests + ]; + + postPatch = '' + substituteInPlace setup.cfg \ + --replace "--cov=proton --cov-report html --cov-report term" "" + ''; + + pythonImportsCheck = [ "proton" ]; + + nativeCheckInputs = [ + pytestCheckHook + ]; + + disabledTestPaths = [ + # Single test, requires internet connection + "tests/test_alternativerouting.py" + ]; + + disabledTests = [ + # Invalid modulus + "test_modulus_verification" + # Permission denied: '/run' + "test_broken_data" + "test_broken_index" + "test_sessions" + # No working transports found + "test_auto_works_on_prod" + "test_ping" + "test_successful" + "test_without_pinning" + # Failed assertions + "test_bad_pinning_fingerprint_changed" + "test_bad_pinning_url_changed" + ]; + + meta = { + description = "Core logic used by the other Proton components"; + homepage = "https://github.com/ProtonVPN/python-proton-core"; + license = lib.licenses.gpl3Only; + maintainers = with lib.maintainers; [ wolfangaukang ]; + }; +} diff --git a/pkgs/development/python-modules/proton-keyring-linux-secretservice/default.nix b/pkgs/development/python-modules/proton-keyring-linux-secretservice/default.nix new file mode 100644 index 000000000000..78de141dad56 --- /dev/null +++ b/pkgs/development/python-modules/proton-keyring-linux-secretservice/default.nix @@ -0,0 +1,46 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, setuptools +, proton-keyring-linux +, pytestCheckHook +}: + +buildPythonPackage { + pname = "proton-keyring-linux-secretservice"; + version = "0.0.1-unstable-2023-04-14"; + pyproject = true; + + src = fetchFromGitHub { + owner = "ProtonVPN"; + repo = "python-proton-keyring-linux-secretservice"; + rev = "973d2646ec4d04bc270df53058df892950244e70"; + hash = "sha256-JlhvJBpbewT2c8k31CPMUlvvo/orWW1qfylFZLnDxeY="; + }; + + nativeBuildInputs = [ + setuptools + ]; + + propagatedBuildInputs = [ + proton-keyring-linux + ]; + + postPatch = '' + substituteInPlace setup.cfg \ + --replace "--cov=proton.keyring_linux.secretservice --cov-report html --cov-report term" "" + ''; + + pythonImportsCheck = [ "proton.keyring_linux" ]; + + nativeCheckInputs = [ + pytestCheckHook + ]; + + meta = with lib; { + description = "ProtonVPN component to access Linux's keyring secret service API"; + homepage = "https://github.com/ProtonVPN/python-proton-keyring-linux-secretservice"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ wolfangaukang ]; + }; +} diff --git a/pkgs/development/python-modules/proton-keyring-linux/default.nix b/pkgs/development/python-modules/proton-keyring-linux/default.nix new file mode 100644 index 000000000000..4dac98134ac0 --- /dev/null +++ b/pkgs/development/python-modules/proton-keyring-linux/default.nix @@ -0,0 +1,48 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, setuptools +, keyring +, proton-core +, pytestCheckHook +}: + +buildPythonPackage { + pname = "proton-keyring-linux"; + version = "0.0.1-unstable-2023-04-14"; + pyproject = true; + + src = fetchFromGitHub { + owner = "ProtonVPN"; + repo = "python-proton-keyring-linux"; + rev = "5ff3c7f9a1a162836649502dd23c2fbe1f487d73"; + hash = "sha256-4d8ZePG8imURhdNtLbraMRisrTLoRvJ+L2UuuOo3MPM="; + }; + + nativeBuildInputs = [ + setuptools + ]; + + propagatedBuildInputs = [ + keyring + proton-core + ]; + + postPatch = '' + substituteInPlace setup.cfg \ + --replace "--cov=proton.keyring_linux.core --cov-report html --cov-report term" "" + ''; + + pythonImportsCheck = [ "proton.keyring_linux.core" ]; + + nativeCheckInputs = [ + pytestCheckHook + ]; + + meta = with lib; { + description = "ProtonVPN core component to access Linux's keyring"; + homepage = "https://github.com/ProtonVPN/python-proton-keyring-linux"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ wolfangaukang ]; + }; +} diff --git a/pkgs/development/python-modules/proton-vpn-api-core/default.nix b/pkgs/development/python-modules/proton-vpn-api-core/default.nix new file mode 100644 index 000000000000..0906d2bd4248 --- /dev/null +++ b/pkgs/development/python-modules/proton-vpn-api-core/default.nix @@ -0,0 +1,66 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, setuptools +, proton-core +, proton-vpn-connection +, proton-vpn-logger +, proton-vpn-killswitch +, proton-vpn-session +, distro +, pytestCheckHook +}: + +buildPythonPackage { + pname = "proton-vpn-api-core"; + version = "0.20.1-unstable-2023-10-10"; + pyproject = true; + + src = fetchFromGitHub { + owner = "ProtonVPN"; + repo = "python-proton-vpn-api-core"; + rev = "9c03fc30d3ff08559cab3644eadde027b029375d"; + hash = "sha256-vnz1+NazQceAs9KA3Jq0tsJditRoG/LoBR+0wuDzzHk="; + }; + + nativeBuildInputs = [ + setuptools + ]; + + propagatedBuildInputs = [ + distro + proton-core + proton-vpn-connection + proton-vpn-logger + proton-vpn-killswitch + proton-vpn-session + ]; + + postPatch = '' + substituteInPlace setup.cfg \ + --replace "--cov=proton/vpn/core/ --cov-report html --cov-report term" "" + ''; + + pythonImportsCheck = [ "proton.vpn.core" ]; + + nativeCheckInputs = [ + pytestCheckHook + ]; + + preCheck = '' + # Needed for Permission denied: '/homeless-shelter' + export HOME=$(mktemp -d) + ''; + + disabledTestPaths = [ + # Has a single test failing with Permission denied: '/run' + "tests/test_session.py" + ]; + + meta = with lib; { + description = "Acts as a facade to the other Proton VPN components, exposing a uniform API to the available Proton VPN services"; + homepage = "https://github.com/ProtonVPN/python-proton-vpn-api-core"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ wolfangaukang ]; + }; +} diff --git a/pkgs/development/python-modules/proton-vpn-connection/default.nix b/pkgs/development/python-modules/proton-vpn-connection/default.nix new file mode 100644 index 000000000000..7acbb173e8b6 --- /dev/null +++ b/pkgs/development/python-modules/proton-vpn-connection/default.nix @@ -0,0 +1,71 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, setuptools +, proton-core +, proton-vpn-killswitch +, proton-vpn-logger +, jinja2 +, pytestCheckHook +}: + +buildPythonPackage { + pname = "proton-vpn-connection"; + version = "0.11.0-unstable-2023-09-05"; + pyproject = true; + + src = fetchFromGitHub { + owner = "ProtonVPN"; + repo = "python-proton-vpn-connection"; + rev = "747ccacb5350ad59f2a09953b8d20c5c161aab54"; + hash = "sha256-WyMG0kmwBKoWc0mHnaop9E0upPAYHFwS/A9I1//WwlY="; + }; + + nativeBuildInputs = [ + setuptools + ]; + + propagatedBuildInputs = [ + jinja2 + proton-core + proton-vpn-killswitch + proton-vpn-logger + ]; + + postPatch = '' + substituteInPlace setup.cfg \ + --replace "--cov=proton.vpn.connection --cov-report html --cov-report term" "" + ''; + + pythonImportsCheck = [ "proton.vpn.connection" ]; + + nativeCheckInputs = [ + pytestCheckHook + ]; + + disabledTests = [ + # Permission denied: '/run' + "test_ensure_configuration_file_is_deleted" + "test_ensure_generate_is_returning_expected_content" + "test_ensure_same_configuration_file_in_case_of_duplicate" + "test_ensure_configuration_file_is_created" + "test_wireguard_config_content_generation" + "test_wireguard_with_malformed_credentials" + "test_wireguard_with_non_certificate" + "test_wireguard_without_settings" + # Neiter udp or tcp are working + "test_ovpnconfig_with_settings" + "test_ovpnconfig_with_missing_settings_applies_expected_defaults" + "test_ovpnconfig_with_malformed_params" + "test_ovpnconfig_with_certificate_and_malformed_credentials" + "test_ovpnconfig_with_malformed_server" + "test_ovpnconfig_with_malformed_server_and_credentials" + ]; + + meta = with lib; { + description = "Defines the interface that VPN connection backends should implement"; + homepage = "https://github.com/ProtonVPN/python-proton-vpn-connection"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ wolfangaukang ]; + }; +} diff --git a/pkgs/development/python-modules/proton-vpn-killswitch-network-manager/default.nix b/pkgs/development/python-modules/proton-vpn-killswitch-network-manager/default.nix new file mode 100644 index 000000000000..d0f62ac6f998 --- /dev/null +++ b/pkgs/development/python-modules/proton-vpn-killswitch-network-manager/default.nix @@ -0,0 +1,58 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, gobject-introspection +, setuptools +, networkmanager +, proton-vpn-killswitch +, proton-vpn-logger +, pycairo +, pygobject3 +, pytestCheckHook +}: + +buildPythonPackage { + pname = "proton-vpn-killswitch-network-manager"; + version = "0.2.0-unstable-2023-09-05"; + pyproject = true; + + src = fetchFromGitHub { + owner = "ProtonVPN"; + repo = "python-proton-vpn-killswitch-network-manager"; + rev = "39d4398f169539e335c1f661e0dfc5551df0e6af"; + hash = "sha256-vmTXMIhXZgRvXeUX/XslT+ShqY60w4P7kJBQzWhA66k="; + }; + + nativeBuildInputs = [ + # Solves ImportError: cannot import name NM, introspection typelib not found + gobject-introspection + setuptools + ]; + + propagatedBuildInputs = [ + # Needed here for the NM namespace + networkmanager + proton-vpn-killswitch + proton-vpn-logger + pycairo + pygobject3 + ]; + + postPatch = '' + substituteInPlace setup.cfg \ + --replace "--cov=proton.vpn.killswitch.backend.linux.networkmanager --cov-report=html --cov-report=term" "" + ''; + + pythonImportsCheck = [ "proton.vpn.killswitch.backend.linux.networkmanager" ]; + + nativeCheckInputs = [ + pytestCheckHook + ]; + + meta = with lib; { + description = "Implementation of the proton-vpn-killswitch interface using Network Manager"; + homepage = "https://github.com/ProtonVPN/python-proton-vpn-killswitch-network-manager"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ wolfangaukang ]; + }; +} diff --git a/pkgs/development/python-modules/proton-vpn-killswitch/default.nix b/pkgs/development/python-modules/proton-vpn-killswitch/default.nix new file mode 100644 index 000000000000..d36dedfbd4aa --- /dev/null +++ b/pkgs/development/python-modules/proton-vpn-killswitch/default.nix @@ -0,0 +1,46 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, setuptools +, proton-core +, pytestCheckHook +}: + +buildPythonPackage { + pname = "proton-vpn-killswitch"; + version = "0.2.0-unstable-2023-09-05"; + pyproject = true; + + src = fetchFromGitHub { + owner = "ProtonVPN"; + repo = "python-proton-vpn-killswitch"; + rev = "6e84588ea6ae0946141d4b44b2cf5df8465d5eba"; + hash = "sha256-eFwWN8E+nIDpbut8tkWqXucLhzm7HaLAMBIbAq/X2eo="; + }; + + nativeBuildInputs = [ + setuptools + ]; + + propagatedBuildInputs = [ + proton-core + ]; + + postPatch = '' + substituteInPlace setup.cfg \ + --replace "--cov=proton --cov-report=html --cov-report=term" "" + ''; + + pythonImportsCheck = [ "proton.vpn.killswitch.interface" ]; + + nativeCheckInputs = [ + pytestCheckHook + ]; + + meta = with lib; { + description = "Defines the ProtonVPN kill switch interface"; + homepage = "https://github.com/ProtonVPN/python-proton-vpn-killswitch"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ wolfangaukang ]; + }; +} diff --git a/pkgs/development/python-modules/proton-vpn-logger/default.nix b/pkgs/development/python-modules/proton-vpn-logger/default.nix new file mode 100644 index 000000000000..6091c2b25a1e --- /dev/null +++ b/pkgs/development/python-modules/proton-vpn-logger/default.nix @@ -0,0 +1,51 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, setuptools +, proton-core +, pytestCheckHook +}: + +buildPythonPackage { + pname = "proton-vpn-logger"; + version = "0.2.1-unstable-2023-05-10"; + pyproject = true; + + src = fetchFromGitHub { + owner = "ProtonVPN"; + repo = "python-proton-vpn-logger"; + rev = "0acbc1ab41a65cbc9ceb340e3db011e6f89eb65a"; + hash = "sha256-VIggBKopAAKiNdQ5ypG1qI74E2WMDwDSriSuka/DBKA="; + }; + + nativeBuildInputs = [ + setuptools + ]; + + propagatedBuildInputs = [ + proton-core + ]; + + postPatch = '' + substituteInPlace setup.cfg \ + --replace "--cov=proton/vpn/logging/ --cov-report html --cov-report term" "" + ''; + + pythonImportsCheck = [ "proton.vpn.logging" ]; + + nativeCheckInputs = [ + pytestCheckHook + ]; + + preCheck = '' + # Needed for Permission denied: '/homeless-shelter' + export HOME=$(mktemp -d) + ''; + + meta = with lib; { + description = "General purpose logging package for the entire ProtonVPN Linux client"; + homepage = "https://github.com/ProtonVPN/python-proton-vpn-logger"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ wolfangaukang ]; + }; +} diff --git a/pkgs/development/python-modules/proton-vpn-network-manager-openvpn/default.nix b/pkgs/development/python-modules/proton-vpn-network-manager-openvpn/default.nix new file mode 100644 index 000000000000..9eca560ac005 --- /dev/null +++ b/pkgs/development/python-modules/proton-vpn-network-manager-openvpn/default.nix @@ -0,0 +1,51 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, gobject-introspection +, setuptools +, proton-core +, proton-vpn-network-manager +, pytestCheckHook +}: + +buildPythonPackage { + pname = "proton-vpn-network-manager-openvpn"; + version = "0.0.4-unstable-2023-07-05"; + pyproject = true; + + src = fetchFromGitHub { + owner = "ProtonVPN"; + repo = "python-proton-vpn-network-manager-openvpn"; + rev = "b79f6732646378ef1b92696de3665ff9560286d3"; + hash = "sha256-Z5X8RRu+1KaZ0pnH7tzGhfeST2W8bxMZnuryLhFjG/g="; + }; + + nativeBuildInputs = [ + # Solves Namespace NM not available + gobject-introspection + setuptools + ]; + + propagatedBuildInputs = [ + proton-core + proton-vpn-network-manager + ]; + + postPatch = '' + substituteInPlace setup.cfg \ + --replace "--cov=proton.vpn.backend.linux.networkmanager.protocol.openvpn --cov-report html --cov-report term" "" + ''; + + pythonImportsCheck = [ "proton.vpn.backend.linux.networkmanager.protocol" ]; + + nativeCheckInputs = [ + pytestCheckHook + ]; + + meta = with lib; { + description = "Adds support for the OpenVPN protocol using NetworkManager"; + homepage = "https://github.com/ProtonVPN/python-proton-vpn-network-manager-openvpn"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ wolfangaukang ]; + }; +} diff --git a/pkgs/development/python-modules/proton-vpn-network-manager/default.nix b/pkgs/development/python-modules/proton-vpn-network-manager/default.nix new file mode 100644 index 000000000000..f8874e1d0f3a --- /dev/null +++ b/pkgs/development/python-modules/proton-vpn-network-manager/default.nix @@ -0,0 +1,58 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, gobject-introspection +, setuptools +, networkmanager +, proton-core +, proton-vpn-connection +, pycairo +, pygobject3 +, pytestCheckHook +}: + +buildPythonPackage { + pname = "proton-vpn-network-manager"; + version = "0.3.0-unstable-2023-09-05"; + pyproject = true; + + src = fetchFromGitHub { + owner = "ProtonVPN"; + repo = "python-proton-vpn-network-manager"; + rev = "6ffd04fa0ae88a89d2b733443317066ef23b3ccd"; + hash = "sha256-Bqlwo7U/mwodQarl30n3/BNETqit1MVQUJT+mAhC6AI="; + }; + + nativeBuildInputs = [ + # Needed to recognize the NM namespace + gobject-introspection + setuptools + ]; + + propagatedBuildInputs = [ + # Needed here for the NM namespace + networkmanager + proton-core + proton-vpn-connection + pycairo + pygobject3 + ]; + + postPatch = '' + substituteInPlace setup.cfg \ + --replace "--cov=proton/vpn/backend/linux/networkmanager --cov-report html --cov-report term" "" + ''; + + pythonImportsCheck = [ "proton.vpn.backend.linux.networkmanager" ]; + + nativeCheckInputs = [ + pytestCheckHook + ]; + + meta = with lib; { + description = "Provides the necessary functionality for other ProtonVPN components to interact with NetworkManager"; + homepage = "https://github.com/ProtonVPN/python-proton-vpn-network-manager"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ wolfangaukang ]; + }; +} diff --git a/pkgs/development/python-modules/proton-vpn-session/default.nix b/pkgs/development/python-modules/proton-vpn-session/default.nix new file mode 100644 index 000000000000..b61bed91682a --- /dev/null +++ b/pkgs/development/python-modules/proton-vpn-session/default.nix @@ -0,0 +1,67 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, setuptools +, cryptography +, distro +, proton-core +, proton-vpn-logger +, pynacl +, aiohttp +, pyopenssl +, pytest-asyncio +, requests +, pytestCheckHook +}: + +buildPythonPackage { + pname = "proton-vpn-session"; + version = "0.6.2-unstable-2023-10-24"; + pyproject = true; + + src = fetchFromGitHub { + owner = "ProtonVPN"; + repo = "python-proton-vpn-session"; + rev = "419b25bd1823f78d1219dc4cc441eeaf37646068"; + hash = "sha256-YPyNxbKxw+670bNQZ7U5nljyUjsNJ+k7eL+HpGiSCLk="; + }; + + nativeBuildInputs = [ + setuptools + ]; + + propagatedBuildInputs = [ + cryptography + distro + proton-core + proton-vpn-logger + pynacl + ]; + + postPatch = '' + substituteInPlace setup.cfg \ + --replace "--cov=proton.vpn.session --cov-report term" "" + ''; + + pythonImportsCheck = [ "proton.vpn.session" ]; + + postInstall = '' + # Needed for Permission denied: '/homeless-shelter' + export HOME=$(mktemp -d) + ''; + + nativeCheckInputs = [ + aiohttp + pyopenssl + pytest-asyncio + requests + pytestCheckHook + ]; + + meta = { + description = "Provides utility classes to manage VPN sessions"; + homepage = "https://github.com/ProtonVPN/python-proton-vpn-session"; + license = lib.licenses.gpl3Only; + maintainers = with lib.maintainers; [ wolfangaukang ]; + }; +} diff --git a/pkgs/development/python-modules/pynitrokey/default.nix b/pkgs/development/python-modules/pynitrokey/default.nix new file mode 100644 index 000000000000..4d91dc586c19 --- /dev/null +++ b/pkgs/development/python-modules/pynitrokey/default.nix @@ -0,0 +1,107 @@ +{ lib +, buildPythonPackage +, fetchPypi +, pythonRelaxDepsHook +, installShellFiles +, libnitrokey +, flit-core +, certifi +, cffi +, click +, cryptography +, ecdsa +, fido2 +, intelhex +, nkdfu +, python-dateutil +, pyusb +, requests +, spsdk +, tqdm +, tlv8 +, typing-extensions +, pyserial +, protobuf +, click-aliases +, semver +, nethsm +, importlib-metadata +}: + +let + pname = "pynitrokey"; + version = "0.4.43"; + mainProgram = "nitropy"; +in + +buildPythonPackage { + inherit pname version; + pyproject = true; + + src = fetchPypi { + inherit pname version; + hash = "sha256-dYOdokqALDg4Xn7N6Yd0skM/tit+j5+xY73sm9k76hE="; + }; + + propagatedBuildInputs = [ + certifi + cffi + click + cryptography + ecdsa + fido2 + intelhex + nkdfu + python-dateutil + pyusb + requests + spsdk + tqdm + tlv8 + typing-extensions + pyserial + protobuf + click-aliases + semver + nethsm + importlib-metadata + ]; + + nativeBuildInputs = [ + flit-core + installShellFiles + pythonRelaxDepsHook + ]; + + pythonRelaxDeps = true; + + # pythonRelaxDepsHook runs in postBuild so cannot be used + pypaBuildFlags = [ "--skip-dependency-check" ]; + + # libnitrokey is not propagated to users of the pynitrokey Python package. + # It is only usable from the wrapped bin/nitropy + makeWrapperArgs = [ + "--set LIBNK_PATH ${lib.makeLibraryPath [ libnitrokey ]}" + ]; + + # no tests + doCheck = false; + + pythonImportsCheck = [ "pynitrokey" ]; + + postInstall = '' + installShellCompletion --cmd ${mainProgram} \ + --bash <(_NITROPY_COMPLETE=bash_source $out/bin/${mainProgram}) \ + --zsh <(_NITROPY_COMPLETE=zsh_source $out/bin/${mainProgram}) \ + --fish <(_NITROPY_COMPLETE=fish_source $out/bin/${mainProgram}) + ''; + + meta = with lib; { + description = "Python client for Nitrokey devices"; + homepage = "https://github.com/Nitrokey/pynitrokey"; + changelog = "https://github.com/Nitrokey/pynitrokey/releases/tag/v${version}"; + license = with licenses; [ asl20 mit ]; + maintainers = with maintainers; [ frogamic ]; + inherit mainProgram; + }; +} diff --git a/pkgs/development/python-modules/python-opensky/default.nix b/pkgs/development/python-modules/python-opensky/default.nix index 0f23163d9aff..e6b7a41f6e68 100644 --- a/pkgs/development/python-modules/python-opensky/default.nix +++ b/pkgs/development/python-modules/python-opensky/default.nix @@ -14,16 +14,16 @@ buildPythonPackage rec { pname = "python-opensky"; - version = "0.2.1"; - format = "pyproject"; + version = "1.0.0"; + pyproject = true; - disabled = pythonOlder "3.10"; + disabled = pythonOlder "3.11"; src = fetchFromGitHub { owner = "joostlek"; repo = "python-opensky"; rev = "refs/tags/v${version}"; - hash = "sha256-xNXFvCUZ/x5ox3KxmG3eA73wpX4fwhvAVmlfcKiT1V8="; + hash = "sha256-Ia6/Lr/uNuF1u0s4g0tpYaW+hKeLbUKxYC/O+ZBqiXI="; }; postPatch = '' diff --git a/pkgs/development/python-modules/python-vlc/default.nix b/pkgs/development/python-modules/python-vlc/default.nix index bb603396c787..cdc557bbe879 100644 --- a/pkgs/development/python-modules/python-vlc/default.nix +++ b/pkgs/development/python-modules/python-vlc/default.nix @@ -9,14 +9,14 @@ buildPythonPackage rec { pname = "python-vlc"; - version = "3.0.18122"; + version = "3.0.20123"; format = "setuptools"; disabled = pythonOlder "3.7"; src = fetchPypi { inherit pname version; - hash = "sha256-EDm94oeFO0t7Yboi2DdhgyQ094UG2nYt+wYCkb8yiX0="; + hash = "sha256-JE+7njkqAyaEH8qSbW0SoqNsVGmCGR9JPxSPoZ5msdQ="; }; patches = [ diff --git a/pkgs/development/python-modules/pyunifiprotect/default.nix b/pkgs/development/python-modules/pyunifiprotect/default.nix index 00b0f3740c35..5d13ea6ce704 100644 --- a/pkgs/development/python-modules/pyunifiprotect/default.nix +++ b/pkgs/development/python-modules/pyunifiprotect/default.nix @@ -2,9 +2,13 @@ , aiofiles , aiohttp , aioshutil +, async-timeout , buildPythonPackage , dateparser , fetchFromGitHub +, ffmpeg +, hatch-vcs +, hatchling , ipython , orjson , packaging @@ -22,37 +26,34 @@ , python-dotenv , pythonOlder , pytz -, setuptools -, setuptools-scm , termcolor , typer -, ffmpeg }: buildPythonPackage rec { pname = "pyunifiprotect"; - version = "4.21.0"; - format = "pyproject"; + version = "4.22.0"; + pyproject = true; disabled = pythonOlder "3.9"; src = fetchFromGitHub { owner = "briis"; - repo = pname; + repo = "pyunifiprotect"; rev = "refs/tags/v${version}"; - hash = "sha256-BFcICpWq0aBjEww9EuO6UH8oGX8fufernFqh/gihIrM="; + hash = "sha256-qzom1mLTfP683GCYlUav/MlOkYj+AiEe13b74ceW7gI="; }; + env.SETUPTOOLS_SCM_PRETEND_VERSION = version; + postPatch = '' substituteInPlace pyproject.toml \ - --replace "--cov=pyunifiprotect --cov-append" "" + --replace "--strict-markers -ra -Wd --ignore=.* --no-cov-on-fail --cov=pyunifiprotect --cov-append --maxfail=10 -n=auto" "" ''; - SETUPTOOLS_SCM_PRETEND_VERSION = version; - nativeBuildInputs = [ - setuptools - setuptools-scm + hatch-vcs + hatchling ]; propagatedBuildInputs = [ @@ -67,7 +68,10 @@ buildPythonPackage rec { pyjwt pytz typer - ] ++ typer.optional-dependencies.all; + ] ++ typer.optional-dependencies.all + ++ lib.optionals (pythonOlder "3.11") [ + async-timeout + ]; passthru.optional-dependencies = { shell = [ diff --git a/pkgs/development/python-modules/qiskit-aer/default.nix b/pkgs/development/python-modules/qiskit-aer/default.nix index e774990fb999..ecd8905583e2 100644 --- a/pkgs/development/python-modules/qiskit-aer/default.nix +++ b/pkgs/development/python-modules/qiskit-aer/default.nix @@ -147,7 +147,7 @@ buildPythonPackage rec { postCheck = "popd"; meta = with lib; { - broken = (stdenv.isLinux && stdenv.isAarch64); + broken = true; description = "High performance simulators for Qiskit"; homepage = "https://qiskit.org/aer"; downloadPage = "https://github.com/QISKit/qiskit-aer/releases"; diff --git a/pkgs/development/python-modules/qiskit-terra/default.nix b/pkgs/development/python-modules/qiskit-terra/default.nix index 216f3356dc26..596f9d619d2e 100644 --- a/pkgs/development/python-modules/qiskit-terra/default.nix +++ b/pkgs/development/python-modules/qiskit-terra/default.nix @@ -1,11 +1,13 @@ { stdenv , lib +, pythonAtLeast , pythonOlder , buildPythonPackage , fetchFromGitHub , cargo , rustPlatform , rustc +, libiconv # Python requirements , dill , numpy @@ -61,7 +63,7 @@ buildPythonPackage rec { version = "0.25.1"; format = "setuptools"; - disabled = pythonOlder "3.7"; + disabled = pythonOlder "3.7" || pythonAtLeast "3.11"; src = fetchFromGitHub { owner = "qiskit"; @@ -72,10 +74,12 @@ buildPythonPackage rec { nativeBuildInputs = [ setuptools-rust rustc cargo rustPlatform.cargoSetupHook ]; + buildInputs = lib.optionals stdenv.isDarwin [ libiconv ]; + cargoDeps = rustPlatform.fetchCargoTarball { inherit src; name = "${pname}-${version}"; - hash = "sha256-SXC0UqWjWqLlZvKCRBylSX73r4Vale130KzS0zM8gjQ="; + hash = "sha256-f5VLNxv9DKwfRy5zacydfz4Zrkbiee7JecOAbVelSto="; }; propagatedBuildInputs = [ @@ -117,6 +121,8 @@ buildPythonPackage rec { "test/randomized/" # These tests consistently fail on GitHub Actions build "test/python/quantum_info/operators/test_random.py" + # Too many floating point arithmetic errors + "test/visual/mpl/circuit/test_circuit_matplotlib_drawer.py" ]; pytestFlagsArray = [ "--durations=10" ]; disabledTests = [ @@ -126,6 +132,11 @@ buildPythonPackage rec { "TestGraphMatplotlibDrawer" "test_copy" # assertNotIn doesn't seem to work as expected w/ pytest vs unittest + "test_bound_pass_manager" # AssertionError: 0 != 2 + "test_complex_parameter_bound_to_real" # qiskit.circuit.exceptions.CircuitError: "Invalid param type <class 'complex'> for gate rx." + "test_expressions_of_parameter_with_constant" # Floating point arithmetic error + "test_handle_measurement" # AssertionError: The two circuits are not equal + # Flaky tests "test_pulse_limits" # Fails on GitHub Actions, probably due to minor floating point arithmetic error. "test_cx_equivalence" # Fails due to flaky test @@ -196,7 +207,6 @@ buildPythonPackage rec { meta = with lib; { - broken = true; # tests segfault python description = "Provides the foundations for Qiskit."; longDescription = '' Allows the user to write quantum circuits easily, and takes care of the constraints of real hardware. diff --git a/pkgs/development/python-modules/reolink-aio/default.nix b/pkgs/development/python-modules/reolink-aio/default.nix index 2fbacc6ea980..9cd9b8c22aae 100644 --- a/pkgs/development/python-modules/reolink-aio/default.nix +++ b/pkgs/development/python-modules/reolink-aio/default.nix @@ -9,7 +9,7 @@ buildPythonPackage rec { pname = "reolink-aio"; - version = "0.8.1"; + version = "0.8.2"; format = "setuptools"; disabled = pythonOlder "3.9"; @@ -18,7 +18,7 @@ buildPythonPackage rec { owner = "starkillerOG"; repo = "reolink_aio"; rev = "refs/tags/${version}"; - hash = "sha256-zxIx7+cpYKN811yz+nxjtOagHOMMIs1YU0ZLN9q5T7M="; + hash = "sha256-HqGxKIP1Zdj7wgHVvnWXdHol9tvGKiXbEytnon4epFU="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/type-infer/default.nix b/pkgs/development/python-modules/type-infer/default.nix index 214f7cf4d1ab..7983ac8d29bf 100644 --- a/pkgs/development/python-modules/type-infer/default.nix +++ b/pkgs/development/python-modules/type-infer/default.nix @@ -24,7 +24,7 @@ let in buildPythonPackage rec { pname = "type-infer"; - version = "0.0.16"; + version = "0.0.17"; format = "pyproject"; disabled = pythonOlder "3.8"; @@ -33,7 +33,7 @@ buildPythonPackage rec { src = fetchPypi { pname = "type_infer"; inherit version; - hash = "sha256-EWH8odCHAzrEcBtFEYBm5gt4zlrwrK33c6uEfFBgPfA="; + hash = "sha256-2bPXJuGDXTVoYUP9IfwyRy8LbMT/ySoHDzuelrOq/DU="; }; nativeBuildInputs = [ diff --git a/pkgs/development/tools/bearer/default.nix b/pkgs/development/tools/bearer/default.nix index 448b91115186..a073c2b2b248 100644 --- a/pkgs/development/tools/bearer/default.nix +++ b/pkgs/development/tools/bearer/default.nix @@ -7,13 +7,13 @@ buildGoModule rec { pname = "bearer"; - version = "1.31.1"; + version = "1.32.0"; src = fetchFromGitHub { owner = "bearer"; repo = "bearer"; rev = "refs/tags/v${version}"; - hash = "sha256-GjCb0b8wT1mfk8Od1r5U6+a3yUzliS1ExIYIV6vnUPs="; + hash = "sha256-fqc/+eYrUcFHgC+st0LogLLIW/jRyp0M5VwxMBWkPKY="; }; vendorHash = "sha256-QDtjB1h7mNBEpTwoQfex3c6oba/kztKlgQpbmNHvoz0="; diff --git a/pkgs/development/tools/turso-cli/default.nix b/pkgs/development/tools/turso-cli/default.nix index d5ad729050ce..2f1d3b7e72b1 100644 --- a/pkgs/development/tools/turso-cli/default.nix +++ b/pkgs/development/tools/turso-cli/default.nix @@ -8,13 +8,13 @@ }: buildGo121Module rec { pname = "turso-cli"; - version = "0.87.4"; + version = "0.87.6"; src = fetchFromGitHub { owner = "tursodatabase"; repo = "turso-cli"; rev = "v${version}"; - hash = "sha256-e5HuDWMmikTlWC2ezZ5zxxKYFlgz9jrpHtNfIwSiiok="; + hash = "sha256-LQBAq7U9+6LCkIsA9mvyBUz3vXN/lYdzKHvca4JdxE0="; }; vendorHash = "sha256-EcWhpx93n+FzkXDOHwAxhn13qR4n9jLFeaKoe49x1x4="; diff --git a/pkgs/development/web/deno/default.nix b/pkgs/development/web/deno/default.nix index 09d266ff9737..abaf279e7269 100644 --- a/pkgs/development/web/deno/default.nix +++ b/pkgs/development/web/deno/default.nix @@ -13,16 +13,16 @@ rustPlatform.buildRustPackage rec { pname = "deno"; - version = "1.38.4"; + version = "1.38.5"; src = fetchFromGitHub { owner = "denoland"; repo = pname; rev = "v${version}"; - hash = "sha256-Jve2aKfnWZotgzfzUJ+ez+9sainmQiUg3x8FIWnr6/o="; + hash = "sha256-gNYyB6KUgi0/kGfyYPuDdPWU0B4Io2TxEBAf/oRSHxs="; }; - cargoHash = "sha256-pDDi0Xm1o61Ng308MeTVoVp+cYVFt34Kh4sj2idH+9s="; + cargoHash = "sha256-soHNk/EY6Db49NtdAHrky9DfEJDKfPcS2L/crkJI/9E="; postPatch = '' # upstream uses lld on aarch64-darwin for faster builds |