Skip to content
Snippets Groups Projects
CHANGELOG.md 40.2 KiB
Newer Older
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [1.2.0] - 2021-01-21
Jérôme Charaoui's avatar
Jérôme Charaoui committed

### Fixed

- [dup] Fix missing options from config file created with helper (DEBBUG-726119)
## [1.2.0-rc1] - 2021-01-14
Jérôme Charaoui's avatar
Jérôme Charaoui committed
### Added

- [tests] Add a testsuite
- [core] Add `--version` (`-V`) command-line option
- [borg] New config options: `cache_directory`, `sshoptions` (#11310),
  `ignore_missing` and `port`
- [restic] Introduce new handler for the restic backup program
- [sys] Add SystemD and EFI infos to sytem report (#11325)
- [all] Added new config setting `ionicelevel` (DEBBUG-409239)
Jérôme Charaoui's avatar
Jérôme Charaoui committed

### Changed

- [core] Implement non-zero exit codes for main process (#8279)
- [borg] Emit warning if borg returns exit code 1 instead of fail
- [dup] Allow `bandwidthlimit` with `desturl`
- [rsync] Change default ssh key file to RSA in `id_file` (#11315, DEBBUG-976650)
Jérôme Charaoui's avatar
Jérôme Charaoui committed
- [project] Adopt Keep a Changelog format and convert old ChangeLog to markdown
- [project] Moved project group from RiseupLabs to Liberate (#11314)

### Removed

- [core] Support for vservers support has been completely removed
- [rsync] Removed unused config parameter `ssh` (#4379)

### Fixed

- [core] Fix issue with zero-padded integers in when setting (#9397)
- [core] Fix incorrect warning related to day component in when setting
Jérôme Charaoui's avatar
Jérôme Charaoui committed
- [borg] Fix connection test when empty remote directory exists
- [borg] Properly quote create_options setting (#11304)
- [borg] Raise fatal error if includes are missing
- [dup] Test ssh connection when test mode enabled
- [mysql] Fix helper writing incomplete config file (#11272)
- [rsync] Fix initial directory creation in `mirror` and remote `short` modes
- [sys] Fix LUKS version 2 header backup (#11316)
- [sys] Fix dumping non-existent partition tables (#11293, DEBBUG-956206)
Jérôme Charaoui's avatar
Jérôme Charaoui committed
- [sys] Fix error in rc.d info gathering on redhat/centos (##11294)
- [sys] Fix error in sysctl info gathering

## [1.1.0] - 2018-06-29

### backupninja changes

- Add validation check for when parameter. (#640) Thanks to ulrich
  <ulrich@habmalnefrage.de> for the patch.
- Quote output strings passed to logging functions (#11278).
- Ignore files in /etc/backup.d that lack suffix. Thanks to David Gasaway
  <dave@gasaway.org> for the patch.
- Add Vagrantfile to help with testing/release process.

### documentation changes

- Fix typos in README.md and manpages. Thank you, Lintian!
- Improve release process documentation.

### handler changes

#### borg

- Add initial support for the borgbackup program. Thanks to Ben
  <ben@wainei.net> and Thomas Preissler <thomas@preissler.co.uk> for
  contributing patches.

#### dup

- Fix symmetric encryption. (#11274) Thanks to Matthijs Wensveen
  <matthijs.wensveen@gmail.com> for the patch.
- Bail if archive dir doesn't exist. (#11286) Thanks to Hugh Nowlan
  <nosmo@nosmo.me> for the patch.
- Use lsblk instead of sfdisk to get a list of block devices. (#11273)
  Thanks to Romain Dessort <romain@univers-libre.net> for the patch.
- Avoid looking for partitions on zram devices. Thanks to Glandos
  <bugs-0xacab@antipoul.fr> for the patch.
- Support extracting LUKS headers from partitions. Thanks to Lyz
  <lyz@riseup.net> for the patch.

## [1.0.2] - 2017-09-05

### handler changes

#### dsync

- Miscellaneous improvements to this experimental handler.

#### dup

- For local backups, check that the destination directory exists.  Thanks to
  ulrich for the preliminary patch. (#4049)
- Gracefully handle legacy spaces between -o and IdentityFile.
- Don't remove useful signature files with --extra-clean, on duplicity versions
  that have a sane handling of the cache.  Thanks to Alexander Mette
  <mail@amette.eu> for the patch!  (Closes: #6357)
- Fix buggy version comparison. (#6746)
- Support using a different passphrase for the signing key from the one used
  for the encryption key (Closes: DEBBUG-726072).  Thanks to Dominik George
      <nik@naturalnet.de> for the patch!
- Run duplicity in a C locales environment (Closes: DEBBUG-736280).  Thanks to
  Jonathan Dupart <jonathan@dupart.org> for the report, and the initial patch!
- Fix handling of Dropbox access token (Closes: #11260).

#### mysql

- Make "nodata" option compatible with compress=no.
- Fix non-qualified table name extraction. (Closes: #4373)
- Skip dumping information and performance\_schema databasase.  (Closes:

#### rdiff

- Add option to include rdiff-backup output in reports.  Thanks to David
  Gasaway <dave@gasaway.org> for the patch!

#### rsync

- Solve quoting issue with "su". (Closes: DEBBUG-683731, #4019)
- Update increment folder date to avoid ending up with contradictory
  information. (Closes: #3929)
- Force rsync handler run bash at the remote destination.  (Closes:
  #3003)
- Support running in test mode (Closes: #8196).  Thanks to shred for the
  initial patch.

#### sys

- Fix LUKS header backup to properly detect partitions.
- Provide the ability to backup the MBR for every device found, and to backup
  the BIOS (if the flashrom program is installed, and the mainboard is
  supported).
- Add suse to the list of supported OS (#7101).  Thanks to Christian
  Prause <cprause@suse.com> for the patch.
- Fix indentation. Thanks to Jools Wills <jools@oxfordinspire.co.uk> for the
  patch. (Closes: #6802)
- Exclude tmpfs filesystems from df output. (Closes: DEBBUG-745818)

#### tar

- Support test mode and xz compression.  Thanks to Pierre ROUDIER
  <contact@pierreroudier.net> for the patches.

### helper changes

#### rdiff

- Don't give misleading information regarding required fields.  (#4410)
- Support output\_as\_info.  Thanks to David Gasaway <dave@gasaway.org> for the
  patch!

#### sys

- Remove spurious quotes that broke the helper (Closes: #6803).  Thanks
  to Jools Wills <jools@oxfordinspire.co.uk> for the patch.

### backupninja changes

- Indentation fixes, thanks to exobuzz. (#6726)
- Ignore jobs whose filename ends with "~".  Thanks to Mark Janssen
  <mark@sig-io.nl> for the patch.

#### build system changes

- Pass the "foreign" option to AM\_INIT\_AUTOMAKE: README has been renamed to
  README.md.

### documentation changes

- Update INSTALL file to add some missing recommended programs.
- Document release process.
- Merge FAQ content from the Redmine wiki into the one shipped with
  backupninja.
- README.md: reorganize, reformat, and point to the examples configuration
  files.
- INSTALL.md: recommend using packages on Debian and derivatives.
- bandwidthlimit for the dup handler needs to be given in KB/s, and not (as
  wrongly advertised previously) in Kbit/s.  (Closes: #7603)

## [1.0.1] - 2012-06-29

### handler changes

#### rsync

- Issue warnings, not fatal errors, on non-fatal rsync errors.  (#3966)

## [1.0] - 2012-06-15

The "happy birthdays" release!

### handler changes

#### mysql

- Use --skip-events when backing up the performance_schema database.  (Closes:

#### rsync

- Generate excludes command-line snippet the same way as the duplicity handler
  does.
- Run rsync command-line through a shell, so that single-quotes around excludes
  are interpreted (Closes: DEBBUG-677410)

#### sys

- Don't execute /usr/bin/lspci or /sbin/modinfo when $hardware == "no"

### backupninja changes

- Make it clear what lockfile could not be acquired, if any.

## [1.0-rc1] - 2012-05-15

### handler changes

#### dup

- Make the .dup generated by ninjahelper more consistent with example.dup.
- Add support for RackSpace's CloudFiles.  Thanks to Yuval Kogman
  <nothingmuch@woobling.org> for the patch.
- Adapt for new duplicity SSH backend.  Support bandwidthlimit with new
  duplicity, using trickle.  (Closes: DEBBUG-657201)
- Report failure output at error loglevel so that it is emailed (Closes:

#### maildir

- Remove 'loadlimit' parameter - it is not used anywhere.

#### mysql

- Don't attempt to dump performance_schema database (#3741).
- Don't produce empty uncompressed backups (#3820).

#### rdiff-backup

- Use fatal function to report failure of rdiff-backup jobs as such.

#### rysnc

- Fix numericids option (#3691).
- Mangle $rsync_options just afterwards (#3702, #3001).
- Fix metadata rotation.
- Allow disabling rotation or setting 2 days as minimum for backup increments
  in rsync short format (#2107).
- Abort on rsync error (#3692).
- Cleanup orphaned metadata (#3727).
- Use the backup start time and not the time the backup was finished.  (Closes:
  DEBBUG-654192).
- Use 'debug', 'fatal' and 'warning' functions instead of regular echo and exit
  (#3840, #3721).
- Quoting $starttime (#3868).
- Validate created date on long_rotation to avoid too many arguments at
  comparison (#3868).
- Quoting $exclude and $excludes and avoiding a for loop on $exclude to not
  expand wildcards in beforehand (#3882).
- Quote excludes (#3882).
- Changing remaining 'exit' to 'fatal' at rsync handler (#3721).
- Removing duplicated locking support (#3838).
- Documenting rotation parameters at example.rsync (#3891).
- Ensure that a non-zero rsync exit status is caught (#3892).

#### build system changes

- Workaround automake sanity check that would prevent us from installing lib/\*
  into lib/backupninja/. Where else are be supposed to install such files
  anyway?
- Have "make dist" ship handlers/\*.in instead of make results.
- Have "make dist" ship the FAQ.
- Install handlers as pkgdata_DATA, instead of their .in files.

### documentation changes

- Document what features available to .sh jobs (Redmine #1558).

## [0.9.10] - 2011-09-23

### backupninja changes

- Fix email reports, that were broken by the new locking support.

### handler changes

#### dup

- Cleanup: stop supporting duplicity < 0.6.01 (#2538).
- Fix incorrect duplicity version check for keepincroffulls.  Thanks to Olivier
  Berger <oberger@ouvaton.org> for the patch.  (Closes #3443)
  (Closes: DEBBUG-641120)

#### ldap

- Don't install LDAP handler, helper and example configuration file.  Don't
  mention LDAP support in documentation.  Official LDAP support will come back
  once this code has found itself a maintainer. Interested? Get in touch!

#### rsync

- Fixing $rsync_options output when rsync is local (Closes #3001)
  (Closes: DEBBUG-639545)
- Allow 'when = XXX' with spaces (#2769).  Thanks to aihtdikh for the
  patch.

#### sys

- Remove useless and inconsistent executable bit on handler.

### helper changes

#### rdiff

- Fix infinite loop when version inconsistency is detected.  Thanks to Chris
  Lamb <lamby@debian.org> for the patch.  (Closes: DEBBUG-639547)

## [0.9.9] - 2011-05-15

### backupninja changes

- Use locking to avoid running concurrent instances of the same backup action.
  Thanks to Olivier Berger <oberger@ouvaton.org> for the patch.  (Closes:

### handler changes

#### all handlers:

- Stop using "local VAR" outside functions. (Closes: DEBBUG-530647)

#### dup

- Use --tempdir option rather than TMPDIR environment variable.  (Closes
  Roundup bug #598)
- Remove support for duplicity < 0.4.4. Even etch-backports has a newer one.
- Now support remove-all-inc-but-n-full command for duplicity >= 0.9.10 to
  allow removal of increments for older full backups.  Thanks to Olivier Berger
  <oberger@ouvaton.org> for the patch.  (Closes #2492) (Closes:
  DEBBUG-603478)

#### ldap

- Fix reliance on bash for pipefail.

#### mysql

- Fix reliance on bash for pipefail.  Thanks to Sergio Talens-Oliag
  <sto@debian.org> for the patch.  (Closes: DEBBUG-602374)

#### postgresql

- Support various pg_dump formats in addition to pg_dumpall.  Thanks to Jacob
  Anawalt <jlanawalt@gmail.com> for the patch.  (Closes Roundup bug #2534)
- Fix reliance on bash for pipefail.

#### rdiff

- Support reading include/exclude patterns from files using the "include
  @/etc/backup_includes" syntax (Closes Roundup bug #2370). Thanks to ale for
  the patch.

#### rsync

- Fix long rotation.
- Make units clearer (Closes #2737)
- Do arithmetic using bash rather than bc (Closes: DEBBUG-603173)
- Fix hwinfo (Closes: DEBBUG-625501)
- Fix gathering of information about loaded modules: cut is in /usr/bin
  actually.

#### tar

- Install by default. (Closes #2907)

### helper changes

#### dup

- Fix separate signing key usecase. Thanks to Ian Beckwith for the patch.
- Make units clearer (Closes #2737)

#### rdiff

- Generate 4096 bits RSA keys.

#### tar

- Install by default. (Closes #2907)

### documentation changes

- Recommend using 4096 bits RSA keys everywhere.

## [0.9.8.1] - 2010-10-31

### backupninja changes

- Do not error out when no job is configured. Thanks to Jordi Mallach
  <jordi@debian.org> for the patch (Closes: DEBBUG-597684)

### handler changes

#### sys

- Route around broken vgcfgbackup not able to handle multiple VG arguments

## [0.9.8] - 2010-09-12

### backupninja changes

- Added GZIP_OPTS option, defaulting to --rsyncable, so that this option can be
  disabled on systems that don't support it. This also allows to use another
  compression program, such as pbzip2 on SMP machines (Closes Roundup bug
  #2405)

### handler changes

#### sys

- Only run mdadm if RAID devices actually exist (Closes: DEBBUG-572450)

#### dup

- Now default to use --full-if-older-than; see the new "increments" option to
  opt-out or tweak the default (30D) delay between full backups. Thanks a lot
  to Olivier Berger (Closes: DEBBUG-535996)
- Use duplicity's --extra-clean option to get rid of unnecessary old cache
  files when cleaning up. This is enabled when using duplicity 0.6.01 or newer,
  that depends on local caching (Closes: DEBBUG-572721)
- Ignore anything but digits and "." when comparing versions (Closes: DEBBUG-578987)
- Put archive directory (cache) into /var/cache/backupninja/duplicity rather
  than the default /root/.cache/duplicity, unless the user has specified it
  (Closes: 580213)
- Better example.dup documentation. Thanks, Alster!
- Added ftp_password option to securely transmit the FTP password from
  backupninja to duplicity.

#### mysql

- Don't lock tables in the information_schema database (Closes: DEBBUG-587011)
- Fix code logic to make dbusername/dbpassword actually usable (Closes Redmine
  bug #2264)

#### rsync

- Fix lockfile checks. This prevents multiple instances of the same rsync job
  to run in parallel.
- Avoid passing the remote user twice to rsync-over-ssh.

### doc changes

#### manpage

- Fix typo in manpage (Closes: DEBBUG-583778)

#### ldap

- Add ssl option description, fix tls option description (Closes Roundup bug
  #2407)

## [0.9.7] - 2010-01-27

### backupninja changes

- fix bug in reportspace, thanks Dan Garthwaite
- do not assume English locale when using date (Closes: DEBBUG-465837)
- add 'when = manual' option, that can be used in the global config file or in
  a given backup action file. Thanks Tuomas Jormola for the preliminary patch
  (Closes: DEBBUG-511299)
- new reportinfo option: when set, messages sent by handlers with "info" are
  included in the report e-mail (closes DEBBUG-563734)
- reportspace: skip non-directories and places that don't exist on the local
  filesystem (Closes: DEBBUG-536049)
- set BACKUPNINJA_DEBUG when invoked with -d (Closes: DEBBUG-537266)
- Allow form fields input to grow up to 100 chars (Closes: DEBBUG-562249)

### handler changes

#### ldap

- Use gzip's --rsyncable option.
- Use bash pipefail option when needed so that failed dumps are reported as
  such.

#### maildir

- fix location of deleted_on file
- add missing destid_file options to ssh connections
- added sshoptions variable for arbitrary ssh options
- updated example file to include destid_file, destport and sshoptions
- use any subdirectories not just "a" to "z". Thanks Chris Nolan! (#606)

#### mysql

- Options passed to mysqldump are now customizable with the new sqldumpoptions
  configuration variable. Thanks to Chris Lamb for his preliminary patch
  (Closes: DEBBUG-502966)
- Hide 'mysqladmin ping' output, to prevent confusing the user in case mysqld
  is running but the authentication fails, which apparently does not prevent
  mysqldump to work.
- Fix the error message displayed when mysqld is not running: mysqladmin ping
  indeed returns 0 when authentication fails.
- Use gzip's --rsyncable option.
- Quote output filenames to support shell meta-characters in database names.
- Use bash pipefail option when needed so that failed dumps are reported as
  such.

#### pgsql

- Use gzip's --rsyncable option.
- Quote output filenames to support shell meta-characters in database names.
- Use bash pipefail option when needed so that failed dumps are reported as
  such.

#### rdiff

- Fix include/exclude paths with spaces (Closes: DEBBUG-398435)
- Fix confusing error if rdiff-backup cannot be found on remote server.
- Increased element number in include/exclude and vserver ninjahelper interface

#### sys

- New luksheaders option (default=disabled) to backup the Luks header of every
  Luks device.
- New lvm option (default=disabled) to backup LVM metadata for every detected
  volume group.
- Backup dmsetup info as well, for easier restoring of Luks headers.

#### dup

- Fixed bandwidthlimit syntax error. Thanks to Ian Beckwith for the patch.
- Send duplicity output to debug line by line instead of as a whole at one time
  (Closes: DEBBUG-536360)
- Report duplicity output as "info" so that it can be included in report e-mail
  when reportinfo is on (Closes: DEBBUG-563734)
- Fix include/exclude paths with spaces
- Support backups to Amazon S3 buckets, thanks to stefan for the patch.

### helper changes

#### dup

- Do not propose to exclude /home/\*/.gnupg twice anymore (Closes: DEBBUG-563044)

### autotools

- Added the stat command to the automagically replaced ones, hoping it will
  help supporting \*BSD some day.

## [0.9.6] - 2008-07-21

### backupninja changes

- fix bug in cstream definition, thanks Jamie McClelland
- Allow the entire backup run to be halted by an action, thanks to Matthew
  Palmer (Closes: DEBBUG-455836)
- Fixed tr construct reporting a warning (Closes: DEBBUG-452669)

### lib changes

#### vserver

- added vservers_running function

#### tools

- mktemp is now required to run backupninja, removed less secure fall-back if
  mktemp did not exist on the system

### handler changes

#### dup

- General cleanup
- Better support for new duplicity (>= 0.4.4) command line syntax: run
  remove-older-than when $keep is not set to yes (Closes: DEBBUG-458816), and run
  "duplicity cleanup" before any other duplicity command; both only trigger a
  warning on failure, since they should not stop backups from being done. Also
  migrated full/incremental backup switch to the new syntax.
- Support every duplicity-supported transport with new configuration option
  desturl (Closes: DEBBUG-483712, DEBBUG-346040, Trac#2).
- Actually allow to backup only VServers, by relaxing $include test.
- Set secure permissions on tmpdir when creating it.

#### ldap

- support HDB backend just as the BDB one, and make message clearer when no
  supported backend is found (Closes: DEBBUG-476910)

#### rdiff

- Fixed ignore_version default value missing
- Add patch from Matthew Palmer to rdiff handler to incorporate sshoptions into
  options via remote-schema not already specified (Closes: DEBBUG-424639)

#### wget

- New handler from rhatto designed to incrementally pull content from a website
  to a local folder, based on the rsync handler

#### maildir

- fixed bug where maildirs that start with a number were skipped
- make maildir helper look in every subdirectory of the source directory for
  maildirs, rather than just looking in the directories [a-zA-Z0-9], thanks for
  the patch from chris@cenolan.com (Trac#43).
- make deleted maildirs record the date they were deleted
- add destid_file configuration option to enable you to specify an alternate
  ssh public key authentication file (defaulting to /root/.ssh/id_rsa) pgsql,
  mysql, svn, sys:
- use new vservers_running function from lib/vserver (factorization++)

#### sys

- update for 2.6 kernels: use /proc/kallsyms instead of /proc/ksyms (Closes:
  Trac#39)
- support selection of VServers to run on, in the same way as in the dup
  handler, with the new vsnames configuration option ; (Closes: Trac#45)
- add support for capturing the package debconf selection states using
  debconf-get-selections
- fixed catifexec function to actually work, also now passes the arguments
  given to catifexec() to the called command (Thanks John Hallam!)
- Added more robust software RAID information capture by running mdadm -Q
  --detail /dev/md?\* because some people may have empty mdadm.conf files
  (Thanks to John Hallam).

#### trac

- stop failing on all the trac backups if just one fails, this means removing
  the temporary trac backup directories if they fail

#### makecd

- updated handler for new toolset (genisoimage and wodim)

## [0.9.5] - 2007-12-02

### backupninja changes

- Fixed checks on configuration files permissions, since the patch applied to
  fix DEBBUG-370396 broke this, especially for configuration files created with
  permissions 000 by an older ninjahelper version.
- Enhanced portability for other platforms
- Added quoting because it was needed to prevent shell expansion, broking the
  toint function sometimes (Closes: Trac#11)
- Fixed reportspace option (Closes: Trac#10)
- Fixed ldap handler not recognizing database suffix (Closes: Trac#28)

### handler changes

#### dup

- Support duplicity >= 0.4.3 invocation syntax (--ssh-command option is not
  supported anymore) (Closes: DEBBUG-447425)
- New tmpdir configuration option, very useful in case duplicity tends to fill
  up /tmp.

#### ldap

- Fixed shell command quoting issues, missing 'then' clauses, cleaned up
  compress=yes to be less redundant and not create empty uncompressed file
  (Closes: DEBBUG-394935)
- Fixed ninjahelper to properly set compress option, standardized on yes/no
  instead of on/off
- Fixed problem that caused combination of slapcat and compress to not work
  together (Closes: Trac#29)
- Applied patch from romain.tartiere@healthgrid.org to fix the SSL/TLS options
  to be correct, also set TLS to be the default over SSL (Closes: Trac#13)

#### maildir

- Added an examples file (Closes: Trac#23)
- Applied patch from Anarcat that fixes the cp/mkdir calls to not use GNU
  coreutils options, as well as some bashisms (Closes: Trac#24)
- Fix test mode (Closes: Trac#25)

#### mysql

- Fixed case where odd combination of configuration options caused sqldump
  backups to get overwritten with an empty file (Closes: DEBBUG-402679)
- Added 'nodata' option to enable you to specify tables that you want to omit
  the data from a backup, but still backup the table structure. This is very
  useful in cases where tables contain large amounts of cache data. See the
  example.mysql for options, thanks Daniel Bonniot (Closes: DEBBUG-408829)
- Enhance code for selecting databases by asking MySQL not to give us the
  header (-N), to not draw pretty boxes around the output (-B), send the query
  via -e instead of a pipe and ensure MySQL listens to -B. Thanks to Matthew
  Palmer (Closes: DEBBUG-452039).

#### pgsql

- Support configuring PGSQLUSER for real, and document it a bit; this broken
  support actually prevented pgsql handler to work for VServers (Closes:

#### rdiff-backup

- Added cstream support to allow for bandwidth limiting
- Handle "keep = yes" to disable old backups removal (Closes: DEBBUG-424633)
- Add configuration option to allow you to disable the version check as in some
  instances this may be an ok scenario (Closes: DEBBUG-424632)
- Added local destination support to helper (Closes: Trac#4)
- Allow exclude-only configurations (Closes: Trac#21)

#### rub/rsync

- Fixed typo in rub handler that caused it to not work
- Changed to use lib/vserver code
- Fixed fsck error
- Fixed integer comparison (Closes: Trac#3)
- Renamed handler to 'rsync', replaces outdated rub handler
- updated examples/Makefile.am and handlers/Makefile.am to include rsnap/rsync
  (Closes: DEBBUG-440554)
- Added example.rsync configuration file

#### sys

- Fixed typo breaking things for VServers.
- Fix bug when vrootdir is on its own partition (Closes: DEBBUG-395928)
- Better sfdisk error and output handling: should now properly warn when it
  does not manage to backup a partition table, and shut up when it succeeds
  (Closes: DEBBUG-396632)
- Added option to not use sfdisk at all, useful for vserver/xen instances that
  produce warnings about no harddisks found (Closes: DEBBUG-404071)
- Fixed example in example.sys to detail the `__star__` in partitionsfile and
  note why its necessary (Closes: DEBBUG-409192)
- Force C locale for sfdisk to ensure english words are found in grep
- Make directory where output is placed configurable, and create the parent dir
  if it doesn't exist (Closes: Trac#1)

#### ninjareport

- Added first draft of method to aggregate reports from many servers into one
  email. Requires logtail, rsync, configuration of reporthost, reportdirectory
  and reportuser in backupninja.conf. Configure cron to run once a day, and
  individual backupninjas not to report by email their status, then enjoy one
  email report from all hosts, rather than multiple

#### other

- fixed 'make install' bug that failed if /etc/backup.d already existed
- changed spaces to tabs in Makefile.am
- updated redhat spec file (thanks Adam Monsen)

## [0.9.4] - 2006-10-06

### backupninja changes

- Fixed bug in toint(), and thus isnow(), which caused it to not work when run
  from cron.
- Recursively ignore subdirs in /etc/backup.d (Closes: DEBBUG-361102)
- Add admingroup option to configuration to allow a group that can read/write
  configurations (instead of only allowing root). Checks and complains about
  group-readable files only when the group differs from the one in the
  configuration file (default is root as before).  Thanks to Martin Krafft for
  the patch (Closes: DEBBUG-370396).
- When determining which backup actions to make, find now follows symlinks for
  $configdirectory
- Changed order of -s to mail for compatibility
- fixed permission stat call so it uses the --format supported by coreutils
  (Closes: DEBBUG-382747)
- Added disk space report option (thanks Adam Kosmin)

### handler changes

#### Added tar handler

- create tarballs

#### Added rsnap handler

- rotated rsync snapshops
- code from paulv@bikkel.org

#### Added rub handler

- alternative to rsnap
- code from rhatto@riseup.net

#### mysql

- Fixed improper use of $vuserhome (Closes: DEBBUG-351083)
- Fixed erroneous removal of tmpfile when it didn't exit
- Fixed inversed vsname emptiness check
- Fixed su quote usage to be more posixy
- Compress for sqldumps now happens in-line to save some disk space (Closes:
- Fixed --defaults-file now as --defaults-extra-file (thanks rhatto)

#### pgsql

- Fixed inversed vsname emptiness check
- Fixed su quote usage to be more posixy
- Fixed shell expansion, thanks Thomas Kotzian (Closes: DEBBUG-363297)
- postgres user UID is now the one from inside the vserver if necessary
- Compress now happens in-line to save some disk space (Closes: DEBBUG-370778)
- $PGSQLUSER is used instead of hardcoding user 'postgres' (although this is
  the default)

#### svn

- Fixed inversed vsname emptiness check

#### rdiff

- Symlink and globbing support in include/exclude/vsinclude. Clarification:
  globbing is fully supported again, whereas no attempt is done to dereference
  symlinks anymore, due to incompatibilities between various readlink versions
  in this field.
- Removed overzealous vsnames check
- Now works if testconnect=no and if $test is not defined.
- add $sshoptions config parameter in [dest] section of config so connections
  to ports other than 22 can be made by adding the following to the top of the
  handler config: options = --remote-schema 'ssh -p REMOTE-PORT -C %s
  rdiff-backup --server'

#### dup

- Symlink and globbing support in include/exclude/vsinclude. Clarification
  globbing is fully supported again, whereas no attempt is done to dereference
  symlinks anymore, due to incompatibilities between various readlink versions
  in this field.
- Removed over zealous vsnames check
- Does not pretend anymore that duplicity can work without any passphrase
- Support duplicity 0.4.2 (with Debian patches applied; upstream's 0.4.3 will
  integrate them); documented how to write sftp-compatible sshoptions (Closes:
- Now forbid to (try to) include /.

#### sys

- Many more system checks were added, (thanks to Petr Klíma)
- Added warning if no devices were found (thanks Ranier Zocholl)
- Enhanced debian package selections to include purged packages (thanks Tom
  Hoover)
- Removed warning about vserver not running (thanks anarcat)

#### ldap

- Compress now happens in-line to save some disk space (Closes: DEBBUG-370778)

#### makecd

- Added nicelevel option (thanks rhatto)

#### trac

- fixed problem when src was set to the trac repo directly (Closes: DEBBUG-382737)
- init_vservers: fixed DEBBUG-351083 (improper readlink syntax)
- found_vservers: escaped special grep repetition character +
- forced mktemp to use a template with a name to be more compatible with
  different versions of mktemp, thanks anarcat

### ninjahelper changes

- Recursively ignore subdirs in /etc/backup.d (Closes: DEBBUG-361102)
- Fix configdirectory error that forced you to use /etc/backup.d, thanks
  anarcat
- When determining which backup actions to list, find now follows symlinks for
  $configdirectory
- Stop checking helpers perms: both "make install" and distros packages install
  them with appropriate permissions, it's overzealous to check this at runtime,
  and is more complicated to do with current admingroup option.

#### dup.helper

- Fix: signing was enabled with symmetric encryption.

#### other

- changed cron permissions to 644
- changed /etc/backup.d permissions to 0770 (for admingroup)
- minor documentation fixes
- improved RPM build process allowing 'make rpm-package' and 'make
  srpm-package' targets, also fixes permissions on man directories, cleans up
  RPM-related files during distclean, and adds default EDITOR for "autogen.sh
  -f" if none is set. (thanks Robert Napier)

## [0.9.3] - 2006-02-01

### backupninja changes

#### backupninja.conf

- added (commented out) the various default paths to programs such as
  PGSQLDUMP, so that users can figure out more easily they can customize them

#### code refactor

- now uses vservers lib to initialize vservers support

### handler changes

#### duplicity, mysql, pgsql, rdiff, svn, sys:

- start to use (at different degrees) new lib/vserver functionality

#### mysql

- fixed no user defaults file processing

#### duplicity

- fixed (again...) globbing in include and exclude options (DEBBUG-348022,
  follow-up to DEBBUG-338796)
- warn if vsnames or vsinclude is enabled while vservers support is disabled in
  backupninja.conf
- now works when multiple vservers names are given (separated by space) in
  vsnames config variable rdiff
- fixed globbing bug in include, exclude and vsinclude options
- it's now possible to choose exactly which vservers should be backed-up, as it
  already was with duplicity handler, with the "vsnames" configuration setting

### ninjahelper changes

#### rdiff.helper

- fixed errors in create remote dir
- code formatting cleanup (three spaces indent)
- fixed bug which caused only first include/exclude dir to have "include = "
- fixed globbing bug with exclude

#### ninjahelper

- now reports error if the helper script has a syntax error or bombs out.
- code formatting cleanup (three spaces indent)

### lib changes

#### vserver

- init_vservers: improved VROOTDIR detection
- init_vservers: test in a stricter way the real vservers availability
- init_vservers: canonicalize VROOTDIR (since duplicity et al.  don't follow
  symlinks)
- init_vservers: warn if vservers are enabled but no vserver is found
- new function: vservers_exist known bugs:

#### easydialog

- formDisplay does not return exit status.

#### other

- autotools fixes

## [0.9.2] - 2005-12-29

### backupninja changes

- fixed broken toint() which caused when "everyday" problems
- backupninja.conf.5 updated to include "when" and "vservers"

#### code refactor:

- moved to lib/ some code that has to be shared between backupninja and
  ninjahelper

### handler changes

#### trac

- mkdir subdirectory problem fixed

#### duplicity