Merge master into staging-next

This commit is contained in:
github-actions[bot]
2024-07-05 12:01:14 +00:00
committed by GitHub
24 changed files with 281 additions and 48 deletions
@@ -20,6 +20,8 @@
- [Flood](https://flood.js.org/), a beautiful WebUI for various torrent clients. Available as [services.flood](options.html#opt-services.flood).
- [Eintopf](https://eintopf.info), community event and calendar web application. Available as [services.eintopf](options.html#opt-services.eintopf).
- [Renovate](https://github.com/renovatebot/renovate), a dependency updating tool for various git forges and language ecosystems. Available as [services.renovate](#opt-services.renovate.enable).
- [wg-access-server](https://github.com/freifunkMUC/wg-access-server/), an all-in-one WireGuard VPN solution with a web ui for connecting devices. Available at [services.wg-access-server](#opt-services.wg-access-server.enable).
+1
View File
@@ -1370,6 +1370,7 @@
./services/web-apps/documize.nix
./services/web-apps/dokuwiki.nix
./services/web-apps/dolibarr.nix
./services/web-apps/eintopf.nix
./services/web-apps/engelsystem.nix
./services/web-apps/ethercalc.nix
./services/web-apps/filesender.nix
@@ -0,0 +1,92 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.eintopf;
in {
options.services.eintopf = {
enable = mkEnableOption "Eintopf community event calendar web app";
settings = mkOption {
type = types.attrsOf types.str;
default = { };
description = ''
Settings to configure web service. See
<https://codeberg.org/Klasse-Methode/eintopf/src/branch/main/DEPLOYMENT.md>
for available options.
'';
example = literalExpression ''
{
EINTOPF_ADDR = ":1234";
EINTOPF_ADMIN_EMAIL = "admin@example.org";
EINTOPF_TIMEZONE = "Europe/Berlin";
}
'';
};
secrets = lib.mkOption {
type = with types; listOf path;
description = ''
A list of files containing the various secrets. Should be in the
format expected by systemd's `EnvironmentFile` directory.
'';
default = [ ];
};
};
config = mkIf cfg.enable {
systemd.services.eintopf = {
description = "Community event calendar web app";
wantedBy = [ "multi-user.target" ];
after = [ "network-online.target" ];
wants = [ "network-online.target" ];
environment = cfg.settings;
serviceConfig = {
ExecStart = "${pkgs.eintopf}/bin/eintopf";
WorkingDirectory = "/var/lib/eintopf";
StateDirectory = "eintopf" ;
EnvironmentFile = [ cfg.secrets ];
# hardening
AmbientCapabilities = "";
CapabilityBoundingSet = "" ;
DevicePolicy = "closed";
DynamicUser = true;
LockPersonality = true;
MemoryDenyWriteExecute = true;
NoNewPrivileges = true;
PrivateDevices = true;
PrivateTmp = true;
PrivateUsers = true;
ProcSubset = "pid";
ProtectClock = true;
ProtectControlGroups = true;
ProtectHome = true;
ProtectHostname = true;
ProtectKernelLogs = true;
ProtectKernelModules = true;
ProtectKernelTunables = true;
ProtectProc = "invisible";
ProtectSystem = "strict";
RemoveIPC = true;
RestrictAddressFamilies = [ "AF_INET" "AF_INET6" ];
RestrictNamespaces = true;
RestrictRealtime = true;
RestrictSUIDSGID = true;
SystemCallArchitectures = "native";
SystemCallFilter = [ "@system-service" "~@privileged" ];
UMask = "0077";
};
};
};
meta.maintainers = with lib.maintainers; [ onny ];
}
+1
View File
@@ -280,6 +280,7 @@ in {
ecryptfs = handleTest ./ecryptfs.nix {};
fscrypt = handleTest ./fscrypt.nix {};
fastnetmon-advanced = runTest ./fastnetmon-advanced.nix;
eintopf = handleTest ./eintopf.nix {};
ejabberd = handleTest ./xmpp/ejabberd.nix {};
elk = handleTestOn ["x86_64-linux"] ./elk.nix {};
emacs-daemon = handleTest ./emacs-daemon.nix {};
+21
View File
@@ -0,0 +1,21 @@
import ./make-test-python.nix ({ pkgs, ...} : {
name = "eintopf";
meta = with pkgs.lib.maintainers; {
maintainers = [ onny ];
};
nodes = {
eintopf = { config, pkgs, ... }: {
services.eintopf = {
enable = true;
};
};
};
testScript = ''
eintopf.start
eintopf.wait_for_unit("eintopf.service")
eintopf.wait_for_open_port(3333)
eintopf.succeed("curl -sSfL http://eintopf:3333 | grep 'Es sind keine Veranstaltungen eingetragen'")
'';
})
+2 -2
View File
@@ -38,14 +38,14 @@ let
in
stdenv.mkDerivation rec {
pname = "mame";
version = "0.266";
version = "0.267";
srcVersion = builtins.replaceStrings [ "." ] [ "" ] version;
src = fetchFromGitHub {
owner = "mamedev";
repo = "mame";
rev = "mame${srcVersion}";
hash = "sha256-nggpDKcZURwC4SQHiRnF7lJNaAWSniVHvsF/IjAPd9E=";
hash = "sha256-H3idND2cC0KSGa9EIEVN2diticfM9r6FwRqQYkWmEM0=";
};
outputs = [ "out" "tools" ];
+2 -2
View File
@@ -1,12 +1,12 @@
{ lib, appimageTools, fetchurl }:
let
version = "2.0.0";
version = "2.0.4";
pname = "lunatask";
src = fetchurl {
url = "https://lunatask.app/download/Lunatask-${version}.AppImage";
sha256 = "sha256-rRE7VE6Fugqbbv/fTIZGuWDQmTP1tRDiKrb6VcpsBjk=";
sha256 = "sha256-U+yelFSulAhgsn5xt45mxC7qGpQwmb3m3lt9nEW6MHU=";
};
appimageContents = appimageTools.extractType2 {
@@ -2,20 +2,15 @@
stdenv.mkDerivation rec {
pname = "yices";
# We never want X.Y.${odd} versions as they are moving development tags.
version = "2.6.4";
version = "2.6.5";
src = fetchFromGitHub {
owner = "SRI-CSL";
repo = "yices2";
rev = "Yices-${version}";
sha256 = "sha256-qdxh86CkKdm65oHcRgaafTG9GUOoIgTDjeWmRofIpNE=";
hash = "sha256-/sKyHkFW5I5kojNIRPEKojzTvfRZiyVIN5VlBIbAV7k=";
};
patches = [
# musl has no ldconfig, create symlinks explicitly
./linux-no-ldconfig.patch
];
postPatch = "patchShebangs tests/regress/check.sh";
nativeBuildInputs = [ autoreconfHook ];
@@ -1,13 +0,0 @@
--- a/Makefile.build
+++ b/Makefile.build
@@ -474,8 +474,9 @@ install-darwin: install-default
install-solaris: install-default
$(LDCONFIG) -n $(DESTDIR)$(libdir) && (cd $(DESTDIR)$(libdir) && $(LN_S) -f libyices.so.$(YICES_VERSION) libyices.so)
+# avoid ldconfig as it's not present on musl
install-linux install-unix: install-default
- $(LDCONFIG) -n $(DESTDIR)$(libdir) && (cd $(DESTDIR)$(libdir) && $(LN_S) -f libyices.so.$(YICES_VERSION) libyices.so)
+ (cd $(DESTDIR)$(libdir) && $(LN_S) -f libyices.so.$(YICES_VERSION) libyices.so.$(MAJOR).$(MINOR) && $(LN_S) -f libyices.so.$(MAJOR).$(MINOR) libyices.so)
# on FreeBSD: the library file is libyices.so.X.Y and ldconfig does not take -n
# TODO: fix this. We must also create a symbolic link: libyices.so.X in libdir
+64
View File
@@ -0,0 +1,64 @@
{ lib
, stdenv
, fetchYarnDeps
, fixup-yarn-lock
, yarn
, fetchFromGitea
, src
, version
, nodejs
, eintopf
}:
stdenv.mkDerivation (finalAttrs: {
pname = "eintopf";
inherit version src;
sourceRoot = "${finalAttrs.src.name}/backstage";
offlineCache = fetchYarnDeps {
yarnLock = "${finalAttrs.src}/yarn.lock";
hash = "sha256-Z/Pkk/qCWwr99g11DjEgnisPfxOhfD8+OCn6otxJtfI=";
};
nativeBuildInputs = [
fixup-yarn-lock
nodejs
yarn
];
configurePhase = ''
runHook preConfigure
export HOME=$(mktemp -d)
yarn config --offline set yarn-offline-mirror $offlineCache
fixup-yarn-lock yarn.lock
yarn --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive install
patchShebangs node_modules
runHook postConfigure
'';
buildPhase = ''
runHook preBuild
yarn --offline build
runHook postBuild
'';
installPhase = ''
runHook preInstall
yarn --offline --production install
mkdir -p "$out"
cp -r . $out/
runHook postInstall
'';
meta = {
inherit (eintopf.meta) homepage description license maintainers;
};
})
+57
View File
@@ -0,0 +1,57 @@
{ lib
, buildGoModule
, fetchFromGitea
, callPackage
, nixosTests
}:
let
version = "0.13.16";
src = fetchFromGitea {
domain = "codeberg.org";
owner = "Klasse-Methode";
repo = "eintopf";
rev = "v${version}";
hash = "sha256-ex5bpO60ousJcgZGdviqWrCyihycW+JT+EYFvdooUDw=";
};
frontend = callPackage ./frontend.nix { inherit src version; };
in
buildGoModule rec {
pname = "eintopf";
inherit version src;
vendorHash = "sha256-dBxI6cUGc16lg89x8b+hSLcv5y/MLf6vDIvqdMBUz3I=";
ldflags = [
"-s"
"-w"
"-X main.version=${version}"
"-X main.revision=${src.rev}"
];
preConfigure = ''
cp -R ${frontend}/. backstage/
'';
preCheck = ''
# Disable test, requires running Docker daemon
rm cmd/eintopf/main_test.go
rm service/email/email_test.go
'';
passthru.tests = {
inherit (nixosTests) eintopf;
};
meta = with lib; {
description = "A calendar for Stuttgart, showing events, groups and places";
homepage = "https://codeberg.org/Klasse-Methode/eintopf";
# License is going to change back to AGPL in the next release
# https://codeberg.org/Klasse-Methode/eintopf/issues/351#issuecomment-2076870
license = licenses.gpl3Plus;
maintainers = with maintainers; [ onny ];
platforms = platforms.unix;
};
}
@@ -9,14 +9,14 @@
}:
stdenv.mkDerivation rec {
pname = "marwaita-peppermint";
version = "17.0";
pname = "marwaita-red";
version = "20.2-unstable-2024-07-01";
src = fetchFromGitHub {
owner = "darkomarko42";
repo = pname;
rev = "247f9c539d6eef8ae3a5f59beed42a40b1f10434";
hash = "sha256-uT7KnpIdxypUqKhXOao3Bz3vJecJKK+GjcAp9biNyHc=";
rev = "79c65e37774395f7fa51ed1416874aa78f768d54";
hash = "sha256-GmVen97oJel4KVm+IwV8GTemIyHnQ4XjvGclUjdGDvw=";
};
buildInputs = [
+16 -4
View File
@@ -7,6 +7,7 @@
, libarchive
, libpcap
, libsForQt5
, qt6
, libslirp
, pkg-config
, stdenv
@@ -16,7 +17,8 @@
}:
let
inherit (libsForQt5)
qt = if stdenv.isLinux then libsForQt5 else qt6;
inherit (qt)
qtbase
qtmultimedia
wrapQtAppsHook;
@@ -46,16 +48,26 @@ stdenv.mkDerivation (finalAttrs: {
libGL
qtbase
qtmultimedia
wayland
zstd
] ++ lib.optionals stdenv.isLinux [
wayland
];
strictDeps = true;
qtWrapperArgs = [
qtWrapperArgs = lib.optionals stdenv.isLinux [
"--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libpcap ]}"
] ++ lib.optionals stdenv.isDarwin [
"--prefix DYLD_LIBRARY_PATH : ${lib.makeLibraryPath [ libpcap ]}"
];
installPhase = lib.optionalString stdenv.isDarwin ''
runHook preInstall
mkdir -p $out/Applications
cp -r melonDS.app $out/Applications/
runHook postInstall
'';
passthru = {
updateScript = unstableGitUpdater { };
};
@@ -88,6 +100,6 @@ stdenv.mkDerivation (finalAttrs: {
benley
shamilton
];
platforms = lib.platforms.linux;
platforms = lib.platforms.linux ++ lib.platforms.darwin;
};
})
+2 -2
View File
@@ -2,13 +2,13 @@
buildGoModule rec {
pname = "omnictl";
version = "0.38.2";
version = "0.38.3";
src = fetchFromGitHub {
owner = "siderolabs";
repo = "omni";
rev = "v${version}";
hash = "sha256-Qm5Q+yZq6m/3xAAMdz57fXC13lLDMu5GY1xs5vHAFoo=";
hash = "sha256-8AqXF7bBgn8br3mooh1BHvN2wWQnmpvVeBHbbJ5shGA=";
};
vendorHash = "sha256-BF/F/siVIYJT4abOlwQjpnQpmNFdOo566VGPIo08PO0=";
@@ -132,6 +132,8 @@ let
generatedConfig = luaLib.generateLuarocksConfig {
externalDeps = lib.unique (self.externalDeps ++ externalDepsGenerated);
local_cache = "";
# Filter out the lua derivation itself from the Lua module dependency
# closure, as it doesn't have a rock tree :)
# luaLib.hasLuaModule
@@ -8,11 +8,11 @@ assert odbcSupport -> unixODBC != null;
stdenv.mkDerivation rec {
pname = "freetds";
version = "1.4.17";
version = "1.4.19";
src = fetchurl {
url = "https://www.freetds.org/files/stable/${pname}-${version}.tar.bz2";
hash = "sha256-P3CoRV6zopAtQDmtkbk0o0jKHu4jpKkqPeCCSQWn0aI=";
hash = "sha256-kK65g8NLMT+dxJTaAFviJNToS9EZ/rKlsey3OpQon5U=";
};
buildInputs = [
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "simdjson";
version = "3.9.4";
version = "3.9.5";
src = fetchFromGitHub {
owner = "simdjson";
repo = "simdjson";
rev = "v${version}";
sha256 = "sha256-iTlIdLNOr1rRBnCwnI34e2RLL18Fmc/kRSMdZcOLp98=";
sha256 = "sha256-OCEHfjyWLxjThe1nrXIexMa4rI7RWt+3qnQErxHc7CU=";
};
nativeBuildInputs = [ cmake ];
-1
View File
@@ -124,7 +124,6 @@ rec {
(lib.filter (lib.isDerivation) externalDeps);
generatedConfig = ({
local_cache = "";
# To prevent collisions when creating environments, we install the rock
# files into per-package subdirectories
@@ -14,7 +14,7 @@
buildPythonPackage rec {
pname = "qcelemental";
version = "0.27.1";
version = "0.28.0";
pyproject = true;
@@ -22,7 +22,7 @@ buildPythonPackage rec {
src = fetchPypi {
inherit pname version;
hash = "sha256-dlcfIUKAg6yc4S3RXVJ1sKM29E1ZvHY82kjx1CM8/08=";
hash = "sha256-2pb924jBcB+BKyU2mmoWnTXy1URsN8YuhgSMsPGxaKI=";
};
nativeBuildInputs = [ poetry-core ];
+3 -3
View File
@@ -2,16 +2,16 @@
rustPlatform.buildRustPackage rec {
pname = "typos";
version = "1.22.9";
version = "1.23.0";
src = fetchFromGitHub {
owner = "crate-ci";
repo = pname;
rev = "v${version}";
hash = "sha256-FD9Sn1NwiahrYv99avwC2wtoTlwnqiuE7dCNPsD0+y4=";
hash = "sha256-46WXCImBqWmU82zIgulVyoB2/aGWXYunWDdQDsxMlOs=";
};
cargoHash = "sha256-NmF2pBru3iCOfl5q3Td9HBxi9VGmilUK3q3JckUeu/o=";
cargoHash = "sha256-29F4n9yuyGxQSZY4tJ8KaHXKLmpCPuUKDwOoyWBfmgk=";
meta = with lib; {
description = "Source code spell checker";
+1
View File
@@ -59,6 +59,7 @@ let
license
homepage
description
mainProgram
longDescription
;
platforms = [
+2 -2
View File
@@ -19,14 +19,14 @@ let
in
python.pkgs.buildPythonApplication rec {
pname = "esphome";
version = "2024.6.4";
version = "2024.6.6";
pyproject = true;
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = "refs/tags/${version}";
hash = "sha256-Wdq6sduIjvvLZAumYGmlm3QDaSKqmg/rssQNjdxQuaA=";
hash = "sha256-/EGj6kEgUhQefdFz/IllKWeVGLhC3STiOOsy3Pq4pIM=";
};
nativeBuildInputs = with python.pkgs; [
+1
View File
@@ -863,6 +863,7 @@ mapAliases ({
markdown-pp = throw "markdown-pp was removed from nixpkgs, because the upstream archived it on 2021-09-02"; # Added 2023-07-22
markmind = throw "markmind has been removed from nixpkgs, because it depended on an old version of electron"; # Added 2023-09-12
marwaita-manjaro = lib.warn "marwaita-manjaro has been renamed to marwaita-darkcyan" marwaita-darkcyan; # Added 2024-07-01
marwaita-peppermint = lib.warn "marwaita-peppermint has been renamed to marwaita-red" marwaita-red; # Added 2024-07-01
matrique = spectral; # Added 2020-01-27
matrixcli = throw "'matrixcli' has been removed due to being unmaintained and broken functionality. Recommend 'matrix-commander' as an alternative"; # Added 2024-03-09
matrix-recorder = throw "matrix-recorder has been removed due to being unmaintained"; # Added 2023-05-21
-2
View File
@@ -28605,8 +28605,6 @@ with pkgs;
inherit (kdePackages) breeze-icons;
};
marwaita-peppermint = callPackage ../data/themes/marwaita-peppermint { };
marwaita-pop_os = callPackage ../data/themes/marwaita-pop_os { };
marwaita-ubuntu = callPackage ../data/themes/marwaita-ubuntu { };