Skip to content
This repository was archived by the owner on Apr 12, 2021. It is now read-only.
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: NixOS/nixpkgs-channels
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 4b003af75393
Choose a base ref
...
head repository: NixOS/nixpkgs-channels
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: cbe553c988aa
Choose a head ref
  • 4 commits
  • 4 files changed
  • 1 contributor

Commits on Mar 7, 2020

  1. zoneminder: 1.32.3 -> 1.34.3

    (cherry picked from commit 2685e45)
    
    cc #79488
    danielfullmer authored and veprbl committed Mar 7, 2020
    Copy the full SHA
    e7913b7 View commit details
  2. nixos/zoneminder: update on startup if needed

    (cherry picked from commit cb5da4e)
    
    cc #79488
    danielfullmer authored and veprbl committed Mar 7, 2020
    Copy the full SHA
    7f2973c View commit details
  3. zoneminder: fix timezone detection

    (cherry picked from commit 630de55)
    
    cc #79488
    danielfullmer authored and veprbl committed Mar 7, 2020
    Copy the full SHA
    cf7dfbf View commit details
  4. zoneminder: add patch to fix improper caching

    (cherry picked from commit ce34b92)
    
    cc #79488
    danielfullmer authored and veprbl committed Mar 7, 2020
    Copy the full SHA
    cbe553c View commit details
4 changes: 4 additions & 0 deletions nixos/modules/services/misc/zoneminder.nix
Original file line number Diff line number Diff line change
@@ -77,6 +77,8 @@ in {
`config.services.zoneminder.database.createLocally` to true. Otherwise,
when set to `false` (the default), you will have to create the database
and database user as well as populate the database yourself.
Additionally, you will need to run `zmupdate.pl` yourself when
upgrading to a newer version.
'';

webserver = mkOption {
@@ -330,6 +332,8 @@ in {
${config.services.mysql.package}/bin/mysql < ${pkg}/share/zoneminder/db/zm_create.sql
touch "/var/lib/${dirName}/db-created"
fi
${zoneminder}/bin/zmupdate.pl -nointeractive
'';
serviceConfig = {
User = user;
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
From db38a11228eceea10dc97ecc87023b4919caa918 Mon Sep 17 00:00:00 2001
From: Daniel Fullmer <danielrf12@gmail.com>
Date: Fri, 21 Feb 2020 21:52:00 -0500
Subject: [PATCH] Don't use file timestamp in cache filename

Every file in the nix store has a timestamp of "1", meaning that the
filename would remain constant even when changing zoneminder versions.
This would mean that newer versions would use the existing symlink to an
older version of the source file. We replace SRC_HASH in nix with a
hash of the source used to build zoneminder to ensure this filename is
unique.
---
web/includes/functions.php | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/web/includes/functions.php b/web/includes/functions.php
index 19567a5c1..0242c09bc 100644
--- a/web/includes/functions.php
+++ b/web/includes/functions.php
@@ -2223,7 +2223,8 @@ function cache_bust($file) {
$parts = pathinfo($file);
global $css;
$dirname = preg_replace('/\//', '_', $parts['dirname']);
- $cacheFile = $dirname.'_'.$parts['filename'].'-'.$css.'-'.filemtime($file).'.'.$parts['extension'];
+ $srcHash = '@srcHash@';
+ $cacheFile = $dirname.'_'.$parts['filename'].'-'.$css.'-'.$srcHash.'.'.$parts['extension'];
if ( file_exists(ZM_DIR_CACHE.'/'.$cacheFile) or symlink(ZM_PATH_WEB.'/'.$file, ZM_DIR_CACHE.'/'.$cacheFile) ) {
return 'cache/'.$cacheFile;
} else {
--
2.25.1

26 changes: 17 additions & 9 deletions pkgs/servers/zoneminder/default.nix
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{ stdenv, lib, fetchFromGitHub, fetchurl, cmake, makeWrapper, pkgconfig
{ 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 }:
@@ -78,19 +78,18 @@ let

in stdenv.mkDerivation rec {
pname = "zoneminder";
version = "1.32.3";
version = "1.34.3";

src = fetchFromGitHub {
owner = "ZoneMinder";
repo = "zoneminder";
rev = version;
sha256 = "1sx2fn99861zh0gp8g53ynr1q6yfmymxamn82y54jqj6nv475njz";
sha256 = "0jp7950v36gxxzkwdp5i0312s26czhfsl5ixdxfzn21cx31hhlg0";
};

patches = [
./default-to-http-1dot1.patch
# Explicitly link with dynamic linking library to fix build
./link-with-libdl.patch
./0001-Don-t-use-file-timestamp-in-cache-filename.patch
];

postPatch = ''
@@ -125,6 +124,10 @@ in stdenv.mkDerivation rec {
substituteInPlace scripts/zmdbbackup.in \
--replace /usr/bin/mysqldump ${mysql.client}/bin/mysqldump
substituteInPlace scripts/zmupdate.pl.in \
--replace "'mysql'" "'${mysql.client}/bin/mysql'" \
--replace "'mysqldump'" "'${mysql.client}/bin/mysqldump'"
for f in scripts/ZoneMinder/lib/ZoneMinder/Config.pm.in \
scripts/zmupdate.pl.in \
src/zm_config.h.in \
@@ -133,10 +136,14 @@ in stdenv.mkDerivation rec {
substituteInPlace $f --replace @ZM_CONFIG_SUBDIR@ /etc/zoneminder
done
for f in includes/Event.php views/image.php skins/classic/views/image-ffmpeg.php ; do
substituteInPlace web/$f \
--replace "'ffmpeg " "'${ffmpeg}/bin/ffmpeg "
done
for f in includes/Event.php views/image.php ; do
substituteInPlace web/$f \
--replace "'ffmpeg " "'${ffmpeg}/bin/ffmpeg "
done
substituteInPlace web/includes/functions.php \
--replace "'date " "'${coreutils}/bin/date " \
--subst-var-by srcHash "`basename $out`"
'';

buildInputs = [
@@ -147,6 +154,7 @@ in stdenv.mkDerivation rec {
DateManip DBI DBDmysql LWP SysMmap
# run-time dependencies not checked at build-time
ClassStdFast DataDump DeviceSerialPort JSONMaybeXS LWPProtocolHttps NumberBytesHuman SysCPU SysMemInfo TimeDate
CryptEksblowfish DataEntropy # zmupdate.pl
]);

nativeBuildInputs = [ cmake makeWrapper pkgconfig ];
17 changes: 0 additions & 17 deletions pkgs/servers/zoneminder/link-with-libdl.patch

This file was deleted.