BackupPC 4.2.1 release

@craigbarratt craigbarratt released this May 7, 2018 · 10 commits to master since this release

This release allows the new backup delete CGI feature to be disabled for users and/or admins, plus a couple of minor bug fixes:

  • Merged pull request #195.
  • Added new config variable $Conf{CgiUserDeleteBackupEnable} that sets whether users and admins can delete backups via the CGI interface. The default value is 0, which means it's disabled for regular users but available for admins.
  • Fixed delete backup bug in bin/BackupPC_Admin_SCGI reported by Julian Zielke in issue #193.
  • Added check to dirCacheFlush() in bin/BackupPC_tarExtract to skip files that don't have attributes; reported by Tarak Patel.
  • Removed extraneous duplicate variable assignment in lib/BackupPC/CGI/, from @moisseev (#195).

BackupPC 4.2.0 release

@craigbarratt craigbarratt released this Apr 9, 2018 · 20 commits to master since this release

Adds a new feature that allows backups to be deleted from the CGI interface.

Full list of changes:

  • Merged pull requests #160, #190.
  • Backups can now be deleted via the CGI interface, written by @moisseev (#160).
  • bin/BackupPC_backupDelete: added -L option that puts output into client LOG file, to support CGI backup deletion.
  • Added support for a user-editable comment per host, via a new ClientComment config parameter, requested by @andrewmaksymowsky.
  • bin/BackupPC_tarExtract: Added support for pax headers, which smbclient uses for long file names
  • bin/BackupPC_backupDelete: make sure directory exists when renaming tree from deleted backup.
  • lib/BackupPC/Xfer/ ignore empty output lines from smbclient; fixes issue #159.
  • bin/BackupPC: improved several of the exit error messages.
  • lib/BackupPC/Xfer/ added shareName to RsyncArgs* argument substitutions; suggested by Alex Kobel.
  • conf/BackupPC_stnd.css: removed import url('....') suggested by @MartijnRas in issue #174.

BackupPC 4.1.5 release

@craigbarratt craigbarratt released this Dec 3, 2017 · 45 commits to master since this release

Fixes bug related to hardlinks not being correctly stored in certain cases, raised in issues #123 and #124. Changes are:

  • Changed required BackupPC::XS version from 0.56 to 0.57.
  • bin/BackupPC_dump now updates inodeLast for share being backed up.
  • bin/BackupPC_refCountUpdate: inodeLast is checked and updated during fsck; needs BackupPC::XS 0.57.

Thanks to @SebastianS90 and others for all the help providing detailed debug information, and testing the fixes.

BackupPC 4.1.4 release

@craigbarratt craigbarratt released this Nov 25, 2017 · 50 commits to master since this release

BackupPC 4.1.4 fixes various bugs:

  • Merged pull requests #99, #121, #125, #131, #133, #134, #137, #148, #149, #150 #151, #152, #153, #155, #157, #167

  • lib/BackupPC/Xfer/ made pipeSMB non-blocking to avoid a reported deadlock when BackupPC's select() returns ok for reading, but there are no bytes to read from the client tar's log/stdout output. Parallel change to lib/BackupPC/Xfer/ in 4.1.3.

  • bin/BackupPC_tarCreate and bin/BackupPC_zipCreate: untaint the host name so they work with setuid under CGI; fixes empty tar or zip files downloaded via CGI interface (fixes issue #156)

  • bin/BackupPC: fixed BackupPC::XS min version checking and error message, from @moisseev (#152)

  • bin/BackupPC: added more detailed startup information (perl and BackupPC version) to log, from @moisseev (#157)

  • bin/BackupPC_rrdUpdate: fixed empty pools hiding from @moisseev (#167)

  • lib/BackupPC/Xfer/ now ignores additional debug messages from smbclient, and flags lines in the XferLOG it doesn't recognize.

  • lib/BackupPC/CGI/ default display now has the last, rather than first, share opened.

  • Replaced submit with button so that Enter doesn't activate the Delete button. Fixes issue #161, reported by Philippe-M.

  • removed commented-out settings for some ftp args (eg, port#) in lib/BackupPC/Xfer/; reported by Adam W.

  • bin/BackupPC_backupDelete: only print delta counts if LogLevel is >= 5

  • bin/BackupPC_tarExtract: fix existing file size count and size

  • lib/BackupPC/CGI/ fixed masking of subheadings in config editor.

  • config/ added -mSMB3 to $Conf{SmbClientIncrCmd} and $Conf{SmbClientRestoreCmd}, from @SvenBunge (#99)

  • lib/BackupPC/Xfer/ improved cleanup of orphan rsyncTmp files

  • In bin/BackupPC_dump, added "share" to bpc_progress_state message so it is 'backup share "$shareName"'. Patch #150 by @guestisp (issue #143)

  • added share name to log message in lib/BackupPC/CGI/ for tar and zip restore.

  • makeDist: fixed exit code from @moisseev (#153)

  • Added Travis CI configuration from @moisseev (#155) and enabled travis

  • Replaced "Homepage" with "Github" in and from @moisseev (#121)

  • Spelling fixes, mainly in comments from @ka7 (#125).

  • Fixed comment in (zh_CH -> zh_CN) from @patch (#131)

  • Fixed German translations from @mainboarder (#133, #134)

  • Fixed minor comment typo in from @pbe-axelor (#137)

  • Fixed comments in systemd/README from @schuetzm (#138)

  • Fixed Italian translations from @guestisp (#148, #149; issue #142)

  • Fixed incorrect hash key in German translations from @moisseev (#151)

BackupPC 4.1.3 release

@craigbarratt craigbarratt released this Jun 4, 2017 · 112 commits to master since this release

BackupPC 4.1.3 fixes several bugs:

  • Merged pull requests: #109, #114

  • Fixed editing of compound menu variables (eg: BackupFilesOnly).

  • Made tarPipe in lib/BackupPC/Xfer/ non-blocking to avoid a reported deadlock when BackupPC's select() returns ok for reading, but there are no bytes to read from the client tar's log/stdout output. Thanks to Matt Bedynek for running various tests and providing debugging insights to track this down.

  • Better error checking when using $f->read() on pool files. Thanks to Cody Jackson for tracking down this issue, related to reading corrupted compressed pool files. There's also an additional fix in backuppc-xs (version 0.54).

  • Cleans up any orphan temporary pool writing files.

  • Fixed utf-8 output in SCGI.

  • Fixed a reference counting bug in BackupPC_tarExtract.

  • Fixed rsync restore transfer byte total, reported by Alexander Moisseev

  • Replaced logo href with

  • On a v3->v4 upgrade, remove the new --one-file-system flag from the new RsyncArgs if it wasn't there before.

  • Added /usr/local/bin to search path in from Alexander Moisseev (#109).

  • Avoid missing or extra quotes when replacing misused undef or empty string values in from Alexander Moisseev (#114).

  • Chasing down a still unsolved bug with help from Lano and Dieter Fauth where newly added pool files in uncompressed backups get removed by BackupPC_refCountUpdate during a long-running backup, or if BackupPC_migrateV3toV4 is running. Two workarounds added in this release: BackupPC_migrateV3toV4 will now exit if BackupPC is running, and BackupPC_refCountUpdate only removes pool files that are more than a week old.

BackupPC 4.1.2 release

@craigbarratt craigbarratt released this May 1, 2017 · 140 commits to master since this release

BackupPC 4.1.2 fixes several bugs in 4.1.1. The changes include:

  • Merged pull requests: #93, #94, #97, #102
  • Fixed NetBios lookup of hosts, reported by Doug Lytle.
  • Fixed bin/BackupPC_tarExtract and lib/BackupPC/Xfer/ in case where a directory tree is no longer present in a new backup. Reported by Jens Potthast and Matt Bedynek.
  • Fixed SCGI when BackupPC is run in non-daemon mode (which is the systemd default starting in 4.1.1).
  • $Conf{ClientNameAlias} can now be an array of hostnames; the first one that succeeds ping is used for the backup or restore. From martintamare (#94).
  • Fixed status link in SCGI server, improved the navigation tab (now it doesn't scroll) and some css/html cleanup; from Nicholas Hall (#97).
  • Fixed logic in bin/BackupPC_dump for $Conf{FixedIPNetBiosNameCheck} to prevent netbios name check; from Nicholas Hall (#102).
  • Fixed config editor bug in sub-entries of hash config variables, related to SCGI.
  • Fixed rsync restore of a top-level directory when the share is "/", reported by Ray Frush.
  • Increased $Conf{FullKeepCnt}[0] by 1 in expiry calculations, so the most recent filled backup effectively isn't counted for expiry. This improves the behavior, particularly when $Conf{FullKeepCnt} = 1.
  • Rsync transfers now use --timeout=$Conf{ClientTimeout} instead of using an alarm based on rsync log output, suggested by ACR.
  • added --delete-excluded and --one-file-system to $Conf{RsyncArgs}.
  • Removed extra quotes from $Conf{CgiURL} in from Alexander Moisseev (#93). Also added $DestDir to some print messages in
  • BackupPC_dump and BackupPC_restore now support the -p option to turn off progress reports. The old -p (inplace) option to BackupPC_tarExtract is now -P.
  • Backup directory mtime is now set to the backup endTime.
  • Updated FSF address in cgi-bin/BackupPC_Admin, reported by TomCat42 (#91).

BackupPC 4.1.1 release

@craigbarratt craigbarratt released this Mar 30, 2017 · 180 commits to master since this release

BackupPC 4.1.1 fixes several bugs in 4.1.0. The changes include:

  • Merged pull requests: #77, #78, #79, #82
  • Added missing BackupPC_migrateV3toV4 to makeDist (issue #75) reported
    by spikebike.
  • Fixed divide-by-zero in progress % report in BackupPC_migrateV3toV4
    (issue #75) reported by spikebike.
  • In lib/BackupPC/, if Socket::getaddrinfo() doesn't exist (ie,
    an old version of, then default to ipv4 ping.
  • Updates to to make config-path default be based on
    config-dir (#79), prepended config-path with dest-dir, fixing a merge bug affecting $Conf{PingPath} reported by Richard Shaw,
    and a few other fixes.
  • Updated required version of BackupPC::XS to 0.53 and rsync_bpc to
  • Minor changes to systemd/src/init.d/gentoo-backuppc from sigmoidal (#82).
  • Added RuntimeDirectory to systemd/src/backuppc.service.
  • Use the scalar form of getpwnam() in lib/BackupPC/CGI/ and

BackupPC 4.1.0 release

@craigbarratt craigbarratt released this Apr 1, 2017 · 208 commits to master since this release

BackupPC 4.1.0 contains some new features and several bug fixes:

  • BackupPC_migrateV3toV4 optionally allows old 3.x backups to be migrated to 4.x format, eliminating the hardlinks used by 3.x. (BackupPC 4.x can view/browse/restore 3.x backups, so it's not necessary to run BackupPC_migrateV3toV4)
  • modern CSS (from Ernesto Carrea)
  • fixes to rsync restore (from Stephen Joyce)
  • fixes to exponential backup expiry (from Alexander Moisseev)
  • added template systemd files
  • adds a --config-only option for package builders (from Alexander Moisseev)
  • various other fixes (see ChangeLog)

BackupPC 4.0.0 release

@craigbarratt craigbarratt released this Apr 1, 2017 · 269 commits to master since this release

BackupPC 4.0.0 is a significant improvement over 3.x in terms of performance and storage efficiency. It is backward compatible with 3.x pool storage, so it can be used to upgrade an existing installation as well as for brand new installs.

BackupPC 4.0.0 requires the perl module BackupPC::XS (>= 0.50) and rsync-bpc (>= Those releases are here:

After installing those releases, BackupPC 4.0.0 can be installed from the tar ball with:

  tar zxf BackupPC-4.0.0.tar.gz
  cd BackupPC-4.0.0

See the, ChangeLog and doc/BackupPC.html files for more information.


BackupPC 3.3.2 release

@craigbarratt craigbarratt released this Apr 1, 2017 · 378 commits to master since this release

  • Updates to bin/BackupPC_dump and lib/BackupPC/Xfer/ from maksyms to fix
    incompatibilities with Samba 4.3 (#22)
  • Sort hash of config editor tabs in lib/BackupPC/CGI/ from
    polo (#23)
  • Fixes to bin/BackupPC_sendEmail to avoid per-host overwrite of EMailAdminUserName
    from derrickdominic (#30)
  • Fixed minor typos in several language files; from Alexander Moisseev
  • Updated deprecated syntax (defined(@array) and "{" in regexps) from
    Alexander Moisseev.
  • Documentation updates from Alexander Moisseev.