Merge master into staging-next

This commit is contained in:
github-actions[bot] 2021-07-09 00:01:34 +00:00 committed by GitHub
commit 17a534e48b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
35 changed files with 3152 additions and 2423 deletions

View file

@ -3115,6 +3115,12 @@
githubId = 57923898;
name = "Elyhaka";
};
em0lar = {
email = "nix@em0lar.dev";
github = "em0lar";
githubId = 11006031;
name = "Leo Maroni";
};
emmanuelrosa = {
email = "emmanuel_rosa@aol.com";
github = "emmanuelrosa";

View file

@ -71,6 +71,13 @@
be able to access programmers supported by flashrom.
</para>
</listitem>
<listitem>
<para>
<link xlink:href="https://vikunja.io">vikunja</link>, a to-do
list app. Available as
<link linkend="opt-services.vikunja.enable">services.vikunja</link>.
</para>
</listitem>
</itemizedlist>
</section>
<section xml:id="sec-release-21.11-incompatibilities">

View file

@ -22,6 +22,8 @@ In addition to numerous new and upgraded packages, this release has the followin
- Users of flashrom should migrate to [programs.flashrom.enable](options.html#opt-programs.flashrom.enable) and add themselves to the `flashrom` group to be able to access programmers supported by flashrom.
- [vikunja](https://vikunja.io), a to-do list app. Available as [services.vikunja](#opt-services.vikunja.enable).
## Backward Incompatibilities {#sec-release-21.11-incompatibilities}
- The `staticjinja` package has been upgraded from 1.0.4 to 3.0.1

View file

@ -968,6 +968,7 @@
./services/web-apps/trilium.nix
./services/web-apps/selfoss.nix
./services/web-apps/shiori.nix
./services/web-apps/vikunja.nix
./services/web-apps/virtlyst.nix
./services/web-apps/wiki-js.nix
./services/web-apps/whitebophir.nix

View file

@ -0,0 +1,145 @@
{ pkgs, lib, config, ... }:
with lib;
let
cfg = config.services.vikunja;
format = pkgs.formats.yaml {};
configFile = format.generate "config.yaml" cfg.settings;
useMysql = cfg.database.type == "mysql";
usePostgresql = cfg.database.type == "postgres";
in {
options.services.vikunja = with lib; {
enable = mkEnableOption "vikunja service";
package-api = mkOption {
default = pkgs.vikunja-api;
type = types.package;
defaultText = "pkgs.vikunja-api";
description = "vikunja-api derivation to use.";
};
package-frontend = mkOption {
default = pkgs.vikunja-frontend;
type = types.package;
defaultText = "pkgs.vikunja-frontend";
description = "vikunja-frontend derivation to use.";
};
environmentFiles = mkOption {
type = types.listOf types.path;
default = [ ];
description = ''
List of environment files set in the vikunja systemd service.
For example passwords should be set in one of these files.
'';
};
setupNginx = mkOption {
type = types.bool;
default = config.services.nginx.enable;
defaultText = "config.services.nginx.enable";
description = ''
Whether to setup NGINX.
Further nginx configuration can be done by changing
<option>services.nginx.virtualHosts.&lt;frontendHostname&gt;</option>.
This does not enable TLS or ACME by default. To enable this, set the
<option>services.nginx.virtualHosts.&lt;frontendHostname&gt;.enableACME</option> to
<literal>true</literal> and if appropriate do the same for
<option>services.nginx.virtualHosts.&lt;frontendHostname&gt;.forceSSL</option>.
'';
};
frontendScheme = mkOption {
type = types.enum [ "http" "https" ];
description = ''
Whether the site is available via http or https.
This does not configure https or ACME in nginx!
'';
};
frontendHostname = mkOption {
type = types.str;
description = "The Hostname under which the frontend is running.";
};
settings = mkOption {
type = format.type;
default = {};
description = ''
Vikunja configuration. Refer to
<link xlink:href="https://vikunja.io/docs/config-options/"/>
for details on supported values.
'';
};
database = {
type = mkOption {
type = types.enum [ "sqlite" "mysql" "postgres" ];
example = "postgres";
default = "sqlite";
description = "Database engine to use.";
};
host = mkOption {
type = types.str;
default = "localhost";
description = "Database host address. Can also be a socket.";
};
user = mkOption {
type = types.str;
default = "vikunja";
description = "Database user.";
};
database = mkOption {
type = types.str;
default = "vikunja";
description = "Database name.";
};
path = mkOption {
type = types.str;
default = "/var/lib/vikunja/vikunja.db";
description = "Path to the sqlite3 database file.";
};
};
};
config = lib.mkIf cfg.enable {
services.vikunja.settings = {
database = {
inherit (cfg.database) type host user database path;
};
service = {
frontendurl = "${cfg.frontendScheme}://${cfg.frontendHostname}/";
};
files = {
basepath = "/var/lib/vikunja/files";
};
};
systemd.services.vikunja-api = {
description = "vikunja-api";
after = [ "network.target" ] ++ lib.optional usePostgresql "postgresql.service" ++ lib.optional useMysql "mysql.service";
wantedBy = [ "multi-user.target" ];
path = [ cfg.package-api ];
restartTriggers = [ configFile ];
serviceConfig = {
Type = "simple";
DynamicUser = true;
StateDirectory = "vikunja";
ExecStart = "${cfg.package-api}/bin/vikunja";
Restart = "always";
EnvironmentFile = cfg.environmentFiles;
};
};
services.nginx.virtualHosts."${cfg.frontendHostname}" = mkIf cfg.setupNginx {
locations = {
"/" = {
root = cfg.package-frontend;
tryFiles = "try_files $uri $uri/ /";
};
"~* ^/(api|dav|\\.well-known)/" = {
proxyPass = "http://localhost:3456";
extraConfig = ''
client_max_body_size 20M;
'';
};
};
};
environment.etc."vikunja/config.yaml".source = configFile;
};
}

View file

@ -450,6 +450,7 @@ in
vaultwarden = handleTest ./vaultwarden.nix {};
vector = handleTest ./vector.nix {};
victoriametrics = handleTest ./victoriametrics.nix {};
vikunja = handleTest ./vikunja.nix {};
virtualbox = handleTestOn ["x86_64-linux"] ./virtualbox.nix {};
vscodium = handleTest ./vscodium.nix {};
wasabibackend = handleTest ./wasabibackend.nix {};

65
nixos/tests/vikunja.nix Normal file
View file

@ -0,0 +1,65 @@
import ./make-test-python.nix ({ pkgs, lib, ... }: {
name = "vikunja";
meta = with lib.maintainers; {
maintainers = [ em0lar ];
};
nodes = {
vikunjaSqlite = { ... }: {
services.vikunja = {
enable = true;
database = {
type = "sqlite";
};
frontendScheme = "http";
frontendHostname = "localhost";
};
services.nginx.enable = true;
};
vikunjaPostgresql = { pkgs, ... }: {
services.vikunja = {
enable = true;
database = {
type = "postgres";
user = "vikunja-api";
database = "vikunja-api";
host = "/run/postgresql";
};
frontendScheme = "http";
frontendHostname = "localhost";
};
services.postgresql = {
enable = true;
ensureDatabases = [ "vikunja-api" ];
ensureUsers = [
{ name = "vikunja-api";
ensurePermissions = { "DATABASE \"vikunja-api\"" = "ALL PRIVILEGES"; };
}
];
};
services.nginx.enable = true;
};
};
testScript =
''
vikunjaSqlite.wait_for_unit("vikunja-api.service")
vikunjaSqlite.wait_for_open_port(3456)
vikunjaSqlite.succeed("curl --fail http://localhost:3456/api/v1/info")
vikunjaSqlite.wait_for_unit("nginx.service")
vikunjaSqlite.wait_for_open_port(80)
vikunjaSqlite.succeed("curl --fail http://localhost/api/v1/info")
vikunjaSqlite.succeed("curl --fail http://localhost")
vikunjaPostgresql.wait_for_unit("vikunja-api.service")
vikunjaPostgresql.wait_for_open_port(3456)
vikunjaPostgresql.succeed("curl --fail http://localhost:3456/api/v1/info")
vikunjaPostgresql.wait_for_unit("nginx.service")
vikunjaPostgresql.wait_for_open_port(80)
vikunjaPostgresql.succeed("curl --fail http://localhost/api/v1/info")
vikunjaPostgresql.succeed("curl --fail http://localhost")
'';
})

View file

@ -1,7 +1,7 @@
{ lib, buildGoModule, fetchFromGitHub, fetchzip, installShellFiles }:
let
version = "0.15.3";
version = "0.16.0";
manifests = fetchzip {
url = "https://github.com/fluxcd/flux2/releases/download/v${version}/manifests.tar.gz";
@ -19,10 +19,10 @@ buildGoModule rec {
owner = "fluxcd";
repo = "flux2";
rev = "v${version}";
sha256 = "sha256-Pyt5BaOawBwyBz7ULzOZr0Fc6bqM5dKn775AylUjDVE=";
sha256 = "sha256-r9Tg6aU8aIA87Mw+HFMdPe9uC+3bfGOnuAIrmB1nlRs=";
};
vendorSha256 = "sha256-17Kbun6Mrip4/XHN5eMHxgnSoX1KuGHwtb8yLTf/Mks=";
vendorSha256 = "sha256-zaOOwgljqhmIXZPZSMgMsVi02bBqQOag+6uVhxKsu9U=";
nativeBuildInputs = [ installShellFiles ];

View file

@ -15,6 +15,7 @@
, scdoc
, tllist
, wayland-protocols
, wayland-scanner
, pkg-config
, utf8proc
, allowPgo ? true
@ -77,7 +78,7 @@ let
}."${compilerName}";
# ar with lto support
ar = {
ar = stdenv.cc.bintools.targetPrefix + {
"clang" = "llvm-ar";
"gcc" = "gcc-ar";
"unknown" = "ar";
@ -97,19 +98,24 @@ stdenv.mkDerivation rec {
sha256 = "0yrz7n0wls8g8w7ja934icwxmng3sxh70x87qmzc9c9cb1wyd989";
};
depsBuildBuild = [
pkg-config
];
nativeBuildInputs = [
wayland-scanner
meson
ninja
ncurses
scdoc
tllist
wayland-protocols
pkg-config
] ++ lib.optionals (compilerName == "clang") [
stdenv.cc.cc.libllvm.out
];
buildInputs = [
tllist
wayland-protocols
fontconfig
freetype
pixman

View file

@ -0,0 +1,157 @@
{ lib
, stdenv
, fetchFromGitHub
, SDL2
, cmake
, espeak
, ffmpeg
, file
, freetype
, harfbuzz
, leptonica
, libGL
, libX11
, libXau
, libXcomposite
, libXdmcp
, libXfixes
, libdrm
, libffi
, libusb1
, libuvc
, libvlc
, libvncserver
, libxcb
, libxkbcommon
, luajit
, makeWrapper
, mesa
, openal
, pkg-config
, sqlite
, tesseract
, valgrind
, wayland
, wayland-protocols
, xcbutil
, xcbutilwm
, xz
, buildManPages ? true, ruby
}:
let
# TODO: investigate vendoring, especially OpenAL
# WARN: vendoring of OpenAL is required for running arcan_lwa
# INFO: maybe it needs leaveDotGit, but it is dangerous/impure
letoram-openal-src = fetchFromGitHub {
owner = "letoram";
repo = "openal";
rev = "1c7302c580964fee9ee9e1d89ff56d24f934bdef";
hash = "sha256-InqU59J0zvwJ20a7KU54xTM7d76VoOlFbtj7KbFlnTU=";
};
in
stdenv.mkDerivation rec {
pname = "arcan";
version = "0.6.1pre1+unstable=2021-07-07";
src = fetchFromGitHub {
owner = "letoram";
repo = "arcan";
rev = "f3341ab94b32d02f3d15c3b91a512b2614e950a5";
hash = "sha256-YBtRA5uCk4tjX3Bsu5vMkaNaCLRlM6HVQ53sna3gDsY=";
};
postUnpack = ''
(
cd $sourceRoot/external/git/
cp -a ${letoram-openal-src}/ openal/
chmod --recursive 744 openal/
)
'';
# TODO: work with upstream in order to get rid of these hardcoded paths
postPatch = ''
substituteInPlace ./src/platform/posix/paths.c \
--replace "/usr/bin" "$out/bin" \
--replace "/usr/share" "$out/share"
substituteInPlace ./src/CMakeLists.txt --replace "SETUID" "# SETUID"
'';
nativeBuildInputs = [
cmake
makeWrapper
pkg-config
] ++ lib.optionals buildManPages [
ruby
];
buildInputs = [
SDL2
espeak
ffmpeg
file
freetype
harfbuzz
leptonica
libGL
libX11
libXau
libXcomposite
libXdmcp
libXfixes
libdrm
libffi
libusb1
libuvc
libvlc
libvncserver
libxcb
libxkbcommon
luajit
mesa
openal
sqlite
tesseract
valgrind
wayland
wayland-protocols
xcbutil
xcbutilwm
xz
];
# INFO: According to the source code, the manpages need to be generated before
# the configure phase
preConfigure = lib.optionalString buildManPages ''
(cd doc; ruby docgen.rb mangen)
'';
cmakeFlags = [
"-DBUILD_PRESET=everything"
# The upstream project recommends tagging the distribution
"-DDISTR_TAG=Nixpkgs"
"-DENGINE_BUILDTAG=${version}"
"-DHYBRID_SDL=on"
"-DSTATIC_OPENAL=off"
"../src"
];
hardeningDisable = [
"format"
];
meta = with lib; {
homepage = "https://arcan-fe.com/";
description = "Combined Display Server, Multimedia Framework, Game Engine";
longDescription = ''
Arcan is a portable and fast self-sufficient multimedia engine for
advanced visualization and analysis work in a wide range of applications
e.g. game development, real-time streaming video, monitoring and
surveillance, up to and including desktop compositors and window managers.
'';
license = with licenses; [ bsd3 gpl2Plus lgpl2Plus ];
maintainers = with maintainers; [ AndersonTorres ];
platforms = platforms.unix;
};
}

View file

@ -0,0 +1,42 @@
{ callPackage, lib, pkgs }:
rec {
# Dependencies
espeak = pkgs.espeak-ng;
ffmpeg = pkgs.ffmpeg-full;
harfbuzz = pkgs.harfbuzzFull;
# Arcan
arcan = callPackage ./arcan.nix { };
arcan-wrapped = callPackage ./wrapper.nix { };
xarcan = callPackage ./xarcan.nix { };
# Appls
durden = callPackage ./durden.nix { };
durden-wrapped = callPackage ./wrapper.nix {
name = "durden-wrapped";
appls = [ durden ];
};
pipeworld = callPackage ./pipeworld.nix { };
pipeworld-wrapped = callPackage ./wrapper.nix {
name = "pipeworld-wrapped";
appls = [ pipeworld ];
};
prio = callPackage ./prio.nix { };
prio-wrapped = callPackage ./wrapper.nix {
name = "prio-wrapped";
appls = [ prio ];
};
# One Expression to SymlinkJoin Them All
everyone-wrapped = callPackage ./wrapper.nix {
name = "everyone-wrapped";
appls = [ durden pipeworld prio ];
};
}

View file

@ -0,0 +1,39 @@
{ lib
, stdenv
, fetchFromGitHub
}:
stdenv.mkDerivation rec {
pname = "durden";
version = "0.6.1+unstable=2021-06-25";
src = fetchFromGitHub {
owner = "letoram";
repo = pname;
rev = "fb618fccc57a68b6ce933b4df5822acd1965d591";
hash = "sha256-PovI837Xca4wV0g0s4tYUMFGVUDf+f8HcdvM1+0aDxk=";
};
installPhase = ''
runHook preInstall
mkdir -p ${placeholder "out"}/share/arcan/appl/
cp -a ./durden ${placeholder "out"}/share/arcan/appl/
runHook postInstall
'';
meta = with lib; {
homepage = "https://durden.arcan-fe.com/";
description = "Reference Desktop Environment for Arcan";
longDescription = ''
Durden is a desktop environment for the Arcan Display Server. It serves
both as a reference showcase on how to take advantage of some of the
features in Arcan, and as a very competent entry to the advanced-user side
of the desktop environment spectrum.
'';
license = licenses.bsd3;
maintainers = with maintainers; [ AndersonTorres ];
platforms = platforms.all;
};
}

View file

@ -0,0 +1,46 @@
{ lib
, stdenv
, fetchFromGitHub
}:
stdenv.mkDerivation rec {
pname = "pipeworld";
version = "0.0.0+unstable=2021-05-27";
src = fetchFromGitHub {
owner = "letoram";
repo = pname;
rev = "c26df9ca0225ce2fd4f89e7ec59d4ab1f94a4c2e";
hash = "sha256-RkDAbM1q4o61RGPLPLXHLvbvClp+bfjodlWgUGoODzA=";
};
installPhase = ''
runHook preInstall
mkdir -p ${placeholder "out"}/share/arcan/appl/
cp -a ./pipeworld ${placeholder "out"}/share/arcan/appl/
runHook postInstall
'';
meta = with lib; {
homepage = "https://github.com/letoram/pipeworld";
description = "Dataflow 'spreadsheet' desktop environment";
longDescription = ''
Pipeworld is a zooming dataflow tool and desktop heavily inspired by
userland. It is built using the arcan desktop engine.
It combines the programmable processing of shell scripts and pipes, the
interactive visual addressing/programming model of spread sheets, the
scenegraph- and interactive controls-, IPC- and client processing- of
display servers into one model with zoomable tiling window management.
It can be used as a standalone desktop of its own, or as a normal
application within another desktop as a 'substitute' for your normal
terminal emulator.
'';
license = licenses.bsd3;
maintainers = with maintainers; [ AndersonTorres ];
platforms = platforms.all;
};
}

View file

@ -0,0 +1,33 @@
{ lib
, stdenv
, fetchFromGitHub
}:
stdenv.mkDerivation rec {
pname = "prio";
version = "0.0.0+unstable=2018-09-13";
src = fetchFromGitHub {
owner = "letoram";
repo = pname;
rev = "c3f97491339d15f063d6937d5f89bcfaea774dd1";
hash = "sha256-Idv/duEYmDk/rO+TI8n+FY3VFDtUEh8C292jh12BJuM=";
};
installPhase = ''
runHook preInstall
mkdir -p ${placeholder "out"}/share/arcan/appl/prio
cp -a ./* ${placeholder "out"}/share/arcan/appl/prio
runHook postInstall
'';
meta = with lib; {
homepage = "https://github.com/letoram/prio";
description = "Plan9- Rio like Window Manager for Arcan";
license = licenses.bsd3;
maintainers = with maintainers; [ AndersonTorres ];
platforms = platforms.all;
};
}

View file

@ -0,0 +1,28 @@
{ arcan
, makeWrapper
, symlinkJoin
, appls ? [ ]
, name ? "arcan-wrapped"
}:
symlinkJoin rec {
inherit name;
paths = appls ++ [ arcan ];
nativeBuildInputs = [ makeWrapper ];
postBuild = ''
for prog in ${placeholder "out"}/bin/*; do
wrapProgram $prog \
--prefix PATH ":" "${placeholder "out"}/bin" \
--set ARCAN_APPLBASEPATH "${placeholder "out"}/share/arcan/appl/" \
--set ARCAN_BINPATH "${placeholder "out"}/bin/arcan_frameserver" \
--set ARCAN_LIBPATH "${placeholder "out"}/lib/" \
--set ARCAN_RESOURCEPATH "${placeholder "out"}/share/arcan/resources/" \
--set ARCAN_SCRIPTPATH "${placeholder "out"}/share/arcan/scripts/" \
--set ARCAN_STATEBASEPATH "$HOME/.arcan/resources/savestates/"
done
'';
}
# TODO: set ARCAN_FONTPATH to a set of fonts that can be provided in a parameter

View file

@ -0,0 +1,118 @@
{ lib
, stdenv
, fetchFromGitHub
, arcan
, audit
, dbus
, epoxy
, fontutil
, libGL
, libX11
, libXau
, libXdmcp
, libXfont2
, libdrm
, libgcrypt
, libmd
, libselinux
, libtirpc
, libxcb
, libxkbfile
, libxshmfence
, mesa
, meson
, nettle
, ninja
, openssl
, pixman
, pkg-config
, systemd
, xcbutil
, xcbutilwm
, xkbcomp
, xkeyboard_config
, xorgproto
, xtrans
}:
stdenv.mkDerivation rec {
pname = "xarcan";
version = "0.6.0+unstable=2021-06-14";
src = fetchFromGitHub {
owner = "letoram";
repo = pname;
rev = "98d28a5f2c6860bb191fbc1c9e577c18e4c9a9b7";
hash = "sha256-UTIVDKnYD/q0K6G7NJUKh1tHcqnsuiJ/cQxWuPMJ2G4=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
];
buildInputs = [
arcan
audit
dbus
epoxy
fontutil
libGL
libX11
libXau
libXdmcp
libXfont2
libdrm
libgcrypt
libmd
libselinux
libtirpc
libxcb
libxkbfile
libxshmfence
mesa
nettle
openssl
pixman
systemd
xcbutil
xcbutilwm
xkbcomp
xkeyboard_config
xorgproto
xtrans
];
configureFlags = [
"--disable-int10-module"
"--disable-static"
"--disable-xnest"
"--disable-xorg"
"--disable-xvfb"
"--disable-xwayland"
"--enable-glamor"
"--enable-glx"
"--enable-ipv6"
"--enable-kdrive"
"--enable-record"
"--enable-xarcan"
"--enable-xcsecurity"
"--with-xkb-bin-directory=${xkbcomp}/bin"
"--with-xkb-output=/tmp"
"--with-xkb-path=${xkeyboard_config}/share/X11/xkb"
];
meta = with lib; {
homepage = "https://github.com/letoram/letoram";
description = "Patched Xserver that bridges connections to Arcan";
longDescription = ''
xarcan is a patched X server with a KDrive backend that uses the
arcan-shmif to map Xlib/Xcb/X clients to a running arcan instance. It
allows running an X session as a window under Arcan.
'';
license = licenses.mit;
maintainers = with maintainers; [ AndersonTorres ];
platforms = platforms.all;
};
}

View file

@ -35,7 +35,10 @@ stdenv.mkDerivation {
"--enable-xft"
];
preConfigure = "make clean";
preConfigure = ''
make clean
rm VERSION
'';
enableParallelBuilding = true;

View file

@ -1,4 +1,4 @@
{ lib, stdenv, fetchFromGitHub, zlib, pkg-config, python3, openssl }:
{ lib, stdenv, fetchFromGitHub, zlib, zstd, pkg-config, python3, openssl }:
stdenv.mkDerivation rec {
pname = "rdkafka";
@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkg-config python3 ];
buildInputs = [ zlib openssl ];
buildInputs = [ zlib zstd openssl ];
NIX_CFLAGS_COMPILE = "-Wno-error=strict-overflow";

View file

@ -6,13 +6,13 @@
stdenv.mkDerivation rec {
pname = "wlroots";
version = "0.14.0";
version = "0.14.1";
src = fetchFromGitHub {
owner = "swaywm";
repo = "wlroots";
rev = version;
sha256 = "103sf9bsyqw18kmaih11mlxwqi9ddymm95w1lfxz06pf69xwhd39";
sha256 = "1sshp3lvlkl1i670kxhwsb4xzxl8raz6769kqvgmxzcb63ns9ay1";
};
# $out for the library and $examples for the example programs (in examples):

View file

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "zimg";
version = "3.0.1";
version = "3.0.2";
src = fetchFromGitHub {
owner = "sekrit-twc";
repo = "zimg";
rev = "release-${version}";
sha256 = "1mpns443ifbkbaxsw6yy8z01l7815259pxzd7s006npr0dxnc8ng";
sha256 = "19qim6vyfas0m09piiw0pw7i0xjzi8vs6bx716gz472nflsg1604";
};
nativeBuildInputs = [ autoreconfHook ];

View file

@ -188,6 +188,7 @@
, "poor-mans-t-sql-formatter-cli"
, "postcss-cli"
, "prettier"
, "prettier-plugin-toml"
, "pscid"
, "pulp"
, "purescript-language-server"

File diff suppressed because it is too large Load diff

View file

@ -10,12 +10,12 @@
buildPythonPackage rec {
pname = "pytest-cases";
version = "3.6.2";
version = "3.6.3";
disabled = pythonOlder "3.6";
src = fetchPypi {
inherit pname version;
sha256 = "1hipm73s97dx37la57aif1x7myidirfslr1k6apvwyc2929y2lsk";
sha256 = "sha256-ExNiaSQGFbx5BB+K+PyW4OPghdpy3SKxhiVFH9okQ7g=";
};
nativeBuildInputs = [

View file

@ -10,12 +10,12 @@
buildPythonPackage rec {
pname = "pytest-httpserver";
version = "0.3.7";
version = "1.0.0";
src = fetchPypi {
pname = "pytest_httpserver";
inherit version;
sha256 = "sha256-YgTcrUlwh2jz0tJdMUgjm8RcqrtpJ/oUQm3SnxUc5Z4=";
sha256 = "sha256-rjCV0TTUBgLpVyEUDiIhOdpKV5lWEjmQr4WCUyTQdG0=";
};
propagatedBuildInputs = [ werkzeug ];

View file

@ -1,18 +1,33 @@
{ lib, buildPythonPackage, fetchPypi
{ lib
, buildPythonPackage
, fetchFromGitHub
, pytest-mock
, pytestCheckHook
, pythonOlder
}:
buildPythonPackage rec {
pname = "shellingham";
version = "1.3.2";
version = "1.4.0";
format = "pyproject";
disabled = pythonOlder "3.4";
src = fetchPypi {
inherit pname version;
sha256 = "576c1982bea0ba82fb46c36feb951319d7f42214a82634233f58b40d858a751e";
src = fetchFromGitHub {
owner = "sarugaku";
repo = pname;
rev = version;
sha256 = "0f686ym3ywjffis5jfqkhsshjgii64060hajysczflhffrjn9jcp";
};
checkInputs = [
pytest-mock
pytestCheckHook
];
pythonImportsCheck = [ "shellingham" ];
meta = with lib; {
description = "Tool to Detect Surrounding Shell";
description = "Tool to detect the surrounding shell";
homepage = "https://github.com/sarugaku/shellingham";
license = licenses.isc;
maintainers = with maintainers; [ mbode ];

View file

@ -0,0 +1,63 @@
{ lib
, buildPythonPackage
, fastapi
, fetchFromGitHub
, fetchpatch
, limits
, mock
, hiro
, poetry-core
, pytestCheckHook
, pythonOlder
, redis
, starlette
}:
buildPythonPackage rec {
pname = "slowapi";
version = "0.1.4";
format = "pyproject";
disabled = pythonOlder "3.6";
src = fetchFromGitHub {
owner = "laurentS";
repo = pname;
rev = "v${version}";
sha256 = "0bnnzgv2wy145sdab54hljwv1b5029ndrr0y9rc2q0mraz8lf8lm";
};
nativeBuildInputs = [
poetry-core
];
propagatedBuildInputs = [
limits
redis
];
checkInputs = [
fastapi
hiro
mock
pytestCheckHook
starlette
];
patches = [
# Switch to poetry-core, https://github.com/laurentS/slowapi/pull/54
(fetchpatch {
name = "switch-to-poetry-core.patch";
url = "https://github.com/laurentS/slowapi/commit/fe165f2d479f4f8e4b7dd9cd88ec0ae847b490c5.patch";
sha256 = "16vjxdjjiyg8zjrgfyg9q2ym2lmnms2zy5d2cg3ccg51cfl715fi";
})
];
pythonImportsCheck = [ "slowapi" ];
meta = with lib; {
description = "Python library for API rate limiting";
homepage = "https://github.com/laurentS/slowapi";
license = with licenses; [ mit ];
maintainers = with maintainers; [ fab ];
};
}

View file

@ -9,12 +9,12 @@
buildPythonPackage rec {
pname = "yfinance";
version = "0.1.59";
version = "0.1.61";
# GitHub source releases aren't tagged
src = fetchPypi {
inherit pname version;
sha256 = "fe4dc46807eceadc6604bf51ece7297b752dc5402a38a87385094fbfc7565fa0";
sha256 = "sha256-+tc0rwweGFaBkrl7LBHdsff98PuupqovKh4nRP3hRJ0=";
};
propagatedBuildInputs = [

View file

@ -2,16 +2,16 @@
rustPlatform.buildRustPackage rec {
pname = "racer";
version = "2.1.44";
version = "2.1.46";
src = fetchFromGitHub {
owner = "racer-rust";
repo = "racer";
rev = "v${version}";
sha256 = "sha256-EmxJg2QDpGZ5TbMy9y6P11LdMucBdvewkRewuUzccGM=";
sha256 = "sha256-7h1w5Yyt5VN6+pYuTTbdM1Nrd8aDEhPLusxuIsdS+mQ=";
};
cargoSha256 = "sha256-kKQnpEashpIwrXubuZIpU+tzxFaUjr6jaVunYPqaHnM=";
cargoSha256 = "sha256-fllhB+so6H36b+joW0l+NBtz3PefOKdj6C8qKQPuJpk=";
nativeBuildInputs = [ makeWrapper ];
buildInputs = lib.optional stdenv.isDarwin Security;

View file

@ -2,7 +2,7 @@
buildGoModule rec {
pname = "grafana";
version = "8.0.4";
version = "8.0.5";
excludedPackages = [ "release_publisher" ];
@ -10,15 +10,15 @@ buildGoModule rec {
rev = "v${version}";
owner = "grafana";
repo = "grafana";
sha256 = "sha256-I4TUPni2WDdpsV19nltsaF1PugB5SOtQ9Jb0YzWUwFg=";
sha256 = "sha256-tehqb86Mkg1dD4x34zHwLD9uV/PssslLDIs9bl28ap0=";
};
srcStatic = fetchurl {
url = "https://dl.grafana.com/oss/release/grafana-${version}.linux-amd64.tar.gz";
sha256 = "sha256-GUVnw2kKxVfztvfsNMwRLxPTqRYzbxXzoH2GkmZB2JE=";
sha256 = "sha256-aVZpTQ4ERrJV3YN4U0v/tJoYkTg7vlQVe6sIIK2NE0k=";
};
vendorSha256 = "sha256-x7sSVIim/TOhMTbnRK/fpgxiSRSO8KwGILTE2i1gU3U=";
vendorSha256 = "sha256-INvFZ9hNbtpaDXuhBPaSaqBZyi7QJ18tMk+AZjJtYjg=";
preBuild = ''
# The testcase makes an API call against grafana.com:

View file

@ -0,0 +1,57 @@
{ lib, buildGoModule, fetchFromGitea, mage, writeShellScriptBin, nixosTests }:
buildGoModule rec {
pname = "vikunja-api";
version = "0.17.1";
src = fetchFromGitea {
domain = "kolaente.dev";
owner = "vikunja";
repo = "api";
rev = "v${version}";
sha256 = "sha256-xqC7MaPe5cClMUTSRE3HLTEH3LH1J1bJSdH+1ZOfGo4=";
};
nativeBuildInputs =
let
fakeGit = writeShellScriptBin "git" ''
if [[ $@ = "describe --tags --always --abbrev=10" ]]; then
echo "${version}"
else
>&2 echo "Unknown command: $@"
exit 1
fi
'';
in [ fakeGit mage ];
vendorSha256 = "sha256-/vXyZznGxj5hxwqi4sttBBkEoS25DJqwoBtADCRO9Qc=";
# checks need to be disabled because of needed internet for some checks
doCheck = false;
buildPhase = ''
runHook preBuild
# Fixes "mkdir /homeless-shelter: permission denied" - "Error: error compiling magefiles" during build
export HOME=$(mktemp -d)
mage build:build
runHook postBuild
'';
installPhase = ''
runHook preInstall
install -Dt $out/bin vikunja
runHook postInstall
'';
passthru.tests.vikunja = nixosTests.vikunja;
meta = {
description = "API of the Vikunja to-do list app";
homepage = "https://vikunja.io/";
license = lib.licenses.agpl3Plus;
maintainers = with lib.maintainers; [ em0lar ];
platforms = lib.platforms.all;
};
}

View file

@ -0,0 +1,33 @@
{ stdenv, lib, fetchurl, unzip, nixosTests, ... }:
stdenv.mkDerivation rec {
pname = "vikunja-frontend";
version = "0.17.0";
src = fetchurl {
url = "https://dl.vikunja.io/frontend/${pname}-${version}.zip";
sha256 = "sha256-LUYBCdEwDMwhFuIIRmnrtQN9ChaEZyFbItMxh27H5XY=";
};
nativeBuildInputs = [ unzip ];
sourceRoot = ".";
installPhase = ''
runHook preInstall
mkdir -p $out/
cp -r * $out/
runHook postInstall
'';
passthru.tests.vikunja = nixosTests.vikunja;
meta = {
description = "Frontend of the Vikunja to-do list app";
homepage = "https://vikunja.io/";
license = lib.licenses.agpl3Plus;
maintainers = with lib.maintainers; [ em0lar ];
platforms = lib.platforms.all;
};
}

View file

@ -4,8 +4,8 @@
}:
python3.pkgs.buildPythonApplication rec {
pname = "theHarvester";
version = "3.2.3";
pname = "theharvester";
version = "4.0.0";
src = fetchFromGitHub {
owner = "laramies";
@ -16,6 +16,7 @@ python3.pkgs.buildPythonApplication rec {
propagatedBuildInputs = with python3.pkgs; [
aiodns
aiofiles
aiohttp
aiomultiprocess
aiosqlite
@ -23,8 +24,7 @@ python3.pkgs.buildPythonApplication rec {
censys
certifi
dnspython
gevent
grequests
fastapi
lxml
netaddr
plotly
@ -33,14 +33,23 @@ python3.pkgs.buildPythonApplication rec {
requests
retrying
shodan
texttable
slowapi
starlette
uvicorn
uvloop
];
checkInputs = [ python3.pkgs.pytest ];
checkInputs = with python3.pkgs; [
pytest
pytest-asyncio
];
checkPhase = "runHook preCheck ; pytest tests/test_myparser.py ; runHook postCheck";
# We don't run other tests (discovery modules) because they require network access
checkPhase = ''
runHook preCheck
pytest tests/test_myparser.py
runHook postCheck
'';
meta = with lib; {
description = "Gather E-mails, subdomains and names from different public sources";

View file

@ -35,5 +35,7 @@ in stdenv.mkDerivation rec {
# TODO: gpl3Only or gpl3Plus (ask upstream)?
platforms = platforms.unix;
maintainers = with maintainers; [ primeos berbiche ];
broken = true; # Unmaintained and fails to run (Wayland protocol error)
# TODO (@primeos): Remove this package after the NixOS 21.11 branch-off
};
}

View file

@ -29592,6 +29592,10 @@ in
gtk = gtk2;
};
arcan = recurseIntoAttrs (callPackage ../desktops/arcan {
callPackage = newScope pkgs.arcan;
});
xfce = recurseIntoAttrs (callPackage ../desktops/xfce { });
xrandr-invert-colors = callPackage ../applications/misc/xrandr-invert-colors { };
@ -31687,6 +31691,9 @@ in
vimb-unwrapped = callPackage ../applications/networking/browsers/vimb { };
vimb = wrapFirefox vimb-unwrapped { };
vikunja-api = callPackage ../servers/web-apps/vikunja/api.nix { };
vikunja-frontend = callPackage ../servers/web-apps/vikunja/frontend.nix { };
vips = callPackage ../tools/graphics/vips {
inherit (darwin.apple_sdk.frameworks) ApplicationServices Foundation;
};

View file

@ -8010,6 +8010,8 @@ in {
slob = callPackage ../development/python-modules/slob { };
slowapi = callPackage ../development/python-modules/slowapi { };
sly = callPackage ../development/python-modules/sly { };
smart-meter-texas = callPackage ../development/python-modules/smart-meter-texas { };