Skip to content
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
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: c5e223e12024
Choose a base ref
...
head repository: NixOS/nixpkgs
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 93745d243b4e
Choose a head ref
  • 5 commits
  • 4 files changed
  • 2 contributors

Commits on Mar 7, 2020

  1. Copy the full SHA
    2685e45 View commit details
  2. Copy the full SHA
    630de55 View commit details
  3. Copy the full SHA
    cb5da4e View commit details
  4. Copy the full SHA
    ce34b92 View commit details
  5. Merge pull request #79488 from danielfullmer/zoneminder-1.34.2

    zoneminder: 1.32.3 -> 1.34.3
    veprbl authored Mar 7, 2020
    Copy the full SHA
    93745d2 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.