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
|
||||
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/pretalx.nix @mweinelt
|
||||
nixos/tests/web-apps/pretix.nix @mweinelt
|
||||
nixos/tests/web-apps/pretalx.nix @mweinelt
|
||||
|
||||
# incus/lxc/lxd
|
||||
nixos/maintainers/scripts/lxd/ @adamcstephens
|
||||
|
|
|
@ -24,7 +24,7 @@ in
|
|||
|
||||
{
|
||||
meta = with lib; {
|
||||
maintainers = teams.c3d2.members;
|
||||
maintainers = with maintainers; [ hexa] ++ teams.c3d2.members;
|
||||
};
|
||||
|
||||
options.services.pretalx = {
|
||||
|
@ -329,10 +329,47 @@ in
|
|||
serviceConfig = {
|
||||
User = "pretalx";
|
||||
Group = "pretalx";
|
||||
StateDirectory = [ "pretalx" "pretalx/media" ];
|
||||
StateDirectory = [
|
||||
"pretalx"
|
||||
"pretalx/media"
|
||||
];
|
||||
StateDirectoryMode = "0750";
|
||||
LogsDirectory = "pretalx";
|
||||
WorkingDirectory = cfg.settings.filesystem.data;
|
||||
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 {
|
||||
|
@ -395,6 +432,8 @@ in
|
|||
wantedBy = [ "multi-user.target" ];
|
||||
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 = {
|
||||
|
@ -403,11 +442,9 @@ in
|
|||
};
|
||||
|
||||
users = {
|
||||
groups."${cfg.group}" = {};
|
||||
users."${cfg.user}" = {
|
||||
groups.${cfg.group} = {};
|
||||
users.${cfg.user} = {
|
||||
isSystemUser = true;
|
||||
createHome = true;
|
||||
home = cfg.settings.filesystem.data;
|
||||
inherit (cfg) group;
|
||||
};
|
||||
};
|
||||
|
|
|
@ -468,7 +468,7 @@ in
|
|||
StateDirectory = [
|
||||
"pretix"
|
||||
];
|
||||
StateDirectoryMode = "0755";
|
||||
StateDirectoryMode = "0750";
|
||||
CacheDirectory = "pretix";
|
||||
LogsDirectory = "pretix";
|
||||
WorkingDirectory = cfg.settings.pretix.datadir;
|
||||
|
@ -507,7 +507,7 @@ in
|
|||
"~@privileged"
|
||||
"@chown"
|
||||
];
|
||||
UMask = "0022";
|
||||
UMask = "0027";
|
||||
};
|
||||
};
|
||||
in {
|
||||
|
@ -561,6 +561,8 @@ in
|
|||
wantedBy = [ "multi-user.target" ];
|
||||
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 = {
|
||||
|
@ -569,11 +571,9 @@ in
|
|||
};
|
||||
|
||||
users = {
|
||||
groups."${cfg.group}" = {};
|
||||
users."${cfg.user}" = {
|
||||
groups.${cfg.group} = {};
|
||||
users.${cfg.user} = {
|
||||
isSystemUser = true;
|
||||
createHome = true;
|
||||
home = cfg.settings.pretix.datadir;
|
||||
inherit (cfg) group;
|
||||
};
|
||||
};
|
||||
|
|
|
@ -218,7 +218,7 @@ in
|
|||
|
||||
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
|
||||
# to reduce the closure size required for the tests.
|
||||
|
|
|
@ -27,5 +27,9 @@
|
|||
pretalx.wait_for_unit("pretalx-worker.service")
|
||||
|
||||
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 {
|
||||
pname = "cargo-bloat";
|
||||
version = "0.12.0";
|
||||
version = "0.12.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "RazrFalcon";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-vPk6ERl0VM1TjK/JRMcXqCvKqSTuw78MsmQ0xImQyd4=";
|
||||
hash = "sha256-B71VX7cJe1giOLmk3cQE8Zxr7fKGyQkoXRuM+NzBcb8=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-6fMFGLH16Z1O+ETlr0685TXHup1vJetfzPdNC2Lw9uM=";
|
||||
cargoHash = "sha256-BBFLyMx1OPT2XAM6pofs2kV/3n3FrNu0Jkyr/Y3smnI=";
|
||||
|
||||
meta = with lib; {
|
||||
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";
|
||||
changelog = "https://docs.pretalx.org/en/latest/changelog.html";
|
||||
license = licenses.asl20;
|
||||
maintainers = teams.c3d2.members;
|
||||
maintainers = with maintainers; [ hexa] ++ teams.c3d2.members;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
|
||||
|
|
|
@ -53,7 +53,8 @@ stdenv.mkDerivation rec {
|
|||
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";
|
||||
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
|
||||
# https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing/-/issues/31
|
||||
badPlatforms = platforms.bigEndian;
|
||||
|
|
|
@ -1,18 +1,19 @@
|
|||
{ lib
|
||||
, async-timeout
|
||||
, buildPythonPackage
|
||||
, click
|
||||
, click-log
|
||||
, fetchFromGitHub
|
||||
, pure-pcapy3
|
||||
, pyserial-asyncio
|
||||
, pytest-asyncio
|
||||
, pytest-timeout
|
||||
, pytestCheckHook
|
||||
, pythonOlder
|
||||
, setuptools
|
||||
, voluptuous
|
||||
, zigpy
|
||||
{
|
||||
lib,
|
||||
async-timeout,
|
||||
buildPythonPackage,
|
||||
click,
|
||||
click-log,
|
||||
fetchFromGitHub,
|
||||
pure-pcapy3,
|
||||
pyserial-asyncio,
|
||||
pytest-asyncio,
|
||||
pytest-timeout,
|
||||
pytestCheckHook,
|
||||
pythonOlder,
|
||||
setuptools,
|
||||
voluptuous,
|
||||
zigpy,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
|
@ -35,9 +36,7 @@ buildPythonPackage rec {
|
|||
--replace-fail 'dynamic = ["version"]' 'version = "${version}"'
|
||||
'';
|
||||
|
||||
build-system = [
|
||||
setuptools
|
||||
];
|
||||
build-system = [ setuptools ];
|
||||
|
||||
dependencies = [
|
||||
click
|
||||
|
@ -46,9 +45,7 @@ buildPythonPackage rec {
|
|||
pyserial-asyncio
|
||||
voluptuous
|
||||
zigpy
|
||||
] ++ lib.optionals (pythonOlder "3.11") [
|
||||
async-timeout
|
||||
];
|
||||
] ++ lib.optionals (pythonOlder "3.11") [ async-timeout ];
|
||||
|
||||
nativeCheckInputs = [
|
||||
pytestCheckHook
|
||||
|
@ -56,9 +53,7 @@ buildPythonPackage rec {
|
|||
pytest-timeout
|
||||
];
|
||||
|
||||
pythonImportsCheck = [
|
||||
"bellows"
|
||||
];
|
||||
pythonImportsCheck = [ "bellows" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Python module to implement EZSP for EmberZNet devices";
|
||||
|
|
|
@ -1,22 +1,30 @@
|
|||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchPypi
|
||||
, setuptools
|
||||
, pkgs
|
||||
, python
|
||||
, pythonOlder
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "bsddb3";
|
||||
version = "6.2.9";
|
||||
format = "setuptools";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "70d05ec8dc568f42e70fc919a442e0daadc2a905a1cfb7ca77f549d49d6e7801";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
setuptools
|
||||
];
|
||||
|
||||
buildInputs = [ pkgs.db ];
|
||||
|
||||
doCheck = pythonOlder "3.12"; # distutils usage
|
||||
|
||||
checkPhase = ''
|
||||
${python.interpreter} test.py
|
||||
'';
|
||||
|
|
|
@ -1,29 +1,28 @@
|
|||
{ lib
|
||||
, aiohttp
|
||||
, buildPythonPackage
|
||||
, fetchPypi
|
||||
, pydantic
|
||||
, pythonOlder
|
||||
, setuptools
|
||||
{
|
||||
lib,
|
||||
aiohttp,
|
||||
buildPythonPackage,
|
||||
fetchPypi,
|
||||
pydantic,
|
||||
pythonOlder,
|
||||
setuptools,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "peco";
|
||||
version = "0.0.29";
|
||||
format = "pyproject";
|
||||
version = "0.0.30";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-zL0tBTwm+l5eyxlWr2xoE+nLpMfUKri1/yD+WgTUqHQ=";
|
||||
hash = "sha256-a3MPqtbDftbLGtpJ66CFVC5wJFa9L3dqOKPfBZCaHpM=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
setuptools
|
||||
];
|
||||
build-system = [ setuptools ];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
dependencies = [
|
||||
aiohttp
|
||||
pydantic
|
||||
];
|
||||
|
@ -31,9 +30,7 @@ buildPythonPackage rec {
|
|||
# Module has no tests
|
||||
doCheck = false;
|
||||
|
||||
pythonImportsCheck = [
|
||||
"peco"
|
||||
];
|
||||
pythonImportsCheck = [ "peco" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Library for interacting with the PECO outage map";
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
, addOpenGLRunpath
|
||||
, setuptools
|
||||
, pytestCheckHook
|
||||
, versioneer
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
|
@ -28,8 +29,14 @@ buildPythonPackage rec {
|
|||
})
|
||||
];
|
||||
|
||||
# unvendor versioneer
|
||||
postPatch = ''
|
||||
rm versioneer.py
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
setuptools
|
||||
versioneer
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "pynvml" "pynvml.smi" ];
|
||||
|
|
|
@ -24,9 +24,12 @@ stdenv.mkDerivation rec {
|
|||
chmod +x $out/fuseki
|
||||
ln -s "$out"/{fuseki-backup,fuseki-server,fuseki} "$out/bin"
|
||||
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" \
|
||||
--prefix "PATH" : "${java}/bin/:${coreutils}/bin:${which}/bin" \
|
||||
--set-default "FUSEKI_HOME" "$out" \
|
||||
--run "if [ -z \"\$FUSEKI_BASE\" ]; then export FUSEKI_BASE=\"\$HOME/.local/fuseki\" ; mkdir -p \"\$HOME/.local/fuseki\" ; fi" \
|
||||
;
|
||||
done
|
||||
'';
|
||||
|
@ -40,7 +43,9 @@ stdenv.mkDerivation rec {
|
|||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ raskin ];
|
||||
platforms = platforms.all;
|
||||
sourceProvenance = with sourceTypes; [ binaryBytecode binaryNativeCode ];
|
||||
homepage = "https://jena.apache.org";
|
||||
downloadPage = "https://archive.apache.org/dist/jena/binaries/";
|
||||
mainProgram = "fuseki";
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue