Merge master into staging-next
This commit is contained in:
commit
2c8fa86436
@ -19,7 +19,7 @@
|
||||
<xi:include href="stdenv/meta.xml" />
|
||||
<xi:include href="stdenv/multiple-output.xml" />
|
||||
<xi:include href="stdenv/cross-compilation.chapter.xml" />
|
||||
<xi:include href="stdenv/platform-notes.xml" />
|
||||
<xi:include href="stdenv/platform-notes.chapter.xml" />
|
||||
</part>
|
||||
<part>
|
||||
<title>Builders</title>
|
||||
|
62
doc/stdenv/platform-notes.chapter.md
Normal file
62
doc/stdenv/platform-notes.chapter.md
Normal file
@ -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.
|
@ -1,83 +0,0 @@
|
||||
<chapter xmlns="http://docbook.org/ns/docbook"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xml:id="chap-platform-notes">
|
||||
<title>Platform Notes</title>
|
||||
<section xml:id="sec-darwin">
|
||||
<title>Darwin (macOS)</title>
|
||||
|
||||
<para>
|
||||
Some common issues when packaging software for Darwin:
|
||||
</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>
|
||||
The Darwin <literal>stdenv</literal> uses clang instead of gcc. When referring to the compiler <varname>$CC</varname> or <command>cc</command> will work in both cases. Some builds hardcode gcc/g++ in their build scripts, that can usually be fixed with using something like <literal>makeFlags = [ "CC=cc" ];</literal> or by patching the build scripts.
|
||||
</para>
|
||||
<programlisting>
|
||||
stdenv.mkDerivation {
|
||||
name = "libfoo-1.2.3";
|
||||
# ...
|
||||
buildPhase = ''
|
||||
$CC -o hello hello.c
|
||||
'';
|
||||
}
|
||||
</programlisting>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
On Darwin, libraries are linked using absolute paths, libraries are resolved by their <literal>install_name</literal> 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 <command>install_name_tool -id</command> during the <function>fixupPhase</function>.
|
||||
</para>
|
||||
<programlisting>
|
||||
stdenv.mkDerivation {
|
||||
name = "libfoo-1.2.3";
|
||||
# ...
|
||||
makeFlags = lib.optional stdenv.isDarwin "LDFLAGS=-Wl,-install_name,$(out)/lib/libfoo.dylib";
|
||||
}
|
||||
</programlisting>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
Even if the libraries are linked using absolute paths and resolved via their <literal>install_name</literal> correctly, tests can sometimes fail to run binaries. This happens because the <varname>checkPhase</varname> runs before the libraries are installed.
|
||||
</para>
|
||||
<para>
|
||||
This can usually be solved by running the tests after the <varname>installPhase</varname> or alternatively by using <varname>DYLD_LIBRARY_PATH</varname>. More information about this variable can be found in the <citerefentry>
|
||||
<refentrytitle>dyld</refentrytitle>
|
||||
<manvolnum>1</manvolnum></citerefentry> manpage.
|
||||
</para>
|
||||
<programlisting>
|
||||
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
|
||||
</programlisting>
|
||||
<programlisting>
|
||||
stdenv.mkDerivation {
|
||||
name = "libfoo-1.2.3";
|
||||
# ...
|
||||
doInstallCheck = true;
|
||||
installCheckTarget = "check";
|
||||
}
|
||||
</programlisting>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
Some packages assume xcode is available and use <command>xcrun</command> to resolve build tools like <command>clang</command>, etc. This causes errors like <code>xcode-select: error: no developer tools were found at '/Applications/Xcode.app'</code> while the build doesn't actually depend on xcode.
|
||||
</para>
|
||||
<programlisting>
|
||||
stdenv.mkDerivation {
|
||||
name = "libfoo-1.2.3";
|
||||
# ...
|
||||
prePatch = ''
|
||||
substituteInPlace Makefile \
|
||||
--replace '/usr/bin/xcrun clang' clang
|
||||
'';
|
||||
}
|
||||
</programlisting>
|
||||
<para>
|
||||
The package <literal>xcbuild</literal> 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.
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</section>
|
||||
</chapter>
|
@ -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 {};
|
||||
|
34
nixos/tests/keepassxc.nix
Normal file
34
nixos/tests/keepassxc.nix
Normal file
@ -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")
|
||||
'';
|
||||
})
|
@ -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 ];
|
||||
|
@ -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).";
|
||||
|
@ -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; {
|
||||
|
@ -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 = [
|
||||
|
@ -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";
|
||||
};
|
||||
|
||||
|
@ -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 = {
|
||||
|
@ -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";
|
||||
|
@ -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 = [
|
||||
|
@ -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 ];
|
||||
|
@ -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 ];
|
||||
};
|
||||
}
|
||||
|
32
pkgs/development/python-modules/pyalmond/default.nix
Normal file
32
pkgs/development/python-modules/pyalmond/default.nix
Normal file
@ -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 ];
|
||||
};
|
||||
}
|
45
pkgs/development/python-modules/pyflume/default.nix
Normal file
45
pkgs/development/python-modules/pyflume/default.nix
Normal file
@ -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 ];
|
||||
};
|
||||
}
|
30
pkgs/development/python-modules/pymitv/default.nix
Normal file
30
pkgs/development/python-modules/pymitv/default.nix
Normal file
@ -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 ];
|
||||
};
|
||||
}
|
@ -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 ];
|
||||
};
|
||||
}
|
32
pkgs/development/python-modules/pyvolumio/default.nix
Normal file
32
pkgs/development/python-modules/pyvolumio/default.nix
Normal file
@ -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 ];
|
||||
};
|
||||
}
|
34
pkgs/development/python-modules/ratelimit/default.nix
Normal file
34
pkgs/development/python-modules/ratelimit/default.nix
Normal file
@ -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 ];
|
||||
};
|
||||
}
|
30
pkgs/development/python-modules/tahoma-api/default.nix
Normal file
30
pkgs/development/python-modules/tahoma-api/default.nix
Normal file
@ -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 ];
|
||||
};
|
||||
}
|
30
pkgs/development/python-modules/tuyaha/default.nix
Normal file
30
pkgs/development/python-modules/tuyaha/default.nix
Normal file
@ -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 ];
|
||||
};
|
||||
}
|
32
pkgs/development/python-modules/wiffi/default.nix
Normal file
32
pkgs/development/python-modules/wiffi/default.nix
Normal file
@ -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 ];
|
||||
};
|
||||
}
|
@ -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 = [
|
||||
|
32
pkgs/games/enigma/default.nix
Normal file
32
pkgs/games/enigma/default.nix
Normal file
@ -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/";
|
||||
};
|
||||
}
|
@ -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 ];
|
||||
|
@ -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
|
||||
|
@ -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=";
|
||||
|
@ -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 ];
|
||||
|
||||
|
@ -2263,6 +2263,8 @@ in
|
||||
|
||||
enca = callPackage ../tools/text/enca { };
|
||||
|
||||
enigma = callPackage ../games/enigma {};
|
||||
|
||||
ent = callPackage ../tools/misc/ent { };
|
||||
|
||||
envconsul = callPackage ../tools/system/envconsul { };
|
||||
|
@ -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 { };
|
||||
|
Loading…
Reference in New Issue
Block a user