From e958afa0a9a12de3e623a464a922ac7f9455c0d0 Mon Sep 17 00:00:00 2001 From: Daniel Fullmer Date: Fri, 10 Apr 2020 19:11:24 -0400 Subject: [PATCH 1/2] nixos/zoneminder: fix evaluation with php refactor --- nixos/modules/services/misc/zoneminder.nix | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/nixos/modules/services/misc/zoneminder.nix b/nixos/modules/services/misc/zoneminder.nix index d5b3537068d..d9d34b7fac9 100644 --- a/nixos/modules/services/misc/zoneminder.nix +++ b/nixos/modules/services/misc/zoneminder.nix @@ -63,10 +63,6 @@ let ${cfg.extraConfig} ''; - phpExtensions = with pkgs.phpPackages; [ - { pkg = apcu; name = "apcu"; } - ]; - in { options = { services.zoneminder = with lib; { @@ -289,11 +285,9 @@ in { phpfpm = lib.mkIf useNginx { pools.zoneminder = { inherit user group; + phpPackage = pkgs.php.withExtensions ({ enabled, all }: enabled ++ [ all.apcu ]); phpOptions = '' date.timezone = "${config.time.timeZone}" - - ${lib.concatStringsSep "\n" (map (e: - "extension=${e.pkg}/lib/php/extensions/${e.name}.so") phpExtensions)} ''; settings = lib.mapAttrs (name: lib.mkDefault) { "listen.owner" = user; From 4f35b7ec5ffe927f71d0d4dc8c5e37c90fa056dd Mon Sep 17 00:00:00 2001 From: Daniel Fullmer Date: Sat, 11 Apr 2020 13:28:52 -0400 Subject: [PATCH 2/2] nixos/zoneminder: add minimal test --- nixos/tests/all-tests.nix | 3 ++- nixos/tests/zoneminder.nix | 23 +++++++++++++++++++++++ pkgs/servers/zoneminder/default.nix | 7 +++++-- 3 files changed, 30 insertions(+), 3 deletions(-) create mode 100644 nixos/tests/zoneminder.nix diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 5caf1c958fb..525e97c039e 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -348,6 +348,7 @@ in yabar = handleTest ./yabar.nix {}; yggdrasil = handleTest ./yggdrasil.nix {}; zfs = handleTest ./zfs.nix {}; - zsh-history = handleTest ./zsh-history.nix {}; + zoneminder = handleTest ./zoneminder.nix {}; zookeeper = handleTest ./zookeeper.nix {}; + zsh-history = handleTest ./zsh-history.nix {}; } diff --git a/nixos/tests/zoneminder.nix b/nixos/tests/zoneminder.nix new file mode 100644 index 00000000000..a4e1a05ec0e --- /dev/null +++ b/nixos/tests/zoneminder.nix @@ -0,0 +1,23 @@ +import ./make-test-python.nix ({ lib, ...}: + +{ + name = "zoneminder"; + meta.maintainers = with lib.maintainers; [ danielfullmer ]; + + machine = { ... }: + { + services.zoneminder = { + enable = true; + database.createLocally = true; + database.username = "zoneminder"; + }; + time.timeZone = "America/New_York"; + }; + + testScript = '' + machine.wait_for_unit("zoneminder.service") + machine.wait_for_unit("nginx.service") + machine.wait_for_open_port(8095) + machine.succeed("curl --fail http://localhost:8095/") + ''; +}) diff --git a/pkgs/servers/zoneminder/default.nix b/pkgs/servers/zoneminder/default.nix index 978893d28ff..8dcbe36850a 100644 --- a/pkgs/servers/zoneminder/default.nix +++ b/pkgs/servers/zoneminder/default.nix @@ -1,7 +1,7 @@ { stdenv, lib, fetchFromGitHub, fetchurl, substituteAll, cmake, makeWrapper, pkgconfig , curl, ffmpeg, glib, libjpeg, libselinux, libsepol, mp4v2, libmysqlclient, mysql, pcre, perl, perlPackages , polkit, utillinuxMinimal, x264, zlib -, coreutils, procps, psmisc }: +, coreutils, procps, psmisc, nixosTests }: # NOTES: # @@ -172,7 +172,10 @@ in stdenv.mkDerivation rec { "-DZM_WEB_GROUP=${user}" ]; - passthru = { inherit dirName; }; + passthru = { + inherit dirName; + tests = nixosTests.zoneminder; + }; postInstall = '' PERL5LIB="$PERL5LIB''${PERL5LIB:+:}$out/${perl.libPrefix}"