Merge master into haskell-updates

This commit is contained in:
github-actions[bot] 2021-09-26 00:07:13 +00:00 committed by GitHub
commit 3fc911506a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
37 changed files with 702 additions and 51 deletions

View file

@ -116,6 +116,13 @@
<link xlink:href="options.html#opt-services.kea">services.kea</link>.
</para>
</listitem>
<listitem>
<para>
<link xlink:href="https://owncast.online/">owncast</link>,
self-hosted video live streaming solution. Available at
<link xlink:href="options.html#opt-services.owncast">services.owncast</link>.
</para>
</listitem>
<listitem>
<para>
<link xlink:href="https://sr.ht">sourcehut</link>, a

View file

@ -39,6 +39,8 @@ In addition to numerous new and upgraded packages, this release has the followin
- [Kea](https://www.isc.org/kea/), ISCs 2nd generation DHCP and DDNS server suite. Available at [services.kea](options.html#opt-services.kea).
- [owncast](https://owncast.online/), self-hosted video live streaming solution. Available at [services.owncast](options.html#opt-services.owncast).
- [sourcehut](https://sr.ht), a collection of tools useful for software development. Available as [services.sourcehut](options.html#opt-services.sourcehut.enable).
- [ucarp](https://download.pureftpd.org/pub/ucarp/README), an userspace implementation of the Common Address Redundancy Protocol (CARP). Available as [networking.ucarp](options.html#opt-networking.ucarp.enable).

View file

@ -560,6 +560,7 @@
./services/misc/octoprint.nix
./services/misc/ombi.nix
./services/misc/osrm.nix
./services/misc/owncast.nix
./services/misc/packagekit.nix
./services/misc/paperless-ng.nix
./services/misc/parsoid.nix

View file

@ -0,0 +1,98 @@
{ lib, pkgs, config, ... }:
with lib;
let cfg = config.services.owncast;
in {
options.services.owncast = {
enable = mkEnableOption "owncast";
dataDir = mkOption {
type = types.str;
default = "/var/lib/owncast";
description = ''
The directory where owncast stores its data files. If left as the default value this directory will automatically be created before the owncast server starts, otherwise the sysadmin is responsible for ensuring the directory exists with appropriate ownership and permissions.
'';
};
openFirewall = mkOption {
type = types.bool;
default = false;
description = ''
Open the appropriate ports in the firewall for owncast.
'';
};
user = mkOption {
type = types.str;
default = "owncast";
description = "User account under which owncast runs.";
};
group = mkOption {
type = types.str;
default = "owncast";
description = "Group under which owncast runs.";
};
listen = mkOption {
type = types.str;
default = "127.0.0.1";
example = "0.0.0.0";
description = "The IP address to bind the owncast web server to.";
};
port = mkOption {
type = types.port;
default = 8080;
description = ''
TCP port where owncast web-gui listens.
'';
};
rtmp-port = mkOption {
type = types.port;
default = 1935;
description = ''
TCP port where owncast rtmp service listens.
'';
};
};
config = mkIf cfg.enable {
systemd.services.owncast = {
description = "A self-hosted live video and web chat server";
wantedBy = [ "multi-user.target" ];
serviceConfig = mkMerge [
{
User = cfg.user;
Group = cfg.group;
WorkingDirectory = cfg.dataDir;
ExecStart = "${pkgs.owncast}/bin/owncast -webserverport ${toString cfg.port} -rtmpport ${toString cfg.rtmp-port} -webserverip ${cfg.listen}";
Restart = "on-failure";
}
(mkIf (cfg.dataDir == "/var/lib/owncast") {
StateDirectory = "owncast";
})
];
};
users.users = mkIf (cfg.user == "owncast") {
owncast = {
isSystemUser = true;
group = cfg.group;
description = "owncast system user";
};
};
users.groups = mkIf (cfg.group == "owncast") { owncast = { }; };
networking.firewall =
mkIf cfg.openFirewall { allowedTCPPorts = [ cfg.rtmp-port ] ++ optional (cfg.listen != "127.0.0.1") cfg.port; };
};
meta = { maintainers = with lib.maintainers; [ MayNiklas ]; };
}

View file

@ -327,6 +327,7 @@ in
openstack-image-metadata = (handleTestOn ["x86_64-linux"] ./openstack-image.nix {}).metadata or {};
openstack-image-userdata = (handleTestOn ["x86_64-linux"] ./openstack-image.nix {}).userdata or {};
opentabletdriver = handleTest ./opentabletdriver.nix {};
owncast = handleTest ./owncast.nix {};
image-contents = handleTest ./image-contents.nix {};
orangefs = handleTest ./orangefs.nix {};
os-prober = handleTestOn ["x86_64-linux"] ./os-prober.nix {};

21
nixos/tests/owncast.nix Normal file
View file

@ -0,0 +1,21 @@
{ system ? builtins.currentSystem, config ? { }
, pkgs ? import ../.. { inherit system config; } }:
with import (nixpkgs + "/nixos/lib/testing-python.nix") { inherit system; };
makeTest {
name = "owncast";
meta = with pkgs.stdenv.lib.maintainers; { maintainers = [ MayNiklas ]; };
nodes = {
client = { ... }: {
environment.systemPackages = [ curl ];
services.owncast = { enable = true; };
};
};
testScript = ''
start_all()
client.wait_for_unit("owncast.service")
client.succeed("curl localhost:8080/api/status")
'';
}

View file

@ -2,23 +2,19 @@
rustPlatform.buildRustPackage rec {
pname = "joshuto";
version = "0.9.0";
version = "0.9.1";
src = fetchFromGitHub {
owner = "kamiyaa";
repo = pname;
rev = version;
sha256 = "08d6h7xwcgycw5bdzwwc6aaikcrw3yc7inkiydgml9q261kql7zl";
# upstream includes an outdated Cargo.lock that stops cargo from compiling
postFetch = ''
mkdir -p $out
tar xf $downloadedFile --strip=1 -C $out
substituteInPlace $out/Cargo.lock \
--replace 0.8.6 ${version}
'';
sha256 = "sha256-+qKOvFoEF/gZL4ijL8lIRWE9ZWJM2eBlk29Lk46jAfQ=";
};
cargoSha256 = "1scrqm7fs8y7anfiigimj7y5rjxcc2qvrxiq8ai7k5cwfc4v1ghm";
# upstream includes an outdated Cargo.lock that stops cargo from compiling
cargoPatches = [ ./fix-cargo-lock.patch ];
cargoSha256 = "sha256-JlekxU9pMkHNsIcH3+7b2I6MYUlxRqNX+0wwyVrQMAE=";
buildInputs = lib.optional stdenv.isDarwin SystemConfiguration;

View file

@ -0,0 +1,11 @@
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -512,7 +512,7 @@ checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4"
[[package]]
name = "joshuto"
-version = "0.9.0"
+version = "0.9.1"
dependencies = [
"alphanumeric-sort",
"chrono",

View file

@ -6,6 +6,6 @@
callPackage ./generic.nix {
inherit buildGoPackage nvidia_x11 nvidiaGpuSupport;
version = "1.0.10";
sha256 = "1yd4j35dmxzg9qapqyq3g3hnhxi5c4f57q43xbim8255bjyn94f0";
version = "1.0.11";
sha256 = "15h7w020p576zl91s5mr4npcmngrqqfj9xzlx6bk9i1cp6h4w0jy";
}

View file

@ -6,7 +6,7 @@
callPackage ./genericModule.nix {
inherit buildGoModule nvidia_x11 nvidiaGpuSupport;
version = "1.1.4";
sha256 = "182f3sxw751s8qg16vbssplhl92i9gshgzvflwwvnxraz2795y7l";
vendorSha256 = "1nddknnsvb05sapbj1c52cv2fmibvdg48f88malxqblzw33wfziq";
version = "1.1.5";
sha256 = "03gxh12bd5mj1l4q3xilil806dsqaqmz93ff7ysf441frgkx3iy3";
vendorSha256 = "0rfd22rf76mwj489zhswah4g3dhhz6davm336xgm9dbnyaz9d8r0";
}

View file

@ -2,12 +2,12 @@
mkDerivation rec {
pname = "chatterino2";
version = "2.3.0";
version = "2.3.4";
src = fetchFromGitHub {
owner = "Chatterino";
repo = pname;
rev = "v${version}";
sha256 = "0x12zcrbkxn2nn0hqkj1amrxv4q032id282cajzsx7by970r1shd";
sha256 = "sha256-ZmUM56+YNH98J3XE/mWOOIfb0qBld2n4iuHpImbrU4o=";
fetchSubmodules = true;
};
nativeBuildInputs = [ qmake pkg-config wrapQtAppsHook ];

View file

@ -91,7 +91,11 @@ stdenv.mkDerivation rec {
inherit (python.sourceVersion) major minor; # Should be changed in case of PyPy
});
postPatch = lib.optionalString (cudaSupport && lib.versionAtLeast cudatoolkit.version "9.0") ''
postPatch = ''
substituteInPlace src/caffe/util/io.cpp --replace \
'SetTotalBytesLimit(kProtoReadBytesLimit, 536870912)' \
'SetTotalBytesLimit(kProtoReadBytesLimit)'
'' + lib.optionalString (cudaSupport && lib.versionAtLeast cudatoolkit.version "9.0") ''
# CUDA 9.0 doesn't support sm_20
sed -i 's,20 21(20) ,,' cmake/Cuda.cmake
'';

View file

@ -1,4 +1,5 @@
{ lib, stdenv, fetchgit, fetchFromGitHub, cmake
, fetchpatch
, openblas, blas, lapack, opencv3, libzip, boost, protobuf, mpi
, onebitSGDSupport ? false
, cudaSupport ? false, addOpenGLRunpath, cudatoolkit, nvidia_x11
@ -28,6 +29,26 @@ in stdenv.mkDerivation rec {
sha256 = "18l9k7s966a26ywcf7flqyhm61788pcb9fj3wk61jrmgkhy2pcns";
};
patches = [
# Fix build with protobuf 3.18+
# Remove with onnx submodule bump to 1.9+
(fetchpatch {
url = "https://github.com/onnx/onnx/commit/d3bc82770474761571f950347560d62a35d519d7.patch";
extraPrefix = "Source/CNTKv2LibraryDll/proto/onnx/onnx_repo/";
stripLen = 1;
sha256 = "00raqj8wx30b06ky6cdp5vvc1mrzs7hglyi6h58hchw5lhrwkzxp";
})
];
postPatch = ''
# Fix build with protobuf 3.18+
substituteInPlace Source/CNTKv2LibraryDll/Serialization.cpp \
--replace 'SetTotalBytesLimit(INT_MAX, INT_MAX)' \
'SetTotalBytesLimit(INT_MAX)' \
--replace 'SetTotalBytesLimit(limit, limit)' \
'SetTotalBytesLimit(limit)'
'';
nativeBuildInputs = [ cmake ] ++ lib.optional cudaSupport addOpenGLRunpath;
# Force OpenMPI to use g++ in PATH.

View file

@ -1,9 +1,6 @@
import ./generic.nix {
major_version = "4";
minor_version = "13";
patch_version = "0-rc2";
src = fetchTarball {
url = "https://caml.inria.fr/pub/distrib/ocaml-4.13/ocaml-4.13.0~rc2.tar.xz";
sha256 = "1w4sdrs5s1bhbisgz44ysi2j1n13qd3slgs34ppglpwmqqw6ply2";
};
patch_version = "0";
sha256 = "sha256:1f7gnndzs6qcyy2gnzalnhm808pifxhvxg2qp5dnsziz6li7x303";
}

View file

@ -8,6 +8,7 @@
, libGL
, libGLU
, libjpeg
, xorg
, ncurses
, libpng, libtool, mpfr, openssl, pango, poppler
, readline, sqlite
@ -96,6 +97,9 @@ stdenv.mkDerivation rec {
enableParallelBuilding = false;
postFixup = lib.optionalString stdenv.isDarwin ''
wrapProgram $out/bin/drracket --prefix DYLD_LIBRARY_PATH : ${xorg.libX11}/lib
'';
meta = with lib; {
description = "A programmable programming language";
@ -112,6 +116,5 @@ stdenv.mkDerivation rec {
license = with licenses; [ asl20 /* or */ mit ];
maintainers = with maintainers; [ kkallio henrytill vrthra ];
platforms = [ "x86_64-darwin" "x86_64-linux" "aarch64-linux" ];
broken = stdenv.isDarwin; # No support yet for setting FFI lookup path
};
}

View file

@ -3,6 +3,7 @@
, autoPatchelfHook
, stdenv
, fetchFromGitHub
, fetchpatch
, cmake
, git
, protobuf
@ -10,17 +11,29 @@
, opencv
, unzip
, shellcheck
, srcOnly
, python
, enablePython ? false
}:
let
onnx_src = fetchFromGitHub {
owner = "onnx";
repo = "onnx";
rev = "v1.8.1";
sha256 = "+1zNnZ4lAyVYRptfk0PV7koIX9FqcfD1Ah33qj/G2rA=";
onnx_src = srcOnly {
name = "onnx-patched";
src = fetchFromGitHub {
owner = "onnx";
repo = "onnx";
rev = "v1.8.1";
sha256 = "+1zNnZ4lAyVYRptfk0PV7koIX9FqcfD1Ah33qj/G2rA=";
};
patches = [
# Fix build with protobuf 3.18+
# Remove with onnx 1.9 release
(fetchpatch {
url = "https://github.com/onnx/onnx/commit/d3bc82770474761571f950347560d62a35d519d7.patch";
sha256 = "0vdsrklkzhdjaj8wdsl4icn93q3961g8dx35zvff0nhpr08wjb7y";
})
];
};
in

View file

@ -14,6 +14,15 @@ stdenv.mkDerivation rec {
fetchSubmodules = true;
};
# https://github.com/valhalla/valhalla/issues/2119
postPatch = ''
for f in valhalla/mjolnir/transitpbf.h \
src/mjolnir/valhalla_query_transit.cc; do
substituteInPlace $f --replace 'SetTotalBytesLimit(limit, limit)' \
'SetTotalBytesLimit(limit)'
done
'';
nativeBuildInputs = [ cmake pkg-config ];
buildInputs = [
zlib curl protobuf prime-server boost sqlite libspatialite

View file

@ -0,0 +1,39 @@
{ lib
, aiohttp
, async-timeout
, buildPythonPackage
, fetchPypi
, pytestCheckHook
, pythonOlder
}:
buildPythonPackage rec {
pname = "aiopvapi";
version = "1.6.14";
format = "setuptools";
disabled = pythonOlder "3.5";
src = fetchPypi {
inherit pname version;
sha256 = "02bl7q166j6rb8av9n1jz11xlwhrzmbkjq70mwr86qaj63pcxrak";
};
propagatedBuildInputs = [
aiohttp
async-timeout
];
checkInputs = [
pytestCheckHook
];
pythonImportsCheck = [ "aiopvapi" ];
meta = with lib; {
description = "Python API for the PowerView API";
homepage = "https://github.com/sander76/aio-powerview-api";
license = with licenses; [ bsd3 ];
maintainers = with maintainers; [ fab ];
};
}

View file

@ -0,0 +1,53 @@
{ lib
, aiohttp
, aresponses
, buildPythonPackage
, fetchFromGitHub
, poetry-core
, pytest-aiohttp
, pytest-asyncio
, pytestCheckHook
, pythonOlder
}:
buildPythonPackage rec {
pname = "aiowatttime";
version = "0.1.1";
format = "pyproject";
disabled = pythonOlder "3.8";
src = fetchFromGitHub {
owner = "bachya";
repo = pname;
rev = version;
sha256 = "1614p5ca7x9ipz7dgwhiz83dfwn6hyliawa8pr2j9y2kn8cg2sdm";
};
nativeBuildInputs = [
poetry-core
];
propagatedBuildInputs = [
aiohttp
];
checkInputs = [
aresponses
pytest-aiohttp
pytest-asyncio
pytestCheckHook
];
# Ignore the examples directory as the files are prefixed with test_
disabledTestPaths = [ "examples/" ];
pythonImportsCheck = [ "aiowatttime" ];
meta = with lib; {
description = "Python library for interacting with WattTime";
homepage = "https://github.com/bachya/aiowatttime";
license = with licenses; [ mit ];
maintainers = with maintainers; [ fab ];
};
}

View file

@ -0,0 +1,39 @@
{ lib
, aiohttp
, attrs
, buildPythonPackage
, fetchFromGitHub
, pythonOlder
}:
buildPythonPackage rec {
pname = "eternalegypt";
version = "0.0.13";
format = "setuptools";
disabled = pythonOlder "3.8";
src = fetchFromGitHub {
owner = "amelchio";
repo = pname;
rev = "v${version}";
sha256 = "0wi2cqd81irqm873npkqg3mvdrb57idqdsp8qw8h0s7lk0kil1wi";
};
propagatedBuildInputs = [
aiohttp
attrs
];
# Project has no tests
doCheck = false;
pythonImportsCheck = [ "eternalegypt" ];
meta = with lib; {
description = "Python API for Netgear LTE modems";
homepage = "https://github.com/amelchio/eternalegypt";
license = with licenses; [ mit ];
maintainers = with maintainers; [ fab ];
};
}

View file

@ -0,0 +1,36 @@
{ lib
, buildPythonPackage
, fetchPypi
, httpx
, pythonOlder
}:
buildPythonPackage rec {
pname = "iotawattpy";
version = "0.1.0";
format = "setuptools";
disabled = pythonOlder "3.8";
src = fetchPypi {
inherit pname version;
sha256 = "1pyxm87lvd6zy0rx7r9jivk2li267r3xr0b9p6vf0v0vp9fmgsw3";
};
propagatedBuildInputs = [
httpx
];
# Project doesn't tag releases or ship the tests with PyPI
# https://github.com/gtdiehl/iotawattpy/issues/14
doCheck = false;
pythonImportsCheck = [ "iotawattpy" ];
meta = with lib; {
description = "Python interface for the IoTaWatt device";
homepage = "https://github.com/gtdiehl/iotawattpy";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ fab ];
};
}

View file

@ -0,0 +1,45 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, marshmallow
, marshmallow-enum
, pytestCheckHook
, pythonOlder
, typeguard
, typing-inspect
}:
buildPythonPackage rec {
pname = "marshmallow-dataclass";
version = "8.5.3";
format = "setuptools";
disabled = pythonOlder "3.6";
src = fetchFromGitHub {
owner = "lovasoa";
repo = "marshmallow_dataclass";
rev = "v${version}";
sha256 = "0mngkjfs2nxxr0y77n429hb22rmjxbnn95j4vwqr9y6q16bqxs0w";
};
propagatedBuildInputs = [
marshmallow
typing-inspect
];
checkInputs = [
marshmallow-enum
pytestCheckHook
typeguard
];
pythonImportsCheck = [ "marshmallow_dataclass" ];
meta = with lib; {
description = "Automatic generation of marshmallow schemas from dataclasses";
homepage = "https://github.com/lovasoa/marshmallow_dataclass";
license = with licenses; [ mit ];
maintainers = with maintainers; [ fab ];
};
}

View file

@ -0,0 +1,45 @@
{ lib
, aiohttp
, aresponses
, buildPythonPackage
, fetchFromGitHub
, poetry-core
, pythonOlder
, yarl
}:
buildPythonPackage rec {
pname = "p1monitor";
version = "1.0.0";
format = "pyproject";
disabled = pythonOlder "3.8";
src = fetchFromGitHub {
owner = "klaasnicolaas";
repo = "python-p1monitor";
rev = "v${version}";
sha256 = "1xfr097hmjppp6cfdvfjypxmr1sb9dasq1s3np2vd5d93w0p5123";
};
nativeBuildInputs = [
poetry-core
];
propagatedBuildInputs = [
aiohttp
yarl
];
# Project has no tests
doCheck = false;
pythonImportsCheck = [ "p1monitor" ];
meta = with lib; {
description = "Python client for the P1 Monitor";
homepage = "https://github.com/klaasnicolaas/python-p1monitor";
license = with licenses; [ mit ];
maintainers = with maintainers; [ fab ];
};
}

View file

@ -8,14 +8,14 @@
buildPythonPackage rec {
pname = "pyupgrade";
version = "2.26.0";
version = "2.27.0";
disabled = pythonOlder "3.6";
src = fetchFromGitHub {
owner = "asottile";
repo = pname;
rev = "v${version}";
sha256 = "sha256-fXDBozMZbvMkdqafvPQrCI26OjQ/2Rx6OMQs9X2Q55s=";
sha256 = "1j14m4mdvpq740bxz3mhs5k02jfp425xig4yb13drx37p4yyl9zn";
};
checkInputs = [ pytestCheckHook ];

View file

@ -0,0 +1,68 @@
{ lib
, aiohttp
, aioresponses
, buildPythonPackage
, click
, dateparser
, fetchFromGitHub
, fetchpatch
, marshmallow-dataclass
, poetry-core
, pyjwt
, pythonOlder
, pytest-asyncio
, pytestCheckHook
, tabulate
}:
buildPythonPackage rec {
pname = "renault-api";
version = "0.1.4";
format = "pyproject";
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "hacf-fr";
repo = pname;
rev = "v${version}";
sha256 = "049kh63yk0r0falqbl5akcwgzqjrkqqhf9y537rrlzc85ihf28b8";
};
nativeBuildInputs = [
poetry-core
];
propagatedBuildInputs = [
aiohttp
click
dateparser
marshmallow-dataclass
pyjwt
tabulate
];
checkInputs = [
aioresponses
pytest-asyncio
pytestCheckHook
];
patches = [
# Switch to poetry-core, https://github.com/hacf-fr/renault-api/pull/371
(fetchpatch {
name = "switch-to-poetry-core.patch";
url = "https://github.com/hacf-fr/renault-api/commit/5457a612b9ff9f323e8449cbe9dbce465bd65a79.patch";
sha256 = "0ds9m4j2qpv0nyg9p8dk9klnarl8wckwclddgnii6h47qci362yy";
})
];
pythonImportsCheck = [ "renault_api" ];
meta = with lib; {
description = "Python library to interact with the Renault API";
homepage = "https://github.com/hacf-fr/renault-api";
license = licenses.mit;
maintainers = with maintainers; [ fab ];
};
}

View file

@ -0,0 +1,37 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, pythonOlder
, requests
}:
buildPythonPackage rec {
pname = "streamlabswater";
version = "0.3.2";
format = "setuptools";
disabled = pythonOlder "3.6";
src = fetchFromGitHub {
owner = pname;
repo = "stream-python";
rev = "v${version}";
sha256 = "1lh1i1ksic9yhxnwc7mqm5qla98x85dfwj846kwldwam0vcrqlk7";
};
propagatedBuildInputs = [
requests
];
# Project has no tests
doCheck = false;
pythonImportsCheck = [ "streamlabswater" ];
meta = with lib; {
description = "Python library for the StreamLabs API";
homepage = "https://github.com/streamlabswater/stream-python";
license = with licenses; [ mit ];
maintainers = with maintainers; [ fab ];
};
}

View file

@ -1,15 +1,34 @@
{ lib, fetchPypi, buildPythonPackage, pythonAtLeast, intervaltree, pyflakes, requests, lxml, google-i18n-address
, pycountry, html5lib, six, kitchen, pypdf2, dict2xml, weasyprint, pyyaml, jinja2, configargparse, appdirs
{ lib
, fetchPypi
, buildPythonPackage
, pythonOlder
, intervaltree
, pyflakes
, requests
, lxml
, google-i18n-address
, pycountry
, html5lib
, six
, kitchen
, pypdf2
, dict2xml
, weasyprint
, pyyaml
, jinja2
, configargparse
, appdirs
}:
buildPythonPackage rec {
pname = "xml2rfc";
version = "3.9.1";
disabled = pythonAtLeast "3.9";
version = "3.10.0";
disabled = pythonOlder "3.6";
src = fetchPypi {
inherit pname version;
sha256 = "76cee167e81fc3cc0e0cc696fe58cadd039e19a774c8f4d2e5c0fea724c7aaca";
sha256 = "sha256-DJjGQAYFhXjAiJhWzxpQ0jRUSrnsNCcNz1KfPEjBoKE=";
};
propagatedBuildInputs = [
@ -31,12 +50,18 @@ buildPythonPackage rec {
appdirs
];
postPatch = ''
substituteInPlace requirements.txt \
--replace "jinja2>=2.11,<3.0" "jinja2>=2.11"
'';
preCheck = ''
export HOME=$(mktemp -d)
'';
# lxml tries to fetch from the internet
doCheck = false;
pythonImportsCheck = [ "xml2rfc" ];
meta = with lib; {

View file

@ -7,13 +7,13 @@
buildPythonPackage rec {
pname = "ytmusicapi";
version = "0.19.2";
version = "0.19.3";
disabled = isPy27;
src = fetchPypi {
inherit pname version;
sha256 = "sha256-Vmf3eZpeRPDYWy6fc8VRYsQZJrwwX3KTs0njfPy6HRE=";
sha256 = "dfd0271f7177173cea9c255730151a10a2fe4a32f9accd2fe31e7645936c90c5";
};
propagatedBuildInputs = [

View file

@ -11,13 +11,13 @@
mkDerivation rec {
pname = "cutter";
version = "2.0.2";
version = "2.0.3";
src = fetchFromGitHub {
owner = "rizinorg";
repo = "cutter";
rev = "v${version}";
sha256 = "sha256-CVVUXx6wt9vH3B7NrrlRGnOIrhXQPjV7GmX3O+KtMSM=";
sha256 = "sha256-OC04d3j8Dfsob1dUjNBc1pSQFxJlexzWJ4v0V3QNkno=";
fetchSubmodules = true;
};

View file

@ -23,11 +23,11 @@
stdenv.mkDerivation rec {
pname = "rizin";
version = "0.2.1";
version = "0.3.0";
src = fetchurl {
url = "https://github.com/rizinorg/rizin/releases/download/v${version}/rizin-src-v${version}.tar.xz";
sha256 = "sha256-lxVsPI+qLenZ0pelvxtHlQ6fhWdQeqoEEHrUGZ5Rdmg=";
sha256 = "sha256-+XW12VIaRfRkLc3Li6ItF4VQfWLNRvxZW2VGtxVYJxY=";
};
mesonFlags = [

View file

@ -27,12 +27,12 @@
stdenv.mkDerivation rec {
pname = "rabbitmq-server";
version = "3.9.4";
version = "3.9.6";
# when updating, consider bumping elixir version in all-packages.nix
src = fetchurl {
url = "https://github.com/rabbitmq/rabbitmq-server/releases/download/v${version}/${pname}-${version}.tar.xz";
sha256 = "sha256-L2ftgdk7QmWl3iQR52G4SwZyI4NURybVMQ1WtcHPvHE=";
sha256 = "sha256-YCVOMVsbOMczpZi02Ywd6M+AXrd5AMweCYn1WcyRHSw=";
};
nativeBuildInputs = [ unzip xmlto docbook_xml_dtd_45 docbook_xsl zip rsync ];

View file

@ -380,7 +380,7 @@
"hue" = ps: with ps; [ aiohue ];
"huisbaasje" = ps: with ps; [ huisbaasje-client ];
"humidifier" = ps: with ps; [ ];
"hunterdouglas_powerview" = ps: with ps; [ ]; # missing inputs: aiopvapi
"hunterdouglas_powerview" = ps: with ps; [ aiopvapi ];
"hvv_departures" = ps: with ps; [ pygti ];
"hydrawise" = ps: with ps; [ hydrawiser ];
"hyperion" = ps: with ps; [ hyperion-py ];
@ -411,7 +411,7 @@
"intesishome" = ps: with ps; [ pyintesishome ];
"ios" = ps: with ps; [ aiohttp-cors ifaddr zeroconf ];
"iota" = ps: with ps; [ ]; # missing inputs: pyota
"iotawatt" = ps: with ps; [ ]; # missing inputs: iotawattpy
"iotawatt" = ps: with ps; [ iotawattpy ];
"iperf3" = ps: with ps; [ ]; # missing inputs: iperf3
"ipma" = ps: with ps; [ pyipma ];
"ipp" = ps: with ps; [ pyipp ];
@ -564,7 +564,7 @@
"netatmo" = ps: with ps; [ pyturbojpeg aiohttp-cors hass-nabucasa pyatmo ];
"netdata" = ps: with ps; [ netdata ];
"netgear" = ps: with ps; [ ]; # missing inputs: pynetgear
"netgear_lte" = ps: with ps; [ ]; # missing inputs: eternalegypt
"netgear_lte" = ps: with ps; [ eternalegypt ];
"netio" = ps: with ps; [ aiohttp-cors ]; # missing inputs: pynetio
"network" = ps: with ps; [ aiohttp-cors ifaddr ];
"neurio_energy" = ps: with ps; [ ]; # missing inputs: neurio
@ -630,7 +630,7 @@
"ovo_energy" = ps: with ps; [ ovoenergy ];
"owntracks" = ps: with ps; [ pynacl pyturbojpeg aiohttp-cors hass-nabucasa paho-mqtt ];
"ozw" = ps: with ps; [ aiohttp-cors paho-mqtt python-openzwave-mqtt ];
"p1_monitor" = ps: with ps; [ ]; # missing inputs: p1monitor
"p1_monitor" = ps: with ps; [ p1monitor ];
"panasonic_bluray" = ps: with ps; [ ]; # missing inputs: panacotta
"panasonic_viera" = ps: with ps; [ ]; # missing inputs: panasonic_viera
"pandora" = ps: with ps; [ pexpect ];
@ -703,7 +703,7 @@
"remember_the_milk" = ps: with ps; [ httplib2 ]; # missing inputs: RtmAPI
"remote" = ps: with ps; [ ];
"remote_rpi_gpio" = ps: with ps; [ ]; # missing inputs: gpiozero
"renault" = ps: with ps; [ ]; # missing inputs: renault-api
"renault" = ps: with ps; [ renault-api ];
"repetier" = ps: with ps; [ ]; # missing inputs: pyrepetier
"rest" = ps: with ps; [ jsonpath xmltodict ];
"rest_command" = ps: with ps; [ ];
@ -824,7 +824,7 @@
"stiebel_eltron" = ps: with ps; [ pymodbus ]; # missing inputs: pystiebeleltron
"stookalert" = ps: with ps; [ ]; # missing inputs: stookalert
"stream" = ps: with ps; [ aiohttp-cors av ];
"streamlabswater" = ps: with ps; [ ]; # missing inputs: streamlabswater
"streamlabswater" = ps: with ps; [ streamlabswater ];
"stt" = ps: with ps; [ aiohttp-cors ];
"subaru" = ps: with ps; [ subarulink ];
"suez_water" = ps: with ps; [ ]; # missing inputs: pysuez

View file

@ -430,6 +430,7 @@ in with py.pkgs; buildPythonApplication rec {
"hue"
"huisbaasje"
"humidifier"
"hunterdouglas_powerview"
"hvv_departures"
"hyperion"
"ialarm"
@ -545,6 +546,7 @@ in with py.pkgs; buildPythonApplication rec {
"ovo_energy"
"owntracks"
"ozw"
"p1_monitor"
"panel_custom"
"panel_iframe"
"persistent_notification"
@ -575,6 +577,7 @@ in with py.pkgs; buildPythonApplication rec {
"recorder"
"reddit"
"remote"
"renault"
"rest"
"rest_command"
"rflink"

View file

@ -0,0 +1,59 @@
{ lib, buildGoModule, fetchFromGitHub, nixosTests, bash, which, ffmpeg, makeWrapper, coreutils, ... }:
buildGoModule rec {
pname = "owncast";
version = "0.0.8";
src = fetchFromGitHub {
owner = "owncast";
repo = "owncast";
rev = "v${version}";
sha256 = "0md4iafa767yxkwh6z8zpcjv9zd79ql2wapx9vzyd973ksvrdaw2";
};
vendorSha256 = "sha256-bH2CWIgpOS974/P98n0R9ebGTJ0YoqPlH8UmxSYNHeM=";
propagatedBuildInputs = [ ffmpeg ];
buildInputs = [ makeWrapper ];
preInstall = ''
mkdir -p $out
cp -r $src/{static,webroot} $out
'';
postInstall = let
setupScript = ''
[ ! -d "$PWD/webroot" ] && (
${coreutils}/bin/cp --no-preserve=mode -r "${placeholder "out"}/webroot" "$PWD"
)
[ ! -d "$PWD/static" ] && (
${coreutils}/bin/ln -s "${placeholder "out"}/static" "$PWD"
)
'';
in ''
wrapProgram $out/bin/owncast \
--run '${setupScript}' \
--prefix PATH : ${lib.makeBinPath [ bash which ffmpeg ]}
'';
installCheckPhase = ''
runHook preCheck
$out/bin/owncast --help
runHook postCheck
'';
passthru.tests.owncast = nixosTests.testOwncast;
meta = with lib; {
description = "self-hosted video live streaming solution";
homepage = "https://owncast.online";
license = licenses.mit;
platforms = platforms.unix;
maintainers = with maintainers; [ MayNiklas ];
};
}

View file

@ -7966,6 +7966,8 @@ with pkgs;
operator-sdk = callPackage ../development/tools/operator-sdk { };
owncast = callPackage ../servers/owncast { };
update-dotdee = with python3Packages; toPythonApplication update-dotdee;
update-nix-fetchgit = haskell.lib.justStaticExecutables haskellPackages.update-nix-fetchgit;

View file

@ -1601,7 +1601,7 @@ in let inherit (pkgs) callPackage; in rec
ocamlPackages_4_13 = mkOcamlPackages (callPackage ../development/compilers/ocaml/4.13.nix { });
ocamlPackages_latest = ocamlPackages_4_12;
ocamlPackages_latest = ocamlPackages_4_13;
ocamlPackages = ocamlPackages_4_12;
}

View file

@ -351,6 +351,8 @@ in {
aiopulse = callPackage ../development/python-modules/aiopulse { };
aiopvapi = callPackage ../development/python-modules/aiopvapi { };
aiopvpc = callPackage ../development/python-modules/aiopvpc { };
aiopylgtv = callPackage ../development/python-modules/aiopylgtv { };
@ -387,6 +389,8 @@ in {
aiounittest = callPackage ../development/python-modules/aiounittest { };
aiowatttime = callPackage ../development/python-modules/aiowatttime { };
aiowinreg = callPackage ../development/python-modules/aiowinreg { };
aioymaps = callPackage ../development/python-modules/aioymaps { };
@ -2412,6 +2416,8 @@ in {
etebase-server = callPackage ../servers/etebase { };
eternalegypt = callPackage ../development/python-modules/eternalegypt { };
etesync = callPackage ../development/python-modules/etesync { };
eth-hash = callPackage ../development/python-modules/eth-hash { };
@ -3678,6 +3684,8 @@ in {
iocapture = callPackage ../development/python-modules/iocapture { };
iotawattpy = callPackage ../development/python-modules/iotawattpy { };
iowait = callPackage ../development/python-modules/iowait { };
ipaddress = callPackage ../development/python-modules/ipaddress { };
@ -4466,6 +4474,8 @@ in {
marshmallow = callPackage ../development/python-modules/marshmallow { };
marshmallow-dataclass = callPackage ../development/python-modules/marshmallow-dataclass { };
marshmallow-enum = callPackage ../development/python-modules/marshmallow-enum { };
marshmallow-oneofschema = callPackage ../development/python-modules/marshmallow-oneofschema { };
@ -5239,6 +5249,8 @@ in {
oyaml = callPackage ../development/python-modules/oyaml { };
p1monitor = callPackage ../development/python-modules/p1monitor { };
packageurl-python = callPackage ../development/python-modules/packageurl-python { };
packaging = callPackage ../development/python-modules/packaging { };
@ -7801,6 +7813,8 @@ in {
remarshal = callPackage ../development/python-modules/remarshal { };
renault-api = callPackage ../development/python-modules/renault-api { };
rencode = callPackage ../development/python-modules/rencode { };
reparser = callPackage ../development/python-modules/reparser { };
@ -8669,6 +8683,8 @@ in {
streaming-form-data = callPackage ../development/python-modules/streaming-form-data { };
streamlabswater = callPackage ../development/python-modules/streamlabswater { };
streamz = callPackage ../development/python-modules/streamz { };
strict-rfc3339 = callPackage ../development/python-modules/strict-rfc3339 { };