diff --git a/doc/manual.xml b/doc/manual.xml
index 8cecb01fc22..b0490ec74ae 100644
--- a/doc/manual.xml
+++ b/doc/manual.xml
@@ -19,7 +19,7 @@
-
+
Builders
diff --git a/doc/stdenv/platform-notes.chapter.md b/doc/stdenv/platform-notes.chapter.md
new file mode 100644
index 00000000000..03e61e333f8
--- /dev/null
+++ b/doc/stdenv/platform-notes.chapter.md
@@ -0,0 +1,62 @@
+# Platform Notes {#chap-platform-notes}
+
+## Darwin (macOS) {#sec-darwin}
+
+Some common issues when packaging software for Darwin:
+
+- The Darwin `stdenv` uses clang instead of gcc. When referring to the compiler `$CC` or `cc` will work in both cases. Some builds hardcode gcc/g++ in their build scripts, that can usually be fixed with using something like `makeFlags = [ "CC=cc" ];` or by patching the build scripts.
+
+ ```nix
+ stdenv.mkDerivation {
+ name = "libfoo-1.2.3";
+ # ...
+ buildPhase = ''
+ $CC -o hello hello.c
+ '';
+ }
+ ```
+
+- On Darwin, libraries are linked using absolute paths, libraries are resolved by their `install_name` at link time. Sometimes packages won’t set this correctly causing the library lookups to fail at runtime. This can be fixed by adding extra linker flags or by running `install_name_tool -id` during the `fixupPhase`.
+
+ ```nix
+ stdenv.mkDerivation {
+ name = "libfoo-1.2.3";
+ # ...
+ makeFlags = lib.optional stdenv.isDarwin "LDFLAGS=-Wl,-install_name,$(out)/lib/libfoo.dylib";
+ }
+ ```
+
+- Even if the libraries are linked using absolute paths and resolved via their `install_name` correctly, tests can sometimes fail to run binaries. This happens because the `checkPhase` runs before the libraries are installed.
+
+ This can usually be solved by running the tests after the `installPhase` or alternatively by using `DYLD_LIBRARY_PATH`. More information about this variable can be found in the *dyld(1)* manpage.
+
+ ```
+ dyld: Library not loaded: /nix/store/7hnmbscpayxzxrixrgxvvlifzlxdsdir-jq-1.5-lib/lib/libjq.1.dylib
+ Referenced from: /private/tmp/nix-build-jq-1.5.drv-0/jq-1.5/tests/../jq
+ Reason: image not found
+ ./tests/jqtest: line 5: 75779 Abort trap: 6
+ ```
+
+ ```nix
+ stdenv.mkDerivation {
+ name = "libfoo-1.2.3";
+ # ...
+ doInstallCheck = true;
+ installCheckTarget = "check";
+ }
+ ```
+
+- Some packages assume xcode is available and use `xcrun` to resolve build tools like `clang`, etc. This causes errors like `xcode-select: error: no developer tools were found at '/Applications/Xcode.app'` while the build doesn’t actually depend on xcode.
+
+ ```nix
+ stdenv.mkDerivation {
+ name = "libfoo-1.2.3";
+ # ...
+ prePatch = ''
+ substituteInPlace Makefile \
+ --replace '/usr/bin/xcrun clang' clang
+ '';
+ }
+ ```
+
+ The package `xcbuild` can be used to build projects that really depend on Xcode. However, this replacement is not 100% compatible with Xcode and can occasionally cause issues.
diff --git a/doc/stdenv/platform-notes.xml b/doc/stdenv/platform-notes.xml
deleted file mode 100644
index cc8efaece12..00000000000
--- a/doc/stdenv/platform-notes.xml
+++ /dev/null
@@ -1,83 +0,0 @@
-
- Platform Notes
-
- Darwin (macOS)
-
-
- Some common issues when packaging software for Darwin:
-
-
-
-
-
- The Darwin stdenv uses clang instead of gcc. When referring to the compiler $CC or cc will work in both cases. Some builds hardcode gcc/g++ in their build scripts, that can usually be fixed with using something like makeFlags = [ "CC=cc" ]; or by patching the build scripts.
-
-
-stdenv.mkDerivation {
- name = "libfoo-1.2.3";
- # ...
- buildPhase = ''
- $CC -o hello hello.c
- '';
-}
-
-
-
-
- On Darwin, libraries are linked using absolute paths, libraries are resolved by their install_name at link time. Sometimes packages won't set this correctly causing the library lookups to fail at runtime. This can be fixed by adding extra linker flags or by running install_name_tool -id during the fixupPhase.
-
-
-stdenv.mkDerivation {
- name = "libfoo-1.2.3";
- # ...
- makeFlags = lib.optional stdenv.isDarwin "LDFLAGS=-Wl,-install_name,$(out)/lib/libfoo.dylib";
-}
-
-
-
-
- Even if the libraries are linked using absolute paths and resolved via their install_name correctly, tests can sometimes fail to run binaries. This happens because the checkPhase runs before the libraries are installed.
-
-
- This can usually be solved by running the tests after the installPhase or alternatively by using DYLD_LIBRARY_PATH. More information about this variable can be found in the
- dyld
- 1 manpage.
-
-
-dyld: Library not loaded: /nix/store/7hnmbscpayxzxrixrgxvvlifzlxdsdir-jq-1.5-lib/lib/libjq.1.dylib
-Referenced from: /private/tmp/nix-build-jq-1.5.drv-0/jq-1.5/tests/../jq
-Reason: image not found
-./tests/jqtest: line 5: 75779 Abort trap: 6
-
-
-stdenv.mkDerivation {
- name = "libfoo-1.2.3";
- # ...
- doInstallCheck = true;
- installCheckTarget = "check";
-}
-
-
-
-
- Some packages assume xcode is available and use xcrun to resolve build tools like clang, etc. This causes errors like xcode-select: error: no developer tools were found at '/Applications/Xcode.app'
while the build doesn't actually depend on xcode.
-
-
-stdenv.mkDerivation {
- name = "libfoo-1.2.3";
- # ...
- prePatch = ''
- substituteInPlace Makefile \
- --replace '/usr/bin/xcrun clang' clang
- '';
-}
-
-
- The package xcbuild can be used to build projects that really depend on Xcode. However, this replacement is not 100% compatible with Xcode and can occasionally cause issues.
-
-
-
-
-
diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix
index c31a20e5408..89e2ee27228 100644
--- a/nixos/tests/all-tests.nix
+++ b/nixos/tests/all-tests.nix
@@ -186,6 +186,7 @@ in
k3s = handleTest ./k3s.nix {};
kafka = handleTest ./kafka.nix {};
keepalived = handleTest ./keepalived.nix {};
+ keepassxc = handleTest ./keepassxc.nix {};
kerberos = handleTest ./kerberos/default.nix {};
kernel-latest = handleTest ./kernel-latest.nix {};
kernel-lts = handleTest ./kernel-lts.nix {};
diff --git a/nixos/tests/keepassxc.nix b/nixos/tests/keepassxc.nix
new file mode 100644
index 00000000000..98902187f6a
--- /dev/null
+++ b/nixos/tests/keepassxc.nix
@@ -0,0 +1,34 @@
+import ./make-test-python.nix ({ pkgs, ...} :
+
+{
+ name = "keepassxc";
+ meta = with pkgs.lib.maintainers; {
+ maintainers = [ turion ];
+ };
+
+ machine = { ... }:
+
+ {
+ imports = [
+ ./common/user-account.nix
+ ./common/x11.nix
+ ];
+
+ services.xserver.enable = true;
+ test-support.displayManager.auto.user = "alice";
+ environment.systemPackages = [ pkgs.keepassxc ];
+ };
+
+ enableOCR = true;
+
+ testScript = { nodes, ... }: ''
+ start_all()
+ machine.wait_for_x()
+
+ # start KeePassXC window
+ machine.execute("su - alice -c keepassxc &")
+
+ machine.wait_for_text("KeePassXC ${pkgs.keepassxc.version}")
+ machine.screenshot("KeePassXC")
+ '';
+})
diff --git a/pkgs/applications/misc/coolreader/default.nix b/pkgs/applications/misc/coolreader/default.nix
index d3f3eb6fcf5..5b310373eee 100644
--- a/pkgs/applications/misc/coolreader/default.nix
+++ b/pkgs/applications/misc/coolreader/default.nix
@@ -3,13 +3,13 @@
mkDerivation rec {
pname = "coolreader";
- version = "3.2.49";
+ version = "3.2.51";
src = fetchFromGitHub {
owner = "buggins";
repo = pname;
rev = "cr${version}";
- sha256 = "10i3w4zjlilz3smjzbwm50d91ns3w0wlgmsf38fn2lv76zczv8ia";
+ sha256 = "sha256-rRWZHkuSNhAHwxKjpRgcNXO9vs/MDAgEuhRs8mRPjP4=";
};
nativeBuildInputs = [ cmake pkg-config ];
diff --git a/pkgs/applications/misc/keepassx/community.nix b/pkgs/applications/misc/keepassx/community.nix
index c7e87dbbfd4..af259c199d8 100644
--- a/pkgs/applications/misc/keepassx/community.nix
+++ b/pkgs/applications/misc/keepassx/community.nix
@@ -34,6 +34,8 @@
, withKeePassNetworking ? true
, withKeePassTouchID ? true
, withKeePassFDOSecrets ? true
+
+, nixosTests
}:
with lib;
@@ -118,6 +120,8 @@ stdenv.mkDerivation rec {
wrapQtApp $out/Applications/KeePassXC.app/Contents/MacOS/KeePassXC
'';
+ passthru.tests = nixosTests.keepassxc;
+
meta = {
description = "Password manager to store your passwords safely and auto-type them into your everyday websites and applications";
longDescription = "A community fork of KeePassX, which is itself a port of KeePass Password Safe. The goal is to extend and improve KeePassX with new features and bugfixes to provide a feature-rich, fully cross-platform and modern open-source password manager. Accessible via native cross-platform GUI, CLI, and browser integration with the KeePassXC Browser Extension (https://github.com/keepassxreboot/keepassxc-browser).";
diff --git a/pkgs/applications/misc/reddsaver/default.nix b/pkgs/applications/misc/reddsaver/default.nix
index 86208c484a0..bdb589d8f95 100644
--- a/pkgs/applications/misc/reddsaver/default.nix
+++ b/pkgs/applications/misc/reddsaver/default.nix
@@ -8,22 +8,22 @@
rustPlatform.buildRustPackage rec {
pname = "reddsaver";
- version = "0.3.0";
+ version = "0.3.1";
src = fetchFromGitHub {
owner = "manojkarthick";
repo = "reddsaver";
rev = "v${version}";
- sha256 = "0wiyzbl9vqx5aq3lpaaqkm3ivj77lqd8bmh8ipgshdflgm1z6yvp";
+ sha256 = "0kww3abgvxr7azr7yb8aiw28fz13qb4sn3x7nnz1ihmd4yczi9fg";
};
- cargoSha256 = "0kw5gk7pf4xkmjffs2jxm6sc4chybns88cii2wlgpyvgn4c3cwaa";
+ cargoSha256 = "09xm22vgmd3dc0wr6n3jczxvhwpcsijwfbv50dz1lnsx57g8mgmd";
nativeBuildInputs = [ pkg-config ];
buildInputs = [ openssl ]
++ lib.optional stdenv.isDarwin Security;
- # package does not contain tests as of v0.3.0
+ # package does not contain tests as of v0.3.1
docCheck = false;
meta = with lib; {
diff --git a/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix b/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix
index b8aaabca0fb..f6bea3c8357 100644
--- a/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix
+++ b/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix
@@ -41,11 +41,11 @@
stdenv.mkDerivation rec {
pname = "evolution";
- version = "3.38.3";
+ version = "3.38.4";
src = fetchurl {
url = "mirror://gnome/sources/evolution/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "1kfshljvkpbh965rjlyy1qjjm0ic3rdxisyy9c5jjvv2qlk65b3z";
+ sha256 = "NB+S0k4rRMJ4mwA38aiU/xZUh9qksAuA+uMTii4Fr9Q=";
};
nativeBuildInputs = [
diff --git a/pkgs/applications/science/medicine/aliza/default.nix b/pkgs/applications/science/medicine/aliza/default.nix
index e8e764ef26d..0d827e2ad10 100644
--- a/pkgs/applications/science/medicine/aliza/default.nix
+++ b/pkgs/applications/science/medicine/aliza/default.nix
@@ -3,11 +3,11 @@
with lib;
stdenv.mkDerivation {
pname = "aliza";
- version = "1.98.32";
+ version = "1.98.43";
src = fetchurl {
# See https://www.aliza-dicom-viewer.com/download
- url = "https://drive.google.com/uc?export=download&id=1nggavPhY_633T-AW9PdkcAgbWtzv3QKG";
- sha256 = "00vbgv8ca9ckgkicyyngrb01yhhcqc8hygg2bls7b44c47hcc8zz";
+ url = "https://drive.google.com/uc?export=download&id=1HiDYUVN30oSWZWt3HBp7gNRBCLLtJM1I";
+ sha256 = "0d70q67j2q0wdn4m2fxljqb97jwmscqgg3rm1rkb77fi2ik206ra";
name = "aliza.rpm";
};
diff --git a/pkgs/desktops/gnome-3/apps/gnome-getting-started-docs/default.nix b/pkgs/desktops/gnome-3/apps/gnome-getting-started-docs/default.nix
index 93a036228c3..82c40fc429d 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-getting-started-docs/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-getting-started-docs/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "gnome-getting-started-docs";
- version = "3.38.0";
+ version = "3.38.1";
src = fetchurl {
url = "mirror://gnome/sources/gnome-getting-started-docs/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "0ficf4i4njqrx3dn5rdkvpvcys5mwfma4zkgfmfkq964jxpwzqvw";
+ sha256 = "EPviPyw85CdTmk4wekYWlNOHCyMgBGT3BbfYGvmTyFk=";
};
passthru = {
diff --git a/pkgs/development/compilers/gleam/default.nix b/pkgs/development/compilers/gleam/default.nix
index 78a335f1b7b..4f724929232 100644
--- a/pkgs/development/compilers/gleam/default.nix
+++ b/pkgs/development/compilers/gleam/default.nix
@@ -2,13 +2,13 @@
rustPlatform.buildRustPackage rec {
pname = "gleam";
- version = "0.13.2";
+ version = "0.14.0";
src = fetchFromGitHub {
owner = "gleam-lang";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-ka1GxukX3HR40fMeiiXHguyPKrpGngG2tXDColR7eQA=";
+ sha256 = "sha256-ujQ7emfGhzpRGeZ6RGZ57hFX4aIflTcwE9IEUMYb/ZI=";
};
nativeBuildInputs = [ pkg-config ];
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
buildInputs = [ openssl ] ++
lib.optionals stdenv.isDarwin [ Security ];
- cargoSha256 = "sha256-/l54ezS68loljKNh7AdYMIuCiyIbsMI3jqD9ktjZLfc=";
+ cargoSha256 = "sha256-/SudEQynLkLl7Y731Uqm9AkEugTCnq4PFFRQcwz+qL8=";
meta = with lib; {
description = "A statically typed language for the Erlang VM";
diff --git a/pkgs/development/libraries/gtk/4.x.nix b/pkgs/development/libraries/gtk/4.x.nix
index 8eb35d467e1..b05e9ea0393 100644
--- a/pkgs/development/libraries/gtk/4.x.nix
+++ b/pkgs/development/libraries/gtk/4.x.nix
@@ -55,7 +55,7 @@ assert cupsSupport -> cups != null;
stdenv.mkDerivation rec {
pname = "gtk4";
- version = "4.0.2";
+ version = "4.0.3";
outputs = [ "out" "dev" ] ++ lib.optional withGtkDoc "devdoc";
outputBin = "dev";
@@ -67,7 +67,7 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "mirror://gnome/sources/gtk/${lib.versions.majorMinor version}/gtk-${version}.tar.xz";
- sha256 = "115w3mzwm1xsi1q85qvwfm2yxpsjs2rcajgddzbnwhjicyn0frv2";
+ sha256 = "18mJNyV5C1C9mjuyeIVtnVQ7RLa5uVHXtg573swTGJA=";
};
nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/aqualogic/default.nix b/pkgs/development/python-modules/aqualogic/default.nix
index dbd29f3d110..a6081858afb 100644
--- a/pkgs/development/python-modules/aqualogic/default.nix
+++ b/pkgs/development/python-modules/aqualogic/default.nix
@@ -7,13 +7,13 @@
buildPythonPackage rec {
pname = "aqualogic";
- version = "2.3";
+ version = "2.5";
src = fetchFromGitHub {
owner = "swilson";
repo = pname;
rev = version;
- sha256 = "0101lni458y88yrw1wri3pz2cn5jlxln03pa3q2pxaybcyklb9qk";
+ sha256 = "sha256-yxd+A5dsB9gBwVlPNjz+IgDHKTktNky84bWZMhA/xa4=";
};
propagatedBuildInputs = [ pyserial ];
diff --git a/pkgs/development/python-modules/launchpadlib/default.nix b/pkgs/development/python-modules/launchpadlib/default.nix
index 6c5112312bb..e39e313baa7 100644
--- a/pkgs/development/python-modules/launchpadlib/default.nix
+++ b/pkgs/development/python-modules/launchpadlib/default.nix
@@ -10,6 +10,7 @@
, six
, testresources
, wadllib
+, pytestCheckHook
}:
buildPythonPackage rec {
@@ -32,6 +33,8 @@ buildPythonPackage rec {
wadllib
];
+ checkInputs = [ pytestCheckHook ];
+
preCheck = ''
export HOME=$TMPDIR
'';
@@ -41,7 +44,7 @@ buildPythonPackage rec {
meta = with lib; {
description = "Script Launchpad through its web services interfaces. Officially supported";
homepage = "https://help.launchpad.net/API/launchpadlib";
- license = licenses.lgpl3;
+ license = licenses.lgpl3Only;
maintainers = [ maintainers.marsam ];
};
}
diff --git a/pkgs/development/python-modules/pyalmond/default.nix b/pkgs/development/python-modules/pyalmond/default.nix
new file mode 100644
index 00000000000..59a9339c264
--- /dev/null
+++ b/pkgs/development/python-modules/pyalmond/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+ pname = "pyalmond";
+ version = "0.0.3";
+ disabled = pythonOlder "3.7";
+
+ src = fetchFromGitHub {
+ owner = "stanford-oval";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0d1w83lr7k2wxcs846iz4mjyqn1ximnw6155kgl515v10fqyrhgk";
+ };
+
+ propagatedBuildInputs = [ aiohttp ];
+
+ # Tests require a running Almond instance
+ doCheck = false;
+ pythonImportsCheck = [ "pyalmond" ];
+
+ meta = with lib; {
+ description = "Python client for the Almond API";
+ homepage = "https://github.com/stanford-oval/pyalmond";
+ license = with licenses; [ bsd3 ];
+ maintainers = with maintainers; [ fab ];
+ };
+}
diff --git a/pkgs/development/python-modules/pyflume/default.nix b/pkgs/development/python-modules/pyflume/default.nix
new file mode 100644
index 00000000000..a1d36670a39
--- /dev/null
+++ b/pkgs/development/python-modules/pyflume/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, pythonOlder
+, pyjwt
+, ratelimit
+, pytz
+, requests
+, requests-mock
+}:
+
+buildPythonPackage rec {
+ pname = "pyflume";
+ version = "0.6.2";
+ disabled = pythonOlder "3.7";
+
+ src = fetchFromGitHub {
+ owner = "ChrisMandich";
+ repo = "PyFlume";
+ rev = "v${version}";
+ sha256 = "0i181c8722j831bjlcjwv5ccy20hl8zzlv7bfp8w0976gdmv4iz8";
+ };
+
+ propagatedBuildInputs = [
+ pyjwt
+ ratelimit
+ pytz
+ requests
+ ];
+
+ checkInputs = [
+ requests-mock
+ pytestCheckHook
+ ];
+
+ pythonImportsCheck = [ "pyflume" ];
+
+ meta = with lib; {
+ description = "Python module to work with Flume sensors";
+ homepage = "https://github.com/ChrisMandich/PyFlume";
+ license = with licenses; [ mit ];
+ maintainers = with maintainers; [ fab ];
+ };
+}
diff --git a/pkgs/development/python-modules/pymitv/default.nix b/pkgs/development/python-modules/pymitv/default.nix
new file mode 100644
index 00000000000..ffaabb04a29
--- /dev/null
+++ b/pkgs/development/python-modules/pymitv/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, requests
+}:
+
+buildPythonPackage rec {
+ pname = "pymitv";
+ version = "1.4.3";
+ disabled = pythonOlder "3.5";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "0jbs1zhqpnsyad3pd8cqy1byv8m5bq17ydc6crmrfkjbp6xvvg3x";
+ };
+
+ propagatedBuildInputs = [ requests ];
+
+ # Projec thas no tests
+ doCheck = false;
+ pythonImportsCheck = [ "pymitv" ];
+
+ meta = with lib; {
+ description = "Python client the Mi Tv 3";
+ homepage = "https://github.com/simse/pymitv";
+ license = with licenses; [ mit ];
+ maintainers = with maintainers; [ fab ];
+ };
+}
diff --git a/pkgs/development/python-modules/python-twitch-client/default.nix b/pkgs/development/python-modules/python-twitch-client/default.nix
new file mode 100644
index 00000000000..30f6ab9a0a7
--- /dev/null
+++ b/pkgs/development/python-modules/python-twitch-client/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, pythonOlder
+, requests
+, responses
+}:
+
+buildPythonPackage rec {
+ pname = "python-twitch-client";
+ version = "0.7.1";
+ disabled = pythonOlder "3.6";
+
+ src = fetchFromGitHub {
+ owner = "tsifrer";
+ repo = pname;
+ rev = version;
+ sha256 = "10wwkam3dw0nqr3v9xzigx1zjlrnrhzr7jvihddvzi84vjb6j443";
+ };
+
+ propagatedBuildInputs = [ requests ];
+
+ checkInputs = [
+ pytestCheckHook
+ responses
+ ];
+
+ pythonImportsCheck = [ "twitch" ];
+
+ meta = with lib; {
+ description = "Python wrapper for the Twitch API";
+ homepage = "https://github.com/tsifrer/python-twitch-client";
+ license = with licenses; [ mit ];
+ maintainers = with maintainers; [ fab ];
+ };
+}
diff --git a/pkgs/development/python-modules/pyvolumio/default.nix b/pkgs/development/python-modules/pyvolumio/default.nix
new file mode 100644
index 00000000000..da3ac35c462
--- /dev/null
+++ b/pkgs/development/python-modules/pyvolumio/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+ pname = "pyvolumio";
+ version = "0.1.3";
+ disabled = pythonOlder "3.7";
+
+ src = fetchFromGitHub {
+ owner = "OnFreund";
+ repo = "PyVolumio";
+ rev = "v${version}";
+ sha256 = "0x2dzmd9lwnak2iy6v54y24qjq37y3nlfhsvx7hddgv8jj1klvap";
+ };
+
+ propagatedBuildInputs = [ aiohttp ];
+
+ # Project has no tests
+ doCheck = false;
+ pythonImportsCheck = [ "pyvolumio" ];
+
+ meta = with lib; {
+ description = "Python module to control Volumio";
+ homepage = "https://github.com/OnFreund/PyVolumio";
+ license = with licenses; [ mit ];
+ maintainers = with maintainers; [ fab ];
+ };
+}
diff --git a/pkgs/development/python-modules/ratelimit/default.nix b/pkgs/development/python-modules/ratelimit/default.nix
new file mode 100644
index 00000000000..f706d043bf8
--- /dev/null
+++ b/pkgs/development/python-modules/ratelimit/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+ pname = "ratelimit";
+ version = "2.2.1";
+
+ src = fetchFromGitHub {
+ owner = "tomasbasham";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "04hy3hhh5xdqcsz0lx8j18zbj88kh5ik4wyi5d3a5sfy2hx70in2";
+ };
+
+ postPatch = ''
+ sed -i "/--cov/d" pytest.ini
+ '';
+
+ checkInputs = [ pytestCheckHook ];
+
+ pytestFlagsArray = [ "tests" ];
+
+ pythonImportsCheck = [ "ratelimit" ];
+
+ meta = with lib; {
+ description = "Python API Rate Limit Decorator";
+ homepage = "https://github.com/tomasbasham/ratelimit";
+ license = with licenses; [ mit ];
+ maintainers = with maintainers; [ fab ];
+ };
+}
diff --git a/pkgs/development/python-modules/tahoma-api/default.nix b/pkgs/development/python-modules/tahoma-api/default.nix
new file mode 100644
index 00000000000..44021822311
--- /dev/null
+++ b/pkgs/development/python-modules/tahoma-api/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, requests
+}:
+
+buildPythonPackage rec {
+ pname = "tahoma-api";
+ version = "0.0.17";
+
+ src = fetchFromGitHub {
+ owner = "philklei";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "sha256-YwOKSBlN4lNyS+hfdbQDUq1gc14FBof463ofxtUVLC4=";
+ };
+
+ propagatedBuildInputs = [ requests ];
+
+ # Project has no tests
+ doCheck = false;
+ pythonImportsCheck = [ "tahoma_api" ];
+
+ meta = with lib; {
+ description = "Python module to interface with Tahoma REST API";
+ homepage = "https://github.com/philklei/tahoma-api/";
+ license = with licenses; [ asl20 ];
+ maintainers = with maintainers; [ fab ];
+ };
+}
diff --git a/pkgs/development/python-modules/tuyaha/default.nix b/pkgs/development/python-modules/tuyaha/default.nix
new file mode 100644
index 00000000000..a53124783d1
--- /dev/null
+++ b/pkgs/development/python-modules/tuyaha/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, requests
+}:
+
+buildPythonPackage rec {
+ pname = "tuyaha";
+ version = "0.0.10";
+
+ src = fetchFromGitHub {
+ owner = "PaulAnnekov";
+ repo = pname;
+ rev = version;
+ sha256 = "0n08mqrz76zv1cyqky6ibs6im1fqcywkiyvfmfabml0vzvr43awf";
+ };
+
+ propagatedBuildInputs = [ requests ];
+
+ # Project has no tests
+ doCheck = false;
+ pythonImportsCheck = [ "tuyaha" ];
+
+ meta = with lib; {
+ description = "Python module with the Tuya API";
+ homepage = "https://github.com/PaulAnnekov/tuyaha";
+ license = with licenses; [ mit ];
+ maintainers = with maintainers; [ fab ];
+ };
+}
diff --git a/pkgs/development/python-modules/wiffi/default.nix b/pkgs/development/python-modules/wiffi/default.nix
new file mode 100644
index 00000000000..a3da3f2f027
--- /dev/null
+++ b/pkgs/development/python-modules/wiffi/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+ pname = "wiffi";
+ version = "1.0.1";
+ disabled = pythonOlder "3.6";
+
+ src = fetchFromGitHub {
+ owner = "mampfes";
+ repo = "python-wiffi";
+ rev = version;
+ sha256 = "1bsx8dcmbkajh7hdgxg6wdnyxz4bfnd45piiy3yzyvszfdyvxw0f";
+ };
+
+ propagatedBuildInputs = [ aiohttp ];
+
+ # Project has no tests
+ doCheck = false;
+ pythonImportsCheck = [ "wiffi" ];
+
+ meta = with lib; {
+ description = "Python module to interface with STALL WIFFI devices";
+ homepage = "https://github.com/mampfes/python-wiffi";
+ license = with licenses; [ mit ];
+ maintainers = with maintainers; [ fab ];
+ };
+}
diff --git a/pkgs/development/python-modules/xknx/default.nix b/pkgs/development/python-modules/xknx/default.nix
index 221076fae84..841348339a7 100644
--- a/pkgs/development/python-modules/xknx/default.nix
+++ b/pkgs/development/python-modules/xknx/default.nix
@@ -11,14 +11,14 @@
buildPythonPackage rec {
pname = "xknx";
- version = "0.16.3";
+ version = "0.17.0";
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "XKNX";
repo = pname;
rev = version;
- sha256 = "sha256-toB66woREkFUv3J14wwquRo+uAOgXKO+cwFgyw4Mma8=";
+ sha256 = "sha256-fzLqkeCfeLNu13R9cp1XVh8fE2B3L47UDpuWOod33gU=";
};
propagatedBuildInputs = [
diff --git a/pkgs/games/enigma/default.nix b/pkgs/games/enigma/default.nix
new file mode 100644
index 00000000000..131bd00e185
--- /dev/null
+++ b/pkgs/games/enigma/default.nix
@@ -0,0 +1,32 @@
+{ lib, stdenv, fetchurl, makeWrapper, pkg-config, gettext, imagemagick, curl, libpng, SDL2, SDL2_image, SDL2_mixer, SDL2_ttf, xercesc, xdg-utils, hicolor-icon-theme }:
+stdenv.mkDerivation rec {
+ pname = "enigma";
+ version = "1.30-alpha";
+
+ src = fetchurl {
+ url = "https://github.com/Enigma-Game/Enigma/releases/download/${version}/${pname}-${version}.tar.gz";
+ sha256 = "1zyk3j43gzfr1lhc6g13j7qai5f33fv5xm5735nnznaqvaz17949";
+ };
+
+ nativeBuildInputs = [ pkg-config gettext makeWrapper imagemagick ];
+ buildInputs = [ SDL2 SDL2_image SDL2_mixer SDL2_ttf libpng xercesc curl xdg-utils ];
+
+ # For some reason (might be related to the alpha status), some includes
+ # which are required by lib-src/enigma-core are not picked up by the
+ # configure script. Hence we add them manually.
+ CPPFLAGS = "-I${SDL2.dev}/include/SDL2 -I${SDL2_ttf}/include/SDL2 -I${SDL2_image}/include/SDL2 -I${SDL2_mixer}/include/SDL2";
+
+ postInstall = ''
+ rm -r $out/include
+ wrapProgram $out/bin/enigma --prefix PATH : "${lib.makeBinPath [ xdg-utils ]}"
+ '';
+
+ meta = with lib; {
+ description = "Puzzle game inspired by Oxyd on the Atari ST and Rock'n'Roll on the Amiga";
+ license = with licenses; [ gpl2 free ]; # source + bundles libs + art
+ platforms = platforms.unix;
+ broken = stdenv.targetPlatform.isDarwin;
+ maintainers = with maintainers; [ iblech ];
+ homepage = "https://www.nongnu.org/enigma/";
+ };
+}
diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix
index fe0d0a16022..a4e480c4550 100644
--- a/pkgs/servers/home-assistant/component-packages.nix
+++ b/pkgs/servers/home-assistant/component-packages.nix
@@ -23,7 +23,7 @@
"alarmdecoder" = ps: with ps; [ adext ];
"alert" = ps: with ps; [ ];
"alexa" = ps: with ps; [ aiohttp-cors ];
- "almond" = ps: with ps; [ aiohttp-cors ]; # missing inputs: pyalmond
+ "almond" = ps: with ps; [ aiohttp-cors pyalmond ];
"alpha_vantage" = ps: with ps; [ ]; # missing inputs: alpha_vantage
"amazon_polly" = ps: with ps; [ boto3 ];
"ambiclimate" = ps: with ps; [ aiohttp-cors ambiclimate ];
@@ -264,7 +264,7 @@
"flick_electric" = ps: with ps; [ ]; # missing inputs: PyFlick
"flo" = ps: with ps; [ aioflo ];
"flock" = ps: with ps; [ ];
- "flume" = ps: with ps; [ ]; # missing inputs: pyflume
+ "flume" = ps: with ps; [ pyflume ];
"flunearyou" = ps: with ps; [ ]; # missing inputs: pyflunearyou
"flux" = ps: with ps; [ ];
"flux_led" = ps: with ps; [ flux-led ];
@@ -815,7 +815,7 @@
"systemmonitor" = ps: with ps; [ psutil ];
"tado" = ps: with ps; [ python-tado ];
"tag" = ps: with ps; [ ];
- "tahoma" = ps: with ps; [ ]; # missing inputs: tahoma-api
+ "tahoma" = ps: with ps; [ tahoma-api ];
"tank_utility" = ps: with ps; [ ]; # missing inputs: tank_utility
"tankerkoenig" = ps: with ps; [ ]; # missing inputs: pytankerkoenig
"tapsaff" = ps: with ps; [ ]; # missing inputs: tapsaff
@@ -865,13 +865,13 @@
"travisci" = ps: with ps; [ ]; # missing inputs: TravisPy
"trend" = ps: with ps; [ numpy ];
"tts" = ps: with ps; [ aiohttp-cors mutagen ];
- "tuya" = ps: with ps; [ ]; # missing inputs: tuyaha
+ "tuya" = ps: with ps; [ tuyaha ];
"twentemilieu" = ps: with ps; [ ]; # missing inputs: twentemilieu
"twilio" = ps: with ps; [ aiohttp-cors twilio ];
"twilio_call" = ps: with ps; [ aiohttp-cors twilio ];
"twilio_sms" = ps: with ps; [ aiohttp-cors twilio ];
"twinkly" = ps: with ps; [ ]; # missing inputs: twinkly-client
- "twitch" = ps: with ps; [ ]; # missing inputs: python-twitch-client
+ "twitch" = ps: with ps; [ python-twitch-client ];
"twitter" = ps: with ps; [ ]; # missing inputs: TwitterAPI
"ubus" = ps: with ps; [ ];
"ue_smart_radio" = ps: with ps; [ ];
@@ -911,7 +911,7 @@
"vlc_telnet" = ps: with ps; [ ]; # missing inputs: python-telnet-vlc
"voicerss" = ps: with ps; [ ];
"volkszaehler" = ps: with ps; [ volkszaehler ];
- "volumio" = ps: with ps; [ ]; # missing inputs: pyvolumio
+ "volumio" = ps: with ps; [ pyvolumio ];
"volvooncall" = ps: with ps; [ ]; # missing inputs: volvooncall
"vultr" = ps: with ps; [ vultr ];
"w800rf32" = ps: with ps; [ ]; # missing inputs: pyW800rf32
@@ -928,7 +928,7 @@
"websocket_api" = ps: with ps; [ aiohttp-cors ];
"wemo" = ps: with ps; [ ]; # missing inputs: pywemo
"whois" = ps: with ps; [ python-whois ];
- "wiffi" = ps: with ps; [ ]; # missing inputs: wiffi
+ "wiffi" = ps: with ps; [ wiffi ];
"wilight" = ps: with ps; [ pywilight ];
"wink" = ps: with ps; [ aiohttp-cors pubnubsub-handler python-wink ];
"wirelesstag" = ps: with ps; [ ]; # missing inputs: wirelesstagpy
@@ -950,7 +950,7 @@
"xiaomi" = ps: with ps; [ ha-ffmpeg ];
"xiaomi_aqara" = ps: with ps; [ pyxiaomigateway aiohttp-cors netdisco zeroconf ];
"xiaomi_miio" = ps: with ps; [ construct python-miio ];
- "xiaomi_tv" = ps: with ps; [ ]; # missing inputs: pymitv
+ "xiaomi_tv" = ps: with ps; [ pymitv ];
"xmpp" = ps: with ps; [ slixmpp ];
"xs1" = ps: with ps; [ ]; # missing inputs: xs1-api-client
"yale_smart_alarm" = ps: with ps; [ yalesmartalarmclient ];
diff --git a/pkgs/tools/nix/nix-output-monitor/default.nix b/pkgs/tools/nix/nix-output-monitor/default.nix
index b177b9a233a..1aa6117c295 100644
--- a/pkgs/tools/nix/nix-output-monitor/default.nix
+++ b/pkgs/tools/nix/nix-output-monitor/default.nix
@@ -1,21 +1,21 @@
{ mkDerivation, ansi-terminal, async, attoparsec, base, containers
-, directory, HUnit, mtl, nix-derivation, process, relude, lib
-, stm, text, time, unix, fetchFromGitHub
+, cassava, directory, HUnit, mtl, nix-derivation, process, relude, lib
+, stm, terminal-size, text, time, unix, wcwidth, fetchFromGitHub
}:
mkDerivation {
pname = "nix-output-monitor";
- version = "0.1.0.2";
+ version = "1.0.1.0";
src = fetchFromGitHub {
owner = "maralorn";
repo = "nix-output-monitor";
- sha256 = "0r4348cbmnpawbfa20qw3wnywiqp0jkl5svzl27jrm2yk2g51509";
- rev = "5bf7534";
+ sha256 = "10a3sn5isdb9q13yzdclng35jwfaf4lxrkdxwbhwms1k2ll08qk6";
+ rev = "1.0.1.0";
};
isLibrary = true;
isExecutable = true;
libraryHaskellDepends = [
- ansi-terminal async attoparsec base containers directory mtl
- nix-derivation relude stm text time unix
+ ansi-terminal async attoparsec base cassava containers directory mtl
+ nix-derivation relude stm terminal-size text time unix wcwidth
];
executableHaskellDepends = [
ansi-terminal async attoparsec base containers directory mtl
diff --git a/pkgs/tools/system/gdu/default.nix b/pkgs/tools/system/gdu/default.nix
index 7b0b45fedb0..1051d48b8a5 100644
--- a/pkgs/tools/system/gdu/default.nix
+++ b/pkgs/tools/system/gdu/default.nix
@@ -6,13 +6,13 @@
buildGoModule rec {
pname = "gdu";
- version = "4.6.2";
+ version = "4.6.3";
src = fetchFromGitHub {
owner = "dundee";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-q26NnHSnJ8vVWHwXtFJ90/8xr772x/gW6BRG29wsIeI=";
+ sha256 = "sha256-vz8qqsFc1CETnrqStLyiGZ6w0jy+y5GlwQQgxdyJ5aY=";
};
vendorSha256 = "sha256-kIMd0xzQ+c+jCpX2+qdD/GcFEirR15PMInbEV184EBU=";
diff --git a/pkgs/tools/system/tre-command/default.nix b/pkgs/tools/system/tre-command/default.nix
index 638caa3c62b..f9e0e80478d 100644
--- a/pkgs/tools/system/tre-command/default.nix
+++ b/pkgs/tools/system/tre-command/default.nix
@@ -2,16 +2,16 @@
rustPlatform.buildRustPackage rec {
pname = "tre-command";
- version = "0.3.3";
+ version = "0.3.4";
src = fetchFromGitHub {
owner = "dduan";
repo = "tre";
rev = "v${version}";
- sha256 = "10c8mpqzpw7m3vrm2vl2rx678z3c37hxpqyh3fn83dlh9f4f0j87";
+ sha256 = "0syvhpnw9c5csxv8c4gdfwif9a9vl4rjkwj4mfglgxk227k1y53q";
};
- cargoSha256 = "0jd6cfs2zi2n34kirpsy12l76whaqwm1pkqa57w1ms5z658z07wj";
+ cargoSha256 = "056wlxz8hzky8315rnn65nh7dd2yhx5323y3hq64g6aqj52vd734";
nativeBuildInputs = [ installShellFiles ];
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 843d513b1f8..6346ea8f3fe 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -2263,6 +2263,8 @@ in
enca = callPackage ../tools/text/enca { };
+ enigma = callPackage ../games/enigma {};
+
ent = callPackage ../tools/misc/ent { };
envconsul = callPackage ../tools/system/envconsul { };
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index d67b31e9c3d..88b66b1420e 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -5231,6 +5231,8 @@ in {
pyalgotrade = callPackage ../development/python-modules/pyalgotrade { };
+ pyalmond = callPackage ../development/python-modules/pyalmond { };
+
pyamf = callPackage ../development/python-modules/pyamf { };
pyamg = callPackage ../development/python-modules/pyamg { };
@@ -5462,6 +5464,8 @@ in {
pyflakes = callPackage ../development/python-modules/pyflakes { };
+ pyflume = callPackage ../development/python-modules/pyflume { };
+
pyfma = callPackage ../development/python-modules/pyfma { };
pyfribidi = callPackage ../development/python-modules/pyfribidi { };
@@ -5694,6 +5698,8 @@ in {
pymetno = callPackage ../development/python-modules/pymetno { };
+ pymitv = callPackage ../development/python-modules/pymitv { };
+
pymodbus = callPackage ../development/python-modules/pymodbus { };
pymongo = callPackage ../development/python-modules/pymongo { };
@@ -6487,6 +6493,8 @@ in {
python-toolbox = callPackage ../development/python-modules/python-toolbox { };
+ python-twitch-client = callPackage ../development/python-modules/python-twitch-client { };
+
python-twitter = callPackage ../development/python-modules/python-twitter { };
python-u2flib-host = callPackage ../development/python-modules/python-u2flib-host { };
@@ -6600,6 +6608,8 @@ in {
pyvmomi = callPackage ../development/python-modules/pyvmomi { };
+ pyvolumio = callPackage ../development/python-modules/pyvolumio { };
+
pyvoro = callPackage ../development/python-modules/pyvoro { };
pywal = callPackage ../development/python-modules/pywal { };
@@ -6739,6 +6749,8 @@ in {
rasterio = callPackage ../development/python-modules/rasterio { gdal = pkgs.gdal_2; }; # gdal 3.0 not supported yet
+ ratelimit = callPackage ../development/python-modules/ratelimit { };
+
ratelimiter = callPackage ../development/python-modules/ratelimiter { };
raven = callPackage ../development/python-modules/raven { };
@@ -7679,6 +7691,8 @@ in {
tag-expressions = callPackage ../development/python-modules/tag-expressions { };
+ tahoma-api = callPackage ../development/python-modules/tahoma-api { };
+
tarman = callPackage ../development/python-modules/tarman { };
tasklib = callPackage ../development/python-modules/tasklib { };
@@ -7983,6 +7997,8 @@ in {
tumpa = callPackage ../development/python-modules/tumpa { };
+ tuyaha = callPackage ../development/python-modules/tuyaha { };
+
tvdb_api = callPackage ../development/python-modules/tvdb_api { };
tvnamer = callPackage ../development/python-modules/tvnamer { };
@@ -8356,6 +8372,8 @@ in {
widgetsnbextension = callPackage ../development/python-modules/widgetsnbextension { };
+ wiffi = callPackage ../development/python-modules/wiffi { };
+
willow = callPackage ../development/python-modules/willow { };
winacl = callPackage ../development/python-modules/winacl { };