diff --git a/nixos/tests/docker-tools.nix b/nixos/tests/docker-tools.nix index fcdfa586fd55..90af817e75ed 100644 --- a/nixos/tests/docker-tools.nix +++ b/nixos/tests/docker-tools.nix @@ -11,7 +11,7 @@ let # Rootfs diffs for layers 1 and 2 are identical (and empty) layer1 = pkgs.dockerTools.buildImage { name = "empty"; }; layer2 = layer1.overrideAttrs (_: { fromImage = layer1; }); - repeatedRootfsDiffs = pkgs.runCommandNoCC "image-with-links.tar" { + repeatedRootfsDiffs = pkgs.runCommand "image-with-links.tar" { nativeBuildInputs = [pkgs.jq]; } '' mkdir contents diff --git a/pkgs/applications/editors/neovim/tests/default.nix b/pkgs/applications/editors/neovim/tests/default.nix index a7e0e4c77057..cbe811c33b68 100644 --- a/pkgs/applications/editors/neovim/tests/default.nix +++ b/pkgs/applications/editors/neovim/tests/default.nix @@ -74,9 +74,12 @@ let }) ('' source ${nmt}/bash-lib/assertions.sh vimrc="${writeText "init.vim" neovim-drv.initRc}" + luarc="${writeText "init.lua" neovim-drv.luaRcContent}" + luarcGeneric="$out/patched.lua" vimrcGeneric="$out/patched.vim" mkdir $out ${pkgs.perl}/bin/perl -pe "s|\Q$NIX_STORE\E/[a-z0-9]{32}-|$NIX_STORE/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-|g" < "$vimrc" > "$vimrcGeneric" + ${pkgs.perl}/bin/perl -pe "s|\Q$NIX_STORE\E/[a-z0-9]{32}-|$NIX_STORE/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-|g" < "$luarc" > "$luarcGeneric" '' + buildCommand); in @@ -89,6 +92,9 @@ rec { nvim_with_plugins = wrapNeovim2 "-with-plugins" nvimConfNix; singlelinesconfig = runTest (wrapNeovim2 "-single-lines" nvimConfSingleLines) '' + assertFileContains \ + "$luarcGeneric" \ + "vim.cmd.source \"/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-init.vim" assertFileContent \ "$vimrcGeneric" \ "${./init-single-lines.vim}" diff --git a/pkgs/applications/editors/neovim/wrapper.nix b/pkgs/applications/editors/neovim/wrapper.nix index d61a2fe5e5a8..29146a769843 100644 --- a/pkgs/applications/editors/neovim/wrapper.nix +++ b/pkgs/applications/editors/neovim/wrapper.nix @@ -32,16 +32,28 @@ let # set to false if you want to control where to save the generated config # (e.g., in ~/.config/init.vim or project/.nvimrc) , wrapRc ? true - , neovimRcContent ? "" + # vimL code that should be sourced as part of the generated init.lua file + , neovimRcContent ? null + # lua code to put into the generated init.lua file + , luaRcContent ? "" # entry to load in packpath , packpathDirs , ... }: + assert withPython2 -> throw "Python2 support has been removed from the neovim wrapper, please remove withPython2 and python2Env."; + + stdenv.mkDerivation (finalAttrs: let + rcContent = '' + ${luaRcContent} + '' + lib.optionalString (!isNull neovimRcContent) '' + vim.cmd.source "${writeText "init.vim" neovimRcContent}" + ''; + wrapperArgsStr = if lib.isString wrapperArgs then wrapperArgs else lib.escapeShellArgs wrapperArgs; - commonWrapperArgs = + generatedWrapperArgs = # vim accepts a limited number of commands so we join them all [ "--add-flags" ''--cmd "lua ${providerLuaRc}"'' @@ -66,15 +78,12 @@ let finalMakeWrapperArgs = [ "${neovim-unwrapped}/bin/nvim" "${placeholder "out"}/bin/nvim" ] ++ [ "--set" "NVIM_SYSTEM_RPLUGIN_MANIFEST" "${placeholder "out"}/rplugin.vim" ] - ++ lib.optionals wrapRc [ "--add-flags" "-u ${writeText "init.vim" neovimRcContent}" ] - ++ commonWrapperArgs + ++ lib.optionals finalAttrs.wrapRc [ "--add-flags" "-u ${writeText "init.lua" rcContent}" ] + ++ finalAttrs.generatedWrapperArgs ; perlEnv = perl.withPackages (p: [ p.NeovimExt p.Appcpanminus ]); - in - assert withPython2 -> throw "Python2 support has been removed from the neovim wrapper, please remove withPython2 and python2Env."; - - stdenv.mkDerivation (finalAttrs: { + in { name = "neovim-${lib.getVersion neovim-unwrapped}${extraName}"; __structuredAttrs = true; @@ -83,8 +92,8 @@ let inherit wrapRc providerLuaRc packpathDirs; inherit python3Env rubyEnv; withRuby = rubyEnv != null; - inherit wrapperArgs; - + inherit wrapperArgs generatedWrapperArgs; + luaRcContent = rcContent; # Remove the symlinks created by symlinkJoin which we need to perform # extra actions upon postBuild = lib.optionalString stdenv.isLinux '' @@ -112,7 +121,7 @@ let '' + lib.optionalString (manifestRc != null) (let manifestWrapperArgs = - [ "${neovim-unwrapped}/bin/nvim" "${placeholder "out"}/bin/nvim-wrapper" ] ++ commonWrapperArgs; + [ "${neovim-unwrapped}/bin/nvim" "${placeholder "out"}/bin/nvim-wrapper" ] ++ finalAttrs.generatedWrapperArgs; in '' echo "Generating remote plugin manifest" export NVIM_RPLUGIN_MANIFEST=$out/rplugin.vim diff --git a/pkgs/applications/misc/sc-im/default.nix b/pkgs/applications/misc/sc-im/default.nix index 69a71c6563cb..506ff5f10c8a 100644 --- a/pkgs/applications/misc/sc-im/default.nix +++ b/pkgs/applications/misc/sc-im/default.nix @@ -11,6 +11,7 @@ , libxml2 , libzip , ncurses +, xlsSupport ? false }: stdenv.mkDerivation rec { @@ -35,11 +36,12 @@ stdenv.mkDerivation rec { buildInputs = [ gnuplot - libxls - libxlsxwriter libxml2 libzip ncurses + ] ++ lib.optionals xlsSupport [ + libxls + libxlsxwriter ]; makeFlags = [ "prefix=${placeholder "out"}" ]; diff --git a/pkgs/by-name/gi/gitmoji-cli/package.nix b/pkgs/by-name/gi/gitmoji-cli/package.nix index 7787bd4ccf81..79a801000ad1 100644 --- a/pkgs/by-name/gi/gitmoji-cli/package.nix +++ b/pkgs/by-name/gi/gitmoji-cli/package.nix @@ -6,6 +6,7 @@ , nodejs , prefetch-yarn-deps , yarn +, testers }: stdenv.mkDerivation (finalAttrs: { @@ -57,7 +58,7 @@ stdenv.mkDerivation (finalAttrs: { yarn --offline --production install mkdir -p "$out/lib/node_modules/gitmoji-cli" - cp -r lib node_modules "$out/lib/node_modules/gitmoji-cli" + cp -r lib node_modules package.json "$out/lib/node_modules/gitmoji-cli" makeWrapper "${nodejs}/bin/node" "$out/bin/gitmoji" \ --add-flags "$out/lib/node_modules/gitmoji-cli/lib/cli.js" @@ -65,6 +66,12 @@ stdenv.mkDerivation (finalAttrs: { runHook postInstall ''; + passthru.tests = { + version = testers.testVersion { + package = finalAttrs.finalPackage; + }; + }; + meta = { description = "Gitmoji client for using emojis on commit messages"; homepage = "https://github.com/carloscuesta/gitmoji-cli"; diff --git a/pkgs/development/compilers/fstar/default.nix b/pkgs/development/compilers/fstar/default.nix index 8bb3366655c7..773a0dde281f 100644 --- a/pkgs/development/compilers/fstar/default.nix +++ b/pkgs/development/compilers/fstar/default.nix @@ -1,7 +1,17 @@ -{ lib, stdenv, writeScript, fetchFromGitHub, z3, ocamlPackages, makeWrapper, installShellFiles, removeReferencesTo }: +{ callPackage +, fetchFromGitHub +, installShellFiles +, lib +, makeWrapper +, ocamlPackages +, removeReferencesTo +, stdenv +, writeScript +, z3 +}: + +let -stdenv.mkDerivation rec { - pname = "fstar"; version = "2023.09.03"; src = fetchFromGitHub { @@ -11,66 +21,54 @@ stdenv.mkDerivation rec { hash = "sha256-ymoP5DvaLdrdwJcnhZnLEvwNxUFzhkICajPyK4lvacc="; }; - strictDeps = true; + fstar-dune = ocamlPackages.callPackage ./dune.nix { inherit version src; }; + + fstar-ulib = callPackage ./ulib.nix { inherit version src fstar-dune z3; }; + +in + +stdenv.mkDerivation { + pname = "fstar"; + inherit version src; nativeBuildInputs = [ - z3 - makeWrapper installShellFiles + makeWrapper removeReferencesTo - ] ++ (with ocamlPackages; [ - ocaml - dune_3 - findlib - ocamlbuild - menhir - ]); - - buildInputs = with ocamlPackages; [ - batteries - zarith - stdint - yojson - fileutils - memtrace - menhirLib - pprint - sedlex - ppxlib - ppx_deriving - ppx_deriving_yojson - process ]; - makeFlags = [ "PREFIX=$(out)" ]; + inherit (fstar-dune) propagatedBuildInputs; - enableParallelBuilding = true; + dontBuild = true; - postPatch = '' - patchShebangs ulib/install-ulib.sh - ''; + installPhase = '' + mkdir $out - preInstall = '' - mkdir -p $out/lib/ocaml/${ocamlPackages.ocaml.version}/site-lib/fstarlib - ''; - postInstall = '' - # Remove build artifacts - find $out -name _build -type d | xargs -I{} rm -rf "{}" + CP="cp -r --no-preserve=mode" + $CP ${fstar-dune}/* $out + $CP ${fstar-ulib}/* $out + + PREFIX=$out make -C src/ocaml-output install-sides + + chmod +x $out/bin/fstar.exe + wrapProgram $out/bin/fstar.exe --prefix PATH ":" ${z3}/bin remove-references-to -t '${ocamlPackages.ocaml}' $out/bin/fstar.exe - wrapProgram $out/bin/fstar.exe --prefix PATH ":" "${z3}/bin" + substituteInPlace $out/lib/ocaml/${ocamlPackages.ocaml.version}/site-lib/fstar/dune-package \ + --replace ${fstar-dune} $out + installShellCompletion --bash .completion/bash/fstar.exe.bash installShellCompletion --fish .completion/fish/fstar.exe.fish installShellCompletion --zsh --name _fstar.exe .completion/zsh/__fstar.exe ''; passthru.updateScript = writeScript "update-fstar" '' - #!/usr/bin/env nix-shell - #!nix-shell -i bash -p git gnugrep common-updater-scripts - set -eu -o pipefail + #!/usr/bin/env nix-shell + #!nix-shell -i bash -p git gnugrep common-updater-scripts + set -eu -o pipefail - version="$(git ls-remote --tags git@github.com:FStarLang/FStar.git | grep -Po 'v\K\d{4}\.\d{2}\.\d{2}' | sort | tail -n1)" - update-source-version fstar "$version" + version="$(git ls-remote --tags git@github.com:FStarLang/FStar.git | grep -Po 'v\K\d{4}\.\d{2}\.\d{2}' | sort | tail -n1)" + update-source-version fstar "$version" ''; meta = with lib; { diff --git a/pkgs/development/compilers/fstar/dune.nix b/pkgs/development/compilers/fstar/dune.nix new file mode 100644 index 000000000000..1ca476838c8b --- /dev/null +++ b/pkgs/development/compilers/fstar/dune.nix @@ -0,0 +1,51 @@ +{ batteries +, buildDunePackage +, memtrace +, menhir +, menhirLib +, pprint +, ppx_deriving +, ppx_deriving_yojson +, ppxlib +, process +, sedlex +, src +, stdint +, version +, yojson +, zarith +}: + +buildDunePackage { + pname = "fstar"; + inherit version src; + + postPatch = '' + patchShebangs ocaml/fstar-lib/make_fstar_version.sh + cd ocaml + ''; + + nativeBuildInputs = [ + menhir + ]; + + buildInputs = [ + memtrace + ]; + + propagatedBuildInputs = [ + batteries + menhirLib + pprint + ppx_deriving + ppx_deriving_yojson + ppxlib + process + sedlex + stdint + yojson + zarith + ]; + + enableParallelBuilding = true; +} diff --git a/pkgs/development/compilers/fstar/ulib.nix b/pkgs/development/compilers/fstar/ulib.nix new file mode 100644 index 000000000000..4390a7bdb55e --- /dev/null +++ b/pkgs/development/compilers/fstar/ulib.nix @@ -0,0 +1,26 @@ +{ fstar-dune +, src +, stdenv +, version +, z3 +}: + +stdenv.mkDerivation { + pname = "fstar-ulib"; + inherit version src; + + nativeBuildInputs = [ + z3 + ]; + + postPatch = '' + mkdir -p bin + cp ${fstar-dune}/bin/fstar.exe bin + patchShebangs ulib/install-ulib.sh + cd ulib + ''; + + makeFlags = [ "PREFIX=$(out)" ]; + + enableParallelBuilding = true; +} diff --git a/pkgs/development/libraries/leptonica/default.nix b/pkgs/development/libraries/leptonica/default.nix index ceb42cd49154..08921c2ca3c0 100644 --- a/pkgs/development/libraries/leptonica/default.nix +++ b/pkgs/development/libraries/leptonica/default.nix @@ -4,11 +4,11 @@ stdenv.mkDerivation rec { pname = "leptonica"; - version = "1.83.1"; + version = "1.84.0"; src = fetchurl { url = "https://github.com/DanBloomberg/${pname}/releases/download/${version}/${pname}-${version}.tar.gz"; - hash = "sha256-jxhhXgdDr3339QmFxzDfzwyTVIBz0fVmIeQVaotU090="; + hash = "sha256-QqApMSod8M1WQBlal5voG/ZiMOFTFkysRWR4RU5yBtU="; }; nativeBuildInputs = [ autoreconfHook pkg-config ]; diff --git a/pkgs/development/python-modules/dynalite-devices/default.nix b/pkgs/development/python-modules/dynalite-devices/default.nix index b9ef5d1b5d71..bd2c964605f4 100644 --- a/pkgs/development/python-modules/dynalite-devices/default.nix +++ b/pkgs/development/python-modules/dynalite-devices/default.nix @@ -9,7 +9,7 @@ buildPythonPackage rec { pname = "dynalite-devices"; - version = "0.47"; + version = "0.1.48"; format = "setuptools"; disabled = pythonOlder "3.7"; @@ -18,7 +18,7 @@ buildPythonPackage rec { owner = "ziv1234"; repo = "python-dynalite-devices"; rev = "refs/tags/v${version}"; - hash = "sha256-kJo4e5vhgWzijLUhQd9VBVk1URpg9SXhOA60dJYashM="; + hash = "sha256-i88aIsRNsToSceQdwfspJg+Y5MO5zC4O6EkyhrYR27g="; }; patches = [ @@ -46,6 +46,9 @@ buildPythonPackage rec { "dynalite_devices_lib" ]; + # it would use the erroneous tag v0.47 + passthru.skipBulkUpdate = false; + meta = with lib; { description = "An unofficial Dynalite DyNET interface creating devices"; homepage = "https://github.com/ziv1234/python-dynalite-devices"; diff --git a/pkgs/development/python-modules/dynalite-panel/default.nix b/pkgs/development/python-modules/dynalite-panel/default.nix new file mode 100644 index 000000000000..33be58906c75 --- /dev/null +++ b/pkgs/development/python-modules/dynalite-panel/default.nix @@ -0,0 +1,40 @@ +{ lib +, buildPythonPackage +, pythonOlder +, fetchPypi +, setuptools +}: + +buildPythonPackage rec { + pname = "dynalite-panel"; + version = "0.0.4"; + pyproject = true; + + disabled = pythonOlder "3.4"; + + src = fetchPypi { + inherit pname version; + hash = "sha256-m7nQzbxRe2qXUWAMeQlDZtc9F01DsbTzF/kI0ci3TFE="; + }; + + postPatch = '' + substituteInPlace pyproject.toml \ + --replace "~=" ">=" + ''; + + nativeBuildInputs = [ + setuptools + ]; + + pythonImportsCheck = [ "dynalite_panel" ]; + + # upstream has no tests + doCheck = false; + + meta = { + description = "Dynalite panel for Home Assistant"; + homepage = "https://github.com/ziv1234/dynalitepanel"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ dotlambda ]; + }; +} diff --git a/pkgs/development/python-modules/facenet-pytorch/default.nix b/pkgs/development/python-modules/facenet-pytorch/default.nix new file mode 100644 index 000000000000..153408761c0a --- /dev/null +++ b/pkgs/development/python-modules/facenet-pytorch/default.nix @@ -0,0 +1,29 @@ +{ buildPythonPackage +, fetchPypi +, pillow +, torchvision +, lib +}: + +buildPythonPackage rec { + pname = "facenet-pytorch"; + version = "2.5.3"; + + src = fetchPypi { + inherit pname version; + hash = "sha256-mMxbQqSPg3wCPrkvKlcc1KxqRmh8XnG56ZtJEIcnPis="; + }; + + doCheck = false; # pypi version doesn't ship with tests + + pythonImportsCheck = ["facenet_pytorch"]; + + propagatedBuildInputs = [ pillow torchvision ]; + + meta = { + description = "Pretrained Pytorch face detection (MTCNN) and facial recognition (InceptionResnet) models"; + homepage = "https://github.com/timesler/facenet-pytorch"; + license = lib.licenses.mit; + maintainers = [ lib.maintainers.lucasew ]; + }; +} diff --git a/pkgs/development/tools/open-policy-agent/default.nix b/pkgs/development/tools/open-policy-agent/default.nix index aa8b4ae20f71..2d5fae331142 100644 --- a/pkgs/development/tools/open-policy-agent/default.nix +++ b/pkgs/development/tools/open-policy-agent/default.nix @@ -11,13 +11,13 @@ assert enableWasmEval && stdenv.isDarwin -> builtins.throw "building with wasm o buildGoModule rec { pname = "open-policy-agent"; - version = "0.58.0"; + version = "0.60.0"; src = fetchFromGitHub { owner = "open-policy-agent"; repo = "opa"; rev = "v${version}"; - hash = "sha256-zDTL/kP0ldPiZhLqLQmpIoDaq979KNDVJyXp93sPZAk="; + hash = "sha256-E+94J83IDLuEayrlwIp8TL+GZeUCkQmSyNL8N7mvK6o="; }; vendorHash = null; diff --git a/pkgs/misc/cups/drivers/cnijfilter_2_80/default.nix b/pkgs/misc/cups/drivers/cnijfilter_2_80/default.nix index 2b7e416eafef..1a573c032e7f 100644 --- a/pkgs/misc/cups/drivers/cnijfilter_2_80/default.nix +++ b/pkgs/misc/cups/drivers/cnijfilter_2_80/default.nix @@ -100,6 +100,10 @@ stdenv.mkDerivation { them, it undoes the --set-rpath. this prevents that. */ dontPatchELF = true; + # fortify hardening makes the filter crash + # https://github.com/NixOS/nixpkgs/issues/276125 + hardeningDisable = [ "fortify3" ]; + meta = with lib; { description = "Canon InkJet printer drivers for the iP5400, MP520, MP210, MP140, iP3500, and MP610 series. (MP520 drivers also work for MX700.)"; homepage = "http://support-asia.canon-asia.com/content/EN/0100084101.html"; diff --git a/pkgs/os-specific/linux/ipp-usb/default.nix b/pkgs/os-specific/linux/ipp-usb/default.nix index 6dc63a7295b1..38d9afddaca6 100644 --- a/pkgs/os-specific/linux/ipp-usb/default.nix +++ b/pkgs/os-specific/linux/ipp-usb/default.nix @@ -1,13 +1,13 @@ { buildGoModule, avahi, libusb1, pkg-config, lib, fetchFromGitHub, ronn }: buildGoModule rec { pname = "ipp-usb"; - version = "0.9.23"; + version = "0.9.24"; src = fetchFromGitHub { owner = "openprinting"; repo = "ipp-usb"; rev = version; - sha256 = "sha256-sbPQWKqkTaD3kLNs0noVIzAN9cwDEaULsqO7SMQH2Jo="; + sha256 = "sha256-06Kb4s9oN53llz/Yya45ig5rd86VvlcK+vRh3bL/MAw="; }; postPatch = '' @@ -24,7 +24,7 @@ buildGoModule rec { nativeBuildInputs = [ pkg-config ronn ]; buildInputs = [ libusb1 avahi ]; - vendorHash = "sha256-KwW6KgopjF4tVo8eB4OtpXF5R8jfrJ9nibNmaN8U4l8="; + vendorHash = "sha256-61vCER1yR70Pn+CrfTai1sgiQQLU6msb9jxushus5W4="; postInstall = '' # to accomodate the makefile diff --git a/pkgs/servers/home-assistant/appdaemon.nix b/pkgs/servers/home-assistant/appdaemon.nix index b104bb15997d..89515fa265d3 100644 --- a/pkgs/servers/home-assistant/appdaemon.nix +++ b/pkgs/servers/home-assistant/appdaemon.nix @@ -5,53 +5,47 @@ python3.pkgs.buildPythonApplication rec { pname = "appdaemon"; - version = "4.2.1"; - format = "setuptools"; + version = "4.4.2"; + pyproject = true; - disabled = python3.pythonOlder "3.7"; + disabled = python3.pythonOlder "3.8"; src = fetchFromGitHub { owner = "AppDaemon"; repo = "appdaemon"; rev = "refs/tags/${version}"; - hash = "sha256-4sN0optkMmyWb5Cd3F7AhcXYHh7aidJE/bieYMEKgSY="; + hash = "sha256-T3InE4J4qYeFJTq6nrW8y5BOA7Z0n3t9eVpl641r/xk="; }; postPatch = '' # relax dependencies - sed -i 's/==/>=/' requirements.txt + sed -i 's/~=/>=/' pyproject.toml ''; + nativeBuildInputs = with python3.pkgs; [ + setuptools + ]; + propagatedBuildInputs = with python3.pkgs; [ - aiodns aiohttp aiohttp-jinja2 astral - azure-keyvault-secrets - azure-mgmt-compute - azure-mgmt-resource - azure-mgmt-storage - azure-storage-blob bcrypt - faust-cchardet deepdiff feedparser iso8601 - jinja2 paho-mqtt pid - pygments python-dateutil - python-engineio python-socketio pytz pyyaml requests sockjs uvloop - voluptuous websocket-client - yarl + tomli + tomli-w ]; # no tests implemented @@ -62,7 +56,7 @@ python3.pkgs.buildPythonApplication rec { meta = with lib; { description = "Sandboxed Python execution environment for writing automation apps for Home Assistant"; homepage = "https://github.com/AppDaemon/appdaemon"; - changelog = "https://github.com/AppDaemon/appdaemon/blob/${version}/docs/HISTORY.rst"; + changelog = "https://github.com/AppDaemon/appdaemon/blob/${version}/docs/HISTORY.md"; license = licenses.mit; maintainers = teams.home-assistant.members; }; diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix index e9d881978dbd..b33a9ec352d9 100644 --- a/pkgs/servers/home-assistant/component-packages.nix +++ b/pkgs/servers/home-assistant/component-packages.nix @@ -1041,13 +1041,14 @@ aiohttp-fast-url-dispatcher aiohttp-zlib-ng dynalite-devices + dynalite-panel fnv-hash-fast home-assistant-frontend janus pillow psutil-home-assistant sqlalchemy - ]; # missing inputs: dynalite-panel + ]; "eafm" = ps: with ps; [ aioeafm ]; @@ -5714,6 +5715,7 @@ "dunehd" "duotecno" "dwd_weather_warnings" + "dynalite" "eafm" "easyenergy" "ecobee" diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 2685c6564d02..e9646749afd6 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -3476,6 +3476,8 @@ self: super: with self; { dynalite-devices = callPackage ../development/python-modules/dynalite-devices { }; + dynalite-panel = callPackage ../development/python-modules/dynalite-panel { }; + dynd = callPackage ../development/python-modules/dynd { }; e3-core = callPackage ../development/python-modules/e3-core { }; @@ -3838,6 +3840,8 @@ self: super: with self; { face-recognition = callPackage ../development/python-modules/face-recognition { }; + facenet-pytorch = callPackage ../development/python-modules/facenet-pytorch { }; + face-recognition-models = callPackage ../development/python-modules/face-recognition/models.nix { }; factory-boy = callPackage ../development/python-modules/factory-boy { };