Merge branch 'master' into multi-server
Conflicts: src/zm_monitor.cpp src/zm_monitor.hpull/1088/head
commit
880e77b096
|
@ -4,7 +4,7 @@
|
|||
#
|
||||
cmake_minimum_required (VERSION 2.6)
|
||||
project (zoneminder)
|
||||
set(zoneminder_VERSION "1.28.100")
|
||||
set(zoneminder_VERSION "1.28.103")
|
||||
# make API version a minor of ZM version
|
||||
set(zoneminder_API_VERSION "${zoneminder_VERSION}.1")
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
# For instructions on building with cmake, please see INSTALL
|
||||
#
|
||||
AC_PREREQ(2.59)
|
||||
AC_INIT(zm,1.28.100,[http://www.zoneminder.com/forums/ - Please check FAQ first],zoneminder,http://www.zoneminder.com/downloads.html)
|
||||
AC_INIT(zm,1.28.103,[http://www.zoneminder.com/forums/ - Please check FAQ first],zoneminder,http://www.zoneminder.com/downloads.html)
|
||||
AM_INIT_AUTOMAKE
|
||||
AC_CONFIG_SRCDIR(src/zm.h)
|
||||
AC_CONFIG_HEADERS(config.h)
|
||||
|
|
251
connect
251
connect
|
@ -1,251 +0,0 @@
|
|||
./scripts/ZoneMinder/lib/ZoneMinder/Memory/Shared.pm: return( defined($monitor->{ShmKey})?$monitor->{ShmKey}:undef );
|
||||
./scripts/ZoneMinder/lib/ZoneMinder/Memory/Shared.pm: if ( !defined($monitor->{ShmId}) )
|
||||
./scripts/ZoneMinder/lib/ZoneMinder/Memory/Shared.pm: my $shm_key = (hex($Config{ZM_SHM_KEY})&0xffff0000)|$monitor->{Id};
|
||||
./scripts/ZoneMinder/lib/ZoneMinder/Memory/Shared.pm: Error( sprintf( "Can't get shared memory id '%x', %d: $!\n", $shm_key, $monitor->{Id} ) );
|
||||
./scripts/ZoneMinder/lib/ZoneMinder/Memory/Shared.pm: $monitor->{ShmKey} = $shm_key;
|
||||
./scripts/ZoneMinder/lib/ZoneMinder/Memory/Shared.pm: $monitor->{ShmId} = $shm_id;
|
||||
./scripts/ZoneMinder/lib/ZoneMinder/Memory/Shared.pm: delete $monitor->{ShmId};
|
||||
./scripts/ZoneMinder/lib/ZoneMinder/Memory/Shared.pm: my $shm_key = $monitor->{ShmKey};
|
||||
./scripts/ZoneMinder/lib/ZoneMinder/Memory/Shared.pm: my $shm_id = $monitor->{ShmId};
|
||||
./scripts/ZoneMinder/lib/ZoneMinder/Memory/Shared.pm: my $shm_key = $monitor->{ShmKey};
|
||||
./scripts/ZoneMinder/lib/ZoneMinder/Memory/Shared.pm: my $shm_id = $monitor->{ShmId};
|
||||
./scripts/ZoneMinder/lib/ZoneMinder/Memory/Mapped.pm: return( defined($monitor->{MMapAddr})?$monitor->{MMapAddr}:undef );
|
||||
./scripts/ZoneMinder/lib/ZoneMinder/Memory/Mapped.pm: if ( !defined($monitor->{MMapAddr}) )
|
||||
./scripts/ZoneMinder/lib/ZoneMinder/Memory/Mapped.pm: my $mmap_file = $Config{ZM_PATH_MAP}."/zm.mmap.".$monitor->{Id};
|
||||
./scripts/ZoneMinder/lib/ZoneMinder/Memory/Mapped.pm: $monitor->{MMapHandle} = \*MMAP;
|
||||
./scripts/ZoneMinder/lib/ZoneMinder/Memory/Mapped.pm: $monitor->{MMapAddr} = $mmap_addr;
|
||||
./scripts/ZoneMinder/lib/ZoneMinder/Memory/Mapped.pm: $monitor->{MMap} = \$mmap;
|
||||
./scripts/ZoneMinder/lib/ZoneMinder/Memory/Mapped.pm: if ( $monitor->{MMap} )
|
||||
./scripts/ZoneMinder/lib/ZoneMinder/Memory/Mapped.pm: if ( ! munmap( ${$monitor->{MMap}} ) ) {
|
||||
./scripts/ZoneMinder/lib/ZoneMinder/Memory/Mapped.pm: delete $monitor->{MMap};
|
||||
./scripts/ZoneMinder/lib/ZoneMinder/Memory/Mapped.pm: if ( $monitor->{MMapAddr} )
|
||||
./scripts/ZoneMinder/lib/ZoneMinder/Memory/Mapped.pm: delete $monitor->{MMapAddr};
|
||||
./scripts/ZoneMinder/lib/ZoneMinder/Memory/Mapped.pm: if ( $monitor->{MMapHandle} )
|
||||
./scripts/ZoneMinder/lib/ZoneMinder/Memory/Mapped.pm: close( $monitor->{MMapHandle} );
|
||||
./scripts/ZoneMinder/lib/ZoneMinder/Memory/Mapped.pm: delete $monitor->{MMapHandle};
|
||||
./scripts/ZoneMinder/lib/ZoneMinder/Memory/Mapped.pm: my $mmap = $monitor->{MMap};
|
||||
./scripts/ZoneMinder/lib/ZoneMinder/Memory/Mapped.pm: Error( sprintf( "Can't read from mapped memory for monitor '%d', gone away?", $monitor->{Id} ) );
|
||||
./scripts/ZoneMinder/lib/ZoneMinder/Memory/Mapped.pm: my $mmap = $monitor->{MMap};
|
||||
./scripts/ZoneMinder/lib/ZoneMinder/Memory/Mapped.pm: Error( sprintf( "Can't write mapped memory for monitor '%d', gone away?", $monitor->{Id} ) );
|
||||
./scripts/ZoneMinder/lib/ZoneMinder/Memory.pm.in: Error( "Shared data size conflict in shared_data for monitor ".$monitor->{Name}.", expected ".$mem_data->{shared_data}->{size}.", got ".$sd_size );
|
||||
./scripts/ZoneMinder/lib/ZoneMinder/Memory.pm.in: Debug( "Shared data size conflict in shared_data for monitor ".$monitor->{Name}.", expected ".$mem_data->{shared_data}->{size}.", got ".$sd_size );
|
||||
./scripts/ZoneMinder/lib/ZoneMinder/Memory.pm.in: Error( "Shared data size conflict in trigger_data for monitor ".$monitor->{Name}.", expected ".$mem_data->{triggger_data}->{size}.", got ".$td_size );
|
||||
./scripts/ZoneMinder/lib/ZoneMinder/Memory.pm.in: Debug( "Shared data size conflict in trigger_data for monitor ".$monitor->{Name}.", expected ".$mem_data->{triggger_data}->{size}.", got ".$td_size );
|
||||
./scripts/ZoneMinder/lib/ZoneMinder/Memory.pm.in: Error( "Unable to read '$field' from memory for monitor ".$monitor->{Id} );
|
||||
./scripts/ZoneMinder/lib/ZoneMinder/Memory.pm.in: Error( "Unable to write '$value' to '$field' in memory for monitor ".$monitor->{Id} );
|
||||
./scripts/zmtrigger.pl.in: #print( "$monitor->{Id}: S:$state, LE:$last_event\n" );
|
||||
./scripts/zmtrigger.pl.in: #print( "$monitor->{Id}: mS:$monitor->{LastState}, mLE:$monitor->{LastEvent}\n" );
|
||||
./scripts/zmtrigger.pl.in: if ( !defined($monitor->{LastEvent}) || ($last_event != $monitor->{LastEvent}) ) # A new event
|
||||
./scripts/zmtrigger.pl.in: push( @out_messages, $monitor->{Id}."|on|".time()."|".$last_event );
|
||||
./scripts/zmtrigger.pl.in: elsif ( ($state == STATE_IDLE && $monitor->{LastState} != STATE_IDLE) || ($state == STATE_TAPE && $monitor->{LastState} != STATE_TAPE) ) # Out of alarm state
|
||||
./scripts/zmtrigger.pl.in: push( @out_messages, $monitor->{Id}."|off|".time()."|".$last_event );
|
||||
./scripts/zmtrigger.pl.in: elsif ( defined($monitor->{LastEvent}) && ($last_event != $monitor->{LastEvent}) ) # We've missed a whole event
|
||||
./scripts/zmtrigger.pl.in: push( @out_messages, $monitor->{Id}."|on|".time()."|".$last_event );
|
||||
./scripts/zmtrigger.pl.in: push( @out_messages, $monitor->{Id}."|off|".time()."|".$last_event );
|
||||
./scripts/zmtrigger.pl.in: $monitor->{LastState} = $state;
|
||||
./scripts/zmtrigger.pl.in: $monitor->{LastEvent} = $last_event;
|
||||
./scripts/zmtrigger.pl.in: if ( defined($monitors{$monitor->{Id}}->{LastState}) )
|
||||
./scripts/zmtrigger.pl.in: $monitor->{LastState} = $monitors{$monitor->{Id}}->{LastState};
|
||||
./scripts/zmtrigger.pl.in: $monitor->{LastState} = zmGetMonitorState( $monitor );
|
||||
./scripts/zmtrigger.pl.in: if ( defined($monitors{$monitor->{Id}}->{LastEvent}) )
|
||||
./scripts/zmtrigger.pl.in: $monitor->{LastEvent} = $monitors{$monitor->{Id}}->{LastEvent};
|
||||
./scripts/zmtrigger.pl.in: $monitor->{LastEvent} = zmGetLastEvent( $monitor );
|
||||
./scripts/zmtrigger.pl.in: $new_monitors{$monitor->{Id}} = $monitor;
|
||||
./scripts/zmtrigger.pl.in: next if ( !$monitor->{Enabled} );
|
||||
./scripts/zmx10.pl.in: if ( defined( $monitor->{LastState} ) )
|
||||
./scripts/zmx10.pl.in: if ( ($state == STATE_ALARM || $state == STATE_ALERT) && ($monitor->{LastState} == STATE_IDLE || $monitor->{LastState} == STATE_TAPE) ) # Gone into alarm state
|
||||
./scripts/zmx10.pl.in: $task_list = $monitor->{"ON_list"};
|
||||
./scripts/zmx10.pl.in: elsif ( ($state == STATE_IDLE && $monitor->{LastState} != STATE_IDLE) || ($state == STATE_TAPE && $monitor->{LastState} != STATE_TAPE) ) # Come out of alarm state
|
||||
./scripts/zmx10.pl.in: $task_list = $monitor->{"OFF_list"};
|
||||
./scripts/zmx10.pl.in: $monitor->{LastState} = $state;
|
||||
./scripts/zmx10.pl.in: Debug( "Adding to device list, uc:$unit_code, ev:$event, mo:".$monitor->{Id}.", fu:$function, li:$limit\n" );
|
||||
./scripts/zmx10.pl.in: Debug( "Adding to monitor list, uc:$unit_code, ev:$event, mo:".$monitor->{Id}.", fu:$function, li:$limit\n" );
|
||||
./scripts/zmx10.pl.in: my $task = { type=>"monitor", device=>$device, id=>$monitor->{Id}, function=>$function };
|
||||
./scripts/zmx10.pl.in: my $task_list = $monitor->{$event."_list"};
|
||||
./scripts/zmx10.pl.in: $task_list = $monitor->{$event."_list"} = [];
|
||||
./scripts/zmx10.pl.in: $monitor_hash{$monitor->{Id}} = $monitor;
|
||||
./scripts/zmx10.pl.in: if ( $monitor->{Activation} )
|
||||
./scripts/zmx10.pl.in: Debug( "$monitor->{Name} has active string '$monitor->{Activation}'\n" );
|
||||
./scripts/zmx10.pl.in: foreach my $code_string ( split( /,/, $monitor->{Activation} ) )
|
||||
./scripts/zmx10.pl.in: if ( $monitor->{AlarmInput} )
|
||||
./scripts/zmx10.pl.in: Debug( "$monitor->{Name} has alarm input string '$monitor->{AlarmInput}'\n" );
|
||||
./scripts/zmx10.pl.in: foreach my $code_string ( split( /,/, $monitor->{AlarmInput} ) )
|
||||
./scripts/zmx10.pl.in: if ( $monitor->{AlarmOutput} )
|
||||
./scripts/zmx10.pl.in: Debug( "$monitor->{Name} has alarm output string '$monitor->{AlarmOutput}'\n" );
|
||||
./scripts/zmx10.pl.in: foreach my $code_string ( split( /,/, $monitor->{AlarmOutput} ) )
|
||||
./scripts/zmfilter.pl.in: $text =~ s/%MET%/$monitor->{EventCount}/g;
|
||||
./scripts/zmfilter.pl.in: $text =~ s/%MEH%/$monitor->{HourEventCount}/g;
|
||||
./scripts/zmfilter.pl.in: $text =~ s/%MED%/$monitor->{DayEventCount}/g;
|
||||
./scripts/zmfilter.pl.in: $text =~ s/%MEW%/$monitor->{WeekEventCount}/g;
|
||||
./scripts/zmfilter.pl.in: $text =~ s/%MEM%/$monitor->{MonthEventCount}/g;
|
||||
./scripts/zmfilter.pl.in: $text =~ s/%MEA%/$monitor->{ArchEventCount}/g;
|
||||
./scripts/zmaudit.pl.in: Debug( "Found database monitor '$monitor->{Id}'" );
|
||||
./scripts/zmaudit.pl.in: my $db_events = $db_monitors->{$monitor->{Id}} = {};
|
||||
./scripts/zmaudit.pl.in: my $res = $eventSelectSth->execute( $monitor->{Id} ) or Fatal( "Can't execute: ".$eventSelectSth->errstr() );
|
||||
./scripts/zmpkg.pl.in: if ( $monitor->{Id} =~ /^$definition->{Id}$/ )
|
||||
./scripts/zmpkg.pl.in: $monitor->{NewFunction} = $definition->{Function};
|
||||
./scripts/zmpkg.pl.in: $monitor->{NewEnabled} = $definition->{Enabled};
|
||||
./scripts/zmpkg.pl.in: #next if ( !$monitor->{NewFunction} );
|
||||
./scripts/zmpkg.pl.in: $monitor->{NewFunction} = 'None' if ( !$monitor->{NewFunction} );
|
||||
./scripts/zmpkg.pl.in: $monitor->{NewEnabled} = 0 if ( !$monitor->{NewEnabled} );
|
||||
./scripts/zmpkg.pl.in: if ( $monitor->{Function} ne $monitor->{NewFunction} || $monitor->{Enabled} ne $monitor->{NewEnabled} )
|
||||
./scripts/zmpkg.pl.in: my $res = $sth->execute( $monitor->{NewFunction}, $monitor->{NewEnabled}, $monitor->{Id} ) or Fatal( "Can't execute: ".$sth->errstr() );
|
||||
./scripts/zmpkg.pl.in: if ( $monitor->{Function} ne 'None' )
|
||||
./scripts/zmpkg.pl.in: if ( $monitor->{Type} eq 'Local' )
|
||||
./scripts/zmpkg.pl.in: runCommand( "zmdc.pl start zmc -d $monitor->{Device}" );
|
||||
./scripts/zmpkg.pl.in: runCommand( "zmdc.pl start zmc -m $monitor->{Id}" );
|
||||
./scripts/zmpkg.pl.in: if ( $monitor->{Function} ne 'Monitor' )
|
||||
./scripts/zmpkg.pl.in: runCommand( "zmdc.pl start zmf -m $monitor->{Id}" );
|
||||
./scripts/zmpkg.pl.in: runCommand( "zmdc.pl start zma -m $monitor->{Id}" );
|
||||
./scripts/zmpkg.pl.in: if ( $monitor->{Function} eq 'Modect' || $monitor->{Function} eq 'Mocord' )
|
||||
./scripts/zmpkg.pl.in: if ( $monitor->{Controllable} && $monitor->{TrackMotion} )
|
||||
./scripts/zmpkg.pl.in: runCommand( "zmdc.pl start zmtrack.pl -m $monitor->{Id}" );
|
||||
./scripts/zmcontrol.pl.in: my $protocol = $monitor->{Protocol};
|
||||
./scripts/zmupdate.pl.in: if ( -d $monitor->{Name} )
|
||||
./scripts/zmupdate.pl.in: rename( $monitor->{Name}, $monitor->{Id} ) or warn( "Can't rename existing monitor directory '$monitor->{Name}' to '$monitor->{Id}': $!" );
|
||||
./scripts/zmupdate.pl.in: symlink( $monitor->{Id}, $monitor->{Name} ) or warn( "Can't symlink monitor directory '$monitor->{Id}' to '$monitor->{Name}': $!" );
|
||||
./scripts/zmupdate.pl.in: my $res = $sth->execute( $monitor->{Width}, $monitor->{Height}, $monitor->{Id} ) or die( "Can't execute: ".$sth->errstr() );
|
||||
./scripts/zmupdate.pl.in: my $res = $sth->execute( $sequence++, $monitor->{Id} ) or die( "Can't execute: ".$sth->errstr() );
|
||||
./scripts/zmupdate.pl.in: if ( $db_monitor->{LabelFormat} =~ /\%\%s/ )
|
||||
./scripts/zmupdate.pl.in: $db_monitor->{LabelFormat} =~ s/\%\%s/%N/;
|
||||
./scripts/zmupdate.pl.in: $db_monitor->{LabelFormat} =~ s/\%\%s/%Q/;
|
||||
./scripts/zmupdate.pl.in: my $res = $sth->execute( $db_monitor->{LabelFormat}, $db_monitor->{Id} ) or die( "Can't execute: ".$sth->errstr() );
|
||||
./scripts/zmtrack.pl.in:if ( !$monitor->{Controllable} )
|
||||
./scripts/zmtrack.pl.in:if ( !$monitor->{TrackMotion} )
|
||||
./scripts/zmtrack.pl.in:if ( !$monitor->{CanMoveMap} )
|
||||
./scripts/zmtrack.pl.in: if ( $monitor->{CanMoveRel} )
|
||||
./scripts/zmtrack.pl.in: sleep( $monitor->{TrackDelay} );
|
||||
./scripts/zmtrack.pl.in: my $ctrlCommand = ZM_PATH_BIN."/zmcontrol.pl -i ".$monitor->{Id};
|
||||
./scripts/zmtrack.pl.in: $ctrlCommand .= " --command=".($monitor->{CanMoveMap}?"moveMap":"movePseudoMap")." --xcoord=$x --ycoord=$y";
|
||||
./scripts/zmtrack.pl.in: my $ctrlCommand = ZM_PATH_BIN."/zmcontrol.pl -i ".$monitor->{Id};
|
||||
./scripts/zmtrack.pl.in: if ( $monitor->{ReturnLocation} > 0 )
|
||||
./scripts/zmtrack.pl.in: $ctrlCommand .= " --command=presetGoto --preset=".$monitor->{ReturnLocation};
|
||||
./scripts/zmtrack.pl.in:if ( ($monitor->{ReturnLocation} >= 0) )
|
||||
./scripts/zmtrack.pl.in: if ( ($monitor->{ReturnLocation} >= 0) && ($last_alarm > 0) && ((time()-$last_alarm) > $monitor->{ReturnDelay}) )
|
||||
./scripts/zmtrack.pl.in: Debug( "Returning to location ".$monitor->{ReturnLocation}."\n" );
|
||||
./scripts/zmwatch.pl.in: if ( $monitor->{Function} ne 'None' )
|
||||
./scripts/zmwatch.pl.in: my $max_image_delay = ($monitor->{MaxFPS}&&($monitor->{MaxFPS}>0)&&($monitor->{MaxFPS}<1))?(3/$monitor->{MaxFPS}):$Config{ZM_WATCH_MAX_DELAY};
|
||||
./scripts/zmwatch.pl.in: Debug( "Monitor $monitor->{Id} last captured $image_delay seconds ago, max is $max_image_delay\n" );
|
||||
./scripts/zmwatch.pl.in: Info( "Restarting capture daemon for ".$monitor->{Name}.", time since last capture $image_delay seconds ($now-$image_time)\n" );
|
||||
./scripts/zmwatch.pl.in: #Info( "Restarting capture daemon for ".$monitor->{Name}.", shared data not valid\n" );
|
||||
./scripts/zmwatch.pl.in: if ( $monitor->{Type} eq 'Local' )
|
||||
./scripts/zmwatch.pl.in: $command = "zmdc.pl restart zmc -d $monitor->{Device}";
|
||||
./scripts/zmwatch.pl.in: $command = "zmdc.pl restart zmc -m $monitor->{Id}";
|
||||
./scripts/zmwatch.pl.in: elsif ( $monitor->{Function} ne 'Monitor' )
|
||||
./scripts/zmwatch.pl.in: my $max_image_delay = ($monitor->{MaxFPS}&&($monitor->{MaxFPS}>0)&&($monitor->{MaxFPS}<1))?(3/$monitor->{MaxFPS}):$Config{ZM_WATCH_MAX_DELAY};
|
||||
./scripts/zmwatch.pl.in: Debug( "Monitor $monitor->{Id} last analysed $image_delay seconds ago, max is $max_image_delay\n" );
|
||||
./scripts/zmwatch.pl.in: Info( "Restarting analysis daemon for ".$monitor->{Name}.", time since last analysis $image_delay seconds ($now-$image_time)\n" );
|
||||
./scripts/zmwatch.pl.in: my $command = "zmdc.pl restart zma -m ".$monitor->{Id};
|
||||
./src/zm_monitor.cpp: monitor->AddZones( n_zones, zones );
|
||||
./src/zm_monitor.cpp: status_data.id = monitor->Id();
|
||||
./src/zm_monitor.cpp: status_data.fps = monitor->GetFPS();
|
||||
./src/zm_monitor.cpp: status_data.state = monitor->shared_data->state;
|
||||
./src/zm_monitor.cpp: //status_data.enabled = monitor->shared_data->active;
|
||||
./src/zm_monitor.cpp: status_data.enabled = monitor->trigger_data->trigger_state!=Monitor::TRIGGER_OFF;
|
||||
./src/zm_monitor.cpp: status_data.forced = monitor->trigger_data->trigger_state==Monitor::TRIGGER_ON;
|
||||
./src/zm_monitor.cpp: updateFrameRate( monitor->GetFPS() );
|
||||
./src/zm_monitor.cpp: monitor->TimestampImage( send_image, timestamp );
|
||||
./src/zm_monitor.cpp: monitor->SingleImage( scale );
|
||||
./src/zm_monitor.cpp: updateFrameRate( monitor->GetFPS() );
|
||||
./src/zm_monitor.cpp: int last_read_index = monitor->image_buffer_count;
|
||||
./src/zm_monitor.cpp: snprintf( &(swap_path[strlen(swap_path)]), sizeof(swap_path)-strlen(swap_path), "/zmswap-m%d", monitor->Id() );
|
||||
./src/zm_monitor.cpp: if ( feof( stdout ) || ferror( stdout ) || !monitor->ShmValid() )
|
||||
./src/zm_monitor.cpp: if ( (unsigned int)last_read_index != monitor->shared_data->last_write_index )
|
||||
./src/zm_monitor.cpp: int index = monitor->shared_data->last_write_index%monitor->image_buffer_count;
|
||||
./src/zm_monitor.cpp: last_read_index = monitor->shared_data->last_write_index;
|
||||
./src/zm_monitor.cpp: Monitor::Snapshot *snap = &monitor->image_buffer[index];
|
||||
./src/zm_monitor.cpp: if ( monitor->shared_data->valid )
|
||||
./src/zm_monitor.cpp: if ( monitor->image_buffer[index].timestamp->tv_sec )
|
||||
./src/zm_monitor.cpp: memcpy( &(temp_image_buffer[temp_index].timestamp), monitor->image_buffer[index].timestamp, sizeof(temp_image_buffer[0].timestamp) );
|
||||
./src/zm_monitor.cpp: monitor->image_buffer[index].image->WriteJpeg( temp_image_buffer[temp_index].file_name, config.jpeg_file_quality );
|
||||
./src/zm_monitor.cpp: snprintf( swap_path, sizeof(swap_path), "%s/zmswap-m%d/zmswap-q%06d", config.path_swap, monitor->Id(), connkey );
|
||||
./src/zmu.cpp: printf( "Monitor %d(%s)\n", monitor->Id(), monitor->Name() );
|
||||
./src/zmu.cpp: Monitor::State state = monitor->GetState();
|
||||
./src/zmu.cpp: struct timeval timestamp = monitor->GetTimestamp( image_idx );
|
||||
./src/zmu.cpp: printf( "Last read index: %d\n", monitor->GetLastReadIndex() );
|
||||
./src/zmu.cpp: printf( "%d", monitor->GetLastReadIndex() );
|
||||
./src/zmu.cpp: printf( "Last write index: %d\n", monitor->GetLastWriteIndex() );
|
||||
./src/zmu.cpp: printf( "%d", monitor->GetLastWriteIndex() );
|
||||
./src/zmu.cpp: printf( "Last event id: %d\n", monitor->GetLastEvent() );
|
||||
./src/zmu.cpp: printf( "%d", monitor->GetLastEvent() );
|
||||
./src/zmu.cpp: printf( "Current capture rate: %.2f frames per second\n", monitor->GetFPS() );
|
||||
./src/zmu.cpp: printf( "%.2f", monitor->GetFPS() );
|
||||
./src/zmu.cpp: printf( "Dumping last image captured to Monitor%d.jpg", monitor->Id() );
|
||||
./src/zmu.cpp: printf( "Dumping buffer image %d to Monitor%d.jpg", image_idx, monitor->Id() );
|
||||
./src/zmu.cpp: monitor->GetImage( image_idx, scale>0?scale:100 );
|
||||
./src/zmu.cpp: printf( "Dumping zone image to Zones%d.jpg\n", monitor->Id() );
|
||||
./src/zmu.cpp: monitor->DumpZoneImage( zoneString );
|
||||
./src/zmu.cpp: monitor->ForceAlarmOn( config.forced_alarm_score, "Forced Web" );
|
||||
./src/zmu.cpp: monitor->ForceAlarmOff();
|
||||
./src/zmu.cpp: monitor->CancelForced();
|
||||
./src/zmu.cpp: monitor->actionReload();
|
||||
./src/zmu.cpp: monitor->actionEnable();
|
||||
./src/zmu.cpp: monitor->actionDisable();
|
||||
./src/zmu.cpp: monitor->actionSuspend();
|
||||
./src/zmu.cpp: monitor->actionResume();
|
||||
./src/zmu.cpp: monitor->DumpSettings( monString, verbose );
|
||||
./src/zmu.cpp: printf( "New brightness: %d\n", monitor->actionBrightness( brightness ) );
|
||||
./src/zmu.cpp: printf( "Current brightness: %d\n", monitor->actionBrightness() );
|
||||
./src/zmu.cpp: printf( "%d", monitor->actionBrightness( brightness ) );
|
||||
./src/zmu.cpp: printf( "%d", monitor->actionBrightness() );
|
||||
./src/zmu.cpp: printf( "New brightness: %d\n", monitor->actionContrast( contrast ) );
|
||||
./src/zmu.cpp: printf( "Current contrast: %d\n", monitor->actionContrast() );
|
||||
./src/zmu.cpp: printf( "%d", monitor->actionContrast( contrast ) );
|
||||
./src/zmu.cpp: printf( "%d", monitor->actionContrast() );
|
||||
./src/zmu.cpp: printf( "New hue: %d\n", monitor->actionHue( hue ) );
|
||||
./src/zmu.cpp: printf( "Current hue: %d\n", monitor->actionHue() );
|
||||
./src/zmu.cpp: printf( "%d", monitor->actionHue( hue ) );
|
||||
./src/zmu.cpp: printf( "%d", monitor->actionHue() );
|
||||
./src/zmu.cpp: printf( "New colour: %d\n", monitor->actionColour( colour ) );
|
||||
./src/zmu.cpp: printf( "Current colour: %d\n", monitor->actionColour() );
|
||||
./src/zmu.cpp: printf( "%d", monitor->actionColour( colour ) );
|
||||
./src/zmu.cpp: printf( "%d", monitor->actionColour() );
|
||||
./src/zmu.cpp: struct timeval tv = monitor->GetTimestamp();
|
||||
./src/zmu.cpp: monitor->Id(),
|
||||
./src/zmu.cpp: monitor->GetState(),
|
||||
./src/zmu.cpp: monitor->GetTriggerState(),
|
||||
./src/zmu.cpp: monitor->GetLastReadIndex(),
|
||||
./src/zmu.cpp: monitor->GetLastWriteIndex(),
|
||||
./src/zmu.cpp: monitor->GetLastEvent(),
|
||||
./src/zmu.cpp: monitor->GetFPS()
|
||||
./src/zm_zone.cpp: pg_image = new Image( monitor->Width(), monitor->Height(), 1, ZM_SUBPIX_ORDER_NONE);
|
||||
./src/zm_zone.cpp: ranges = new Range[monitor->Height()];
|
||||
./src/zm_zone.cpp: for ( unsigned int y = 0; y < monitor->Height(); y++)
|
||||
./src/zm_zone.cpp: for ( unsigned int x = 0; x < monitor->Width(); x++, ppoly++ )
|
||||
./src/zm_zone.cpp: snprintf( diag_path, sizeof(diag_path), "%s/%s/diag-%d-poly.jpg", config.dir_events, monitor->Name(), id);
|
||||
./src/zm_zone.cpp: snprintf( sql, sizeof(sql), "insert into Stats set MonitorId=%d, ZoneId=%d, EventId=%d, FrameId=%d, PixelDiff=%d, AlarmPixels=%d, FilterPixels=%d, BlobPixels=%d, Blobs=%d, MinBlobSize=%d, MaxBlobSize=%d, MinX=%d, MinY=%d, MaxX=%d, MaxY=%d, Score=%d", monitor->Id(), id, event->Id(), event->Frames()+1, pixel_diff, alarm_pixels, alarm_filter_pixels, alarm_blob_pixels, alarm_blobs, min_blob_size, max_blob_size, alarm_box.LoX(), alarm_box.LoY(), alarm_box.HiX(), alarm_box.HiY(), score );
|
||||
./src/zm_zone.cpp: snprintf( diag_path, sizeof(diag_path), "%s/%s/diag-%d-%d.jpg", config.dir_events, monitor->Name(), id, 1 );
|
||||
./src/zm_zone.cpp: snprintf( diag_path, sizeof(diag_path), "%s/%d/diag-%d-%d.jpg", config.dir_events, monitor->Id(), id, 2 );
|
||||
./src/zm_zone.cpp: snprintf( diag_path, sizeof(diag_path), "%s/%d/diag-%d-%d.jpg", config.dir_events, monitor->Id(), id, 3 );
|
||||
./src/zm_zone.cpp: snprintf( diag_path, sizeof(diag_path), "%s/%d/diag-%d-%d.jpg", config.dir_events, monitor->Id(), id, 4 );
|
||||
./src/zm_zone.cpp: //if ( monitor->followMotion() )
|
||||
./src/zm_zone.cpp: if( monitor->Colours() == ZM_COLOUR_GRAY8 ) {
|
||||
./src/zm_zone.cpp: image = diff_image->HighlightEdges( alarm_rgb, monitor->Colours(), monitor->SubpixelOrder(), &polygon.Extent() );
|
||||
./src/zm_zone.cpp: snprintf( sql, sizeof(sql), "select Id,Name,Type+0,Units,Coords,AlarmRGB,CheckMethod+0,MinPixelThreshold,MaxPixelThreshold,MinAlarmPixels,MaxAlarmPixels,FilterX,FilterY,MinFilterPixels,MaxFilterPixels,MinBlobPixels,MaxBlobPixels,MinBlobs,MaxBlobs,OverloadFrames from Zones where MonitorId = %d order by Type, Id", monitor->Id() );
|
||||
./src/zm_zone.cpp: Debug( 1, "Got %d zones for monitor %s", n_zones, monitor->Name() );
|
||||
./src/zm_zone.cpp: Error( "Unable to parse polygon string '%s' for zone %d/%s for monitor %s, ignoring", Coords, Id, Name, monitor->Name() );
|
||||
./src/zm_zone.cpp: if ( polygon.LoX() < 0 || polygon.HiX() >= (int)monitor->Width()
|
||||
./src/zm_zone.cpp: || polygon.LoY() < 0 || polygon.HiY() >= (int)monitor->Height() ) {
|
||||
./src/zm_zone.cpp: Error( "Zone %d/%s for monitor %s extends outside of image dimensions, (%d,%d), (%d,%d), ignoring", Id, Name, monitor->Name(), polygon.LoX(), polygon.LoY(), polygon.HiX(), polygon.HiY() );
|
||||
./src/zmf.cpp: snprintf( capt_path, sizeof(capt_path), "%s/%d/%%s/%%0%dd-capture.jpg", config.dir_events, monitor->Id(), config.event_image_digits );
|
||||
./src/zmf.cpp: snprintf( anal_path, sizeof(anal_path), "%s/%d/%%s/%%0%dd-analyse.jpg", config.dir_events, monitor->Id(), config.event_image_digits );
|
||||
./src/zmf.cpp: int sd = OpenSocket( monitor->Id() );
|
||||
./src/zmf.cpp: ReopenSocket( sd, monitor->Id() );
|
||||
./src/zmf.cpp: ReopenSocket( sd, monitor->Id() );
|
||||
./src/zmf.cpp: ReopenSocket( sd, monitor->Id() );
|
||||
./src/zma.cpp: Info( "In mode %d/%d, warming up", monitor->GetFunction(), monitor->Enabled() );
|
||||
./src/zma.cpp: Event::OpenFrameSocket( monitor->Id() );
|
||||
./src/zma.cpp: if ( !monitor->Analyse() )
|
||||
./src/zma.cpp: usleep( monitor->Active()?ZM_SAMPLE_RATE:ZM_SUSPENDED_RATE );
|
||||
./src/zma.cpp: monitor->Reload();
|
||||
./src/zm_stream.cpp: Image image( monitor->Width(), monitor->Height(), monitor->Colours(), monitor->SubpixelOrder() );
|
||||
./src/zm_event.cpp: 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() );
|
||||
./src/zm_event.cpp: path_ptr += snprintf( path_ptr, sizeof(path), "%s/%d", config.dir_events, monitor->Id() );
|
||||
./src/zm_event.cpp: snprintf( path, sizeof(path), "%s/%d/%d", config.dir_events, monitor->Id(), id );
|
||||
./src/zm_event.cpp: 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 );
|
||||
./src/zm_event.cpp: if ( !ValidateFrameSocket( monitor->Id() ) )
|
||||
./src/zm_event.cpp: monitor->TimestampImage( &ts_image, ×tamp );
|
||||
./src/zm_event.cpp: snprintf( diag_glob, sizeof(diag_glob), "%s/%d/diag-*.jpg", config.dir_events, monitor->Id() );
|
||||
./db/zm_create.sql.in:INSERT INTO MonitorPresets VALUES (NULL,'Remote ZoneMinder','Remote',NULL,NULL,NULL,'http','simple','<ip-address>',80,'/cgi-bin/nph-zms?mode=jpeg&monitor=<monitor-id>&scale=100&maxfps=5&buffer=0',NULL,NULL,NULL,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||
./db/zm_update-1.24.2.sql:INSERT INTO `MonitorPresets` VALUES ('','Remote ZoneMinder','Remote',NULL,NULL,NULL,'http','simple','<ip-address>',80,'/cgi-bin/nph-zms?mode=jpeg&monitor=<monitor-id>&scale=100&maxfps=5&buffer=0',NULL,NULL,NULL,3,NULL,0,NULL,NULL,NULL,100,100);
|
||||
Binary file ./.git/objects/pack/pack-bd32ad3df5c1fff7110f575aae37c6a3ce09a23e.pack matches
|
|
@ -349,6 +349,7 @@ CREATE TABLE `Monitors` (
|
|||
`LabelFormat` varchar(64) NOT NULL default '%N - %y/%m/%d %H:%M:%S',
|
||||
`LabelX` smallint(5) unsigned NOT NULL default '0',
|
||||
`LabelY` smallint(5) unsigned NOT NULL default '0',
|
||||
`LabelSize` smallint(5) unsigned NOT NULL DEFAULT '1',
|
||||
`ImageBufferCount` smallint(5) unsigned NOT NULL default '100',
|
||||
`WarmupCount` smallint(5) unsigned NOT NULL default '25',
|
||||
`PreEventCount` smallint(5) unsigned NOT NULL default '10',
|
||||
|
@ -377,6 +378,7 @@ CREATE TABLE `Monitors` (
|
|||
`DefaultScale` smallint(5) unsigned NOT NULL default '100',
|
||||
`SignalCheckColour` varchar(32) NOT NULL default '#0000BE',
|
||||
`WebColour` varchar(32) NOT NULL default 'red',
|
||||
`Exif` tinyint(1) unsigned NOT NULL default '0',
|
||||
`Sequence` smallint(5) unsigned default NULL,
|
||||
PRIMARY KEY (`Id`)
|
||||
) ENGINE=@ZM_MYSQL_ENGINE@;
|
||||
|
@ -461,6 +463,7 @@ CREATE TABLE `Users` (
|
|||
`Events` enum('None','View','Edit') NOT NULL default 'None',
|
||||
`Control` enum('None','View','Edit') NOT NULL default 'None',
|
||||
`Monitors` enum('None','View','Edit') NOT NULL default 'None',
|
||||
`Groups` enum('None','View','Edit') NOT NULL default 'None',
|
||||
`Devices` enum('None','View','Edit') NOT NULL default 'None',
|
||||
`System` enum('None','View','Edit') NOT NULL default 'None',
|
||||
`MaxBandwidth` varchar(16) NOT NULL default '',
|
||||
|
@ -546,7 +549,7 @@ CREATE TABLE `Zones` (
|
|||
--
|
||||
-- Create a default admin user.
|
||||
--
|
||||
insert into Users VALUES (NULL,'admin',password('admin'),'',1,'View','Edit','Edit','Edit','Edit','Edit','','');
|
||||
insert into Users VALUES (NULL,'admin',password('admin'),'',1,'View','Edit','Edit','Edit','Edit','Edit','Edit','','');
|
||||
|
||||
--
|
||||
-- Add a sample filter to purge the oldest 100 events when the disk is 95% full
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
--
|
||||
-- This updates a 1.28.100 database to 1.28.101
|
||||
--
|
||||
|
||||
--
|
||||
-- Add Groups column to Users
|
||||
--
|
||||
|
||||
|
||||
SET @s = (SELECT IF(
|
||||
(SELECT COUNT(*)
|
||||
FROM INFORMATION_SCHEMA.COLUMNS
|
||||
WHERE table_name = 'Users'
|
||||
AND table_schema = DATABASE()
|
||||
AND column_name = 'Groups'
|
||||
) > 0,
|
||||
"SELECT 'Column Groups exists in Users'",
|
||||
"ALTER TABLE Users ADD COLUMN `Groups` ENUM('None','View','Edit') NOT NULL DEFAULT 'None' AFTER `Monitors`"
|
||||
));
|
||||
|
||||
PREPARE stmt FROM @s;
|
||||
EXECUTE stmt;
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
--
|
||||
-- Add Monitor Exif field
|
||||
-- Used to enable or disable processing of the remote camera RTSP DESCRIBE response header
|
||||
--
|
||||
SET @s = (SELECT IF(
|
||||
(SELECT COUNT(*)
|
||||
FROM INFORMATION_SCHEMA.COLUMNS
|
||||
WHERE table_name = 'Monitors'
|
||||
AND table_schema = DATABASE()
|
||||
AND column_name = 'Exif'
|
||||
) > 0,
|
||||
"SELECT 'Column Options already exists in Monitors'",
|
||||
"ALTER TABLE `Monitors` ADD `Exif` tinyint(1) unsigned NOT NULL default '0' AFTER `WebColour`"
|
||||
));
|
||||
|
||||
PREPARE stmt FROM @s;
|
||||
EXECUTE stmt;
|
|
@ -0,0 +1,22 @@
|
|||
--
|
||||
-- This updates a 1.28.102 database to 1.28.103
|
||||
--
|
||||
|
||||
--
|
||||
-- Add LabelSize column to Monitors
|
||||
--
|
||||
|
||||
SET @s = (SELECT IF(
|
||||
(SELECT COUNT(*)
|
||||
FROM INFORMATION_SCHEMA.COLUMNS
|
||||
WHERE table_name = 'Monitors'
|
||||
AND table_schema = DATABASE()
|
||||
AND column_name = 'LabelSize'
|
||||
) > 0,
|
||||
"SELECT 'Column LabelSize exists in Monitors'",
|
||||
"ALTER TABLE Monitors ADD `LabelSize` smallint(5) unsigned NOT NULL DEFAULT '1' AFTER `LabelY`"
|
||||
));
|
||||
|
||||
PREPARE stmt FROM @s;
|
||||
EXECUTE stmt;
|
||||
|
|
@ -23,12 +23,12 @@ Description: Video camera security and surveillance solution
|
|||
|
||||
Package: zoneminder-dbg
|
||||
Architecture: any
|
||||
Priority: extra
|
||||
Section: debug
|
||||
Priority: extra
|
||||
Depends: zoneminder (= ${binary:Version}), ${misc:Depends}
|
||||
Description: debugging syumbols for zoneminder.
|
||||
Description: Debugging symbols for zoneminder.
|
||||
ZoneMinder is a video camera security and surveillance solution.
|
||||
ZoneMinder is intended for use in single or multi-camera video security
|
||||
ZoneMinder is intended for use in single or multi-camera video security
|
||||
applications, including commercial or home CCTV, theft prevention and child
|
||||
or family member or home monitoring and other care scenarios. It
|
||||
supports capture, analysis, recording, and monitoring of video data coming
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
zoneminder (1.28.1-1) unstable; urgency=low
|
||||
|
||||
This version is no longer automatically initialize or upgrade database.
|
||||
See README.Debian for details.
|
||||
|
||||
Changed installation paths (please correct your web server configuration):
|
||||
/usr/share/zoneminder --> /usr/share/zoneminder/www
|
||||
/usr/lib/cgi-bin --> /usr/lib/zoneminder/cgi-bin
|
||||
|
||||
-- Dmitry Smirnov <onlyjob@debian.org> Tue, 31 Mar 2015 15:12:17 +1100
|
|
@ -0,0 +1,160 @@
|
|||
Zoneminder for Debian
|
||||
---------------------
|
||||
|
||||
Initializing database
|
||||
---------------------
|
||||
|
||||
pv /usr/share/zoneminder/db/zm_create.sql | sudo mysql --defaults-file=/etc/mysql/debian.cnf
|
||||
OR
|
||||
cat /usr/share/zoneminder/db/zm_create.sql | sudo mysql --defaults-file=/etc/mysql/debian.cnf
|
||||
|
||||
echo 'grant lock tables,alter,create,select,insert,update,delete on zm.* to 'zmuser'@localhost identified by "zmpass";'\
|
||||
| sudo mysql --defaults-file=/etc/mysql/debian.cnf mysql
|
||||
|
||||
Hint: generate secure password with `pwgen` and update "/etc/zm/zm.conf"
|
||||
accordingly.
|
||||
|
||||
The following command can help to ensure that zoneminder can read its
|
||||
configuration file:
|
||||
|
||||
chgrp -c www-data /etc/zm/zm.conf
|
||||
|
||||
|
||||
Upgrading database
|
||||
------------------
|
||||
|
||||
Prior to 1.28.1 database upgrade was performed automatically.
|
||||
"zoneminder" service will refuse to start with outdated database.
|
||||
|
||||
Assuming that database is on "localhost" then the following command can be
|
||||
used to upgrade "zm" database:
|
||||
|
||||
zmupdate.pl
|
||||
|
||||
Additional permissions may be required to perform upgrade:
|
||||
|
||||
echo 'grant lock tables, create, alter on zm.* to 'zmuser'@localhost identified by "zmpass";'\
|
||||
| sudo mysql --defaults-file=/etc/mysql/debian.cnf mysql
|
||||
|
||||
The following command prints the current version of zoneminder database:
|
||||
|
||||
echo 'select Value from Config where Name = "ZM_DYN_CURR_VERSION";' \
|
||||
| sudo mysql --defaults-file=/etc/mysql/debian.cnf --skip-column-names zm
|
||||
|
||||
|
||||
Enabling service
|
||||
----------------
|
||||
|
||||
By default Zoneminder service is not starting automatically and need to be
|
||||
manually activated once database is configured:
|
||||
|
||||
On systemd:
|
||||
|
||||
sudo systemctl enable zoneminder.service
|
||||
|
||||
On SysV:
|
||||
|
||||
sudo update-rc.d zoneminder enable
|
||||
|
||||
|
||||
Web server set-up
|
||||
-----------------
|
||||
|
||||
There are few manual steps to get the web interface working:
|
||||
|
||||
## Apache2
|
||||
|
||||
Apache can be configured as folder "/zm" using sample .conf:
|
||||
|
||||
sudo a2enconf zoneminder
|
||||
|
||||
Alternatively Apache web site configuration template can be used to setup
|
||||
zoneminder as "http://zoneminder":
|
||||
|
||||
sudo cp -v /usr/share/doc/zoneminder/examples/apache.conf /etc/apache2/sites-available/
|
||||
sudo a2ensite zoneminder.conf
|
||||
|
||||
Common configuration steps for Apache2:
|
||||
|
||||
sudo a2enmod cgi
|
||||
sudo service apache2 reload
|
||||
|
||||
|
||||
## nginx / fcgiwrap
|
||||
|
||||
Nginx needs "php5-fpm" package to support PHP and "fcgiwrap" package
|
||||
for binary "cgi-bin" applications:
|
||||
|
||||
sudo apt-get install php5-fpm fcgiwrap
|
||||
|
||||
To enable a URL alias that makes Zoneminder available from
|
||||
|
||||
http://yourserver/zm
|
||||
|
||||
the following line is to be added to "server" section of a web site
|
||||
configuration:
|
||||
|
||||
include /usr/share/doc/zoneminder/examples/nginx.conf;
|
||||
|
||||
For "default" web site it would be sufficient to include the above
|
||||
statement to the file
|
||||
|
||||
/etc/nginx/sites-enabled/default
|
||||
|
||||
To avoid problems with feeds from multiple cameras "fcgiwrap" should be
|
||||
configured to start at least as many processes as there are cameras.
|
||||
It can be done by adjusting DAEMON_OPTS in "/etc/default/fcgiwrap".
|
||||
Systemd users may be affected by the following bug:
|
||||
|
||||
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=792705
|
||||
|
||||
|
||||
## Note:
|
||||
|
||||
When Zoneminder web site is running it may be necessary to set
|
||||
Options/Paths/PATH_ZMS to "/zm/cgi-bin/nph-zms" or according to chosen web
|
||||
site configuration.
|
||||
|
||||
|
||||
Changing the location for images and events
|
||||
-------------------------------------------
|
||||
|
||||
Zoneminder, in its upstream form, stores data in /usr/share/zoneminder/. This
|
||||
package modifies that by changing /usr/share/zoneminder/images and
|
||||
/usr/share/zoneminder/events to symlinks to directories under
|
||||
/var/cache/zoneminder.
|
||||
|
||||
There are numerous places these could be put and ways to do it. But, at the
|
||||
moment, if you change this, an upgrade will fail with a warning about these
|
||||
locations having changed (the reason for this was that previously, an upgrade
|
||||
would silently revert the changes and cause event loss - refer
|
||||
bug #608793).
|
||||
|
||||
If you do want to change the location, here are a couple of suggestions.
|
||||
(thanks to vagrant@freegeek.org):
|
||||
|
||||
These lines in fstab could allow you to bind-mount an alternate location
|
||||
|
||||
/dev/sdX1 /otherdrive ext3 defaults 0 2
|
||||
/otherdrive/zoneminder/images /var/cache/zoneminder/images bind defaults 0 2
|
||||
/otherdrive/zoneminder/events /var/cache/zoneminder/events bind defaults 0 2
|
||||
|
||||
or if you have a separate partition for each:
|
||||
|
||||
/dev/sdX1 /var/cache/zoneminder/images ext3 defaults 0 2
|
||||
/dev/sdX2 /var/cache/zoneminder/events ext3 defaults 0 2
|
||||
|
||||
-- Peter Howard <pjh@northern-ridge.com.au>, Sun, 16 Jan 2010 01:35:51 +1100
|
||||
|
||||
Access to /dev/video*
|
||||
---------------------
|
||||
|
||||
For cameras which require access to /dev/video*, zoneminder may need the
|
||||
www-data user added to the video group in order to see those cameras:
|
||||
|
||||
adduser www-data video
|
||||
|
||||
Note that all web applications running on the zoneminder server will then have
|
||||
access to all video devices on the system.
|
||||
|
||||
-- Vagrant Cascadian <vagrant@debian.org> Sun, 27 Mar 2011 13:06:56 -0700
|
|
@ -0,0 +1,12 @@
|
|||
|
||||
## Separate substantial /usr/share into its own arch-all package.
|
||||
|
||||
## Decide how to handle database updates.
|
||||
|
||||
* Consider possibility that database may be on another machine (#469239).
|
||||
* Consider dbconfig-common? Probably not (what if database is not on localhost?).
|
||||
|
||||
### Run `zmupdate.pl` from service control scripts (init.d, service) on start?
|
||||
|
||||
Automatic upgrade will break "one DB, many zoneminders" setup (unimportant?).
|
||||
|
|
@ -0,0 +1,573 @@
|
|||
zoneminder (1.28.1+1-vivid-SNAPSHOT2015081701) vivid; urgency=medium
|
||||
|
||||
* include api, switch to cmake build
|
||||
|
||||
-- Isaac Connor <iconnor@connortechnology.com> Mon, 17 Aug 2015 10:29:23 -0400
|
||||
|
||||
|
||||
zoneminder (1.28.1-8) unstable; urgency=medium
|
||||
|
||||
* Patchworks:
|
||||
+ New upstream "980-fix-image-size.patch".
|
||||
+ New "default_cgi-path.patch" to correct default ZM_PATH_ZMS.
|
||||
* postinst: set "root" as group owner for "/var/log/zm" to silence
|
||||
logrotate warnings.
|
||||
* Minor correction to README.Debian.
|
||||
|
||||
-- Dmitry Smirnov <onlyjob@debian.org> Sun, 16 Aug 2015 19:19:50 +1000
|
||||
|
||||
zoneminder (1.28.1-7) unstable; urgency=medium
|
||||
|
||||
* Build-Depends += "cakephp (<< 3.0.0~)";
|
||||
Zoneminder is not compatible with latest CakePHP.
|
||||
* Handle conffile removal from maintscript.
|
||||
* rules: build man pages reproducibly.
|
||||
* gbp.conf: renamed old style config section [git-dch] to [dch].
|
||||
* README
|
||||
+ added instructions to update owner of the "/etc/zm/zm.conf"
|
||||
(Closes: #789327).
|
||||
+ zmupdate.pl needs CREATE rights.
|
||||
+ added note about required number of "fcgiwrap" workers.
|
||||
* New upstream patch: "zmtrigger-plus.patch".
|
||||
|
||||
-- Dmitry Smirnov <onlyjob@debian.org> Mon, 20 Jul 2015 16:30:15 +1000
|
||||
|
||||
zoneminder (1.28.1-6) unstable; urgency=low
|
||||
|
||||
* New "zoneminder-doc" and "zoneminder-dbg" packages.
|
||||
|
||||
-- Dmitry Smirnov <onlyjob@debian.org> Sun, 19 Apr 2015 14:50:41 +1000
|
||||
|
||||
zoneminder (1.28.1-5) unstable; urgency=low
|
||||
|
||||
* Move handling of "/var/run/zm" and "/tmp/zm" from .service into .tmpfile.
|
||||
Let dh_installinit do the job. Thanks, Andrew Bauer.
|
||||
* Use dh_apache2 to install Apache conf file; remove old conf and symlink.
|
||||
* Promote "libapache2-mod-php5 | php5-fpm" to Recommends.
|
||||
* Build-Depends:
|
||||
+ dh-linktree
|
||||
+ cakephp (>= 2.6.3)
|
||||
+ libjs-jquery
|
||||
+ libjs-mootools
|
||||
* Depends:
|
||||
- libjs-jquery
|
||||
- libjs-mootools
|
||||
* Build-time replace bundled CakePHP with system one using "dh-linktree".
|
||||
* Use "dh-linktree" to handle mootools and jquery symlinks.
|
||||
|
||||
-- Dmitry Smirnov <onlyjob@debian.org> Sun, 19 Apr 2015 11:45:01 +1000
|
||||
|
||||
zoneminder (1.28.1-4) unstable; urgency=low
|
||||
|
||||
* New patch to fix HTML export with USE_DEEP_STORAGE (closes: #723706).
|
||||
* New "783.patch" to describe potential data loss in ZM_USE_DEEP_STORAGE.
|
||||
* New patch to change default date format to region-neutral ISO notation
|
||||
with time zone.
|
||||
* Build sphinx documentation:
|
||||
+ Install "zoneminder.1" man page.
|
||||
+ Build-Depends += "python-sphinx | python3-sphinx"
|
||||
+ Added commented "zoneminder-doc" package.
|
||||
+ Added "docs.patch" to unlink distro-specific installation docs.
|
||||
* rules:
|
||||
+ set ZM_CONTENTDIR, ZM_SOCKDIR and ZM_TMPDIR.
|
||||
+ remove mistakengly installed Perl module templates.
|
||||
* Updated startup scripts to create ZM_TMPDIR.
|
||||
* Hurd improvements:
|
||||
+ New patch to add PATH_MAX definitions.
|
||||
+ Build without MMAP support on Hurd.
|
||||
+ libsys-mmap-perl [!hurd-any].
|
||||
|
||||
-- Dmitry Smirnov <onlyjob@debian.org> Mon, 06 Apr 2015 18:18:55 +1000
|
||||
|
||||
zoneminder (1.28.1-3) unstable; urgency=low
|
||||
|
||||
* Updated Apache2 and nginx configuration templates to support CGI.
|
||||
* Updated README.Debian to document cgi-bin setup.
|
||||
* Removed "/usr/share/zoneminder/www/cgi-bin" symlink.
|
||||
* Added "apache2.patch" to correct Apache2 site configuration example.
|
||||
* control: Suggests += "fcgiwrap".
|
||||
* rules: added dh_systemd overrides to prevent automatic service
|
||||
activation and start.
|
||||
* Added note about manual service activation to README.Debian
|
||||
(Closes: #781733).
|
||||
|
||||
-- Dmitry Smirnov <onlyjob@debian.org> Thu, 02 Apr 2015 23:20:20 +1100
|
||||
|
||||
zoneminder (1.28.1-2) unstable; urgency=low
|
||||
|
||||
* Removed word "Linux" from short package description.
|
||||
* Build-Depends: do not require "libv4l-dev" on Hurd i.e. [!hurd-any].
|
||||
* Added run-time Perl Depends:
|
||||
+ libdbd-mysql-perl
|
||||
+ libimage-info-perl
|
||||
+ libmodule-load-conditional-perl
|
||||
+ libnet-sftp-foreign-perl
|
||||
+ liburi-encode-perl
|
||||
* Prepare for package split: added commented "libzoneminder-perl"
|
||||
and "zoneminder-dbg" packages to "debian/control".
|
||||
* rules: do not install worthless ".packlist" file.
|
||||
* Updated "libv4l1-videodev.h.patch" to fix v4lv1 detection in CMake.
|
||||
|
||||
-- Dmitry Smirnov <onlyjob@debian.org> Thu, 02 Apr 2015 13:25:19 +1100
|
||||
|
||||
zoneminder (1.28.1-1) unstable; urgency=low
|
||||
|
||||
[ Dmitry Smirnov <onlyjob@debian.org> ]
|
||||
* New upstream release [February 2015].
|
||||
* Upload to unstable.
|
||||
* Disabled automatic database upgrades: post(inst|rm) scripts no longer
|
||||
touch database or do unexpected stuff (Closes: #779254).
|
||||
See README.Debian for details.
|
||||
* Updated installation paths:
|
||||
+ /usr/share/zoneminder --> /usr/share/zoneminder/www
|
||||
+ /usr/lib/cgi-bin --> /usr/lib/zoneminder/cgi-bin
|
||||
* Added logrotate config (Closes: #544826).
|
||||
Thanks, Alberto Reyes.
|
||||
* Native systemd service; "--with systemd" added to dh.
|
||||
* Build with CMake instead of autoconf; rules clean-up.
|
||||
* Build with all hardening.
|
||||
* Build and install "zmupdate.pl.1" man page.
|
||||
* Added nginx/php5-fpm configuration example.
|
||||
* Install upstream "apache.conf" example.
|
||||
* Described setup of Zoneminer web site and database in README.Debian.
|
||||
* Install "/etc/zm/zm.conf" with tighter permissions.
|
||||
* Added TODO.Debian.
|
||||
* Added "debian/clean"; "debian/gbp.conf"; bug-presubj.
|
||||
* Remove bundled Cake tests to take ~5 MB off big-usr-share.
|
||||
* Standards-Version: 3.9.6; compat/debhelper to version 9.
|
||||
* Vcs links to new git repository at collab-maint.
|
||||
* Build-Depends:
|
||||
+ dh-systemd
|
||||
+ libgcrypt11-dev --> libgcrypt-dev
|
||||
+ libcurl4-gnutls-dev
|
||||
+ libvlc-dev
|
||||
+ policykit-1 (required by "zmsystemctl.pl")
|
||||
- dh-autoreconf, autoconf, automake
|
||||
* Depends:
|
||||
- apache2
|
||||
- libapache2-mod-php5 (moved to Suggests)
|
||||
- libpcre3 (invalid)
|
||||
- libmodule-load-perl (obsolete; replaced with perl-modules)
|
||||
- libarchive-tar-perl (obsolete; replaced with perl-modules)
|
||||
- mysql-server (moved to Recommends, Closes: #759504).
|
||||
- php5
|
||||
+ libav-tools
|
||||
+ libjs-jquery (replaces bundled component)
|
||||
+ libjs-mootool (replaces bundled component)
|
||||
+ libjson-any-perl (Closes: #690803).
|
||||
+ perl-modules (Closes: #745819).
|
||||
* Recommends:
|
||||
+ apache2 | httpd
|
||||
+ mysql-server | virtual-mysql-server (Closes: #732874).
|
||||
* Suggests:
|
||||
+ libapache2-mod-php5 | php5-fpm
|
||||
+ logrotate
|
||||
* Refreshed, renamed and re-ordered patches; added DEP-3 headers.
|
||||
* Removed "vendor_perl" patch (applied-upstream).
|
||||
* New patches:
|
||||
+ cmake-fix-confpath.patch
|
||||
+ cmake-gnutls.patch
|
||||
+ cmake-nossl.patch
|
||||
+ cmake.patch
|
||||
+ format-hardening.patch
|
||||
+ pod_man_fixes.patch
|
||||
+ pod_name_fixes.patch
|
||||
+ pod_zmupdate-to-pod2usage.patch
|
||||
* Lintianisation (incomplete):
|
||||
- extra-license-file
|
||||
- init.d-script-missing-lsb-description
|
||||
- init.d-script-does-not-source-init-functions
|
||||
- privacy-breach-generic
|
||||
- package-contains-empty-directory
|
||||
- manpage-has-errors-from-pod2man
|
||||
- manpage-has-bad-whatis-entry
|
||||
- quilt-patch-missing-description
|
||||
- no-dep5-copyright
|
||||
* Lintian-overrides:
|
||||
+ unusual-interpreter usr/bin/zmsystemctl.pl #!/usr/bin/pkexec
|
||||
+ script-not-executable usr/share/zoneminder/www/api/*
|
||||
+ script-with-language-extension usr/bin/*.pl
|
||||
+ source-is-missing web/tools/mootools/mootools-*-yc.js
|
||||
+ source-is-missing web/skins/*/js/jquery-1.4.2.min.js
|
||||
+ source-contains-prebuilt-javascript-object
|
||||
* Renamed files in "debian".
|
||||
* watch: dfsg repacksuffix and dversionmangle.
|
||||
* "debian/copyright" to Copyright-Format-1.0.
|
||||
* Set myself as new Maintainer (Closes: #760314).
|
||||
|
||||
[ Vagrant Cascadian <vagrant@debian.org> ]
|
||||
* Removed obsolete DM-Upload-Allowed flag.
|
||||
* Update debian/watch to use tarballs from github.
|
||||
* Add Build-Depends on libgcrypt11-dev (Closes: #745819).
|
||||
* Use canonical alioth Vcs-Hg URL.
|
||||
* debian/control: Add Build-Depends: libpolkit-gobject-1-dev.
|
||||
* Removed configure flag "--enable-crashtrace=no", which is no longer
|
||||
present upstream.
|
||||
|
||||
-- Dmitry Smirnov <onlyjob@debian.org> Tue, 31 Mar 2015 15:11:13 +1100
|
||||
|
||||
zoneminder (1.26.5-3.1) experimental; urgency=low
|
||||
|
||||
* Non-maintainer upload.
|
||||
* Add libav10.patch and compile against libav10 (Closes: #739461)
|
||||
|
||||
-- Reinhard Tartler <siretart@tauware.de> Wed, 19 Mar 2014 00:31:22 +0000
|
||||
|
||||
zoneminder (1.26.5-3) unstable; urgency=low
|
||||
|
||||
|
||||
* Previous release still didn't build on PPC - this has been corrected.
|
||||
(Closes: #736516)
|
||||
|
||||
-- Peter Howard <pjh@northern-ridge.com.au> Tue, 4 Feb 2014 02:02:10 +1000
|
||||
|
||||
zoneminder (1.26.5-2) unstable; urgency=low
|
||||
|
||||
* Remove dependency on ffmpeg
|
||||
(Closes: #721161)
|
||||
|
||||
* Builds again on non-x86 target architectures.
|
||||
|
||||
-- Peter Howard <pjh@northern-ridge.com.au> Thu, 23 Jan 2014 01:02:10 +1000
|
||||
|
||||
zoneminder (1.26.5-1) unstable; urgency=low
|
||||
|
||||
* New upstream version
|
||||
(Closes: #694131)
|
||||
* Change Build-Depends on libgnutls-dev to libgnutls-openssl-dev
|
||||
(Closes: #731560)
|
||||
-- Peter Howard <pjh@northern-ridge.com.au> Tue, 17 Dec 2013 01:02:10 +1000
|
||||
|
||||
zoneminder (1.25.0-4) unstable; urgency=high
|
||||
|
||||
* Add CVE-2013-0232 patch
|
||||
[SECURITY] CVE-2013-0232: Shell escape commands with untrusted content.
|
||||
Thanks to James McCoy <jamessan@debian.org> (Closes: #698910)
|
||||
Thanks also to Salvatore Bonaccorso <carnil@debian.org>
|
||||
|
||||
-- Peter Howard <pjh@northern-ridge.com.au> Tue, 12 Jun 2013 12:02:10 +1000
|
||||
|
||||
zoneminder (1.25.0-3) unstable; urgency=low
|
||||
|
||||
* debian/rules: Export CFLAGS, CPPFLAGS, CXXFLAGS and LDFLAGS, to ensure
|
||||
hardening build flags are enabled.
|
||||
|
||||
-- Vagrant Cascadian <vagrant@debian.org> Tue, 28 Aug 2012 12:10:03 -0700
|
||||
|
||||
zoneminder (1.25.0-2) unstable; urgency=low
|
||||
|
||||
[ Vagrant Cascadian ]
|
||||
* Add a patch to disable checking for updated versions by default, as
|
||||
upgrades should happen through package management.
|
||||
* Use dpkg-buildflags in debian/rules to set default compiler flags.
|
||||
* Ensure zoneminder is stopped before starting (Closes: #657407).
|
||||
|
||||
[ Peter Howard ]
|
||||
* Fix postinst to add permission for table creation during upgrade
|
||||
(Closes: #657407).
|
||||
|
||||
-- Vagrant Cascadian <vagrant@debian.org> Thu, 23 Aug 2012 12:40:34 -0700
|
||||
|
||||
zoneminder (1.25.0-1.1) unstable; urgency=low
|
||||
|
||||
* Non-maintainer upload.
|
||||
* Fix "ftbfs with GCC-4.7": add patch Fix-FTBFS-with-gcc-4.7 from Cyril
|
||||
Brulebois: fix missing <unistd.h> includes.
|
||||
(Closes: #667428)
|
||||
|
||||
-- gregor herrmann <gregoa@debian.org> Sun, 13 May 2012 17:02:21 +0200
|
||||
|
||||
zoneminder (1.25.0-1) unstable; urgency=low
|
||||
|
||||
* Fix typo in libv4l1-videodev.h patch that caused v4l1 support to be
|
||||
dropped.
|
||||
* Fail to build if version in postinst doesn't match upstream version.
|
||||
* Add Build-Depends: libavdevice-dev to fix MPEG streaming (Closes: #515558).
|
||||
* debian/rules: Convert to using debhelper overrides.
|
||||
* Set debian/compat to 7.
|
||||
* Simplify debian/watch file.
|
||||
* Refresh debian/patches/use_libjs-mootools.
|
||||
* Refresh debian/patches/libv4l1-videodev.h.
|
||||
* Remove dependencies on php4 and related packages.
|
||||
* Remove build-dependencies on libmysqlclient14-dev and
|
||||
libmysqlclient15-dev.
|
||||
* Update Build-Depends to use libjpeg-dev instead of libjpeg62-dev
|
||||
(Closes: #647114).
|
||||
* Add patch to fix build by testing for C headers rather than C++ headers.
|
||||
Thanks to Ryan Niebur. (Closes: #654230)
|
||||
* Add a patch to fix build problems caused by API changes in libav 0.8.
|
||||
Thanks again to Ryan Niebur. (Closes: #654230)
|
||||
|
||||
-- Vagrant Cascadian <vagrant@debian.org> Mon, 16 Jan 2012 11:58:05 -0800
|
||||
|
||||
zoneminder (1.24.4-1) unstable; urgency=low
|
||||
|
||||
[ Peter Howard ]
|
||||
* Initial release of 1.24.4 (Closes: #634985).
|
||||
- Fix 32/64-bit type declarations (Closes: #614404).
|
||||
* Update patches.
|
||||
|
||||
[ Vagrant Cascadian ]
|
||||
* Add patch to fix FTBFS by using libv4l1-videodev.h from libv4l-dev.
|
||||
Thanks to Andreas Metzler for reporting the issue.
|
||||
(Closes: #619813).
|
||||
* Document adding the www-data user to the video group in README.Debian.
|
||||
(Closes: #611324)
|
||||
* Depend on libsys-mmap-perl to enable mapped memory support.
|
||||
(Closes: #607331)
|
||||
* Update libjs-mootools patch to use -nc variants (Closes: #635075).
|
||||
* Depend on javascript-common, to ensure that /javascript is available in
|
||||
the web server.
|
||||
* Set the upstream version in postinst at build time.
|
||||
* Use dh-autoreconf to properly clean up autogenerated files during build.
|
||||
* Add Vcs-HG to debian/control.
|
||||
* Add Build-Depends: libv4l-dev, libbz2-dev, dh-autoreconf, libsys-mmap-perl.
|
||||
|
||||
-- Vagrant Cascadian <vagrant@debian.org> Sun, 24 Jul 2011 16:44:30 +0200
|
||||
|
||||
zoneminder (1.24.2-9) unstable; urgency=low
|
||||
|
||||
* Apply patch from Ubuntu to fix FTBFS with ffmpeg 0.6:
|
||||
- Add -D__STDC_CONSTANT_MACROS to CPPFLAGS (closes: 614080).
|
||||
* Update Standards-Version to 3.9.1, no changes necessary.
|
||||
|
||||
-- Vagrant Cascadian <vagrant@debian.org> Sun, 20 Feb 2011 23:43:02 -0800
|
||||
|
||||
zoneminder (1.24.2-8) unstable; urgency=medium
|
||||
|
||||
[ Vagrant Cascadian ]
|
||||
* Apply patch to fix V4L2 cameras without crop support (closes: #608790).
|
||||
Thanks to piratebab.
|
||||
* Add preinst script which aborts if dangerous symlinks exist.
|
||||
(closes: #608793)
|
||||
|
||||
[ Peter Howard ]
|
||||
* Added to README.Debian with info about images and events directories.
|
||||
(closes: #608793)
|
||||
|
||||
-- Vagrant Cascadian <vagrant@debian.org> Sat, 15 Jan 2011 19:39:26 -0800
|
||||
|
||||
zoneminder (1.24.2-7) unstable; urgency=medium
|
||||
|
||||
* Do not set ownership of /var/cache/zoneminder when upgrading, which fixes a
|
||||
regression causing upgrades to take inordinately long with large
|
||||
installations (closes: #597040).
|
||||
|
||||
-- Vagrant Cascadian <vagrant@debian.org> Fri, 17 Sep 2010 11:24:41 -0700
|
||||
|
||||
zoneminder (1.24.2-6) unstable; urgency=low
|
||||
|
||||
* Only remove database on purge. This requires only creating the database if
|
||||
it doesn't already exist, and upgrading the database only if the database
|
||||
is an older version (closes: #497107).
|
||||
|
||||
* Do not prompt the user on database upgrades by using the --nointeractive
|
||||
flag when calling zmupdate.pl from postinst (closes: #595902).
|
||||
|
||||
-- Vagrant Cascadian <vagrant@debian.org> Fri, 10 Sep 2010 10:06:06 -0700
|
||||
|
||||
zoneminder (1.24.2-5) unstable; urgency=low
|
||||
|
||||
[ Peter Howard ]
|
||||
* Add zip dependency
|
||||
(closes: #494261)
|
||||
* Add debian/watch file
|
||||
(closes: #545552)
|
||||
* Use packaged libjs-mootools
|
||||
(closes: #585590)
|
||||
* Miscellaneous cleanups
|
||||
|
||||
[ Vagrant Cascadian ]
|
||||
* Add vagrant@debian.org as uploader
|
||||
* Update Standards-Version to 3.9.0, no changes necessary.
|
||||
|
||||
-- Vagrant Cascadian <vagrant@debian.org> Fri, 23 Jul 2010 18:12:50 -0500
|
||||
|
||||
zoneminder (1.24.2-4.1) unstable; urgency=low
|
||||
|
||||
* Non-maintainer upload.
|
||||
* Fix "package removed, processes still running": apply patch to
|
||||
debian/postinst by Vagrant Cascadian: use invoke-rc.d and run
|
||||
mysql-related actions only when mysql is running (closes: #583648).
|
||||
|
||||
-- gregor herrmann <gregoa@debian.org> Thu, 01 Jul 2010 19:47:10 +0200
|
||||
|
||||
zoneminder (1.24.2-4) unstable; urgency=high
|
||||
* Update init.d to list mysql dependency
|
||||
(closes: #583505)
|
||||
* Change depenency from libmime-perl to libmime-tools-perl
|
||||
(closes: #585589)
|
||||
* Problems in changelog format fixed
|
||||
(closes: #585592)
|
||||
* Fix debian-rules-ignores-make-clean-error
|
||||
(closes: #585593)
|
||||
-- Peter Howard <pjh@northern-ridge.com.au> Mon, 14 jun 2010 15:02:10 +1000
|
||||
|
||||
zoneminder (1.24.2-3) unstable; urgency=high
|
||||
* Changes symbols to build with libjpeg8
|
||||
(closes: #565326, #568327)
|
||||
* Note: location of all perl files should have been fixed in previous release
|
||||
(closes: #553096)
|
||||
-- Peter Howard <pjh@northern-ridge.com.au> Mon, 26 apr 2010 15:02:10 +1000
|
||||
|
||||
zoneminder (1.24.2-2) unstable; urgency=high
|
||||
|
||||
* Remove custom perl parth from zmpkg.pl, fix location of manpages.
|
||||
(closes: #551746, #553092)
|
||||
* Fix GCC4.4 bug
|
||||
(closes: #531717)
|
||||
* Fix potential bug in postinst script
|
||||
|
||||
-- Peter Howard <pjh@northern-ridge.com.au> Sat, 14 Nov 2009 15:02:10 +1000
|
||||
|
||||
zoneminder (1.24.2-1) unstable; urgency=high
|
||||
|
||||
* Initial release of zoneminder 1.24.2
|
||||
-- Peter Howard <pjh@northern-ridge.com.au> Fri, 11 Sep 2009 07:02:50 +1000
|
||||
|
||||
zoneminder (1.24.1-1) unstable; urgency=high
|
||||
|
||||
* Initial release of zoneminder 1.24.1, closing CVE-2008-3882,
|
||||
CVE-2008-3881, CVE-2008-3880
|
||||
(closes: #497640)
|
||||
* Change syslog dependency to rsyslog.
|
||||
(closes: #526918)
|
||||
* Add missing perl depenency.
|
||||
* Restore patch to disable "check for updates" by default.
|
||||
* Removed spurious '$' in init script.
|
||||
(closes: #486064)
|
||||
* Change permission of zm.conf from 0600 to 0400 for CVE-2008-6755
|
||||
(closes: #528252)
|
||||
-- Peter Howard <pjh@northern-ridge.com.au> Sat, 16 May 2009 07:02:50 +1000
|
||||
|
||||
zoneminder (1.23.3-4) unstable; urgency=high
|
||||
|
||||
* update to get it building with latest unstable. Thanks to waldi@debian.org
|
||||
(closes: #517569)
|
||||
-- Peter Howard <pjh@northern-ridge.com.au> Thu, 16 Apr 2009 01:02:50 +1000
|
||||
|
||||
zoneminder (1.23.3-3) unstable; urgency=high
|
||||
|
||||
* ffmpeg confirmed working
|
||||
(closes: #475145)
|
||||
* Fix upgrade problem intrudouced in 1.23.3-1
|
||||
(closes: #481637)
|
||||
* Include libmime-lite-perl in dependencies
|
||||
(closes: #486312)
|
||||
-- Peter Howard <pjh@northern-ridge.com.au> Thu, 18 Sep 2008 01:02:50 +1000
|
||||
|
||||
zoneminder (1.23.3-2) unstable; urgency=high
|
||||
|
||||
* ffmpeg finally working?
|
||||
|
||||
-- Peter Howard <pjh@northern-ridge.com.au> Wed, 13 Aug 2008 01:02:50 +1000
|
||||
|
||||
zoneminder (1.23.3-1) unstable; urgency=high
|
||||
|
||||
* Initial version for 1.23.3 - security fix.
|
||||
(closes: #479034)
|
||||
|
||||
-- Peter Howard <pjh@northern-ridge.com.au> Wed, 19 Mar 2008 01:02:50 +1000
|
||||
|
||||
zoneminder (1.23.2-2) unstable; urgency=low
|
||||
|
||||
* Update to init.d
|
||||
(closes: #468856)
|
||||
* Add dependency on logging daemon
|
||||
(closes: #471277)
|
||||
|
||||
-- Peter Howard <pjh@northern-ridge.com.au> Wed, 19 Mar 2008 01:02:50 +1000
|
||||
|
||||
zoneminder (1.23.2-1) unstable; urgency=low
|
||||
|
||||
* Initial version for 1.23.2
|
||||
(closes: #464152)
|
||||
* Zoneminder 1.23.2 upstream includes fix for GCC 4.3
|
||||
(closes: #454980)
|
||||
* Includes ffmpeg patch by Alexander Kushnirenko <kushnir@uni-protvino.ru>
|
||||
|
||||
-- Peter Howard <pjh@northern-ridge.com.au> Sat, 01 Mar 2008 16:02:50 +1000
|
||||
|
||||
zoneminder (1.22.3-10) unstable; urgency=low
|
||||
|
||||
* Fix bug introduced in -9 where perl is put under /usr/local
|
||||
(closes: #457507)
|
||||
|
||||
-- Peter Howard <pjh@northern-ridge.com.au> Mon, 24 Dec 2007 16:02:50 +1000
|
||||
|
||||
zoneminder (1.22.3-9) unstable; urgency=low
|
||||
|
||||
* Starting zoneminder via init script now invokes "zmfix -a"
|
||||
(closes: #481637)
|
||||
* Change apache2-mpm-prefork dependency to apache2
|
||||
* Temp dir for export under /var/cache/zoneminder (but linked back to
|
||||
/usr/share/zoneminder for now)
|
||||
* Redo use of gnutls rather than openssl for md5 hashes
|
||||
|
||||
-- Peter Howard <pjh@northern-ridge.com.au> Mon, 10 Dec 2007 16:02:50 +1000
|
||||
|
||||
zoneminder (1.22.3-8) unstable; urgency=low
|
||||
|
||||
* Build now includes libpcre3
|
||||
(closes: #437533)
|
||||
* "Monitor Presets" patch now applied to package during build.
|
||||
|
||||
-- Peter Howard <pjh@northern-ridge.com.au> Sat, 18 Aug 2007 14:35:23 +1000
|
||||
|
||||
zoneminder (1.22.3-7) unstable; urgency=low
|
||||
|
||||
* Turn off debug trace and crash dump on build
|
||||
(closes:#414857,#414891)
|
||||
* Additional perl libraries added in dependencies
|
||||
(closes:#416291)
|
||||
* Change preferred PHP version from 4 to 5
|
||||
-- Peter Howard <pjh@northern-ridge.com.au> Sun, 29 Jul 2007 15:11:13 +1000
|
||||
|
||||
zoneminder (1.22.3-6) unstable; urgency=low
|
||||
|
||||
* Removed a similar bash only statment from zmpkg.pl
|
||||
(closes:414882)
|
||||
|
||||
-- Peter Howard <pjh@northern-ridge.com.au> Sat, 14 Apr 2007 11:46:56 +1000
|
||||
|
||||
zoneminder (1.22.3-5) unstable; urgency=low
|
||||
|
||||
* Installs with "phone home" feature turned off by default, and permissions
|
||||
on /etc/zm/zm.conf fixed (now the 0600 it s hould be)
|
||||
(closes:415349)
|
||||
* Removed "stupid bash-ism" on mysqld check in postinst file.
|
||||
|
||||
-- Peter Howard <pjh@northern-ridge.com.au> Fri, 6 Apr 2007 15:50:00 +1000
|
||||
|
||||
zoneminder (1.22.3-4) unstable; urgency=low
|
||||
|
||||
* Put libmysqlclient-15-dev in front of -14-dev so sbuild works
|
||||
(closes: #414410)
|
||||
|
||||
-- Peter Howard <pjh@northern-ridge.com.au> Mon, 12 Mar 2007 11:38:56 +1100
|
||||
|
||||
zoneminder (1.22.3-3) unstable; urgency=low
|
||||
|
||||
* Clean up of postinstall, postrm ; user "zm" definitely was a mistake
|
||||
* Also in postinstall: check and start MySQL if it's not running.
|
||||
* init.d script now checks if zoneminder isn't running and still returns 0
|
||||
(which helps uninstalling)
|
||||
* Addition of php5 dependency options as well as php4.
|
||||
|
||||
-- Peter Howard <pjh@northern-ridge.com.au> Mon, 26 Feb 2007 10:40:52 +1100
|
||||
|
||||
zoneminder (1.22.3-2) unstable; urgency=low
|
||||
|
||||
* Added zmuser in the mysql creation; this should fix the install problem
|
||||
for people, but needs to be cleaned up (in -3)
|
||||
|
||||
-- Peter Howard <pjh@northern-ridge.com.au> Fri, 16 Feb 2007 14:16:03 +1100
|
||||
|
||||
zoneminder (1.22.3-1) unstable; urgency=low
|
||||
|
||||
* Initial Version. (closes: #248393)
|
||||
* Patched out use of openssl; uses gnutls instead for MD5 hashes.
|
||||
* Removed MakeMaker-inserted Perl licensing (with authors permission) in
|
||||
various scripts; replaced with GPL.
|
||||
|
||||
-- Peter Howard <pjh@northern-ridge.com.au> Wed, 7 Feb 2007 14:09:01 +1100
|
|
@ -0,0 +1,3 @@
|
|||
.gitattributes
|
||||
web/api/.gitattributes
|
||||
web/api/.gitignore
|
|
@ -0,0 +1 @@
|
|||
9
|
|
@ -0,0 +1,16 @@
|
|||
# Remember to enable cgi mod (i.e. "a2enmod cgi").
|
||||
ScriptAlias /zm/cgi-bin "/usr/lib/zoneminder/cgi-bin"
|
||||
<Directory "/usr/lib/zoneminder/cgi-bin">
|
||||
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
|
||||
AllowOverride All
|
||||
Require all granted
|
||||
</Directory>
|
||||
|
||||
Alias /zm /usr/share/zoneminder/www
|
||||
<Directory /usr/share/zoneminder/www>
|
||||
php_flag register_globals off
|
||||
Options Indexes FollowSymLinks
|
||||
<IfModule mod_dir.c>
|
||||
DirectoryIndex index.php
|
||||
</IfModule>
|
||||
</Directory>
|
|
@ -0,0 +1,140 @@
|
|||
Source: zoneminder
|
||||
Section: net
|
||||
Priority: optional
|
||||
Maintainer: Dmitry Smirnov <onlyjob@debian.org>
|
||||
Uploaders: Vagrant Cascadian <vagrant@debian.org>
|
||||
Build-Depends: debhelper (>= 9), python-sphinx | python3-sphinx, apache2-dev, dh-linktree
|
||||
,cmake
|
||||
,libavcodec-dev, libavformat-dev (>= 3:0.svn20090204), libswscale-dev (>= 3:0.svn20090204), libavutil-dev, libavdevice-dev
|
||||
,libbz2-dev
|
||||
,libdate-manip-perl
|
||||
,libdbd-mysql-perl
|
||||
,libgcrypt-dev
|
||||
,libcurl4-gnutls-dev
|
||||
,libgnutls-openssl-dev
|
||||
,libjpeg8-dev|libjpeg9-dev|libjpeg62-turbo-dev,
|
||||
,libmysqlclient-dev
|
||||
,libpcre3-dev
|
||||
,libphp-serialization-perl
|
||||
,libpolkit-gobject-1-dev
|
||||
,libsys-mmap-perl [!hurd-any]
|
||||
,libv4l-dev (>= 0.8.3) [!hurd-any]
|
||||
,libvlc-dev
|
||||
,libwww-perl
|
||||
# Unbundled (dh_linktree):
|
||||
,libjs-jquery
|
||||
,libjs-mootools
|
||||
Standards-Version: 3.9.6
|
||||
Homepage: http://www.zoneminder.com/
|
||||
Vcs-Browser: http://anonscm.debian.org/cgit/collab-maint/zoneminder.git
|
||||
Vcs-Git: git://anonscm.debian.org/collab-maint/zoneminder.git
|
||||
|
||||
Package: zoneminder
|
||||
Architecture: any
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}
|
||||
,javascript-common
|
||||
,libav-tools|ffmpeg
|
||||
,libdate-manip-perl
|
||||
,libmime-lite-perl
|
||||
,libmime-tools-perl
|
||||
,libphp-serialization-perl
|
||||
,libmodule-load-conditional-perl
|
||||
,libnet-sftp-foreign-perl
|
||||
# ,libzoneminder-perl (= ${source:Version})
|
||||
,libarchive-zip-perl
|
||||
,libdbd-mysql-perl
|
||||
,libdevice-serialport-perl
|
||||
,libimage-info-perl
|
||||
,libjson-any-perl
|
||||
,libsys-mmap-perl [!hurd-any]
|
||||
,liburi-encode-perl
|
||||
,libwww-perl
|
||||
,mysql-client | virtual-mysql-client
|
||||
,perl-modules
|
||||
,php5-mysql
|
||||
,policykit-1
|
||||
,rsyslog | system-log-daemon
|
||||
,zip
|
||||
Recommends: ${misc:Recommends}
|
||||
,libapache2-mod-php5 | php5-fpm
|
||||
,mysql-server | virtual-mysql-server
|
||||
,zoneminder-doc (>= ${source:Version})
|
||||
Suggests: fcgiwrap, logrotate
|
||||
Description: video camera security and surveillance solution
|
||||
ZoneMinder is intended for use in single or multi-camera video security
|
||||
applications, including commercial or home CCTV, theft prevention and child
|
||||
or family member or home monitoring and other care scenarios. It
|
||||
supports capture, analysis, recording, and monitoring of video data coming
|
||||
from one or more video or network cameras attached to a Linux system.
|
||||
ZoneMinder also support web and semi-automatic control of Pan/Tilt/Zoom
|
||||
cameras using a variety of protocols. It is suitable for use as a home
|
||||
video security system and for commercial or professional video security
|
||||
and surveillance. It can also be integrated into a home automation system
|
||||
via X.10 or other protocols.
|
||||
|
||||
#Package: libzoneminder-perl
|
||||
#Section: perl
|
||||
#Architecture: all
|
||||
#Multi-Arch: foreign
|
||||
#Depends: ${misc:Depends}, ${perl:Depends}
|
||||
# ,libarchive-zip-perl
|
||||
# ,libdbd-mysql-perl
|
||||
# ,libdevice-serialport-perl
|
||||
# ,libimage-info-perl
|
||||
# ,libjson-any-perl
|
||||
# ,libsys-mmap-perl [!hurd-any]
|
||||
# ,liburi-encode-perl
|
||||
# ,libwww-perl
|
||||
#Description: ZoneMinder Perl libraries
|
||||
# ZoneMinder is intended for use in single or multi-camera video security
|
||||
# applications, including commercial or home CCTV, theft prevention and child
|
||||
# or family member or home monitoring and other care scenarios. It
|
||||
# supports capture, analysis, recording, and monitoring of video data coming
|
||||
# from one or more video or network cameras attached to a Linux system.
|
||||
# ZoneMinder also support web and semi-automatic control of Pan/Tilt/Zoom
|
||||
# cameras using a variety of protocols. It is suitable for use as a home
|
||||
# video security system and for commercial or professional video security
|
||||
# and surveillance. It can also be integrated into a home automation system
|
||||
# via X.10 or other protocols.
|
||||
# .
|
||||
# This package provides ZoneMinder Perl libraries; it can be used to
|
||||
# write custom interfaces as well.
|
||||
|
||||
Package: zoneminder-doc
|
||||
Section: doc
|
||||
Architecture: all
|
||||
Multi-Arch: foreign
|
||||
Depends: ${misc:Depends}, ${sphinxdoc:Depends}
|
||||
Suggests: www-browser
|
||||
Description: ZoneMinder documentation
|
||||
ZoneMinder is intended for use in single or multi-camera video security
|
||||
applications, including commercial or home CCTV, theft prevention and child
|
||||
or family member or home monitoring and other care scenarios. It
|
||||
supports capture, analysis, recording, and monitoring of video data coming
|
||||
from one or more video or network cameras attached to a Linux system.
|
||||
ZoneMinder also support web and semi-automatic control of Pan/Tilt/Zoom
|
||||
cameras using a variety of protocols. It is suitable for use as a home
|
||||
video security system and for commercial or professional video security
|
||||
and surveillance. It can also be integrated into a home automation system
|
||||
via X.10 or other protocols.
|
||||
.
|
||||
This package provides ZoneMinder documentation in HTML format.
|
||||
|
||||
Package: zoneminder-dbg
|
||||
Section: debug
|
||||
Priority: extra
|
||||
Architecture: any
|
||||
Depends: zoneminder (= ${binary:Version}), ${misc:Depends}
|
||||
Description: Zoneminder -- debugging symbols
|
||||
ZoneMinder is intended for use in single or multi-camera video security
|
||||
applications, including commercial or home CCTV, theft prevention and child
|
||||
or family member or home monitoring and other care scenarios. It
|
||||
supports capture, analysis, recording, and monitoring of video data coming
|
||||
from one or more video or network cameras attached to a Linux system.
|
||||
ZoneMinder also support web and semi-automatic control of Pan/Tilt/Zoom
|
||||
cameras using a variety of protocols. It is suitable for use as a home
|
||||
video security system and for commercial or professional video security
|
||||
and surveillance. It can also be integrated into a home automation system
|
||||
via X.10 or other protocols.
|
||||
.
|
||||
This package provides debugging symbols
|
|
@ -0,0 +1,174 @@
|
|||
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||
Upstream-Name: ZoneMinder
|
||||
Upstream-Contact: Philip Coombes <philip.coombes@zoneminder.com>
|
||||
Source: https://github.com/ZoneMinder/ZoneMinder
|
||||
Comment:
|
||||
This package was originally debianized by matrix <matrix@cecilia>
|
||||
on Mon, 7 Mar 2005 02:07:57 -0500.
|
||||
It was re-done for submission to the Debian project by Peter Howard
|
||||
<pjh@northern-ridge.com.au> on Fri, 8 Dec 2006 10:19:43 +1100
|
||||
Files-Excluded:
|
||||
web/skins/*/js/jquery-*
|
||||
web/tools/mootools/*-yc.js
|
||||
|
||||
Files: *
|
||||
Copyright: 2001-2014 Philip Coombes <philip.coombes@zoneminder.com>
|
||||
2008 Brian Rudy <brudyNO@SPAMpraecogito.com>
|
||||
2014 Vincent Giovannone
|
||||
2013 Tim Craig <timcraigNO@SPAMsonic.net>
|
||||
2003-2008 Corey DeLasaux
|
||||
2001-2010 Chris Kistner
|
||||
License: GPL-2+
|
||||
|
||||
Files: distros/*
|
||||
Copyright: 2001-2008 Philip Coombes <philip.coombes@zoneminder.com>
|
||||
2014 Isaac Connor <iconnor@connortechnology.com>
|
||||
2005 Serg Oskin
|
||||
License: GPL-2+
|
||||
|
||||
Files: web/skins/*/js/jquery-*
|
||||
Copyright: 2010 John Resig
|
||||
2010 The Dojo Foundation
|
||||
License: GPL-2 or Expat
|
||||
Comment:
|
||||
Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
http://jquery.org/license
|
||||
.
|
||||
Includes Sizzle.js http://sizzlejs.com/
|
||||
Released under the MIT, BSD, and GPL Licenses.
|
||||
|
||||
Files: web/tools/mootools/*.js
|
||||
Copyright: 2009 Marcelo Jorge Vieira (metal) <metal@alucinados.com>
|
||||
2006-2010 Valerio Proietti (http://mad4milk.net/)
|
||||
License: Expat
|
||||
|
||||
Files: web/api/*
|
||||
Copyright: 2005-2013 Cake Software Foundation, Inc. (http://cakefoundation.org)
|
||||
License: Expat
|
||||
|
||||
Files:
|
||||
cmake/Modules/CheckPrototypeDefinition*.cmake
|
||||
cmake/Modules/FindGLIB2.cmake
|
||||
cmake/Modules/FindPolkit.cmake
|
||||
cmake/Modules/GNUInstallDirs.cmake
|
||||
Copyright:
|
||||
2005-2011 Kitware, Inc.
|
||||
2010-2011 Andreas Schneider <asn@cryptomilk.org>
|
||||
2009 Dario Freddi <drf@kde.org>
|
||||
2008 Laurent Montel, <montel@kde.org>
|
||||
2011 Nikita Krupen'ko <krnekit@gmail.com>
|
||||
License: BSD-3-clause
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
.
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
.
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
.
|
||||
* The names of Kitware, Inc., the Insight Consortium, or the names of
|
||||
any consortium members, or of any contributors, may not be used to
|
||||
endorse or promote products derived from this software without
|
||||
specific prior written permission.
|
||||
.
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS ``AS IS''
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
|
||||
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
Files: cmake/Modules/FindPerlModules.cmake
|
||||
Copyright: 2012 Iowa State University
|
||||
License: Boost-1.0
|
||||
Boost Software License - Version 1.0 - August 17th, 2003
|
||||
.
|
||||
Permission is hereby granted, free of charge, to any person or organization
|
||||
obtaining a copy of the software and accompanying documentation covered by
|
||||
this license (the "Software") to use, reproduce, display, distribute,
|
||||
execute, and transmit the Software, and to prepare derivative works of the
|
||||
Software, and to permit third-parties to whom the Software is furnished to
|
||||
do so, all subject to the following:
|
||||
.
|
||||
The copyright notices in the Software and this entire statement, including
|
||||
the above license grant, this restriction and the following disclaimer,
|
||||
must be included in all copies of the Software, in whole or in part, and
|
||||
all derivative works of the Software, unless such copies or derivative
|
||||
works are solely in the form of machine-executable object code generated by
|
||||
a source language processor.
|
||||
.
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
|
||||
SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
|
||||
FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
|
||||
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Files: debian/*
|
||||
Copyright: 2015 Dmitry Smirnov <onlyjob@debian.org>
|
||||
2007-2014 Peter Howard <pjh@northern-ridge.com.au>
|
||||
2010-2012 Vagrant Cascadian <vagrant@debian.org>
|
||||
2001-2008 Philip Coombes <philip.coombes@zoneminder.com>
|
||||
License: GPL-2+
|
||||
|
||||
License: Expat
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
.
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
.
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
License: GPL-2+
|
||||
This package is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by the
|
||||
Free Software Foundation; either version 2 of the License, or (at your
|
||||
option) any later version.
|
||||
.
|
||||
This package is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
.
|
||||
You should have received a copy of the GNU General Public
|
||||
License along with this package; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
.
|
||||
The complete text of the GNU General Public License version 2
|
||||
can be found in "/usr/share/common-licenses/GPL-2".
|
||||
|
||||
License: GPL-2
|
||||
This package is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by the
|
||||
Free Software Foundation; version 2 of the License.
|
||||
.
|
||||
This package is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
.
|
||||
You should have received a copy of the GNU General Public
|
||||
License along with this package; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
.
|
||||
The complete text of the GNU General Public License version 2
|
||||
can be found in "/usr/share/common-licenses/GPL-2".
|
|
@ -0,0 +1,32 @@
|
|||
location /zm/cgi-bin {
|
||||
gzip off;
|
||||
alias /usr/lib/zoneminder/cgi-bin;
|
||||
|
||||
include /etc/nginx/fastcgi_params;
|
||||
fastcgi_param SCRIPT_FILENAME $request_filename;
|
||||
fastcgi_pass unix:/var/run/fcgiwrap.socket;
|
||||
}
|
||||
|
||||
location /zm {
|
||||
# if ($scheme ~ ^http:){
|
||||
# rewrite ^(.*)$ https://$host$1 permanent;
|
||||
# }
|
||||
|
||||
gzip off;
|
||||
alias /usr/share/zoneminder/www;
|
||||
index index.php;
|
||||
|
||||
location ~ \.php$ {
|
||||
if (!-f $request_filename) { return 404; }
|
||||
expires epoch;
|
||||
include /etc/nginx/fastcgi_params;
|
||||
fastcgi_param SCRIPT_FILENAME $request_filename;
|
||||
fastcgi_index index.php;
|
||||
fastcgi_pass unix:/var/run/php5-fpm.sock;
|
||||
}
|
||||
|
||||
location ~ \.(jpg|jpeg|gif|png|ico)$ {
|
||||
access_log off;
|
||||
expires 33d;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
|
||||
[dch]
|
||||
id-length = 0
|
||||
|
||||
[import-orig]
|
||||
pristine-tar = False
|
||||
merge = False
|
|
@ -0,0 +1,2 @@
|
|||
usr/share/man/man3
|
||||
usr/share/perl5
|
|
@ -0,0 +1,40 @@
|
|||
Last-Update: 2015-04-02
|
||||
Forwarded: no
|
||||
Author: Dmitry Smirnov <onlyjob@member.fsf.org>
|
||||
Description: adapt apache2.conf to work out-of-the-box.
|
||||
|
||||
--- a/misc/apache.conf.in
|
||||
+++ b/misc/apache.conf.in
|
||||
@@ -13,19 +13,21 @@
|
||||
Options FollowSymLinks
|
||||
AllowOverride All
|
||||
</Directory>
|
||||
|
||||
- ScriptAlias /cgi-bin/ "@CGI_PREFIX@"
|
||||
+ # Remember to enable cgi mod (i.e. "a2enmod cgi").
|
||||
+ ScriptAlias /cgi-bin "@CGI_PREFIX@"
|
||||
<Directory "@CGI_PREFIX@">
|
||||
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
|
||||
AllowOverride All
|
||||
+ Require all granted
|
||||
</Directory>
|
||||
|
||||
# Use the first option to have Apache logs written to the general log
|
||||
# directory, or the second to have them written to the regular Apache
|
||||
# directory (you may have to change the path to that used on your system)
|
||||
ErrorLog @ZM_LOGDIR@/apache-error.log
|
||||
- ErrorLog /var/log/httpd/zm-error.log
|
||||
+# ErrorLog /var/log/httpd/zm-error.log
|
||||
|
||||
# Possible values include: debug, info, notice, warn, error, crit,
|
||||
# alert, emerg.
|
||||
LogLevel warn
|
||||
@@ -33,7 +35,7 @@
|
||||
# Use the first option to have Apache logs written to the general log
|
||||
# directory, or the second to have them written to the regular Apache
|
||||
# directory (you may have to change the path to that used on your system)
|
||||
CustomLog @ZM_LOGDIR@/apache-access.log combined
|
||||
- CustomLog /var/log/httpd/zm-access.log combined
|
||||
+# CustomLog /var/log/httpd/zm-access.log combined
|
||||
|
||||
</VirtualHost>
|
|
@ -0,0 +1,16 @@
|
|||
Last-Update: 2015-08-16
|
||||
Forwarded: no
|
||||
Author: Dmitry Smirnov <onlyjob@member.fsf.org>
|
||||
Description: correct path to CGI app according to default web server configuration.
|
||||
|
||||
--- a/scripts/ZoneMinder/lib/ZoneMinder/ConfigData.pm.in
|
||||
+++ b/scripts/ZoneMinder/lib/ZoneMinder/ConfigData.pm.in
|
||||
@@ -428,7 +428,7 @@ our @options =
|
||||
},
|
||||
{
|
||||
name => "ZM_PATH_ZMS",
|
||||
- default => "/cgi-bin/nph-zms",
|
||||
+ default => "/zm/cgi-bin/nph-zms",
|
||||
description => "Web path to zms streaming server",
|
||||
help => qqq("
|
||||
The ZoneMinder streaming server is required to send streamed
|
|
@ -0,0 +1,3 @@
|
|||
apache2.patch
|
||||
default_cgi-path.patch
|
||||
use_libjs-mootools.patch
|
|
@ -0,0 +1,18 @@
|
|||
Last-Update: 2015-03-29
|
||||
Forwarded: no
|
||||
Bug-Debian: http://bugs.debian.org/585590
|
||||
Reviewed-By: Dmitry Smirnov <onlyjob@member.fsf.org>
|
||||
Description: use mootools shipped by debian, rather than the zoneminder included mootools.
|
||||
|
||||
--- a/web/skins/classic/includes/functions.php
|
||||
+++ b/web/skins/classic/includes/functions.php
|
||||
@@ -63,9 +63,8 @@
|
||||
}
|
||||
?>
|
||||
<script type="text/javascript" src="tools/mootools/mootools-core.js"></script>
|
||||
<script type="text/javascript" src="tools/mootools/mootools-more.js"></script>
|
||||
- <script type="text/javascript" src="js/mootools.ext.js"></script>
|
||||
<script type="text/javascript" src="js/logger.js"></script>
|
||||
<script type="text/javascript" src="js/overlay.js"></script>
|
||||
<?php
|
||||
if ( $skinJsPhpFile )
|
|
@ -0,0 +1,93 @@
|
|||
#!/usr/bin/make -f
|
||||
# -*- makefile -*-
|
||||
|
||||
# Uncomment this to turn on verbose mode.
|
||||
#export DH_VERBOSE=1
|
||||
|
||||
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
|
||||
export DEB_LDFLAGS_MAINT_APPEND += -Wl,--as-needed
|
||||
|
||||
ifeq ($(DEB_BUILD_ARCH_OS),hurd)
|
||||
ARGS:= -DZM_NO_MMAP=ON
|
||||
endif
|
||||
|
||||
%:
|
||||
dh $@ --parallel --buildsystem=cmake --builddirectory=dbuild \
|
||||
--with sphinxdoc,apache2,linktree
|
||||
|
||||
override_dh_auto_configure:
|
||||
dh_auto_configure -- $(ARGS) \
|
||||
-DCMAKE_VERBOSE_MAKEFILE=ON \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DZM_CONFIG_DIR="/etc/zm" \
|
||||
-DZM_RUNDIR="/var/run/zm" \
|
||||
-DZM_SOCKDIR="/var/run/zm" \
|
||||
-DZM_TMPDIR="/tmp/zm" \
|
||||
-DZM_CGIDIR="/usr/lib/zoneminder/cgi-bin" \
|
||||
-DZM_CONTENTDIR="/var/cache/zoneminder"
|
||||
|
||||
override_dh_clean:
|
||||
dh_clean $(MANPAGES1)
|
||||
$(RM) -r docs/_build docs/installationguide
|
||||
|
||||
build-indep:
|
||||
#$(MAKE) -C docs text
|
||||
$(MAKE) -C docs html
|
||||
|
||||
MANPAGES1 = dbuild/scripts/zmupdate.pl.1
|
||||
$(MANPAGES1):
|
||||
# generate man page(s):
|
||||
pod2man -s1 --stderr --utf8 $(patsubst %.1, %, $@) $@
|
||||
|
||||
## reproducible build:
|
||||
LAST_CHANGE=$(shell dpkg-parsechangelog -S Date)
|
||||
BUILD_DATE=$(shell LC_ALL=C date -u "+%B %d, %Y" -d "$(LAST_CHANGE)")
|
||||
override_dh_installman: $(MANPAGES1)
|
||||
$(MAKE) -C docs man SPHINXOPTS="-D today=\"$(BUILD_DATE)\""
|
||||
dh_installman --language=C $(MANPAGES1)
|
||||
|
||||
override_dh_auto_install:
|
||||
dh_auto_install --destdir=$(CURDIR)/debian/tmp
|
||||
# remove worthless files:
|
||||
$(RM) -v $(CURDIR)/debian/tmp/usr/share/perl5/*/*/*/.packlist
|
||||
$(RM) -v $(CURDIR)/debian/tmp/usr/share/perl5/*/*.in
|
||||
# remove empty directories:
|
||||
find $(CURDIR)/debian/tmp/usr -type d -empty -delete -printf 'removed %p\n'
|
||||
# remove extra-license-file:
|
||||
$(RM) -v $(CURDIR)/debian/tmp/usr/share/zoneminder/www/api/lib/Cake/LICENSE.txt
|
||||
|
||||
override_dh_fixperms:
|
||||
dh_fixperms
|
||||
## 637685
|
||||
chmod -c o-r $(CURDIR)/debian/zoneminder/etc/zm/zm.conf
|
||||
|
||||
override_dh_installinit:
|
||||
dh_installinit --no-start
|
||||
|
||||
override_dh_systemd_start:
|
||||
dh_systemd_start --no-start
|
||||
|
||||
override_dh_systemd_enable:
|
||||
dh_systemd_enable --no-enable
|
||||
|
||||
override_dh_apache2:
|
||||
dh_apache2 --noenable
|
||||
|
||||
override_dh_strip:
|
||||
[ -d "$(CURDIR)/debian/zoneminder-dbg" ] \
|
||||
&& dh_strip --dbg-package=zoneminder-dbg \
|
||||
|| dh_strip
|
||||
|
||||
#%:
|
||||
# dh $@ --parallel --buildsystem=autoconf --with autoreconf
|
||||
#
|
||||
#override_dh_auto_configure:
|
||||
# dh_auto_configure -- \
|
||||
# --sysconfdir=/etc/zm \
|
||||
# --with-mysql=/usr \
|
||||
# --with-webdir=/usr/share/zoneminder \
|
||||
# --with-ffmpeg=/usr \
|
||||
# --with-cgidir=/usr/lib/cgi-bin \
|
||||
# --with-webuser=www-data \
|
||||
# --with-webgroup=www-data \
|
||||
# --enable-mmap=yes
|
|
@ -0,0 +1 @@
|
|||
3.0 (quilt)
|
|
@ -0,0 +1,9 @@
|
|||
## Actually sources are there: "*-nc.js".
|
||||
source-is-missing web/tools/mootools/mootools-*-yc.js
|
||||
|
||||
## We're using "libjs-jquery" instead.
|
||||
source-is-missing web/skins/*/js/jquery-1.4.2.min.js
|
||||
|
||||
## Acknowledged, will repack eventually.
|
||||
source-contains-prebuilt-javascript-object web/tools/mootools/mootools-*-yc.js
|
||||
source-contains-prebuilt-javascript-object web/skins/*/js/jquery-1.4.2.min.js
|
|
@ -0,0 +1,7 @@
|
|||
version=3
|
||||
|
||||
opts=\
|
||||
repacksuffix=+dfsg,\
|
||||
dversionmangle=s{\+dfsg\d*}{},\
|
||||
https://github.com/ZoneMinder/ZoneMinder/releases \
|
||||
.*/ZoneMinder/archive/v(.*).tar.gz
|
|
@ -0,0 +1,8 @@
|
|||
Document: zoneminder-doc
|
||||
Title: Zoneminder documentation
|
||||
Abstract: This document describes how to use Zoneminder.
|
||||
Section: System/Administration
|
||||
|
||||
Format: HTML
|
||||
Index: /usr/share/doc/zoneminder-doc/html/index.html
|
||||
Files: /usr/share/doc/zoneminder-doc/html/*
|
|
@ -0,0 +1 @@
|
|||
docs/_build/html usr/share/doc/zoneminder-doc/
|
|
@ -0,0 +1,2 @@
|
|||
## Convenience symlink:
|
||||
/usr/share/doc/zoneminder-doc/html /usr/share/doc/zoneminder/html
|
|
@ -0,0 +1 @@
|
|||
conf debian/conf/apache2/zoneminder.conf nginx
|
|
@ -0,0 +1,5 @@
|
|||
Unless bug is specific to Debian please consider reporting it directly to
|
||||
upstream developer(s):
|
||||
|
||||
https://github.com/ZoneMinder/ZoneMinder/issues
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
var/log/zm
|
||||
var/lib/zm
|
||||
var/cache/zoneminder/events
|
||||
var/cache/zoneminder/images
|
||||
var/cache/zoneminder/temp
|
||||
usr/share/zoneminder/db
|
|
@ -0,0 +1 @@
|
|||
README.md
|
|
@ -0,0 +1,2 @@
|
|||
debian/examples/*
|
||||
dbuild/misc/apache.conf
|
|
@ -0,0 +1,90 @@
|
|||
#!/bin/sh
|
||||
### BEGIN INIT INFO
|
||||
# Provides: zoneminder
|
||||
# Required-Start: $network $remote_fs $syslog
|
||||
# Required-Stop: $network $remote_fs $syslog
|
||||
# Should-Start: mysql
|
||||
# Should-Stop: mysql
|
||||
# Default-Start: 2 3 4 5
|
||||
# Default-Stop: 0 1 6
|
||||
# Short-Description: Control ZoneMinder as a Service
|
||||
# Description: ZoneMinder CCTV recording and surveillance system
|
||||
### END INIT INFO
|
||||
# chkconfig: 2345 20 20
|
||||
|
||||
# Source function library.
|
||||
. /lib/lsb/init-functions
|
||||
|
||||
prog=ZoneMinder
|
||||
ZM_PATH_BIN="/usr/bin"
|
||||
RUNDIR="/var/run/zm"
|
||||
TMPDIR="/tmp/zm"
|
||||
command="$ZM_PATH_BIN/zmpkg.pl"
|
||||
|
||||
start() {
|
||||
echo -n "Starting $prog: "
|
||||
mkdir -p "$RUNDIR" && chown www-data:www-data "$RUNDIR"
|
||||
mkdir -p "$TMPDIR" && chown www-data:www-data "$TMPDIR"
|
||||
$command start
|
||||
RETVAL=$?
|
||||
[ $RETVAL = 0 ] && echo success
|
||||
[ $RETVAL != 0 ] && echo failure
|
||||
echo
|
||||
[ $RETVAL = 0 ] && touch /var/lock/zm
|
||||
return $RETVAL
|
||||
}
|
||||
stop() {
|
||||
echo -n "Stopping $prog: "
|
||||
#
|
||||
# Why is this status check being done?
|
||||
# as $command stop returns 1 if zoneminder
|
||||
# is stopped, which will result in
|
||||
# this returning 1, which will stuff
|
||||
# dpkg when it tries to stop zoneminder before
|
||||
# uninstalling . . .
|
||||
#
|
||||
result=`$command status`
|
||||
if [ ! "$result" = "running" ]; then
|
||||
echo "Zoneminder already stopped"
|
||||
echo
|
||||
RETVAL=0
|
||||
else
|
||||
$command stop
|
||||
RETVAL=$?
|
||||
[ $RETVAL = 0 ] && echo success
|
||||
[ $RETVAL != 0 ] && echo failure
|
||||
echo
|
||||
[ $RETVAL = 0 ] && rm -f /var/lock/zm
|
||||
fi
|
||||
}
|
||||
status() {
|
||||
result=`$command status`
|
||||
if [ "$result" = "running" ]; then
|
||||
echo "ZoneMinder is running"
|
||||
RETVAL=0
|
||||
else
|
||||
echo "ZoneMinder is stopped"
|
||||
RETVAL=1
|
||||
fi
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
'start')
|
||||
start
|
||||
;;
|
||||
'stop')
|
||||
stop
|
||||
;;
|
||||
'restart' | 'force-reload')
|
||||
stop
|
||||
start
|
||||
;;
|
||||
'status')
|
||||
status
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 { start | stop | restart | status }"
|
||||
RETVAL=1
|
||||
;;
|
||||
esac
|
||||
exit $RETVAL
|
|
@ -0,0 +1,10 @@
|
|||
etc/zm/zm.conf
|
||||
usr/bin
|
||||
usr/lib/zoneminder
|
||||
usr/share/polkit-1
|
||||
usr/share/zoneminder/db
|
||||
usr/share/zoneminder/www
|
||||
|
||||
# libzoneminder-perl files:
|
||||
usr/share/man/man3
|
||||
usr/share/perl5
|
|
@ -0,0 +1,3 @@
|
|||
/var/cache/zoneminder/events /usr/share/zoneminder/www/events
|
||||
/var/cache/zoneminder/images /usr/share/zoneminder/www/images
|
||||
/var/cache/zoneminder/temp /usr/share/zoneminder/www/temp
|
|
@ -0,0 +1,14 @@
|
|||
## cakephp
|
||||
#replace /usr/share/php/Cake /usr/share/zoneminder/www/api/lib/Cake
|
||||
|
||||
## libjs-mootools
|
||||
replace /usr/share/javascript/mootools/mootools.js /usr/share/zoneminder/www/tools/mootools/mootools-core.js
|
||||
replace /usr/share/javascript/mootools/mootools.js /usr/share/zoneminder/www/tools/mootools/mootools-core-1.3.2-nc.js
|
||||
replace /usr/share/javascript/mootools/mootools.js /usr/share/zoneminder/www/tools/mootools/mootools-core-1.3.2-yc.js
|
||||
replace /usr/share/javascript/mootools/mootools-more.js /usr/share/zoneminder/www/tools/mootools/mootools-more.js
|
||||
replace /usr/share/javascript/mootools/mootools-more.js /usr/share/zoneminder/www/tools/mootools/mootools-more-1.3.2.1-nc.js
|
||||
replace /usr/share/javascript/mootools/mootools-more.js /usr/share/zoneminder/www/tools/mootools/mootools-more-1.3.2.1-yc.js
|
||||
|
||||
## libjs-jquery
|
||||
replace /usr/share/javascript/jquery/jquery.min.js /usr/share/zoneminder/www/skins/classic/js/jquery-1.4.2.min.js
|
||||
replace /usr/share/javascript/jquery/jquery.min.js /usr/share/zoneminder/www/skins/flat/js/jquery-1.4.2.min.js
|
|
@ -0,0 +1,14 @@
|
|||
# Depends: policykit-1
|
||||
unusual-interpreter usr/bin/zmsystemctl.pl #!/usr/bin/pkexec
|
||||
|
||||
# Intentionally not others-readable, #637685.
|
||||
non-standard-file-perm etc/zm/zm.conf 0640 != 0644
|
||||
|
||||
# Bundled Cake PHP framework, not intended for direct execution:
|
||||
script-not-executable usr/share/zoneminder/www/api/*
|
||||
|
||||
# Annoying but seems to be too much troubles to fix; should be fixed upstream:
|
||||
script-with-language-extension usr/bin/*.pl
|
||||
|
||||
# dh-linktree:
|
||||
package-contains-broken-symlink usr/share/zoneminder/www/api/lib/Cake/*
|
|
@ -0,0 +1,10 @@
|
|||
/var/log/zm/*log {
|
||||
missingok
|
||||
notifempty
|
||||
sharedscripts
|
||||
postrotate
|
||||
/usr/bin/zmpkg.pl logrot >>/dev/null 2>&1 || :
|
||||
endscript
|
||||
weekly
|
||||
rotate 3
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
rm_conffile /etc/zm/apache.conf 1.28.1-5~
|
|
@ -0,0 +1 @@
|
|||
docs/_build/man/*.1
|
|
@ -0,0 +1,13 @@
|
|||
#! /bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
if [ "$1" = "configure" ]; then
|
||||
chown www-data:root /var/log/zm
|
||||
chown www-data:www-data /var/lib/zm
|
||||
if [ -z "$2" ]; then
|
||||
chown www-data:www-data -R /var/cache/zoneminder
|
||||
fi
|
||||
fi
|
||||
|
||||
#DEBHELPER#
|
|
@ -0,0 +1,14 @@
|
|||
#! /bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
if [ "$1" = "purge" ]; then
|
||||
echo "
|
||||
Reminder: to completely remove \"zoneminder\" it may be necessary
|
||||
* to delete database using the following sample command:
|
||||
sudo mysqladmin --defaults-file=/etc/mysql/debian.cnf -f drop zm
|
||||
* to delete remaining data files in "/var/cache/zoneminder".
|
||||
"
|
||||
fi
|
||||
|
||||
#DEBHELPER#
|
|
@ -0,0 +1,36 @@
|
|||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
## Remove obsolete symlink which is in the way of dh_apache2:
|
||||
ol="/etc/apache2/conf-available/zoneminder.conf"
|
||||
if [ -h "${ol}" ]; then
|
||||
[ "$(readlink ${ol})" = "/etc/zm/apache.conf" ] && rm -f "${ol}"
|
||||
fi
|
||||
|
||||
abort=false
|
||||
if [ -h /usr/share/zoneminder/www/events ]; then
|
||||
l=$(readlink /usr/share/zoneminder/www/events)
|
||||
if [ "$l" != "/var/cache/zoneminder/events" ]; then
|
||||
abort=true
|
||||
fi
|
||||
fi
|
||||
if [ -h /usr/share/zoneminder/www/images ]; then
|
||||
l=$(readlink /usr/share/zoneminder/www/images )
|
||||
if [ "$l" != "/var/cache/zoneminder/images" ]; then
|
||||
abort=true
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$abort" = "true" ]; then
|
||||
cat >&2 << EOF
|
||||
Aborting installation of zoneminder due to non-default symlinks in
|
||||
/usr/share/zoneminder for the images and/or events directory, which could
|
||||
result in loss of data. Please move your data in each of these directories to
|
||||
/var/cache/zoneminder before installing zoneminder from the package.
|
||||
EOF
|
||||
exit 1
|
||||
|
||||
fi
|
||||
|
||||
#DEBHELPER#
|
|
@ -0,0 +1,19 @@
|
|||
# ZoneMinder systemd unit file
|
||||
# This file is intended to work with Debian distributions
|
||||
|
||||
[Unit]
|
||||
Description=ZoneMinder CCTV recording and surveillance system
|
||||
After=network.target mysql.service
|
||||
Requires=mysql.service
|
||||
|
||||
[Service]
|
||||
#User=www-data
|
||||
Type=forking
|
||||
ExecStart=/usr/bin/zmpkg.pl start
|
||||
ExecReload=/usr/bin/zmpkg.pl restart
|
||||
ExecStop=/usr/bin/zmpkg.pl stop
|
||||
PIDFile=/var/run/zm/zm.pid
|
||||
Restart=on-abnormal
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
|
@ -0,0 +1,2 @@
|
|||
d /var/run/zm 0755 www-data www-data
|
||||
d /tmp/zm 0755 www-data www-data
|
|
@ -0,0 +1,10 @@
|
|||
zoneminder (1.28.1-1) unstable; urgency=low
|
||||
|
||||
This version is no longer automatically initialize or upgrade database.
|
||||
See README.Debian for details.
|
||||
|
||||
Changed installation paths (please correct your web server configuration):
|
||||
/usr/share/zoneminder --> /usr/share/zoneminder/www
|
||||
/usr/lib/cgi-bin --> /usr/lib/zoneminder/cgi-bin
|
||||
|
||||
-- Dmitry Smirnov <onlyjob@debian.org> Tue, 31 Mar 2015 15:12:17 +1100
|
|
@ -0,0 +1,160 @@
|
|||
Zoneminder for Debian
|
||||
---------------------
|
||||
|
||||
Initializing database
|
||||
---------------------
|
||||
|
||||
pv /usr/share/zoneminder/db/zm_create.sql | sudo mysql --defaults-file=/etc/mysql/debian.cnf
|
||||
OR
|
||||
cat /usr/share/zoneminder/db/zm_create.sql | sudo mysql --defaults-file=/etc/mysql/debian.cnf
|
||||
|
||||
echo 'grant lock tables,alter,create,select,insert,update,delete on zm.* to 'zmuser'@localhost identified by "zmpass";'\
|
||||
| sudo mysql --defaults-file=/etc/mysql/debian.cnf mysql
|
||||
|
||||
Hint: generate secure password with `pwgen` and update "/etc/zm/zm.conf"
|
||||
accordingly.
|
||||
|
||||
The following command can help to ensure that zoneminder can read its
|
||||
configuration file:
|
||||
|
||||
chgrp -c www-data /etc/zm/zm.conf
|
||||
|
||||
|
||||
Upgrading database
|
||||
------------------
|
||||
|
||||
Prior to 1.28.1 database upgrade was performed automatically.
|
||||
"zoneminder" service will refuse to start with outdated database.
|
||||
|
||||
Assuming that database is on "localhost" then the following command can be
|
||||
used to upgrade "zm" database:
|
||||
|
||||
zmupdate.pl
|
||||
|
||||
Additional permissions may be required to perform upgrade:
|
||||
|
||||
echo 'grant lock tables, create, alter on zm.* to 'zmuser'@localhost identified by "zmpass";'\
|
||||
| sudo mysql --defaults-file=/etc/mysql/debian.cnf mysql
|
||||
|
||||
The following command prints the current version of zoneminder database:
|
||||
|
||||
echo 'select Value from Config where Name = "ZM_DYN_CURR_VERSION";' \
|
||||
| sudo mysql --defaults-file=/etc/mysql/debian.cnf --skip-column-names zm
|
||||
|
||||
|
||||
Enabling service
|
||||
----------------
|
||||
|
||||
By default Zoneminder service is not starting automatically and need to be
|
||||
manually activated once database is configured:
|
||||
|
||||
On systemd:
|
||||
|
||||
sudo systemctl enable zoneminder.service
|
||||
|
||||
On SysV:
|
||||
|
||||
sudo update-rc.d zoneminder enable
|
||||
|
||||
|
||||
Web server set-up
|
||||
-----------------
|
||||
|
||||
There are few manual steps to get the web interface working:
|
||||
|
||||
## Apache2
|
||||
|
||||
Apache can be configured as folder "/zm" using sample .conf:
|
||||
|
||||
sudo a2enconf zoneminder
|
||||
|
||||
Alternatively Apache web site configuration template can be used to setup
|
||||
zoneminder as "http://zoneminder":
|
||||
|
||||
sudo cp -v /usr/share/doc/zoneminder/examples/apache.conf /etc/apache2/sites-available/
|
||||
sudo a2ensite zoneminder.conf
|
||||
|
||||
Common configuration steps for Apache2:
|
||||
|
||||
sudo a2enmod cgi
|
||||
sudo service apache2 reload
|
||||
|
||||
|
||||
## nginx / fcgiwrap
|
||||
|
||||
Nginx needs "php5-fpm" package to support PHP and "fcgiwrap" package
|
||||
for binary "cgi-bin" applications:
|
||||
|
||||
sudo apt-get install php5-fpm fcgiwrap
|
||||
|
||||
To enable a URL alias that makes Zoneminder available from
|
||||
|
||||
http://yourserver/zm
|
||||
|
||||
the following line is to be added to "server" section of a web site
|
||||
configuration:
|
||||
|
||||
include /usr/share/doc/zoneminder/examples/nginx.conf;
|
||||
|
||||
For "default" web site it would be sufficient to include the above
|
||||
statement to the file
|
||||
|
||||
/etc/nginx/sites-enabled/default
|
||||
|
||||
To avoid problems with feeds from multiple cameras "fcgiwrap" should be
|
||||
configured to start at least as many processes as there are cameras.
|
||||
It can be done by adjusting DAEMON_OPTS in "/etc/default/fcgiwrap".
|
||||
Systemd users may be affected by the following bug:
|
||||
|
||||
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=792705
|
||||
|
||||
|
||||
## Note:
|
||||
|
||||
When Zoneminder web site is running it may be necessary to set
|
||||
Options/Paths/PATH_ZMS to "/zm/cgi-bin/nph-zms" or according to chosen web
|
||||
site configuration.
|
||||
|
||||
|
||||
Changing the location for images and events
|
||||
-------------------------------------------
|
||||
|
||||
Zoneminder, in its upstream form, stores data in /usr/share/zoneminder/. This
|
||||
package modifies that by changing /usr/share/zoneminder/images and
|
||||
/usr/share/zoneminder/events to symlinks to directories under
|
||||
/var/cache/zoneminder.
|
||||
|
||||
There are numerous places these could be put and ways to do it. But, at the
|
||||
moment, if you change this, an upgrade will fail with a warning about these
|
||||
locations having changed (the reason for this was that previously, an upgrade
|
||||
would silently revert the changes and cause event loss - refer
|
||||
bug #608793).
|
||||
|
||||
If you do want to change the location, here are a couple of suggestions.
|
||||
(thanks to vagrant@freegeek.org):
|
||||
|
||||
These lines in fstab could allow you to bind-mount an alternate location
|
||||
|
||||
/dev/sdX1 /otherdrive ext3 defaults 0 2
|
||||
/otherdrive/zoneminder/images /var/cache/zoneminder/images bind defaults 0 2
|
||||
/otherdrive/zoneminder/events /var/cache/zoneminder/events bind defaults 0 2
|
||||
|
||||
or if you have a separate partition for each:
|
||||
|
||||
/dev/sdX1 /var/cache/zoneminder/images ext3 defaults 0 2
|
||||
/dev/sdX2 /var/cache/zoneminder/events ext3 defaults 0 2
|
||||
|
||||
-- Peter Howard <pjh@northern-ridge.com.au>, Sun, 16 Jan 2010 01:35:51 +1100
|
||||
|
||||
Access to /dev/video*
|
||||
---------------------
|
||||
|
||||
For cameras which require access to /dev/video*, zoneminder may need the
|
||||
www-data user added to the video group in order to see those cameras:
|
||||
|
||||
adduser www-data video
|
||||
|
||||
Note that all web applications running on the zoneminder server will then have
|
||||
access to all video devices on the system.
|
||||
|
||||
-- Vagrant Cascadian <vagrant@debian.org> Sun, 27 Mar 2011 13:06:56 -0700
|
|
@ -0,0 +1,12 @@
|
|||
|
||||
## Separate substantial /usr/share into its own arch-all package.
|
||||
|
||||
## Decide how to handle database updates.
|
||||
|
||||
* Consider possibility that database may be on another machine (#469239).
|
||||
* Consider dbconfig-common? Probably not (what if database is not on localhost?).
|
||||
|
||||
### Run `zmupdate.pl` from service control scripts (init.d, service) on start?
|
||||
|
||||
Automatic upgrade will break "one DB, many zoneminders" setup (unimportant?).
|
||||
|
|
@ -0,0 +1,573 @@
|
|||
zoneminder (1.28.1+1-vivid-SNAPSHOT2015081701) vivid; urgency=medium
|
||||
|
||||
* include api, switch to cmake build
|
||||
|
||||
-- Isaac Connor <iconnor@connortechnology.com> Mon, 17 Aug 2015 10:29:23 -0400
|
||||
|
||||
|
||||
zoneminder (1.28.1-8) unstable; urgency=medium
|
||||
|
||||
* Patchworks:
|
||||
+ New upstream "980-fix-image-size.patch".
|
||||
+ New "default_cgi-path.patch" to correct default ZM_PATH_ZMS.
|
||||
* postinst: set "root" as group owner for "/var/log/zm" to silence
|
||||
logrotate warnings.
|
||||
* Minor correction to README.Debian.
|
||||
|
||||
-- Dmitry Smirnov <onlyjob@debian.org> Sun, 16 Aug 2015 19:19:50 +1000
|
||||
|
||||
zoneminder (1.28.1-7) unstable; urgency=medium
|
||||
|
||||
* Build-Depends += "cakephp (<< 3.0.0~)";
|
||||
Zoneminder is not compatible with latest CakePHP.
|
||||
* Handle conffile removal from maintscript.
|
||||
* rules: build man pages reproducibly.
|
||||
* gbp.conf: renamed old style config section [git-dch] to [dch].
|
||||
* README
|
||||
+ added instructions to update owner of the "/etc/zm/zm.conf"
|
||||
(Closes: #789327).
|
||||
+ zmupdate.pl needs CREATE rights.
|
||||
+ added note about required number of "fcgiwrap" workers.
|
||||
* New upstream patch: "zmtrigger-plus.patch".
|
||||
|
||||
-- Dmitry Smirnov <onlyjob@debian.org> Mon, 20 Jul 2015 16:30:15 +1000
|
||||
|
||||
zoneminder (1.28.1-6) unstable; urgency=low
|
||||
|
||||
* New "zoneminder-doc" and "zoneminder-dbg" packages.
|
||||
|
||||
-- Dmitry Smirnov <onlyjob@debian.org> Sun, 19 Apr 2015 14:50:41 +1000
|
||||
|
||||
zoneminder (1.28.1-5) unstable; urgency=low
|
||||
|
||||
* Move handling of "/var/run/zm" and "/tmp/zm" from .service into .tmpfile.
|
||||
Let dh_installinit do the job. Thanks, Andrew Bauer.
|
||||
* Use dh_apache2 to install Apache conf file; remove old conf and symlink.
|
||||
* Promote "libapache2-mod-php5 | php5-fpm" to Recommends.
|
||||
* Build-Depends:
|
||||
+ dh-linktree
|
||||
+ cakephp (>= 2.6.3)
|
||||
+ libjs-jquery
|
||||
+ libjs-mootools
|
||||
* Depends:
|
||||
- libjs-jquery
|
||||
- libjs-mootools
|
||||
* Build-time replace bundled CakePHP with system one using "dh-linktree".
|
||||
* Use "dh-linktree" to handle mootools and jquery symlinks.
|
||||
|
||||
-- Dmitry Smirnov <onlyjob@debian.org> Sun, 19 Apr 2015 11:45:01 +1000
|
||||
|
||||
zoneminder (1.28.1-4) unstable; urgency=low
|
||||
|
||||
* New patch to fix HTML export with USE_DEEP_STORAGE (closes: #723706).
|
||||
* New "783.patch" to describe potential data loss in ZM_USE_DEEP_STORAGE.
|
||||
* New patch to change default date format to region-neutral ISO notation
|
||||
with time zone.
|
||||
* Build sphinx documentation:
|
||||
+ Install "zoneminder.1" man page.
|
||||
+ Build-Depends += "python-sphinx | python3-sphinx"
|
||||
+ Added commented "zoneminder-doc" package.
|
||||
+ Added "docs.patch" to unlink distro-specific installation docs.
|
||||
* rules:
|
||||
+ set ZM_CONTENTDIR, ZM_SOCKDIR and ZM_TMPDIR.
|
||||
+ remove mistakengly installed Perl module templates.
|
||||
* Updated startup scripts to create ZM_TMPDIR.
|
||||
* Hurd improvements:
|
||||
+ New patch to add PATH_MAX definitions.
|
||||
+ Build without MMAP support on Hurd.
|
||||
+ libsys-mmap-perl [!hurd-any].
|
||||
|
||||
-- Dmitry Smirnov <onlyjob@debian.org> Mon, 06 Apr 2015 18:18:55 +1000
|
||||
|
||||
zoneminder (1.28.1-3) unstable; urgency=low
|
||||
|
||||
* Updated Apache2 and nginx configuration templates to support CGI.
|
||||
* Updated README.Debian to document cgi-bin setup.
|
||||
* Removed "/usr/share/zoneminder/www/cgi-bin" symlink.
|
||||
* Added "apache2.patch" to correct Apache2 site configuration example.
|
||||
* control: Suggests += "fcgiwrap".
|
||||
* rules: added dh_systemd overrides to prevent automatic service
|
||||
activation and start.
|
||||
* Added note about manual service activation to README.Debian
|
||||
(Closes: #781733).
|
||||
|
||||
-- Dmitry Smirnov <onlyjob@debian.org> Thu, 02 Apr 2015 23:20:20 +1100
|
||||
|
||||
zoneminder (1.28.1-2) unstable; urgency=low
|
||||
|
||||
* Removed word "Linux" from short package description.
|
||||
* Build-Depends: do not require "libv4l-dev" on Hurd i.e. [!hurd-any].
|
||||
* Added run-time Perl Depends:
|
||||
+ libdbd-mysql-perl
|
||||
+ libimage-info-perl
|
||||
+ libmodule-load-conditional-perl
|
||||
+ libnet-sftp-foreign-perl
|
||||
+ liburi-encode-perl
|
||||
* Prepare for package split: added commented "libzoneminder-perl"
|
||||
and "zoneminder-dbg" packages to "debian/control".
|
||||
* rules: do not install worthless ".packlist" file.
|
||||
* Updated "libv4l1-videodev.h.patch" to fix v4lv1 detection in CMake.
|
||||
|
||||
-- Dmitry Smirnov <onlyjob@debian.org> Thu, 02 Apr 2015 13:25:19 +1100
|
||||
|
||||
zoneminder (1.28.1-1) unstable; urgency=low
|
||||
|
||||
[ Dmitry Smirnov <onlyjob@debian.org> ]
|
||||
* New upstream release [February 2015].
|
||||
* Upload to unstable.
|
||||
* Disabled automatic database upgrades: post(inst|rm) scripts no longer
|
||||
touch database or do unexpected stuff (Closes: #779254).
|
||||
See README.Debian for details.
|
||||
* Updated installation paths:
|
||||
+ /usr/share/zoneminder --> /usr/share/zoneminder/www
|
||||
+ /usr/lib/cgi-bin --> /usr/lib/zoneminder/cgi-bin
|
||||
* Added logrotate config (Closes: #544826).
|
||||
Thanks, Alberto Reyes.
|
||||
* Native systemd service; "--with systemd" added to dh.
|
||||
* Build with CMake instead of autoconf; rules clean-up.
|
||||
* Build with all hardening.
|
||||
* Build and install "zmupdate.pl.1" man page.
|
||||
* Added nginx/php5-fpm configuration example.
|
||||
* Install upstream "apache.conf" example.
|
||||
* Described setup of Zoneminer web site and database in README.Debian.
|
||||
* Install "/etc/zm/zm.conf" with tighter permissions.
|
||||
* Added TODO.Debian.
|
||||
* Added "debian/clean"; "debian/gbp.conf"; bug-presubj.
|
||||
* Remove bundled Cake tests to take ~5 MB off big-usr-share.
|
||||
* Standards-Version: 3.9.6; compat/debhelper to version 9.
|
||||
* Vcs links to new git repository at collab-maint.
|
||||
* Build-Depends:
|
||||
+ dh-systemd
|
||||
+ libgcrypt11-dev --> libgcrypt-dev
|
||||
+ libcurl4-gnutls-dev
|
||||
+ libvlc-dev
|
||||
+ policykit-1 (required by "zmsystemctl.pl")
|
||||
- dh-autoreconf, autoconf, automake
|
||||
* Depends:
|
||||
- apache2
|
||||
- libapache2-mod-php5 (moved to Suggests)
|
||||
- libpcre3 (invalid)
|
||||
- libmodule-load-perl (obsolete; replaced with perl-modules)
|
||||
- libarchive-tar-perl (obsolete; replaced with perl-modules)
|
||||
- mysql-server (moved to Recommends, Closes: #759504).
|
||||
- php5
|
||||
+ libav-tools
|
||||
+ libjs-jquery (replaces bundled component)
|
||||
+ libjs-mootool (replaces bundled component)
|
||||
+ libjson-any-perl (Closes: #690803).
|
||||
+ perl-modules (Closes: #745819).
|
||||
* Recommends:
|
||||
+ apache2 | httpd
|
||||
+ mysql-server | virtual-mysql-server (Closes: #732874).
|
||||
* Suggests:
|
||||
+ libapache2-mod-php5 | php5-fpm
|
||||
+ logrotate
|
||||
* Refreshed, renamed and re-ordered patches; added DEP-3 headers.
|
||||
* Removed "vendor_perl" patch (applied-upstream).
|
||||
* New patches:
|
||||
+ cmake-fix-confpath.patch
|
||||
+ cmake-gnutls.patch
|
||||
+ cmake-nossl.patch
|
||||
+ cmake.patch
|
||||
+ format-hardening.patch
|
||||
+ pod_man_fixes.patch
|
||||
+ pod_name_fixes.patch
|
||||
+ pod_zmupdate-to-pod2usage.patch
|
||||
* Lintianisation (incomplete):
|
||||
- extra-license-file
|
||||
- init.d-script-missing-lsb-description
|
||||
- init.d-script-does-not-source-init-functions
|
||||
- privacy-breach-generic
|
||||
- package-contains-empty-directory
|
||||
- manpage-has-errors-from-pod2man
|
||||
- manpage-has-bad-whatis-entry
|
||||
- quilt-patch-missing-description
|
||||
- no-dep5-copyright
|
||||
* Lintian-overrides:
|
||||
+ unusual-interpreter usr/bin/zmsystemctl.pl #!/usr/bin/pkexec
|
||||
+ script-not-executable usr/share/zoneminder/www/api/*
|
||||
+ script-with-language-extension usr/bin/*.pl
|
||||
+ source-is-missing web/tools/mootools/mootools-*-yc.js
|
||||
+ source-is-missing web/skins/*/js/jquery-1.4.2.min.js
|
||||
+ source-contains-prebuilt-javascript-object
|
||||
* Renamed files in "debian".
|
||||
* watch: dfsg repacksuffix and dversionmangle.
|
||||
* "debian/copyright" to Copyright-Format-1.0.
|
||||
* Set myself as new Maintainer (Closes: #760314).
|
||||
|
||||
[ Vagrant Cascadian <vagrant@debian.org> ]
|
||||
* Removed obsolete DM-Upload-Allowed flag.
|
||||
* Update debian/watch to use tarballs from github.
|
||||
* Add Build-Depends on libgcrypt11-dev (Closes: #745819).
|
||||
* Use canonical alioth Vcs-Hg URL.
|
||||
* debian/control: Add Build-Depends: libpolkit-gobject-1-dev.
|
||||
* Removed configure flag "--enable-crashtrace=no", which is no longer
|
||||
present upstream.
|
||||
|
||||
-- Dmitry Smirnov <onlyjob@debian.org> Tue, 31 Mar 2015 15:11:13 +1100
|
||||
|
||||
zoneminder (1.26.5-3.1) experimental; urgency=low
|
||||
|
||||
* Non-maintainer upload.
|
||||
* Add libav10.patch and compile against libav10 (Closes: #739461)
|
||||
|
||||
-- Reinhard Tartler <siretart@tauware.de> Wed, 19 Mar 2014 00:31:22 +0000
|
||||
|
||||
zoneminder (1.26.5-3) unstable; urgency=low
|
||||
|
||||
|
||||
* Previous release still didn't build on PPC - this has been corrected.
|
||||
(Closes: #736516)
|
||||
|
||||
-- Peter Howard <pjh@northern-ridge.com.au> Tue, 4 Feb 2014 02:02:10 +1000
|
||||
|
||||
zoneminder (1.26.5-2) unstable; urgency=low
|
||||
|
||||
* Remove dependency on ffmpeg
|
||||
(Closes: #721161)
|
||||
|
||||
* Builds again on non-x86 target architectures.
|
||||
|
||||
-- Peter Howard <pjh@northern-ridge.com.au> Thu, 23 Jan 2014 01:02:10 +1000
|
||||
|
||||
zoneminder (1.26.5-1) unstable; urgency=low
|
||||
|
||||
* New upstream version
|
||||
(Closes: #694131)
|
||||
* Change Build-Depends on libgnutls-dev to libgnutls-openssl-dev
|
||||
(Closes: #731560)
|
||||
-- Peter Howard <pjh@northern-ridge.com.au> Tue, 17 Dec 2013 01:02:10 +1000
|
||||
|
||||
zoneminder (1.25.0-4) unstable; urgency=high
|
||||
|
||||
* Add CVE-2013-0232 patch
|
||||
[SECURITY] CVE-2013-0232: Shell escape commands with untrusted content.
|
||||
Thanks to James McCoy <jamessan@debian.org> (Closes: #698910)
|
||||
Thanks also to Salvatore Bonaccorso <carnil@debian.org>
|
||||
|
||||
-- Peter Howard <pjh@northern-ridge.com.au> Tue, 12 Jun 2013 12:02:10 +1000
|
||||
|
||||
zoneminder (1.25.0-3) unstable; urgency=low
|
||||
|
||||
* debian/rules: Export CFLAGS, CPPFLAGS, CXXFLAGS and LDFLAGS, to ensure
|
||||
hardening build flags are enabled.
|
||||
|
||||
-- Vagrant Cascadian <vagrant@debian.org> Tue, 28 Aug 2012 12:10:03 -0700
|
||||
|
||||
zoneminder (1.25.0-2) unstable; urgency=low
|
||||
|
||||
[ Vagrant Cascadian ]
|
||||
* Add a patch to disable checking for updated versions by default, as
|
||||
upgrades should happen through package management.
|
||||
* Use dpkg-buildflags in debian/rules to set default compiler flags.
|
||||
* Ensure zoneminder is stopped before starting (Closes: #657407).
|
||||
|
||||
[ Peter Howard ]
|
||||
* Fix postinst to add permission for table creation during upgrade
|
||||
(Closes: #657407).
|
||||
|
||||
-- Vagrant Cascadian <vagrant@debian.org> Thu, 23 Aug 2012 12:40:34 -0700
|
||||
|
||||
zoneminder (1.25.0-1.1) unstable; urgency=low
|
||||
|
||||
* Non-maintainer upload.
|
||||
* Fix "ftbfs with GCC-4.7": add patch Fix-FTBFS-with-gcc-4.7 from Cyril
|
||||
Brulebois: fix missing <unistd.h> includes.
|
||||
(Closes: #667428)
|
||||
|
||||
-- gregor herrmann <gregoa@debian.org> Sun, 13 May 2012 17:02:21 +0200
|
||||
|
||||
zoneminder (1.25.0-1) unstable; urgency=low
|
||||
|
||||
* Fix typo in libv4l1-videodev.h patch that caused v4l1 support to be
|
||||
dropped.
|
||||
* Fail to build if version in postinst doesn't match upstream version.
|
||||
* Add Build-Depends: libavdevice-dev to fix MPEG streaming (Closes: #515558).
|
||||
* debian/rules: Convert to using debhelper overrides.
|
||||
* Set debian/compat to 7.
|
||||
* Simplify debian/watch file.
|
||||
* Refresh debian/patches/use_libjs-mootools.
|
||||
* Refresh debian/patches/libv4l1-videodev.h.
|
||||
* Remove dependencies on php4 and related packages.
|
||||
* Remove build-dependencies on libmysqlclient14-dev and
|
||||
libmysqlclient15-dev.
|
||||
* Update Build-Depends to use libjpeg-dev instead of libjpeg62-dev
|
||||
(Closes: #647114).
|
||||
* Add patch to fix build by testing for C headers rather than C++ headers.
|
||||
Thanks to Ryan Niebur. (Closes: #654230)
|
||||
* Add a patch to fix build problems caused by API changes in libav 0.8.
|
||||
Thanks again to Ryan Niebur. (Closes: #654230)
|
||||
|
||||
-- Vagrant Cascadian <vagrant@debian.org> Mon, 16 Jan 2012 11:58:05 -0800
|
||||
|
||||
zoneminder (1.24.4-1) unstable; urgency=low
|
||||
|
||||
[ Peter Howard ]
|
||||
* Initial release of 1.24.4 (Closes: #634985).
|
||||
- Fix 32/64-bit type declarations (Closes: #614404).
|
||||
* Update patches.
|
||||
|
||||
[ Vagrant Cascadian ]
|
||||
* Add patch to fix FTBFS by using libv4l1-videodev.h from libv4l-dev.
|
||||
Thanks to Andreas Metzler for reporting the issue.
|
||||
(Closes: #619813).
|
||||
* Document adding the www-data user to the video group in README.Debian.
|
||||
(Closes: #611324)
|
||||
* Depend on libsys-mmap-perl to enable mapped memory support.
|
||||
(Closes: #607331)
|
||||
* Update libjs-mootools patch to use -nc variants (Closes: #635075).
|
||||
* Depend on javascript-common, to ensure that /javascript is available in
|
||||
the web server.
|
||||
* Set the upstream version in postinst at build time.
|
||||
* Use dh-autoreconf to properly clean up autogenerated files during build.
|
||||
* Add Vcs-HG to debian/control.
|
||||
* Add Build-Depends: libv4l-dev, libbz2-dev, dh-autoreconf, libsys-mmap-perl.
|
||||
|
||||
-- Vagrant Cascadian <vagrant@debian.org> Sun, 24 Jul 2011 16:44:30 +0200
|
||||
|
||||
zoneminder (1.24.2-9) unstable; urgency=low
|
||||
|
||||
* Apply patch from Ubuntu to fix FTBFS with ffmpeg 0.6:
|
||||
- Add -D__STDC_CONSTANT_MACROS to CPPFLAGS (closes: 614080).
|
||||
* Update Standards-Version to 3.9.1, no changes necessary.
|
||||
|
||||
-- Vagrant Cascadian <vagrant@debian.org> Sun, 20 Feb 2011 23:43:02 -0800
|
||||
|
||||
zoneminder (1.24.2-8) unstable; urgency=medium
|
||||
|
||||
[ Vagrant Cascadian ]
|
||||
* Apply patch to fix V4L2 cameras without crop support (closes: #608790).
|
||||
Thanks to piratebab.
|
||||
* Add preinst script which aborts if dangerous symlinks exist.
|
||||
(closes: #608793)
|
||||
|
||||
[ Peter Howard ]
|
||||
* Added to README.Debian with info about images and events directories.
|
||||
(closes: #608793)
|
||||
|
||||
-- Vagrant Cascadian <vagrant@debian.org> Sat, 15 Jan 2011 19:39:26 -0800
|
||||
|
||||
zoneminder (1.24.2-7) unstable; urgency=medium
|
||||
|
||||
* Do not set ownership of /var/cache/zoneminder when upgrading, which fixes a
|
||||
regression causing upgrades to take inordinately long with large
|
||||
installations (closes: #597040).
|
||||
|
||||
-- Vagrant Cascadian <vagrant@debian.org> Fri, 17 Sep 2010 11:24:41 -0700
|
||||
|
||||
zoneminder (1.24.2-6) unstable; urgency=low
|
||||
|
||||
* Only remove database on purge. This requires only creating the database if
|
||||
it doesn't already exist, and upgrading the database only if the database
|
||||
is an older version (closes: #497107).
|
||||
|
||||
* Do not prompt the user on database upgrades by using the --nointeractive
|
||||
flag when calling zmupdate.pl from postinst (closes: #595902).
|
||||
|
||||
-- Vagrant Cascadian <vagrant@debian.org> Fri, 10 Sep 2010 10:06:06 -0700
|
||||
|
||||
zoneminder (1.24.2-5) unstable; urgency=low
|
||||
|
||||
[ Peter Howard ]
|
||||
* Add zip dependency
|
||||
(closes: #494261)
|
||||
* Add debian/watch file
|
||||
(closes: #545552)
|
||||
* Use packaged libjs-mootools
|
||||
(closes: #585590)
|
||||
* Miscellaneous cleanups
|
||||
|
||||
[ Vagrant Cascadian ]
|
||||
* Add vagrant@debian.org as uploader
|
||||
* Update Standards-Version to 3.9.0, no changes necessary.
|
||||
|
||||
-- Vagrant Cascadian <vagrant@debian.org> Fri, 23 Jul 2010 18:12:50 -0500
|
||||
|
||||
zoneminder (1.24.2-4.1) unstable; urgency=low
|
||||
|
||||
* Non-maintainer upload.
|
||||
* Fix "package removed, processes still running": apply patch to
|
||||
debian/postinst by Vagrant Cascadian: use invoke-rc.d and run
|
||||
mysql-related actions only when mysql is running (closes: #583648).
|
||||
|
||||
-- gregor herrmann <gregoa@debian.org> Thu, 01 Jul 2010 19:47:10 +0200
|
||||
|
||||
zoneminder (1.24.2-4) unstable; urgency=high
|
||||
* Update init.d to list mysql dependency
|
||||
(closes: #583505)
|
||||
* Change depenency from libmime-perl to libmime-tools-perl
|
||||
(closes: #585589)
|
||||
* Problems in changelog format fixed
|
||||
(closes: #585592)
|
||||
* Fix debian-rules-ignores-make-clean-error
|
||||
(closes: #585593)
|
||||
-- Peter Howard <pjh@northern-ridge.com.au> Mon, 14 jun 2010 15:02:10 +1000
|
||||
|
||||
zoneminder (1.24.2-3) unstable; urgency=high
|
||||
* Changes symbols to build with libjpeg8
|
||||
(closes: #565326, #568327)
|
||||
* Note: location of all perl files should have been fixed in previous release
|
||||
(closes: #553096)
|
||||
-- Peter Howard <pjh@northern-ridge.com.au> Mon, 26 apr 2010 15:02:10 +1000
|
||||
|
||||
zoneminder (1.24.2-2) unstable; urgency=high
|
||||
|
||||
* Remove custom perl parth from zmpkg.pl, fix location of manpages.
|
||||
(closes: #551746, #553092)
|
||||
* Fix GCC4.4 bug
|
||||
(closes: #531717)
|
||||
* Fix potential bug in postinst script
|
||||
|
||||
-- Peter Howard <pjh@northern-ridge.com.au> Sat, 14 Nov 2009 15:02:10 +1000
|
||||
|
||||
zoneminder (1.24.2-1) unstable; urgency=high
|
||||
|
||||
* Initial release of zoneminder 1.24.2
|
||||
-- Peter Howard <pjh@northern-ridge.com.au> Fri, 11 Sep 2009 07:02:50 +1000
|
||||
|
||||
zoneminder (1.24.1-1) unstable; urgency=high
|
||||
|
||||
* Initial release of zoneminder 1.24.1, closing CVE-2008-3882,
|
||||
CVE-2008-3881, CVE-2008-3880
|
||||
(closes: #497640)
|
||||
* Change syslog dependency to rsyslog.
|
||||
(closes: #526918)
|
||||
* Add missing perl depenency.
|
||||
* Restore patch to disable "check for updates" by default.
|
||||
* Removed spurious '$' in init script.
|
||||
(closes: #486064)
|
||||
* Change permission of zm.conf from 0600 to 0400 for CVE-2008-6755
|
||||
(closes: #528252)
|
||||
-- Peter Howard <pjh@northern-ridge.com.au> Sat, 16 May 2009 07:02:50 +1000
|
||||
|
||||
zoneminder (1.23.3-4) unstable; urgency=high
|
||||
|
||||
* update to get it building with latest unstable. Thanks to waldi@debian.org
|
||||
(closes: #517569)
|
||||
-- Peter Howard <pjh@northern-ridge.com.au> Thu, 16 Apr 2009 01:02:50 +1000
|
||||
|
||||
zoneminder (1.23.3-3) unstable; urgency=high
|
||||
|
||||
* ffmpeg confirmed working
|
||||
(closes: #475145)
|
||||
* Fix upgrade problem intrudouced in 1.23.3-1
|
||||
(closes: #481637)
|
||||
* Include libmime-lite-perl in dependencies
|
||||
(closes: #486312)
|
||||
-- Peter Howard <pjh@northern-ridge.com.au> Thu, 18 Sep 2008 01:02:50 +1000
|
||||
|
||||
zoneminder (1.23.3-2) unstable; urgency=high
|
||||
|
||||
* ffmpeg finally working?
|
||||
|
||||
-- Peter Howard <pjh@northern-ridge.com.au> Wed, 13 Aug 2008 01:02:50 +1000
|
||||
|
||||
zoneminder (1.23.3-1) unstable; urgency=high
|
||||
|
||||
* Initial version for 1.23.3 - security fix.
|
||||
(closes: #479034)
|
||||
|
||||
-- Peter Howard <pjh@northern-ridge.com.au> Wed, 19 Mar 2008 01:02:50 +1000
|
||||
|
||||
zoneminder (1.23.2-2) unstable; urgency=low
|
||||
|
||||
* Update to init.d
|
||||
(closes: #468856)
|
||||
* Add dependency on logging daemon
|
||||
(closes: #471277)
|
||||
|
||||
-- Peter Howard <pjh@northern-ridge.com.au> Wed, 19 Mar 2008 01:02:50 +1000
|
||||
|
||||
zoneminder (1.23.2-1) unstable; urgency=low
|
||||
|
||||
* Initial version for 1.23.2
|
||||
(closes: #464152)
|
||||
* Zoneminder 1.23.2 upstream includes fix for GCC 4.3
|
||||
(closes: #454980)
|
||||
* Includes ffmpeg patch by Alexander Kushnirenko <kushnir@uni-protvino.ru>
|
||||
|
||||
-- Peter Howard <pjh@northern-ridge.com.au> Sat, 01 Mar 2008 16:02:50 +1000
|
||||
|
||||
zoneminder (1.22.3-10) unstable; urgency=low
|
||||
|
||||
* Fix bug introduced in -9 where perl is put under /usr/local
|
||||
(closes: #457507)
|
||||
|
||||
-- Peter Howard <pjh@northern-ridge.com.au> Mon, 24 Dec 2007 16:02:50 +1000
|
||||
|
||||
zoneminder (1.22.3-9) unstable; urgency=low
|
||||
|
||||
* Starting zoneminder via init script now invokes "zmfix -a"
|
||||
(closes: #481637)
|
||||
* Change apache2-mpm-prefork dependency to apache2
|
||||
* Temp dir for export under /var/cache/zoneminder (but linked back to
|
||||
/usr/share/zoneminder for now)
|
||||
* Redo use of gnutls rather than openssl for md5 hashes
|
||||
|
||||
-- Peter Howard <pjh@northern-ridge.com.au> Mon, 10 Dec 2007 16:02:50 +1000
|
||||
|
||||
zoneminder (1.22.3-8) unstable; urgency=low
|
||||
|
||||
* Build now includes libpcre3
|
||||
(closes: #437533)
|
||||
* "Monitor Presets" patch now applied to package during build.
|
||||
|
||||
-- Peter Howard <pjh@northern-ridge.com.au> Sat, 18 Aug 2007 14:35:23 +1000
|
||||
|
||||
zoneminder (1.22.3-7) unstable; urgency=low
|
||||
|
||||
* Turn off debug trace and crash dump on build
|
||||
(closes:#414857,#414891)
|
||||
* Additional perl libraries added in dependencies
|
||||
(closes:#416291)
|
||||
* Change preferred PHP version from 4 to 5
|
||||
-- Peter Howard <pjh@northern-ridge.com.au> Sun, 29 Jul 2007 15:11:13 +1000
|
||||
|
||||
zoneminder (1.22.3-6) unstable; urgency=low
|
||||
|
||||
* Removed a similar bash only statment from zmpkg.pl
|
||||
(closes:414882)
|
||||
|
||||
-- Peter Howard <pjh@northern-ridge.com.au> Sat, 14 Apr 2007 11:46:56 +1000
|
||||
|
||||
zoneminder (1.22.3-5) unstable; urgency=low
|
||||
|
||||
* Installs with "phone home" feature turned off by default, and permissions
|
||||
on /etc/zm/zm.conf fixed (now the 0600 it s hould be)
|
||||
(closes:415349)
|
||||
* Removed "stupid bash-ism" on mysqld check in postinst file.
|
||||
|
||||
-- Peter Howard <pjh@northern-ridge.com.au> Fri, 6 Apr 2007 15:50:00 +1000
|
||||
|
||||
zoneminder (1.22.3-4) unstable; urgency=low
|
||||
|
||||
* Put libmysqlclient-15-dev in front of -14-dev so sbuild works
|
||||
(closes: #414410)
|
||||
|
||||
-- Peter Howard <pjh@northern-ridge.com.au> Mon, 12 Mar 2007 11:38:56 +1100
|
||||
|
||||
zoneminder (1.22.3-3) unstable; urgency=low
|
||||
|
||||
* Clean up of postinstall, postrm ; user "zm" definitely was a mistake
|
||||
* Also in postinstall: check and start MySQL if it's not running.
|
||||
* init.d script now checks if zoneminder isn't running and still returns 0
|
||||
(which helps uninstalling)
|
||||
* Addition of php5 dependency options as well as php4.
|
||||
|
||||
-- Peter Howard <pjh@northern-ridge.com.au> Mon, 26 Feb 2007 10:40:52 +1100
|
||||
|
||||
zoneminder (1.22.3-2) unstable; urgency=low
|
||||
|
||||
* Added zmuser in the mysql creation; this should fix the install problem
|
||||
for people, but needs to be cleaned up (in -3)
|
||||
|
||||
-- Peter Howard <pjh@northern-ridge.com.au> Fri, 16 Feb 2007 14:16:03 +1100
|
||||
|
||||
zoneminder (1.22.3-1) unstable; urgency=low
|
||||
|
||||
* Initial Version. (closes: #248393)
|
||||
* Patched out use of openssl; uses gnutls instead for MD5 hashes.
|
||||
* Removed MakeMaker-inserted Perl licensing (with authors permission) in
|
||||
various scripts; replaced with GPL.
|
||||
|
||||
-- Peter Howard <pjh@northern-ridge.com.au> Wed, 7 Feb 2007 14:09:01 +1100
|
|
@ -0,0 +1,3 @@
|
|||
.gitattributes
|
||||
web/api/.gitattributes
|
||||
web/api/.gitignore
|
|
@ -0,0 +1 @@
|
|||
9
|
|
@ -0,0 +1,16 @@
|
|||
# Remember to enable cgi mod (i.e. "a2enmod cgi").
|
||||
ScriptAlias /zm/cgi-bin "/usr/lib/zoneminder/cgi-bin"
|
||||
<Directory "/usr/lib/zoneminder/cgi-bin">
|
||||
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
|
||||
AllowOverride All
|
||||
Require all granted
|
||||
</Directory>
|
||||
|
||||
Alias /zm /usr/share/zoneminder/www
|
||||
<Directory /usr/share/zoneminder/www>
|
||||
php_flag register_globals off
|
||||
Options Indexes FollowSymLinks
|
||||
<IfModule mod_dir.c>
|
||||
DirectoryIndex index.php
|
||||
</IfModule>
|
||||
</Directory>
|
|
@ -0,0 +1,140 @@
|
|||
Source: zoneminder
|
||||
Section: net
|
||||
Priority: optional
|
||||
Maintainer: Dmitry Smirnov <onlyjob@debian.org>
|
||||
Uploaders: Vagrant Cascadian <vagrant@debian.org>
|
||||
Build-Depends: debhelper (>= 9), dh-systemd, python-sphinx | python3-sphinx, apache2-dev, dh-linktree
|
||||
,cmake
|
||||
,libavcodec-ffmpeg-dev, libavformat-ffmpeg-dev, libswscale-ffmpeg-dev, libavutil-ffmpeg-dev, libavdevice-ffmpeg-dev
|
||||
,libbz2-dev
|
||||
,libdate-manip-perl
|
||||
,libdbd-mysql-perl
|
||||
,libgcrypt-dev
|
||||
,libcurl4-gnutls-dev
|
||||
,libgnutls-openssl-dev
|
||||
,libjpeg-dev
|
||||
,libmysqlclient-dev
|
||||
,libpcre3-dev
|
||||
,libphp-serialization-perl
|
||||
,libpolkit-gobject-1-dev
|
||||
,libsys-mmap-perl [!hurd-any]
|
||||
,libv4l-dev (>= 0.8.3) [!hurd-any]
|
||||
,libvlc-dev
|
||||
,libwww-perl
|
||||
# Unbundled (dh_linktree):
|
||||
,libjs-jquery
|
||||
,libjs-mootools
|
||||
Standards-Version: 3.9.6
|
||||
Homepage: http://www.zoneminder.com/
|
||||
Vcs-Browser: http://anonscm.debian.org/cgit/collab-maint/zoneminder.git
|
||||
Vcs-Git: git://anonscm.debian.org/collab-maint/zoneminder.git
|
||||
|
||||
Package: zoneminder
|
||||
Architecture: any
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}
|
||||
,javascript-common
|
||||
,libav-tools
|
||||
,libdate-manip-perl
|
||||
,libmime-lite-perl
|
||||
,libmime-tools-perl
|
||||
,libphp-serialization-perl
|
||||
,libmodule-load-conditional-perl
|
||||
,libnet-sftp-foreign-perl
|
||||
# ,libzoneminder-perl (= ${source:Version})
|
||||
,libarchive-zip-perl
|
||||
,libdbd-mysql-perl
|
||||
,libdevice-serialport-perl
|
||||
,libimage-info-perl
|
||||
,libjson-any-perl
|
||||
,libsys-mmap-perl [!hurd-any]
|
||||
,liburi-encode-perl
|
||||
,libwww-perl
|
||||
,mysql-client | virtual-mysql-client
|
||||
,perl-modules
|
||||
,php5-mysql
|
||||
,policykit-1
|
||||
,rsyslog | system-log-daemon
|
||||
,zip
|
||||
Recommends: ${misc:Recommends}
|
||||
,libapache2-mod-php5 | php5-fpm
|
||||
,mysql-server | virtual-mysql-server
|
||||
,zoneminder-doc (>= ${source:Version})
|
||||
Suggests: fcgiwrap, logrotate
|
||||
Description: video camera security and surveillance solution
|
||||
ZoneMinder is intended for use in single or multi-camera video security
|
||||
applications, including commercial or home CCTV, theft prevention and child
|
||||
or family member or home monitoring and other care scenarios. It
|
||||
supports capture, analysis, recording, and monitoring of video data coming
|
||||
from one or more video or network cameras attached to a Linux system.
|
||||
ZoneMinder also support web and semi-automatic control of Pan/Tilt/Zoom
|
||||
cameras using a variety of protocols. It is suitable for use as a home
|
||||
video security system and for commercial or professional video security
|
||||
and surveillance. It can also be integrated into a home automation system
|
||||
via X.10 or other protocols.
|
||||
|
||||
#Package: libzoneminder-perl
|
||||
#Section: perl
|
||||
#Architecture: all
|
||||
#Multi-Arch: foreign
|
||||
#Depends: ${misc:Depends}, ${perl:Depends}
|
||||
# ,libarchive-zip-perl
|
||||
# ,libdbd-mysql-perl
|
||||
# ,libdevice-serialport-perl
|
||||
# ,libimage-info-perl
|
||||
# ,libjson-any-perl
|
||||
# ,libsys-mmap-perl [!hurd-any]
|
||||
# ,liburi-encode-perl
|
||||
# ,libwww-perl
|
||||
#Description: ZoneMinder Perl libraries
|
||||
# ZoneMinder is intended for use in single or multi-camera video security
|
||||
# applications, including commercial or home CCTV, theft prevention and child
|
||||
# or family member or home monitoring and other care scenarios. It
|
||||
# supports capture, analysis, recording, and monitoring of video data coming
|
||||
# from one or more video or network cameras attached to a Linux system.
|
||||
# ZoneMinder also support web and semi-automatic control of Pan/Tilt/Zoom
|
||||
# cameras using a variety of protocols. It is suitable for use as a home
|
||||
# video security system and for commercial or professional video security
|
||||
# and surveillance. It can also be integrated into a home automation system
|
||||
# via X.10 or other protocols.
|
||||
# .
|
||||
# This package provides ZoneMinder Perl libraries; it can be used to
|
||||
# write custom interfaces as well.
|
||||
|
||||
Package: zoneminder-doc
|
||||
Section: doc
|
||||
Architecture: all
|
||||
Multi-Arch: foreign
|
||||
Depends: ${misc:Depends}, ${sphinxdoc:Depends}
|
||||
Suggests: www-browser
|
||||
Description: ZoneMinder documentation
|
||||
ZoneMinder is intended for use in single or multi-camera video security
|
||||
applications, including commercial or home CCTV, theft prevention and child
|
||||
or family member or home monitoring and other care scenarios. It
|
||||
supports capture, analysis, recording, and monitoring of video data coming
|
||||
from one or more video or network cameras attached to a Linux system.
|
||||
ZoneMinder also support web and semi-automatic control of Pan/Tilt/Zoom
|
||||
cameras using a variety of protocols. It is suitable for use as a home
|
||||
video security system and for commercial or professional video security
|
||||
and surveillance. It can also be integrated into a home automation system
|
||||
via X.10 or other protocols.
|
||||
.
|
||||
This package provides ZoneMinder documentation in HTML format.
|
||||
|
||||
Package: zoneminder-dbg
|
||||
Section: debug
|
||||
Priority: extra
|
||||
Architecture: any
|
||||
Depends: zoneminder (= ${binary:Version}), ${misc:Depends}
|
||||
Description: Zoneminder -- debugging symbols
|
||||
ZoneMinder is intended for use in single or multi-camera video security
|
||||
applications, including commercial or home CCTV, theft prevention and child
|
||||
or family member or home monitoring and other care scenarios. It
|
||||
supports capture, analysis, recording, and monitoring of video data coming
|
||||
from one or more video or network cameras attached to a Linux system.
|
||||
ZoneMinder also support web and semi-automatic control of Pan/Tilt/Zoom
|
||||
cameras using a variety of protocols. It is suitable for use as a home
|
||||
video security system and for commercial or professional video security
|
||||
and surveillance. It can also be integrated into a home automation system
|
||||
via X.10 or other protocols.
|
||||
.
|
||||
This package provides debugging symbols
|
|
@ -0,0 +1,174 @@
|
|||
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||
Upstream-Name: ZoneMinder
|
||||
Upstream-Contact: Philip Coombes <philip.coombes@zoneminder.com>
|
||||
Source: https://github.com/ZoneMinder/ZoneMinder
|
||||
Comment:
|
||||
This package was originally debianized by matrix <matrix@cecilia>
|
||||
on Mon, 7 Mar 2005 02:07:57 -0500.
|
||||
It was re-done for submission to the Debian project by Peter Howard
|
||||
<pjh@northern-ridge.com.au> on Fri, 8 Dec 2006 10:19:43 +1100
|
||||
Files-Excluded:
|
||||
web/skins/*/js/jquery-*
|
||||
web/tools/mootools/*-yc.js
|
||||
|
||||
Files: *
|
||||
Copyright: 2001-2014 Philip Coombes <philip.coombes@zoneminder.com>
|
||||
2008 Brian Rudy <brudyNO@SPAMpraecogito.com>
|
||||
2014 Vincent Giovannone
|
||||
2013 Tim Craig <timcraigNO@SPAMsonic.net>
|
||||
2003-2008 Corey DeLasaux
|
||||
2001-2010 Chris Kistner
|
||||
License: GPL-2+
|
||||
|
||||
Files: distros/*
|
||||
Copyright: 2001-2008 Philip Coombes <philip.coombes@zoneminder.com>
|
||||
2014 Isaac Connor <iconnor@connortechnology.com>
|
||||
2005 Serg Oskin
|
||||
License: GPL-2+
|
||||
|
||||
Files: web/skins/*/js/jquery-*
|
||||
Copyright: 2010 John Resig
|
||||
2010 The Dojo Foundation
|
||||
License: GPL-2 or Expat
|
||||
Comment:
|
||||
Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
http://jquery.org/license
|
||||
.
|
||||
Includes Sizzle.js http://sizzlejs.com/
|
||||
Released under the MIT, BSD, and GPL Licenses.
|
||||
|
||||
Files: web/tools/mootools/*.js
|
||||
Copyright: 2009 Marcelo Jorge Vieira (metal) <metal@alucinados.com>
|
||||
2006-2010 Valerio Proietti (http://mad4milk.net/)
|
||||
License: Expat
|
||||
|
||||
Files: web/api/*
|
||||
Copyright: 2005-2013 Cake Software Foundation, Inc. (http://cakefoundation.org)
|
||||
License: Expat
|
||||
|
||||
Files:
|
||||
cmake/Modules/CheckPrototypeDefinition*.cmake
|
||||
cmake/Modules/FindGLIB2.cmake
|
||||
cmake/Modules/FindPolkit.cmake
|
||||
cmake/Modules/GNUInstallDirs.cmake
|
||||
Copyright:
|
||||
2005-2011 Kitware, Inc.
|
||||
2010-2011 Andreas Schneider <asn@cryptomilk.org>
|
||||
2009 Dario Freddi <drf@kde.org>
|
||||
2008 Laurent Montel, <montel@kde.org>
|
||||
2011 Nikita Krupen'ko <krnekit@gmail.com>
|
||||
License: BSD-3-clause
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
.
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
.
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
.
|
||||
* The names of Kitware, Inc., the Insight Consortium, or the names of
|
||||
any consortium members, or of any contributors, may not be used to
|
||||
endorse or promote products derived from this software without
|
||||
specific prior written permission.
|
||||
.
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS ``AS IS''
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
|
||||
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
Files: cmake/Modules/FindPerlModules.cmake
|
||||
Copyright: 2012 Iowa State University
|
||||
License: Boost-1.0
|
||||
Boost Software License - Version 1.0 - August 17th, 2003
|
||||
.
|
||||
Permission is hereby granted, free of charge, to any person or organization
|
||||
obtaining a copy of the software and accompanying documentation covered by
|
||||
this license (the "Software") to use, reproduce, display, distribute,
|
||||
execute, and transmit the Software, and to prepare derivative works of the
|
||||
Software, and to permit third-parties to whom the Software is furnished to
|
||||
do so, all subject to the following:
|
||||
.
|
||||
The copyright notices in the Software and this entire statement, including
|
||||
the above license grant, this restriction and the following disclaimer,
|
||||
must be included in all copies of the Software, in whole or in part, and
|
||||
all derivative works of the Software, unless such copies or derivative
|
||||
works are solely in the form of machine-executable object code generated by
|
||||
a source language processor.
|
||||
.
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
|
||||
SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
|
||||
FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
|
||||
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Files: debian/*
|
||||
Copyright: 2015 Dmitry Smirnov <onlyjob@debian.org>
|
||||
2007-2014 Peter Howard <pjh@northern-ridge.com.au>
|
||||
2010-2012 Vagrant Cascadian <vagrant@debian.org>
|
||||
2001-2008 Philip Coombes <philip.coombes@zoneminder.com>
|
||||
License: GPL-2+
|
||||
|
||||
License: Expat
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
.
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
.
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
License: GPL-2+
|
||||
This package is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by the
|
||||
Free Software Foundation; either version 2 of the License, or (at your
|
||||
option) any later version.
|
||||
.
|
||||
This package is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
.
|
||||
You should have received a copy of the GNU General Public
|
||||
License along with this package; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
.
|
||||
The complete text of the GNU General Public License version 2
|
||||
can be found in "/usr/share/common-licenses/GPL-2".
|
||||
|
||||
License: GPL-2
|
||||
This package is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by the
|
||||
Free Software Foundation; version 2 of the License.
|
||||
.
|
||||
This package is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
.
|
||||
You should have received a copy of the GNU General Public
|
||||
License along with this package; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
.
|
||||
The complete text of the GNU General Public License version 2
|
||||
can be found in "/usr/share/common-licenses/GPL-2".
|
|
@ -0,0 +1,32 @@
|
|||
location /zm/cgi-bin {
|
||||
gzip off;
|
||||
alias /usr/lib/zoneminder/cgi-bin;
|
||||
|
||||
include /etc/nginx/fastcgi_params;
|
||||
fastcgi_param SCRIPT_FILENAME $request_filename;
|
||||
fastcgi_pass unix:/var/run/fcgiwrap.socket;
|
||||
}
|
||||
|
||||
location /zm {
|
||||
# if ($scheme ~ ^http:){
|
||||
# rewrite ^(.*)$ https://$host$1 permanent;
|
||||
# }
|
||||
|
||||
gzip off;
|
||||
alias /usr/share/zoneminder/www;
|
||||
index index.php;
|
||||
|
||||
location ~ \.php$ {
|
||||
if (!-f $request_filename) { return 404; }
|
||||
expires epoch;
|
||||
include /etc/nginx/fastcgi_params;
|
||||
fastcgi_param SCRIPT_FILENAME $request_filename;
|
||||
fastcgi_index index.php;
|
||||
fastcgi_pass unix:/var/run/php5-fpm.sock;
|
||||
}
|
||||
|
||||
location ~ \.(jpg|jpeg|gif|png|ico)$ {
|
||||
access_log off;
|
||||
expires 33d;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
|
||||
[dch]
|
||||
id-length = 0
|
||||
|
||||
[import-orig]
|
||||
pristine-tar = False
|
||||
merge = False
|
|
@ -0,0 +1,2 @@
|
|||
usr/share/man/man3
|
||||
usr/share/perl5
|
|
@ -0,0 +1,40 @@
|
|||
Last-Update: 2015-04-02
|
||||
Forwarded: no
|
||||
Author: Dmitry Smirnov <onlyjob@member.fsf.org>
|
||||
Description: adapt apache2.conf to work out-of-the-box.
|
||||
|
||||
--- a/misc/apache.conf.in
|
||||
+++ b/misc/apache.conf.in
|
||||
@@ -13,19 +13,21 @@
|
||||
Options FollowSymLinks
|
||||
AllowOverride All
|
||||
</Directory>
|
||||
|
||||
- ScriptAlias /cgi-bin/ "@CGI_PREFIX@"
|
||||
+ # Remember to enable cgi mod (i.e. "a2enmod cgi").
|
||||
+ ScriptAlias /cgi-bin "@CGI_PREFIX@"
|
||||
<Directory "@CGI_PREFIX@">
|
||||
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
|
||||
AllowOverride All
|
||||
+ Require all granted
|
||||
</Directory>
|
||||
|
||||
# Use the first option to have Apache logs written to the general log
|
||||
# directory, or the second to have them written to the regular Apache
|
||||
# directory (you may have to change the path to that used on your system)
|
||||
ErrorLog @ZM_LOGDIR@/apache-error.log
|
||||
- ErrorLog /var/log/httpd/zm-error.log
|
||||
+# ErrorLog /var/log/httpd/zm-error.log
|
||||
|
||||
# Possible values include: debug, info, notice, warn, error, crit,
|
||||
# alert, emerg.
|
||||
LogLevel warn
|
||||
@@ -33,7 +35,7 @@
|
||||
# Use the first option to have Apache logs written to the general log
|
||||
# directory, or the second to have them written to the regular Apache
|
||||
# directory (you may have to change the path to that used on your system)
|
||||
CustomLog @ZM_LOGDIR@/apache-access.log combined
|
||||
- CustomLog /var/log/httpd/zm-access.log combined
|
||||
+# CustomLog /var/log/httpd/zm-access.log combined
|
||||
|
||||
</VirtualHost>
|
|
@ -0,0 +1,16 @@
|
|||
Last-Update: 2015-08-16
|
||||
Forwarded: no
|
||||
Author: Dmitry Smirnov <onlyjob@member.fsf.org>
|
||||
Description: correct path to CGI app according to default web server configuration.
|
||||
|
||||
--- a/scripts/ZoneMinder/lib/ZoneMinder/ConfigData.pm.in
|
||||
+++ b/scripts/ZoneMinder/lib/ZoneMinder/ConfigData.pm.in
|
||||
@@ -428,7 +428,7 @@ our @options =
|
||||
},
|
||||
{
|
||||
name => "ZM_PATH_ZMS",
|
||||
- default => "/cgi-bin/nph-zms",
|
||||
+ default => "/zm/cgi-bin/nph-zms",
|
||||
description => "Web path to zms streaming server",
|
||||
help => qqq("
|
||||
The ZoneMinder streaming server is required to send streamed
|
|
@ -0,0 +1,3 @@
|
|||
apache2.patch
|
||||
default_cgi-path.patch
|
||||
use_libjs-mootools.patch
|
|
@ -0,0 +1,18 @@
|
|||
Last-Update: 2015-03-29
|
||||
Forwarded: no
|
||||
Bug-Debian: http://bugs.debian.org/585590
|
||||
Reviewed-By: Dmitry Smirnov <onlyjob@member.fsf.org>
|
||||
Description: use mootools shipped by debian, rather than the zoneminder included mootools.
|
||||
|
||||
--- a/web/skins/classic/includes/functions.php
|
||||
+++ b/web/skins/classic/includes/functions.php
|
||||
@@ -63,9 +63,8 @@
|
||||
}
|
||||
?>
|
||||
<script type="text/javascript" src="tools/mootools/mootools-core.js"></script>
|
||||
<script type="text/javascript" src="tools/mootools/mootools-more.js"></script>
|
||||
- <script type="text/javascript" src="js/mootools.ext.js"></script>
|
||||
<script type="text/javascript" src="js/logger.js"></script>
|
||||
<script type="text/javascript" src="js/overlay.js"></script>
|
||||
<?php
|
||||
if ( $skinJsPhpFile )
|
|
@ -0,0 +1,93 @@
|
|||
#!/usr/bin/make -f
|
||||
# -*- makefile -*-
|
||||
|
||||
# Uncomment this to turn on verbose mode.
|
||||
#export DH_VERBOSE=1
|
||||
|
||||
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
|
||||
export DEB_LDFLAGS_MAINT_APPEND += -Wl,--as-needed
|
||||
|
||||
ifeq ($(DEB_BUILD_ARCH_OS),hurd)
|
||||
ARGS:= -DZM_NO_MMAP=ON
|
||||
endif
|
||||
|
||||
%:
|
||||
dh $@ --parallel --buildsystem=cmake --builddirectory=dbuild \
|
||||
--with systemd,sphinxdoc,apache2,linktree
|
||||
|
||||
override_dh_auto_configure:
|
||||
dh_auto_configure -- $(ARGS) \
|
||||
-DCMAKE_VERBOSE_MAKEFILE=ON \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DZM_CONFIG_DIR="/etc/zm" \
|
||||
-DZM_RUNDIR="/var/run/zm" \
|
||||
-DZM_SOCKDIR="/var/run/zm" \
|
||||
-DZM_TMPDIR="/tmp/zm" \
|
||||
-DZM_CGIDIR="/usr/lib/zoneminder/cgi-bin" \
|
||||
-DZM_CONTENTDIR="/var/cache/zoneminder"
|
||||
|
||||
override_dh_clean:
|
||||
dh_clean $(MANPAGES1)
|
||||
$(RM) -r docs/_build docs/installationguide
|
||||
|
||||
build-indep:
|
||||
#$(MAKE) -C docs text
|
||||
$(MAKE) -C docs html
|
||||
|
||||
MANPAGES1 = dbuild/scripts/zmupdate.pl.1
|
||||
$(MANPAGES1):
|
||||
# generate man page(s):
|
||||
pod2man -s1 --stderr --utf8 $(patsubst %.1, %, $@) $@
|
||||
|
||||
## reproducible build:
|
||||
LAST_CHANGE=$(shell dpkg-parsechangelog -S Date)
|
||||
BUILD_DATE=$(shell LC_ALL=C date -u "+%B %d, %Y" -d "$(LAST_CHANGE)")
|
||||
override_dh_installman: $(MANPAGES1)
|
||||
$(MAKE) -C docs man SPHINXOPTS="-D today=\"$(BUILD_DATE)\""
|
||||
dh_installman --language=C $(MANPAGES1)
|
||||
|
||||
override_dh_auto_install:
|
||||
dh_auto_install --destdir=$(CURDIR)/debian/tmp
|
||||
# remove worthless files:
|
||||
$(RM) -v $(CURDIR)/debian/tmp/usr/share/perl5/*/*/*/.packlist
|
||||
$(RM) -v $(CURDIR)/debian/tmp/usr/share/perl5/*/*.in
|
||||
# remove empty directories:
|
||||
find $(CURDIR)/debian/tmp/usr -type d -empty -delete -printf 'removed %p\n'
|
||||
# remove extra-license-file:
|
||||
$(RM) -v $(CURDIR)/debian/tmp/usr/share/zoneminder/www/api/lib/Cake/LICENSE.txt
|
||||
|
||||
override_dh_fixperms:
|
||||
dh_fixperms
|
||||
## 637685
|
||||
chmod -c o-r $(CURDIR)/debian/zoneminder/etc/zm/zm.conf
|
||||
|
||||
override_dh_installinit:
|
||||
dh_installinit --no-start
|
||||
|
||||
override_dh_systemd_start:
|
||||
dh_systemd_start --no-start
|
||||
|
||||
override_dh_systemd_enable:
|
||||
dh_systemd_enable --no-enable
|
||||
|
||||
override_dh_apache2:
|
||||
dh_apache2 --noenable
|
||||
|
||||
override_dh_strip:
|
||||
[ -d "$(CURDIR)/debian/zoneminder-dbg" ] \
|
||||
&& dh_strip --dbg-package=zoneminder-dbg \
|
||||
|| dh_strip
|
||||
|
||||
#%:
|
||||
# dh $@ --parallel --buildsystem=autoconf --with autoreconf
|
||||
#
|
||||
#override_dh_auto_configure:
|
||||
# dh_auto_configure -- \
|
||||
# --sysconfdir=/etc/zm \
|
||||
# --with-mysql=/usr \
|
||||
# --with-webdir=/usr/share/zoneminder \
|
||||
# --with-ffmpeg=/usr \
|
||||
# --with-cgidir=/usr/lib/cgi-bin \
|
||||
# --with-webuser=www-data \
|
||||
# --with-webgroup=www-data \
|
||||
# --enable-mmap=yes
|
|
@ -0,0 +1 @@
|
|||
3.0 (quilt)
|
|
@ -0,0 +1,9 @@
|
|||
## Actually sources are there: "*-nc.js".
|
||||
source-is-missing web/tools/mootools/mootools-*-yc.js
|
||||
|
||||
## We're using "libjs-jquery" instead.
|
||||
source-is-missing web/skins/*/js/jquery-1.4.2.min.js
|
||||
|
||||
## Acknowledged, will repack eventually.
|
||||
source-contains-prebuilt-javascript-object web/tools/mootools/mootools-*-yc.js
|
||||
source-contains-prebuilt-javascript-object web/skins/*/js/jquery-1.4.2.min.js
|
|
@ -0,0 +1,7 @@
|
|||
version=3
|
||||
|
||||
opts=\
|
||||
repacksuffix=+dfsg,\
|
||||
dversionmangle=s{\+dfsg\d*}{},\
|
||||
https://github.com/ZoneMinder/ZoneMinder/releases \
|
||||
.*/ZoneMinder/archive/v(.*).tar.gz
|
|
@ -0,0 +1,8 @@
|
|||
Document: zoneminder-doc
|
||||
Title: Zoneminder documentation
|
||||
Abstract: This document describes how to use Zoneminder.
|
||||
Section: System/Administration
|
||||
|
||||
Format: HTML
|
||||
Index: /usr/share/doc/zoneminder-doc/html/index.html
|
||||
Files: /usr/share/doc/zoneminder-doc/html/*
|
|
@ -0,0 +1 @@
|
|||
docs/_build/html usr/share/doc/zoneminder-doc/
|
|
@ -0,0 +1,2 @@
|
|||
## Convenience symlink:
|
||||
/usr/share/doc/zoneminder-doc/html /usr/share/doc/zoneminder/html
|
|
@ -0,0 +1 @@
|
|||
conf debian/conf/apache2/zoneminder.conf nginx
|
|
@ -0,0 +1,5 @@
|
|||
Unless bug is specific to Debian please consider reporting it directly to
|
||||
upstream developer(s):
|
||||
|
||||
https://github.com/ZoneMinder/ZoneMinder/issues
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
var/log/zm
|
||||
var/lib/zm
|
||||
var/cache/zoneminder/events
|
||||
var/cache/zoneminder/images
|
||||
var/cache/zoneminder/temp
|
||||
usr/share/zoneminder/db
|
|
@ -0,0 +1 @@
|
|||
README.md
|
|
@ -0,0 +1,2 @@
|
|||
debian/examples/*
|
||||
dbuild/misc/apache.conf
|
|
@ -0,0 +1,90 @@
|
|||
#!/bin/sh
|
||||
### BEGIN INIT INFO
|
||||
# Provides: zoneminder
|
||||
# Required-Start: $network $remote_fs $syslog
|
||||
# Required-Stop: $network $remote_fs $syslog
|
||||
# Should-Start: mysql
|
||||
# Should-Stop: mysql
|
||||
# Default-Start: 2 3 4 5
|
||||
# Default-Stop: 0 1 6
|
||||
# Short-Description: Control ZoneMinder as a Service
|
||||
# Description: ZoneMinder CCTV recording and surveillance system
|
||||
### END INIT INFO
|
||||
# chkconfig: 2345 20 20
|
||||
|
||||
# Source function library.
|
||||
. /lib/lsb/init-functions
|
||||
|
||||
prog=ZoneMinder
|
||||
ZM_PATH_BIN="/usr/bin"
|
||||
RUNDIR="/var/run/zm"
|
||||
TMPDIR="/tmp/zm"
|
||||
command="$ZM_PATH_BIN/zmpkg.pl"
|
||||
|
||||
start() {
|
||||
echo -n "Starting $prog: "
|
||||
mkdir -p "$RUNDIR" && chown www-data:www-data "$RUNDIR"
|
||||
mkdir -p "$TMPDIR" && chown www-data:www-data "$TMPDIR"
|
||||
$command start
|
||||
RETVAL=$?
|
||||
[ $RETVAL = 0 ] && echo success
|
||||
[ $RETVAL != 0 ] && echo failure
|
||||
echo
|
||||
[ $RETVAL = 0 ] && touch /var/lock/zm
|
||||
return $RETVAL
|
||||
}
|
||||
stop() {
|
||||
echo -n "Stopping $prog: "
|
||||
#
|
||||
# Why is this status check being done?
|
||||
# as $command stop returns 1 if zoneminder
|
||||
# is stopped, which will result in
|
||||
# this returning 1, which will stuff
|
||||
# dpkg when it tries to stop zoneminder before
|
||||
# uninstalling . . .
|
||||
#
|
||||
result=`$command status`
|
||||
if [ ! "$result" = "running" ]; then
|
||||
echo "Zoneminder already stopped"
|
||||
echo
|
||||
RETVAL=0
|
||||
else
|
||||
$command stop
|
||||
RETVAL=$?
|
||||
[ $RETVAL = 0 ] && echo success
|
||||
[ $RETVAL != 0 ] && echo failure
|
||||
echo
|
||||
[ $RETVAL = 0 ] && rm -f /var/lock/zm
|
||||
fi
|
||||
}
|
||||
status() {
|
||||
result=`$command status`
|
||||
if [ "$result" = "running" ]; then
|
||||
echo "ZoneMinder is running"
|
||||
RETVAL=0
|
||||
else
|
||||
echo "ZoneMinder is stopped"
|
||||
RETVAL=1
|
||||
fi
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
'start')
|
||||
start
|
||||
;;
|
||||
'stop')
|
||||
stop
|
||||
;;
|
||||
'restart' | 'force-reload')
|
||||
stop
|
||||
start
|
||||
;;
|
||||
'status')
|
||||
status
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 { start | stop | restart | status }"
|
||||
RETVAL=1
|
||||
;;
|
||||
esac
|
||||
exit $RETVAL
|
|
@ -0,0 +1,10 @@
|
|||
etc/zm/zm.conf
|
||||
usr/bin
|
||||
usr/lib/zoneminder
|
||||
usr/share/polkit-1
|
||||
usr/share/zoneminder/db
|
||||
usr/share/zoneminder/www
|
||||
|
||||
# libzoneminder-perl files:
|
||||
usr/share/man/man3
|
||||
usr/share/perl5
|
|
@ -0,0 +1,3 @@
|
|||
/var/cache/zoneminder/events /usr/share/zoneminder/www/events
|
||||
/var/cache/zoneminder/images /usr/share/zoneminder/www/images
|
||||
/var/cache/zoneminder/temp /usr/share/zoneminder/www/temp
|
|
@ -0,0 +1,14 @@
|
|||
## cakephp
|
||||
#replace /usr/share/php/Cake /usr/share/zoneminder/www/api/lib/Cake
|
||||
|
||||
## libjs-mootools
|
||||
replace /usr/share/javascript/mootools/mootools.js /usr/share/zoneminder/www/tools/mootools/mootools-core.js
|
||||
replace /usr/share/javascript/mootools/mootools.js /usr/share/zoneminder/www/tools/mootools/mootools-core-1.3.2-nc.js
|
||||
replace /usr/share/javascript/mootools/mootools.js /usr/share/zoneminder/www/tools/mootools/mootools-core-1.3.2-yc.js
|
||||
replace /usr/share/javascript/mootools/mootools-more.js /usr/share/zoneminder/www/tools/mootools/mootools-more.js
|
||||
replace /usr/share/javascript/mootools/mootools-more.js /usr/share/zoneminder/www/tools/mootools/mootools-more-1.3.2.1-nc.js
|
||||
replace /usr/share/javascript/mootools/mootools-more.js /usr/share/zoneminder/www/tools/mootools/mootools-more-1.3.2.1-yc.js
|
||||
|
||||
## libjs-jquery
|
||||
replace /usr/share/javascript/jquery/jquery.min.js /usr/share/zoneminder/www/skins/classic/js/jquery-1.4.2.min.js
|
||||
replace /usr/share/javascript/jquery/jquery.min.js /usr/share/zoneminder/www/skins/flat/js/jquery-1.4.2.min.js
|
|
@ -0,0 +1,14 @@
|
|||
# Depends: policykit-1
|
||||
unusual-interpreter usr/bin/zmsystemctl.pl #!/usr/bin/pkexec
|
||||
|
||||
# Intentionally not others-readable, #637685.
|
||||
non-standard-file-perm etc/zm/zm.conf 0640 != 0644
|
||||
|
||||
# Bundled Cake PHP framework, not intended for direct execution:
|
||||
script-not-executable usr/share/zoneminder/www/api/*
|
||||
|
||||
# Annoying but seems to be too much troubles to fix; should be fixed upstream:
|
||||
script-with-language-extension usr/bin/*.pl
|
||||
|
||||
# dh-linktree:
|
||||
package-contains-broken-symlink usr/share/zoneminder/www/api/lib/Cake/*
|
|
@ -0,0 +1,10 @@
|
|||
/var/log/zm/*log {
|
||||
missingok
|
||||
notifempty
|
||||
sharedscripts
|
||||
postrotate
|
||||
/usr/bin/zmpkg.pl logrot >>/dev/null 2>&1 || :
|
||||
endscript
|
||||
weekly
|
||||
rotate 3
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
rm_conffile /etc/zm/apache.conf 1.28.1-5~
|
|
@ -0,0 +1 @@
|
|||
docs/_build/man/*.1
|
|
@ -0,0 +1,13 @@
|
|||
#! /bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
if [ "$1" = "configure" ]; then
|
||||
chown www-data:root /var/log/zm
|
||||
chown www-data:www-data /var/lib/zm
|
||||
if [ -z "$2" ]; then
|
||||
chown www-data:www-data -R /var/cache/zoneminder
|
||||
fi
|
||||
fi
|
||||
|
||||
#DEBHELPER#
|
|
@ -0,0 +1,14 @@
|
|||
#! /bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
if [ "$1" = "purge" ]; then
|
||||
echo "
|
||||
Reminder: to completely remove \"zoneminder\" it may be necessary
|
||||
* to delete database using the following sample command:
|
||||
sudo mysqladmin --defaults-file=/etc/mysql/debian.cnf -f drop zm
|
||||
* to delete remaining data files in "/var/cache/zoneminder".
|
||||
"
|
||||
fi
|
||||
|
||||
#DEBHELPER#
|
|
@ -0,0 +1,36 @@
|
|||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
## Remove obsolete symlink which is in the way of dh_apache2:
|
||||
ol="/etc/apache2/conf-available/zoneminder.conf"
|
||||
if [ -h "${ol}" ]; then
|
||||
[ "$(readlink ${ol})" = "/etc/zm/apache.conf" ] && rm -f "${ol}"
|
||||
fi
|
||||
|
||||
abort=false
|
||||
if [ -h /usr/share/zoneminder/www/events ]; then
|
||||
l=$(readlink /usr/share/zoneminder/www/events)
|
||||
if [ "$l" != "/var/cache/zoneminder/events" ]; then
|
||||
abort=true
|
||||
fi
|
||||
fi
|
||||
if [ -h /usr/share/zoneminder/www/images ]; then
|
||||
l=$(readlink /usr/share/zoneminder/www/images )
|
||||
if [ "$l" != "/var/cache/zoneminder/images" ]; then
|
||||
abort=true
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$abort" = "true" ]; then
|
||||
cat >&2 << EOF
|
||||
Aborting installation of zoneminder due to non-default symlinks in
|
||||
/usr/share/zoneminder for the images and/or events directory, which could
|
||||
result in loss of data. Please move your data in each of these directories to
|
||||
/var/cache/zoneminder before installing zoneminder from the package.
|
||||
EOF
|
||||
exit 1
|
||||
|
||||
fi
|
||||
|
||||
#DEBHELPER#
|
|
@ -0,0 +1,19 @@
|
|||
# ZoneMinder systemd unit file
|
||||
# This file is intended to work with Debian distributions
|
||||
|
||||
[Unit]
|
||||
Description=ZoneMinder CCTV recording and surveillance system
|
||||
After=network.target mysql.service
|
||||
Requires=mysql.service
|
||||
|
||||
[Service]
|
||||
#User=www-data
|
||||
Type=forking
|
||||
ExecStart=/usr/bin/zmpkg.pl start
|
||||
ExecReload=/usr/bin/zmpkg.pl restart
|
||||
ExecStop=/usr/bin/zmpkg.pl stop
|
||||
PIDFile=/var/run/zm/zm.pid
|
||||
Restart=on-abnormal
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
|
@ -0,0 +1,2 @@
|
|||
d /var/run/zm 0755 www-data www-data
|
||||
d /tmp/zm 0755 www-data www-data
|
File diff suppressed because it is too large
Load Diff
|
@ -349,28 +349,24 @@ bool Event::SendFrameImage( const Image *image, bool alarm_frame )
|
|||
|
||||
bool Event::WriteFrameImage( Image *image, struct timeval timestamp, const char *event_file, bool alarm_frame )
|
||||
{
|
||||
if ( config.timestamp_on_capture )
|
||||
Image* ImgToWrite;
|
||||
Image* ts_image = NULL;
|
||||
|
||||
if ( config.timestamp_on_capture ) // stash the image we plan to use in another pointer regardless if timestamped.
|
||||
{
|
||||
if ( !config.opt_frame_server || !SendFrameImage( image, alarm_frame) )
|
||||
{
|
||||
if ( alarm_frame && (config.jpeg_alarm_file_quality > config.jpeg_file_quality) )
|
||||
image->WriteJpeg( event_file, config.jpeg_alarm_file_quality );
|
||||
else
|
||||
image->WriteJpeg( event_file );
|
||||
}
|
||||
ts_image = new Image(*image);
|
||||
monitor->TimestampImage( ts_image, ×tamp );
|
||||
ImgToWrite=ts_image;
|
||||
}
|
||||
else
|
||||
ImgToWrite=image;
|
||||
|
||||
if ( !config.opt_frame_server || !SendFrameImage(ImgToWrite, alarm_frame) )
|
||||
{
|
||||
Image ts_image( *image );
|
||||
monitor->TimestampImage( &ts_image, ×tamp );
|
||||
if ( !config.opt_frame_server || !SendFrameImage( &ts_image, alarm_frame) )
|
||||
{
|
||||
if ( alarm_frame && (config.jpeg_alarm_file_quality > config.jpeg_file_quality) )
|
||||
ts_image.WriteJpeg( event_file, config.jpeg_alarm_file_quality );
|
||||
else
|
||||
ts_image.WriteJpeg( event_file );
|
||||
}
|
||||
int thisquality = ( alarm_frame && (config.jpeg_alarm_file_quality > config.jpeg_file_quality) ) ? config.jpeg_alarm_file_quality : 0 ; // quality to use, zero is default
|
||||
ImgToWrite->WriteJpeg( event_file, thisquality, (monitor->Exif() ? timestamp : (timeval){0,0}) ); // exif is only timestamp at present this switches on or off for write
|
||||
}
|
||||
if(ts_image) delete(ts_image); // clean up if used.
|
||||
return( true );
|
||||
}
|
||||
|
||||
|
@ -888,7 +884,7 @@ void EventStream::processCommand( const CmdMsg *msg )
|
|||
}
|
||||
|
||||
// If we are in single event mode and at the last frame, replay the current event
|
||||
if ( (mode == MODE_SINGLE) && (curr_frame_id == event_data->frame_count) )
|
||||
if ( (mode == MODE_SINGLE) && ((unsigned int)curr_frame_id == event_data->frame_count) )
|
||||
curr_frame_id = 1;
|
||||
|
||||
replay_rate = ZM_RATE_BASE;
|
||||
|
|
104
src/zm_image.cpp
104
src/zm_image.cpp
|
@ -18,6 +18,7 @@
|
|||
//
|
||||
#include "zm.h"
|
||||
#include "zm_font.h"
|
||||
#include "zm_bigfont.h"
|
||||
#include "zm_image.h"
|
||||
#include "zm_utils.h"
|
||||
#include "zm_rgb.h"
|
||||
|
@ -787,15 +788,30 @@ bool Image::ReadJpeg( const char *filename, unsigned int p_colours, unsigned int
|
|||
return( true );
|
||||
}
|
||||
|
||||
bool Image::WriteJpeg( const char *filename, int quality_override ) const
|
||||
// Multiple calling formats to permit inclusion (or not) of both quality_override and timestamp (exif), with suitable defaults.
|
||||
// Note quality=zero means default
|
||||
|
||||
bool Image::WriteJpeg( const char *filename, int quality_override) const
|
||||
{
|
||||
return Image::WriteJpeg(filename, quality_override, (timeval){0,0});
|
||||
}
|
||||
bool Image::WriteJpeg( const char *filename) const
|
||||
{
|
||||
return Image::WriteJpeg(filename, 0, (timeval){0,0});
|
||||
}
|
||||
bool Image::WriteJpeg( const char *filename, struct timeval timestamp ) const
|
||||
{
|
||||
return Image::WriteJpeg(filename,0,timestamp);
|
||||
}
|
||||
|
||||
bool Image::WriteJpeg( const char *filename, int quality_override, struct timeval timestamp ) const
|
||||
{
|
||||
if ( config.colour_jpeg_files && colours == ZM_COLOUR_GRAY8 )
|
||||
{
|
||||
Image temp_image( *this );
|
||||
temp_image.Colourise( ZM_COLOUR_RGB24, ZM_SUBPIX_ORDER_RGB );
|
||||
return( temp_image.WriteJpeg( filename, quality_override ) );
|
||||
return( temp_image.WriteJpeg( filename, quality_override, timestamp) );
|
||||
}
|
||||
|
||||
int quality = quality_override?quality_override:config.jpeg_file_quality;
|
||||
|
||||
struct jpeg_compress_struct *cinfo = jpg_ccinfo[quality];
|
||||
|
@ -886,6 +902,30 @@ bool Image::WriteJpeg( const char *filename, int quality_override ) const
|
|||
{
|
||||
jpeg_write_marker( cinfo, JPEG_COM, (const JOCTET *)text, strlen(text) );
|
||||
}
|
||||
// If we have a non-zero time (meaning a parameter was passed in), then form a simple exif segment with that time as DateTimeOriginal and SubsecTimeOriginal
|
||||
// No timestamp just leave off the exif section.
|
||||
if(timestamp.tv_sec)
|
||||
{
|
||||
#define EXIFTIMES_MS_OFFSET 0x36 // three decimal digits for milliseconds
|
||||
#define EXIFTIMES_MS_LEN 0x03
|
||||
#define EXIFTIMES_OFFSET 0x3E // 19 characters format '2015:07:21 13:14:45' not including quotes
|
||||
#define EXIFTIMES_LEN 0x13 // = 19
|
||||
#define EXIF_CODE 0xE1
|
||||
|
||||
char timebuf[64], msbuf[64];
|
||||
strftime(timebuf, sizeof timebuf, "%Y:%m:%d %H:%M:%S", localtime(&(timestamp.tv_sec)));
|
||||
snprintf(msbuf, sizeof msbuf, "%06d",(int)(timestamp.tv_usec)); // we only use milliseconds because that's all defined in exif, but this is the whole microseconds because we have it
|
||||
unsigned char exiftimes[82] = {
|
||||
0x45, 0x78, 0x69, 0x66, 0x00, 0x00, 0x49, 0x49, 0x2A, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00,
|
||||
0x69, 0x87, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x02, 0x00, 0x03, 0x90, 0x02, 0x00, 0x14, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x91, 0x92,
|
||||
0x02, 0x00, 0x04, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0x00 };
|
||||
memcpy(&exiftimes[EXIFTIMES_OFFSET], timebuf,EXIFTIMES_LEN);
|
||||
memcpy(&exiftimes[EXIFTIMES_MS_OFFSET], msbuf ,EXIFTIMES_MS_LEN);
|
||||
jpeg_write_marker (cinfo, EXIF_CODE, (const JOCTET *)exiftimes, sizeof(exiftimes) );
|
||||
}
|
||||
|
||||
JSAMPROW row_pointer; /* pointer to a single row */
|
||||
int row_stride = cinfo->image_width * colours; /* physical row width in buffer */
|
||||
|
@ -1696,7 +1736,7 @@ const Coord Image::centreCoord( const char *text ) const
|
|||
}
|
||||
|
||||
/* RGB32 compatible: complete */
|
||||
void Image::Annotate( const char *p_text, const Coord &coord, const Rgb fg_colour, const Rgb bg_colour )
|
||||
void Image::Annotate( const char *p_text, const Coord &coord, const int size, const Rgb fg_colour, const Rgb bg_colour )
|
||||
{
|
||||
strncpy( text, p_text, sizeof(text) );
|
||||
|
||||
|
@ -1720,18 +1760,22 @@ void Image::Annotate( const char *p_text, const Coord &coord, const Rgb fg_colou
|
|||
const Rgb bg_rgb_col = rgb_convert(bg_colour,subpixelorder);
|
||||
const bool bg_trans = (bg_colour == RGB_TRANSPARENT);
|
||||
|
||||
int zm_text_bitmask = 0x80;
|
||||
if (size == 2)
|
||||
zm_text_bitmask = 0x8000;
|
||||
|
||||
while ( (index < text_len) && (line_len = strcspn( line, "\n" )) )
|
||||
{
|
||||
|
||||
unsigned int line_width = line_len * CHAR_WIDTH;
|
||||
unsigned int line_width = line_len * CHAR_WIDTH * size;
|
||||
|
||||
unsigned int lo_line_x = coord.X();
|
||||
unsigned int lo_line_y = coord.Y() + (line_no * LINE_HEIGHT);
|
||||
unsigned int lo_line_y = coord.Y() + (line_no * LINE_HEIGHT * size);
|
||||
|
||||
unsigned int min_line_x = 0;
|
||||
unsigned int max_line_x = width - line_width;
|
||||
unsigned int min_line_y = 0;
|
||||
unsigned int max_line_y = height - LINE_HEIGHT;
|
||||
unsigned int max_line_y = height - (LINE_HEIGHT * size);
|
||||
|
||||
if ( lo_line_x > max_line_x )
|
||||
lo_line_x = max_line_x;
|
||||
|
@ -1743,7 +1787,7 @@ void Image::Annotate( const char *p_text, const Coord &coord, const Rgb fg_colou
|
|||
lo_line_y = min_line_y;
|
||||
|
||||
unsigned int hi_line_x = lo_line_x + line_width;
|
||||
unsigned int hi_line_y = lo_line_y + LINE_HEIGHT;
|
||||
unsigned int hi_line_y = lo_line_y + (LINE_HEIGHT * size);
|
||||
|
||||
// Clip anything that runs off the right of the screen
|
||||
if ( hi_line_x > width )
|
||||
|
@ -1754,15 +1798,19 @@ void Image::Annotate( const char *p_text, const Coord &coord, const Rgb fg_colou
|
|||
if ( colours == ZM_COLOUR_GRAY8 )
|
||||
{
|
||||
unsigned char *ptr = &buffer[(lo_line_y*width)+lo_line_x];
|
||||
for ( unsigned int y = lo_line_y, r = 0; y < hi_line_y && r < CHAR_HEIGHT; y++, r++, ptr += width )
|
||||
for ( unsigned int y = lo_line_y, r = 0; y < hi_line_y && r < (CHAR_HEIGHT * size); y++, r++, ptr += width )
|
||||
{
|
||||
unsigned char *temp_ptr = ptr;
|
||||
for ( unsigned int x = lo_line_x, c = 0; x < hi_line_x && c < line_len; c++ )
|
||||
{
|
||||
int f = fontdata[(line[c] * CHAR_HEIGHT) + r];
|
||||
for ( unsigned int i = 0; i < CHAR_WIDTH && x < hi_line_x; i++, x++, temp_ptr++ )
|
||||
int f;
|
||||
if (size == 2)
|
||||
f = bigfontdata[(line[c] * CHAR_HEIGHT * size) + r];
|
||||
else
|
||||
f = fontdata[(line[c] * CHAR_HEIGHT) + r];
|
||||
for ( unsigned int i = 0; i < (CHAR_WIDTH * size) && x < hi_line_x; i++, x++, temp_ptr++ )
|
||||
{
|
||||
if ( f & (0x80 >> i) )
|
||||
if ( f & (zm_text_bitmask >> i) )
|
||||
{
|
||||
if ( !fg_trans )
|
||||
*temp_ptr = fg_bw_col;
|
||||
|
@ -1780,15 +1828,19 @@ void Image::Annotate( const char *p_text, const Coord &coord, const Rgb fg_colou
|
|||
unsigned int wc = width * colours;
|
||||
|
||||
unsigned char *ptr = &buffer[((lo_line_y*width)+lo_line_x)*colours];
|
||||
for ( unsigned int y = lo_line_y, r = 0; y < hi_line_y && r < CHAR_HEIGHT; y++, r++, ptr += wc )
|
||||
for ( unsigned int y = lo_line_y, r = 0; y < hi_line_y && r < (CHAR_HEIGHT * size); y++, r++, ptr += wc )
|
||||
{
|
||||
unsigned char *temp_ptr = ptr;
|
||||
for ( unsigned int x = lo_line_x, c = 0; x < hi_line_x && c < line_len; c++ )
|
||||
{
|
||||
int f = fontdata[(line[c] * CHAR_HEIGHT) + r];
|
||||
for ( unsigned int i = 0; i < CHAR_WIDTH && x < hi_line_x; i++, x++, temp_ptr += colours )
|
||||
int f;
|
||||
if (size == 2)
|
||||
f = bigfontdata[(line[c] * CHAR_HEIGHT * size) + r];
|
||||
else
|
||||
f = fontdata[(line[c] * CHAR_HEIGHT) + r];
|
||||
for ( unsigned int i = 0; i < (CHAR_WIDTH * size) && x < hi_line_x; i++, x++, temp_ptr += colours )
|
||||
{
|
||||
if ( f & (0x80 >> i) )
|
||||
if ( f & (zm_text_bitmask >> i) )
|
||||
{
|
||||
if ( !fg_trans )
|
||||
{
|
||||
|
@ -1812,15 +1864,19 @@ void Image::Annotate( const char *p_text, const Coord &coord, const Rgb fg_colou
|
|||
unsigned int wc = width * colours;
|
||||
|
||||
uint8_t *ptr = &buffer[((lo_line_y*width)+lo_line_x)<<2];
|
||||
for ( unsigned int y = lo_line_y, r = 0; y < hi_line_y && r < CHAR_HEIGHT; y++, r++, ptr += wc )
|
||||
for ( unsigned int y = lo_line_y, r = 0; y < hi_line_y && r < (CHAR_HEIGHT * size); y++, r++, ptr += wc )
|
||||
{
|
||||
Rgb* temp_ptr = (Rgb*)ptr;
|
||||
for ( unsigned int x = lo_line_x, c = 0; x < hi_line_x && c < line_len; c++ )
|
||||
{
|
||||
int f = fontdata[(line[c] * CHAR_HEIGHT) + r];
|
||||
for ( unsigned int i = 0; i < CHAR_WIDTH && x < hi_line_x; i++, x++, temp_ptr++ )
|
||||
int f;
|
||||
if (size == 2)
|
||||
f = bigfontdata[(line[c] * CHAR_HEIGHT * size) + r];
|
||||
else
|
||||
f = fontdata[(line[c] * CHAR_HEIGHT) + r];
|
||||
for ( unsigned int i = 0; i < (CHAR_WIDTH * size) && x < hi_line_x; i++, x++, temp_ptr++ )
|
||||
{
|
||||
if ( f & (0x80 >> i) )
|
||||
if ( f & (zm_text_bitmask >> i) )
|
||||
{
|
||||
if ( !fg_trans )
|
||||
{
|
||||
|
@ -1836,7 +1892,7 @@ void Image::Annotate( const char *p_text, const Coord &coord, const Rgb fg_colou
|
|||
}
|
||||
|
||||
} else {
|
||||
Panic("Annontate called with unexpected colours: %d",colours);
|
||||
Panic("Annotate called with unexpected colours: %d",colours);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1850,7 +1906,7 @@ void Image::Annotate( const char *p_text, const Coord &coord, const Rgb fg_colou
|
|||
}
|
||||
}
|
||||
|
||||
void Image::Timestamp( const char *label, const time_t when, const Coord &coord )
|
||||
void Image::Timestamp( const char *label, const time_t when, const Coord &coord, const int size )
|
||||
{
|
||||
char time_text[64];
|
||||
strftime( time_text, sizeof(time_text), "%y/%m/%d %H:%M:%S", localtime( &when ) );
|
||||
|
@ -1858,11 +1914,11 @@ void Image::Timestamp( const char *label, const time_t when, const Coord &coord
|
|||
if ( label )
|
||||
{
|
||||
snprintf( text, sizeof(text), "%s - %s", label, time_text );
|
||||
Annotate( text, coord );
|
||||
Annotate( text, coord, size );
|
||||
}
|
||||
else
|
||||
{
|
||||
Annotate( time_text, coord );
|
||||
Annotate( time_text, coord, size );
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -204,7 +204,12 @@ public:
|
|||
bool WriteRaw( const char *filename ) const;
|
||||
|
||||
bool ReadJpeg( const char *filename, unsigned int p_colours, unsigned int p_subpixelorder);
|
||||
bool WriteJpeg( const char *filename, int quality_override=0 ) const;
|
||||
|
||||
bool WriteJpeg ( const char *filename) const;
|
||||
bool WriteJpeg ( const char *filename, int quality_override ) const;
|
||||
bool WriteJpeg ( const char *filename, struct timeval timestamp ) const;
|
||||
bool WriteJpeg ( const char *filename, int quality_override, struct timeval timestamp ) const;
|
||||
|
||||
bool DecodeJpeg( const JOCTET *inbuffer, int inbuffer_size, unsigned int p_colours, unsigned int p_subpixelorder);
|
||||
bool EncodeJpeg( JOCTET *outbuffer, int *outbuffer_size, int quality_override=0 ) const;
|
||||
|
||||
|
@ -226,10 +231,10 @@ public:
|
|||
void Delta( const Image &image, Image* targetimage) const;
|
||||
|
||||
const Coord centreCoord( const char *text ) const;
|
||||
void Annotate( const char *p_text, const Coord &coord, const Rgb fg_colour=RGB_WHITE, const Rgb bg_colour=RGB_BLACK );
|
||||
void Annotate( const char *p_text, const Coord &coord, const int size=1, const Rgb fg_colour=RGB_WHITE, const Rgb bg_colour=RGB_BLACK );
|
||||
Image *HighlightEdges( Rgb colour, unsigned int p_colours, unsigned int p_subpixelorder, const Box *limits=0 );
|
||||
//Image *HighlightEdges( Rgb colour, const Polygon &polygon );
|
||||
void Timestamp( const char *label, const time_t when, const Coord &coord );
|
||||
void Timestamp( const char *label, const time_t when, const Coord &coord, const int size );
|
||||
void Colourise(const unsigned int p_reqcolours, const unsigned int p_reqsubpixelorder);
|
||||
void DeColourise();
|
||||
|
||||
|
|
|
@ -273,6 +273,7 @@ Monitor::Monitor(
|
|||
const char *p_event_prefix,
|
||||
const char *p_label_format,
|
||||
const Coord &p_label_coord,
|
||||
int p_label_size,
|
||||
int p_image_buffer_count,
|
||||
int p_warmup_count,
|
||||
int p_pre_event_count,
|
||||
|
@ -289,6 +290,7 @@ Monitor::Monitor(
|
|||
int p_alarm_ref_blend_perc,
|
||||
bool p_track_motion,
|
||||
Rgb p_signal_check_colour,
|
||||
bool p_embed_exif,
|
||||
Purpose p_purpose,
|
||||
int p_n_zones,
|
||||
Zone *p_zones[]
|
||||
|
@ -301,6 +303,7 @@ Monitor::Monitor(
|
|||
orientation( (Orientation)p_orientation ),
|
||||
deinterlacing( p_deinterlacing ),
|
||||
label_coord( p_label_coord ),
|
||||
label_size( p_label_size ),
|
||||
image_buffer_count( p_image_buffer_count ),
|
||||
warmup_count( p_warmup_count ),
|
||||
pre_event_count( p_pre_event_count ),
|
||||
|
@ -317,6 +320,7 @@ Monitor::Monitor(
|
|||
alarm_ref_blend_perc( p_alarm_ref_blend_perc ),
|
||||
track_motion( p_track_motion ),
|
||||
signal_check_colour( p_signal_check_colour ),
|
||||
embed_exif( p_embed_exif ),
|
||||
delta_image( width, height, ZM_COLOUR_GRAY8, ZM_SUBPIX_ORDER_NONE ),
|
||||
ref_image( width, height, p_camera->Colours(), p_camera->SubpixelOrder() ),
|
||||
purpose( p_purpose ),
|
||||
|
@ -442,7 +446,7 @@ Monitor::Monitor(
|
|||
event = 0;
|
||||
|
||||
Debug( 1, "Monitor %s has function %d", name, function );
|
||||
Debug( 1, "Monitor %s LBF = '%s', LBX = %d, LBY = %d", name, label_format, label_coord.X(), label_coord.Y() );
|
||||
Debug( 1, "Monitor %s LBF = '%s', LBX = %d, LBY = %d, LBS = %d", name, label_format, label_coord.X(), label_coord.Y(), label_size );
|
||||
Debug( 1, "Monitor %s IBC = %d, WUC = %d, pEC = %d, PEC = %d, EAF = %d, FRI = %d, RBP = %d, ARBP = %d, FM = %d", name, image_buffer_count, warmup_count, pre_event_count, post_event_count, alarm_frame_count, fps_report_interval, ref_blend_perc, alarm_ref_blend_perc, track_motion );
|
||||
|
||||
if ( purpose == ANALYSIS )
|
||||
|
@ -1669,7 +1673,7 @@ void Monitor::Reload()
|
|||
closeEvent();
|
||||
|
||||
static char sql[ZM_SQL_MED_BUFSIZ];
|
||||
snprintf( sql, sizeof(sql), "select Function+0, Enabled, LinkedMonitors, EventPrefix, LabelFormat, LabelX, LabelY, WarmupCount, PreEventCount, PostEventCount, AlarmFrameCount, SectionLength, FrameSkip, MotionFrameSkip, MaxFPS, AlarmMaxFPS, FPSReportInterval, RefBlendPerc, AlarmRefBlendPerc, TrackMotion, SignalCheckColour from Monitors where Id = '%d'", id );
|
||||
snprintf( sql, sizeof(sql), "select Function+0, Enabled, LinkedMonitors, EventPrefix, LabelFormat, LabelX, LabelY, LabelSize, WarmupCount, PreEventCount, PostEventCount, AlarmFrameCount, SectionLength, FrameSkip, MotionFrameSkip, MaxFPS, AlarmMaxFPS, FPSReportInterval, RefBlendPerc, AlarmRefBlendPerc, TrackMotion, SignalCheckColour from Monitors where Id = '%d'", id );
|
||||
|
||||
if ( mysql_query( &dbconn, sql ) )
|
||||
{
|
||||
|
@ -1699,6 +1703,7 @@ void Monitor::Reload()
|
|||
strncpy( event_prefix, dbrow[index++], sizeof(event_prefix) );
|
||||
strncpy( label_format, dbrow[index++], sizeof(label_format) );
|
||||
label_coord = Coord( atoi(dbrow[index]), atoi(dbrow[index+1]) ); index += 2;
|
||||
label_size = atoi(dbrow[index++]);
|
||||
warmup_count = atoi(dbrow[index++]);
|
||||
pre_event_count = atoi(dbrow[index++]);
|
||||
post_event_count = atoi(dbrow[index++]);
|
||||
|
@ -1858,7 +1863,7 @@ void Monitor::ReloadLinkedMonitors( const char *p_linked_monitors )
|
|||
#if ZM_HAS_V4L
|
||||
int Monitor::LoadLocalMonitors( const char *device, Monitor **&monitors, Purpose purpose )
|
||||
{
|
||||
std::string sql = "select Id, Name, ServerId, Function+0, Enabled, LinkedMonitors, Device, Channel, Format, V4LMultiBuffer, V4LCapturesPerFrame, Method, Width, Height, Colours, Palette, Orientation+0, Deinterlacing, Brightness, Contrast, Hue, Colour, EventPrefix, LabelFormat, LabelX, LabelY, ImageBufferCount, WarmupCount, PreEventCount, PostEventCount, StreamReplayBuffer, AlarmFrameCount, SectionLength, FrameSkip, MotionFrameSkip, MaxFPS, AlarmMaxFPS, FPSReportInterval, RefBlendPerc, AlarmRefBlendPerc, TrackMotion, SignalCheckColour from Monitors where Function != 'None' and Type = 'Local'";
|
||||
std::string sql = "select Id, Name, ServerId, Function+0, Enabled, LinkedMonitors, Device, Channel, Format, V4LMultiBuffer, V4LCapturesPerFrame, Method, Width, Height, Colours, Palette, Orientation+0, Deinterlacing, Brightness, Contrast, Hue, Colour, EventPrefix, LabelFormat, LabelX, LabelY, ImageBufferCount, WarmupCount, PreEventCount, PostEventCount, StreamReplayBuffer, AlarmFrameCount, SectionLength, FrameSkip, MotionFrameSkip, MaxFPS, AlarmMaxFPS, FPSReportInterval, RefBlendPerc, AlarmRefBlendPerc, TrackMotion, SignalCheckColour, Exif from Monitors where Function != 'None' and Type = 'Local'";
|
||||
;
|
||||
if ( device[0] ) {
|
||||
sql += " AND Device='";
|
||||
|
@ -1932,6 +1937,7 @@ Debug( 1, "Got %d for v4l_captures_per_frame", v4l_captures_per_frame );
|
|||
|
||||
int label_x = atoi(dbrow[col]); col++;
|
||||
int label_y = atoi(dbrow[col]); col++;
|
||||
int label_size = atoi(dbrow[col]); col++;
|
||||
|
||||
int image_buffer_count = atoi(dbrow[col]); col++;
|
||||
int warmup_count = atoi(dbrow[col]); col++;
|
||||
|
@ -1955,6 +1961,7 @@ Debug( 1, "Got %d for v4l_captures_per_frame", v4l_captures_per_frame );
|
|||
else
|
||||
signal_check_colour = strtol(dbrow[col],0,16);
|
||||
col++;
|
||||
bool embed_exif = (*dbrow[col] != '0'); col++;
|
||||
|
||||
int cam_width = ((orientation==ROTATE_90||orientation==ROTATE_270)?height:width);
|
||||
int cam_height = ((orientation==ROTATE_90||orientation==ROTATE_270)?width:height);
|
||||
|
@ -1994,6 +2001,7 @@ Debug( 1, "Got %d for v4l_captures_per_frame", v4l_captures_per_frame );
|
|||
event_prefix,
|
||||
label_format,
|
||||
Coord( label_x, label_y ),
|
||||
label_size,
|
||||
image_buffer_count,
|
||||
warmup_count,
|
||||
pre_event_count,
|
||||
|
@ -2010,6 +2018,7 @@ Debug( 1, "Got %d for v4l_captures_per_frame", v4l_captures_per_frame );
|
|||
alarm_ref_blend_perc,
|
||||
track_motion,
|
||||
signal_check_colour,
|
||||
embed_exif,
|
||||
purpose,
|
||||
0,
|
||||
0
|
||||
|
@ -2033,7 +2042,7 @@ Debug( 1, "Got %d for v4l_captures_per_frame", v4l_captures_per_frame );
|
|||
|
||||
int Monitor::LoadRemoteMonitors( const char *protocol, const char *host, const char *port, const char *path, Monitor **&monitors, Purpose purpose )
|
||||
{
|
||||
std::string sql = "select Id, Name, ServerId, Function+0, Enabled, LinkedMonitors, Protocol, Method, Host, Port, Path, Width, Height, Colours, Palette, Orientation+0, Deinterlacing, Brightness, Contrast, Hue, Colour, EventPrefix, LabelFormat, LabelX, LabelY, ImageBufferCount, WarmupCount, PreEventCount, PostEventCount, StreamReplayBuffer, AlarmFrameCount, SectionLength, FrameSkip, MotionFrameSkip, MaxFPS, AlarmMaxFPS, FPSReportInterval, RefBlendPerc, AlarmRefBlendPerc, TrackMotion from Monitors where Function != 'None' and Type = 'Remote'";
|
||||
std::string sql = "select Id, Name, ServerId, Function+0, Enabled, LinkedMonitors, Protocol, Method, Host, Port, Path, Width, Height, Colours, Palette, Orientation+0, Deinterlacing, Brightness, Contrast, Hue, Colour, EventPrefix, LabelFormat, LabelX, LabelY, ImageBufferCount, WarmupCount, PreEventCount, PostEventCount, StreamReplayBuffer, AlarmFrameCount, SectionLength, FrameSkip, MotionFrameSkip, MaxFPS, AlarmMaxFPS, FPSReportInterval, RefBlendPerc, AlarmRefBlendPerc, TrackMotion, Exif from Monitors where Function != 'None' and Type = 'Remote'";
|
||||
if ( staticConfig.SERVER_ID ) {
|
||||
sql += " AND ServerId='";
|
||||
sql += staticConfig.SERVER_ID;
|
||||
|
@ -2086,6 +2095,7 @@ int Monitor::LoadRemoteMonitors( const char *protocol, const char *host, const c
|
|||
|
||||
int label_x = atoi(dbrow[col]); col++;
|
||||
int label_y = atoi(dbrow[col]); col++;
|
||||
int label_size = atoi(dbrow[col]); col++;
|
||||
|
||||
int image_buffer_count = atoi(dbrow[col]); col++;
|
||||
int warmup_count = atoi(dbrow[col]); col++;
|
||||
|
@ -2102,7 +2112,7 @@ int Monitor::LoadRemoteMonitors( const char *protocol, const char *host, const c
|
|||
int ref_blend_perc = atoi(dbrow[col]); col++;
|
||||
int alarm_ref_blend_perc = atoi(dbrow[col]); col++;
|
||||
int track_motion = atoi(dbrow[col]); col++;
|
||||
|
||||
bool embed_exif = (*dbrow[col] != '0'); col++;
|
||||
|
||||
int cam_width = ((orientation==ROTATE_90||orientation==ROTATE_270)?height:width);
|
||||
int cam_height = ((orientation==ROTATE_90||orientation==ROTATE_270)?width:height);
|
||||
|
@ -2164,6 +2174,7 @@ int Monitor::LoadRemoteMonitors( const char *protocol, const char *host, const c
|
|||
event_prefix.c_str(),
|
||||
label_format.c_str(),
|
||||
Coord( label_x, label_y ),
|
||||
label_size,
|
||||
image_buffer_count,
|
||||
warmup_count,
|
||||
pre_event_count,
|
||||
|
@ -2180,6 +2191,7 @@ int Monitor::LoadRemoteMonitors( const char *protocol, const char *host, const c
|
|||
alarm_ref_blend_perc,
|
||||
track_motion,
|
||||
RGB_WHITE,
|
||||
embed_exif,
|
||||
purpose,
|
||||
0,
|
||||
0
|
||||
|
@ -2203,7 +2215,7 @@ int Monitor::LoadRemoteMonitors( const char *protocol, const char *host, const c
|
|||
|
||||
int Monitor::LoadFileMonitors( const char *file, Monitor **&monitors, Purpose purpose )
|
||||
{
|
||||
std::string sql = "select Id, Name, ServerId, Function+0, Enabled, LinkedMonitors, Path, Width, Height, Colours, Palette, Orientation+0, Deinterlacing, Brightness, Contrast, Hue, Colour, EventPrefix, LabelFormat, LabelX, LabelY, ImageBufferCount, WarmupCount, PreEventCount, PostEventCount, StreamReplayBuffer, AlarmFrameCount, SectionLength, FrameSkip, MotionFrameSkip, MaxFPS, AlarmMaxFPS, FPSReportInterval, RefBlendPerc, AlarmRefBlendPerc, TrackMotion from Monitors where Function != 'None' and Type = 'File'";
|
||||
std::string sql = "select Id, Name, ServerId, Function+0, Enabled, LinkedMonitors, Path, Width, Height, Colours, Palette, Orientation+0, Deinterlacing, Brightness, Contrast, Hue, Colour, EventPrefix, LabelFormat, LabelX, LabelY, ImageBufferCount, WarmupCount, PreEventCount, PostEventCount, StreamReplayBuffer, AlarmFrameCount, SectionLength, FrameSkip, MotionFrameSkip, MaxFPS, AlarmMaxFPS, FPSReportInterval, RefBlendPerc, AlarmRefBlendPerc, TrackMotion, Exif from Monitors where Function != 'None' and Type = 'File'";
|
||||
if ( file[0] ) {
|
||||
sql += " AND Path='";
|
||||
sql += file;
|
||||
|
@ -2253,6 +2265,7 @@ int Monitor::LoadFileMonitors( const char *file, Monitor **&monitors, Purpose pu
|
|||
|
||||
int label_x = atoi(dbrow[col]); col++;
|
||||
int label_y = atoi(dbrow[col]); col++;
|
||||
int label_size = atoi(dbrow[col]); col++;
|
||||
|
||||
int image_buffer_count = atoi(dbrow[col]); col++;
|
||||
int warmup_count = atoi(dbrow[col]); col++;
|
||||
|
@ -2269,6 +2282,7 @@ int Monitor::LoadFileMonitors( const char *file, Monitor **&monitors, Purpose pu
|
|||
int ref_blend_perc = atoi(dbrow[col]); col++;
|
||||
int alarm_ref_blend_perc = atoi(dbrow[col]); col++;
|
||||
int track_motion = atoi(dbrow[col]); col++;
|
||||
bool embed_exif = (*dbrow[col] != '0'); col++;
|
||||
|
||||
int cam_width = ((orientation==ROTATE_90||orientation==ROTATE_270)?height:width);
|
||||
int cam_height = ((orientation==ROTATE_90||orientation==ROTATE_270)?width:height);
|
||||
|
@ -2299,6 +2313,7 @@ int Monitor::LoadFileMonitors( const char *file, Monitor **&monitors, Purpose pu
|
|||
event_prefix,
|
||||
label_format,
|
||||
Coord( label_x, label_y ),
|
||||
label_size,
|
||||
image_buffer_count,
|
||||
warmup_count,
|
||||
pre_event_count,
|
||||
|
@ -2314,6 +2329,7 @@ int Monitor::LoadFileMonitors( const char *file, Monitor **&monitors, Purpose pu
|
|||
ref_blend_perc,
|
||||
alarm_ref_blend_perc,
|
||||
track_motion,
|
||||
embed_exif,
|
||||
RGB_WHITE,
|
||||
purpose,
|
||||
0,
|
||||
|
@ -2338,7 +2354,7 @@ int Monitor::LoadFileMonitors( const char *file, Monitor **&monitors, Purpose pu
|
|||
#if HAVE_LIBAVFORMAT
|
||||
int Monitor::LoadFfmpegMonitors( const char *file, Monitor **&monitors, Purpose purpose )
|
||||
{
|
||||
std::string sql = "select Id, Name, ServerId, Function+0, Enabled, LinkedMonitors, Path, Method, Options, Width, Height, Colours, Palette, Orientation+0, Deinterlacing, Brightness, Contrast, Hue, Colour, EventPrefix, LabelFormat, LabelX, LabelY, ImageBufferCount, WarmupCount, PreEventCount, PostEventCount, StreamReplayBuffer, AlarmFrameCount, SectionLength, FrameSkip, MotionFrameSkip, MaxFPS, AlarmMaxFPS, FPSReportInterval, RefBlendPerc, AlarmRefBlendPerc, TrackMotion from Monitors where Function != 'None' and Type = 'Ffmpeg'";
|
||||
std::string sql = "select Id, Name, ServerId, Function+0, Enabled, LinkedMonitors, Path, Method, Options, Width, Height, Colours, Palette, Orientation+0, Deinterlacing, Brightness, Contrast, Hue, Colour, EventPrefix, LabelFormat, LabelX, LabelY, ImageBufferCount, WarmupCount, PreEventCount, PostEventCount, StreamReplayBuffer, AlarmFrameCount, SectionLength, FrameSkip, MotionFrameSkip, MaxFPS, AlarmMaxFPS, FPSReportInterval, RefBlendPerc, AlarmRefBlendPerc, TrackMotion, Exif from Monitors where Function != 'None' and Type = 'Ffmpeg'";
|
||||
if ( file[0] ) {
|
||||
sql += " AND Path = '";
|
||||
sql += file;
|
||||
|
@ -2390,6 +2406,7 @@ int Monitor::LoadFfmpegMonitors( const char *file, Monitor **&monitors, Purpose
|
|||
|
||||
int label_x = atoi(dbrow[col]); col++;
|
||||
int label_y = atoi(dbrow[col]); col++;
|
||||
int label_size = atoi(dbrow[col]); col++;
|
||||
|
||||
int image_buffer_count = atoi(dbrow[col]); col++;
|
||||
int warmup_count = atoi(dbrow[col]); col++;
|
||||
|
@ -2406,6 +2423,7 @@ int Monitor::LoadFfmpegMonitors( const char *file, Monitor **&monitors, Purpose
|
|||
int ref_blend_perc = atoi(dbrow[col]); col++;
|
||||
int alarm_ref_blend_perc = atoi(dbrow[col]); col++;
|
||||
int track_motion = atoi(dbrow[col]); col++;
|
||||
bool embed_exif = (*dbrow[col] != '0'); col++;
|
||||
|
||||
int cam_width = ((orientation==ROTATE_90||orientation==ROTATE_270)?height:width);
|
||||
int cam_height = ((orientation==ROTATE_90||orientation==ROTATE_270)?width:height);
|
||||
|
@ -2438,6 +2456,7 @@ int Monitor::LoadFfmpegMonitors( const char *file, Monitor **&monitors, Purpose
|
|||
event_prefix,
|
||||
label_format,
|
||||
Coord( label_x, label_y ),
|
||||
label_size,
|
||||
image_buffer_count,
|
||||
warmup_count,
|
||||
pre_event_count,
|
||||
|
@ -2453,6 +2472,7 @@ int Monitor::LoadFfmpegMonitors( const char *file, Monitor **&monitors, Purpose
|
|||
ref_blend_perc,
|
||||
alarm_ref_blend_perc,
|
||||
track_motion,
|
||||
embed_exif,
|
||||
RGB_WHITE,
|
||||
purpose,
|
||||
0,
|
||||
|
@ -2477,7 +2497,7 @@ int Monitor::LoadFfmpegMonitors( const char *file, Monitor **&monitors, Purpose
|
|||
|
||||
Monitor *Monitor::Load( unsigned int p_id, bool load_zones, Purpose purpose )
|
||||
{
|
||||
std::string sql = stringtf( "select Id, Name, ServerId, Type, Function+0, Enabled, LinkedMonitors, Device, Channel, Format, V4LMultiBuffer, V4LCapturesPerFrame, Protocol, Method, Host, Port, Path, Options, User, Pass, Width, Height, Colours, Palette, Orientation+0, Deinterlacing, Brightness, Contrast, Hue, Colour, EventPrefix, LabelFormat, LabelX, LabelY, ImageBufferCount, WarmupCount, PreEventCount, PostEventCount, StreamReplayBuffer, AlarmFrameCount, SectionLength, FrameSkip, MotionFrameSkip, MaxFPS, AlarmMaxFPS, FPSReportInterval, RefBlendPerc, AlarmRefBlendPerc, TrackMotion, SignalCheckColour from Monitors where Id = %d", p_id );
|
||||
std::string sql = stringtf( "select Id, Name, ServerId, Type, Function+0, Enabled, LinkedMonitors, Device, Channel, Format, V4LMultiBuffer, V4LCapturesPerFrame, Protocol, Method, Host, Port, Path, Options, User, Pass, Width, Height, Colours, Palette, Orientation+0, Deinterlacing, Brightness, Contrast, Hue, Colour, EventPrefix, LabelFormat, LabelX, LabelY, ImageBufferCount, WarmupCount, PreEventCount, PostEventCount, StreamReplayBuffer, AlarmFrameCount, SectionLength, FrameSkip, MotionFrameSkip, MaxFPS, AlarmMaxFPS, FPSReportInterval, RefBlendPerc, AlarmRefBlendPerc, TrackMotion, SignalCheckColour, Exif from Monitors where Id = %d", p_id );
|
||||
|
||||
MYSQL_ROW dbrow = zmDbFetchOne( sql.c_str() );
|
||||
if ( ! dbrow ) {
|
||||
|
@ -2567,6 +2587,7 @@ Debug( 1, "Got %d for v4l_captures_per_frame", v4l_captures_per_frame );
|
|||
signal_check_colour = strtol(dbrow[col]+1,0,16);
|
||||
else
|
||||
signal_check_colour = strtol(dbrow[col],0,16);
|
||||
bool embed_exif = (*dbrow[col] != '0'); col++;
|
||||
|
||||
int cam_width = ((orientation==ROTATE_90||orientation==ROTATE_270)?height:width);
|
||||
int cam_height = ((orientation==ROTATE_90||orientation==ROTATE_270)?width:height);
|
||||
|
@ -2758,6 +2779,7 @@ Debug( 1, "Got %d for v4l_captures_per_frame", v4l_captures_per_frame );
|
|||
alarm_ref_blend_perc,
|
||||
track_motion,
|
||||
signal_check_colour,
|
||||
embed_exif,
|
||||
purpose,
|
||||
0,
|
||||
0
|
||||
|
@ -2961,7 +2983,7 @@ void Monitor::TimestampImage( Image *ts_image, const struct timeval *ts_time ) c
|
|||
*d_ptr++ = *s_ptr++;
|
||||
}
|
||||
*d_ptr = '\0';
|
||||
ts_image->Annotate( label_text, label_coord );
|
||||
ts_image->Annotate( label_text, label_coord, label_size );
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3395,6 +3417,7 @@ bool Monitor::DumpSettings( char *output, bool verbose )
|
|||
sprintf( output+strlen(output), "Event Prefix : %s\n", event_prefix );
|
||||
sprintf( output+strlen(output), "Label Format : %s\n", label_format );
|
||||
sprintf( output+strlen(output), "Label Coord : %d,%d\n", label_coord.X(), label_coord.Y() );
|
||||
sprintf( output+strlen(output), "Label Size : %d\n", label_size );
|
||||
sprintf( output+strlen(output), "Image Buffer Count : %d\n", image_buffer_count );
|
||||
sprintf( output+strlen(output), "Warmup Count : %d\n", warmup_count );
|
||||
sprintf( output+strlen(output), "Pre Event Count : %d\n", pre_event_count );
|
||||
|
|
|
@ -227,6 +227,7 @@ protected:
|
|||
char event_prefix[64]; // The prefix applied to event names as they are created
|
||||
char label_format[64]; // The format of the timestamp on the images
|
||||
Coord label_coord; // The coordinates of the timestamp on the images
|
||||
int label_size; // Size of the timestamp on the images
|
||||
int image_buffer_count; // Size of circular image buffer, at least twice the size of the pre_event_count
|
||||
int warmup_count; // How many images to process before looking for events
|
||||
int pre_event_count; // How many images to hold and prepend to an alarm event
|
||||
|
@ -243,6 +244,7 @@ protected:
|
|||
int alarm_ref_blend_perc; // Percentage of new image going into reference image during alarm.
|
||||
bool track_motion; // Whether this monitor tries to track detected motion
|
||||
Rgb signal_check_colour; // The colour that the camera will emit when no video signal detected
|
||||
bool embed_exif; // Whether to embed Exif data into each image frame or not
|
||||
|
||||
double fps;
|
||||
Image delta_image;
|
||||
|
@ -299,7 +301,7 @@ protected:
|
|||
public:
|
||||
// OurCheckAlarms seems to be unused. Check it on zm_monitor.cpp for more info.
|
||||
//bool OurCheckAlarms( Zone *zone, const Image *pImage );
|
||||
Monitor( int p_id, const char *p_name, unsigned int p_server_id, int p_function, bool p_enabled, const char *p_linked_monitors, Camera *p_camera, int p_orientation, unsigned int p_deinterlacing, const char *p_event_prefix, const char *p_label_format, const Coord &p_label_coord, int p_image_buffer_count, int p_warmup_count, int p_pre_event_count, int p_post_event_count, int p_stream_replay_buffer, int p_alarm_frame_count, int p_section_length, int p_frame_skip, int p_motion_frame_skip, int p_capture_delay, int p_alarm_capture_delay, int p_fps_report_interval, int p_ref_blend_perc, int p_alarm_ref_blend_perc, bool p_track_motion, Rgb p_signal_check_colour, Purpose p_purpose, int p_n_zones=0, Zone *p_zones[]=0 );
|
||||
Monitor( int p_id, const char *p_name, unsigned int p_server_id, int p_function, bool p_enabled, const char *p_linked_monitors, Camera *p_camera, int p_orientation, unsigned int p_deinterlacing, const char *p_event_prefix, const char *p_label_format, const Coord &p_label_coord, int p_image_buffer_count, int p_warmup_count, int p_pre_event_count, int p_post_event_count, int p_stream_replay_buffer, int p_alarm_frame_count, int p_section_length, int p_frame_skip, int p_motion_frame_skip, int p_capture_delay, int p_alarm_capture_delay, int p_fps_report_interval, int p_ref_blend_perc, int p_alarm_ref_blend_perc, bool p_track_motion, Rgb p_signal_check_colour, bool p_embed_exif, Purpose p_purpose, int p_n_zones=0, Zone *p_zones[]=0 );
|
||||
~Monitor();
|
||||
|
||||
void AddZones( int p_n_zones, Zone *p_zones[] );
|
||||
|
@ -344,6 +346,10 @@ public:
|
|||
return( false );
|
||||
return( enabled && shared_data->active );
|
||||
}
|
||||
inline bool Exif()
|
||||
{
|
||||
return( embed_exif );
|
||||
}
|
||||
|
||||
unsigned int Width() const { return( width ); }
|
||||
unsigned int Height() const { return( height ); }
|
||||
|
|
|
@ -44,6 +44,7 @@ $statusData = array(
|
|||
"LabelFormat" => true,
|
||||
"LabelX" => true,
|
||||
"LabelY" => true,
|
||||
"LabelSize" => true,
|
||||
"ImageBufferCount" => true,
|
||||
"WarmupCount" => true,
|
||||
"PreEventCount" => true,
|
||||
|
|
|
@ -222,12 +222,12 @@
|
|||
/**
|
||||
* A random string used in security hashing methods.
|
||||
*/
|
||||
Configure::write('Security.salt', 'Q0MjGG2xRQEhJVQR85WhFJKI7f2St8RYMlVR7GNQ');
|
||||
Configure::write('Security.salt', 'ycA4zI3Xb3Eb640RoiWehDeQCHDqKlwBFDK7aSLI');
|
||||
|
||||
/**
|
||||
* A random numeric string (digits only) used to encrypt/decrypt strings.
|
||||
*/
|
||||
Configure::write('Security.cipherSeed', '02670120062639232092038865362');
|
||||
Configure::write('Security.cipherSeed', '41940792832193579176474142058');
|
||||
|
||||
/**
|
||||
* Apply timestamps with the last modified time to static assets (js, css, images).
|
||||
|
|
|
@ -421,7 +421,8 @@ if ( !empty($action) )
|
|||
'Controllable' => 'toggle',
|
||||
'TrackMotion' => 'toggle',
|
||||
'Enabled' => 'toggle',
|
||||
'DoNativeMotDet' => 'toggle'
|
||||
'DoNativeMotDet' => 'toggle',
|
||||
'Exif' => 'toggle'
|
||||
);
|
||||
|
||||
$columns = getTableColumns( 'Monitors' );
|
||||
|
@ -624,15 +625,42 @@ if ( !empty($action) )
|
|||
}
|
||||
}
|
||||
|
||||
// System view actions
|
||||
if ( $action == "setgroup" ) {
|
||||
if ( !empty($_REQUEST['gid']) ) {
|
||||
setcookie( "zmGroup", validInt($_REQUEST['gid']), time()+3600*24*30*12*10 );
|
||||
} else {
|
||||
setcookie( "zmGroup", "", time()-3600*24*2 );
|
||||
}
|
||||
$refreshParent = true;
|
||||
}
|
||||
// Group view actions
|
||||
if ( canView( 'Groups' ) && $action == "setgroup" ) {
|
||||
if ( !empty($_REQUEST['gid']) ) {
|
||||
setcookie( "zmGroup", validInt($_REQUEST['gid']), time()+3600*24*30*12*10 );
|
||||
} else {
|
||||
setcookie( "zmGroup", "", time()-3600*24*2 );
|
||||
}
|
||||
$refreshParent = true;
|
||||
}
|
||||
|
||||
// Group edit actions
|
||||
if ( canEdit( 'Groups' ) ) {
|
||||
if ( $action == "group" ) {
|
||||
# Should probably verfy that each monitor id is a valid monitor, that we have access to. HOwever at the moment, you have to have System permissions to do this
|
||||
$monitors = empty( $_POST['newGroup']['MonitorIds'] ) ? NULL : implode(',', $_POST['newGroup']['MonitorIds']);
|
||||
if ( !empty($_POST['gid']) ) {
|
||||
dbQuery( "UPDATE Groups SET Name=?, MonitorIds=? WHERE Id=?", array($_POST['newGroup']['Name'], $monitors, $_POST['gid']) );
|
||||
} else {
|
||||
dbQuery( "INSERT INTO Groups SET Name=?, MonitorIds=?", array( $_POST['newGroup']['Name'], $monitors ) );
|
||||
}
|
||||
$view = 'none';
|
||||
}
|
||||
if ( !empty($_REQUEST['gid']) && $action == "delete" ) {
|
||||
dbQuery( "delete from Groups where Id = ?", array($_REQUEST['gid']) );
|
||||
if ( isset($_COOKIE['zmGroup']) )
|
||||
{
|
||||
if ( $_REQUEST['gid'] == $_COOKIE['zmGroup'] )
|
||||
{
|
||||
unset( $_COOKIE['zmGroup'] );
|
||||
setcookie( "zmGroup", "", time()-3600*24*2 );
|
||||
$refreshParent = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
$refreshParent = true;
|
||||
}
|
||||
|
||||
// System edit actions
|
||||
if ( canEdit( 'System' ) )
|
||||
|
@ -851,19 +879,6 @@ if ( !empty($action) )
|
|||
dbQuery( "replace into States set Name=?, Definition=?", array( $_REQUEST['runState'],$definition) );
|
||||
}
|
||||
}
|
||||
elseif ( $action == "group" )
|
||||
{
|
||||
# Should probably verfy that each monitor id is a valid monitor, that we have access to. HOwever at the moment, you have to have System permissions to do this
|
||||
$monitors = empty( $_POST['newGroup']['MonitorIds'] ) ? NULL : implode(',', $_POST['newGroup']['MonitorIds']);
|
||||
if ( !empty($_POST['gid']) ) {
|
||||
dbQuery( "UPDATE Groups SET Name=?, MonitorIds=? WHERE Id=?", array($_POST['newGroup']['Name'], $monitors, $_POST['gid']) );
|
||||
} else {
|
||||
dbQuery( "INSERT INTO Groups SET Name=?, MonitorIds=?", array( $_POST['newGroup']['Name'], $monitors ) );
|
||||
}
|
||||
|
||||
$refreshParent = true;
|
||||
$view = 'none';
|
||||
}
|
||||
elseif ( $action == "delete" )
|
||||
{
|
||||
if ( isset($_REQUEST['runState']) )
|
||||
|
@ -876,19 +891,6 @@ if ( !empty($action) )
|
|||
if ( $markUid == $user['Id'] )
|
||||
userLogout();
|
||||
}
|
||||
if ( !empty($_REQUEST['gid']) )
|
||||
{
|
||||
dbQuery( "delete from Groups where Id = ?", array($_REQUEST['gid']) );
|
||||
if ( isset($_COOKIE['zmGroup']) )
|
||||
{
|
||||
if ( $_REQUEST['gid'] == $_COOKIE['zmGroup'] )
|
||||
{
|
||||
unset( $_COOKIE['zmGroup'] );
|
||||
setcookie( "zmGroup", "", time()-3600*24*2 );
|
||||
$refreshParent = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue