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; githubId = 57923898;
name = "Elyhaka"; name = "Elyhaka";
}; };
em0lar = {
email = "nix@em0lar.dev";
github = "em0lar";
githubId = 11006031;
name = "Leo Maroni";
};
emmanuelrosa = { emmanuelrosa = {
email = "emmanuel_rosa@aol.com"; email = "emmanuel_rosa@aol.com";
github = "emmanuelrosa"; github = "emmanuelrosa";

View file

@ -71,6 +71,13 @@
be able to access programmers supported by flashrom. be able to access programmers supported by flashrom.
</para> </para>
</listitem> </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> </itemizedlist>
</section> </section>
<section xml:id="sec-release-21.11-incompatibilities"> <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. - 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} ## Backward Incompatibilities {#sec-release-21.11-incompatibilities}
- The `staticjinja` package has been upgraded from 1.0.4 to 3.0.1 - 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/trilium.nix
./services/web-apps/selfoss.nix ./services/web-apps/selfoss.nix
./services/web-apps/shiori.nix ./services/web-apps/shiori.nix
./services/web-apps/vikunja.nix
./services/web-apps/virtlyst.nix ./services/web-apps/virtlyst.nix
./services/web-apps/wiki-js.nix ./services/web-apps/wiki-js.nix
./services/web-apps/whitebophir.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 {}; vaultwarden = handleTest ./vaultwarden.nix {};
vector = handleTest ./vector.nix {}; vector = handleTest ./vector.nix {};
victoriametrics = handleTest ./victoriametrics.nix {}; victoriametrics = handleTest ./victoriametrics.nix {};
vikunja = handleTest ./vikunja.nix {};
virtualbox = handleTestOn ["x86_64-linux"] ./virtualbox.nix {}; virtualbox = handleTestOn ["x86_64-linux"] ./virtualbox.nix {};
vscodium = handleTest ./vscodium.nix {}; vscodium = handleTest ./vscodium.nix {};
wasabibackend = handleTest ./wasabibackend.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 }: { lib, buildGoModule, fetchFromGitHub, fetchzip, installShellFiles }:
let let
version = "0.15.3"; version = "0.16.0";
manifests = fetchzip { manifests = fetchzip {
url = "https://github.com/fluxcd/flux2/releases/download/v${version}/manifests.tar.gz"; url = "https://github.com/fluxcd/flux2/releases/download/v${version}/manifests.tar.gz";
@ -19,10 +19,10 @@ buildGoModule rec {
owner = "fluxcd"; owner = "fluxcd";
repo = "flux2"; repo = "flux2";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-Pyt5BaOawBwyBz7ULzOZr0Fc6bqM5dKn775AylUjDVE="; sha256 = "sha256-r9Tg6aU8aIA87Mw+HFMdPe9uC+3bfGOnuAIrmB1nlRs=";
}; };
vendorSha256 = "sha256-17Kbun6Mrip4/XHN5eMHxgnSoX1KuGHwtb8yLTf/Mks="; vendorSha256 = "sha256-zaOOwgljqhmIXZPZSMgMsVi02bBqQOag+6uVhxKsu9U=";
nativeBuildInputs = [ installShellFiles ]; nativeBuildInputs = [ installShellFiles ];

View file

@ -15,6 +15,7 @@
, scdoc , scdoc
, tllist , tllist
, wayland-protocols , wayland-protocols
, wayland-scanner
, pkg-config , pkg-config
, utf8proc , utf8proc
, allowPgo ? true , allowPgo ? true
@ -77,7 +78,7 @@ let
}."${compilerName}"; }."${compilerName}";
# ar with lto support # ar with lto support
ar = { ar = stdenv.cc.bintools.targetPrefix + {
"clang" = "llvm-ar"; "clang" = "llvm-ar";
"gcc" = "gcc-ar"; "gcc" = "gcc-ar";
"unknown" = "ar"; "unknown" = "ar";
@ -97,19 +98,24 @@ stdenv.mkDerivation rec {
sha256 = "0yrz7n0wls8g8w7ja934icwxmng3sxh70x87qmzc9c9cb1wyd989"; sha256 = "0yrz7n0wls8g8w7ja934icwxmng3sxh70x87qmzc9c9cb1wyd989";
}; };
depsBuildBuild = [
pkg-config
];
nativeBuildInputs = [ nativeBuildInputs = [
wayland-scanner
meson meson
ninja ninja
ncurses ncurses
scdoc scdoc
tllist
wayland-protocols
pkg-config pkg-config
] ++ lib.optionals (compilerName == "clang") [ ] ++ lib.optionals (compilerName == "clang") [
stdenv.cc.cc.libllvm.out stdenv.cc.cc.libllvm.out
]; ];
buildInputs = [ buildInputs = [
tllist
wayland-protocols
fontconfig fontconfig
freetype freetype
pixman 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" "--enable-xft"
]; ];
preConfigure = "make clean"; preConfigure = ''
make clean
rm VERSION
'';
enableParallelBuilding = true; 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 { stdenv.mkDerivation rec {
pname = "rdkafka"; pname = "rdkafka";
@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkg-config python3 ]; nativeBuildInputs = [ pkg-config python3 ];
buildInputs = [ zlib openssl ]; buildInputs = [ zlib zstd openssl ];
NIX_CFLAGS_COMPILE = "-Wno-error=strict-overflow"; NIX_CFLAGS_COMPILE = "-Wno-error=strict-overflow";

View file

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

View file

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

View file

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

File diff suppressed because it is too large Load diff

View file

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

View file

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

View file

@ -1,18 +1,33 @@
{ lib, buildPythonPackage, fetchPypi { lib
, buildPythonPackage
, fetchFromGitHub
, pytest-mock
, pytestCheckHook
, pythonOlder
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "shellingham"; pname = "shellingham";
version = "1.3.2"; version = "1.4.0";
format = "pyproject"; format = "pyproject";
disabled = pythonOlder "3.4";
src = fetchPypi { src = fetchFromGitHub {
inherit pname version; owner = "sarugaku";
sha256 = "576c1982bea0ba82fb46c36feb951319d7f42214a82634233f58b40d858a751e"; repo = pname;
rev = version;
sha256 = "0f686ym3ywjffis5jfqkhsshjgii64060hajysczflhffrjn9jcp";
}; };
checkInputs = [
pytest-mock
pytestCheckHook
];
pythonImportsCheck = [ "shellingham" ];
meta = with lib; { meta = with lib; {
description = "Tool to Detect Surrounding Shell"; description = "Tool to detect the surrounding shell";
homepage = "https://github.com/sarugaku/shellingham"; homepage = "https://github.com/sarugaku/shellingham";
license = licenses.isc; license = licenses.isc;
maintainers = with maintainers; [ mbode ]; 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 { buildPythonPackage rec {
pname = "yfinance"; pname = "yfinance";
version = "0.1.59"; version = "0.1.61";
# GitHub source releases aren't tagged # GitHub source releases aren't tagged
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "fe4dc46807eceadc6604bf51ece7297b752dc5402a38a87385094fbfc7565fa0"; sha256 = "sha256-+tc0rwweGFaBkrl7LBHdsff98PuupqovKh4nRP3hRJ0=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View file

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

View file

@ -2,7 +2,7 @@
buildGoModule rec { buildGoModule rec {
pname = "grafana"; pname = "grafana";
version = "8.0.4"; version = "8.0.5";
excludedPackages = [ "release_publisher" ]; excludedPackages = [ "release_publisher" ];
@ -10,15 +10,15 @@ buildGoModule rec {
rev = "v${version}"; rev = "v${version}";
owner = "grafana"; owner = "grafana";
repo = "grafana"; repo = "grafana";
sha256 = "sha256-I4TUPni2WDdpsV19nltsaF1PugB5SOtQ9Jb0YzWUwFg="; sha256 = "sha256-tehqb86Mkg1dD4x34zHwLD9uV/PssslLDIs9bl28ap0=";
}; };
srcStatic = fetchurl { srcStatic = fetchurl {
url = "https://dl.grafana.com/oss/release/grafana-${version}.linux-amd64.tar.gz"; 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 = '' preBuild = ''
# The testcase makes an API call against grafana.com: # 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 { python3.pkgs.buildPythonApplication rec {
pname = "theHarvester"; pname = "theharvester";
version = "3.2.3"; version = "4.0.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "laramies"; owner = "laramies";
@ -16,6 +16,7 @@ python3.pkgs.buildPythonApplication rec {
propagatedBuildInputs = with python3.pkgs; [ propagatedBuildInputs = with python3.pkgs; [
aiodns aiodns
aiofiles
aiohttp aiohttp
aiomultiprocess aiomultiprocess
aiosqlite aiosqlite
@ -23,8 +24,7 @@ python3.pkgs.buildPythonApplication rec {
censys censys
certifi certifi
dnspython dnspython
gevent fastapi
grequests
lxml lxml
netaddr netaddr
plotly plotly
@ -33,14 +33,23 @@ python3.pkgs.buildPythonApplication rec {
requests requests
retrying retrying
shodan shodan
texttable slowapi
starlette
uvicorn
uvloop 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 # 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; { meta = with lib; {
description = "Gather E-mails, subdomains and names from different public sources"; 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)? # TODO: gpl3Only or gpl3Plus (ask upstream)?
platforms = platforms.unix; platforms = platforms.unix;
maintainers = with maintainers; [ primeos berbiche ]; 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; gtk = gtk2;
}; };
arcan = recurseIntoAttrs (callPackage ../desktops/arcan {
callPackage = newScope pkgs.arcan;
});
xfce = recurseIntoAttrs (callPackage ../desktops/xfce { }); xfce = recurseIntoAttrs (callPackage ../desktops/xfce { });
xrandr-invert-colors = callPackage ../applications/misc/xrandr-invert-colors { }; xrandr-invert-colors = callPackage ../applications/misc/xrandr-invert-colors { };
@ -31687,6 +31691,9 @@ in
vimb-unwrapped = callPackage ../applications/networking/browsers/vimb { }; vimb-unwrapped = callPackage ../applications/networking/browsers/vimb { };
vimb = wrapFirefox vimb-unwrapped { }; 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 { vips = callPackage ../tools/graphics/vips {
inherit (darwin.apple_sdk.frameworks) ApplicationServices Foundation; inherit (darwin.apple_sdk.frameworks) ApplicationServices Foundation;
}; };

View file

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