diff --git a/doc/languages-frameworks/dotnet.section.md b/doc/languages-frameworks/dotnet.section.md index f2a5efd05db6..f3d9fb875734 100644 --- a/doc/languages-frameworks/dotnet.section.md +++ b/doc/languages-frameworks/dotnet.section.md @@ -71,7 +71,7 @@ The `dotnetCorePackages.sdk` contains both a runtime and the full sdk of a given To package Dotnet applications, you can use `buildDotnetModule`. This has similar arguments to `stdenv.mkDerivation`, with the following additions: -* `projectFile` has to be used for specifying the dotnet project file relative to the source root. These usually have `.sln` or `.csproj` file extensions. +* `projectFile` has to be used for specifying the dotnet project file relative to the source root. These usually have `.sln` or `.csproj` file extensions. This can be an array of multiple projects as well. * `nugetDeps` has to be used to specify the NuGet dependency file. Unfortunately, these cannot be deterministically fetched without a lockfile. This file should be generated using `nuget-to-nix` tool, which is available in nixpkgs. * `executables` is used to specify which executables get wrapped to `$out/bin`, relative to `$out/lib/$pname`. If this is unset, all executables generated will get installed. If you do not want to install any, set this to `[]`. * `runtimeDeps` is used to wrap libraries into `LD_LIBRARY_PATH`. This is how dotnet usually handles runtime dependencies. diff --git a/pkgs/applications/graphics/lightburn/default.nix b/pkgs/applications/graphics/lightburn/default.nix index cc6c4f42e640..63dbbd791450 100644 --- a/pkgs/applications/graphics/lightburn/default.nix +++ b/pkgs/applications/graphics/lightburn/default.nix @@ -6,7 +6,7 @@ stdenv.mkDerivation rec { pname = "lightburn"; - version = "1.0.02"; + version = "1.0.04"; nativeBuildInputs = [ p7zip @@ -16,7 +16,7 @@ stdenv.mkDerivation rec { src = fetchurl { url = "https://github.com/LightBurnSoftware/deployment/releases/download/${version}/LightBurn-Linux64-v${version}.7z"; - sha256 = "sha256-JaKThw6ubutpOCsO1pVAPVxhhUTKpfYRHjBSu02nlN4="; + sha256 = "sha256-3uuYxDxlBlu3/4BhII36s+PsLJCmHDIE3fRAz6GO/js="; }; buildInputs = [ diff --git a/pkgs/applications/office/zk/default.nix b/pkgs/applications/office/zk/default.nix index 9da6073ff42f..bfb97d88e86b 100644 --- a/pkgs/applications/office/zk/default.nix +++ b/pkgs/applications/office/zk/default.nix @@ -2,13 +2,13 @@ buildGoModule rec { pname = "zk"; - version = "0.7.0"; + version = "0.8.0"; src = fetchFromGitHub { owner = "mickael-menu"; repo = "zk"; rev = "v${version}"; - sha256 = "sha256-C3/V4v8lH4F3S51egEw5d51AI0n5xzBQjwhrI64FEGA="; + sha256 = "sha256-lTg5jB3krZWmCn3wWoAwzqBji1AyTTTVf/BphC7Mr5s="; }; vendorSha256 = "sha256-m7QGv8Vx776TsN7QHXtO+yl3U1D573UMZVyg1B4UeIk="; diff --git a/pkgs/applications/version-management/git-and-tools/glitter/default.nix b/pkgs/applications/version-management/git-and-tools/glitter/default.nix index 65f6e3912efc..89419605b3ba 100644 --- a/pkgs/applications/version-management/git-and-tools/glitter/default.nix +++ b/pkgs/applications/version-management/git-and-tools/glitter/default.nix @@ -2,16 +2,16 @@ rustPlatform.buildRustPackage rec { pname = "glitter"; - version = "1.5.5"; + version = "1.5.6"; src = fetchFromGitHub { owner = "milo123459"; repo = pname; rev = "v${version}"; - sha256 = "sha256-4BN2kE9PkPFnFuk2Hl2WAhbvdkiO9yg4i0422ZQhJig="; + sha256 = "sha256-RP/8E2wqEFArWrZ1nfDhTKt2Ak1bl6PhalaHcQobfTk="; }; - cargoSha256 = "sha256-b+xd7Uq6sVcvbILEWKRylEnfNbQkeO/T2IoWzoReEM8="; + cargoSha256 = "sha256-6OGkcTGKCMgxMFDJ625NeVmKjRRwiRkQdE+oXRN3FHw="; # tests require it to be in a git repository preCheck = '' diff --git a/pkgs/build-support/build-dotnet-module/default.nix b/pkgs/build-support/build-dotnet-module/default.nix index 6a7b70e070b0..5178e08a9c73 100644 --- a/pkgs/build-support/build-dotnet-module/default.nix +++ b/pkgs/build-support/build-dotnet-module/default.nix @@ -21,7 +21,7 @@ # Unfortunately, dotnet has no method for doing this automatically. # If unset, all executables in the projects root will get installed. This may cause bloat! , executables ? null -# The packages project file, which contains instructions on how to compile it. +# The packages project file, which contains instructions on how to compile it. This can be an array of multiple project files as well. , projectFile ? null # The NuGet dependency file. This locks all NuGet dependency versions, as otherwise they cannot be deterministically fetched. # This can be generated using the `nuget-to-nix` tool. @@ -102,13 +102,15 @@ let export HOME=$(mktemp -d) - dotnet restore "$projectFile" \ - ${lib.optionalString (!enableParallelBuilding) "--disable-parallel"} \ - -p:ContinuousIntegrationBuild=true \ - -p:Deterministic=true \ - --source "${nuget-source}/lib" \ - "''${dotnetRestoreFlags[@]}" \ - "''${dotnetFlags[@]}" + for project in ''${projectFile[@]}; do + dotnet restore "$project" \ + ${lib.optionalString (!enableParallelBuilding) "--disable-parallel"} \ + -p:ContinuousIntegrationBuild=true \ + -p:Deterministic=true \ + --source "${nuget-source}/lib" \ + "''${dotnetRestoreFlags[@]}" \ + "''${dotnetFlags[@]}" + done runHook postConfigure ''; @@ -116,16 +118,18 @@ let buildPhase = args.buildPhase or '' runHook preBuild - dotnet build "$projectFile" \ - -maxcpucount:${if enableParallelBuilding then "$NIX_BUILD_CORES" else "1"} \ - -p:BuildInParallel=${if enableParallelBuilding then "true" else "false"} \ - -p:ContinuousIntegrationBuild=true \ - -p:Deterministic=true \ - -p:Version=${args.version} \ - --configuration "$buildType" \ - --no-restore \ - "''${dotnetBuildFlags[@]}" \ - "''${dotnetFlags[@]}" + for project in ''${projectFile[@]}; do + dotnet build "$project" \ + -maxcpucount:${if enableParallelBuilding then "$NIX_BUILD_CORES" else "1"} \ + -p:BuildInParallel=${if enableParallelBuilding then "true" else "false"} \ + -p:ContinuousIntegrationBuild=true \ + -p:Deterministic=true \ + -p:Version=${args.version} \ + --configuration "$buildType" \ + --no-restore \ + "''${dotnetBuildFlags[@]}" \ + "''${dotnetFlags[@]}" + done runHook postBuild ''; @@ -133,16 +137,18 @@ let checkPhase = args.checkPhase or '' runHook preCheck - ${lib.getBin dotnet-test-sdk}/bin/dotnet test "$testProjectFile" \ - -maxcpucount:${if enableParallelBuilding then "$NIX_BUILD_CORES" else "1"} \ - -p:ContinuousIntegrationBuild=true \ - -p:Deterministic=true \ - --configuration "$buildType" \ - --no-build \ - --logger "console;verbosity=normal" \ - ${lib.optionalString (disabledTests != []) "--filter \"FullyQualifiedName!=${lib.concatStringsSep "|FullyQualifiedName!=" disabledTests}\""} \ - "''${dotnetTestFlags[@]}" \ - "''${dotnetFlags[@]}" + for project in ''${testProjectFile[@]}; do + ${lib.getBin dotnet-test-sdk}/bin/dotnet test "$project" \ + -maxcpucount:${if enableParallelBuilding then "$NIX_BUILD_CORES" else "1"} \ + -p:ContinuousIntegrationBuild=true \ + -p:Deterministic=true \ + --configuration "$buildType" \ + --no-build \ + --logger "console;verbosity=normal" \ + ${lib.optionalString (disabledTests != []) "--filter \"FullyQualifiedName!=${lib.concatStringsSep "&FullyQualifiedName!=" disabledTests}\""} \ + "''${dotnetTestFlags[@]}" \ + "''${dotnetFlags[@]}" + done runHook postCheck ''; @@ -150,15 +156,17 @@ let installPhase = args.installPhase or '' runHook preInstall - dotnet publish "$projectFile" \ - -p:ContinuousIntegrationBuild=true \ - -p:Deterministic=true \ - --output $out/lib/${args.pname} \ - --configuration "$buildType" \ - --no-build \ - --no-self-contained \ - "''${dotnetInstallFlags[@]}" \ - "''${dotnetFlags[@]}" + for project in ''${projectFile[@]}; do + dotnet publish "$project" \ + -p:ContinuousIntegrationBuild=true \ + -p:Deterministic=true \ + --output $out/lib/${args.pname} \ + --configuration "$buildType" \ + --no-build \ + --no-self-contained \ + "''${dotnetInstallFlags[@]}" \ + "''${dotnetFlags[@]}" + done '' + (if executables != null then '' for executable in $executables; do execPath="$out/lib/${args.pname}/$executable" diff --git a/pkgs/data/misc/ddccontrol-db/default.nix b/pkgs/data/misc/ddccontrol-db/default.nix index beccf9dc773d..c8a76b98367d 100644 --- a/pkgs/data/misc/ddccontrol-db/default.nix +++ b/pkgs/data/misc/ddccontrol-db/default.nix @@ -8,13 +8,13 @@ stdenv.mkDerivation rec { pname = "ddccontrol-db"; - version = "20210804"; + version = "20210812"; src = fetchFromGitHub { owner = "ddccontrol"; repo = "ddccontrol-db"; rev = version; - sha256 = "sha256-+PTw4bDJhWyuEae5ShkIL/KvQ29+gU46iE2RdtTWb8M="; + sha256 = "sha256-dRqyjDC9yNkNOnYQ9fkWPlnyzSqIZ4zxZ2T7t8Bu9FE="; }; preConfigure = '' diff --git a/pkgs/development/python-modules/afsapi/default.nix b/pkgs/development/python-modules/afsapi/default.nix new file mode 100644 index 000000000000..8ad6fa98ff6e --- /dev/null +++ b/pkgs/development/python-modules/afsapi/default.nix @@ -0,0 +1,49 @@ +{ lib +, aiohttp +, buildPythonPackage +, fetchFromGitHub +, lxml +, pytest-aiohttp +, pytestCheckHook +, pythonOlder +}: + +buildPythonPackage rec { + pname = "afsapi"; + version = "0.0.4"; + format = "setuptools"; + + disabled = pythonOlder "3.8"; + + src = fetchFromGitHub { + owner = "zhelev"; + repo = "python-afsapi"; + rev = version; + sha256 = "aevxhHuRedDs0JxeMlYSKHDQwcIs7miRm4FCtssdE0w="; + }; + + propagatedBuildInputs = [ + aiohttp + lxml + ]; + + checkInputs = [ + pytest-aiohttp + pytestCheckHook + ]; + + pytestFlagsArray = [ + "async_tests.py" + ]; + + pythonImportsCheck = [ + "afsapi" + ]; + + meta = with lib; { + description = "Python implementation of the Frontier Silicon API"; + homepage = "https://github.com/zhelev/python-afsapi"; + license = licenses.asl20; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/aioshelly/default.nix b/pkgs/development/python-modules/aioshelly/default.nix index 814444e63533..f3bb26c2780e 100644 --- a/pkgs/development/python-modules/aioshelly/default.nix +++ b/pkgs/development/python-modules/aioshelly/default.nix @@ -3,17 +3,21 @@ , buildPythonPackage , fetchFromGitHub , netifaces +, pythonOlder }: buildPythonPackage rec { pname = "aioshelly"; - version = "1.0.4"; + version = "1.0.5"; + format = "setuptools"; + + disabled = pythonOlder "3.8"; src = fetchFromGitHub { owner = "home-assistant-libs"; repo = pname; rev = version; - sha256 = "sha256-Om+v+cGisfx2PkH/J08loZioUO6y9wi5+6kd2T+dfOo="; + sha256 = "sha256-AaEnVMup/sGR3ENtN6NF/CzG05P4Er5LI8mG5LNVzAo="; }; propagatedBuildInputs = [ @@ -23,7 +27,10 @@ buildPythonPackage rec { # Project has no test doCheck = false; - pythonImportsCheck = [ "aioshelly" ]; + + pythonImportsCheck = [ + "aioshelly" + ]; meta = with lib; { description = "Python library to control Shelly"; diff --git a/pkgs/development/python-modules/eliqonline/default.nix b/pkgs/development/python-modules/eliqonline/default.nix new file mode 100644 index 000000000000..b972d6addd25 --- /dev/null +++ b/pkgs/development/python-modules/eliqonline/default.nix @@ -0,0 +1,41 @@ +{ lib +, aiohttp +, buildPythonPackage +, docopt +, fetchPypi +, pythonOlder +, pyyaml +}: + +buildPythonPackage rec { + pname = "eliqonline"; + version = "1.2.2"; + format = "setuptools"; + + disabled = pythonOlder "3.8"; + + src = fetchPypi { + inherit pname version; + sha256 = "hOUN4cA4pKVioIrfJM02GOnZdDRc7xbNtvHfoD3//bM="; + }; + + propagatedBuildInputs = [ + aiohttp + docopt + pyyaml + ]; + + # Project has no tests + doCheck = false; + + pythonImportsCheck = [ + "eliqonline" + ]; + + meta = with lib; { + description = "Python client to the Eliq Online API"; + homepage = "https://github.com/molobrakos/eliqonline"; + license = licenses.lgpl3Only; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/exchangelib/default.nix b/pkgs/development/python-modules/exchangelib/default.nix index dba1af3d0a4f..d57b054350d7 100644 --- a/pkgs/development/python-modules/exchangelib/default.nix +++ b/pkgs/development/python-modules/exchangelib/default.nix @@ -27,14 +27,16 @@ buildPythonPackage rec { pname = "exchangelib"; - version = "4.6.0"; + version = "4.6.1"; + format = "setuptools"; + disabled = pythonOlder "3.6"; src = fetchFromGitHub { owner = "ecederstrand"; repo = pname; rev = "v${version}"; - sha256 = "1lx5q3m3vhbx9xnm3v25xrrxvli1nh0lsza51ln4y3fk79ln91hv"; + sha256 = "sha256-9MvxQe5VnR+UHB5DSn6EtExKTYsTvzZzCCaTTkCBQkU="; }; propagatedBuildInputs = [ @@ -66,7 +68,9 @@ buildPythonPackage rec { requests-mock ]; - pythonImportsCheck = [ "exchangelib" ]; + pythonImportsCheck = [ + "exchangelib" + ]; meta = with lib; { description = "Client for Microsoft Exchange Web Services (EWS)"; diff --git a/pkgs/development/python-modules/goodwe/default.nix b/pkgs/development/python-modules/goodwe/default.nix new file mode 100644 index 000000000000..185562844fb4 --- /dev/null +++ b/pkgs/development/python-modules/goodwe/default.nix @@ -0,0 +1,42 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, pytestCheckHook +, pythonOlder +}: + +buildPythonPackage rec { + pname = "goodwe"; + version = "0.2.7"; + format = "pyproject"; + + disabled = pythonOlder "3.8"; + + src = fetchFromGitHub { + owner = "marcelblijleven"; + repo = pname; + rev = "v${version}"; + sha256 = "6/JAp7zK60+om4l14sLn+pUki0Q/5XwCJSawOf1q2q0="; + }; + + checkInputs = [ + pytestCheckHook + ]; + + postPatch = '' + substituteInPlace setup.cfg \ + --replace "'marcelblijleven@gmail.com" "marcelblijleven@gmail.com" \ + --replace "version: file: VERSION" "version = ${version}" + ''; + + pythonImportsCheck = [ + "goodwe" + ]; + + meta = with lib; { + description = "Python library for connecting to GoodWe inverter"; + homepage = "https://github.com/marcelblijleven/goodwe"; + license = licenses.mit; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/halohome/default.nix b/pkgs/development/python-modules/halohome/default.nix new file mode 100644 index 000000000000..b87b59a46ec0 --- /dev/null +++ b/pkgs/development/python-modules/halohome/default.nix @@ -0,0 +1,42 @@ +{ lib +, aiohttp +, bleak +, buildPythonPackage +, csrmesh +, fetchFromGitHub +, pythonOlder +}: + +buildPythonPackage rec { + pname = "halohome"; + version = "0.4.0"; + + disabled = pythonOlder "3.7"; + + src = fetchFromGitHub { + owner = "nayaverdier"; + repo = pname; + rev = version; + sha256 = "W7cqBJmoBUT0VvXeNKxUK0FfAuprjfvFv6rgyL2gqYQ="; + }; + + propagatedBuildInputs = [ + aiohttp + bleak + csrmesh + ]; + + # Project has no tests + doCheck = false; + + pythonImportsCheck = [ + "halohome" + ]; + + meta = with lib; { + description = "Python library to control Eaton HALO Home Smart Lights"; + homepage = "https://github.com/nayaverdier/halohome"; + license = licenses.mit; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/levenshtein/default.nix b/pkgs/development/python-modules/levenshtein/default.nix new file mode 100644 index 000000000000..6f6c5d3f0cf9 --- /dev/null +++ b/pkgs/development/python-modules/levenshtein/default.nix @@ -0,0 +1,41 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, pythonOlder +, pytestCheckHook +, rapidfuzz +}: + +buildPythonPackage rec { + pname = "levenshtein"; + version = "0.16.0"; + format = "setuptools"; + + disabled = pythonOlder "3.6"; + + src = fetchFromGitHub { + owner = "maxbachmann"; + repo = "Levenshtein"; + rev = "v${version}"; + sha256 = "agshUVkkqogj4FbonFd/rrGisMOomS62NND66YKZvjg="; + }; + + propagatedBuildInputs = [ + rapidfuzz + ]; + + checkInputs = [ + pytestCheckHook + ]; + + pythonImportsCheck = [ + "Levenshtein" + ]; + + meta = with lib; { + description = "Functions for fast computation of Levenshtein distance and string similarity"; + homepage = "https://github.com/maxbachmann/Levenshtein"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/libpyvivotek/default.nix b/pkgs/development/python-modules/libpyvivotek/default.nix new file mode 100644 index 000000000000..db9f14a5a80a --- /dev/null +++ b/pkgs/development/python-modules/libpyvivotek/default.nix @@ -0,0 +1,43 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, pytestCheckHook +, pythonOlder +, requests +, vcrpy +}: + +buildPythonPackage rec { + pname = "libpyvivotek"; + version = "0.4.0"; + format = "setuptools"; + + disabled = pythonOlder "3.7"; + + src = fetchFromGitHub { + owner = "HarlemSquirrel"; + repo = "python-vivotek"; + rev = "v${version}"; + sha256 = "pNlnGpDjdYE7Lxog8GGZV+UZZmfmt5bwHof5LngPQjg="; + }; + + propagatedBuildInputs = [ + requests + ]; + + checkInputs = [ + pytestCheckHook + vcrpy + ]; + + pythonImportsCheck = [ + "libpyvivotek" + ]; + + meta = with lib; { + description = "Python Library for Vivotek IP Cameras"; + homepage = "https://github.com/HarlemSquirrel/python-vivotek"; + license = licenses.asl20; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/life360/default.nix b/pkgs/development/python-modules/life360/default.nix new file mode 100644 index 000000000000..1739881ea96d --- /dev/null +++ b/pkgs/development/python-modules/life360/default.nix @@ -0,0 +1,40 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, pytestCheckHook +, pythonOlder +, requests +}: + +buildPythonPackage rec { + pname = "life360"; + version = "4.1.1"; + format = "setuptools"; + + disabled = pythonOlder "3.8"; + + src = fetchFromGitHub { + owner = "pnbruckner"; + repo = pname; + rev = "v${version}"; + sha256 = "v+j0DBWQb1JdOu+uxJAdWhzef5zB62z+NSQ+WxpsinA="; + }; + + propagatedBuildInputs = [ + requests + ]; + + # Project has no tests + doCheck = false; + + pythonImportsCheck = [ + "life360" + ]; + + meta = with lib; { + description = "Python module to interact with Life360"; + homepage = "https://github.com/pnbruckner/life360"; + license = licenses.mit; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/oemthermostat/default.nix b/pkgs/development/python-modules/oemthermostat/default.nix new file mode 100644 index 000000000000..7a2ecfc26c03 --- /dev/null +++ b/pkgs/development/python-modules/oemthermostat/default.nix @@ -0,0 +1,48 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, pytestCheckHook +, pythonOlder +, requests +, setuptools-scm +}: + +buildPythonPackage rec { + pname = "oemthermostat"; + version = "1.1.1"; + format = "setuptools"; + + disabled = pythonOlder "3.8"; + + src = fetchFromGitHub { + owner = "Cadair"; + repo = "openenergymonitor_thermostat"; + rev = "v${version}"; + sha256 = "vrMw3/X8MtejO1WyUA1DOlfVCPTCPgcK5p3+OlTWcM4="; + }; + + SETUPTOOLS_SCM_PRETEND_VERSION = version; + + nativeBuildInputs = [ + setuptools-scm + ]; + + propagatedBuildInputs = [ + requests + ]; + + checkInputs = [ + pytestCheckHook + ]; + + pythonImportsCheck = [ + "oemthermostat" + ]; + + meta = with lib; { + description = "Python module to interact with OpenEnergyMonitor thermostats"; + homepage = "https://github.com/Cadair/openenergymonitor_thermostat"; + license = licenses.bsd3; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/pkginfo/default.nix b/pkgs/development/python-modules/pkginfo/default.nix index 6bfed6305a8a..87f11d912345 100644 --- a/pkgs/development/python-modules/pkginfo/default.nix +++ b/pkgs/development/python-modules/pkginfo/default.nix @@ -1,21 +1,30 @@ -{ lib, buildPythonPackage, fetchPypi }: +{ lib +, buildPythonPackage +, fetchPypi +, pytestCheckHook +}: buildPythonPackage rec { pname = "pkginfo"; - version = "1.7.1"; + version = "1.8.1"; + format = "setuptools"; src = fetchPypi { inherit pname version; - sha256 = "e7432f81d08adec7297633191bbf0bd47faf13cd8724c3a13250e51d542635bd"; + sha256 = "sha256-ZRdf+iyAciBnOkHDcVc6yaHqGxn/1e75FiePQoMZk08="; }; - doCheck = false; # I don't know why, but with doCheck = true it fails. + checkInputs = [ + pytestCheckHook + ]; + + pythonImportsCheck = [ + "pkginfo" + ]; meta = with lib; { - homepage = "https://pypi.python.org/pypi/pkginfo"; - license = licenses.mit; - description = "Query metadatdata from sdists / bdists / installed packages"; - + description = "Query metadatdata from sdists, bdists or installed packages"; + homepage = "https://pythonhosted.org/pkginfo/"; longDescription = '' This package provides an API for querying the distutils metadata written in the PKG-INFO file inside a source distriubtion (an sdist) @@ -24,5 +33,7 @@ buildPythonPackage rec { *.egg-info stored in a “development checkout” (e.g, created by running setup.py develop). ''; + license = licenses.mit; + maintainers = with maintainers; [ ]; }; } diff --git a/pkgs/development/python-modules/plexapi/default.nix b/pkgs/development/python-modules/plexapi/default.nix index 66e16d7e8762..8c0bd2d07e80 100644 --- a/pkgs/development/python-modules/plexapi/default.nix +++ b/pkgs/development/python-modules/plexapi/default.nix @@ -9,7 +9,8 @@ buildPythonPackage rec { pname = "plexapi"; - version = "4.7.2"; + version = "4.8.0"; + format = "setuptools"; disabled = pythonOlder "3.6"; @@ -17,7 +18,7 @@ buildPythonPackage rec { owner = "pkkid"; repo = "python-plexapi"; rev = version; - sha256 = "sha256-v12CL2VR9QAoj44F8V1qw/qflzQ1WRi1cvWn/U/wW/E="; + sha256 = "sha256-e+nZi84mF9Z/gbFyhmE9TlntkTyrfoNr3U/fwH55fjw="; }; propagatedBuildInputs = [ @@ -29,7 +30,9 @@ buildPythonPackage rec { # Tests require a running Plex instance doCheck = false; - pythonImportsCheck = [ "plexapi" ]; + pythonImportsCheck = [ + "plexapi" + ]; meta = with lib; { description = "Python bindings for the Plex API"; diff --git a/pkgs/development/python-modules/py-zabbix/default.nix b/pkgs/development/python-modules/py-zabbix/default.nix new file mode 100644 index 000000000000..410068f45237 --- /dev/null +++ b/pkgs/development/python-modules/py-zabbix/default.nix @@ -0,0 +1,36 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, pytestCheckHook +, pythonOlder +}: + +buildPythonPackage rec { + pname = "py-zabbix"; + version = "1.1.7"; + format = "setuptools"; + + disabled = pythonOlder "3.8"; + + src = fetchFromGitHub { + owner = "adubkov"; + repo = "py-zabbix"; + rev = version; + sha256 = "aPQc188pszfDQvNtsGYlRLHS5CG5VyqptSoe4/GJVvE="; + }; + + checkInputs = [ + pytestCheckHook + ]; + + pythonImportsCheck = [ + "pyzabbix" + ]; + + meta = with lib; { + description = "Python module to interact with Zabbix"; + homepage = "https://github.com/adubkov/py-zabbix"; + license = licenses.gpl2Only; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/pyephember/default.nix b/pkgs/development/python-modules/pyephember/default.nix new file mode 100644 index 000000000000..a6f8d405f617 --- /dev/null +++ b/pkgs/development/python-modules/pyephember/default.nix @@ -0,0 +1,37 @@ +{ lib +, buildPythonPackage +, fetchPypi +, pythonOlder +, requests +}: + +buildPythonPackage rec { + pname = "pyephember"; + version = "0.3.1"; + format = "setuptools"; + + disabled = pythonOlder "3.8"; + + src = fetchPypi { + inherit pname version; + sha256 = "3eMdkP7u3TTg1AUK4OR7AGZkD0FxUUPp/etvZ2Rw74E="; + }; + + propagatedBuildInputs = [ + requests + ]; + + # Project has no tests + doCheck = false; + + pythonImportsCheck = [ + "pyephember" + ]; + + meta = with lib; { + description = "Python client to the EPH Control Systems Ember API"; + homepage = "https://github.com/ttroy50/pyephember"; + license = licenses.mit; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/pyezviz/default.nix b/pkgs/development/python-modules/pyezviz/default.nix index af8ead494583..f7d564e7e54d 100644 --- a/pkgs/development/python-modules/pyezviz/default.nix +++ b/pkgs/development/python-modules/pyezviz/default.nix @@ -11,7 +11,7 @@ buildPythonPackage rec { pname = "pyezviz"; - version = "0.2.0.0"; + version = "0.2.0.5"; format = "setuptools"; disabled = pythonOlder "3.6"; @@ -20,7 +20,7 @@ buildPythonPackage rec { owner = "baqs"; repo = "pyEzviz"; rev = version; - sha256 = "sha256-aXqq3a+3PopW4vNA+O0K5OxpcHyJu2YMBJgEya0HKI0="; + sha256 = "sha256-a+u8zS69qLHABPSvWEzhM/gdzlLh2RJLTDJjaX4DtpI="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/pynina/default.nix b/pkgs/development/python-modules/pynina/default.nix new file mode 100644 index 000000000000..b9e026886c86 --- /dev/null +++ b/pkgs/development/python-modules/pynina/default.nix @@ -0,0 +1,39 @@ +{ lib +, aiohttp +, buildPythonPackage +, fetchFromGitLab +, pythonOlder +}: + +buildPythonPackage rec { + pname = "pynina"; + version = "unstable-2021-11-11"; + format = "setuptools"; + + disabled = pythonOlder "3.7"; + + src = fetchFromGitLab { + owner = "DeerMaximum"; + repo = pname; + rev = "0ac42b28d48af7bcd9c83f5d425b5b23c4c19f02"; + sha256 = "FSrFCs/4tfYcSPz9cgR+LFsRbWIHE1X+ZUl8BWSEaWQ="; + }; + + propagatedBuildInputs = [ + aiohttp + ]; + + # Project has no tests + doCheck = false; + + pythonImportsCheck = [ + "pynina" + ]; + + meta = with lib; { + description = "Python API wrapper to retrieve warnings from the german NINA app"; + homepage = "https://gitlab.com/DeerMaximum/pynina"; + license = licenses.mit; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/pysecuritas/default.nix b/pkgs/development/python-modules/pysecuritas/default.nix new file mode 100644 index 000000000000..7579e014b69c --- /dev/null +++ b/pkgs/development/python-modules/pysecuritas/default.nix @@ -0,0 +1,40 @@ +{ lib +, buildPythonPackage +, fetchPypi +, pythonOlder +, requests +, xmltodict +}: + +buildPythonPackage rec { + pname = "pysecuritas"; + version = "0.1.6"; + format = "setuptools"; + + disabled = pythonOlder "3.6"; + + src = fetchPypi { + inherit pname version; + sha256 = "W3DLZCXUH9y5NPipFEu6URmKN+oVXMgeDF1rfKtxRng="; + }; + + propagatedBuildInputs = [ + xmltodict + requests + ]; + + # Project doesn't ship tests with PyPI releases + # https://github.com/Cebeerre/pysecuritas/issues/13 + doCheck = false; + + pythonImportsCheck = [ + "pysecuritas" + ]; + + meta = with lib; { + description = "Python client to access Securitas Direct Mobile API"; + homepage = "https://github.com/Cebeerre/pysecuritas"; + license = licenses.mit; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/pyskyqhub/default.nix b/pkgs/development/python-modules/pyskyqhub/default.nix new file mode 100644 index 000000000000..1f3ad1874621 --- /dev/null +++ b/pkgs/development/python-modules/pyskyqhub/default.nix @@ -0,0 +1,39 @@ +{ lib +, aiohttp +, buildPythonPackage +, fetchFromGitHub +, pythonOlder +}: + +buildPythonPackage rec { + pname = "pyskyqhub"; + version = "0.1.4"; + format = "setuptools"; + + disabled = pythonOlder "3.8"; + + src = fetchFromGitHub { + owner = "RogerSelwyn"; + repo = "skyq_hub"; + rev = version; + sha256 = "EVkTvynMPmCr7DPuDqfpMvVPCvpPpJHfqsNjD3tn8zg="; + }; + + propagatedBuildInputs = [ + aiohttp + ]; + + # Tests require phyiscal hardware + doCheck = false; + + pythonImportsCheck = [ + "pyskyqhub" + ]; + + meta = with lib; { + description = "Python module for accessing SkyQ Hub"; + homepage = "https://github.com/RogerSelwyn/skyq_hub"; + license = licenses.asl20; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/python-levenshtein/default.nix b/pkgs/development/python-modules/python-levenshtein/default.nix index d208f2c6bdd1..9795c27d9901 100644 --- a/pkgs/development/python-modules/python-levenshtein/default.nix +++ b/pkgs/development/python-modules/python-levenshtein/default.nix @@ -4,8 +4,9 @@ }: buildPythonPackage rec { - pname = "python-Levenshtein"; + pname = "python-levenshtein"; version = "0.12.2"; + format = "setuptools"; src = fetchPypi { inherit pname version; @@ -15,11 +16,14 @@ buildPythonPackage rec { # No tests included in archive doCheck = false; + pythonImportsCheck = [ + "Levenshtein" + ]; + meta = with lib; { description = "Functions for fast computation of Levenshtein distance and string similarity"; - homepage = "https://github.com/ztane/python-Levenshtein"; - license = licenses.gpl2; + homepage = "https://github.com/ztane/python-Levenshtein"; + license = licenses.gpl2Plus; maintainers = with maintainers; [ aske ]; }; - } diff --git a/pkgs/development/python-modules/pyversasense/default.nix b/pkgs/development/python-modules/pyversasense/default.nix new file mode 100644 index 000000000000..f462deedd48c --- /dev/null +++ b/pkgs/development/python-modules/pyversasense/default.nix @@ -0,0 +1,57 @@ +{ lib +, aiohttp +, asynctest +, buildPythonPackage +, fetchFromGitHub +, pytest-asyncio +, pytestCheckHook +, pythonOlder +}: + +buildPythonPackage rec { + pname = "pyversasense"; + version = "0.0.6"; + format = "setuptools"; + + disabled = pythonOlder "3.7"; + + src = fetchFromGitHub { + owner = "imstevenxyz"; + repo = pname; + rev = "v${version}"; + sha256 = "vTaDEwImWDMInwti0Jj+j+RFEtXOOKtiH5wOMD6ZmJk="; + }; + + propagatedBuildInputs = [ + aiohttp + ]; + + checkInputs = [ + asynctest + pytest-asyncio + pytestCheckHook + ]; + + pytestFlagsArray = [ + "tests/test.py" + ]; + + disabledTests = [ + # Tests are not properly mocking network requests + "test_device_mac" + "test_peripheral_id" + "test_peripheral_measurements" + "test_samples" + ]; + + pythonImportsCheck = [ + "pyversasense" + ]; + + meta = with lib; { + description = "Python library to communicate with the VersaSense API"; + homepage = "https://github.com/imstevenxyz/pyversasense"; + license = licenses.asl20; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/qnap-qsw/default.nix b/pkgs/development/python-modules/qnap-qsw/default.nix new file mode 100644 index 000000000000..f4e9a1cdf8b8 --- /dev/null +++ b/pkgs/development/python-modules/qnap-qsw/default.nix @@ -0,0 +1,39 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, pythonOlder +, requests +}: + +buildPythonPackage rec { + pname = "qnap-qsw"; + version = "0.3.0"; + format = "setuptools"; + + disabled = pythonOlder "3.9"; + + src = fetchFromGitHub { + owner = "Noltari"; + repo = "python-qnap-qsw"; + rev = version; + sha256 = "WP1bGt7aAtSVFOMJgPXKqVSbi5zj9K7qoIVrYCrPGqk="; + }; + + propagatedBuildInputs = [ + requests + ]; + + # Project has no tests + doCheck = false; + + pythonImportsCheck = [ + "qnap_qsw" + ]; + + meta = with lib; { + description = "Python library to interact with the QNAP QSW API"; + homepage = "https://github.com/Noltari/python-qnap-qsw"; + license = licenses.gpl2Only; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/ritassist/default.nix b/pkgs/development/python-modules/ritassist/default.nix new file mode 100644 index 000000000000..a23bb3df5dee --- /dev/null +++ b/pkgs/development/python-modules/ritassist/default.nix @@ -0,0 +1,43 @@ +{ lib +, buildPythonPackage +, ciso8601 +, fetchPypi +, geopy +, pythonOlder +, requests +, sseclient +}: + +buildPythonPackage rec { + pname = "ritassist"; + version = "0.9.3"; + format = "setuptools"; + + disabled = pythonOlder "3.8"; + + src = fetchPypi { + inherit pname version; + sha256 = "1JCKWb+3mdQYnL250Ml+kFkx6VAlBC7FL6XcQlQ+kC4="; + }; + + propagatedBuildInputs = [ + ciso8601 + geopy + requests + sseclient + ]; + + # Project has no tests + doCheck = false; + + pythonImportsCheck = [ + "ritassist" + ]; + + meta = with lib; { + description = "Python client to access RitAssist and FleetGO API"; + homepage = "https://github.com/depl0y/ritassist-py"; + license = licenses.mit; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/toggl-cli/default.nix b/pkgs/development/python-modules/toggl-cli/default.nix index 54f7e6ddf9ca..1bbac9ce9da1 100644 --- a/pkgs/development/python-modules/toggl-cli/default.nix +++ b/pkgs/development/python-modules/toggl-cli/default.nix @@ -1,12 +1,29 @@ -{ lib, buildPythonPackage, fetchPypi, pythonOlder, click -, click-completion, factory_boy, faker, inquirer, notify-py, pbr, pendulum -, ptable, pytestCheckHook, pytest-cov, pytest-mock, requests, twine -, validate-email }: +{ lib +, buildPythonPackage +, click +, click-completion +, factory_boy +, faker +, fetchPypi +, inquirer +, notify-py +, pbr +, pendulum +, ptable +, pytest-mock +, pytestCheckHook +, pythonOlder +, requests +, twine +, validate-email +}: buildPythonPackage rec { pname = "toggl-cli"; version = "2.4.2"; - disabled = pythonOlder "3.5"; + format = "setuptools"; + + disabled = pythonOlder "3.6"; src = fetchPypi { pname = "togglCli"; @@ -14,14 +31,39 @@ buildPythonPackage rec { sha256 = "1wgh231r16jyvaj1ch1pajvl9szflb4srs505pfdwdlqvz7rzww8"; }; + nativeBuildInputs = [ + pbr + twine + ]; + + propagatedBuildInputs = [ + click + click-completion + inquirer + notify-py + pbr + pendulum + ptable + requests + validate-email + ]; + + checkInputs = [ + pytestCheckHook + pytest-mock + faker + factory_boy + ]; + postPatch = '' substituteInPlace requirements.txt \ - --replace "notify-py==0.3.1" "notify-py>=0.3.1" + --replace "notify-py==0.3.1" "notify-py>=0.3.1" \ + --replace "click==7.1.2" "click>=7.1.2" \ + --replace "pbr==5.5.1" "pbr>=5.5.1" + substituteInPlace pytest.ini \ + --replace ' --cov toggl -m "not premium"' "" ''; - nativeBuildInputs = [ pbr twine ]; - checkInputs = [ pbr pytestCheckHook pytest-cov pytest-mock faker factory_boy ]; - preCheck = '' export TOGGL_API_TOKEN=your_api_token export TOGGL_PASSWORD=toggl_password @@ -36,22 +78,14 @@ buildPythonPackage rec { "test_now" ]; - propagatedBuildInputs = [ - click - click-completion - inquirer - notify-py - pendulum - ptable - requests - pbr - validate-email + pythonImportsCheck = [ + "toggl" ]; meta = with lib; { - homepage = "https://toggl.uhlir.dev/"; description = "Command line tool and set of Python wrapper classes for interacting with toggl's API"; + homepage = "https://toggl.uhlir.dev/"; license = licenses.mit; - maintainers = [ maintainers.mmahut ]; + maintainers = with maintainers; [ mmahut ]; }; } diff --git a/pkgs/development/python-modules/typecode/default.nix b/pkgs/development/python-modules/typecode/default.nix index fbd907365c22..16ee927e849b 100644 --- a/pkgs/development/python-modules/typecode/default.nix +++ b/pkgs/development/python-modules/typecode/default.nix @@ -15,6 +15,7 @@ buildPythonPackage rec { pname = "typecode"; version = "21.6.1"; + format = "setuptools"; src = fetchPypi { inherit pname version; @@ -43,6 +44,8 @@ buildPythonPackage rec { disabledTests = [ "TestFileTypesDataDriven" + # AssertionError: assert 'application/x-bytecode.python'... + "test_compiled_python_1" ]; pythonImportsCheck = [ diff --git a/pkgs/development/tools/analysis/checkov/default.nix b/pkgs/development/tools/analysis/checkov/default.nix index 421d9cb8c1ee..307a64ce3777 100644 --- a/pkgs/development/tools/analysis/checkov/default.nix +++ b/pkgs/development/tools/analysis/checkov/default.nix @@ -56,13 +56,13 @@ with py.pkgs; buildPythonApplication rec { pname = "checkov"; - version = "2.0.594"; + version = "2.0.595"; src = fetchFromGitHub { owner = "bridgecrewio"; repo = pname; rev = version; - sha256 = "sha256-wbqFEeqe0RXLfiaIIG6UyBLgFOG3kUWKLVoeKoSktuI="; + sha256 = "sha256-KWT3KczjDtDfgcct7YfmmM9oLhPnAvVd9mC+GTQCTsw="; }; nativeBuildInputs = with py.pkgs; [ diff --git a/pkgs/development/tools/rust/probe-run/default.nix b/pkgs/development/tools/rust/probe-run/default.nix index 4980baf85e2a..6f9cb007b904 100644 --- a/pkgs/development/tools/rust/probe-run/default.nix +++ b/pkgs/development/tools/rust/probe-run/default.nix @@ -3,16 +3,16 @@ rustPlatform.buildRustPackage rec { pname = "probe-run"; - version = "0.2.5"; + version = "0.3.0"; src = fetchFromGitHub { owner = "knurling-rs"; repo = pname; rev = "v${version}"; - sha256 = "0bj5arngc49mdz1i7bbg4l7rb741x7dhalpdxrn55vzlvgbig8fv"; + sha256 = "0qlpvy62wqc8k9sww6pbiqv0yrjwpnai1vgrijw5285qpvrdsdw2"; }; - cargoSha256 = "1kqgl1f91aa7kz1yprpyf9pl1vp4ahhw8ka5hrvfvk5i5i54pigz"; + cargoSha256 = "10ybgzvv2iy5bjmmw48gmgvsx6rfqclsysyfbhd820dg2lshgi44"; nativeBuildInputs = [ pkg-config ]; buildInputs = [ libusb1 ] @@ -21,6 +21,7 @@ rustPlatform.buildRustPackage rec { meta = with lib; { description = "Run embedded programs just like native ones."; homepage = "https://github.com/knurling-rs/probe-run"; + changelog = "https://github.com/knurling-rs/probe-run/blob/v${version}/CHANGELOG.md"; license = with licenses; [ asl20 /* or */ mit ]; maintainers = with maintainers; [ hoverbear ]; }; diff --git a/pkgs/os-specific/bsd/netbsd/default.nix b/pkgs/os-specific/bsd/netbsd/default.nix index 5fd9bbc51a0f..b438ea98a266 100644 --- a/pkgs/os-specific/bsd/netbsd/default.nix +++ b/pkgs/os-specific/bsd/netbsd/default.nix @@ -966,7 +966,15 @@ in lib.makeScopeWithSplicing noCC = true; version = "9.2"; sha256 = "1l4lmj4kmg8dl86x94sr45w0xdnkz8dn4zjx0ipgr9bnq98663zl"; - makeFlags = defaultMakeFlags ++ [ "FILESDIR=$(out)/share" ]; + # man0 generates a man.pdf using ps2pdf, but doesn't install it later, + # so we can avoid the dependency on ghostscript + postPatch = '' + substituteInPlace man0/Makefile --replace "ps2pdf" "echo noop " + ''; + makeFlags = defaultMakeFlags ++ [ + "FILESDIR=$(out)/share" + "MKRUMP=no" # would require to have additional path sys/rump/share/man + ]; }; # # END MISCELLANEOUS diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix index 1d10fa3f796e..a5526e92015d 100644 --- a/pkgs/servers/home-assistant/component-packages.nix +++ b/pkgs/servers/home-assistant/component-packages.nix @@ -220,7 +220,7 @@ "egardia" = ps: with ps; [ pythonegardia ]; "eight_sleep" = ps: with ps; [ pyeight ]; "elgato" = ps: with ps; [ elgato ]; - "eliqonline" = ps: with ps; [ ]; # missing inputs: eliqonline + "eliqonline" = ps: with ps; [ eliqonline ]; "elkm1" = ps: with ps; [ elkm1-lib ]; "elv" = ps: with ps; [ pypca ]; "emby" = ps: with ps; [ pyemby ]; @@ -238,7 +238,7 @@ "environment_canada" = ps: with ps; [ env-canada ]; "envirophat" = ps: with ps; [ smbus-cffi ]; # missing inputs: envirophat "envisalink" = ps: with ps; [ pyenvisalink ]; - "ephember" = ps: with ps; [ ]; # missing inputs: pyephember + "ephember" = ps: with ps; [ pyephember ]; "epson" = ps: with ps; [ epson-projector ]; "epsonworkforce" = ps: with ps; [ ]; # missing inputs: epsonprinter "eq3btsmart" = ps: with ps; [ construct ]; # missing inputs: python-eq3bt @@ -270,7 +270,7 @@ "fitbit" = ps: with ps; [ aiohttp-cors fitbit ]; "fixer" = ps: with ps; [ fixerio ]; "fjaraskupan" = ps: with ps; [ fjaraskupan ]; - "fleetgo" = ps: with ps; [ ]; # missing inputs: ritassist + "fleetgo" = ps: with ps; [ ritassist ]; "flexit" = ps: with ps; [ pymodbus ]; "flic" = ps: with ps; [ pyflic ]; "flick_electric" = ps: with ps; [ pyflick ]; @@ -298,7 +298,7 @@ "fritzbox_callmonitor" = ps: with ps; [ fritzconnection ]; "fronius" = ps: with ps; [ pyfronius ]; "frontend" = ps: with ps; [ aiohttp-cors home-assistant-frontend pillow sqlalchemy ]; - "frontier_silicon" = ps: with ps; [ ]; # missing inputs: afsapi + "frontier_silicon" = ps: with ps; [ afsapi ]; "futurenow" = ps: with ps; [ pyfnip ]; "garadget" = ps: with ps; [ ]; "garages_amsterdam" = ps: with ps; [ garages-amsterdam ]; @@ -452,7 +452,7 @@ "lcn" = ps: with ps; [ pypck ]; "lg_netcast" = ps: with ps; [ pylgnetcast ]; "lg_soundbar" = ps: with ps; [ ]; # missing inputs: temescal - "life360" = ps: with ps; [ ]; # missing inputs: life360 + "life360" = ps: with ps; [ life360 ]; "lifx" = ps: with ps; [ aiolifx aiolifx-effects ]; "lifx_cloud" = ps: with ps; [ ]; "light" = ps: with ps; [ ]; @@ -597,7 +597,7 @@ "oasa_telematics" = ps: with ps; [ ]; # missing inputs: oasatelematics "obihai" = ps: with ps; [ pyobihai ]; "octoprint" = ps: with ps; [ ]; # missing inputs: pyoctoprintapi - "oem" = ps: with ps; [ ]; # missing inputs: oemthermostat + "oem" = ps: with ps; [ oemthermostat ]; "ohmconnect" = ps: with ps; [ defusedxml ]; "ombi" = ps: with ps; [ pyombi ]; "omnilogic" = ps: with ps; [ omnilogic ]; @@ -773,7 +773,7 @@ "sinch" = ps: with ps; [ ]; # missing inputs: clx-sdk-xms "siren" = ps: with ps; [ ]; "sisyphus" = ps: with ps; [ ]; # missing inputs: sisyphus-control - "sky_hub" = ps: with ps; [ ]; # missing inputs: pyskyqhub + "sky_hub" = ps: with ps; [ pyskyqhub ]; "skybeacon" = ps: with ps; [ pygatt ]; "skybell" = ps: with ps; [ skybellpy ]; "slack" = ps: with ps; [ slackclient ]; @@ -936,13 +936,13 @@ "venstar" = ps: with ps; [ venstarcolortouch ]; "vera" = ps: with ps; [ pyvera ]; "verisure" = ps: with ps; [ vsure ]; - "versasense" = ps: with ps; [ ]; # missing inputs: pyversasense + "versasense" = ps: with ps; [ pyversasense ]; "version" = ps: with ps; [ pyhaversion ]; "vesync" = ps: with ps; [ pyvesync ]; "viaggiatreno" = ps: with ps; [ ]; "vicare" = ps: with ps; [ pyvicare ]; "vilfo" = ps: with ps; [ vilfo-api-client ]; - "vivotek" = ps: with ps; [ ]; # missing inputs: libpyvivotek + "vivotek" = ps: with ps; [ libpyvivotek ]; "vizio" = ps: with ps; [ pyvizio ]; "vlc" = ps: with ps; [ python-vlc ]; "vlc_telnet" = ps: with ps; [ aiovlc ]; @@ -999,7 +999,7 @@ "yeelightsunflower" = ps: with ps; [ ]; # missing inputs: yeelightsunflower "yi" = ps: with ps; [ aioftp ha-ffmpeg ]; "youless" = ps: with ps; [ youless-api ]; - "zabbix" = ps: with ps; [ ]; # missing inputs: py-zabbix + "zabbix" = ps: with ps; [ py-zabbix ]; "zamg" = ps: with ps; [ ]; "zengge" = ps: with ps; [ ]; # missing inputs: zengge "zeroconf" = ps: with ps; [ aiohttp-cors ifaddr zeroconf ]; diff --git a/pkgs/servers/smcroute/default.nix b/pkgs/servers/smcroute/default.nix index b80d57dc8525..afb1c9e70e56 100644 --- a/pkgs/servers/smcroute/default.nix +++ b/pkgs/servers/smcroute/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "smcroute"; - version = "2.5.2"; + version = "2.5.3"; src = fetchFromGitHub { owner = "troglobit"; repo = "smcroute"; rev = version; - sha256 = "sha256-yycTH6p0Ep8bDRlq/086j+sznxCpqwDrHaN99AKShz8="; + sha256 = "sha256-0s4BIJbbygt7Wpxlp13QGbXpvZsdIBszE7TOaN2aq/E="; }; nativeBuildInputs = [ autoreconfHook pkg-config ]; diff --git a/pkgs/tools/X11/opentabletdriver/default.nix b/pkgs/tools/X11/opentabletdriver/default.nix index b205f959ee35..de3b983c91da 100644 --- a/pkgs/tools/X11/opentabletdriver/default.nix +++ b/pkgs/tools/X11/opentabletdriver/default.nix @@ -1,11 +1,8 @@ -{ stdenv -, lib +{ lib +, buildDotnetModule , fetchFromGitHub , fetchurl -, linkFarmFromDrvs , dotnetCorePackages -, dotnetPackages -, dpkg , gtk3 , libX11 , libXrandr @@ -15,16 +12,12 @@ , udev , copyDesktopItems , makeDesktopItem -, makeWrapper , nixosTests , wrapGAppsHook +, dpkg }: -let - dotnet-sdk = dotnetCorePackages.sdk_5_0; - dotnet-runtime = dotnetCorePackages.runtime_5_0; -in -stdenv.mkDerivation rec { +buildDotnetModule rec { pname = "OpenTabletDriver"; version = "0.5.3.3"; @@ -40,22 +33,21 @@ stdenv.mkDerivation rec { sha256 = "0v03qiiz28k1yzgxf5qc1mdg2n7kjx6h8vpx9dxz342wwbgqg6ic"; }; - nativeBuildInputs = [ - dotnet-sdk - dotnetPackages.Nuget - dpkg - copyDesktopItems - makeWrapper - wrapGAppsHook - ]; + dotnet-sdk = dotnetCorePackages.sdk_5_0; + dotnet-runtime = dotnetCorePackages.runtime_5_0; - nugetDeps = linkFarmFromDrvs "${pname}-nuget-deps" (import ./deps.nix { - fetchNuGet = { name, version, sha256 }: fetchurl { - name = "nuget-${name}-${version}.nupkg"; - url = "https://www.nuget.org/api/v2/package/${name}/${version}"; - inherit sha256; - }; - }); + dotnetInstallFlags = [ "--framework=net5" ]; + + projectFile = [ "OpenTabletDriver.Console" "OpenTabletDriver.Daemon" "OpenTabletDriver.UX.Gtk" ]; + nugetDeps = ./deps.nix; + + executables = [ "OpenTabletDriver.Console" "OpenTabletDriver.Daemon" "OpenTabletDriver.UX.Gtk" ]; + + nativeBuildInputs = [ + copyDesktopItems + wrapGAppsHook + dpkg + ]; runtimeDeps = [ gtk3 @@ -67,80 +59,18 @@ stdenv.mkDerivation rec { udev ]; - configurePhase = '' - runHook preConfigure - - export HOME=$(mktemp -d) - export DOTNET_CLI_TELEMETRY_OPTOUT=1 - export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1 - - nuget sources Add -Name nixos -Source "$PWD/nixos" - nuget init "$nugetDeps" "$PWD/nixos" - - # FIXME: https://github.com/NuGet/Home/issues/4413 - mkdir -p $HOME/.nuget/NuGet - cp $HOME/.config/NuGet/NuGet.Config $HOME/.nuget/NuGet - - for project in OpenTabletDriver.{Console,Daemon,UX.Gtk}; do - dotnet restore --source "$PWD/nixos" $project - done - - runHook postConfigure - ''; - - buildPhase = '' - runHook preBuild - - for project in OpenTabletDriver.{Console,Daemon,UX.Gtk}; do - dotnet build $project \ - --no-restore \ - --configuration Release \ - --framework net5 - done - - runHook postBuild - ''; - - installPhase = '' - runHook preInstall - - for project in OpenTabletDriver.{Console,Daemon,UX.Gtk}; do - dotnet publish $project \ - --no-build \ - --no-self-contained \ - --configuration Release \ - --framework net5 \ - --output $out/lib - done - + postInstall = '' # Give a more "*nix" name to the binaries - makeWrapper $out/lib/OpenTabletDriver.Console $out/bin/otd \ - "''${gappsWrapperArgs[@]}" \ - --prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \ - --set DOTNET_ROOT "${dotnet-runtime}" \ - --suffix LD_LIBRARY_PATH : "${lib.makeLibraryPath runtimeDeps}" + mv $out/bin/OpenTabletDriver.Console $out/bin/otd + mv $out/bin/OpenTabletDriver.Daemon $out/bin/otd-daemon + mv $out/bin/OpenTabletDriver.UX.Gtk $out/bin/otd-gui - makeWrapper $out/lib/OpenTabletDriver.Daemon $out/bin/otd-daemon \ - "''${gappsWrapperArgs[@]}" \ - --prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \ - --set DOTNET_ROOT "${dotnet-runtime}" \ - --suffix LD_LIBRARY_PATH : "${lib.makeLibraryPath runtimeDeps}" - - makeWrapper $out/lib/OpenTabletDriver.UX.Gtk $out/bin/otd-gui \ - "''${gappsWrapperArgs[@]}" \ - --prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \ - --set DOTNET_ROOT "${dotnet-runtime}" \ - --suffix LD_LIBRARY_PATH : "${lib.makeLibraryPath runtimeDeps}" - - mkdir -p $out/lib/OpenTabletDriver - cp -rv ./OpenTabletDriver/Configurations $out/lib/OpenTabletDriver + cp -r ./OpenTabletDriver/Configurations $out/lib/${pname} install -Dm644 $src/OpenTabletDriver.UX/Assets/otd.png -t $out/share/pixmaps # TODO: Ideally this should be build from OpenTabletDriver/OpenTabletDriver-udev instead dpkg-deb --fsys-tarfile ${debPkg} | tar xf - ./usr/lib/udev/rules.d/99-opentabletdriver.rules install -Dm644 ./usr/lib/udev/rules.d/99-opentabletdriver.rules -t $out/lib/udev/rules.d - - runHook postInstall ''; desktopItems = [ @@ -156,7 +86,6 @@ stdenv.mkDerivation rec { ]; dontWrapGApps = true; - dontStrip = true; passthru = { updateScript = ./update.sh; diff --git a/pkgs/tools/X11/opentabletdriver/shell.nix b/pkgs/tools/X11/opentabletdriver/shell.nix deleted file mode 100644 index bb60dfd50397..000000000000 --- a/pkgs/tools/X11/opentabletdriver/shell.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ pkgs ? import ../../../../. { } }: - -with pkgs; - -mkShell { - packages = [ - common-updater-scripts - nuget-to-nix - curl - dotnetCorePackages.sdk_5_0 - jq - ]; -} diff --git a/pkgs/tools/X11/opentabletdriver/update.sh b/pkgs/tools/X11/opentabletdriver/update.sh index b73a5a4b7ca9..b18bddd75aa9 100755 --- a/pkgs/tools/X11/opentabletdriver/update.sh +++ b/pkgs/tools/X11/opentabletdriver/update.sh @@ -1,16 +1,15 @@ #!/usr/bin/env nix-shell -#!nix-shell shell.nix -i bash - +#!nix-shell -i bash -p curl gnused jq common-updater-scripts nuget-to-nix dotnet-sdk_5 set -eo pipefail - cd "$(dirname "${BASH_SOURCE[0]}")" deps_file="$(realpath "./deps.nix")" -new_version="$(curl -s "https://api.github.com/repos/OpenTabletDriver/OpenTabletDriver/releases" | jq -r '.[0].tag_name' | sed 's|[^0-9.]||g')" +new_version="$(curl ${GITHUB_TOKEN:+" -u \":$GITHUB_TOKEN\""} -s "https://api.github.com/repos/OpenTabletDriver/OpenTabletDriver/releases" | jq -r 'map(select(.prerelease == false)) | .[0].tag_name' | cut -c2-)" old_version="$(sed -nE 's/\s*version = "(.*)".*/\1/p' ./default.nix)" + if [[ "$new_version" == "$old_version" ]]; then - echo "Up to date" + echo "Already up to date!" [[ "${1}" != "--force" ]] && exit 0 fi @@ -22,37 +21,22 @@ newDebSha256=$(nix-prefetch-url "$newDebPkgUrl") echo "oldDebSha256: $oldDebSha256 newDebSha256: $newDebSha256" sed -i ./default.nix -re "s|\"$oldDebSha256\"|\"$newDebSha256\"|" -cd ../../../.. +pushd ../../../.. update-source-version opentabletdriver "$new_version" -store_src="$(nix-build . -A opentabletdriver.src --no-out-link)" +store_src="$(nix-build -A opentabletdriver.src --no-out-link)" src="$(mktemp -d /tmp/opentabletdriver-src.XXX)" -echo "Temp src dir: $src" cp -rT "$store_src" "$src" chmod -R +w "$src" pushd "$src" +trap "rm -rf $src" EXIT -# Setup empty nuget package folder to force reinstall. -mkdir ./nuget_tmp.packages -cat >./nuget_tmp.config < - - - - - - - - -EOF - +export DOTNET_NOLOGO=1 export DOTNET_CLI_TELEMETRY_OPTOUT=1 +mkdir ./nuget_pkgs for project in OpenTabletDriver.{Console,Daemon,UX.Gtk}; do - dotnet restore $project --configfile ./nuget_tmp.config + dotnet restore $project --packages ./nuget_pkgs done -nuget-to-nix ./nuget_tmp.packages > "$deps_file" - -popd -rm -r "$src" +nuget-to-nix ./nuget_pkgs > "$deps_file" diff --git a/pkgs/tools/archivers/arc_unpacker/default.nix b/pkgs/tools/archivers/arc_unpacker/default.nix index edf67f2f963b..7fbd93023970 100644 --- a/pkgs/tools/archivers/arc_unpacker/default.nix +++ b/pkgs/tools/archivers/arc_unpacker/default.nix @@ -1,5 +1,5 @@ { lib, stdenv, fetchFromGitHub, cmake, makeWrapper, boost, libpng, libiconv -, libjpeg, zlib, openssl, libwebp, catch }: +, libjpeg, zlib, openssl, libwebp, catch2 }: stdenv.mkDerivation rec { pname = "arc_unpacker"; @@ -15,12 +15,12 @@ stdenv.mkDerivation rec { sha256 = "1xxrc9nww0rla3yh10z6glv05ax4rynwwbd0cdvkp7gyqzrv97xp"; }; - nativeBuildInputs = [ cmake makeWrapper catch ]; + nativeBuildInputs = [ cmake makeWrapper catch2 ]; buildInputs = [ boost libpng libjpeg zlib openssl libwebp ] ++ lib.optionals stdenv.isDarwin [ libiconv ]; postPatch = '' - cp ${catch}/include/catch/catch.hpp tests/test_support/catch.h + cp ${catch2}/include/catch2/catch.hpp tests/test_support/catch.h ''; checkPhase = '' @@ -45,8 +45,8 @@ stdenv.mkDerivation rec { runHook postInstall ''; - # A few tests fail on aarch64 - doCheck = !stdenv.isAarch64; + # A few tests fail on aarch64-linux + doCheck = !(stdenv.isLinux && stdenv.isAarch64); meta = with lib; { description = "A tool to extract files from visual novel archives"; diff --git a/pkgs/tools/backup/burp/default.nix b/pkgs/tools/backup/burp/default.nix index 00b2c71037a8..187fe71896d6 100644 --- a/pkgs/tools/backup/burp/default.nix +++ b/pkgs/tools/backup/burp/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config +{ lib, stdenv, fetchFromGitHub, fetchpatch, autoreconfHook, pkg-config , acl, librsync, ncurses, openssl, zlib, uthash }: stdenv.mkDerivation rec { @@ -12,6 +12,15 @@ stdenv.mkDerivation rec { sha256 = "1zhq240kz881vs2s620qp0kifmgr582caalm85ls789w9rmdkhjl"; }; + patches = [ + # Pull upstream fix for ncurses-6.3 support + (fetchpatch { + name = "ncurses-6.3.patch"; + url = "https://github.com/grke/burp/commit/1d6c931af7c11f164cf7ad3479781e8f03413496.patch"; + sha256 = "14sfbfahlankz3xg6v10i8fnmpnmqpp73q9xm0l0hnjh25igv6bl"; + }) + ]; + nativeBuildInputs = [ autoreconfHook pkg-config ]; buildInputs = [ librsync ncurses openssl zlib uthash ] ++ lib.optional (!stdenv.isDarwin) acl; diff --git a/pkgs/tools/package-management/cargo-about/default.nix b/pkgs/tools/package-management/cargo-about/default.nix index cf72bd85c083..ac9249b3a9be 100644 --- a/pkgs/tools/package-management/cargo-about/default.nix +++ b/pkgs/tools/package-management/cargo-about/default.nix @@ -2,16 +2,16 @@ rustPlatform.buildRustPackage rec { pname = "cargo-about"; - version = "0.4.1"; + version = "0.4.2"; src = fetchFromGitHub { owner = "EmbarkStudios"; repo = "cargo-about"; rev = version; - sha256 = "sha256-Am0VwF37fYsZvUogxnSlP/kwy20J7maFu3Is8f/1b1E="; + sha256 = "sha256-QLPqvlMwCdMfUGCVibCGQdI7UkHV1WBfpBi2Kwi3b1Q="; }; - cargoSha256 = "sha256-gf5OtRGjXmGbnXA4ZYOys6JU+JkF+rYnRSnjy3JE7c0="; + cargoSha256 = "sha256-x9hx9wJlcrGo1zuugPYY4G4Os5x8tIOICKnKq8TuevI="; meta = with lib; { description = "Cargo plugin to generate list of all licenses for a crate"; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 575524df5188..40b820b3a0cc 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -221,6 +221,8 @@ in { affine = callPackage ../development/python-modules/affine { }; + afsapi = callPackage ../development/python-modules/afsapi { }; + agate = callPackage ../development/python-modules/agate { }; agate-dbf = callPackage ../development/python-modules/agate-dbf { }; @@ -2436,6 +2438,8 @@ in { eliot = callPackage ../development/python-modules/eliot { }; + eliqonline = callPackage ../development/python-modules/eliqonline { }; + elmax = callPackage ../development/python-modules/elmax { }; emailthreads = callPackage ../development/python-modules/emailthreads { }; @@ -3154,6 +3158,8 @@ in { goocalendar = callPackage ../development/python-modules/goocalendar { }; + goodwe = callPackage ../development/python-modules/goodwe { }; + google-api-core = callPackage ../development/python-modules/google-api-core { }; google-api-python-client = callPackage ../development/python-modules/google-api-python-client { }; @@ -3458,6 +3464,8 @@ in { halo = callPackage ../development/python-modules/halo { }; + halohome = callPackage ../development/python-modules/halohome { }; + handout = callPackage ../development/python-modules/handout { }; hangups = callPackage ../development/python-modules/hangups { }; @@ -4282,6 +4290,8 @@ in { leveldb = callPackage ../development/python-modules/leveldb { }; + levenshtein = callPackage ../development/python-modules/levenshtein { }; + lexid = callPackage ../development/python-modules/lexid { }; lhapdf = toPythonModule (pkgs.lhapdf.override { @@ -4360,6 +4370,8 @@ in { libpyfoscam = callPackage ../development/python-modules/libpyfoscam { }; + libpyvivotek = callPackage ../development/python-modules/libpyvivotek { }; + libredwg = toPythonModule (pkgs.libredwg.override { enablePython = true; inherit (self) python libxml2; @@ -4436,6 +4448,8 @@ in { inherit python; })).py; + life360 = callPackage ../development/python-modules/life360 { }; + lightgbm = callPackage ../development/python-modules/lightgbm { }; lightning = callPackage ../development/python-modules/lightning { }; @@ -5301,6 +5315,8 @@ in { ofxtools = callPackage ../development/python-modules/ofxtools { }; + oemthermostat = callPackage ../development/python-modules/oemthermostat { }; + olefile = callPackage ../development/python-modules/olefile { }; omegaconf = callPackage ../development/python-modules/omegaconf { }; @@ -5801,6 +5817,8 @@ in { pysiaalarm = callPackage ../development/python-modules/pysiaalarm { }; + pyskyqhub = callPackage ../development/python-modules/pyskyqhub { }; + pysyncthru = callPackage ../development/python-modules/pysyncthru { }; python-codon-tables = callPackage ../development/python-modules/python-codon-tables { }; @@ -6137,6 +6155,8 @@ in { py-ubjson = callPackage ../development/python-modules/py-ubjson { }; + py-zabbix = callPackage ../development/python-modules/py-zabbix { }; + py17track = callPackage ../development/python-modules/py17track { }; py2bit = callPackage ../development/python-modules/py2bit { }; @@ -6412,6 +6432,8 @@ in { pyenvisalink = callPackage ../development/python-modules/pyenvisalink { }; + pyephember = callPackage ../development/python-modules/pyephember { }; + pyepsg = callPackage ../development/python-modules/pyepsg { }; pyerfa = callPackage ../development/python-modules/pyerfa { }; @@ -6806,6 +6828,8 @@ in { pynetdicom = callPackage ../development/python-modules/pynetdicom { }; + pynina = callPackage ../development/python-modules/pynina { }; + pynisher = callPackage ../development/python-modules/pynisher { }; pynmea2 = callPackage ../development/python-modules/pynmea2 { }; @@ -7087,6 +7111,8 @@ in { pysearpc = toPythonModule pkgs.libsearpc; + pysecuritas = callPackage ../development/python-modules/pysecuritas { }; + pysendfile = callPackage ../development/python-modules/pysendfile { }; pysensors = callPackage ../development/python-modules/pysensors { }; @@ -7855,6 +7881,8 @@ in { pyverilog = callPackage ../development/python-modules/pyverilog { }; + pyversasense = callPackage ../development/python-modules/pyversasense { }; + pyvesync = callPackage ../development/python-modules/pyvesync { }; pyvex = callPackage ../development/python-modules/pyvex { }; @@ -7977,6 +8005,8 @@ in { qiskit-terra = callPackage ../development/python-modules/qiskit-terra { }; + qnap-qsw = callPackage ../development/python-modules/qnap-qsw{ }; + qrcode = callPackage ../development/python-modules/qrcode { }; qreactor = callPackage ../development/python-modules/qreactor { }; @@ -8222,6 +8252,8 @@ in { rising = callPackage ../development/python-modules/rising { }; + ritassist = callPackage ../development/python-modules/ritassist { }; + rivet = toPythonModule (pkgs.rivet.override { python3 = python; });