You can subscribe to this list here.
2007 |
Jan
(76) |
Feb
(76) |
Mar
(54) |
Apr
(14) |
May
(23) |
Jun
(21) |
Jul
|
Aug
|
Sep
(9) |
Oct
(14) |
Nov
(12) |
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2008 |
Jan
|
Feb
(18) |
Mar
(3) |
Apr
|
May
|
Jun
(2) |
Jul
(3) |
Aug
|
Sep
|
Oct
(17) |
Nov
(13) |
Dec
|
2009 |
Jan
(1) |
Feb
(1) |
Mar
(15) |
Apr
(2) |
May
(18) |
Jun
(1) |
Jul
|
Aug
(2) |
Sep
|
Oct
|
Nov
|
Dec
|
2010 |
Jan
(1) |
Feb
(5) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(61) |
Dec
|
2011 |
Jan
|
Feb
|
Mar
(18) |
Apr
|
May
|
Jun
(5) |
Jul
|
Aug
(1) |
Sep
(2) |
Oct
(4) |
Nov
(10) |
Dec
(9) |
2012 |
Jan
(10) |
Feb
(23) |
Mar
|
Apr
(5) |
May
(2) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
(4) |
2013 |
Jan
(17) |
Feb
(1) |
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <fcr...@us...> - 2012-05-04 13:06:29
|
Revision: 823 http://safekeep.svn.sourceforge.net/safekeep/?rev=823&view=rev Author: fcrawford Date: 2012-05-04 13:06:22 +0000 (Fri, 04 May 2012) Log Message: ----------- Add writable options for snapshot and bind mounts Modified Paths: -------------- safekeep/trunk/safekeep Modified: safekeep/trunk/safekeep =================================================================== --- safekeep/trunk/safekeep 2012-04-22 09:13:22 UTC (rev 822) +++ safekeep/trunk/safekeep 2012-05-04 13:06:22 UTC (rev 823) @@ -304,6 +304,14 @@ def __str__(self): return repr(self.value) +def parse_true_false(el, attr, default = None): + true_false = el.getAttribute(attr).lower() + if true_false and not true_false in ('true', 'false'): + raise ConfigException('Option needs to be true or false: attr %s: value %s' % (attr, el.getAttribute(attr))) + if not true_false: + true_false = default + return true_false + def parse_dump(dump_el): dbtype = dump_el.getAttribute('type') if not dbtype: @@ -319,7 +327,7 @@ dbfile = dump_el.getAttribute('file') if not dbfile: raise ConfigException('You need to specify where the database should be dumped') - cleanup = dump_el.getAttribute('cleanup') + cleanup = parse_true_false(dump_el, 'cleanup') return { 'type' : dbtype, 'db' : db, 'user' : user, 'dbuser' : dbuser, 'dbpasswd': dbpasswd, 'opts' : opts, 'file' : dbfile, 'cleanup' : cleanup } @@ -342,7 +350,8 @@ elif is_client: warn('Device: %s: empty tag in taglist: %s' % (device, tag_el)) mountoptions = snap_el.getAttribute('mount-options') - return { 'device' : device, 'size' : size, 'tags' : tags, 'mountoptions' : mountoptions } + writable = parse_true_false(snap_el, 'writable') + return { 'device' : device, 'size' : size, 'tags' : tags, 'mountoptions' : mountoptions, 'snap_writable' : writable } def parse_clude(clude_el): path = clude_el.getAttribute('path') @@ -363,9 +372,9 @@ def parse_data_attributes(data_el): return { - 'exclude-devices': (data_el.getAttribute('exclude-devices') or 'false'), - 'exclude-sockets': (data_el.getAttribute('exclude-sockets') or 'false'), - 'exclude-fifos': (data_el.getAttribute('exclude-fifos') or 'false') + 'exclude-devices': parse_true_false(data_el, 'exclude-devices', 'false'), + 'exclude-sockets': parse_true_false(data_el, 'exclude-sockets', 'false'), + 'exclude-fifos': parse_true_false(data_el, 'exclude-fifos', 'false') } def parse_config(backup_el, dflt_id): @@ -434,10 +443,12 @@ raise ConfigException('Unknown option "%s"' % option) setup_el = backup_el.getElementsByTagName('setup') + writable = None dumps = [] snaps = [] script = None if len(setup_el) > 0: + writable = parse_true_false(setup_el[0], 'writable') dump_els = setup_el[0].getElementsByTagName('dump') for dump_el in dump_els: dumps.append(parse_dump(dump_el)) @@ -480,7 +491,7 @@ cludes = [{ 'type' : 'exclude', 'path' : path, 'glob' : None, 'regexp' : None } for path in path_xcludes] return { 'id': cfg_id, 'host' : host, 'port' : port, 'nice' : nice, 'user' : user, 'key_ctrl' : key_ctrl, 'key_data' : key_data, - 'dir' : repo_dir, 'retention' : retention, 'dumps' : dumps, 'snaps' : snaps, 'script' : script, + 'dir' : repo_dir, 'retention' : retention, 'dumps' : dumps, 'snaps' : snaps, 'script' : script, 'mount_writable' : writable, 'cludes' : cludes, 'data_options' : data_options, 'options' : options, 'bw' : bw} def parse_locs(cfglocs): @@ -617,7 +628,7 @@ def do_client_dbdump_teardown(cfg): debug('Tear down DB dumps') for dump in cfg['dumps']: - if dump['cleanup'].lower() != 'true': + if dump['cleanup'] != 'true': continue try: os.remove(dump['file']) @@ -689,7 +700,21 @@ if os.path.isabs(mountpoint[0]): mountpoint = mountpoint[1:] return (lvmdev, snapdev, os.path.join(bdir, mountpoint), mounttype) -def do_client_snap_device(snap, bdir, mountpoint, mounttype): +def update_mountoptions(mountoptions, writable): + if writable == 'true': + sub = 'rw' + else: + sub = 'ro' + mod = False + options = mountoptions.split(',') + for i in range(len(options)): + if options[i] in ('rw', 'ro'): + options[i] = sub + mod = True + if not mod: options.append(sub) + return ','.join(options) + +def do_client_snap_device(snap, bdir, mountpoint, mounttype, writable): assert is_temp_root(bdir) device = snap['device'] debug('Doing FS snapshot for %s' % device) @@ -714,11 +739,17 @@ # no need to mkdir since the mountpoint already exists args = ['mount', '-t', snaptyp] if snap['mountoptions']: - args.extend(['-o', snap['mountoptions']]) + mountoptions = snap['mountoptions'] elif snaptyp in default_mountoptions: - args.extend(['-o', default_mountoptions[snaptyp]]) + mountoptions = default_mountoptions[snaptyp] elif 'snapshot' in default_mountoptions: - args.extend(['-o', default_mountoptions['snapshot']]) + mountoptions = default_mountoptions['snapshot'] + if snap['snap_writable']: + writable = snap['snap_writable'] + if writable: + mountoptions = update_mountoptions(mountoptions, writable) + if mountoptions: + args.extend(['-o', mountoptions]) args.extend([snapdev, snapmnt]) ec = spawn(args) if ec: @@ -793,7 +824,7 @@ continue snap = find_snapshot(cfg, device) if snap: - ret = not do_client_snap_device(snap, bdir, mountpoint, mounttype) + ret = not do_client_snap_device(snap, bdir, mountpoint, mounttype, cfg['mount_writable']) else: ret = spawn(['mount', '--bind', mountpoint, reroot(bdir, mountpoint)]) if ret: @@ -801,8 +832,12 @@ else: spawn(['mount', '--make-unbindable', reroot(bdir, mountpoint)]) if 'bind' in default_mountoptions: + mountoptions = default_mountoptions['bind'] + if cfg['mount_writable']: + mountoptions = update_mountoptions(mountoptions, cfg['mount_writable']) + if mountoptions: spawn(['mount' , '-o', - ('remount,%s,bind' % default_mountoptions['bind']), + ('remount,%s,bind' % mountoptions), mountpoint, reroot(bdir, mountpoint)]) if ret: ret = spawn(['umount', reroot(bdir, startpath)]) @@ -942,20 +977,9 @@ for (device, mountpoint, mounttype, mountoptions) in mount_information(True): if mountpoint.startswith('/mnt/safekeep-'): info("Removing mount %s" % mountpoint) - if device == '/' and 'bind' in mountoptions.split(','): - info("Removing rbind directory %s" % mountpoint) - ret = do_umount_all(mountpoint) - if ret: - warn('Failed to unmount tree: %s' % mountpoint) - else: - try: - os.rmdir(mountpoint) - except OSError, e: - warn('Failed to remove: %s: %s' % (mountpoint, e)) - else: - ret = spawn(['umount', mountpoint]) - if ret: - warn('Can not unmount the snapshot: %s' % mountpoint) + ret = spawn(['umount', mountpoint]) + if ret: + warn('Can not unmount the snapshot: %s' % mountpoint) if fnmatch.fnmatch(device, '*_snap_safekeep-*'): info("Removing snapshot %s" % device) ret = do_lvremove(device) @@ -1196,11 +1220,11 @@ options_append = [] special_files = [] - if cfg['data_options'].get('exclude-devices').lower() == 'true': + if cfg['data_options'].get('exclude-devices') == 'true': special_files.extend(['--exclude-device-files']) - if cfg['data_options'].get('exclude-sockets').lower() == 'true': + if cfg['data_options'].get('exclude-sockets') == 'true': special_files.extend(['--exclude-sockets']) - if cfg['data_options'].get('exclude-fifos').lower() == 'true': + if cfg['data_options'].get('exclude-fifos') == 'true': special_files.extend(['--exclude-fifos']) for option in cfg['options']: @@ -1740,7 +1764,7 @@ if mode != 'server' and (email or smtp): usage(2) - if not mode in ['server', 'client'] and cleanup: + if not mode in ('server', 'client') and cleanup: usage(2) if mode == 'client' and cfglocs: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fcr...@us...> - 2012-04-22 09:13:28
|
Revision: 822 http://safekeep.svn.sourceforge.net/safekeep/?rev=822&view=rev Author: fcrawford Date: 2012-04-22 09:13:22 +0000 (Sun, 22 Apr 2012) Log Message: ----------- Patch for bind mount issue as reported by Andres Toomsalu <an...@ac...> Modified Paths: -------------- safekeep/trunk/safekeep Modified: safekeep/trunk/safekeep =================================================================== --- safekeep/trunk/safekeep 2012-04-15 16:01:23 UTC (rev 821) +++ safekeep/trunk/safekeep 2012-04-22 09:13:22 UTC (rev 822) @@ -788,6 +788,9 @@ debug("Testing %s on %s" % (mountpoint, device)) if mountpoint.startswith(startpath) and device.startswith('/'): if not mount_excluded(cfg, mountpoint): + if 'bind' in mountoptions.split(','): + warn('bind mount of snapshot not currently supported: %s' % mountpoint) + continue snap = find_snapshot(cfg, device) if snap: ret = not do_client_snap_device(snap, bdir, mountpoint, mounttype) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <di...@us...> - 2012-04-15 16:01:29
|
Revision: 821 http://safekeep.svn.sourceforge.net/safekeep/?rev=821&view=rev Author: dimi Date: 2012-04-15 16:01:23 +0000 (Sun, 15 Apr 2012) Log Message: ----------- Fix attribute name Modified Paths: -------------- safekeep/trunk/doc/safekeep.backup.txt Modified: safekeep/trunk/doc/safekeep.backup.txt =================================================================== --- safekeep/trunk/doc/safekeep.backup.txt 2012-04-14 11:17:12 UTC (rev 820) +++ safekeep/trunk/doc/safekeep.backup.txt 2012-04-15 16:01:23 UTC (rev 821) @@ -260,7 +260,7 @@ not required, as the default options should suit routine usage. Optional for a `<snapshot>` element. -/backup/setup/script/@location:: +/backup/setup/script/@path:: Execute the script specified path on the client at certain steps of the backup process. This script is executed with three arguments: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fcr...@us...> - 2012-04-14 11:17:18
|
Revision: 820 http://safekeep.svn.sourceforge.net/safekeep/?rev=820&view=rev Author: fcrawford Date: 2012-04-14 11:17:12 +0000 (Sat, 14 Apr 2012) Log Message: ----------- Major rework of snapshot mounting Modified Paths: -------------- safekeep/trunk/safekeep Modified: safekeep/trunk/safekeep =================================================================== --- safekeep/trunk/safekeep 2012-04-06 13:22:43 UTC (rev 819) +++ safekeep/trunk/safekeep 2012-04-14 11:17:12 UTC (rev 820) @@ -68,7 +68,10 @@ base_dir = None current_pid = os.getpid() default_bandwidth = {} -default_mountoptions = { 'xfs' : 'nouuid' } +# Default mount options, overridden elsewhere: +# Key is a file system type, or 'snapshot' for default for snapshot mount +# or 'bind' for a bind mount (check mount for details) +default_mountoptions = { 'xfs' : 'ro,nouuid', 'snapshot' : 'ro', 'bind' : 'ro' } PROTOCOL = "1.2" VERSION = "1.4.0" @@ -644,9 +647,11 @@ mounts.append(matches.groups()) return mounts +def normalise_lvm_device(device): + return device.replace('/mapper','').replace('-','/').replace('//', '-') + def map_lvm_device(device): - device = device.replace('/mapper','').replace('-','/').replace('//', '-') - return device.split('/')[-2:] + return normalise_lvm_device(device).split('/')[-2:] def check_lvm_information(device): (group, volume) = map_lvm_device(device) @@ -655,13 +660,6 @@ return True return False -def gather_lvm_information(device): - (group, volume) = map_lvm_device(device) - for (device, mountpoint, mounttype, mountoptions) in mount_information(False): - if [group, volume] == map_lvm_device(device): - return (group, volume, mountpoint, mounttype) - return (None, None, None, None) - def do_lvremove(device): (group, volume) = device.split('/')[-2:] if group == 'mapper': @@ -681,9 +679,9 @@ ret = 0 # Equivalent to lvremove succeeding return ret -def gather_snap_information(device, bdir): - (group, volume, mountpoint, mounttype) = gather_lvm_information(device) - if not mountpoint: return (None, None, None, None) +def generate_snap_information(device, bdir, mountpoint, mounttype): + assert os.path.ismount(mountpoint) + (group, volume) = map_lvm_device(device) lvmdev = os.path.join('/dev', group, volume) if bdir[-1] == '/': bdir = bdir[:-1] snapname = '%s_snap_%s' % (volume, os.path.basename(bdir)) @@ -691,58 +689,77 @@ if os.path.isabs(mountpoint[0]): mountpoint = mountpoint[1:] return (lvmdev, snapdev, os.path.join(bdir, mountpoint), mounttype) -def do_client_snap(cfg, bdir): +def do_client_snap_device(snap, bdir, mountpoint, mounttype): assert is_temp_root(bdir) - debug('Doing FS snapshots') - for snap in cfg['snaps']: - device = snap['device'] - (lvmdev, snapdev, snapmnt, snaptyp) = gather_snap_information(device, bdir) - if not snapmnt: - warn('Cannot find the mountpoint for: %s' % device) - continue - args = ['lvcreate'] - if snap['tags']: - for tag in snap['tags']: - args.extend(['--addtag', tag.strip()]) - args.extend(['--snapshot', '--size', snap['size'], - '--name', os.path.basename(snapdev), lvmdev]) - ec = spawn(args) - if ec: - warn('Can not snapshot the device: %s' % device) - continue - # no need to mkdir since the mountpoint already exists - args = ['mount', '-t', snaptyp] - if snap['mountoptions']: - args.extend(['-o', snap['mountoptions']]) - elif snaptyp in default_mountoptions: - args.extend(['-o', default_mountoptions[snaptyp]]) - args.extend([snapdev, snapmnt]) - ec = spawn(args) - if ec: - warn('Can not mount the snapshot: %s' % device) - ret = do_lvremove(snapdev) - if ret: - warn('Can not tear down snapshot: %s' % device) + device = snap['device'] + debug('Doing FS snapshot for %s' % device) + (lvmdev, snapdev, snapmnt, snaptyp) = generate_snap_information(device, bdir, mountpoint, mounttype) + if not os.path.isdir(snapmnt): + warn('Cannot find the mountpoint %s for %s' % (snapmnt, device)) + return False + if 'snapdevice' in snap: + warn('bind mount of snapshot not currently supported: %s' % mountpoint) + return True # Should be False, but this will still do a good backup + args = ['lvcreate'] + if snap['tags']: + for tag in snap['tags']: + args.extend(['--addtag', tag.strip()]) + args.extend(['--snapshot', '--size', snap['size'], + '--name', os.path.basename(snapdev), lvmdev]) + ec = spawn(args) + if ec: + warn('Can not snapshot the device: %s' % device) + return False + # no need to mkdir since the mountpoint already exists + args = ['mount', '-t', snaptyp] + if snap['mountoptions']: + args.extend(['-o', snap['mountoptions']]) + elif snaptyp in default_mountoptions: + args.extend(['-o', default_mountoptions[snaptyp]]) + elif 'snapshot' in default_mountoptions: + args.extend(['-o', default_mountoptions['snapshot']]) + args.extend([snapdev, snapmnt]) + ec = spawn(args) + if ec: + warn('Can not mount the snapshot: %s' % device) + ret = do_lvremove(snapdev) + if ret: + warn('Can not tear down snapshot: %s' % device) + return False + snap['snapdevice'] = snapdev + snap['mountpoint'] = snapmnt + return True + def do_client_snap_teardown(cfg, bdir): assert is_temp_root(bdir) debug('Tear down FS snapshots dumps') snaps = list(cfg['snaps']) snaps.reverse() for snap in snaps: + if 'mountpoint' in snap: del snap['mountpoint'] device = snap['device'] - (lvmdev, snapdev, snapmnt, snaptyp) = gather_snap_information(device, bdir) - if not snapmnt: - warn('Can not find the mountpoint for: %s' % device) + if not 'snapdevice' in snap: + warn('No snapdevice for device teardown: %s' % device) continue - ret = spawn(['umount', snapmnt]) - if ret: - warn('Can not umount the snapshot: %s' % snapmnt) + snapdev = snap['snapdevice'] + debug('Tear down FS snapshot dump for %s -> %s' % (snapdev, device)) + ret = do_lvremove(snapdev) if ret: warn('Can not tear down snapshot: %s' % device) + continue + del snap['snapdevice'] +def find_snapshot(cfg, device): + for snap in cfg['snaps']: + if normalise_lvm_device(snap['device']) == normalise_lvm_device(device): + debug('find_snapshot device matched: %s' % device) + return snap + debug('find_snapshot device no matched for %s' % device) + return None + def mount_excluded(cfg, mountpoint): debug("mount_excluded: %s" % mountpoint) if not mountpoint.endswith('/'): mountpoint = mountpoint + '/' @@ -754,19 +771,42 @@ debug("mount_excluded: %s: no matches" % mountpoint) return False +def do_umount_all(bdir): + assert is_temp_root(bdir) + total_ret = 0 + for (device, mountpoint, mounttype, mountoptions) in mount_information(True): + if mountpoint.startswith(bdir): + debug("Removing mount %s" % mountpoint) + ret = spawn(['umount', mountpoint]) + if ret: + warn('Can not unmount snapshot: %s' % mountpoint) + total_ret += ret + return total_ret + def do_rbind(cfg, startpath, bdir): for (device, mountpoint, mounttype, mountoptions) in mount_information(False): debug("Testing %s on %s" % (mountpoint, device)) if mountpoint.startswith(startpath) and device.startswith('/'): if not mount_excluded(cfg, mountpoint): - ret = spawn(['mount', '--bind', mountpoint, reroot(bdir, mountpoint)]) + snap = find_snapshot(cfg, device) + if snap: + ret = not do_client_snap_device(snap, bdir, mountpoint, mounttype) + else: + ret = spawn(['mount', '--bind', mountpoint, reroot(bdir, mountpoint)]) + if ret: + debug("mount --bind %s: failed: unwinding" % mountpoint) + else: + spawn(['mount', '--make-unbindable', reroot(bdir, mountpoint)]) + if 'bind' in default_mountoptions: + spawn(['mount' , '-o', + ('remount,%s,bind' % default_mountoptions['bind']), + mountpoint, reroot(bdir, mountpoint)]) if ret: - debug("mount --bind %s: failed: unwinding" % mountpoint) - ret = spawn(['umount', '-l', reroot(bdir, startpath)]) + ret = spawn(['umount', reroot(bdir, startpath)]) if ret: warn('Failed to unmount: %s' % reroot(bdir, startpath)) + do_client_snap_teardown(cfg, bdir) return 1 - spawn(['mount', '--make-unbindable', reroot(bdir, mountpoint)]) return 0 @@ -822,7 +862,7 @@ for snap in cfg['snaps']: device = snap['device'] if check_lvm_information(device) and not do_client_scrub(): - raise Exception("Previous snapshots found for %s and automatic correction failed: run 'safekeep --server --cleanup' to correct" % device) + raise Exception("Previous snapshots found for %s and automatic correction failed: run 'safekeep --server --cleanup %s' to correct" % (device, cfg['host'])) ret = spawn(['modprobe', 'dm-snapshot']) if ret: @@ -836,8 +876,6 @@ except OSError, e: warn('Failed to remove: %s: %s' % (bdir, e)) bdir = '/' - else: - do_client_snap(cfg, bdir) else: bdir = '/' debug('Working root is %s' % bdir) @@ -847,17 +885,17 @@ def do_client_cleanup(cfg, bdir): debug('Do cleanup of %s in %s' % (cfg['host'], bdir)) if is_temp_root(bdir): - do_client_snap_teardown(cfg, bdir) - - ret = spawn(['umount', '-l', bdir]) + ret = do_umount_all(bdir) if ret: - warn('Failed to unmount: %s' % bdir) + warn('Failed to unmount tree: %s' % bdir) else: try: os.rmdir(bdir) except OSError, e: warn('Unable to remove: %s: %s' % (bdir, e)) + do_client_snap_teardown(cfg, bdir) + do_client_dbdump_teardown(cfg) def do_client_compat(server_versions): @@ -903,9 +941,9 @@ info("Removing mount %s" % mountpoint) if device == '/' and 'bind' in mountoptions.split(','): info("Removing rbind directory %s" % mountpoint) - ret = spawn(['umount', '-l', mountpoint]) + ret = do_umount_all(mountpoint) if ret: - warn('Failed to unmount: %s' % mountpoint) + warn('Failed to unmount tree: %s' % mountpoint) else: try: os.rmdir(mountpoint) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fcr...@us...> - 2012-04-06 13:22:52
|
Revision: 819 http://safekeep.svn.sourceforge.net/safekeep/?rev=819&view=rev Author: fcrawford Date: 2012-04-06 13:22:43 +0000 (Fri, 06 Apr 2012) Log Message: ----------- added attribute to supply mount options for snapshots Modified Paths: -------------- safekeep/trunk/doc/safekeep.backup.txt Modified: safekeep/trunk/doc/safekeep.backup.txt =================================================================== --- safekeep/trunk/doc/safekeep.backup.txt 2012-04-06 13:21:23 UTC (rev 818) +++ safekeep/trunk/doc/safekeep.backup.txt 2012-04-06 13:22:43 UTC (rev 819) @@ -255,6 +255,11 @@ An `@` is automatically added to each generated tag. Optional for a `<snapshot>` element. +/backup/setup/snapshot/@mountoptions:: + Mount options to be used with the snapshot device. This is normally + not required, as the default options should suit routine usage. + Optional for a `<snapshot>` element. + /backup/setup/script/@location:: Execute the script specified path on the client at certain steps of the backup process. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fcr...@us...> - 2012-04-06 13:21:31
|
Revision: 818 http://safekeep.svn.sourceforge.net/safekeep/?rev=818&view=rev Author: fcrawford Date: 2012-04-06 13:21:23 +0000 (Fri, 06 Apr 2012) Log Message: ----------- - generate a working "password file" for PostgreSQL by Marco Bozzolan <ma...@s1...> - set "nouuid" mount option for snapshots based on XFS filesystems from code by Robert Jordan <rj...@no...> and Alexander 'Leo' Bergolth <le...@st...> - added attribute to supply mount options for snapshots as suggested by Bryan Talbot <bt...@ae...> - cleaned up coding for tempfile Modified Paths: -------------- safekeep/trunk/safekeep Modified: safekeep/trunk/safekeep =================================================================== --- safekeep/trunk/safekeep 2012-02-18 13:26:47 UTC (rev 817) +++ safekeep/trunk/safekeep 2012-04-06 13:21:23 UTC (rev 818) @@ -68,6 +68,7 @@ base_dir = None current_pid = os.getpid() default_bandwidth = {} +default_mountoptions = { 'xfs' : 'nouuid' } PROTOCOL = "1.2" VERSION = "1.4.0" @@ -196,7 +197,6 @@ return (proc.wait(), lines) else: return (0, lines) - def _spawn(args, stdin=None, stdout=False): if isinstance(args, types.StringTypes): @@ -338,7 +338,8 @@ tags.append(tag.strip()) elif is_client: warn('Device: %s: empty tag in taglist: %s' % (device, tag_el)) - return { 'device' : device, 'size' : size, 'tags' : tags } + mountoptions = snap_el.getAttribute('mount-options') + return { 'device' : device, 'size' : size, 'tags' : tags, 'mountoptions' : mountoptions } def parse_clude(clude_el): path = clude_el.getAttribute('path') @@ -474,7 +475,7 @@ '/var/named/chroot/dev', '/var/named/chroot/proc', '/var/named/chroot/var/run', '/var/named/chroot/var/tmp' ] cludes = [{ 'type' : 'exclude', 'path' : path, 'glob' : None, 'regexp' : None } for path in path_xcludes] - + return { 'id': cfg_id, 'host' : host, 'port' : port, 'nice' : nice, 'user' : user, 'key_ctrl' : key_ctrl, 'key_data' : key_data, 'dir' : repo_dir, 'retention' : retention, 'dumps' : dumps, 'snaps' : snaps, 'script' : script, 'cludes' : cludes, 'data_options' : data_options, 'options' : options, 'bw' : bw} @@ -574,7 +575,7 @@ if dump['dbpasswd']: (fd, passwdfile) = tempfile.mkstemp() f = os.fdopen(fd, 'w') - f.write(dump['dbpasswd']) + f.write('*:*:*:*:%s' % dump['dbpasswd']) f.close() elif dbtype in ('mysql'): @@ -599,7 +600,6 @@ cmd = ' '.join([commands.mkarg(arg) for arg in args]) cmd = '%s > %s' % (cmd, commands.mkarg(dump['file'])) - if passwdfile: os.environ['PGPASSFILE'] = passwdfile try: @@ -711,7 +711,12 @@ warn('Can not snapshot the device: %s' % device) continue # no need to mkdir since the mountpoint already exists - args = ['mount', '-t', snaptyp, snapdev, snapmnt] + args = ['mount', '-t', snaptyp] + if snap['mountoptions']: + args.extend(['-o', snap['mountoptions']]) + elif snaptyp in default_mountoptions: + args.extend(['-o', default_mountoptions[snaptyp]]) + args.extend([snapdev, snapmnt]) ec = spawn(args) if ec: warn('Can not mount the snapshot: %s' % device) @@ -822,7 +827,7 @@ ret = spawn(['modprobe', 'dm-snapshot']) if ret: warn('modprobe dm-snapshot failed, continuing') - bdir = tempfile.mkdtemp("-rbind", "safekeep-%d-" % current_pid, "/mnt") + bdir = tempfile.mkdtemp(suffix="-rbind", prefix="safekeep-%d-" % current_pid, dir="/mnt") ret = do_rbind(cfg, '/', bdir) if ret: warn('mount --rbind failed, snapshotting will be disabled') @@ -1003,6 +1008,7 @@ if script_loc == 'server': if not script_dir: script_dir = tempfile.mkdtemp(prefix="safekeep-%d-" % current_pid) + tempfile.tempdir = script_dir script = os.path.basename(script) (fd, cfg['script']) = tempfile.mkstemp(prefix="%s-" % script, dir=script_dir) script_file = os.fdopen(fd, 'w') @@ -1059,6 +1065,7 @@ if not script_file.closed: script_file.close() os.remove(cfg['script']) if script_dir: + tempfile.tempdir = None try: os.rmdir(script_dir) except OSError, e: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fcr...@us...> - 2012-02-18 13:26:58
|
Revision: 817 http://safekeep.svn.sourceforge.net/safekeep/?rev=817&view=rev Author: fcrawford Date: 2012-02-18 13:26:47 +0000 (Sat, 18 Feb 2012) Log Message: ----------- Correct lookup of rpmroot Modified Paths: -------------- safekeep/trunk/Makefile Modified: safekeep/trunk/Makefile =================================================================== --- safekeep/trunk/Makefile 2012-02-18 13:24:44 UTC (rev 816) +++ safekeep/trunk/Makefile 2012-02-18 13:26:47 UTC (rev 817) @@ -9,7 +9,7 @@ snapshotname:= $(name)-$(version).$(version_ts) tagname := $(shell echo Release-$(releasename) | tr . _) dirname := $(shell basename $(PWD)) -rpmroot := $(shell grep '%_topdir' ~/.rpmmacros 2>/dev/null | sed 's/^[^ \t]*[ \t]*//') +rpmroot := $(shell grep '^%_topdir' ~/.rpmmacros 2>/dev/null | sed -e 's/^[^ \t]*[ \t]*//' -e 's/%/$$/g') svnroot := $(shell LANG=C svn info 2>/dev/null | grep Root | cut -c 18-) deb_box := 192.168.3.202 rpm_box := 192.168.3.242 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fcr...@us...> - 2012-02-18 13:24:50
|
Revision: 816 http://safekeep.svn.sourceforge.net/safekeep/?rev=816&view=rev Author: fcrawford Date: 2012-02-18 13:24:44 +0000 (Sat, 18 Feb 2012) Log Message: ----------- Added SourceForge top-level README to SVN Added Paths: ----------- safekeep/trunk/README_SF_Top Added: safekeep/trunk/README_SF_Top =================================================================== --- safekeep/trunk/README_SF_Top (rev 0) +++ safekeep/trunk/README_SF_Top 2012-02-18 13:24:44 UTC (rev 816) @@ -0,0 +1,52 @@ +Introduction +~~~~~~~~~~~~ +SafeKeep is a centralized and easy to use backup application that +combines the best features of a mirror and an incremental backup. +It is build around rdiff-backup, a well-known backup utility, +enhancing it with easy deployment, database dumps, as well as +LVM snapshot handling. + +For more information, visit the project's homepage: + http://safekeep.sourceforge.net/ +or contact us via email on our mailing list: + saf...@li... + +Requirements +~~~~~~~~~~~~ + * rdiff-backup + * asciidoc + * xmlto + * python + * openssh + +Current Release 1.4.0 (12 Feb 2012) +~~~~~~~~~~~~~~~ +Sources and binaries are available from the following locations: + + - RedHat EL/CentOS 4,5,6 Fedora 8,9,10,11,12,13,14,15,16: + http://prdownloads.sourceforge.net/safekeep/safekeep-common-1.4.0-1.noarch.rpm + http://prdownloads.sourceforge.net/safekeep/safekeep-client-1.4.0-1.noarch.rpm + http://prdownloads.sourceforge.net/safekeep/safekeep-server-1.4.0-1.noarch.rpm + + - Ubuntu Dapper, Breezy, Hardy, Lucid, Maverick, Natty, Oneiric and Precise: + http://prdownloads.sourceforge.net/safekeep/safekeep-common_1.4.0_all.deb + http://prdownloads.sourceforge.net/safekeep/safekeep-client_1.4.0_all.deb + http://prdownloads.sourceforge.net/safekeep/safekeep-server_1.4.0_all.deb + + - Source: + http://prdownloads.sourceforge.net/safekeep/safekeep-1.4.0.tar.gz + http://prdownloads.sourceforge.net/safekeep/safekeep-1.4.0-1.src.rpm + +Current GPG Key +~~~~~~~~~~~~~~~ +The GPG Signing Key can be found in the following location: + + http://prdownloads.sourceforge.net/safekeep/RPM-GPG-KEY-SafeKeep + +with fingerprint: + +pub 1024D/4E1CD0E5 2012-02-17 + Key fingerprint = B051 E099 25D1 CE50 54DF 227D 96FC 24AC 4E1C D0E5 +uid SafeKeep (Signing Key) <saf...@li...> +sub 1024g/6AA3270F 2012-02-17 + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fcr...@us...> - 2012-02-18 13:23:47
|
Revision: 815 http://safekeep.svn.sourceforge.net/safekeep/?rev=815&view=rev Author: fcrawford Date: 2012-02-18 13:23:41 +0000 (Sat, 18 Feb 2012) Log Message: ----------- Added GPG Key to SVN Added Paths: ----------- safekeep/trunk/RPM-GPG-KEY-SafeKeep Added: safekeep/trunk/RPM-GPG-KEY-SafeKeep =================================================================== --- safekeep/trunk/RPM-GPG-KEY-SafeKeep (rev 0) +++ safekeep/trunk/RPM-GPG-KEY-SafeKeep 2012-02-18 13:23:41 UTC (rev 815) @@ -0,0 +1,25 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.12 (GNU/Linux) + +mQGiBE8+T+ARBACgCX1q6S9RBvDIBt+gzmw7ElQXRL9Ae/mru5w3JVO7HmsxcRme +OFOcan4QJEWD5UNdR+DcCbL68+JIYMaXYYQYiWud0Stnt4klluRMaKaap78QANXQ +OkJv+vSUiTG4fDWbnN9NBbk2Q4LhzzUOlRKqqVdpfumOb+FF12rH4usdPwCgjzkW +EbmKVw4QBqFXRf6sGMc/ER8D/iwk1hVUc5loG7qLnhnNhf06z0+oK0Wmgx0fSOTr +9sK6CdKgqdaq5ZcAIR9B4W+NEI/sS5pAFGG5FiIBey9bHrPCBIx291ykzVN2gbog +BZy1ApwKBEt5ifNgXzQFrckMqg1PfwWKRRWMUXNAIZ7pWGvb1RUfQYOo6i+yM1rh +Tu9TBACIqMT9Jsw7BWJT/qlYvPxNrJmCb26cYIEMrNdyHjObtBhGwDGS/tcTdZKF +f/bdrZhzMFEG+xjnrDIA8R4MKIp/hm5ZtY3IzaO4ZnTO8zDCVbhSg2unOL6kj9Wi +mULY8F7zqSYXDeL8xlwCI65e5IuYmvgPmwuU4Yf9KplCfPwmhbQ9U2FmZUtlZXAg +KFNpZ25pbmcgS2V5KSA8c2FmZWtlZXAtZGV2ZWxAbGlzdHMuc291cmNlZm9yZ2Uu +bmV0PohiBBMRAgAiBQJPPk/gAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAK +CRCW/CSsThzQ5XOkAKCF1ljK2D4u5SxgB1ZV2liI80PgkACdHBiMZrEPcvtIeF+e +y72EojRnptS5AQ0ETz5P4BAEAMve+K1pvTmNeAzMw5FwnCj2KjAisAbtLomSBu3H +nBLNJa7JSSJjnWnrlpgA8b1hKysg9hk01IjICbqTVTw/xUFVrzvm2jH61c3viVRp +7Eav/rFhofN/o2GLxg081onUVNASvnCZ3t72IDHuZyA3WJBg1eSyVE5c8MR89omw +KklbAAMFA/9klGlT4NdL0RlycU0ta36L+faaA3DjjZIDzFb8gvOHLuMiESfs+e/9 +GrAQ1HrSrGfUYZ0tXmahdfTxxvUiqP8qz1kjr+rK3fDSyUe6s2rcWdRLSIhp6c8w +EaTDYNgG70AjKEB1uK1QceqJgoG1/Ja8VMcY/+kKwO5HFHRnpb4sZIhJBBgRAgAJ +BQJPPk/gAhsMAAoJEJb8JKxOHNDlVAMAn1DcSQ7WCnETI3Wgw/87yGFjZkekAJ9X +fA/OIswabxtQBn8WJz9wd2l1cQ== +=wv4g +-----END PGP PUBLIC KEY BLOCK----- This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fcr...@us...> - 2012-02-18 13:18:11
|
Revision: 814 http://safekeep.svn.sourceforge.net/safekeep/?rev=814&view=rev Author: fcrawford Date: 2012-02-18 13:18:05 +0000 (Sat, 18 Feb 2012) Log Message: ----------- Added information about new GPG Key Modified Paths: -------------- safekeep/trunk/ANNOUNCE Modified: safekeep/trunk/ANNOUNCE =================================================================== --- safekeep/trunk/ANNOUNCE 2012-02-18 13:14:03 UTC (rev 813) +++ safekeep/trunk/ANNOUNCE 2012-02-18 13:18:05 UTC (rev 814) @@ -31,6 +31,17 @@ http://prdownloads.sourceforge.net/safekeep/safekeep-1.4.0.tar.gz http://prdownloads.sourceforge.net/safekeep/safekeep-1.4.0-1.src.rpm +The GPG Signing Key can be found in the following location: + + http://prdownloads.sourceforge.net/safekeep/RPM-GPG-KEY-SafeKeep + +with fingerprint: + +pub 1024D/4E1CD0E5 2012-02-17 + Key fingerprint = B051 E099 25D1 CE50 54DF 227D 96FC 24AC 4E1C D0E5 +uid SafeKeep (Signing Key) <saf...@li...> +sub 1024g/6AA3270F 2012-02-17 + NOTE: The minimum version of Python now supported is Python 2.3. If you require support of an older version of Python, then you should select an earlier release of Safekeep. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fcr...@us...> - 2012-02-18 13:14:09
|
Revision: 813 http://safekeep.svn.sourceforge.net/safekeep/?rev=813&view=rev Author: fcrawford Date: 2012-02-18 13:14:03 +0000 (Sat, 18 Feb 2012) Log Message: ----------- Fixed minor typo Modified Paths: -------------- website/trunk/WebContent/download.shtml Modified: website/trunk/WebContent/download.shtml =================================================================== --- website/trunk/WebContent/download.shtml 2012-02-18 09:13:34 UTC (rev 812) +++ website/trunk/WebContent/download.shtml 2012-02-18 13:14:03 UTC (rev 813) @@ -94,7 +94,7 @@ </p> <p> The key can be downloaded from the SourceForge as -<a href="http://prdownloads.sourceforge.net/safekeep/RPM-GPG-KEY-SafeKeep">RPM-GPG-Key-SafeKeep</a> with a fingerprint of: +<a href="http://prdownloads.sourceforge.net/safekeep/RPM-GPG-KEY-SafeKeep">RPM-GPG-KEY-SafeKeep</a> with a fingerprint of: <pre> pub 1024D/4E1CD0E5 2012-02-17 Key fingerprint = B051 E099 25D1 CE50 54DF 227D 96FC 24AC 4E1C D0E5 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fcr...@us...> - 2012-02-18 09:13:41
|
Revision: 812 http://safekeep.svn.sourceforge.net/safekeep/?rev=812&view=rev Author: fcrawford Date: 2012-02-18 09:13:34 +0000 (Sat, 18 Feb 2012) Log Message: ----------- Updated for SafeKeep 1.4.0 release Modified Paths: -------------- website/trunk/WebContent/download.shtml website/trunk/WebContent/header.shtml website/trunk/WebContent/index.shtml website/trunk/WebContent/news.shtml website/trunk/WebContent/releases.shtml Modified: website/trunk/WebContent/download.shtml =================================================================== --- website/trunk/WebContent/download.shtml 2012-02-14 21:18:37 UTC (rev 811) +++ website/trunk/WebContent/download.shtml 2012-02-18 09:13:34 UTC (rev 812) @@ -5,6 +5,7 @@ <div id="PageMenu"> <span class="PageMenuTitle">On This Page:</span> <a href="#releases">Releases</a> / + <a href="#key">Current GPG Key</a> / <a href="#svn">Subversion (SVN)</a> / <a href="#browse">Browse SVN Repository</a> / <a href="#sf">SourceForge</a> @@ -13,17 +14,19 @@ <a name="releases"></a> <h2>Releases</h2> -<a name="1.3.3"></a> +<a name="1.4.0"></a> <p> -<a href="https://sourceforge.net/projects/safekeep/files/safekeep/1.3.3/">SafeKeep 1.3.3</a> -was released Nov 22, 2011, containing the following main features: +<a href="https://sourceforge.net/projects/safekeep/files/safekeep/1.4.0/">SafeKeep 1.4.0</a> +was released Feb 12, 2012, containing the following main features: </p> <ul> - <li>More fixes for dealing with LVM snapshots.</li> - <li>Better handling of other failure conditions.</li> - <li>Updates for Python syntax issues and changes.</li> - <li>Allow specification of a sender address in e-mail messages.</li> - <li>Better handling of ionice(1).</li> + <li>Add the ability to store script files on either client or server.</li> + <li>Rewritten snapshot creation to remove use of "rbind".</li> + <li>Automatic cleanup on next run after an abort.</li> + <li>Support of LVM tagging for snapshots.</li> + <li>Better handling of messages and tracebacks.</li> + <li>A number of other code cleanups and bug fixes.</li> + <li>Updated minimum Python support to Python 2.3.</li> </ul> <table> <tr> @@ -37,12 +40,12 @@ <b>Red Hat / Fedora</b> binary and source .rpms for RedHat EL, Cent OS, Fedora and compatible distributions. </td> <td> - <a href="http://prdownloads.sourceforge.net/safekeep/safekeep-1.3.3-1.src.rpm">safekeep-1.3.3-1.src.rpm</a> + <a href="http://prdownloads.sourceforge.net/safekeep/safekeep-1.4.0-1.src.rpm">safekeep-1.4.0-1.src.rpm</a> </td> <td> - <a href="http://prdownloads.sourceforge.net/safekeep/safekeep-common-1.3.3-1.noarch.rpm">safekeep-common-1.3.3-1.noarch.rpm</a> <br> - <a href="http://prdownloads.sourceforge.net/safekeep/safekeep-client-1.3.3-1.noarch.rpm">safekeep-client-1.3.3-1.noarch.rpm</a> <br> - <a href="http://prdownloads.sourceforge.net/safekeep/safekeep-server-1.3.3-1.noarch.rpm">safekeep-server-1.3.3-1.noarch.rpm</a> + <a href="http://prdownloads.sourceforge.net/safekeep/safekeep-common-1.4.0-1.noarch.rpm">safekeep-common-1.4.0-1.noarch.rpm</a> <br> + <a href="http://prdownloads.sourceforge.net/safekeep/safekeep-client-1.4.0-1.noarch.rpm">safekeep-client-1.4.0-1.noarch.rpm</a> <br> + <a href="http://prdownloads.sourceforge.net/safekeep/safekeep-server-1.4.0-1.noarch.rpm">safekeep-server-1.4.0-1.noarch.rpm</a> </td> </tr> <tr> @@ -50,15 +53,15 @@ <img src="images/ubuntu.png" width="50" height="50" alt="Ubuntu Linux" border="0"> </td> <td> - <b>Ubuntu</b> binary and source .debs for Ubuntu Hardy, Gutsy, Edgy, Dapper, Breezy, etc. + <b>Ubuntu</b> binary and source .debs for Ubuntu Precise, Oneiric, Natty, Lucid, etc. </td> <td> - <a href="http://prdownloads.sourceforge.net/safekeep/safekeep-1.3.3.tar.gz">safekeep-1.3.3.tar.gz</a> + <a href="http://prdownloads.sourceforge.net/safekeep/safekeep-1.4.0.tar.gz">safekeep-1.4.0.tar.gz</a> </td> <td> - <a href="http://prdownloads.sourceforge.net/safekeep/safekeep-common_1.3.3_all.deb">safekeep-common_1.3.3_all.deb</a> <br> - <a href="http://prdownloads.sourceforge.net/safekeep/safekeep-client_1.3.3_all.deb">safekeep-client_1.3.3_all.deb</a> <br> - <a href="http://prdownloads.sourceforge.net/safekeep/safekeep-server_1.3.3_all.deb">safekeep-server_1.3.3_all.deb</a> + <a href="http://prdownloads.sourceforge.net/safekeep/safekeep-common_1.4.0_all.deb">safekeep-common_1.4.0_all.deb</a> <br> + <a href="http://prdownloads.sourceforge.net/safekeep/safekeep-client_1.4.0_all.deb">safekeep-client_1.4.0_all.deb</a> <br> + <a href="http://prdownloads.sourceforge.net/safekeep/safekeep-server_1.4.0_all.deb">safekeep-server_1.4.0_all.deb</a> </td> </tr> <tr> @@ -66,10 +69,10 @@ <img src="images/linux.png" width="50" height="50" alt="Linux Source" border="0"> </td> <td> - <b>Linux</b> source tarball for most distributions running Python 2.2 or newer + <b>Linux</b> source tarball for most distributions running Python 2.3 or newer </td> <td> - <a href="http://prdownloads.sourceforge.net/safekeep/safekeep-1.3.3.tar.gz">safekeep-1.3.3.tar.gz</a> + <a href="http://prdownloads.sourceforge.net/safekeep/safekeep-1.4.0.tar.gz">safekeep-1.4.0.tar.gz</a> </td> <td> N/A @@ -81,6 +84,25 @@ <a href="releases.shtml">All releases...</a> </p> +<a name="key"></a> +<h2>Current GPG Key</h2> +<p> +All binary packages from version 1.4.0 onward are signed with a secure +GPG signature, which by default will have to be verified before installation. +For more details regarding signing and verifying +packages see your distribution documentation. +</p> +<p> +The key can be downloaded from the SourceForge as +<a href="http://prdownloads.sourceforge.net/safekeep/RPM-GPG-KEY-SafeKeep">RPM-GPG-Key-SafeKeep</a> with a fingerprint of: +<pre> +pub 1024D/4E1CD0E5 2012-02-17 + Key fingerprint = B051 E099 25D1 CE50 54DF 227D 96FC 24AC 4E1C D0E5 +uid SafeKeep (Signing Key) <saf...@li...> +sub 1024g/6AA3270F 2012-02-17 +</pre> +</p> + <a name="svn"></a> <h2>Subversion (SVN)</h2> <p> Modified: website/trunk/WebContent/header.shtml =================================================================== --- website/trunk/WebContent/header.shtml 2012-02-14 21:18:37 UTC (rev 811) +++ website/trunk/WebContent/header.shtml 2012-02-18 09:13:34 UTC (rev 812) @@ -1,6 +1,6 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> -<!--#set var="curver" value="0.9.2" --> +<!--#set var="curver" value="1.4.0" --> <head> <title><!--#echo var="title" --></title> Modified: website/trunk/WebContent/index.shtml =================================================================== --- website/trunk/WebContent/index.shtml 2012-02-14 21:18:37 UTC (rev 811) +++ website/trunk/WebContent/index.shtml 2012-02-18 09:13:34 UTC (rev 812) @@ -39,19 +39,37 @@ <div class="NewsBox"> -<p class="NewsTitle">Nov 22, 2011: SafeKeep version 1.3.3 (stable) released +<p class="NewsTitle">Feb 17, 2012: New SafeKeep Signing Key <img src="images/grey_pixel.gif" width="100%" height="1" alt=""> </p> <blockquote> <p> -SafeKeep 1.3.3 was released today. What's new in this release: +A new GPG signature has been generated to verify all SafeKeep distributions +from version 1.4.0 onwards. For more details regarding signing and verifying +packages see your distribution documentation. </p> +<p> +The key is available +for immediate <a href="download.shtml">download ...</a> +as well as details of the fingerprint for the current key. +</p> +</blockquote> + +<p class="NewsTitle">Feb 12, 2012: SafeKeep version 1.4.0 (stable) released +<img src="images/grey_pixel.gif" width="100%" height="1" alt=""> +</p> +<blockquote> +<p> +SafeKeep 1.4.0 was released today. What's new in this release: +</p> <ul> - <li>More fixes for dealing with LVM snapshots.</li> - <li>Better handling of other failure conditions.</li> - <li>Updates for Python syntax issues and changes.</li> - <li>Allow specification of a sender address in e-mail messages.</li> - <li>Better handling of ionice(1).</li> + <li>Add the ability to store script files on either client or server.</li> + <li>Rewritten snapshot creation to remove use of "rbind".</li> + <li>Automatic cleanup on next run after an abort.</li> + <li>Support of LVM tagging for snapshots.</li> + <li>Better handling of messages and tracebacks.</li> + <li>A number of other code cleanups and bug fixes.</li> + <li>Updated minimum Python support to Python 2.3.</li> </ul> <p> Binary packages for RedHat-based (e.g. RedHat EL, CentOS, Fedora) Modified: website/trunk/WebContent/news.shtml =================================================================== --- website/trunk/WebContent/news.shtml 2012-02-14 21:18:37 UTC (rev 811) +++ website/trunk/WebContent/news.shtml 2012-02-18 09:13:34 UTC (rev 812) @@ -5,6 +5,45 @@ <div class="NewsBox"> +<p class="NewsTitle">Feb 17, 2012: New SafeKeep Signing Key +<img src="images/grey_pixel.gif" width="100%" height="1" alt=""> +</p> +<blockquote> +<p> +A new GPG signature has been generated to verify all SafeKeep distributions +from version 1.4.0 onwards. For more details regarding signing and verifying +packages see your distribution documentation. +</p> +<p> +The key is available +for immediate <a href="download.shtml">download ...</a> +as well as details of the fingerprint for the current key. +</p> +</blockquote> + +<p class="NewsTitle">Feb 12, 2012: SafeKeep version 1.4.0 (stable) released +<img src="images/grey_pixel.gif" width="100%" height="1" alt=""> +</p> +<blockquote> +<p> +SafeKeep 1.4.0 was released today. What's new in this release: +</p> +<ul> + <li>Add the ability to store script files on either client or server.</li> + <li>Rewritten snapshot creation to remove use of "rbind".</li> + <li>Automatic cleanup on next run after an abort.</li> + <li>Support of LVM tagging for snapshots.</li> + <li>Better handling of messages and tracebacks.</li> + <li>A number of other code cleanups and bug fixes.</li> + <li>Updated minimum Python support to Python 2.3.</li> +</ul> +<p> +Binary packages for RedHat-based (e.g. RedHat EL, CentOS, Fedora) +and Debian-based (e.g. Debian, Ubuntu) distributions are available +for immediate <a href="download.shtml">download ...</a> +</p> +</blockquote> + <p class="NewsTitle">Nov 22, 2011: SafeKeep version 1.3.3 (stable) released <img src="images/grey_pixel.gif" width="100%" height="1" alt=""> </p> Modified: website/trunk/WebContent/releases.shtml =================================================================== --- website/trunk/WebContent/releases.shtml 2012-02-14 21:18:37 UTC (rev 811) +++ website/trunk/WebContent/releases.shtml 2012-02-18 09:13:34 UTC (rev 812) @@ -4,6 +4,7 @@ <h1>Releases</h1> <div id="PageMenu"> <span class="PageMenuTitle">On This Page:</span> + <a href="#1.4.0">1.4.0</a> <a href="#1.3.3">1.3.3</a> <a href="#1.3.2">1.3.2</a> <a href="#1.3.1">1.3.1</a> @@ -20,6 +21,21 @@ <a href="#0.9.0">0.9.0</a> </div> +<a name="1.4.0"></a> +<p> +<a href="https://sourceforge.net/projects/safekeep/files/safekeep/1.4.0/">SafeKeep 1.4.0</a> +was released Feb 12, 2012, containing the following main features: +</p> +<ul> + <li>Add the ability to store script files on either client or server.</li> + <li>Rewritten snapshot creation to remove use of "rbind".</li> + <li>Automatic cleanup on next run after an abort.</li> + <li>Support of LVM tagging for snapshots.</li> + <li>Better handling of messages and tracebacks.</li> + <li>A number of other code cleanups and bug fixes.</li> + <li>Updated minimum Python support to Python 2.3.</li> +</ul> + <a name="1.3.3"></a> <p> <a href="https://sourceforge.net/projects/safekeep/files/safekeep/1.3.3/">SafeKeep 1.3.3</a> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <di...@us...> - 2012-02-14 21:18:47
|
Revision: 811 http://safekeep.svn.sourceforge.net/safekeep/?rev=811&view=rev Author: dimi Date: 2012-02-14 21:18:37 +0000 (Tue, 14 Feb 2012) Log Message: ----------- Extract the version Modified Paths: -------------- safekeep/trunk/safekeep-test Modified: safekeep/trunk/safekeep-test =================================================================== --- safekeep/trunk/safekeep-test 2012-02-14 21:17:50 UTC (rev 810) +++ safekeep/trunk/safekeep-test 2012-02-14 21:18:37 UTC (rev 811) @@ -296,6 +296,7 @@ if os.system(cmd): raise TestFailure('Failed to nuke the tar') + ver = mytar[len('safekeep-'):-len('.tar.gz')] return ver def remoteTest(tmproot, client, server): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <di...@us...> - 2012-02-14 21:17:56
|
Revision: 810 http://safekeep.svn.sourceforge.net/safekeep/?rev=810&view=rev Author: dimi Date: 2012-02-14 21:17:50 +0000 (Tue, 14 Feb 2012) Log Message: ----------- Release is too rpm specific, we can hardcoded Modified Paths: -------------- safekeep/trunk/safekeep-test Modified: safekeep/trunk/safekeep-test =================================================================== --- safekeep/trunk/safekeep-test 2012-02-14 21:15:18 UTC (rev 809) +++ safekeep/trunk/safekeep-test 2012-02-14 21:17:50 UTC (rev 810) @@ -171,7 +171,7 @@ shutil.rmtree(dir) time.sleep(1) -def takeOver(host, role, verrel): +def takeOver(host, role, ver): cmd = 'ssh -o PasswordAuthentication=no root@%s true' % (host) if os.system(cmd): print 'The box %s does not appear to have been initialized' % (host) @@ -218,7 +218,7 @@ yum install -y safekeep-%(role)s-%(verrel)s; fi; rpm -q safekeep-%(role)s | grep %(verrel)s - """ % { 'role': role, 'verrel': verrel } + """ % { 'role': role, 'verrel': ver + '-1' } rcmd(cmd, 'root', host, 'install safekeep') def createKey(user, host, keyname, comment): @@ -296,14 +296,14 @@ if os.system(cmd): raise TestFailure('Failed to nuke the tar') - return ver + '-' + rel + return ver def remoteTest(tmproot, client, server): # build and upload - verrel = packageAndUpload('root', 'ulysses', None) + ver = packageAndUpload('root', 'ulysses', None) - takeOver(client, 'client', verrel) - takeOver(server, 'server', verrel) + takeOver(client, 'client', ver) + takeOver(server, 'server', ver) # setup the server cmd = 'chsh -s /bin/bash safekeep --server' This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <di...@us...> - 2012-02-14 21:15:24
|
Revision: 809 http://safekeep.svn.sourceforge.net/safekeep/?rev=809&view=rev Author: dimi Date: 2012-02-14 21:15:18 +0000 (Tue, 14 Feb 2012) Log Message: ----------- Setup the generic skeleton Modified Paths: -------------- safekeep/trunk/safekeep-test Modified: safekeep/trunk/safekeep-test =================================================================== --- safekeep/trunk/safekeep-test 2012-02-14 21:12:10 UTC (rev 808) +++ safekeep/trunk/safekeep-test 2012-02-14 21:15:18 UTC (rev 809) @@ -229,7 +229,7 @@ #TODO: this is just old code, we need to change it # so that it builds the RPM on the host it will run on -def packageRPM(tar, user, host): +def packageAndDeployRPM(tar, user, host): pkgroot='/tmp/safekeep-test-XXX' #TODO: replace XXX with curr timestamp rpmmacros = """ @@ -268,7 +268,11 @@ if not os.path.isfile(binrpm): raise TestFailure('Failed to find binary rpm: %s' % binrpm) -def packageAndUpload(user, rpmhost): +def packageAndDeployDEB(tar, user, host): + # TODO: we need to implement this + pass + +def packageAndUpload(user, rpmhost, debhost): cmd = 'make tar' if os.system(cmd): raise TestFailure('Failed to build the tar snapshot') @@ -282,8 +286,11 @@ raise TestFailure('Failed to determine the tar name') if rpmhost: - pacakgeRPM(mytar, user, rpmhost) + pacakgeAndDeployRPM(mytar, user, rpmhost) + if debhost: + packageAndDeployDEB(mytar, user, debhost) + cmd = 'rm %s' % (mytar) print cmd if os.system(cmd): @@ -293,7 +300,7 @@ def remoteTest(tmproot, client, server): # build and upload - verrel = packageAndUpload('root', 'ulysses') + verrel = packageAndUpload('root', 'ulysses', None) takeOver(client, 'client', verrel) takeOver(server, 'server', verrel) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <di...@us...> - 2012-02-14 21:12:16
|
Revision: 808 http://safekeep.svn.sourceforge.net/safekeep/?rev=808&view=rev Author: dimi Date: 2012-02-14 21:12:10 +0000 (Tue, 14 Feb 2012) Log Message: ----------- Separate out the building of the RPM (WIP). Give up going through the YUM repos. Modified Paths: -------------- safekeep/trunk/safekeep-test Modified: safekeep/trunk/safekeep-test =================================================================== --- safekeep/trunk/safekeep-test 2012-02-14 20:43:17 UTC (rev 807) +++ safekeep/trunk/safekeep-test 2012-02-14 21:12:10 UTC (rev 808) @@ -227,7 +227,11 @@ rcmd(cmd, user, host, 'create %s on server' % keyname) return key -def packageAndUpload(pkgroot, repodirs, user, host): +#TODO: this is just old code, we need to change it +# so that it builds the RPM on the host it will run on +def packageRPM(tar, user, host): + pkgroot='/tmp/safekeep-test-XXX' #TODO: replace XXX with curr timestamp + rpmmacros = """ %%packager safekeep Tester Package Builder %%_topdir %s @@ -235,34 +239,24 @@ %%_signature gpg """ % (pkgroot) + writefile(os.path.join(pkgroot, '.rpmmacros'), rpmmacros) # and the directories needed by rpmbuild for dir in ('BUILD', 'RPMS/noarch', 'SOURCES', 'SPECS', 'SRPMS'): os.makedirs(os.path.join(pkgroot, dir)) - cmd = 'make tar' + cmd = '%s %s %s@%s:%s' % \ + (mkssh('scp'), tar, user, host, pkgroot) + print cmd if os.system(cmd): - raise TestFailure('Failed to build the tar snapshot') - files = os.listdir('.') - mytar = None - for file in files: - if file.startswith('safekeep-') and file.endswith('.tar.gz'): - if file > mytar: - mytar = file # last one wins - if not mytar: - raise TestFailure('Failed to determine the tar name') + raise TestFailure('Failed to copy %s to the RPM host %s' % (tar, host)) cmd = 'HOME=%s rpmbuild -ta %s' % (pkgroot, mytar) print cmd if os.system(cmd): raise TestFailure('Failed to build the .rpm') - cmd = 'rm %s' % (mytar) - print cmd - if os.system(cmd): - raise TestFailure('Failed to nuke the tar') - ver = mytar[len('safekeep-'):-len('.tar.gz')] binrpm_list = glob.glob(os.path.join(pkgroot, 'RPMS/noarch', 'safekeep-*-' + ver + '-*.noarch.rpm')) @@ -274,27 +268,32 @@ if not os.path.isfile(binrpm): raise TestFailure('Failed to find binary rpm: %s' % binrpm) - for repodir in repodirs: - cmd = '%s %s %s@%s:%s/noarch' % \ - (mkssh('scp'), ' '.join(binrpm_list), user, host, repodir) - print cmd - if os.system(cmd): - raise TestFailure('Failed to copy safekee-*-%s-%s.noarch.rpm to the repository' % (ver, rel)) - - cmd = 'createrepo %s' % mkarg(repodir) - rcmd(cmd, user, host, 'update repo metadata') +def packageAndUpload(user, rpmhost): + cmd = 'make tar' + if os.system(cmd): + raise TestFailure('Failed to build the tar snapshot') + files = os.listdir('.') + mytar = None + for file in files: + if file.startswith('safekeep-') and file.endswith('.tar.gz'): + if file > mytar: + mytar = file # last one wins + if not mytar: + raise TestFailure('Failed to determine the tar name') + if rpmhost: + pacakgeRPM(mytar, user, rpmhost) + + cmd = 'rm %s' % (mytar) + print cmd + if os.system(cmd): + raise TestFailure('Failed to nuke the tar') + return ver + '-' + rel def remoteTest(tmproot, client, server): - # build and upload the .rpm - repodirs = [ - '/var/www/repos/lattica/devel/fedora/6', - '/var/www/repos/lattica/devel/fedora/7', - '/var/www/repos/lattica/devel/centos/4', - '/var/www/repos/lattica/devel/centos/5', - ] - verrel = packageAndUpload(tmproot, repodirs, 'root', 'ulysses') + # build and upload + verrel = packageAndUpload('root', 'ulysses') takeOver(client, 'client', verrel) takeOver(server, 'server', verrel) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <di...@us...> - 2012-02-14 20:43:23
|
Revision: 807 http://safekeep.svn.sourceforge.net/safekeep/?rev=807&view=rev Author: dimi Date: 2012-02-14 20:43:17 +0000 (Tue, 14 Feb 2012) Log Message: ----------- Remove unused parameter Modified Paths: -------------- safekeep/trunk/safekeep-test Modified: safekeep/trunk/safekeep-test =================================================================== --- safekeep/trunk/safekeep-test 2012-02-14 20:41:37 UTC (rev 806) +++ safekeep/trunk/safekeep-test 2012-02-14 20:43:17 UTC (rev 807) @@ -227,7 +227,7 @@ rcmd(cmd, user, host, 'create %s on server' % keyname) return key -def packageAndUpload(pkgroot, keyname, repodirs, user, host): +def packageAndUpload(pkgroot, repodirs, user, host): rpmmacros = """ %%packager safekeep Tester Package Builder %%_topdir %s @@ -294,7 +294,7 @@ '/var/www/repos/lattica/devel/centos/4', '/var/www/repos/lattica/devel/centos/5', ] - verrel = packageAndUpload(tmproot, 'Lattica, Inc. (Devel Key) <de...@la...>', repodirs, 'root', 'ulysses') + verrel = packageAndUpload(tmproot, repodirs, 'root', 'ulysses') takeOver(client, 'client', verrel) takeOver(server, 'server', verrel) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <di...@us...> - 2012-02-14 20:41:46
|
Revision: 806 http://safekeep.svn.sourceforge.net/safekeep/?rev=806&view=rev Author: dimi Date: 2012-02-14 20:41:37 +0000 (Tue, 14 Feb 2012) Log Message: ----------- We no longer need to install the Lattica key Modified Paths: -------------- safekeep/trunk/safekeep-test Modified: safekeep/trunk/safekeep-test =================================================================== --- safekeep/trunk/safekeep-test 2012-02-14 20:40:07 UTC (rev 805) +++ safekeep/trunk/safekeep-test 2012-02-14 20:41:37 UTC (rev 806) @@ -186,8 +186,6 @@ cmd = 'umask 077; test -d .ssh || mkdir .ssh; cat >> .ssh/authorized_keys' rcmdin(cmd, ssh_id_file_keys[1], 'root', host) - cmd = 'rpm --import http://lattica.com/keys/RPM-GPG-KEY-lattica-devel' - rcmd(cmd, 'root', host, 'install Lattica Devel Key') cmd = 'cat /etc/redhat-release' release = rcmdout(cmd, 'root', host, 'fetch the release') res = re.match('\s*(.*) release (.*) \(.*\)\s*', release) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <di...@us...> - 2012-02-14 20:40:13
|
Revision: 805 http://safekeep.svn.sourceforge.net/safekeep/?rev=805&view=rev Author: dimi Date: 2012-02-14 20:40:07 +0000 (Tue, 14 Feb 2012) Log Message: ----------- Oops, this got checked in by mistake, revert Modified Paths: -------------- safekeep/trunk/safekeep Modified: safekeep/trunk/safekeep =================================================================== --- safekeep/trunk/safekeep 2012-02-14 20:38:19 UTC (rev 804) +++ safekeep/trunk/safekeep 2012-02-14 20:40:07 UTC (rev 805) @@ -475,9 +475,6 @@ '/var/named/chroot/var/run', '/var/named/chroot/var/tmp' ] cludes = [{ 'type' : 'exclude', 'path' : path, 'glob' : None, 'regexp' : None } for path in path_xcludes] - for dump in dumps: - cludes.insert(0, { 'type' : 'include', 'path' : dump['file'], 'glob' : None, 'regexp' : None }) - return { 'id': cfg_id, 'host' : host, 'port' : port, 'nice' : nice, 'user' : user, 'key_ctrl' : key_ctrl, 'key_data' : key_data, 'dir' : repo_dir, 'retention' : retention, 'dumps' : dumps, 'snaps' : snaps, 'script' : script, 'cludes' : cludes, 'data_options' : data_options, 'options' : options, 'bw' : bw} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <di...@us...> - 2012-02-14 20:38:25
|
Revision: 804 http://safekeep.svn.sourceforge.net/safekeep/?rev=804&view=rev Author: dimi Date: 2012-02-14 20:38:19 +0000 (Tue, 14 Feb 2012) Log Message: ----------- Get rid of the package signing, it's not the proper place here. This complicates the test unnecessarily, making it more likely that it will bitrot. Modified Paths: -------------- safekeep/trunk/safekeep safekeep/trunk/safekeep-test Modified: safekeep/trunk/safekeep =================================================================== --- safekeep/trunk/safekeep 2012-02-11 10:14:31 UTC (rev 803) +++ safekeep/trunk/safekeep 2012-02-14 20:38:19 UTC (rev 804) @@ -474,6 +474,9 @@ '/var/named/chroot/dev', '/var/named/chroot/proc', '/var/named/chroot/var/run', '/var/named/chroot/var/tmp' ] cludes = [{ 'type' : 'exclude', 'path' : path, 'glob' : None, 'regexp' : None } for path in path_xcludes] + + for dump in dumps: + cludes.insert(0, { 'type' : 'include', 'path' : dump['file'], 'glob' : None, 'regexp' : None }) return { 'id': cfg_id, 'host' : host, 'port' : port, 'nice' : nice, 'user' : user, 'key_ctrl' : key_ctrl, 'key_data' : key_data, 'dir' : repo_dir, 'retention' : retention, 'dumps' : dumps, 'snaps' : snaps, 'script' : script, Modified: safekeep/trunk/safekeep-test =================================================================== --- safekeep/trunk/safekeep-test 2012-02-11 10:14:31 UTC (rev 803) +++ safekeep/trunk/safekeep-test 2012-02-14 20:38:19 UTC (rev 804) @@ -5,7 +5,6 @@ from commands import mkarg ssh_id_file_keys = None -sign_packages = 0 perform_snapshots = True safekeep_args = '' test_reps=2 @@ -208,8 +207,8 @@ baseurl=http://lattica.com/repos/lattica/devel/%s/$releasever gpgkey=http://lattica.com/keys/RPM-GPG-KEY-lattica-devel enabled=1 - gpgcheck=%s - """ % (distro, sign_packages) + gpgcheck=0 + """ % (distro) lattica_repo = '\n'.join([line.strip() for line in lattica_repo.splitlines()]) cmd = 'echo %s > /etc/yum.repos.d/safekeep-test-lattica-devel.repo' % (mkarg(lattica_repo).strip()) rcmd(cmd, 'root', host, 'install Lattica Repo') @@ -277,13 +276,6 @@ if not os.path.isfile(binrpm): raise TestFailure('Failed to find binary rpm: %s' % binrpm) - if sign_packages: - cmd = 'rpm --define %s --addsign %s' % \ - (mkarg('_gpg_name ' + keyname), ' '.join(binrpm_list)) - print cmd - if os.system(cmd): - raise TestFailure('Failed to sign rpms') - for repodir in repodirs: cmd = '%s %s %s@%s:%s/noarch' % \ (mkssh('scp'), ' '.join(binrpm_list), user, host, repodir) @@ -297,7 +289,7 @@ return ver + '-' + rel def remoteTest(tmproot, client, server): - # build, sign and upload the .rpm + # build and upload the .rpm repodirs = [ '/var/www/repos/lattica/devel/fedora/6', '/var/www/repos/lattica/devel/fedora/7', This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fcr...@us...> - 2012-02-11 10:14:37
|
Revision: 803 http://safekeep.svn.sourceforge.net/safekeep/?rev=803&view=rev Author: fcrawford Date: 2012-02-11 10:14:31 +0000 (Sat, 11 Feb 2012) Log Message: ----------- Update man pages on website to latest as of Sat Feb 11 21:14:15 EST 2012 Modified Paths: -------------- website/trunk/WebContent/safekeep.backup.html website/trunk/WebContent/safekeep.conf.html website/trunk/WebContent/safekeep.html Modified: website/trunk/WebContent/safekeep.backup.html =================================================================== --- website/trunk/WebContent/safekeep.backup.html 2012-02-11 08:12:14 UTC (rev 802) +++ website/trunk/WebContent/safekeep.backup.html 2012-02-11 10:14:31 UTC (rev 803) @@ -28,50 +28,28 @@ <table border="0" bgcolor="#e8e8e8" width="100%" cellpadding="10"><tr><td> <pre><backup id="my_workstation"> - <!-- the client backup host, the user under which the servers will connect, - the SSH keys used for control and data transfer --> - <host - name="myhost" user="root" nice="10" - key-ctrl="/home/jdoe/.ssh/backup_id_dsa" - key-data="/home/jdoe/.ssh/backup2_id_dsa" - /> + <!-- the client backup host, the user and keys for access --> + <host name="myhost" user="root" nice="10" + key-ctrl="/home/jdoe/.ssh/backup_id_dsa" + key-data="/home/jdoe/.ssh/backup2_id_dsa" /> - <!-- you can customize the bandwidth limit on a client basis, - for example to 50KB/s download/upload --> + <!-- rate limit bandwidth (kB/s) on a client basis --> <bandwidth overall="80" download="50" upload="50" /> - <!-- location where the backups will be stored on the server - and for how long (D=days, W=weeks, M=months, or Y=years) --> - <repo path="./data" retention="10D"/> + <!-- where to stored the data on the server, and for now long --> + <repo path="./data" retention="10D" /> <!-- settings for database dump and for volume snapshot --> <setup> - <!-- database type ("postgres" or "mysql"), and database name, - DB user with backup rights, location of the dump file on the client - host, and flag to remove or not the dump file after the backup is done. - Databases can be dumped individually using a dump clause for each database. --> - <dump - type="postgres" - db="my_db" - dbuser="foobar" - options="--schema=public" - file="/var/backup/dumps/mydata" - cleanup="true" - /> + <!-- databases can be dumbed before the backup --> + <dump type="postgres" db="my_db" dbuser="foobar" options="--schema=public" + file="/var/backup/dumps/mydata" cleanup="true" /> - <!-- what volume is to be snapshot (device location) and the size - of the snapshot (free space must exist in the volume group) --> - <snapshot - device="/path/to/volume" - size="500M" - /> + <!-- what volume is to be snapshot, and the size of the snapshot --> + <snapshot device="/path/to/volume" size="500M" /> - <!-- location of a script to be executed on the client at different - stages of the run. It is called with three arguments: - the step of the backup, backup id and the backup root directory --> - <script - path="/path/to/script" - /> + <!-- location of a script to be executed at different stages of the run --> + <script path="server:/path/to/script" /> </setup> @@ -127,6 +105,17 @@ </p> </dd> <dt> +/backup/host/@port +</dt> +<dd> +<p> + The network port to use when connecting to the client. This must + be a number and is passed to the network connection agent, usually + SSH. + Optional, default to not passing any port specification. +</p> +</dd> +<dt> /backup/host/@user </dt> <dd> @@ -385,14 +374,26 @@ </p> </dd> <dt> -/backup/setup/script/@path +/backup/setup/snapshot/@tag </dt> <dd> <p> - Execute the script specified path on the client at certain steps - of the backup process. - This script is executed with three arguments: + A list of tags to be added to the snapshot, with the <tt>--addtag</tt> + argument to <tt>lvcreate</tt>. The @tag entry consists of a <tt>,</tt> + separated list of tags. + An <tt>@</tt> is automatically added to each generated tag. + Optional for a <tt><snapshot></tt> element. </p> +</dd> +<dt> +/backup/setup/script/@location +</dt> +<dd> +<p> + Execute the script specified path on the client at certain steps + of the backup process. + This script is executed with three arguments: +</p> <ul> <li> <p> @@ -407,8 +408,14 @@ <li> <p> Backup root directory (valid after creation of a snapshot) - See the <tt>CLIENT SCRIPT</tt> section for more information. - Mandatory for a <tt><script></tt> element. + The <tt>location</tt> optionally consists of an optional <tt>host</tt> and + a mandatory <tt>path</tt>, separated by a ":", where the host part is + either "client" or "server". If no host part is specified then + it is first looked for on the client, and if not found, then is + looked for on the server. If it not found on either, then a + warning is raised. + See the <tt>CLIENT SCRIPT</tt> section for more information. + Mandatory for a <tt><script></tt> element. </p> </li> </ul> @@ -537,6 +544,14 @@ <h2><a name="_client_script"></a>CLIENT SCRIPT</h2> <p><tt>safekeep(1)</tt> support the optional execution of a script or program on the client system at different steps during execution of the backup.</p> +<p>The script may be located on either the server or the client. If it is +located on the server, then the file is copied to the client into a +temporary directory before execution. Note that this directory is located +where ever the system normally creates temporary files, and it is possible +that the execution of scripts are disallowed. In that case it is recommended +that a client based script is used. In addition, the script is copied from +the server on a line by line basis, and so it is not suitable to pass binary +files.</p> <p>Note: specification of a script which does not exist is not considered an error, and is treated as the same as not specifying a script. However, if the specified path does match a file or directory, the security tests listed @@ -571,10 +586,12 @@ <pre>/etc/safekeep/backup.d/</pre> <h2><a name="_see_also"></a>SEE ALSO</h2> <p>safekeep(1), safekeep.conf(5), rdiff-backup(1), lvcreate(8)</p> +<h2><a name="_author"></a>AUTHOR</h2> +<p>This man page was written by Dimi Paun <<a href="mailto:di...@la...">di...@la...</a>>.</p> <p></p> <p></p> <hr><p><small> -Last updated 2011-11-05 20:40:04 EST +Last updated 2012-01-20 23:22:08 EST </small></p> </body> </html> Modified: website/trunk/WebContent/safekeep.conf.html =================================================================== --- website/trunk/WebContent/safekeep.conf.html 2012-02-11 08:12:14 UTC (rev 802) +++ website/trunk/WebContent/safekeep.conf.html 2012-02-11 10:14:31 UTC (rev 803) @@ -178,10 +178,12 @@ <pre>/etc/safekeep/safekeep.conf</pre> <h2><a name="_see_also"></a>SEE ALSO</h2> <p>safekeep(1), safekeep.backup(5), rdiff-backup(1), trickle(1), lvcreate(8)</p> +<h2><a name="_author"></a>AUTHOR</h2> +<p>This man page was written by Dimi Paun <<a href="mailto:di...@la...">di...@la...</a>>.</p> <p></p> <p></p> <hr><p><small> -Last updated 2011-11-05 20:40:04 EST +Last updated 2011-12-24 17:01:56 EST </small></p> </body> </html> Modified: website/trunk/WebContent/safekeep.html =================================================================== --- website/trunk/WebContent/safekeep.html 2012-02-11 08:12:14 UTC (rev 802) +++ website/trunk/WebContent/safekeep.html 2012-02-11 10:14:31 UTC (rev 803) @@ -415,7 +415,7 @@ <p></p> <p></p> <hr><p><small> -Last updated 2011-11-05 20:40:04 EST +Last updated 2011-12-24 17:01:56 EST </small></p> </body> </html> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fcr...@us...> - 2012-02-11 08:12:24
|
Revision: 802 http://safekeep.svn.sourceforge.net/safekeep/?rev=802&view=rev Author: fcrawford Date: 2012-02-11 08:12:14 +0000 (Sat, 11 Feb 2012) Log Message: ----------- Tag safekeep 1.4.0 Added Paths: ----------- safekeep/tags/Release-safekeep-1_4_0/ safekeep/tags/Release-safekeep-1_4_0/ChangeLog Removed Paths: ------------- safekeep/tags/Release-safekeep-1_4_0/ChangeLog Deleted: safekeep/tags/Release-safekeep-1_4_0/ChangeLog =================================================================== --- safekeep/trunk/ChangeLog 2012-02-11 07:51:13 UTC (rev 800) +++ safekeep/tags/Release-safekeep-1_4_0/ChangeLog 2012-02-11 08:12:14 UTC (rev 802) @@ -1,3375 +0,0 @@ -2011-10-20 14:42 +0000 [r765] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Frank Crawford - <fr...@cr...> More reliable snapshot removal. - -2011-10-16 15:40 +0000 [r764] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Frank Crawford - <fr...@cr...> - Changes the --list option to - continue even if one of the hosts gives an error, - Stop printing - the separator if nothing was printed earlier, and - Clean up some - definitions to use True and False rather than 0 and 1 for - variable that are booleans. - -2011-10-16 15:39 +0000 [r763] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Frank Crawford - <fr...@cr...> It "fixes" the issues with the removal - of snapshots, by executing "dmsetup remove" prior to the actual - lvremove. This appears to be current best practice, although I've - noticed there are some proposed patches for an upcoming lvm2 - update that may fix the issue fully. - -2011-10-13 19:40 +0000 [r762] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Replace object identies test ('is') with - value comparisons ('=='). Based on a suggestion by Harald Nehring - <har...@ar...> - -2011-09-30 00:22 +0000 [r761] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Marco Bozzolan <ma...@s1...> Use - the subprocess module when required, avoid noisy deprecation - error. - -2011-09-30 00:19 +0000 [r760] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Marco Bozzolan <ma...@s1...> Avoid - exception when an 'email.to' is specified without an 'email.from' - -2011-08-31 13:02 +0000 [r759] Dimi Paun <di...@la...> - - * safekeep/trunk/doc/safekeep.conf.txt, safekeep/trunk/safekeep, - safekeep/trunk/safekeep.conf: Marco Bozzolan <ma...@s1...> - Allow to specify a sender address for the log messages sent via - e-mail. - -2011-06-11 16:14 +0000 [r758] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Fix a few bugs introduced by the - previous patches - -2011-06-11 16:07 +0000 [r757] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Try to run ionice and make sure that it - works before we try to use it. This should take care of system - where we don't have enough privileges to run ionice(1), and we - still want to proceed. - -2011-06-11 15:59 +0000 [r756] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Do not use the -t ionice switch unless - it is supported, it is missnig in some versions. - -2011-06-11 15:52 +0000 [r755] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Have 'try_to_run' return the captured - output of the command rather than just a boolean for additional - flexibility. - -2011-06-11 15:20 +0000 [r754] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep.cron: Do not run the server from cron if - we have no backups setup to avoid meaningless noise from cron. - Based on a patch by Frank Crawford. - -2011-03-07 03:04 +0000 [r752] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep.spec.in: Fix typo - -2011-03-06 18:07 +0000 [r750] Dimi Paun <di...@la...> - - * safekeep/trunk/ChangeLog: Update ChangeLog - -2011-03-06 18:01 +0000 [r749] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep.spec.in, safekeep/trunk/ANNOUNCE: Prep - release 1.3.2 - -2011-03-06 17:50 +0000 [r748] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Update version - -2011-03-06 17:50 +0000 [r747] Dimi Paun <di...@la...> - - * safekeep/trunk/INSTALL: Better documentation on how to install - from source - -2011-03-06 17:39 +0000 [r746] Dimi Paun <di...@la...> - - * safekeep/trunk/Makefile, safekeep/trunk/safekeep.spec.in, - safekeep/trunk/INSTALL: Make the 'make install' behave more like - the package install - -2011-03-06 17:23 +0000 [r745] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep.spec.in: Use the abstract name in the - .spec file - -2011-03-06 17:20 +0000 [r744] Dimi Paun <di...@la...> - - * safekeep/trunk/README, safekeep/trunk/INSTALL: Move most - installation related info to the INSTALL file - -2011-03-06 17:18 +0000 [r743] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep.spec.in, safekeep/trunk/INSTALL (added): - Add an INSTALL file based on the README.Fedora file provided by - Frank Crawford <fr...@cr...>. The packaging - explanation is common to all packaged versions of Safekeep, it's - not Fedora specific. - -2011-03-06 17:07 +0000 [r742] Dimi Paun <di...@la...> - - * safekeep/trunk/README: Whitespace - -2011-03-06 17:06 +0000 [r741] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep.spec.in: Frank Crawford - <fr...@cr...> Add missing BuildRequire. - -2011-03-03 16:19 +0000 [r740] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Bail if we can't read the - .ssh/authorized_keys file while deploying keys. - -2011-03-03 16:12 +0000 [r739] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: A bit cleaner error message when we - can't get to the authorized_keys file. - -2011-03-03 15:58 +0000 [r738] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Oliver Henshaw - <oli...@gm...> The 'authtext' caller can now use the - output from call() without any further processing, and the - 'output' caller needs only minor changes in preparation. - -2011-03-03 15:57 +0000 [r737] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Oliver Henshaw - <oli...@gm...> do_spawn wrongly returned stdout as a - multi-line string, rather than the array of strings most callers - were expecting. One caller was improperly converted from direct - subprocess use to the call() wrapper, so its output is joined to - one long string as a minimal fix. - -2011-03-03 15:56 +0000 [r736] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Oliver Henshaw - <oli...@gm...> Only check the caller that could be - null. - -2010-11-29 05:52 +0000 [r735] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Use trickle in a more compatible way - -2010-11-29 04:56 +0000 [r734] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Fix the interpretation of the status - during the call(). Given up on explicit shell invokation when - doing keys management. Better display during debug (when invoking - external commands) - -2010-11-29 04:32 +0000 [r733] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Avoid NPE - -2010-11-29 04:29 +0000 [r732] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Hide output when trying an external - command - -2010-11-29 04:26 +0000 [r731] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Avoid errors when ionice is an integer - -2010-11-29 04:19 +0000 [r730] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Do not die if we can't set effective - UID, just issue a warning - -2010-11-29 04:16 +0000 [r729] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: ionice is not necessarily an integer - -2010-11-29 04:15 +0000 [r728] Dimi Paun <di...@la...> - - * safekeep/trunk/Makefile: Fix link to website path - -2010-11-23 04:12 +0000 [r724] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: New version - -2010-11-23 04:11 +0000 [r723] Dimi Paun <di...@la...> - - * safekeep/trunk/ANNOUNCE: Prep announce file - -2010-11-23 04:01 +0000 [r722] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Better identify the client's message - class - -2010-11-23 03:56 +0000 [r721] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep.spec.in: Update changelog - -2010-11-23 01:38 +0000 [r720] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Proper reporting of client stacktraces - to the server. Fix the invocation of ssh(1) when we don't have - verosity enabled. - -2010-11-23 01:00 +0000 [r719] Dimi Paun <di...@la...> - - * safekeep/trunk/Makefile: Fix SF dir - -2010-11-22 20:47 +0000 [r718] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Silly fixes - -2010-11-22 19:33 +0000 [r717] Dimi Paun <di...@la...> - - * safekeep/trunk/Makefile: Cleanup - -2010-11-22 18:59 +0000 [r716] Dimi Paun <di...@la...> - - * safekeep/trunk/Makefile: Bunch of changes to the build procedure - -2010-11-22 05:02 +0000 [r715] Dimi Paun <di...@la...> - - * safekeep/trunk/Makefile: More SF automation - -2010-11-22 04:32 +0000 [r713] Dimi Paun <di...@la...> - - * safekeep/trunk/Makefile: Add support for deploying to SF - -2010-11-22 03:54 +0000 [r712] Dimi Paun <di...@la...> - - * safekeep/trunk/ANNOUNCE: Prep ANNOUNCE - -2010-11-22 02:05 +0000 [r711] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep.spec.in: Prep release - -2010-11-22 02:03 +0000 [r710] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Add back the Python 2.2 compatibilty - hacks - -2010-11-21 20:10 +0000 [r709] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Fix the fallback for the subprocess - module, use it when available - -2010-11-21 20:01 +0000 [r708] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Add working support for reporting - exceptions that happen on the client side - -2010-11-21 19:32 +0000 [r707] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Warn if ionice is not available - -2010-11-21 19:28 +0000 [r706] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Clean up, fix typo - -2010-11-21 19:09 +0000 [r704] Dimi Paun <di...@la...> - - * safekeep/trunk/doc/safekeep.conf.txt, safekeep/trunk/safekeep, - safekeep/trunk/safekeep.conf: Add support for ionice(1) - -2010-11-19 22:05 +0000 [r703] Dimi Paun <di...@la...> - - * safekeep/trunk/doc/safekeep.conf.txt, safekeep/trunk/safekeep, - safekeep/trunk/safekeep.conf: By default, run safekeep as niced - -2010-11-19 19:16 +0000 [r702] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: First cut at a decent fallback for the - subprocess module - -2010-11-19 18:50 +0000 [r701] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Use our abstraction instead - -2010-11-19 18:46 +0000 [r700] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep-test: Somehow newer rdiff-backups removes - all write permission on some of the directories, and - shutil.rmtree() cannot deal with that correctly. - -2010-11-19 17:58 +0000 [r699] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: A few silly typos - -2010-11-19 17:17 +0000 [r698] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Cleanup error handling - -2010-11-19 17:01 +0000 [r697] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: We have to deal with strings here - -2010-11-19 16:59 +0000 [r696] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Better handle errors in case things go - really bad - -2010-11-19 16:50 +0000 [r695] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: More cleanup of the subprocess usage - -2010-11-19 16:44 +0000 [r694] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Cleanup - -2010-11-19 16:43 +0000 [r693] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Auto "shell" detection: if the command - is a string, it will be executed via the shell, otherwise it will - be executed directly. - -2010-11-19 16:36 +0000 [r692] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Typo - -2010-11-19 16:35 +0000 [r691] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Get rid of the direct subprocess call. - -2010-11-19 16:22 +0000 [r690] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Get rid of a bunch of subprocess calls - -2010-11-19 16:13 +0000 [r689] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Get rid of args_to_list() - -2010-11-19 15:07 +0000 [r688] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Get rid of cmd_run function. - -2010-11-19 14:56 +0000 [r687] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Provide a more expressive function to - call external commands and deal with the standard input/output. - -2010-11-19 14:41 +0000 [r686] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Add ability to capture the output of a - spawned proccess - -2010-11-19 08:57 +0000 [r685] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Avoid subprocess where we can easily - -2010-11-19 08:34 +0000 [r684] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Use the Popen call directly - -2010-11-19 08:30 +0000 [r683] Dimi Paun <di...@la...> - - * safekeep/trunk/ANNOUNCE: Simpler - -2010-11-19 07:34 +0000 [r681] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Make sure we init the var - -2010-11-19 07:32 +0000 [r680] Dimi Paun <di...@la...> - - * safekeep/trunk/ANNOUNCE: Prep release 1.3.0 - -2010-11-19 07:24 +0000 [r679] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep.spec.in, safekeep/trunk/safekeep: Work - around for udev bug - https://bugzilla.redhat.com/show_bug.cgi?id=577798 - -2010-11-19 07:14 +0000 [r678] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep.spec.in, safekeep/trunk/safekeep: Prep - release - -2010-11-19 07:02 +0000 [r677] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Oops, typo - -2010-11-19 06:55 +0000 [r676] Dimi Paun <di...@la...> - - * safekeep/trunk/doc/safekeep.backup.txt, - safekeep/trunk/doc/safekeep.conf.txt, safekeep/trunk/safekeep, - safekeep/trunk/safekeep.conf, - safekeep/trunk/samples/sample.backup: Add precise control of nice - values for both server and client side of things. By default, - safekeep will run now as nice +10 on both sides. However, - existing installs will have to redeploy keys to get this running - on the client side. - -2010-11-19 05:58 +0000 [r675] Dimi Paun <di...@la...> - - * safekeep/trunk/AUTHORS: Ack Frank, he's done a lot of good work - on this one - -2010-02-10 16:06 +0000 [r674] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Bertrand Lecervoisier - <ber...@la...> Use the correct package name. - -2010-02-09 16:01 +0000 [r673] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Don't barf when printing Unicode strings - -2010-02-09 15:45 +0000 [r672] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Use the send() function directly - -2010-02-09 15:40 +0000 [r671] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Correctly wrap the file descriptor into - a file object. - -2010-02-09 15:30 +0000 [r670] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Use extend consistently. Kudos to - Bertrand Lecervoisier <ber...@la...> for finding - this bug. - -2010-01-25 19:30 +0000 [r669] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Use string interpolation instead of - concatenation in most places, to avoid errors when the second arg - is not really a string. - -2009-08-12 18:29 +0000 [r668] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Frank Crawford - <fr...@cr...> * Convert from popen2, etc, to - subprocess module, including changes to process handling * Remove - Python 2.2 compatibility, as subprocess isn't supported * Fix up - the split of do_spawn, spawn and try_to_run to share code * Split - '-u user' into two arguments for mysqldump as required by recent - versions - -2009-08-12 18:22 +0000 [r667] Dimi Paun <di...@la...> - - * safekeep/trunk/Makefile: Invoke asciidoc in unsafe mode, it - outputs too many messages. Thanks go to Jeff Spaleta - <jsp...@gm...> for the suggestion. - -2009-06-04 15:35 +0000 [r666] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Share the popen2 code - -2009-05-21 15:51 +0000 [r663] Dimi Paun <di...@la...> - - * safekeep/trunk/Makefile: Assume we're working on a fully checked - out tree - -2009-05-21 13:54 +0000 [r661] Dimi Paun <di...@la...> - - * safekeep/trunk/TODO: Update TODO - -2009-05-20 22:08 +0000 [r658] Dimi Paun <di...@la...> - - * safekeep/trunk/Makefile: HTML 4 is good enough - -2009-05-20 21:34 +0000 [r656] Dimi Paun <di...@la...> - - * safekeep/trunk/ChangeLog: Update ChangeLog - -2009-05-20 21:22 +0000 [r655] Dimi Paun <di...@la...> - - * safekeep/trunk/ANNOUNCE: Prepare the announcement. - -2009-05-20 20:36 +0000 [r654] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Prep new release - -2009-05-01 06:42 +0000 [r653] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Deh, we have to accept 1 as a status too - -2009-05-01 06:39 +0000 [r652] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Don't strip off the parameters - -2009-05-01 06:37 +0000 [r651] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Fix test - -2009-05-01 06:28 +0000 [r650] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Fix typo - -2009-05-01 06:26 +0000 [r649] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: These may end up being ints afterall - -2009-05-01 06:25 +0000 [r648] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep.conf: Fix the names of the bandwidth - limiting settings - -2009-04-30 17:26 +0000 [r647] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep.spec.in: Update changelog - -2009-04-30 17:24 +0000 [r646] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Bryan Talbot <bt...@ae...> - Avoid concatenating non-strings to strings. - -2009-03-30 06:24 +0000 [r643] Dimi Paun <di...@la...> - - * safekeep/trunk/Makefile: Fix SF deployment. - -2009-03-30 06:11 +0000 [r641] Dimi Paun <di...@la...> - - * safekeep/trunk/ChangeLog: Update ChangeLog - -2009-03-30 06:10 +0000 [r640] Dimi Paun <di...@la...> - - * safekeep/trunk/ANNOUNCE: Prep the ANNOUNCE file - -2009-03-30 06:01 +0000 [r639] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep.spec.in, safekeep/trunk/safekeep: Pre - release - -2009-03-16 15:05 +0000 [r638] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep.spec.in: Update changelog - -2009-03-16 15:05 +0000 [r637] Dimi Paun <di...@la...> - - * safekeep/trunk/doc/safekeep.backup.txt, safekeep/trunk/safekeep, - safekeep/trunk/samples/sample.backup: Frank Crawford - <fr...@cr...> Rework the handling of device files, - fifos and sockets as data attributes. Now special files are by - default included, unless explicitely excluded. A bunch of - spelling fixes sprinkled throughout. - -2009-03-15 14:52 +0000 [r636] Dimi Paun <di...@la...> - - * safekeep/trunk/debian/safekeep-server.docs, - safekeep/trunk/debian/safekeep-common.docs: Fix the DEB packages - for the new samples/ dir. - -2009-03-15 14:50 +0000 [r635] Dimi Paun <di...@la...> - - * safekeep/trunk/samples/client-script-sample.sh (added), - safekeep/trunk/doc/client-script-sample.sh (removed), - safekeep/trunk/safekeep.spec.in, safekeep/trunk/samples (added), - safekeep/trunk/sample.backup (removed), - safekeep/trunk/samples/sample.backup (added): Move the samples to - a separate directory. - -2009-03-14 21:17 +0000 [r634] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep.spec.in: Update changelog - -2009-03-14 21:14 +0000 [r633] Dimi Paun <di...@la...> - - * safekeep/trunk/doc/safekeep.backup.txt, - safekeep/trunk/doc/client-script-sample.sh (added), - safekeep/trunk/safekeep.spec.in, - safekeep/trunk/debian/safekeep-common.docs, - safekeep/trunk/safekeep, safekeep/trunk/sample.backup: Frank - Crawford <fr...@cr...> Implements the discussion of - invoking an external script on the client side, during a backup - being run. - -2009-03-01 06:17 +0000 [r632] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep.spec.in: Update changelog - -2009-03-01 06:16 +0000 [r631] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Frank Crawford - <fr...@cr...> Fix serious typo. - -2009-02-01 17:18 +0000 [r630] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Frank Crawford - <fr...@cr...> Avoid errors when dealing with mounts - containing spaces. - -2009-01-13 05:11 +0000 [r629] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Frank Crawford - <fr...@cr...> Don't send out empty emails. - -2008-11-19 20:42 +0000 [r628] Dimi Paun <di...@la...> - - * safekeep/trunk/doc/safekeep.backup.txt, - safekeep/trunk/doc/safekeep.conf.txt, - safekeep/trunk/safekeep.conf: Document the new bandwidth limiting - feature. - -2008-11-19 19:33 +0000 [r627] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Fix a few typos - -2008-11-19 19:21 +0000 [r626] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep.spec.in: Update ChangeLog - -2008-11-19 19:19 +0000 [r625] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Frederic Bourqui <fbo...@ya...> - Recover escaped dashes ('-'). - -2008-11-19 19:05 +0000 [r624] Dimi Paun <di...@la...> - - * safekeep/trunk/doc/safekeep.backup.txt, - safekeep/trunk/safekeep.spec.in, safekeep/trunk/safekeep: Allow - passing the pgpasswd to PostgreSQL as well. - -2008-11-19 18:40 +0000 [r623] Dimi Paun <di...@la...> - - * safekeep/trunk/doc/safekeep.backup.txt, - safekeep/trunk/safekeep.spec.in, safekeep/trunk/safekeep: Add - pass-through options for the DB dump command - -2008-11-19 18:16 +0000 [r622] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep.spec.in, safekeep/trunk/safekeep, - safekeep/trunk/TODO: First cut at implementing bandwidth limiting - based on trickle. - -2008-11-19 16:39 +0000 [r621] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep.spec.in, safekeep/trunk/safekeep.conf: By - default, run safekeep with nice +10 on the server side - -2008-11-19 16:37 +0000 [r620] Dimi Paun <di...@la...> - - * safekeep/trunk/doc/safekeep.conf.txt, - safekeep/trunk/safekeep.spec.in, safekeep/trunk/safekeep, - safekeep/trunk/TODO: Run ssh/rdiff through nice so we can control - the load better on the server. - -2008-11-19 15:05 +0000 [r619] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep.spec.in, safekeep/trunk/TODO: Remove - implemented items - -2008-11-19 14:59 +0000 [r618] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Do not compress the SSH transport. This - places significantly higher load on the system, and it's not - likely to be useful as it is handled by rdiff-backup anyway. - -2008-11-19 14:58 +0000 [r617] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Add SSH verbosity control - -2008-11-19 14:19 +0000 [r616] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Add -C to the PG dumps. - -2008-10-16 16:14 +0000 [r615] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep.spec.in: Update changelog - -2008-10-16 16:14 +0000 [r614] Dimi Paun <di...@la...> - - * safekeep/trunk/TODO: Update TODO. - -2008-10-14 22:07 +0000 [r613] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Fix dopey MySQL dump. - -2008-10-07 20:33 +0000 [r609] Dimi Paun <di...@la...> - - * safekeep/trunk/ANNOUNCE: Update list of supported Fedoras - -2008-10-07 19:58 +0000 [r605] Dimi Paun <di...@la...> - - * safekeep/trunk/ChangeLog: Update ChangeLog - -2008-10-07 19:57 +0000 [r604] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep.spec.in: Update RPM changelog - -2008-10-07 19:55 +0000 [r603] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: New release. - -2008-10-07 19:54 +0000 [r602] Dimi Paun <di...@la...> - - * safekeep/trunk/ANNOUNCE: Prepare the ANNOUNCE file for the - release - -2008-10-07 19:51 +0000 [r601] Dimi Paun <di...@la...> - - * safekeep/trunk/TODO: Update TODO. - -2008-10-07 04:41 +0000 [r600] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Frank Crawford - <fr...@cr...> Modified default options for - special-file exclusions. - -2008-10-07 04:40 +0000 [r599] Dimi Paun <di...@la...> - - * safekeep/trunk/doc/safekeep.backup.txt, safekeep/trunk/safekeep: - Add support for providing the password for the DB user used for - the dump. - -2008-07-17 23:56 +0000 [r598] Dimi Paun <di...@la...> - - * safekeep/trunk/doc/safekeep.backup.txt: Use the default version - to avoid copy&paste problems. - -2008-07-17 19:00 +0000 [r597] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Rework a bit the options processing such - that generic rdiff-backup options don't affect the behaviour of - the 'special-files' option. - -2008-07-17 18:52 +0000 [r596] Dimi Paun <di...@la...> - - * safekeep/trunk/doc/safekeep.backup.txt, safekeep/trunk/safekeep: - Frank Crawford <fr...@cr...> * Added options block - in backup configuration file. * Added option to include - special-files, i.e. device files, fifos and sockets. Default is - to exclude these files. * Added option to allow inclusion of - arbitrary rdiff-backup command. * Updated relevant documentation. - -2008-06-27 12:55 +0000 [r595] Dimi Paun <di...@la...> - - * safekeep/trunk/TODO: Update TODO - -2008-06-27 12:54 +0000 [r594] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Frank Crawford - <fr...@cr...> * Loosen restrictions on running - --server --cleanup so no root parts will still execute. * Allow - local rdiff-backup data cleanup to occur even if client is not - accessible. - -2008-03-18 15:51 +0000 [r593] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Frank Crawford - <fr...@cr...> * Patch client name output for --list - --parsable-output option. - -2008-03-18 15:47 +0000 [r592] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep, safekeep/trunk/doc/safekeep.txt: Frank - Crawford <fr...@cr...> * Added a cleanup option to - client and server modes to remove safekeep LVM snapshots and - mounts after a crash or problem. * Added new communications tag - "SCRUB" to do a full remote cleanup. * Added a warning if there - is a mismatch in the communications protocol minor level. * - Append specific paths (/sbin, /usr/sbin and /usr/local/sbin) to - the client path when run in cleanup mode, to cover any path - issues. * Fixed a couple of issues with pass client exceptions - back to the server, and strip off excess newlines. * Add test and - abort run on client if there are any existing safekeep LVM - snapshots. - -2008-03-01 22:34 +0000 [r591] Dimi Paun <di...@la...> - - * safekeep/trunk/Makefile: We don't need to rebuild docs at install - time, we do that at release time now. - -2008-02-26 21:07 +0000 [r584] Dimi Paun <di...@la...> - - * safekeep/trunk/ANNOUNCE: Fix URLs - -2008-02-26 20:48 +0000 [r582] Dimi Paun <di...@la...> - - * safekeep/trunk/ChangeLog: Update ChangeLog - -2008-02-26 20:48 +0000 [r581] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Update version. - -2008-02-26 20:46 +0000 [r580] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep.spec.in: Update .spec file. - -2008-02-26 18:18 +0000 [r579] Dimi Paun <di...@la...> - - * safekeep/trunk/ANNOUNCE: Prepare the ANNOUNCE file for the - release. - -2008-02-25 01:03 +0000 [r578] Dimi Paun <di...@la...> - - * safekeep/trunk/Makefile: Build docs for build. - -2008-02-25 00:57 +0000 [r577] Dimi Paun <di...@la...> - - * safekeep/trunk/doc/safekeep.backup.txt, safekeep/trunk/TODO: - Clarify snapshot usage. - -2008-02-24 16:53 +0000 [r576] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep, safekeep/trunk/TODO: More portable way - of invoking python, as suggested by Igor Klingen. This fixes it - for FreeBSD. - -2008-02-24 16:49 +0000 [r575] Dimi Paun <di...@la...> - - * safekeep/trunk/doc/safekeep.backup.txt, safekeep/trunk/safekeep, - safekeep/trunk/doc/safekeep.txt: Frank Crawford - <fr...@cr...> This adds the mode --list, and options - which correspond with rdiff-backup options, i.e. --increments - (equiv --list-increments) - the default, --sizes (equiv - --list-increment-sizes), --changed=DATE (equiv - --list-changed-since), and --at-time=DATE (equiv --list-at-time). - It also adds an option which disables email (--noemail) as when - used interactively it isn't worth generating email messages. - -2008-02-24 16:42 +0000 [r574] Dimi Paun <di...@la...> - - * safekeep/trunk/TODO: Update TODO - -2008-02-24 16:42 +0000 [r573] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Frank Crawford - <fr...@cr...> * Fixed failure when mount table has - extra options. * Tear down FS snapshots in reverse order to the - setup order. * Load the LVM snapshot module, in case it is not - already loaded. * Fixed a minor spelling mistake in an assert - message. - -2007-11-07 15:35 +0000 [r572] Dimi Paun <di...@la...> - - * safekeep/trunk/TODO: Update TODO. - -2007-11-07 15:16 +0000 [r571] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Bit clearer snapshot handling. - -2007-11-07 15:03 +0000 [r570] Dimi Paun <di...@la...> - - * safekeep/trunk/TODO: Update TODO. - -2007-11-07 15:01 +0000 [r569] Dimi Paun <di...@la...> - - * safekeep/trunk/Makefile, safekeep/trunk/safekeep.spec.in, - safekeep/trunk/debian/control, safekeep/trunk/TODO: Build docs at - distribution time to remove build-time dependency on asciidoc 6, - which requires python 2.3. These components are not readily - available on older system, making it impossible for packagers to - provide ready-make packages for distros such as RHEL3. Based on a - suggestion from Dag Wieers <da...@wi...>. - -2007-11-07 14:54 +0000 [r568] Dimi Paun <di...@la...> - - * safekeep/trunk/Makefile: Make uses $() not ${} - -2007-11-07 14:52 +0000 [r567] Dimi Paun <di...@la...> - - * safekeep/trunk/TODO: More stuff on the wish list - -2007-11-07 14:39 +0000 [r566] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep-test: Update test to be explicit with the - mode - -2007-11-07 14:39 +0000 [r565] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Change version to a devel number - -2007-11-07 14:36 +0000 [r564] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep, safekeep/trunk/TODO, - safekeep/trunk/doc/safekeep.txt: Always require specification of - the operation mode, based on suggestion from Gert - <ger...@ta...>. - -2007-11-07 14:21 +0000 [r563] Dimi Paun <di...@la...> - - * safekeep/trunk/TODO: Update TODO with feedback from users. - -2007-11-07 14:17 +0000 [r562] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Future import must come first. - -2007-11-07 14:15 +0000 [r561] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Provide Python 2.2 compatibility based - on a suggestion from Gert <ger...@ta...>. - -2007-10-19 17:24 +0000 [r558] Dimi Paun <di...@la...> - - * safekeep/trunk/Makefile: We have to upload the tarball too to SF. - -2007-10-19 17:17 +0000 [r557] Dimi Paun <di...@la...> - - * safekeep/trunk/Makefile: Automate SF uploading too. - -2007-10-19 17:10 +0000 [r556] Dimi Paun <di...@la...> - - * safekeep/trunk/Makefile: Add simple deploy target to deploy RPMs - to YUM repo - -2007-10-19 16:50 +0000 [r554] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep.spec.in, safekeep/trunk/ChangeLog: Update - ChangeLog - -2007-10-19 16:47 +0000 [r553] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep, safekeep/trunk/ANNOUNCE: Prepare for - release 1.0.3. - -2007-10-19 16:38 +0000 [r552] Dimi Paun <di...@la...> - - * safekeep/trunk/Makefile: Add target to deploy latest docs to - website - -2007-10-12 21:17 +0000 [r550] Stelian Pop <st...@la...> - - * safekeep/trunk/LICENSE, safekeep/trunk/safekeep: Fix the - copyright notices. - -2007-10-09 11:44 +0000 [r549] Stelian Pop <st...@la...> - - * safekeep/trunk/safekeep: Give a clear backup status on job end - -2007-10-09 11:44 +0000 [r548] Stelian Pop <st...@la...> - - * safekeep/trunk/safekeep: Better error handling and logging in - spawn() - -2007-10-09 11:43 +0000 [r547] Stelian Pop <st...@la...> - - * safekeep/trunk/safekeep, safekeep/trunk/doc/safekeep.txt: - Implement --force to handle the unexpected. - -2007-09-08 06:06 +0000 [r546] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep.spec.in: Remove macro from comments, it - gets expanded in there otherwise. - -2007-09-07 16:45 +0000 [r544] Dimi Paun <di...@la...> - - * safekeep/trunk/ChangeLog: Update ChangeLog - -2007-09-07 16:40 +0000 [r543] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep.spec.in, safekeep/trunk/safekeep, - safekeep/trunk/ANNOUNCE: Prepare for 1.0.2. - -2007-09-07 03:15 +0000 [r542] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep.spec.in: Remove references to - %{PACKAGE_VERSION}, follow the Fedora guidelines closer. - -2007-09-07 03:12 +0000 [r541] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep.spec.in: Provide default attr for all - packages. - -2007-09-07 03:11 +0000 [r540] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep.spec.in: Clarify the licensing in .rpm - package - -2007-09-07 03:09 +0000 [r539] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep.spec.in: We don't need to include AUTHORS - COPYING LICENSE multiple times, keeping them in -common is - enough. - -2007-09-07 03:08 +0000 [r538] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep.spec.in: More acceptable SF link - -2007-06-17 23:26 +0000 [r533] Dimi Paun <di...@la...> - - * safekeep/trunk/ANNOUNCE: We now support Fedora 7 too. - -2007-06-17 22:47 +0000 [r532] Dimi Paun <di...@la...> - - * safekeep/trunk/Makefile: Tiny fix for Fedora 7 - -2007-06-17 22:45 +0000 [r531] Dimi Paun <di...@la...> - - * safekeep/trunk/Makefile: Make the tag fully automatic - -2007-06-17 22:38 +0000 [r529] Dimi Paun <di...@la...> - - * safekeep/trunk/ChangeLog: Update ChangeLog - -2007-06-17 22:37 +0000 [r528] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Update version to 1.0.1 - -2007-06-17 22:36 +0000 [r527] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep.spec.in, safekeep/trunk/ANNOUNCE: Prepare - announcement for version 1.0.1. - -2007-06-11 04:00 +0000 [r526] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep-test: Add automatic release detection, - for proper Fedora 7 support. - -2007-06-11 00:41 +0000 [r525] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep-test: Remove support for Fedora Core 5, - add support for Fedora 7 and CentOS 5 - -2007-06-10 23:02 +0000 [r524] Dimi Paun <di...@la...> - - * safekeep/trunk, safekeep/trunk/safekeep-test: Adjust the test to - support also Fedora 7, which includes the distro id automatically - in the generated rpm names. - -2007-06-08 22:11 +0000 [r523] Dimi Paun <di...@la...> - - * safekeep/trunk/Makefile: Collect releases in the releases/ dir. - -2007-06-08 22:02 +0000 [r522] Dimi Paun <di...@la...> - - * safekeep/trunk/Makefile: Account for FC7 adding the distro id - (.f7) to the RPM name. - -2007-06-08 21:58 +0000 [r521] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep.spec.in: Make sure we don't override - user's configuration - -2007-06-08 21:55 +0000 [r520] Dimi Paun <di...@la...> - - * safekeep/trunk/debian/rules, safekeep/trunk/safekeep.spec.in: - Move the man pages for .backup and .conf to the server package. - -2007-06-08 21:49 +0000 [r519] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep.spec.in: Bit nicer gecos field. - -2007-06-08 20:38 +0000 [r518] Dimi Paun <di...@la...> - - * safekeep/trunk/debian/safekeep-server.postinst, - safekeep/trunk/Makefile, safekeep/trunk/safekeep.spec.in: Remove - configuration migration code, it shouldn't be necessary anymore - now that we reached 1.0. Besides it triggers rpm-lint errors. - -2007-06-08 19:46 +0000 [r517] Dimi Paun <di...@la...> - - * safekeep/trunk/debian/safekeep-server.docs, - safekeep/trunk/safekeep.spec.in: Do not package safekeep-test, - it's useful only during development, and creates all sort of - rpm-lint errors. - -2007-05-29 04:30 +0000 [r516] Dimi Paun <di...@la...> - - * safekeep/trunk/Makefile: Do not complain if we can't figure out - the SVN root - -2007-05-29 04:24 +0000 [r515] Dimi Paun <di...@la...> - - * safekeep/trunk/Makefile: Do not complain if .rpmmacros doesn't - exist. - -2007-05-28 23:58 +0000 [r514] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep.spec.in: We no longer need chsh(1). - -2007-05-28 15:46 +0000 [r513] Dimi Paun <di...@la...> - - * safekeep/trunk/debian/safekeep-server.postinst, - safekeep/trunk/safekeep.spec.in: We no longer need to have a - working shell for the safekeep user. Better from a security - perspective. - -2007-05-28 15:39 +0000 [r512] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Explicitely specify the shell to be used - for running the command, in case the default shell is not usable. - Suggested by Jeff Spaleta in order to avoid having a valid shell - for the safekeep account. - -2007-05-27 14:53 +0000 [r511] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep.spec.in: Create the safekeep user - following the Fedora policy: - http://fedoraproject.org/wiki/PackagingDrafts/UsersAndGroups - -2007-05-27 14:48 +0000 [r510] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep.spec.in: Explicitely add the group, as - per the Fedora policy: - http://fedoraproject.org/wiki/PackagingDrafts/UsersAndGroups The - rationale is: We want to invoke groupadd explicitly instead of - relying on useradd to create the group for us. This is because - useradd alone would fail if the group it tries to create already - existed. - -2007-05-27 14:45 +0000 [r509] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep.spec.in: Use abstract paths - -2007-05-27 14:42 +0000 [r508] Dimi Paun <di...@la...> - - * safekeep/trunk/debian/safekeep-server.prerm, - safekeep/trunk/safekeep.spec.in: The Fedora policy states that we - shouldn't delete our user: - http://fedoraproject.org/wiki/PackagingDrafts/UsersAndGroups Here - is the rationale: We never remove users or groups created by - packages. There's no sane way to check if files owned by those - users/groups are left behind (and even if there would, what would - we do to them?), and leaving those behind with ownerships - pointing to now nonexistent users/groups may result in security - issues when a semantically unrelated user/group is created later - and reuses the UID/GID. Also, in some setups deleting the - user/group might not be possible or/nor desirable (eg. when using - a shared remote user/group database). Cleanup of unused - users/groups is left to the system administrators to take care of - if they so desire. - -2007-05-16 14:09 +0000 [r499] Dimi Paun <di...@la...> - - * safekeep/trunk/ChangeLog: Update ChangeLog - -2007-05-16 14:09 +0000 [r498] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Now we're 1.0 - -2007-05-16 14:07 +0000 [r497] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep.spec.in: Update .spec changelog - -2007-05-16 14:06 +0000 [r496] Dimi Paun <di...@la...> - - * safekeep/trunk/ANNOUNCE: Prepare the 1.0 release - -2007-05-16 13:55 +0000 [r495] Dimi Paun <di...@la...> - - * safekeep/trunk/doc/safekeep.backup.txt: Add warning about sharing - repository paths, hopefully this will help people avoid some - nasty situations. - -2007-05-16 13:48 +0000 [r494] Dimi Paun <di...@la...> - - * safekeep/trunk/doc/safekeep.backup.txt: Fix reference to .backup - files - -2007-04-27 05:05 +0000 [r490] Dimi Paun <di...@la...> - - * safekeep/trunk/ChangeLog: Update ChangeLog - -2007-04-27 05:05 +0000 [r489] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Release 0.9.3 is almost ready... - -2007-04-27 05:04 +0000 [r488] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep.spec.in: Update the RPM changelog for - release 0.9.3. - -2007-04-27 05:01 +0000 [r487] Dimi Paun <di...@la...> - - * safekeep/trunk/ANNOUNCE: Prepare the ANNOUNCE file for the - release. - -2007-04-27 04:48 +0000 [r486] Dimi Paun <di...@la...> - - * safekeep/trunk/doc/safekeep.backup.txt, - safekeep/trunk/doc/safekeep.txt: A few more doc tweaks - -2007-04-27 04:44 +0000 [r485] Dimi Paun <di...@la...> - - * safekeep/trunk/doc/safekeep.backup.txt, - safekeep/trunk/doc/safekeep.txt: Eduard Malinschi - <ed...@la...> Clarify the docs for database dumps. - -2007-04-25 07:51 +0000 [r484] Stelian Pop <st...@la...> - - * safekeep/trunk/safekeep: F i x d e b u g p r i n t o u t l i k e - t h i s . - -2007-04-24 13:27 +0000 [r483] Stelian Pop <st...@la...> - - * safekeep/trunk/debian/control: Ubuntu's chsh is part of 'passwd' - package. - -2007-04-23 21:01 +0000 [r482] Stelian Pop <st...@la...> - - * safekeep/trunk/safekeep: Fix the 'one letter per line' email - problem. - -2007-04-21 15:19 +0000 [r481] Dimi Paun <di...@la...> - - * safekeep/trunk/debian/safekeep-server.postinst, - safekeep/trunk/safekeep.spec.in, safekeep/trunk/debian/control: - Switch the default shell for the 'safekeep' account to /bin/bash. - We need it to be able to execute commands as 'safekeep' via - su(1). Also, to help people upgrading, force the shell of already - existing 'safekeep' users to /bin/bash. We can remove this in the - future once we know all old users have upgraded to 0.9.3 or - later. - -2007-03-20 20:40 +0000 [r479] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Force data cleanup in case there have - been multiple backups since the last invocation - -2007-03-16 11:55 +0000 [r478] Stelian Pop <st...@la...> - - * safekeep/trunk/debian/rules: Shell expansion doesn't seem to - happen here for whatever reason, do it manually. - -2007-03-13 18:52 +0000 [r469] Dimi Paun <di...@la...> - - * safekeep/trunk/ChangeLog: Update ChangeLog - -2007-03-13 18:51 +0000 [r468] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Bump the version to 0.9.2 - -2007-03-13 18:41 +0000 [r467] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Make paths absolute only if they exist - -2007-03-13 18:36 +0000 [r466] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep.spec.in, safekeep/trunk/ANNOUNCE: Update - ANNOUNCE and release changelog - -2007-03-13 17:35 +0000 [r465] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep.spec.in: Update RPM changelog - -2007-03-13 06:25 +0000 [r464] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep-test: Use the safekeep user for key - deployment for now, it is messy otherwise - -2007-03-13 05:52 +0000 [r463] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Make sure the paths to the SSH keys are - absolute - -2007-03-13 05:25 +0000 [r462] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Bind / in /mnt/ instead of /tmp/ to - avoid unpleasant situations with cleanup scripts. - -2007-03-13 05:22 +0000 [r461] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep-test: Run the --server and --key mode as - root to test the new user-changing functionality - -2007-03-13 05:20 +0000 [r460] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Fix typo - -2007-03-09 17:48 +0000 [r459] Dimi Paun <di...@la...> - - * safekeep/trunk/Makefile: Cleanup snapshots as well - -2007-03-09 17:40 +0000 [r458] Dimi Paun <di...@la...> - - * safekeep/trunk/Makefile: Fetch the RPMs from the build dirs. - -2007-03-09 16:02 +0000 [r457] Dimi Paun <di...@la...> - - * safekeep/trunk/Makefile: Streamline the make targets to be closer - to the standard ones. - -2007-03-09 15:28 +0000 [r456] Dimi Paun <di...@la...> - - * safekeep/trunk/doc/safekeep.backup.txt, - safekeep/trunk/debian/safekeep-server.postinst, - safekeep/trunk/debian/rules, safekeep/trunk/Makefile, - safekeep/trunk/safekeep-test, safekeep/trunk/safekeep.spec.in, - safekeep/trunk/safekeep, safekeep/trunk/doc/safekeep.txt, - safekeep/trunk/debian/safekeep-server.dirs: Rename - /etc/safekeep/clients.d to /etc/safekeep/backup.d - -2007-03-09 02:35 +0000 [r455] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: More tracing - -2007-03-09 02:21 +0000 [r454] Dimi Paun <di...@la...> - - * safekeep/trunk/debian/rules, safekeep/trunk/safekeep.spec.in: Fix - permissions - -2007-03-09 01:04 +0000 [r453] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Fix typo - -2007-03-09 01:03 +0000 [r452] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep.spec.in, - safekeep/trunk/debian/safekeep-server.dirs: Fix the packages to - include the clients.d dir as well - -2007-03-09 00:33 +0000 [r451] Dimi Paun <di...@la...> - - * safekeep/trunk/doc/safekeep.txt: Fix docs - -2007-03-08 22:44 +0000 [r450] Dimi Paun <di...@la...> - - * safekeep/trunk/TODO: Update TODO - -2007-03-08 22:43 +0000 [r449] Dimi Paun <di...@la...> - - * safekeep/trunk/debian/rules, safekeep/trunk/Makefile, - safekeep/trunk/debian/safekeep-server.docs, - safekeep/trunk/safekeep.spec.in, safekeep/trunk/safekeep.cron, - safekeep/trunk/sample.conf (removed), - safekeep/trunk/safekeep.conf (added): Install a default - safekeep.conf in /etc/safekeep - -2007-03-08 21:46 +0000 [r448] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep-test: Make use of the new config files to - avoid the deprecation warning in tests - -2007-03-08 20:56 +0000 [r447] Dimi Paun <di...@la...> - - * safekeep/trunk/doc/safekeep.backup.txt: Update docs - -2007-03-08 20:53 +0000 [r446] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Look for the client .backup files in the - clients.d directory that is present in the same directory as the - safekeep.conf file. - -2007-03-08 20:35 +0000 [r445] Dimi Paun <di...@la...> - - * safekeep/trunk/doc/safekeep.conf.txt, safekeep/trunk/safekeep, - safekeep/trunk/sample.conf: Add property that controls the data - repo base dir - -2007-03-08 20:27 +0000 [r444] Dimi Paun <di...@la...> - - * safekeep/trunk/doc/safekeep.conf.txt, safekeep/trunk/safekeep, - safekeep/trunk/sample.conf: Instrument the --keys mode to work - with a different backup user. Rename the property to - 'backup.user' instead of just 'user'. - -2007-03-08 03:44 +0000 [r443] Dimi Paun <di...@la...> - - * safekeep/trunk/doc/safekeep.conf.txt, safekeep/trunk/safekeep, - safekeep/trunk/sample.conf: Teach safekeep to switch to a given - user in server mode. Controlled via the 'user' property in - /etc/safekeep/safekeep.conf - -2007-03-07 22:40 +0000 [r442] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep, safekeep/trunk/doc/safekeep.txt: Allow - for the explicit spcification of an identity file during key - management - -2007-03-07 21:28 +0000 [r441] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep, safekeep/trunk/doc/safekeep.txt: - Deprecate the ability to specify client config files on the - command line - -2007-03-07 19:13 +0000 [r440] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep-test: Fix the local test - -2007-03-07 19:13 +0000 [r439] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: We always need a props dict - -2007-03-07 19:07 +0000 [r438] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Look at the default configuration files - only if they exist - -2007-03-07 16:54 +0000 [r437] Dimi Paun <di...@la...> - - * safekeep/trunk/doc/safekeep.txt: Mention the new conf file - -2007-03-07 16:52 +0000 [r436] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep, safekeep/trunk/doc/safekeep.txt: - Deprecate the email options - -2007-03-07 16:28 +0000 [r435] Dimi Paun <di...@la...> - - * safekeep/trunk/doc/safekeep.conf.txt (added), - safekeep/trunk/debian/rules, safekeep/trunk/Makefile, - safekeep/trunk/debian/safekeep-server.docs, - safekeep/trunk/safekeep.spec.in, safekeep/trunk/sample.conf - (added): Add man page for safekeep.conf - -2007-03-07 15:23 +0000 [r434] Dimi Paun <di...@la...> - - * safekeep/trunk/doc/safekeep.backup.txt, - safekeep/trunk/debian/rules, safekeep/trunk/Makefile, - safekeep/trunk/debian/safekeep-server.docs, - safekeep/trunk/safekeep.spec.in, safekeep/trunk/sample.backup - (added), safekeep/trunk/sample.conf (removed): Complete the - renaming of safekeep.conf.txt into safekeep.backup.txt - -2007-03-06 21:15 +0000 [r433] Dimi Paun <di...@la...> - - * safekeep/trunk/doc/safekeep.backup.txt (added), - safekeep/trunk/doc/safekeep.conf.txt (removed), - safekeep/trunk/doc/safekeep.txt: Rename the man page - safekeep.conf to safekeep.backup to match the new naming - convention. Adjust the docs to the new directory structure. - -2007-03-06 21:07 +0000 [r432] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Read the email properties from the - global config file - -2007-03-06 04:52 +0000 [r431] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Add simple Java-like properties parser - -2007-03-06 04:11 +0000 [r430] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Add (partial) support for a global - configuration file: /etc/safekeep/safekeep.conf Allow the - -c/--conf switch to take both global conf file and client conf - files as parameters. - -2007-03-04 20:15 +0000 [r429] Dimi Paun <di...@la...> - - * safekeep/trunk/Makefile: Add migration code to source install as - well - -2007-03-04 20:13 +0000 [r428] Dimi Paun <di...@la...> - - * safekeep/trunk/debian/safekeep-server.postinst, - safekeep/trunk/debian/rules, safekeep/trunk/safekeep.spec.in, - safekeep/trunk/safekeep, - safekeep/trunk/debian/safekeep-server.dirs: Move the client - configuration files in /etc/safekeep/clients.d Change the - extension of client config files to .backup from .client. Provide - automatic migration code for DEB and RPM packages. - -2007-03-04 17:52 +0000 [r427] Dimi Paun <di...@la...> - - * safekeep/trunk/doc/safekeep.txt: Fix restore docs. - -2007-03-04 17:52 +0000 [r426] Dimi Paun <di...@la...> - - * safekeep/trunk/TODO: Update TODO - -2007-02-23 22:23 +0000 [r425] Stelian Pop <st...@la...> - - * safekeep/trunk/safekeep: Do not stop if a single client fails. - Separate the client outputs to ease log reading. - -2007-02-12 06:29 +0000 [r424] Dimi Paun <di...@la...> - - * safekeep/trunk/ANNOUNCE: Small wording fix - -2007-02-12 05:29 +0000 [r420] Dimi Paun <di...@la...> - - * safekeep/trunk/ChangeLog: Update ChangeLog - -2007-02-12 05:28 +0000 [r419] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Up the version to 0.9.1 - -2007-02-12 05:27 +0000 [r418] Dimi Paun <di...@la...> - - * safekeep/trunk/TODO: Update TODO - -2007-02-12 05:07 +0000 [r416] Dimi Paun <di...@la...> - - * safekeep/trunk/TODO, safekeep/trunk/ANNOUNCE (added): dd an - ANNOUNCE file for release 0.9.1 - -2007-02-12 04:36 +0000 [r415] Dimi Paun <di...@la...> - - * safekeep/trunk/README: Add a little intro about the project - -2007-02-12 04:30 +0000 [r414] Dimi Paun <di...@la...> - - * safekeep/trunk/Makefile, safekeep/trunk/README, - safekeep/trunk/TODO: Add a way to install SafeKeep from source. - -2007-02-12 00:40 +0000 [r413] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep.spec.in: "Jeff Spaleta" - <jsp...@gm...> Get RPM into shape for a fedora project - submission. - -2007-02-11 01:17 +0000 [r412] Dimi Paun <di...@la...> - - * safekeep/trunk/TODO, safekeep/trunk/doc/safekeep.txt: More on - include/exclude directives - -2007-02-11 01:07 +0000 [r411] Dimi Paun <di...@la...> - - * safekeep/trunk/README: Update requirements - -2007-02-11 01:03 +0000 [r410] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep.spec.in, safekeep/trunk/TODO: Python 2.2 - is good enough - -2007-02-10 17:00 +0000 [r409] Dimi Paun <di...@la...> - - * safekeep/trunk/TODO: Update TODO - -2007-02-07 20:02 +0000 [r405] Dimi Paun <di...@la...> - - * safekeep/trunk/TODO: Update TODO - -2007-02-07 01:53 +0000 [r404] Dimi Paun <di...@la...> - - * safekeep/trunk/TODO: Update TODO - -2007-02-07 01:42 +0000 [r402] Dimi Paun <di...@la...> - - * safekeep/trunk/TODO, safekeep/trunk/doc/safekeep.txt: Add some - documentation about data restoration - -2007-02-06 16:30 +0000 [r399] Dimi Paun <di...@la...> - - * safekeep/trunk/doc/safekeep.conf.txt: Document the auto dir - creation - -2007-02-05 22:33 +0000 [r398] Dimi Paun <di...@la...> - - * safekeep/trunk/doc/safekeep.conf.txt: Formatting fixes - -2007-02-05 22:18 +0000 [r397] Dimi Paun <di...@la...> - - * safekeep/trunk/TODO: Update TODO - -2007-02-05 22:15 +0000 [r396] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Try to automatically create the data - store dir if it doesn't exist. - -2007-02-05 21:01 +0000 [r395] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: When adding lines to authorized_keys, - always end the last line with a NL - -2007-02-05 18:28 +0000 [r394] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep, safekeep/trunk/doc/safekeep.txt: Avoid - scanning /etc/safekeep.d in non-client mode. - -2007-02-05 06:19 +0000 [r388] Dimi Paun <di...@la...> - - * safekeep/trunk/doc/safekeep.conf.txt: By default, we exclude - non-matching files, which is different from what rdiff-backup - does. So make it more explicit in the documentation. - -2007-02-05 06:13 +0000 [r387] Dimi Paun <di...@la...> - - * safekeep/trunk/doc/safekeep.conf.txt: Correct and clarify where - the data will go by default. - -2007-02-05 06:07 +0000 [r386] Dimi Paun <di...@la...> - - * safekeep/trunk/TODO: Update the TODO - -2007-02-04 05:18 +0000 [r369] Dimi Paun <di...@la...> - - * safekeep/trunk/doc/safekeep.txt: Eduard Malinschi - <ed...@la...> Fix typo. - -2007-02-02 01:16 +0000 [r364] Dimi Paun <di...@la...> - - * safekeep/trunk/Makefile: Fix copy and paste bug - -2007-02-02 01:05 +0000 [r362] Dimi Paun <di...@la...> - - * safekeep/trunk/ChangeLog: Update ChangeLog one more time - -2007-02-02 00:57 +0000 [r361] Dimi Paun <di...@la...> - - * safekeep/trunk/Makefile: Whitespace fix - -2007-02-02 00:53 +0000 [r360] Dimi Paun <di...@la...> - - * safekeep/trunk/doc/safekeep.txt: Add documentation about keys - deployment - -2007-02-02 00:43 +0000 [r359] Dimi Paun <di...@la...> - - * safekeep/trunk/TODO: Update TODO - -2007-02-02 00:40 +0000 [r358] Dimi Paun <di...@la...> - - * safekeep/trunk/ChangeLog: Update ChangeLog - -2007-02-02 00:39 +0000 [r357] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Bump version to 0.9.0 - -2007-02-02 00:36 +0000 [r356] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep-test: Adjust test to match the new - structure used by the repos - -2007-02-02 00:06 +0000 [r355] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep.spec.in: Fix safekeep.conf missing - extension - -2007-02-01 22:18 +0000 [r354] Dimi Paun <di...@la...> - - * safekeep/trunk/doc/safekeep.conf.txt: Finish documenting the - configuration format - -2007-02-01 15:32 +0000 [r353] Dimi Paun <di...@la...> - - * safekeep/trunk/debian/rules, safekeep/trunk/safekeep.spec.in: - Install the daily cron task as 'safekeep', not 'safekeep.cron' to - follow the common practice. - -2007-02-01 04:13 +0000 [r352] Dimi Paun <di...@la...> - - * safekeep/trunk/doc/safekeep.conf.txt: Start documenting the - configuration format - -2007-02-01 03:43 +0000 [r351] Dimi Paun <di...@la...> - - * safekeep/trunk/debian/rules: Keep the file names consistent - between the .deb and .rpm packages. If we decide to rename them, - we'll do so across both formats. - -2007-02-01 03:40 +0000 [r350] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep.spec.in: Repeat the generic description - of the package in all subpackages. - -2007-01-31 23:49 +0000 [r349] Stelian Pop <st...@la...> - - * safekeep/trunk/Makefile: Build DEBs in /tmp to avoid cluttering - the source dir. - -2007-01-31 23:28 +0000 [r348] Stelian Pop <st...@la...> - - * safekeep/trunk/debian/docs (removed), - safekeep/trunk/debian/safekeep-common.dirs (added), - safekeep/trunk/debian/safekeep-server.postinst (added), - safekeep/trunk/debian/rules, - safekeep/trunk/debian/safekeep-server.prerm (added), - safekeep/trunk/debian/safekeep-server.docs (added), - safekeep/trunk/debian/control, - safekeep/trunk/debian/safekeep-common.docs (added), - safekeep/trunk/debian/dirs (removed), - safekeep/trunk/debian/safekeep-client.docs (added), - safekeep/trunk/debian/safekeep-server.dirs (added): Update the - DEB packaging: - split into -server, -client, -common subpackages - - create the 'safekeep' user for the server - install a daily - cron task - etc. - -2007-01-31 20:57 +0000 [r347] Stelian Pop <st...@la...> - - * safekeep/trunk/safekeep.spec.in: Typo. - -2007-01-31 20:06 +0000 [r346] Dimi Paun <di...@la...> - - * safekeep/trunk/doc/safekeep.conf.txt (added), - safekeep/trunk/Makefile, safekeep/trunk/safekeep.spec.in: Add - skeletal man page for the configuration file. - -2007-01-31 19:25 +0000 [r345] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep.spec.in, safekeep/trunk/TODO (added): Add - a TODO file with ideas for the future - -2007-01-31 16:20 +0000 [r344] Dimi Paun <di...@la...> - - * safekeep/trunk/ChangeLog (added): Add a ChangeLog file - -2007-01-31 16:19 +0000 [r343] Dimi Paun <di...@la...> - - * safekeep/trunk/Makefile, safekeep/trunk/doc/users (added): Add - ChangeLog generation support - -2007-01-31 15:55 +0000 [r342] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep.cron: Make the reports look a bit more - interesting. - -2007-01-31 15:21 +0000 [r341] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep.spec.in, safekeep/trunk/safekeep.cron - (added): Install a daily cron task for safekeep - -2007-01-30 19:31 +0000 [r340] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep: Use the regular logging functions to - complain about ignored files - -2007-01-30 19:21 +0000 [r339] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep-test: Make use of the standard safekeep - user instead of inventing our own backup-op user. - -2007-01-30 17:15 +0000 [r338] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep.spec.in: Create the .ssh dir at install - time too - -2007-01-30 16:55 +0000 [r337] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep-test: Fix string interpolation - -2007-01-30 16:27 +0000 [r336] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep-test: Fix installation of packages on the - test boxes - -2007-01-30 15:33 +0000 [r335] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep.spec.in: The new packages superseed the - old ones - -2007-01-30 15:32 +0000 [r334] Dimi Paun <di...@la...> - - * safekeep/trunk/safekeep-test: Make sure the version we expect - ends up being installed - -2007-01-30 15:25 +0000 [r333] Dimi Paun <dimi@la... [truncated message content] |
From: <fcr...@us...> - 2012-02-11 08:07:03
|
Revision: 801 http://safekeep.svn.sourceforge.net/safekeep/?rev=801&view=rev Author: fcrawford Date: 2012-02-11 08:06:57 +0000 (Sat, 11 Feb 2012) Log Message: ----------- Update ChangeLog Modified Paths: -------------- safekeep/trunk/ChangeLog Modified: safekeep/trunk/ChangeLog =================================================================== --- safekeep/trunk/ChangeLog 2012-02-11 07:51:13 UTC (rev 800) +++ safekeep/trunk/ChangeLog 2012-02-11 08:06:57 UTC (rev 801) @@ -1,3 +1,173 @@ +2012-02-11 07:51 +0000 [r800] Frank Crawford <fr...@cr...> + + * safekeep/trunk/safekeep: Readded note about Python 2.2/2.3 + support + +2012-02-11 07:39 +0000 [r799] Frank Crawford <fr...@cr...> + + * safekeep/trunk/safekeep: Fixup up final testing failure + +2012-02-11 06:07 +0000 [r798] Frank Crawford <fr...@cr...> + + * safekeep/trunk/safekeep: Update version for new release + +2012-02-11 06:05 +0000 [r797] Frank Crawford <fr...@cr...> + + * safekeep/trunk/safekeep.spec.in, safekeep/trunk/ANNOUNCE: + Prepared for 1.4.0 release + +2012-02-11 05:57 +0000 [r796] Frank Crawford <fr...@cr...> + + * safekeep/trunk/TODO: Updated TODO with latest ideas + +2012-02-11 05:38 +0000 [r795] Frank Crawford <fr...@cr...> + + * safekeep/trunk/safekeep: Added note about Python 2.2/2.3 support + +2012-01-21 03:10 +0000 [r794] Frank Crawford <fr...@cr...> + + * safekeep/trunk/safekeep: Tie message to specific backup + configuration + +2012-01-20 13:21 +0000 [r793] Frank Crawford <fr...@cr...> + + * safekeep/trunk/safekeep: Suppress duplicate message from client + +2012-01-20 12:25 +0000 [r792] Frank Crawford <fr...@cr...> + + * safekeep/trunk/doc/safekeep.backup.txt, safekeep/trunk/safekeep: + Allow snapshot tag item to take a comma separated list of tags + +2012-01-13 11:47 +0000 [r791] Frank Crawford <fr...@cr...> + + * safekeep/trunk/safekeep: Clean up simple coding issues reported + by pylint + +2012-01-08 00:01 +0000 [r790] Frank Crawford <fr...@cr...> + + * safekeep/trunk/safekeep.cron: Correctly suppress any error + message + +2012-01-02 03:17 +0000 [r789] Frank Crawford <fr...@cr...> + + * safekeep/trunk/safekeep: Corrected test for usable trickle as + reported by Ken Bass + +2012-01-01 07:59 +0000 [r788] Frank Crawford <fr...@cr...> + + * safekeep/trunk/doc/safekeep.backup.txt, safekeep/trunk/safekeep: + Improved coding for script location, including change of default + location to be client first and then server, test of permissions + on server based script and notification of errors and missing + file on the server side. + +2012-01-01 04:58 +0000 [r787] Frank Crawford <fr...@cr...> + + * safekeep/trunk/safekeep: Fix up verbosity_level to allow debug + messages within configuration parsing + +2012-01-01 03:31 +0000 [r786] Frank Crawford <fr...@cr...> + + * safekeep/trunk/safekeep: Better reporting of server configuration + errors, similar to other exception handling + +2012-01-01 03:28 +0000 [r785] Frank Crawford <fr...@cr...> + + * safekeep/trunk/doc/safekeep.backup.txt, safekeep/trunk/safekeep: + Added option to set SSH port for each host as requested by Ken + Bass + +2011-12-30 09:27 +0000 [r784] Frank Crawford <fr...@cr...> + + * safekeep/trunk/doc/safekeep.backup.txt, safekeep/trunk/safekeep: + Add the ability to have the script file on either the client or + the server. Note that it is still only run on the client, just + that for a server located one, a temporary copy is sent to the + client to run. At present, it is designed around passing scripts, + not binaries, as it passes the file line by line. The protocol + version has been bumped to 1.2, due to an addition to rund the + script after it is copied. + +2011-12-30 08:50 +0000 [r783] Frank Crawford <fr...@cr...> + + * safekeep/trunk/safekeep: Only add trailing slash on directory if + it is not already present + +2011-12-30 08:43 +0000 [r782] Frank Crawford <fr...@cr...> + + * safekeep/trunk/doc/safekeep.backup.txt, safekeep/trunk/safekeep: + Added LVM snapshot LV tagging support as requested by Andres + Toomsalu + +2011-12-25 13:40 +0000 [r781] Frank Crawford <fr...@cr...> + + * safekeep/trunk/safekeep.cron: Alexander List <al...@li...> + Typo in safekeep.cron creates file "1" instead of redirecting + stderr to stdout. + +2011-12-07 15:18 +0000 [r780] Dimi Paun <di...@la...> + + * safekeep/trunk/doc/safekeep.backup.txt, + safekeep/trunk/doc/safekeep.conf.txt, + safekeep/trunk/doc/safekeep.txt: Appease ASCIIDOC, provide the + required metadata. + +2011-12-07 03:38 +0000 [r779] Dimi Paun <di...@la...> + + * safekeep/trunk/doc/safekeep.backup.txt: Simpler, less + overwhelming documentation + +2011-12-06 12:04 +0000 [r778] Frank Crawford <fr...@cr...> + + * safekeep/trunk/safekeep: Patch that will correct issues with + performing "mount --rbind / /mnt/safekeep...". Instead of + recursively binding the entire tree it only binds filesystems + that are mounted on "real" devices (i.e. have a device in the + filesystem) and that are not in the exclude list for the backup. + +2011-12-03 02:36 +0000 [r777] Frank Crawford <fr...@cr...> + + * safekeep/trunk/safekeep: Futher updates to cleanup code for + failed backups + +2011-12-02 12:51 +0000 [r776] Frank Crawford <fr...@cr...> + + * safekeep/trunk/safekeep: Joe Steele <jo...@ma...> Maintain + compatibility with Python 2.2 + +2011-11-28 12:38 +0000 [r775] Frank Crawford <fr...@cr...> + + * safekeep/trunk/safekeep: - includes the PID of the creating + safekeep in the snapshot names, - handles the client side + cleanup, if snapshots are left around, - cleans up the backup + files if the client fails, - intentionally block run a "safekeep + --client --cleanup" when other safekeep is running. - clean up of + messages and some control flow, - suppress tracebacks, only + printing them on debug requests, - ensure that the client is + closed before starting some possibly long running server + processes. + +2011-11-28 12:38 +0000 [r774] Frank Crawford <fr...@cr...> + + * safekeep/trunk/Makefile: Changes to work with recent release + +2011-11-20 07:01 +0000 [r769] Frank Crawford <fr...@cr...> + + * safekeep/trunk/doc/users: Add Frank Crawford to list + +2011-11-20 06:25 +0000 [r768] Frank Crawford <fr...@cr...> + + * safekeep/trunk/ChangeLog: Update ChangeLog + +2011-11-20 05:56 +0000 [r767] Frank Crawford <fr...@cr...> + + * safekeep/trunk/safekeep.spec.in, safekeep/trunk/ANNOUNCE, + safekeep/trunk/doc/users: Prep release 1.3.3 + +2011-11-20 05:35 +0000 [r766] Frank Crawford <fr...@cr...> + + * safekeep/trunk/safekeep: Update version + 2011-10-20 14:42 +0000 [r765] Dimi Paun <di...@la...> * safekeep/trunk/safekeep: Frank Crawford This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fcr...@us...> - 2012-02-11 07:51:19
|
Revision: 800 http://safekeep.svn.sourceforge.net/safekeep/?rev=800&view=rev Author: fcrawford Date: 2012-02-11 07:51:13 +0000 (Sat, 11 Feb 2012) Log Message: ----------- Readded note about Python 2.2/2.3 support Modified Paths: -------------- safekeep/trunk/safekeep Modified: safekeep/trunk/safekeep =================================================================== --- safekeep/trunk/safekeep 2012-02-11 07:39:12 UTC (rev 799) +++ safekeep/trunk/safekeep 2012-02-11 07:51:13 UTC (rev 800) @@ -34,8 +34,10 @@ # Python 2.2 compatibility ###################################################################### # There is no guarantee that we'll continue supporting Python 2.2 -# indefinitely, but we make a reasonable effor to do so as long as +# indefinitely, but we make a reasonable effort to do so as long as # it doesn't result in major complication/ugliness. +# Note that some features related to scripting, snapshots and DB backups +# already require Python 2.3. try: True, False This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fcr...@us...> - 2012-02-11 07:39:18
|
Revision: 799 http://safekeep.svn.sourceforge.net/safekeep/?rev=799&view=rev Author: fcrawford Date: 2012-02-11 07:39:12 +0000 (Sat, 11 Feb 2012) Log Message: ----------- Fixup up final testing failure Modified Paths: -------------- safekeep/trunk/safekeep Modified: safekeep/trunk/safekeep =================================================================== --- safekeep/trunk/safekeep 2012-02-11 06:07:15 UTC (rev 798) +++ safekeep/trunk/safekeep 2012-02-11 07:39:12 UTC (rev 799) @@ -34,10 +34,8 @@ # Python 2.2 compatibility ###################################################################### # There is no guarantee that we'll continue supporting Python 2.2 -# indefinitely, but we make a reasonable effort to do so as long as +# indefinitely, but we make a reasonable effor to do so as long as # it doesn't result in major complication/ugliness. -# Note that some features related to scripting, snapshots and DB backups -# already require Python 2.3. try: True, False @@ -995,26 +993,29 @@ send('OK %s, %s' % (PROTOCOL, VERSION)) elif line.startswith('CONFIG'): cfg = do_client_config(line) - if ':' in cfg['script']: - (script_loc, script) = cfg['script'].split(':', 1) - else: - (script_loc, script) = ('client', cfg['script']) - if script_loc == 'server': - if not script_dir: - script_dir = tempfile.mkdtemp(prefix="safekeep-%d-" % current_pid) - script = os.path.basename(script) - (fd, cfg['script']) = tempfile.mkstemp(prefix="%s-" % script, dir=script_dir) - script_file = os.fdopen(fd, 'w') - send('OK %s' % cfg['script']) - elif script_loc == 'client': - cfg['script'] = script - ret = client_side_script('STARTUP', cfg, bdir) - if ret: - send('ERROR Client-side setup script failed: %s' % ret) + if cfg['script']: + if ':' in cfg['script']: + (script_loc, script) = cfg['script'].split(':', 1) else: + (script_loc, script) = ('client', cfg['script']) + if script_loc == 'server': + if not script_dir: + script_dir = tempfile.mkdtemp(prefix="safekeep-%d-" % current_pid) + script = os.path.basename(script) + (fd, cfg['script']) = tempfile.mkstemp(prefix="%s-" % script, dir=script_dir) + script_file = os.fdopen(fd, 'w') + send('OK %s' % cfg['script']) + elif script_loc == 'client': + cfg['script'] = script + ret = client_side_script('STARTUP', cfg, bdir) + if ret: + send('ERROR Client-side setup script failed: %s' % ret) + else: + send('OK') + else: + warn('Unknown script location %s for script %s' % (script_loc, script)) send('OK') else: - warn('Unknown script location %s for script %s' % (script_loc, script)) send('OK') elif line.startswith('SCRIPT'): if do_client_remote_script(script_file, cfg, line): @@ -1259,7 +1260,7 @@ cin.write(cfg['text'] + '\n') cin.flush() remote_script = do_server_getanswer(cout) - if cfg['script'].startswith('server:') and remote_script: + if cfg['script'] and cfg['script'].startswith('server:') and remote_script: local_script = cfg['script'].split(':', 1)[1] if os.path.isfile(local_script): ret = check_script_permissions(local_script) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |