mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-16 14:54:29 +01:00
Merge master into staging-next
This commit is contained in:
commit
17a534e48b
35 changed files with 3152 additions and 2423 deletions
|
@ -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";
|
||||||
|
|
|
@ -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">
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
145
nixos/modules/services/web-apps/vikunja.nix
Normal file
145
nixos/modules/services/web-apps/vikunja.nix
Normal 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.<frontendHostname></option>.
|
||||||
|
This does not enable TLS or ACME by default. To enable this, set the
|
||||||
|
<option>services.nginx.virtualHosts.<frontendHostname>.enableACME</option> to
|
||||||
|
<literal>true</literal> and if appropriate do the same for
|
||||||
|
<option>services.nginx.virtualHosts.<frontendHostname>.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;
|
||||||
|
};
|
||||||
|
}
|
|
@ -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
65
nixos/tests/vikunja.nix
Normal 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")
|
||||||
|
'';
|
||||||
|
})
|
|
@ -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 ];
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
157
pkgs/desktops/arcan/arcan.nix
Normal file
157
pkgs/desktops/arcan/arcan.nix
Normal 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;
|
||||||
|
};
|
||||||
|
}
|
42
pkgs/desktops/arcan/default.nix
Normal file
42
pkgs/desktops/arcan/default.nix
Normal 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 ];
|
||||||
|
};
|
||||||
|
}
|
39
pkgs/desktops/arcan/durden.nix
Normal file
39
pkgs/desktops/arcan/durden.nix
Normal 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;
|
||||||
|
};
|
||||||
|
}
|
46
pkgs/desktops/arcan/pipeworld.nix
Normal file
46
pkgs/desktops/arcan/pipeworld.nix
Normal 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;
|
||||||
|
};
|
||||||
|
}
|
33
pkgs/desktops/arcan/prio.nix
Normal file
33
pkgs/desktops/arcan/prio.nix
Normal 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;
|
||||||
|
};
|
||||||
|
}
|
28
pkgs/desktops/arcan/wrapper.nix
Normal file
28
pkgs/desktops/arcan/wrapper.nix
Normal 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
|
118
pkgs/desktops/arcan/xarcan.nix
Normal file
118
pkgs/desktops/arcan/xarcan.nix
Normal 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;
|
||||||
|
};
|
||||||
|
}
|
|
@ -35,7 +35,10 @@ stdenv.mkDerivation {
|
||||||
"--enable-xft"
|
"--enable-xft"
|
||||||
];
|
];
|
||||||
|
|
||||||
preConfigure = "make clean";
|
preConfigure = ''
|
||||||
|
make clean
|
||||||
|
rm VERSION
|
||||||
|
'';
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
|
|
|
@ -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";
|
||||||
|
|
||||||
|
|
|
@ -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):
|
||||||
|
|
|
@ -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 ];
|
||||||
|
|
|
@ -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"
|
||||||
|
|
4609
pkgs/development/node-packages/node-packages.nix
generated
4609
pkgs/development/node-packages/node-packages.nix
generated
File diff suppressed because it is too large
Load diff
|
@ -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 = [
|
||||||
|
|
|
@ -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 ];
|
||||||
|
|
|
@ -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 ];
|
||||||
|
|
63
pkgs/development/python-modules/slowapi/default.nix
Normal file
63
pkgs/development/python-modules/slowapi/default.nix
Normal 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 ];
|
||||||
|
};
|
||||||
|
}
|
|
@ -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 = [
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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:
|
||||||
|
|
57
pkgs/servers/web-apps/vikunja/api.nix
Normal file
57
pkgs/servers/web-apps/vikunja/api.nix
Normal 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;
|
||||||
|
};
|
||||||
|
}
|
33
pkgs/servers/web-apps/vikunja/frontend.nix
Normal file
33
pkgs/servers/web-apps/vikunja/frontend.nix
Normal 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;
|
||||||
|
};
|
||||||
|
}
|
|
@ -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";
|
||||||
|
|
|
@ -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
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
};
|
};
|
||||||
|
|
|
@ -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 { };
|
||||||
|
|
Loading…
Reference in a new issue