diff -Nur -x '*.orig' -x '*.rej' smeserver-BackupPC-0.1/createlinks mezzanine_patched_smeserver-BackupPC-0.1/createlinks --- smeserver-BackupPC-0.1/createlinks 2009-05-13 02:05:27.000000000 +0200 +++ mezzanine_patched_smeserver-BackupPC-0.1/createlinks 2009-05-13 02:03:41.000000000 +0200 @@ -31,8 +31,10 @@ templates2events("/etc/sudoers", $event); templates2events("/etc/httpd/bkpc-conf/httpd.conf", qw(backuppc-update bootstrap-console-save)); -event_link("backuppc-checkupgrade", $event, "10"); -event_link("backuppc-checkupgrade", "post-upgrade", "90"); +event_link("backuppc-checkupgrade", $event, "20"); +event_link("backuppc-genkey", $event, "10"); +event_link("backuppc-checkupgrade", "post-upgrade", "91"); +event_link("backuppc-genkey", "post-upgrade", "90"); safe_symlink("restart", "root/etc/e-smith/events/$event/services2adjust/backuppc"); safe_symlink("sigusr1", "root/etc/e-smith/events/$event/services2adjust/httpd-e-smith"); diff -Nur -x '*.orig' -x '*.rej' smeserver-BackupPC-0.1/root/etc/e-smith/events/actions/backuppc-genkey mezzanine_patched_smeserver-BackupPC-0.1/root/etc/e-smith/events/actions/backuppc-genkey --- smeserver-BackupPC-0.1/root/etc/e-smith/events/actions/backuppc-genkey 1970-01-01 01:00:00.000000000 +0100 +++ mezzanine_patched_smeserver-BackupPC-0.1/root/etc/e-smith/events/actions/backuppc-genkey 2009-05-13 02:03:05.000000000 +0200 @@ -0,0 +1,33 @@ +#!/usr/bin/perl -w + +# Generate a keyfile for archives encryption + +my $keyfile = '/etc/BackupPC/archive.key'; + +if (! -e $keyfile){ + use MIME::Base64 qw(encode_base64); + + my $key = "not set due to error"; + if ( open( RANDOM, "/dev/urandom" ) ){ + my $buf; + # 57 bytes is a full line of Base64 coding, and contains + # 456 bits of randomness - given a perfectly random /dev/random + if ( read( RANDOM, $buf, 57 ) != 57 ) + { + warn("Short read from /dev/random: $!"); + } + else + { + $key = encode_base64($buf); + chomp $key; + } + close RANDOM; + } + else + { + warn "Could not open /dev/urandom: $!"; + } + open( KEYFILE, ">$keyfile") || warn "Could not open $keyfile: $!"; + print KEYFILE $key; + close KEYFILE; +}