--- duplicity-0.6.13.orig/debian/duplicity.docs +++ duplicity-0.6.13/debian/duplicity.docs @@ -0,0 +1,2 @@ +debian/README.source +LOG-README --- duplicity-0.6.13.orig/debian/README.source +++ duplicity-0.6.13/debian/README.source @@ -0,0 +1,38 @@ +This package uses dpatch to manage all modifications to the upstream +source. Changes are stored in the source package as diffs in +debian/patches and applied during the build. + +To get the fully patched source after unpacking the source package, cd +to the root level of the source package and run: + + debian/rules patch + +Removing a patch is as simple as removing its entry from the +debian/patches/00list file, and please also remove the patch file +itself. + +Creating a new patch is done with "dpatch-edit-patch patch XX_patchname" +where you should replace XX with a new number and patchname with a +descriptive shortname of the patch. You can then simply edit all the +files your patch wants to edit, and then simply "exit 0" from the shell +to actually create the patch file. + +To tweak an already existing patch, call "dpatch-edit-patch XX_patchname" +and replace XX_patchname with the actual filename from debian/patches +you want to use. + +To clean up afterwards again, "debian/rules unpatch" will do the +work for you - or you can of course choose to call +"fakeroot debian/rules clean" all together. + + +--- + +this documentation is part of dpatch package, and may be used by +packages using dpatch to comply with policy on README.source. This +documentation is meant to be useful to users who are not proficient in +dpatch in doing work with dpatch-based packages. Please send any +improvements to the BTS of dpatch package. + +original text by Gerfried Fuchs, edited by Junichi Uekawa +10 Aug 2008. --- duplicity-0.6.13.orig/debian/preinst +++ duplicity-0.6.13/debian/preinst @@ -0,0 +1,8 @@ +#!/bin/sh -e + +# fix my previous errors + +rm -rf /usr/lib/python2.2/site-packages/duplicity/ +rm -rf /usr/lib/python2.3/site-packages/duplicity/ + +#DEBHELPER# --- duplicity-0.6.13.orig/debian/changelog +++ duplicity-0.6.13/debian/changelog @@ -0,0 +1,523 @@ +duplicity (0.6.13-1) unstable; urgency=low + + * New upstream release + * band-aid for #601584: now the error report is at least more verbose + + -- Alexander Zangerl Thu, 21 Apr 2011 18:28:56 +1000 + +duplicity (0.6.12-1) unstable; urgency=low + + * New upstream release (closes: #615668, #579966) + * switched to dh_python2 (closes: #616797) + * now uses mainstream GnuPGInterface module again + + -- Alexander Zangerl Sun, 13 Mar 2011 00:03:18 +1000 + +duplicity (0.6.09-5) unstable; urgency=low + + * changed homepage field (closes: #599060) + * added patch for problems with rsync 3.0.7++ (closes: #595562) + + -- Alexander Zangerl Sat, 20 Nov 2010 14:37:54 +1000 + +duplicity (0.6.09-4) unstable; urgency=low + + * and again i uploaded the Lenny-built package..sigh. (closes: #594562) + * lifted standards version, updated suggests a bit + + -- Alexander Zangerl Tue, 07 Sep 2010 16:45:19 +1000 + +duplicity (0.6.09-3) unstable; urgency=low + + * add patch to prime option parser with proper arguments + (closes: #595567) + + -- Alexander Zangerl Mon, 06 Sep 2010 12:57:46 +1000 + +duplicity (0.6.09-2) unstable; urgency=high + + * added copyright text for the local, modified, version + of GnuPGInterface (closes: #594532) + * upload version built against python 2.6, making the package + installable in Squeeze (closes: #594562) + + -- Alexander Zangerl Sat, 28 Aug 2010 14:37:44 +1000 + +duplicity (0.6.09-1) unstable; urgency=low + + * New upstream release (closes: #581260, #572102, #531786) + + -- Alexander Zangerl Wed, 25 Aug 2010 23:32:30 +1000 + +duplicity (0.6.08b-1) unstable; urgency=low + + * New upstream release + * backed out patch for upstream bug#497243 from 06-3 and -4, as + that fix was only cosmetic. + This version now enforces extra-clean cleanups on any remove operation, + which both fixes the cache desync issue as well as the accumulation of + old cruft in remote archive and local cache. + NEWS.Debian and manpage have been updated to + mention that behaviour. (closes: #572792) + + -- Alexander Zangerl Mon, 15 Mar 2010 20:52:56 +1000 + +duplicity (0.6.06-5) unstable; urgency=low + + * updated watch file (closes: #573890) + + -- Alexander Zangerl Mon, 15 Mar 2010 19:48:37 +1000 + +duplicity (0.6.06-4) unstable; urgency=low + + * updated fix for upstream bug#497243 to fix one remaining + case where cache desynchronization occurs. + + -- Alexander Zangerl Sun, 28 Feb 2010 11:10:07 +1000 + +duplicity (0.6.06-3) unstable; urgency=low + + * applied fix for upstream bug#497243: cache desynchronization. + + -- Alexander Zangerl Tue, 26 Jan 2010 17:12:18 +1000 + +duplicity (0.6.06-2) unstable; urgency=high + + * fixed ssh backend failure (tried to import local pexpect module) + (closes: #556095) + + -- Alexander Zangerl Mon, 16 Nov 2009 04:48:45 +1000 + +duplicity (0.6.06-1) unstable; urgency=low + + * New upstream release (closes: #539903, #420858) + * does no longer depend on python-gnupginterface: upstream + provides a modified version which is claimed to be incompatible + * does not install a local version of python-pexpect + anymore (closes: #555359) + + -- Alexander Zangerl Fri, 13 Nov 2009 07:30:49 +1000 + +duplicity (0.6.05-2) unstable; urgency=low + + * adjusted rules to cater for future python2.6 install + setup (closes: #547825) + + -- Alexander Zangerl Fri, 25 Sep 2009 11:05:38 +1000 + +duplicity (0.6.05-1) unstable; urgency=low + + * New upstream release + * lifted standards version + + -- Alexander Zangerl Sun, 20 Sep 2009 10:46:40 +1000 + +duplicity (0.6.04-1) unstable; urgency=low + + * New upstream release (closes: #536361, #537260, #42858, + #399371, #388180, #386749 ) + * new project homepage + * added notes regarding changed archive-dir behaviour + + -- Alexander Zangerl Wed, 12 Aug 2009 12:34:01 +1000 + +duplicity (0.5.16-1) unstable; urgency=low + + * New upstream release (closes: #524786) + * removed last remaining debian-local patch + + -- Alexander Zangerl Thu, 23 Apr 2009 14:51:28 +1000 + +duplicity (0.5.11-2) unstable; urgency=low + + * changed the setup to temporarily include upstream's repaired copy of + GnuPGInterface.py: because of #509415 in python-gnupginterface + duplicity currently does not work with public key encryption, + no signing and archive dirs. + + -- Alexander Zangerl Mon, 16 Mar 2009 15:57:01 +1000 + +duplicity (0.5.11-1) unstable; urgency=low + + * New upstream release (closes: #519576) + + -- Alexander Zangerl Sat, 14 Mar 2009 09:14:57 +1000 + +duplicity (0.5.06-2) unstable; urgency=low + + * applied most recent upstream fixes + + -- Alexander Zangerl Sat, 31 Jan 2009 14:31:17 +1000 + +duplicity (0.5.06-1) unstable; urgency=low + + * New upstream release + * built against sid, not etch (closes: #513446) + + -- Alexander Zangerl Fri, 30 Jan 2009 11:32:32 +1000 + +duplicity (0.5.02-2) unstable; urgency=low + + * lifted standards version + * added homepage to control (closes: #512798) + + -- Alexander Zangerl Wed, 28 Jan 2009 11:59:57 +1000 + +duplicity (0.5.02-1) unstable; urgency=low + + * New upstream release (closes: #502207) + + -- Alexander Zangerl Wed, 15 Oct 2008 08:38:15 +1000 + +duplicity (0.4.12-2) unstable; urgency=low + + * applied upstream patch to repair --no-encryption option + (which wrongly requested a passphrase) (closes: #497071) + + -- Alexander Zangerl Sun, 31 Aug 2008 12:24:40 +1000 + +duplicity (0.4.12-1) unstable; urgency=low + + * New upstream release + + -- Alexander Zangerl Thu, 21 Aug 2008 10:49:04 +1000 + +duplicity (0.4.11-2) unstable; urgency=high + + * rebuilt for testing's 2.5 python (closes: #480568) + + -- Alexander Zangerl Sun, 11 May 2008 11:10:01 +1000 + +duplicity (0.4.11-1) unstable; urgency=low + + * New upstream release + * make duplicity accept s3 access credentials from boto config files + and not just the environment (closes: #480417) + + -- Alexander Zangerl Sat, 10 May 2008 11:17:39 +1000 + +duplicity (0.4.10-2) unstable; urgency=low + + * applied patch to work around newer python-boto behaviour + which can make existing S3 backups inaccessible. (closes: #475890) + + -- Alexander Zangerl Tue, 15 Apr 2008 12:46:32 +1000 + +duplicity (0.4.10-1) unstable; urgency=low + + * New upstream release + + -- Alexander Zangerl Mon, 31 Mar 2008 22:19:16 +1000 + +duplicity (0.4.8-1) unstable; urgency=high + + * New upstream release + * fixed backup data corruption for rsync backend + + -- Alexander Zangerl Fri, 21 Dec 2007 17:16:42 +1000 + +duplicity (0.4.7-1) unstable; urgency=low + + * New upstream release (closes: #452700) + + -- Alexander Zangerl Sat, 8 Dec 2007 10:29:26 +1000 + +duplicity (0.4.3-6) unstable; urgency=low + + * fixed some manpage typos (closes: #450881) + + -- Alexander Zangerl Thu, 15 Nov 2007 12:21:48 +1000 + +duplicity (0.4.3-5) unstable; urgency=low + + * minor manpage improvements in response to #447538 + + -- Alexander Zangerl Wed, 24 Oct 2007 12:22:14 +1000 + +duplicity (0.4.3-4) unstable; urgency=low + + * applied Christoph Martin's patch to the ftp backend + to make duplicity cooperate with etch's ncftp (closes: #444972) + + -- Alexander Zangerl Sat, 6 Oct 2007 20:02:43 +1000 + +duplicity (0.4.3-3) unstable; urgency=medium + + * reworked the "no passphrase" patch to properly cover + symmetric encryption, where a passphrase is always needed + (closes: #443803) + + -- Alexander Zangerl Tue, 25 Sep 2007 12:14:26 +1000 + +duplicity (0.4.3-2) unstable; urgency=low + + * now suggests ncftp (closes: #442834) and mentions that in NEWS.Debian + i have decided that Recommends: is too strong here, as ftp is a lousy + protocol which should be avoided as much as possible. + * applied upstream fix for leaking ftp passphrases via the commandline + (closes: #442840). the fix works only with ncftp version 3.2.1 + and newer, which means etch is out. + * applied upstream patch for upstream-#21123, which fixes another + ftp backend problem. + * finally fixed the superfluous passphrase dialogs + * tidied build process for easier integration into ubuntu, removing + some unnecessary python version dependencies + * applied upstream patch for upstream-#6211, restoring strict host key + checks for the ssh backend. + + -- Alexander Zangerl Wed, 19 Sep 2007 22:36:04 +1000 + +duplicity (0.4.3-1) unstable; urgency=low + + * New upstream release (closes: #439057) + this release closes a whole bunch of old and recent debian bugs + bzip2 is now optional (closes: #437694) + the manpage is mostly ok now (closes: #345172) + passphrase handling was overhauled (closes: #370198) + sockets are now cleanly ignored (closes: #246984) + commands are retried for temporary problems (closes: #346306) + * new S3 backend (closes: #384490) + this requires python-boto, which is now listed as suggested + * updated dependencies with python-pexpect + * unattended encrypted backups with archive dir work (closes: #369971, #404345) + * patch set reworked + * added local fix for offending/garbage files prohibiting + further actions (closes: #228388) + * added local fix for better tempfile naming + + -- Alexander Zangerl Sat, 8 Sep 2007 20:09:26 +1000 + +duplicity (0.4.2-16) unstable; urgency=low + + * added example backup script (closes: #408749) + * re-added ftp-timeout-patch, which was lost somewhere around 0.4.2-6 + and added pending ftp-mkdir-patch (closes: #413335) + + -- Alexander Zangerl Tue, 19 Jun 2007 12:38:43 +1000 + +duplicity (0.4.2-15) unstable; urgency=low + + * added --help option and usage message (closes: #345165) + + -- Alexander Zangerl Tue, 19 Jun 2007 12:09:21 +1000 + +duplicity (0.4.2-14) unstable; urgency=high + + * fixed bad patch sequence that broke sftp support (closes: #426819) + + -- Alexander Zangerl Fri, 1 Jun 2007 00:19:32 +1000 + +duplicity (0.4.2-13) unstable; urgency=low + + * added a --volsize option to allow user-specified volume chunks + instead of always splitting at 5Mb. + + -- Alexander Zangerl Thu, 24 May 2007 22:48:52 +1000 + +duplicity (0.4.2-12) unstable; urgency=low + + * reworked the patch set + * added patch for archive-dir and incrementals (closes: #370206) + * added patch for encrypted unattended backups + with archive-dir (closes: #369971) + + -- Alexander Zangerl Tue, 10 Apr 2007 14:28:13 +1000 + +duplicity (0.4.2-11) unstable; urgency=low + + * I'm adopting duplicity. Thanks to Martin Wuertele + for his past work on duplicity! (closes: #418159) + * finetuned debhelper dependency + + -- Alexander Zangerl Sun, 8 Apr 2007 17:40:30 +1000 + +duplicity (0.4.2-10.1) unstable; urgency=medium + + * Switch back to python 2.4, as python-central can apparently no longer cope + with 2.3, and 2.4 seems to work ok now; patch from Joey Hess. + (Closes: #396158) + + -- Steinar H. Gunderson Sat, 11 Nov 2006 13:32:07 +0100 + +duplicity (0.4.2-10) unstable; urgency=low + + * fix build target (Closes: #386933) + + -- Martin Wuertele Sat, 16 Sep 2006 10:22:28 +0200 + +duplicity (0.4.2-9) unstable; urgency=low + + * switched to python-central + * removed modules patch (no more needed) + + -- Martin Wuertele Sun, 10 Sep 2006 14:29:07 +0200 + +duplicity (0.4.2-8) unstable; urgency=high + + * depend on python2.3 fixing restore (Closes: #386607) + + -- Martin Wuertele Sat, 9 Sep 2006 11:10:48 +0200 + +duplicity (0.4.2-7.1) unstable; urgency=high + + * NMU + * Don't call dh_pysupport with -n; we need those generated manintainer + scripts to, well, work. Closes: #384489, #384826 + + -- Joey Hess Fri, 8 Sep 2006 01:41:52 -0400 + +duplicity (0.4.2-7) unstable; urgency=low + + * Fix arch so _librsync.so gets compiled (Closes: #385989) + + -- Martin Wuertele Mon, 4 Sep 2006 22:25:09 +0200 + +duplicity (0.4.2-6) unstable; urgency=low + + * switch to dpatch for patch management + * fix private module search path and make sure postint/postrm work + (Closes: #384489) + * updated copyright + + -- Martin Wuertele Sat, 26 Aug 2006 23:25:57 +0200 + +duplicity (0.4.2-5) unstable; urgency=low + + * removed patches from debian-revision + * added README.Debian describing applied patches + * fix targets (Closes: #384570) + + -- Martin Wuertele Fri, 25 Aug 2006 17:39:09 +0200 + +duplicity (0.4.2-4+sftp+compression) unstable; urgency=low + + * temporary disable amazons3 patch + * don't pass /usr/share/python-support to dh_pysupport to fix + searchpath (Closes: #384489) + + -- Martin Wuertele Thu, 24 Aug 2006 19:55:40 +0200 + +duplicity (0.4.2-3+sftp+amazons3+compression) unstable; urgency=low + + * remove old byte compiled stuff in preinst (Closes: #384142) + + -- Martin Wuertele Tue, 22 Aug 2006 22:26:46 +0200 + +duplicity (0.4.2-2+sftp+amazons3+compression.2) unstable; urgency=low + + * Non-maintainer upload. + * Update package to the last python policy (Closes: #380784). + + -- Pierre Habouzit Sat, 12 Aug 2006 23:20:21 +0200 + +duplicity (0.4.2-2+sftp+amazons3+compression.1) unstable; urgency=low + + * NMU + * Fix echo -e bashism. Closes: #375543 + + -- Joey Hess Wed, 5 Jul 2006 16:09:56 -0400 + +duplicity (0.4.2-2+sftp+amazons3+compression) unstable; urgency=low + + * changed build-depends from python2.3-dev to python-dev >= 2.3 + (Closes: #367484) + + -- Martin Wuertele Thu, 18 May 2006 13:35:15 -0500 + +duplicity (0.4.2-1+sftp+amazons3+compression) unstable; urgency=low + + * new upstream release (Closes: #358519) + * fixes some scp/sftp problems + * understands ftp 450 (Closes: #238677) + * --remove-older-than makes sure duplicity deletes older signatures + * --remove-older-than now cannot delete the active backup chain + (Closes: #228386) + * added sftp patch by intrigeri + * added amazon s3 patch by Brian Sutherland + * added compression patch by Mathias Wagner + + + -- Martin Wuertele Mon, 15 May 2006 13:44:05 -0500 + +duplicity (0.4.1-8) unstable; urgency=high + + * added patch to fix ftp timeout exception when backing up huge files with + small changes (patch by Stefan Schimanski ) + + -- Martin Wuertele Mon, 6 Sep 2004 18:57:42 +0200 + +duplicity (0.4.1-7) unstable; urgency=low + + * fixed linebreak in duplicity.1 (Thanks to Uli Martens + + -- Martin Wuertele Fri, 3 Sep 2004 16:36:45 +0200 + +duplicity (0.4.1-6) unstable; urgency=low + + * fixed permissions for tarfile.py + * converted changelog to UTF-8 + * fixed python dependency to 2.3 in tarfile.py + + -- Martin Wuertele Sat, 1 May 2004 22:27:22 +0200 + +duplicity (0.4.1-5) unstable; urgency=low + + * Depend on python-gnupginterface instead of providing GnuPGInterface.py + (Closes: #230048) + + -- Martin Wuertele Fri, 30 Jan 2004 18:13:05 +0100 + +duplicity (0.4.1-4) unstable; urgency=low + + * removed byte compiled code and added postinst to do so + (Closes: #221399) + + -- Martin Wuertele Thu, 20 Nov 2003 19:49:57 +0100 + +duplicity (0.4.1-3) unstable; urgency=low + + * removed CHANGELOG.gz from package + (Closes: #219784) + + -- Martin Wuertele Sun, 9 Nov 2003 19:51:53 +0100 + +duplicity (0.4.1-2) unstable; urgency=low + + * use librsync.h and depend on librsync-dev >= 0.9.6 since prior versions + provide rsync.h + + -- Martin Wuertele Sun, 31 Aug 2003 17:19:58 +0200 + +duplicity (0.4.1-1) unstable; urgency=low + + * new upstream release + + -- Martin Würtele Mon, 11 Aug 2003 21:09:56 +0200 + +duplicity (0.4.0-4) unstable; urgency=low + + * fixed auto build problem + (Closes: #204720) + + -- Martin Würtele Sun, 10 Aug 2003 14:03:20 +0200 + +duplicity (0.4.0-3) unstable; urgency=low + + * recompiled witch python 2.3 + + -- Martin Würtele Sat, 9 Aug 2003 09:17:33 +0200 + +duplicity (0.4.0-2) unstable; urgency=low + + * applied LongLink patch from cvs + * added tarfile license to copyright + + -- Martin Würtele Fri, 8 Aug 2003 16:06:27 +0200 + +duplicity (0.4.0-1) unstable; urgency=low + + * Initial Release. + (Closes: #188713) + + -- Martin Wuertele Sat, 12 Apr 2003 17:06:27 +0200 + --- duplicity-0.6.13.orig/debian/control +++ duplicity-0.6.13/debian/control @@ -0,0 +1,21 @@ +Source: duplicity +Section: utils +Priority: optional +Maintainer: Alexander Zangerl +Build-Depends: debhelper (>= 5.0.37.2), librsync-dev (>=0.9.6), python-dev (>= 2.6.6-3), dpatch +Standards-Version: 3.9.1 +X-Python-Version: >= 2.5 + +Package: duplicity +Architecture: any +Homepage: http://duplicity.nongnu.org/ +Depends: ${shlibs:Depends}, ${python:Depends}, ${misc:Depends}, python-pexpect (>=2.3-1), python-gnupginterface (>=0.3.2-9.1) +Suggests: python-boto, ncftp, rsync, ssh +Description: encrypted bandwidth-efficient backup + Duplicity backs directories by producing encrypted tar-format volumes + and uploading them to a remote or local file server. Because duplicity + uses librsync, the incremental archives are space efficient and only + record the parts of files that have changed since the last backup. + Because duplicity uses GnuPG to encrypt and/or sign these archives, they + will be safe from spying and/or modification by the server. + --- duplicity-0.6.13.orig/debian/copyright +++ duplicity-0.6.13/debian/copyright @@ -0,0 +1,83 @@ +This package was originally debianized by Martin Wuertele +in 2003. Since April 2007 it is maintained +by Alexander Zangerl . + +It was downloaded from http://www.nongnu.org/duplicity/ + +Upstream Authors: + Ben Escoto (duplicity author) + Jiri Tyr (sftp) + intrigeri (sftp-command) + Mathias Wagner (compress) + Joey Hess (bashishm) + + +Copyright: + +duplicity: + +Copyright 2002, 2003, 2004, 2005, 2006 Ben Escoto + 2005 Jiri Tyr + 2006 intrigeri + 2006 Mathias Wagner + 2006 Joey Hess + +This program is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free Software +Foundation; either version 2, or (at your option) any later version. + +On Debian GNU/Linux systems, the complete text of the GNU General Public +License can be found in `/usr/share/common-licenses/GPL'. + + +tarfile: + +Copyright (C) 2002 Lars Gustäbel +All rights reserved. + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +gnupginterface: + +COPYRIGHT: + +Copyright (C) 2001 Frank J. Tobin, ftobin@neverending.org + +LICENSE: + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) any later version. + +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. +or see http://www.gnu.org/copyleft/lesser.html + + + --- duplicity-0.6.13.orig/debian/compat +++ duplicity-0.6.13/debian/compat @@ -0,0 +1 @@ +5 --- duplicity-0.6.13.orig/debian/watch +++ duplicity-0.6.13/debian/watch @@ -0,0 +1,2 @@ +version=3 +http://download.savannah.gnu.org/releases/duplicity/duplicity-([0-9.]+[a-zA-Z]*)\.tar\.gz --- duplicity-0.6.13.orig/debian/duplicity.examples +++ duplicity-0.6.13/debian/duplicity.examples @@ -0,0 +1 @@ +debian/examples/system-backup --- duplicity-0.6.13.orig/debian/NEWS.Debian +++ duplicity-0.6.13/debian/NEWS.Debian @@ -0,0 +1,64 @@ +duplicity (0.6.08b-1) unstable; urgency=low + + With 0.6.06 duplicity stopped removing old data properly, + EXCEPT when one ran a cleanup option with --extra-clean enabled. + Note that normal remove* ops are not sufficient for a proper clean. + + (the cause is changeset 616, lp:~mterry/duplicity/list-old-chains) + + This has lead to numerous problems wrt. the archive dir cache growing + without bounds as well as some cache desynchronization issues. + It's also extremely counter-intuitive: despite requesting removals + not enough data is removed. + + Until upstream resolves this problem properly, the Debian version + of duplicity now automatically and unconditionally runs a + cleanup operation after a successful remove-older-than or + remove-all-but-n-full operation. + + The definition of "successful" in this context: --force was enabled, + and the remove op found something to remove. + + This forced cleanup is run with --extra-clean active. + +duplicity (0.6.04-1) unstable; urgency=low + + The --archive-dir handling has changed substantially in 0.6, + in ways that affect existing backups. + + Duplicity now requires an archive dir, and if you don't give it one + explicitly it will use ~/.cache/duplicy/. + + To distinguish between multiple backups, a per-backup subdirectory + of the archive dir is used. This suffix is a hash of the target url + or can be set with --name. + + The suffix is ALWAYS ADDED, the archive dir itself is no longer used. + + Consequences: + + * If you have existing backups with an archive dir (where you had + to specify unique archive dirs), you must add an + appropriate --name to have duplicity use the right archive directory. + + Using your existing, specific --archive-dir and --name '' works. + + * If you do not do that or if you have no existing archive dir, + then duplicity will create a new archive dir and + synchronize/recreate the archive dir content from the remote repository. + + If you use encryption then the first duplicity run (attempting this + resynchronization) will fail unless you give it the encryption passphrase + (or access to and passphrase of the relevant gnupg key) - local + archive dir contents are not encrypted but remote repositories are. + + For existing backups I'd highly recommend that you run a + collection-status first, with the appropriate --archive-dir and --name. + It may pay off to ls the archive dir afterwards, confirming that no + unintended --name subdirs have been created. + + After that step any required resynchronizations should be complete and + duplicity should again work fine for unattended backups with or without + encryption. + + -- Alexander Zangerl Fri, 31 Jul 2009 10:50:30 +1000 \ No newline at end of file --- duplicity-0.6.13.orig/debian/docs +++ duplicity-0.6.13/debian/docs @@ -0,0 +1,2 @@ +README +debian/NEWS.Debian --- duplicity-0.6.13.orig/debian/rules +++ duplicity-0.6.13/debian/rules @@ -0,0 +1,94 @@ +#!/usr/bin/make -f +# Sample debian/rules that uses debhelper. +# GNU copyright 1997 to 1999 by Joey Hess. + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +PREFIX := debian/duplicity/usr + + +ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS))) + CFLAGS += -g +endif +ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) + INSTALL_PROGRAM += -s +endif + + +# we use dpatch +include /usr/share/dpatch/dpatch.make + + +configure: configure-stamp +configure-stamp: + dh_testdir +# Add here commands to configure the package. + touch configure-stamp + + +build: build-stamp + +build-stamp: patch configure-stamp + dh_testdir + +# Add here commands to compile the package. + python setup.py build + touch build-stamp + +clean: clean1 unpatch +clean1: + dh_testdir + dh_testroot + rm -f build-stamp configure-stamp + +# Add here commands to clean up after the build process. + rm -rf *.pyc + rm -rf build + dh_clean + +install: build + dh_testdir + dh_testroot + dh_clean -k + dh_installdirs + +# Add here commands to install the package into debian/duplicity. + python setup.py install --prefix=$(PREFIX) --no-compile --install-layout=deb + +# remove local GnuPGInterface.py as we use the packaged version + rm -f $(PREFIX)/lib/python*/*-packages/duplicity/GnuPGInterface.py +# no more local pexpect + rm -f $(PREFIX)/lib/python*/*-packages/duplicity/pexpect.py + +# remove docs as we create them with debhelper + rm -rf $(PREFIX)/share/doc/duplicity-* + + +# Build architecture-independent files here. +binary-indep: build install + +# Build architecture-dependent files here. +binary-arch: build install + # for some odd reason dh_python2 always dies with "must build for 2.5" + # unless the version guessing is switched off... + dh_python2 --no-guessing-versions + dh_testdir + dh_testroot + dh_installdocs + dh_installexamples + dh_installman + dh_installchangelogs CHANGELOG + dh_link + dh_strip + dh_compress + dh_fixperms + dh_makeshlibs + dh_installdeb + dh_shlibdeps + dh_gencontrol + dh_md5sums + dh_builddeb + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary install configure --- duplicity-0.6.13.orig/debian/dirs +++ duplicity-0.6.13/debian/dirs @@ -0,0 +1 @@ +usr/bin --- duplicity-0.6.13.orig/debian/patches/02cachedesync.dpatch +++ duplicity-0.6.13/debian/patches/02cachedesync.dpatch @@ -0,0 +1,26 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 02cachedesync.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: fix for (upstream)#497243: remove causes cache desynchronization +## DP: backed out the attempted fix, as it only dealt with the symptomps +## DP: and not the root-cause (which is the ill-advised change-set 616) + +@DPATCH@ +diff -urNad duplicity-0.6.08b~/src/collections.py duplicity-0.6.08b/src/collections.py +--- duplicity-0.6.08b~/src/collections.py 2010-03-12 11:39:06.000000000 +1000 ++++ duplicity-0.6.08b/src/collections.py 2010-03-15 20:41:30.904266406 +1000 +@@ -145,12 +145,7 @@ + if (pr + and pr.time == self.time + and pr.start_time == self.start_time +- and pr.end_time == self.end_time +- and pr.type != "new-sig" ): +- # do not remove new sigs from the cache: +- # they aren't removed from the remote archive, +- # and subsequent backups will have to resync +- # which is bad if running non-interactive with encrypt-key ++ and pr.end_time == self.end_time): + try: + globals.archive_dir.append(lfn).delete() + except: --- duplicity-0.6.13.orig/debian/patches/01pexpect.dpatch +++ duplicity-0.6.13/debian/patches/01pexpect.dpatch @@ -0,0 +1,19 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 01pexpect.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: import global pexpect module, not a local one (#556095) + +@DPATCH@ +diff -urNad duplicity-0.6.08b~/src/backends/sshbackend.py duplicity-0.6.08b/src/backends/sshbackend.py +--- duplicity-0.6.08b~/src/backends/sshbackend.py 2010-03-12 11:39:06.000000000 +1000 ++++ duplicity-0.6.08b/src/backends/sshbackend.py 2010-03-15 20:39:42.163263716 +1000 +@@ -31,7 +31,7 @@ + import duplicity.backend + from duplicity import globals + from duplicity import log +-from duplicity import pexpect ++import pexpect + from duplicity.errors import * #@UnusedWildImport + + class SSHBackend(duplicity.backend.Backend): --- duplicity-0.6.13.orig/debian/patches/00list +++ duplicity-0.6.13/debian/patches/00list @@ -0,0 +1,5 @@ +01pexpect +02cachedesync +03forcecleanup +05upstreamgpgintf +06moregrace --- duplicity-0.6.13.orig/debian/patches/06moregrace.dpatch +++ duplicity-0.6.13/debian/patches/06moregrace.dpatch @@ -0,0 +1,23 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 06moregrace.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: more verbosity for failed reads (not quite a band-aid for #601584) + +@DPATCH@ +diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' duplicity-0.6.13~/src/diffdir.py duplicity-0.6.13/src/diffdir.py +--- duplicity-0.6.13~/src/diffdir.py 2011-04-03 03:48:22.000000000 +1000 ++++ duplicity-0.6.13/src/diffdir.py 2011-04-21 18:22:15.984247869 +1000 +@@ -381,7 +381,11 @@ + self.infile = infile + + def read(self, length = -1): +- buf = self.infile.read(length) ++ try : ++ buf = self.infile.read(length) ++ except IOError, (errno, strerror): ++ print "I/O error({0}): '{1}' on '{2}'".format(errno, strerror, self.infile.name) ++ raise IOError (errno, strerror) + if stats: + stats.SourceFileSize += len(buf) + return buf --- duplicity-0.6.13.orig/debian/patches/03forcecleanup.dpatch +++ duplicity-0.6.13/debian/patches/03forcecleanup.dpatch @@ -0,0 +1,75 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 03forcecleanup.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: fix for #572792: we force a extra-clean cleanup for all remove* ops + +@DPATCH@ +diff -urNad duplicity-0.6.12~/duplicity duplicity-0.6.12/duplicity +--- duplicity-0.6.12~/duplicity 2011-03-12 19:45:46.000000000 +1000 ++++ duplicity-0.6.12/duplicity 2011-03-12 19:50:23.011966125 +1000 +@@ -774,12 +774,24 @@ + log.Notice("Deleting set " + set.type + " " + dup_time.timetopretty(set.get_time())) + set.delete() + col_stats.set_values(sig_chain_warning=None) ++ ++ # force a cleanup operation to get rid of unnecessary old cruft ++ # we said we want to remove them! didn't we, huh? ++ # bad duplicity, bad doggy! ++ # note: in the long run backing out changeset 616 might be ++ # better, but for now this will ease the pain. ++ globals.extra_clean=True ++ cleanup(col_stats) + else: + log.Notice(gettext.ngettext("Found old backup set at the following time:", + "Found old backup sets at the following times:", + len(setlist)) + + "\n" + set_times_str(setlist) + "\n" + + _("Rerun command with --force option to actually delete.")) ++ # see above for rationale. ++ # this here is to print a list of to-be-removed files (--force is off) ++ globals.extra_clean=True ++ cleanup(col_stats) + + + def sync_archive(): +diff -urNad duplicity-0.6.12~/duplicity.1 duplicity-0.6.12/duplicity.1 +--- duplicity-0.6.12~/duplicity.1 2011-03-12 19:45:46.000000000 +1000 ++++ duplicity-0.6.12/duplicity.1 2011-03-12 19:45:52.722966225 +1000 +@@ -178,6 +178,14 @@ + the other hand if the archive has been deleted or corrupted, this + command may not detect it. + ++.B Note: ++the Debian version of duplicity automatically runs a ++cleanup --extra-clean whenever old backup sets are removed (i.e. if one ++of the remove commands is run with the --force option present and ++if something removable is found). This is to ++limit the amount of old outdated material that otherwise accumulates ++in the archive dir. ++ + .TP + .BI "remove-older-than " time + Delete all backup sets older than the given time. Old backup sets +@@ -223,6 +231,9 @@ + .I --force + will be needed to delete the files rather than just list them. + ++The note regarding automatic cleanups above ++also applies to remove-all-but-n-full. ++ + .TP + .B verify + Enter verify mode instead of restore. If the --file-to-restore option +diff -urNad duplicity-0.6.12~/src/collections.py duplicity-0.6.12/src/collections.py +--- duplicity-0.6.12~/src/collections.py 2011-03-12 19:45:52.673966360 +1000 ++++ duplicity-0.6.12/src/collections.py 2011-03-12 19:45:52.722966225 +1000 +@@ -991,8 +991,6 @@ + if self.matched_chain_pair: + matched_sig_chain = self.matched_chain_pair[0] + for sig_chain in self.all_sig_chains: +- print sig_chain.start_time, matched_sig_chain.start_time, +- print sig_chain.end_time, matched_sig_chain.end_time + if (sig_chain.start_time == matched_sig_chain.start_time and + sig_chain.end_time == matched_sig_chain.end_time): + old_sig_chains.remove(sig_chain) --- duplicity-0.6.13.orig/debian/patches/05upstreamgpgintf.dpatch +++ duplicity-0.6.13/debian/patches/05upstreamgpgintf.dpatch @@ -0,0 +1,19 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 05upstreamgpgintf.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: ensure that the public gnupginterface module is imported + +@DPATCH@ +diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' duplicity-0.6.12~/src/gpg.py duplicity-0.6.12/src/gpg.py +--- duplicity-0.6.12~/src/gpg.py 2011-03-09 05:54:31.000000000 +1000 ++++ duplicity-0.6.12/src/gpg.py 2011-03-13 00:31:52.648673991 +1000 +@@ -27,7 +27,7 @@ + + from duplicity import misc + from duplicity import globals +-from duplicity import GnuPGInterface ++import GnuPGInterface + + try: + from hashlib import sha1 --- duplicity-0.6.13.orig/debian/examples/system-backup +++ duplicity-0.6.13/debian/examples/system-backup @@ -0,0 +1,116 @@ +#!/bin/bash +# +# Copyright (C) 2007 Francois Marier +# +# This backup script is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of the +# License, or (at your option) any later version. +# +# This script is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Email-Reminder; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. +# +# Usage: +# backup automatic backup +# backup --full force a full backup +# backup --list-current-files list of files currently backed up +# backup --file-to-restore directory/foo restore the given file as "./restored_foo" +# +# Note that the following files should be in the same directory as this script: +# +# include Files and directories to include in the backup (one per line) +# exclude From the directories previously mentioned, which ones to omit +# id_rsa Private ssh key for the backup host +# id_rsa.pub Public ssh key for the backup host (copied there as .ssh/authorized_keys) +# known_hosts Contains the fingerprints for the backup host + +# -----------START OF USER CONFIGURATION------------ + +# HINT: Generate a good passphrase using "pwgen -s 16" +GPG_PASSWORD="" + +# The directory where this script and all the configuration files are located +BACKUP_HOME="/home/my_username/.backup" + +# The name of the database to backup +WIKIDB="wikidb" + +# The MySQL root password +MYSQL_PASSWORD="mysql_root_password" + +# To limit the SCP transfers to a certain number of bytes per second +SCP_LIMIT="520" + +# How many days to keep the old backups +OLDAGE="9D" + +# Which host (using ssh) to copy the backup to +SSH_HOST="username@some_host.somewhere.net" + +# -----------END OF USER CONFIGURATION------------ + +# Internal variables +SSH_IDENTITY="IdentityFile=$BACKUP_HOME/id_rsa" +SSH_HOSTKEY="UserKnownHostsFile=$BACKUP_HOME/known_hosts" +SSH="ssh -o $SSH_IDENTITY -o $SSH_HOSTKEY" +SCP="scp -q -l $SCP_LIMIT -o $SSH_IDENTITY -o $SSH_HOSTKEY" +SFTP="sftp -o $SSH_IDENTITY -o $SSH_HOSTKEY" +INCLUDE_FILE="$BACKUP_HOME/include" +EXCLUDE_FILE="$BACKUP_HOME/exclude" +DUMP_FILE="$BACKUP_HOME/$WIKIDB-dump.sql" +PKG_FILE="$BACKUP_HOME/dpkg-selections" + +# Create the backup directory in case it doesn't exist +$SSH $SSH_HOST mkdir -p $HOSTNAME + +# If the list of files has been requested, only do that +if [ "$1" = "--list-current-files" ]; then + SCP="scp -q -o $SSH_IDENTITY -o $SSH_HOSTKEY" + PASSPHRASE=$GPG_PASSWORD duplicity --list-current-files --ssh-command "$SSH" --scp-command "$SCP" --sftp-command "$SFTP" scp://$SSH_HOST/$HOSTNAME + exit 0 + +# Restore the given file +elif [ "$1" = "--file-to-restore" ]; then + if [ "$2" = "" ]; then + echo "You must specify a file to restore" + exit 2 + fi + SCP="scp -q -o $SSH_IDENTITY -o $SSH_HOSTKEY" + PASSPHRASE=$GPG_PASSWORD duplicity --ssh-command "$SSH" --scp-command "$SCP" --sftp-command "$SFTP" --file-to-restore "$2" scp://$SSH_HOST/$HOSTNAME restored_`basename $2` + exit 0 + +# Catch invalid arguments +elif [ "$1" != "--full" -a "$1" != "" ]; then + echo "Invalid argument: $1" + exit 1 +fi + +# Delete files related to failed backups +PASSPHRASE=$GPG_PASSWORD duplicity --cleanup --verbosity 1 --sftp-command "$SFTP" scp://$SSH_HOST/$HOSTNAME + +# Delete old expired backups +PASSPHRASE=$GPG_PASSWORD duplicity --force --remove-older-than $OLDAGE --verbosity 1 --sftp-command "$SFTP" scp://$SSH_HOST/$HOSTNAME + +# Dump Wiki DB and list of Debian packages +mysqldump --opt $WIKIDB -uroot -p$MYSQL_PASSWORD > $DUMP_FILE +dpkg --get-selections > $PKG_FILE + +# Check whether a full backup was requested +FULLBACKUP="" +if [ "$1" = "--full" ]; then + FULLBACKUP="--full" +fi + +# Do the actual backup using Duplicity +PASSPHRASE=$GPG_PASSWORD duplicity $FULLBACKUP --no-print-statistics --remove-older-than $OLDAGE --verbosity 1 --exclude-device-files --include $PKG_FILE --include $DUMP_FILE --exclude-globbing-filelist $EXCLUDE_FILE --include-globbing-filelist $INCLUDE_FILE --exclude '**' --ssh-command "$SSH" --scp-command "$SCP" --sftp-command "$SFTP" / scp://$SSH_HOST/$HOSTNAME + +# Cleanup the temporary files +rm -f $DUMP_FILE +rm -f $PKG_FILE