Compare commits
25 commits
dce477bd41
...
5c0c6e1492
Author | SHA1 | Date | |
---|---|---|---|
|
5c0c6e1492 | ||
|
6005362903 | ||
|
936124b122 | ||
|
4733c9feec | ||
|
d42c1c8d44 | ||
|
7da17ece76 | ||
|
d51389b604 | ||
|
b9ce4f0d09 | ||
|
2ddef55de9 | ||
|
6340bfba1b | ||
|
1135620d73 | ||
|
8e4c17768e | ||
|
e5267bdb13 | ||
|
61706d2720 | ||
|
312c697e2b | ||
|
ad8572d0d9 | ||
|
e17c022a87 | ||
|
6326c8a6dc | ||
|
b7b5775f93 | ||
|
622af635bb | ||
|
9afcf733f3 | ||
|
e2ccc754ac | ||
|
82f2cc7489 | ||
|
b4b3165619 | ||
|
a4193dba8f |
13 changed files with 117 additions and 60 deletions
3
.github/CODEOWNERS
vendored
3
.github/CODEOWNERS
vendored
|
@ -345,8 +345,11 @@ pkgs/development/tools/continuous-integration/buildbot @Mic92 @zowoq
|
||||||
|
|
||||||
# Pretix
|
# Pretix
|
||||||
pkgs/by-name/pr/pretix/ @mweinelt
|
pkgs/by-name/pr/pretix/ @mweinelt
|
||||||
|
pkgs/by-name/pr/pretalx/ @mweinelt
|
||||||
nixos/modules/services/web-apps/pretix.nix @mweinelt
|
nixos/modules/services/web-apps/pretix.nix @mweinelt
|
||||||
|
nixos/modules/services/web-apps/pretalx.nix @mweinelt
|
||||||
nixos/tests/web-apps/pretix.nix @mweinelt
|
nixos/tests/web-apps/pretix.nix @mweinelt
|
||||||
|
nixos/tests/web-apps/pretalx.nix @mweinelt
|
||||||
|
|
||||||
# incus/lxc/lxd
|
# incus/lxc/lxd
|
||||||
nixos/maintainers/scripts/lxd/ @adamcstephens
|
nixos/maintainers/scripts/lxd/ @adamcstephens
|
||||||
|
|
|
@ -24,7 +24,7 @@ in
|
||||||
|
|
||||||
{
|
{
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
maintainers = teams.c3d2.members;
|
maintainers = with maintainers; [ hexa] ++ teams.c3d2.members;
|
||||||
};
|
};
|
||||||
|
|
||||||
options.services.pretalx = {
|
options.services.pretalx = {
|
||||||
|
@ -329,10 +329,47 @@ in
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
User = "pretalx";
|
User = "pretalx";
|
||||||
Group = "pretalx";
|
Group = "pretalx";
|
||||||
StateDirectory = [ "pretalx" "pretalx/media" ];
|
StateDirectory = [
|
||||||
|
"pretalx"
|
||||||
|
"pretalx/media"
|
||||||
|
];
|
||||||
|
StateDirectoryMode = "0750";
|
||||||
LogsDirectory = "pretalx";
|
LogsDirectory = "pretalx";
|
||||||
WorkingDirectory = cfg.settings.filesystem.data;
|
WorkingDirectory = cfg.settings.filesystem.data;
|
||||||
SupplementaryGroups = [ "redis-pretalx" ];
|
SupplementaryGroups = [ "redis-pretalx" ];
|
||||||
|
AmbientCapabilities = "";
|
||||||
|
CapabilityBoundingSet = [ "" ];
|
||||||
|
DevicePolicy = "closed";
|
||||||
|
LockPersonality = true;
|
||||||
|
MemoryDenyWriteExecute = true;
|
||||||
|
NoNewPrivileges = true;
|
||||||
|
PrivateDevices = true;
|
||||||
|
PrivateTmp = true;
|
||||||
|
ProcSubset = "pid";
|
||||||
|
ProtectControlGroups = true;
|
||||||
|
ProtectHome = true;
|
||||||
|
ProtectHostname = true;
|
||||||
|
ProtectKernelLogs = true;
|
||||||
|
ProtectKernelModules = true;
|
||||||
|
ProtectKernelTunables = true;
|
||||||
|
ProtectProc = "invisible";
|
||||||
|
ProtectSystem = "strict";
|
||||||
|
RemoveIPC = true;
|
||||||
|
RestrictAddressFamilies = [
|
||||||
|
"AF_INET"
|
||||||
|
"AF_INET6"
|
||||||
|
"AF_UNIX"
|
||||||
|
];
|
||||||
|
RestrictNamespaces = true;
|
||||||
|
RestrictRealtime = true;
|
||||||
|
RestrictSUIDSGID = true;
|
||||||
|
SystemCallArchitectures = "native";
|
||||||
|
SystemCallFilter = [
|
||||||
|
"@system-service"
|
||||||
|
"~@privileged"
|
||||||
|
"@chown"
|
||||||
|
];
|
||||||
|
UMask = "0027";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
|
@ -395,6 +432,8 @@ in
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
serviceConfig.ExecStart = "${lib.getExe' pythonEnv "celery"} -A pretalx.celery_app worker ${cfg.celery.extraArgs}";
|
serviceConfig.ExecStart = "${lib.getExe' pythonEnv "celery"} -A pretalx.celery_app worker ${cfg.celery.extraArgs}";
|
||||||
});
|
});
|
||||||
|
|
||||||
|
nginx.serviceConfig.SupplementaryGroups = lib.mkIf cfg.nginx.enable [ "pretalx" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.sockets.pretalx-web.socketConfig = {
|
systemd.sockets.pretalx-web.socketConfig = {
|
||||||
|
@ -403,11 +442,9 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
users = {
|
users = {
|
||||||
groups."${cfg.group}" = {};
|
groups.${cfg.group} = {};
|
||||||
users."${cfg.user}" = {
|
users.${cfg.user} = {
|
||||||
isSystemUser = true;
|
isSystemUser = true;
|
||||||
createHome = true;
|
|
||||||
home = cfg.settings.filesystem.data;
|
|
||||||
inherit (cfg) group;
|
inherit (cfg) group;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -468,7 +468,7 @@ in
|
||||||
StateDirectory = [
|
StateDirectory = [
|
||||||
"pretix"
|
"pretix"
|
||||||
];
|
];
|
||||||
StateDirectoryMode = "0755";
|
StateDirectoryMode = "0750";
|
||||||
CacheDirectory = "pretix";
|
CacheDirectory = "pretix";
|
||||||
LogsDirectory = "pretix";
|
LogsDirectory = "pretix";
|
||||||
WorkingDirectory = cfg.settings.pretix.datadir;
|
WorkingDirectory = cfg.settings.pretix.datadir;
|
||||||
|
@ -507,7 +507,7 @@ in
|
||||||
"~@privileged"
|
"~@privileged"
|
||||||
"@chown"
|
"@chown"
|
||||||
];
|
];
|
||||||
UMask = "0022";
|
UMask = "0027";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
|
@ -561,6 +561,8 @@ in
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
serviceConfig.ExecStart = "${getExe' pythonEnv "celery"} -A pretix.celery_app worker ${cfg.celery.extraArgs}";
|
serviceConfig.ExecStart = "${getExe' pythonEnv "celery"} -A pretix.celery_app worker ${cfg.celery.extraArgs}";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
nginx.serviceConfig.SupplementaryGroups = mkIf cfg.nginx.enable [ "pretix" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.sockets.pretix-web.socketConfig = {
|
systemd.sockets.pretix-web.socketConfig = {
|
||||||
|
@ -569,11 +571,9 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
users = {
|
users = {
|
||||||
groups."${cfg.group}" = {};
|
groups.${cfg.group} = {};
|
||||||
users."${cfg.user}" = {
|
users.${cfg.user} = {
|
||||||
isSystemUser = true;
|
isSystemUser = true;
|
||||||
createHome = true;
|
|
||||||
home = cfg.settings.pretix.datadir;
|
|
||||||
inherit (cfg) group;
|
inherit (cfg) group;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -218,7 +218,7 @@ in
|
||||||
|
|
||||||
services.displayManager.logToJournal = true;
|
services.displayManager.logToJournal = true;
|
||||||
|
|
||||||
services.logrotate.enable = lib.mkDefault false;
|
services.logrotate.enable = mkOverride 150 false;
|
||||||
|
|
||||||
# Make sure we use the Guest Agent from the QEMU package for testing
|
# Make sure we use the Guest Agent from the QEMU package for testing
|
||||||
# to reduce the closure size required for the tests.
|
# to reduce the closure size required for the tests.
|
||||||
|
|
|
@ -27,5 +27,9 @@
|
||||||
pretalx.wait_for_unit("pretalx-worker.service")
|
pretalx.wait_for_unit("pretalx-worker.service")
|
||||||
|
|
||||||
pretalx.wait_until_succeeds("curl -q --fail http://talks.local/orga/")
|
pretalx.wait_until_succeeds("curl -q --fail http://talks.local/orga/")
|
||||||
|
|
||||||
|
pretalx.succeed("pretalx-manage --help")
|
||||||
|
|
||||||
|
pretalx.log(pretalx.succeed("systemd-analyze security pretalx-web.service"))
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,16 +2,16 @@
|
||||||
|
|
||||||
rustPlatform.buildRustPackage rec {
|
rustPlatform.buildRustPackage rec {
|
||||||
pname = "cargo-bloat";
|
pname = "cargo-bloat";
|
||||||
version = "0.12.0";
|
version = "0.12.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "RazrFalcon";
|
owner = "RazrFalcon";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
hash = "sha256-vPk6ERl0VM1TjK/JRMcXqCvKqSTuw78MsmQ0xImQyd4=";
|
hash = "sha256-B71VX7cJe1giOLmk3cQE8Zxr7fKGyQkoXRuM+NzBcb8=";
|
||||||
};
|
};
|
||||||
|
|
||||||
cargoHash = "sha256-6fMFGLH16Z1O+ETlr0685TXHup1vJetfzPdNC2Lw9uM=";
|
cargoHash = "sha256-BBFLyMx1OPT2XAM6pofs2kV/3n3FrNu0Jkyr/Y3smnI=";
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "A tool and Cargo subcommand that helps you find out what takes most of the space in your executable";
|
description = "A tool and Cargo subcommand that helps you find out what takes most of the space in your executable";
|
||||||
|
|
|
@ -42,7 +42,7 @@ let
|
||||||
homepage = "https://github.com/pretalx/pretalx";
|
homepage = "https://github.com/pretalx/pretalx";
|
||||||
changelog = "https://docs.pretalx.org/en/latest/changelog.html";
|
changelog = "https://docs.pretalx.org/en/latest/changelog.html";
|
||||||
license = licenses.asl20;
|
license = licenses.asl20;
|
||||||
maintainers = teams.c3d2.members;
|
maintainers = with maintainers; [ hexa] ++ teams.c3d2.members;
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -53,7 +53,8 @@ stdenv.mkDerivation rec {
|
||||||
homepage = "https://www.freedesktop.org/software/pulseaudio/webrtc-audio-processing";
|
homepage = "https://www.freedesktop.org/software/pulseaudio/webrtc-audio-processing";
|
||||||
description = "A more Linux packaging friendly copy of the AudioProcessing module from the WebRTC project";
|
description = "A more Linux packaging friendly copy of the AudioProcessing module from the WebRTC project";
|
||||||
license = licenses.bsd3;
|
license = licenses.bsd3;
|
||||||
platforms = platforms.unix;
|
# https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing/-/blob/master/webrtc/rtc_base/system/arch.h
|
||||||
|
platforms = intersectLists platforms.unix (platforms.arm ++ platforms.aarch64 ++ platforms.mips ++ platforms.power ++ platforms.riscv ++ platforms.x86);
|
||||||
# BE platforms are unsupported
|
# BE platforms are unsupported
|
||||||
# https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing/-/issues/31
|
# https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing/-/issues/31
|
||||||
badPlatforms = platforms.bigEndian;
|
badPlatforms = platforms.bigEndian;
|
||||||
|
|
|
@ -1,18 +1,19 @@
|
||||||
{ lib
|
{
|
||||||
, async-timeout
|
lib,
|
||||||
, buildPythonPackage
|
async-timeout,
|
||||||
, click
|
buildPythonPackage,
|
||||||
, click-log
|
click,
|
||||||
, fetchFromGitHub
|
click-log,
|
||||||
, pure-pcapy3
|
fetchFromGitHub,
|
||||||
, pyserial-asyncio
|
pure-pcapy3,
|
||||||
, pytest-asyncio
|
pyserial-asyncio,
|
||||||
, pytest-timeout
|
pytest-asyncio,
|
||||||
, pytestCheckHook
|
pytest-timeout,
|
||||||
, pythonOlder
|
pytestCheckHook,
|
||||||
, setuptools
|
pythonOlder,
|
||||||
, voluptuous
|
setuptools,
|
||||||
, zigpy
|
voluptuous,
|
||||||
|
zigpy,
|
||||||
}:
|
}:
|
||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
|
@ -35,9 +36,7 @@ buildPythonPackage rec {
|
||||||
--replace-fail 'dynamic = ["version"]' 'version = "${version}"'
|
--replace-fail 'dynamic = ["version"]' 'version = "${version}"'
|
||||||
'';
|
'';
|
||||||
|
|
||||||
build-system = [
|
build-system = [ setuptools ];
|
||||||
setuptools
|
|
||||||
];
|
|
||||||
|
|
||||||
dependencies = [
|
dependencies = [
|
||||||
click
|
click
|
||||||
|
@ -46,9 +45,7 @@ buildPythonPackage rec {
|
||||||
pyserial-asyncio
|
pyserial-asyncio
|
||||||
voluptuous
|
voluptuous
|
||||||
zigpy
|
zigpy
|
||||||
] ++ lib.optionals (pythonOlder "3.11") [
|
] ++ lib.optionals (pythonOlder "3.11") [ async-timeout ];
|
||||||
async-timeout
|
|
||||||
];
|
|
||||||
|
|
||||||
nativeCheckInputs = [
|
nativeCheckInputs = [
|
||||||
pytestCheckHook
|
pytestCheckHook
|
||||||
|
@ -56,9 +53,7 @@ buildPythonPackage rec {
|
||||||
pytest-timeout
|
pytest-timeout
|
||||||
];
|
];
|
||||||
|
|
||||||
pythonImportsCheck = [
|
pythonImportsCheck = [ "bellows" ];
|
||||||
"bellows"
|
|
||||||
];
|
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Python module to implement EZSP for EmberZNet devices";
|
description = "Python module to implement EZSP for EmberZNet devices";
|
||||||
|
|
|
@ -1,22 +1,30 @@
|
||||||
{ lib
|
{ lib
|
||||||
, buildPythonPackage
|
, buildPythonPackage
|
||||||
, fetchPypi
|
, fetchPypi
|
||||||
|
, setuptools
|
||||||
, pkgs
|
, pkgs
|
||||||
, python
|
, python
|
||||||
|
, pythonOlder
|
||||||
}:
|
}:
|
||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "bsddb3";
|
pname = "bsddb3";
|
||||||
version = "6.2.9";
|
version = "6.2.9";
|
||||||
format = "setuptools";
|
pyproject = true;
|
||||||
|
|
||||||
src = fetchPypi {
|
src = fetchPypi {
|
||||||
inherit pname version;
|
inherit pname version;
|
||||||
sha256 = "70d05ec8dc568f42e70fc919a442e0daadc2a905a1cfb7ca77f549d49d6e7801";
|
sha256 = "70d05ec8dc568f42e70fc919a442e0daadc2a905a1cfb7ca77f549d49d6e7801";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
build-system = [
|
||||||
|
setuptools
|
||||||
|
];
|
||||||
|
|
||||||
buildInputs = [ pkgs.db ];
|
buildInputs = [ pkgs.db ];
|
||||||
|
|
||||||
|
doCheck = pythonOlder "3.12"; # distutils usage
|
||||||
|
|
||||||
checkPhase = ''
|
checkPhase = ''
|
||||||
${python.interpreter} test.py
|
${python.interpreter} test.py
|
||||||
'';
|
'';
|
||||||
|
|
|
@ -1,29 +1,28 @@
|
||||||
{ lib
|
{
|
||||||
, aiohttp
|
lib,
|
||||||
, buildPythonPackage
|
aiohttp,
|
||||||
, fetchPypi
|
buildPythonPackage,
|
||||||
, pydantic
|
fetchPypi,
|
||||||
, pythonOlder
|
pydantic,
|
||||||
, setuptools
|
pythonOlder,
|
||||||
|
setuptools,
|
||||||
}:
|
}:
|
||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "peco";
|
pname = "peco";
|
||||||
version = "0.0.29";
|
version = "0.0.30";
|
||||||
format = "pyproject";
|
pyproject = true;
|
||||||
|
|
||||||
disabled = pythonOlder "3.7";
|
disabled = pythonOlder "3.7";
|
||||||
|
|
||||||
src = fetchPypi {
|
src = fetchPypi {
|
||||||
inherit pname version;
|
inherit pname version;
|
||||||
hash = "sha256-zL0tBTwm+l5eyxlWr2xoE+nLpMfUKri1/yD+WgTUqHQ=";
|
hash = "sha256-a3MPqtbDftbLGtpJ66CFVC5wJFa9L3dqOKPfBZCaHpM=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
build-system = [ setuptools ];
|
||||||
setuptools
|
|
||||||
];
|
|
||||||
|
|
||||||
propagatedBuildInputs = [
|
dependencies = [
|
||||||
aiohttp
|
aiohttp
|
||||||
pydantic
|
pydantic
|
||||||
];
|
];
|
||||||
|
@ -31,9 +30,7 @@ buildPythonPackage rec {
|
||||||
# Module has no tests
|
# Module has no tests
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
|
|
||||||
pythonImportsCheck = [
|
pythonImportsCheck = [ "peco" ];
|
||||||
"peco"
|
|
||||||
];
|
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Library for interacting with the PECO outage map";
|
description = "Library for interacting with the PECO outage map";
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
, addOpenGLRunpath
|
, addOpenGLRunpath
|
||||||
, setuptools
|
, setuptools
|
||||||
, pytestCheckHook
|
, pytestCheckHook
|
||||||
|
, versioneer
|
||||||
}:
|
}:
|
||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
|
@ -28,8 +29,14 @@ buildPythonPackage rec {
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
|
# unvendor versioneer
|
||||||
|
postPatch = ''
|
||||||
|
rm versioneer.py
|
||||||
|
'';
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
setuptools
|
setuptools
|
||||||
|
versioneer
|
||||||
];
|
];
|
||||||
|
|
||||||
pythonImportsCheck = [ "pynvml" "pynvml.smi" ];
|
pythonImportsCheck = [ "pynvml" "pynvml.smi" ];
|
||||||
|
|
|
@ -24,9 +24,12 @@ stdenv.mkDerivation rec {
|
||||||
chmod +x $out/fuseki
|
chmod +x $out/fuseki
|
||||||
ln -s "$out"/{fuseki-backup,fuseki-server,fuseki} "$out/bin"
|
ln -s "$out"/{fuseki-backup,fuseki-server,fuseki} "$out/bin"
|
||||||
for i in "$out"/bin/*; do
|
for i in "$out"/bin/*; do
|
||||||
|
# It is necessary to set the default $FUSEKI_BASE directory to a writable location
|
||||||
|
# By default it points to $FUSEKI_HOME/run which is in the nix store
|
||||||
wrapProgram "$i" \
|
wrapProgram "$i" \
|
||||||
--prefix "PATH" : "${java}/bin/:${coreutils}/bin:${which}/bin" \
|
--prefix "PATH" : "${java}/bin/:${coreutils}/bin:${which}/bin" \
|
||||||
--set-default "FUSEKI_HOME" "$out" \
|
--set-default "FUSEKI_HOME" "$out" \
|
||||||
|
--run "if [ -z \"\$FUSEKI_BASE\" ]; then export FUSEKI_BASE=\"\$HOME/.local/fuseki\" ; mkdir -p \"\$HOME/.local/fuseki\" ; fi" \
|
||||||
;
|
;
|
||||||
done
|
done
|
||||||
'';
|
'';
|
||||||
|
@ -40,7 +43,9 @@ stdenv.mkDerivation rec {
|
||||||
license = licenses.asl20;
|
license = licenses.asl20;
|
||||||
maintainers = with maintainers; [ raskin ];
|
maintainers = with maintainers; [ raskin ];
|
||||||
platforms = platforms.all;
|
platforms = platforms.all;
|
||||||
|
sourceProvenance = with sourceTypes; [ binaryBytecode binaryNativeCode ];
|
||||||
homepage = "https://jena.apache.org";
|
homepage = "https://jena.apache.org";
|
||||||
downloadPage = "https://archive.apache.org/dist/jena/binaries/";
|
downloadPage = "https://archive.apache.org/dist/jena/binaries/";
|
||||||
|
mainProgram = "fuseki";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue