pkgsrc-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
CVS commit: pkgsrc/security/zoneminder
Module Name: pkgsrc
Committed By: gdt
Date: Fri Jul 13 02:05:12 UTC 2018
Modified Files:
pkgsrc/security/zoneminder: Makefile distinfo
pkgsrc/security/zoneminder/patches: patch-src_zm_logger_cpp
Added Files:
pkgsrc/security/zoneminder/patches: patch-src_zm__event.cpp
patch-src_zm__rtp__source.cpp patch-src_zmu.cpp
Log Message:
zoneminder: avoid %ld for time_t (int64_t, not long on arm)
zoneinder uses %ld to print tv.tv_sec, which is of type time_t. On
NetBSD, that's int64_t, which happens to match long on amd64, but not
on arm, and hence printf often segfaults. Kludge around this by
casting to long, which should work for about 20 years, by which time a
proper fix should have arrived in a zoneminder release.
Not yet raised upstream, because our package is 1.28.1 and upstream
has released 1.30.4.
To generate a diff of this commit:
cvs rdiff -u -r1.37 -r1.38 pkgsrc/security/zoneminder/Makefile
cvs rdiff -u -r1.10 -r1.11 pkgsrc/security/zoneminder/distinfo
cvs rdiff -u -r0 -r1.1 \
pkgsrc/security/zoneminder/patches/patch-src_zm__event.cpp \
pkgsrc/security/zoneminder/patches/patch-src_zm__rtp__source.cpp \
pkgsrc/security/zoneminder/patches/patch-src_zmu.cpp
cvs rdiff -u -r1.3 -r1.4 \
pkgsrc/security/zoneminder/patches/patch-src_zm_logger_cpp
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: pkgsrc/security/zoneminder/Makefile
diff -u pkgsrc/security/zoneminder/Makefile:1.37 pkgsrc/security/zoneminder/Makefile:1.38
--- pkgsrc/security/zoneminder/Makefile:1.37 Mon Mar 12 11:17:31 2018
+++ pkgsrc/security/zoneminder/Makefile Fri Jul 13 02:05:11 2018
@@ -1,8 +1,8 @@
-# $NetBSD: Makefile,v 1.37 2018/03/12 11:17:31 wiz Exp $
+# $NetBSD: Makefile,v 1.38 2018/07/13 02:05:11 gdt Exp $
PKGNAME= ${DISTNAME:S/ZoneMinder-/zoneminder-/}
DISTNAME= ZoneMinder-1.28.1
-PKGREVISION= 15
+PKGREVISION= 16
CATEGORIES= security
MASTER_SITES= ${MASTER_SITE_GITHUB:=ZoneMinder/}
GITHUB_PROJECT= ZoneMinder
@@ -127,6 +127,7 @@ DEPENDS+= ${PHP_PKG_PREFIX}-mysql-[0-9]*
DEPENDS+= ${PHP_PKG_PREFIX}-pdo_mysql-[0-9]*:../../databases/php-pdo_mysql
.endif
+# \todo Somehow, this permission setup still fails.
# This directory contains state, so use OWN_DIRS instead of MAKE_DIRS.
ZM_CACHE= ${VARBASE}/cache/zoneminder
OWN_DIRS_PERMS+= ${ZM_CACHE} ${REAL_ROOT_USER} ${REAL_ROOT_GROUP} 755
Index: pkgsrc/security/zoneminder/distinfo
diff -u pkgsrc/security/zoneminder/distinfo:1.10 pkgsrc/security/zoneminder/distinfo:1.11
--- pkgsrc/security/zoneminder/distinfo:1.10 Sat Sep 9 07:55:31 2017
+++ pkgsrc/security/zoneminder/distinfo Fri Jul 13 02:05:11 2018
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.10 2017/09/09 07:55:31 alnsn Exp $
+$NetBSD: distinfo,v 1.11 2018/07/13 02:05:11 gdt Exp $
SHA1 (ZoneMinder-1.28.1.tar.gz) = 3e173ae1aac529b60d79a5fc668c107f0679d0a2
RMD160 (ZoneMinder-1.28.1.tar.gz) = b3cc305656cb5b73d4ac0e21fe937c237467cdd1
@@ -9,7 +9,9 @@ SHA1 (patch-configure_ac) = 110a7a10506b
SHA1 (patch-scripts_ZoneMinder_lib_ZoneMinder_General_pm) = 841d897662958698a4dfcb95dd5bc43bb5fed568
SHA1 (patch-scripts_zm_in) = 8f59085bb9293afa7aeb268000c75988e5371c66
SHA1 (patch-src_Makefile_am) = 0f6571c9d5a3e688544f93d687d266e1b71f0f43
+SHA1 (patch-src_zm__event.cpp) = 2db5a2f85039e711ab6a18af816e0269611fc5f2
SHA1 (patch-src_zm__monitor.cpp) = dcc3816686a6a7c375d4716d3663b4c922c90439
+SHA1 (patch-src_zm__rtp__source.cpp) = eecca36c18a6611745c49686499a16df177abc7f
SHA1 (patch-src_zm__sdp.cpp) = ed89bc14ae557281bb43baca9c90b78d801d8eb1
SHA1 (patch-src_zm__thread.h) = 67dbd1e9c19df63fd120344cc8a36d663a724409
SHA1 (patch-src_zm__timer.h) = 38080d08b5834e3dae713e81488944887ce5848b
@@ -18,11 +20,12 @@ SHA1 (patch-src_zm__utils.h) = dbda8ba52
SHA1 (patch-src_zm_comms_cpp) = d40932a3d0ae4375a649f200d973995d56aa71c7
SHA1 (patch-src_zm_comms_h) = baeb73040ff3ba862f23ad6301de7daba182456e
SHA1 (patch-src_zm_ffmpeg_camera_cpp) = 6ead5f9afbe984aab14fee337093fd0269c6e9d8
-SHA1 (patch-src_zm_logger_cpp) = 3b0373e9d648d25ef4e3e09429199f654f876ccb
+SHA1 (patch-src_zm_logger_cpp) = 6e0124756ef6fe58fb452651337d622ddff6c4ab
SHA1 (patch-src_zm_remote_camera_h) = 0d4bd7dae0188df7e463586250ac2ed530230f3d
SHA1 (patch-src_zm_signal_cpp) = fa11938f55ccd50a1a9e949d6b58dd07773f2690
SHA1 (patch-src_zm_thread_cpp) = c5f64697c3024c6c382f9ae2c5dbe9c21b529b6e
SHA1 (patch-src_zmc_cpp) = d1046ddfad3a88bdd30501237834ec9e9fbc4c83
SHA1 (patch-src_zmf.cpp) = a059b9ae068037c6f68c16dab861ed830dd1c7e2
+SHA1 (patch-src_zmu.cpp) = a95e81285167fc8df77bc059c7b7f09cc36ff922
SHA1 (patch-web_Makefile.am) = ddb3815fa1b1799658034789302c8d3840f2b894
SHA1 (patch-web_ajax_stream_php) = e8f811e63bedec03345b74db72c3d8014b3cc7f6
Index: pkgsrc/security/zoneminder/patches/patch-src_zm_logger_cpp
diff -u pkgsrc/security/zoneminder/patches/patch-src_zm_logger_cpp:1.3 pkgsrc/security/zoneminder/patches/patch-src_zm_logger_cpp:1.4
--- pkgsrc/security/zoneminder/patches/patch-src_zm_logger_cpp:1.3 Mon Apr 29 21:31:13 2013
+++ pkgsrc/security/zoneminder/patches/patch-src_zm_logger_cpp Fri Jul 13 02:05:11 2018
@@ -1,11 +1,11 @@
-$NetBSD: patch-src_zm_logger_cpp,v 1.3 2013/04/29 21:31:13 joerg Exp $
+$NetBSD: patch-src_zm_logger_cpp,v 1.4 2018/07/13 02:05:11 gdt Exp $
If the system has syscall() but not SYS_gettid [E.g. NetBSD], don't attempt
to use SYS_gettid.
---- src/zm_logger.cpp.orig 2011-06-28 11:07:35.000000000 +0000
+--- src/zm_logger.cpp.orig 2015-02-05 02:52:37.000000000 +0000
+++ src/zm_logger.cpp
-@@ -33,6 +33,7 @@
+@@ -31,6 +31,7 @@
#include <signal.h>
#include <stdarg.h>
#include <errno.h>
@@ -13,7 +13,7 @@ to use SYS_gettid.
bool Logger::smInitialised = false;
Logger *Logger::smInstance = 0;
-@@ -515,7 +516,7 @@ void Logger::logPrint( bool hex, const c
+@@ -527,7 +528,7 @@ void Logger::logPrint( bool hex, const c
#endif
pid_t tid;
@@ -22,3 +22,12 @@ to use SYS_gettid.
if ( (tid = syscall(SYS_gettid)) < 0 ) // Thread/Process id
#endif // HAVE_SYSCALL
tid = getpid(); // Process id
+@@ -581,7 +582,7 @@ void Logger::logPrint( bool hex, const c
+ char escapedString[(strlen(syslogStart)*2)+1];
+
+ mysql_real_escape_string( &mDbConnection, escapedString, syslogStart, strlen(syslogStart) );
+- snprintf( sql, sizeof(sql), "insert into Logs ( TimeKey, Component, Pid, Level, Code, Message, File, Line ) values ( %ld.%06ld, '%s', %d, %d, '%s', '%s', '%s', %d )", timeVal.tv_sec,
timeVal.tv_usec, mId.c_str(), tid, level, classString, escapedString, file, line );
++ snprintf( sql, sizeof(sql), "insert into Logs ( TimeKey, Component, Pid, Level, Code, Message, File, Line ) values ( %ld.%06ld, '%s', %d, %d, '%s', '%s', '%s', %d )", (long)
timeVal.tv_sec, timeVal.tv_usec, mId.c_str(), tid, level, classString, escapedString, file, line );
+ if ( mysql_query( &mDbConnection, sql ) )
+ {
+ databaseLevel( NOLOG );
Added files:
Index: pkgsrc/security/zoneminder/patches/patch-src_zm__event.cpp
diff -u /dev/null pkgsrc/security/zoneminder/patches/patch-src_zm__event.cpp:1.1
--- /dev/null Fri Jul 13 02:05:12 2018
+++ pkgsrc/security/zoneminder/patches/patch-src_zm__event.cpp Fri Jul 13 02:05:11 2018
@@ -0,0 +1,57 @@
+$NetBSD: patch-src_zm__event.cpp,v 1.1 2018/07/13 02:05:11 gdt Exp $
+
+zoneminder uses %ld for time_t, which is troublesome on NetBSD mrm and
+presumably i386. (Note that there are multiple patch files for the
+same issue.)
+
+Not yet sent upstream -- needs update to latest release first, where
+it might be fixed, or the patch might simply need to be rebased.
+Also, this fix is expedient and probably a better fix is appropriate.
+
+--- src/zm_event.cpp.orig 2015-02-05 02:52:37.000000000 +0000
++++ src/zm_event.cpp
+@@ -74,7 +74,7 @@ Event::Event( Monitor *p_monitor, struct
+ static char sql[ZM_SQL_MED_BUFSIZ];
+
+ struct tm *stime = localtime( &start_time.tv_sec );
+- snprintf( sql, sizeof(sql), "insert into Events ( MonitorId, Name, StartTime, Width, Height, Cause, Notes ) values ( %d, 'New Event', from_unixtime( %ld ), %d, %d, '%s', '%s' )", monitor->Id(),
start_time.tv_sec, monitor->Width(), monitor->Height(), cause.c_str(), notes.c_str() );
++ snprintf( sql, sizeof(sql), "insert into Events ( MonitorId, Name, StartTime, Width, Height, Cause, Notes ) values ( %d, 'New Event', from_unixtime( %ld ), %d, %d, '%s', '%s' )", monitor->Id(),
(long) start_time.tv_sec, monitor->Width(), monitor->Height(), cause.c_str(), notes.c_str() );
+ if ( mysql_query( &dbconn, sql ) )
+ {
+ Error( "Can't insert event: %s", mysql_error( &dbconn ) );
+@@ -172,7 +172,7 @@ Event::~Event()
+
+ Debug( 1, "Adding closing frame %d to DB", frames );
+ static char sql[ZM_SQL_SML_BUFSIZ];
+- snprintf( sql, sizeof(sql), "insert into Frames ( EventId, FrameId, TimeStamp, Delta ) values ( %d, %d, from_unixtime( %ld ), %s%ld.%02ld )", id, frames, end_time.tv_sec,
delta_time.positive?"":"-", delta_time.sec, delta_time.fsec );
++ snprintf( sql, sizeof(sql), "insert into Frames ( EventId, FrameId, TimeStamp, Delta ) values ( %d, %d, from_unixtime( %ld ), %s%ld.%02ld )", id, frames, (long) end_time.tv_sec,
delta_time.positive?"":"-", delta_time.sec, delta_time.fsec );
+ if ( mysql_query( &dbconn, sql ) )
+ {
+ Error( "Can't insert frame: %s", mysql_error( &dbconn ) );
+@@ -185,7 +185,7 @@ Event::~Event()
+ struct DeltaTimeval delta_time;
+ DELTA_TIMEVAL( delta_time, end_time, start_time, DT_PREC_2 );
+
+- snprintf( sql, sizeof(sql), "update Events set Name='%s%d', EndTime = from_unixtime( %ld ), Length = %s%ld.%02ld, Frames = %d, AlarmFrames = %d, TotScore = %d, AvgScore = %d, MaxScore = %d
where Id = %d", monitor->EventPrefix(), id, end_time.tv_sec, delta_time.positive?"":"-", delta_time.sec, delta_time.fsec, frames, alarm_frames, tot_score,
(int)(alarm_frames?(tot_score/alarm_frames):0), max_score, id );
++ snprintf( sql, sizeof(sql), "update Events set Name='%s%d', EndTime = from_unixtime( %ld ), Length = %s%ld.%02ld, Frames = %d, AlarmFrames = %d, TotScore = %d, AvgScore = %d, MaxScore = %d
where Id = %d", monitor->EventPrefix(), id, (long) end_time.tv_sec, delta_time.positive?"":"-", delta_time.sec, delta_time.fsec, frames, alarm_frames, tot_score,
(int)(alarm_frames?(tot_score/alarm_frames):0), max_score, id );
+ if ( mysql_query( &dbconn, sql ) )
+ {
+ Error( "Can't update event: %s", mysql_error( &dbconn ) );
+@@ -520,7 +520,7 @@ void Event::AddFramesInternal( int n_fra
+ DELTA_TIMEVAL( delta_time, *(timestamps[i]), start_time, DT_PREC_2 );
+
+ int sql_len = strlen(sql);
+- snprintf( sql+sql_len, sizeof(sql)-sql_len, "( %d, %d, from_unixtime(%ld), %s%ld.%02ld ), ", id, frames, timestamps[i]->tv_sec, delta_time.positive?"":"-", delta_time.sec, delta_time.fsec );
++ snprintf( sql+sql_len, sizeof(sql)-sql_len, "( %d, %d, from_unixtime(%ld), %s%ld.%02ld ), ", id, frames, (long) timestamps[i]->tv_sec, delta_time.positive?"":"-", delta_time.sec,
delta_time.fsec );
+
+ frameCount++;
+ }
+@@ -569,7 +569,7 @@ void Event::AddFrame( Image *image, stru
+
+ Debug( 1, "Adding frame %d to DB", frames );
+ static char sql[ZM_SQL_MED_BUFSIZ];
+- snprintf( sql, sizeof(sql), "insert into Frames ( EventId, FrameId, Type, TimeStamp, Delta, Score ) values ( %d, %d, '%s', from_unixtime( %ld ), %s%ld.%02ld, %d )", id, frames, frame_type,
timestamp.tv_sec, delta_time.positive?"":"-", delta_time.sec, delta_time.fsec, score );
++ snprintf( sql, sizeof(sql), "insert into Frames ( EventId, FrameId, Type, TimeStamp, Delta, Score ) values ( %d, %d, '%s', from_unixtime( %ld ), %s%ld.%02ld, %d )", id, frames, frame_type,
(long) timestamp.tv_sec, delta_time.positive?"":"-", delta_time.sec, delta_time.fsec, score );
+ if ( mysql_query( &dbconn, sql ) )
+ {
+ Error( "Can't insert frame: %s", mysql_error( &dbconn ) );
Index: pkgsrc/security/zoneminder/patches/patch-src_zm__rtp__source.cpp
diff -u /dev/null pkgsrc/security/zoneminder/patches/patch-src_zm__rtp__source.cpp:1.1
--- /dev/null Fri Jul 13 02:05:12 2018
+++ pkgsrc/security/zoneminder/patches/patch-src_zm__rtp__source.cpp Fri Jul 13 02:05:11 2018
@@ -0,0 +1,24 @@
+$NetBSD: patch-src_zm__rtp__source.cpp,v 1.1 2018/07/13 02:05:11 gdt Exp $
+
+--- src/zm_rtp_source.cpp.orig 2015-02-05 02:52:37.000000000 +0000
++++ src/zm_rtp_source.cpp
+@@ -197,7 +197,7 @@ void RtpSource::updateRtcpData( uint32_t
+ {
+ struct timeval ntpTime = tvMake( ntpTimeSecs, suseconds_t((USEC_PER_SEC*(ntpTimeFrac>>16))/(1<<16)) );
+
+- Debug( 5, "ntpTime: %ld.%06ld, rtpTime: %x", ntpTime.tv_sec, ntpTime.tv_usec, rtpTime );
++ Debug( 5, "ntpTime: %ld.%06ld, rtpTime: %x", (long) ntpTime.tv_sec, ntpTime.tv_usec, rtpTime );
+
+ if ( mBaseTimeNtp.tv_sec == 0 )
+ {
+@@ -207,8 +207,8 @@ void RtpSource::updateRtcpData( uint32_t
+ }
+ else if ( !mRtpClock )
+ {
+- Debug( 5, "lastSrNtpTime: %ld.%06ld, rtpTime: %x", mLastSrTimeNtp.tv_sec, mLastSrTimeNtp.tv_usec, rtpTime );
+- Debug( 5, "ntpTime: %ld.%06ld, rtpTime: %x", ntpTime.tv_sec, ntpTime.tv_usec, rtpTime );
++ Debug( 5, "lastSrNtpTime: %ld.%06ld, rtpTime: %x", (long) mLastSrTimeNtp.tv_sec, mLastSrTimeNtp.tv_usec, rtpTime );
++ Debug( 5, "ntpTime: %ld.%06ld, rtpTime: %x", (long) ntpTime.tv_sec, ntpTime.tv_usec, rtpTime );
+
+ double diffNtpTime = tvDiffSec( mBaseTimeNtp, ntpTime );
+ uint32_t diffRtpTime = rtpTime - mBaseTimeRtp;
Index: pkgsrc/security/zoneminder/patches/patch-src_zmu.cpp
diff -u /dev/null pkgsrc/security/zoneminder/patches/patch-src_zmu.cpp:1.1
--- /dev/null Fri Jul 13 02:05:12 2018
+++ pkgsrc/security/zoneminder/patches/patch-src_zmu.cpp Fri Jul 13 02:05:11 2018
@@ -0,0 +1,31 @@
+$NetBSD: patch-src_zmu.cpp,v 1.1 2018/07/13 02:05:11 gdt Exp $
+
+--- src/zmu.cpp.orig 2015-02-05 02:52:37.000000000 +0000
++++ src/zmu.cpp
+@@ -457,7 +457,7 @@ int main( int argc, char *argv[] )
+ else
+ {
+ if ( have_output ) printf( "%c", separator );
+- printf( "%ld.%02ld", timestamp.tv_sec, timestamp.tv_usec/10000 );
++ printf( "%ld.%02ld", (long) timestamp.tv_sec, timestamp.tv_usec/10000 );
+ have_output = true;
+ }
+ }
+@@ -729,7 +729,7 @@ int main( int argc, char *argv[] )
+ function,
+ monitor->GetState(),
+ monitor->GetTriggerState(),
+- tv.tv_sec, tv.tv_usec/10000,
++ (long) tv.tv_sec, tv.tv_usec/10000,
+ monitor->GetLastReadIndex(),
+ monitor->GetLastWriteIndex(),
+ monitor->GetLastEvent(),
+@@ -746,7 +746,7 @@ int main( int argc, char *argv[] )
+ function,
+ 0,
+ 0,
+- tv.tv_sec, tv.tv_usec/10000,
++ (long) tv.tv_sec, tv.tv_usec/10000,
+ 0,
+ 0,
+ 0,
Home |
Main Index |
Thread Index |
Old Index