diff options
author | wiz <wiz@pkgsrc.org> | 2011-05-16 13:52:56 +0000 |
---|---|---|
committer | wiz <wiz@pkgsrc.org> | 2011-05-16 13:52:56 +0000 |
commit | 235d23153bc054504b9223d788607c0beea48566 (patch) | |
tree | e3b07407dfedbe0a900cc91c1bb8cd8e9d49d65e /sysutils/bup | |
parent | 1917d86ba9c01a80a299a99a6c7cf8ba0ab236d3 (diff) | |
download | pkgsrc-235d23153bc054504b9223d788607c0beea48566.tar.gz |
Initial import of bup-0.24b.
bup is a program that backs things up. bup has a few advantages
over other backup software:
It uses a rolling checksum algorithm (similar to rsync) to split
large files into chunks. The most useful result of this is you can
backup huge virtual machine (VM) disk images, databases, and XML
files incrementally, even though they're typically all in one huge
file, and not use tons of disk space for multiple versions.
It uses the packfile format from git (the open source version
control system), so you can access the stored data even if you
don't like bup's user interface.
Unlike git, it writes packfiles directly (instead of having a
separate garbage collection / repacking stage) so it's fast even
with gratuitously huge amounts of data. bup's improved index formats
also allow you to track far more filenames than git (millions) and
keep track of far more objects (hundreds or thousands of gigabytes).
Data is "automagically" shared between incremental backups without
having to know which backup is based on which other one - even if
the backups are made from two different computers that don't even
know about each other. You just tell bup to back stuff up, and it
saves only the minimum amount of data needed.
You can back up directly to a remote bup server, without needing
tons of temporary disk space on the computer being backed up. And
if your backup is interrupted halfway through, the next run will
pick up where you left off. And it's easy to set up a bup server:
just install bup on any machine where you have ssh access.
Bup can use "par2" redundancy to recover corrupted backups even if
your disk has undetected bad sectors.
Even when a backup is incremental, you don't have to worry about
restoring the full backup, then each of the incrementals in turn;
an incremental backup acts as if it's a full backup, it just takes
less disk space.
You can mount your bup repository as a FUSE filesystem and access
the content that way, and even export it over Samba.
Diffstat (limited to 'sysutils/bup')
-rw-r--r-- | sysutils/bup/DESCR | 41 | ||||
-rw-r--r-- | sysutils/bup/Makefile | 86 | ||||
-rw-r--r-- | sysutils/bup/PLIST | 100 | ||||
-rw-r--r-- | sysutils/bup/distinfo | 10 | ||||
-rw-r--r-- | sysutils/bup/patches/patch-Makefile | 25 | ||||
-rw-r--r-- | sysutils/bup/patches/patch-lib_bup_t_tgit.py | 29 |
6 files changed, 291 insertions, 0 deletions
diff --git a/sysutils/bup/DESCR b/sysutils/bup/DESCR new file mode 100644 index 00000000000..5512feb9597 --- /dev/null +++ b/sysutils/bup/DESCR @@ -0,0 +1,41 @@ +bup is a program that backs things up. bup has a few advantages +over other backup software: + +It uses a rolling checksum algorithm (similar to rsync) to split +large files into chunks. The most useful result of this is you can +backup huge virtual machine (VM) disk images, databases, and XML +files incrementally, even though they're typically all in one huge +file, and not use tons of disk space for multiple versions. + +It uses the packfile format from git (the open source version +control system), so you can access the stored data even if you +don't like bup's user interface. + +Unlike git, it writes packfiles directly (instead of having a +separate garbage collection / repacking stage) so it's fast even +with gratuitously huge amounts of data. bup's improved index formats +also allow you to track far more filenames than git (millions) and +keep track of far more objects (hundreds or thousands of gigabytes). + +Data is "automagically" shared between incremental backups without +having to know which backup is based on which other one - even if +the backups are made from two different computers that don't even +know about each other. You just tell bup to back stuff up, and it +saves only the minimum amount of data needed. + +You can back up directly to a remote bup server, without needing +tons of temporary disk space on the computer being backed up. And +if your backup is interrupted halfway through, the next run will +pick up where you left off. And it's easy to set up a bup server: +just install bup on any machine where you have ssh access. + +Bup can use "par2" redundancy to recover corrupted backups even if +your disk has undetected bad sectors. + +Even when a backup is incremental, you don't have to worry about +restoring the full backup, then each of the incrementals in turn; +an incremental backup acts as if it's a full backup, it just takes +less disk space. + +You can mount your bup repository as a FUSE filesystem and access +the content that way, and even export it over Samba. diff --git a/sysutils/bup/Makefile b/sysutils/bup/Makefile new file mode 100644 index 00000000000..0fb35ceeb12 --- /dev/null +++ b/sysutils/bup/Makefile @@ -0,0 +1,86 @@ +# $NetBSD: Makefile,v 1.1.1.1 2011/05/16 13:52:56 wiz Exp $ +# + +DISTNAME= bup-0.24b +CATEGORIES= sysutils +MASTER_SITES= # manually packaged since master site is git repository +# and only available via https +# https://github.com/apenwarr/bup/tarball/ +# doc tarball: switch to "man" branch before downloading +DISTFILES= ${DISTNAME}${EXTRACT_SUFX} ${DISTNAME:S/bup/bup-man/}${EXTRACT_SUFX} + +MAINTAINER= wiz@NetBSD.org +HOMEPAGE= http://github.com/apenwarr/bup +COMMENT= Highly efficient file backup system based on the git packfile format +LICENSE= gnu-gpl-v2 + +DEPENDS+= par2-[0-9]*:../../archivers/par2 +DEPENDS+= scmgit-base-[0-9]*:../../devel/scmgit-base + +PKG_DESTDIR_SUPPORT= user-destdir + +# needs changing on each update +DOCDIR= ${WRKDIR}/apenwarr-bup-1783a57 +WRKSRC= ${WRKDIR}/apenwarr-bup-d8d6406 + +INSTALLATION_DIRS= ${PKGMANDIR}/man1 + +TEST_TARGET= test + +USE_TOOLS+= gmake perl +REPLACE_PERL= format-subst.pl wvtestrun +REPLACE_PYTHON+= cmd/bloom-cmd.py +REPLACE_PYTHON+= cmd/daemon-cmd.py +REPLACE_PYTHON+= cmd/damage-cmd.py +REPLACE_PYTHON+= cmd/drecurse-cmd.py +REPLACE_PYTHON+= cmd/fsck-cmd.py +REPLACE_PYTHON+= cmd/ftp-cmd.py +REPLACE_PYTHON+= cmd/fuse-cmd.py +REPLACE_PYTHON+= cmd/help-cmd.py +REPLACE_PYTHON+= cmd/index-cmd.py +REPLACE_PYTHON+= cmd/init-cmd.py +REPLACE_PYTHON+= cmd/join-cmd.py +REPLACE_PYTHON+= cmd/list-idx-cmd.py +REPLACE_PYTHON+= cmd/ls-cmd.py +REPLACE_PYTHON+= cmd/margin-cmd.py +REPLACE_PYTHON+= cmd/memtest-cmd.py +REPLACE_PYTHON+= cmd/midx-cmd.py +REPLACE_PYTHON+= cmd/mux-cmd.py +REPLACE_PYTHON+= cmd/newliner-cmd.py +REPLACE_PYTHON+= cmd/on--server-cmd.py +REPLACE_PYTHON+= cmd/on-cmd.py +REPLACE_PYTHON+= cmd/random-cmd.py +REPLACE_PYTHON+= cmd/restore-cmd.py +REPLACE_PYTHON+= cmd/save-cmd.py +REPLACE_PYTHON+= cmd/server-cmd.py +REPLACE_PYTHON+= cmd/split-cmd.py +REPLACE_PYTHON+= cmd/tag-cmd.py +REPLACE_PYTHON+= cmd/tick-cmd.py +REPLACE_PYTHON+= cmd/version-cmd.py +REPLACE_PYTHON+= cmd/web-cmd.py +REPLACE_PYTHON+= lib/tornado/__init__.py +REPLACE_PYTHON+= lib/tornado/auth.py +REPLACE_PYTHON+= lib/tornado/autoreload.py +REPLACE_PYTHON+= lib/tornado/database.py +REPLACE_PYTHON+= lib/tornado/escape.py +REPLACE_PYTHON+= lib/tornado/httpclient.py +REPLACE_PYTHON+= lib/tornado/httpserver.py +REPLACE_PYTHON+= lib/tornado/httputil.py +REPLACE_PYTHON+= lib/tornado/ioloop.py +REPLACE_PYTHON+= lib/tornado/iostream.py +REPLACE_PYTHON+= lib/tornado/locale.py +REPLACE_PYTHON+= lib/tornado/options.py +REPLACE_PYTHON+= lib/tornado/s3server.py +REPLACE_PYTHON+= lib/tornado/template.py +REPLACE_PYTHON+= lib/tornado/test/test_ioloop.py +REPLACE_PYTHON+= lib/tornado/web.py +REPLACE_PYTHON+= lib/tornado/websocket.py +REPLACE_PYTHON+= lib/tornado/wsgi.py +REPLACE_PYTHON+= main.py +REPLACE_PYTHON+= wvtest.py + +post-install: + ${INSTALL_DATA} ${DOCDIR}/*.1 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man1 + +.include "../../lang/python/application.mk" +.include "../../mk/bsd.pkg.mk" diff --git a/sysutils/bup/PLIST b/sysutils/bup/PLIST new file mode 100644 index 00000000000..bf3d1b714fd --- /dev/null +++ b/sysutils/bup/PLIST @@ -0,0 +1,100 @@ +@comment $NetBSD: PLIST,v 1.1.1.1 2011/05/16 13:52:56 wiz Exp $ +bin/bup +lib/bup/bup/__init__.py +lib/bup/bup/_helpers.so +lib/bup/bup/_version.py +lib/bup/bup/bloom.py +lib/bup/bup/client.py +lib/bup/bup/csetup.py +lib/bup/bup/drecurse.py +lib/bup/bup/git.py +lib/bup/bup/hashsplit.py +lib/bup/bup/helpers.py +lib/bup/bup/index.py +lib/bup/bup/midx.py +lib/bup/bup/options.py +lib/bup/bup/path.py +lib/bup/bup/shquote.py +lib/bup/bup/ssh.py +lib/bup/bup/vfs.py +lib/bup/cmd/bup-bloom +lib/bup/cmd/bup-daemon +lib/bup/cmd/bup-damage +lib/bup/cmd/bup-drecurse +lib/bup/cmd/bup-fsck +lib/bup/cmd/bup-ftp +lib/bup/cmd/bup-fuse +lib/bup/cmd/bup-help +lib/bup/cmd/bup-import-rsnapshot +lib/bup/cmd/bup-index +lib/bup/cmd/bup-init +lib/bup/cmd/bup-join +lib/bup/cmd/bup-list-idx +lib/bup/cmd/bup-ls +lib/bup/cmd/bup-margin +lib/bup/cmd/bup-memtest +lib/bup/cmd/bup-midx +lib/bup/cmd/bup-mux +lib/bup/cmd/bup-newliner +lib/bup/cmd/bup-on +lib/bup/cmd/bup-on--server +lib/bup/cmd/bup-random +lib/bup/cmd/bup-restore +lib/bup/cmd/bup-save +lib/bup/cmd/bup-server +lib/bup/cmd/bup-split +lib/bup/cmd/bup-tag +lib/bup/cmd/bup-tick +lib/bup/cmd/bup-version +lib/bup/cmd/bup-web +lib/bup/tornado/__init__.py +lib/bup/tornado/auth.py +lib/bup/tornado/autoreload.py +lib/bup/tornado/database.py +lib/bup/tornado/escape.py +lib/bup/tornado/httpclient.py +lib/bup/tornado/httpserver.py +lib/bup/tornado/httputil.py +lib/bup/tornado/ioloop.py +lib/bup/tornado/iostream.py +lib/bup/tornado/locale.py +lib/bup/tornado/options.py +lib/bup/tornado/s3server.py +lib/bup/tornado/template.py +lib/bup/tornado/web.py +lib/bup/tornado/websocket.py +lib/bup/tornado/win32_support.py +lib/bup/tornado/wsgi.py +lib/bup/web/list-directory.html +lib/bup/web/static/styles.css +man/man1/bup-bloom.1 +man/man1/bup-daemon.1 +man/man1/bup-damage.1 +man/man1/bup-drecurse.1 +man/man1/bup-fsck.1 +man/man1/bup-ftp.1 +man/man1/bup-fuse.1 +man/man1/bup-help.1 +man/man1/bup-import-rsnapshot.1 +man/man1/bup-index.1 +man/man1/bup-init.1 +man/man1/bup-join.1 +man/man1/bup-ls.1 +man/man1/bup-margin.1 +man/man1/bup-memtest.1 +man/man1/bup-meta.1 +man/man1/bup-midx.1 +man/man1/bup-mux.1 +man/man1/bup-newliner.1 +man/man1/bup-on.1 +man/man1/bup-random.1 +man/man1/bup-restore.1 +man/man1/bup-save.1 +man/man1/bup-server.1 +man/man1/bup-split.1 +man/man1/bup-tag.1 +man/man1/bup-tick.1 +man/man1/bup-web.1 +man/man1/bup.1 +@pkgdir share/man/man1 +@pkgdir share/doc/bup diff --git a/sysutils/bup/distinfo b/sysutils/bup/distinfo new file mode 100644 index 00000000000..e70a2f8a108 --- /dev/null +++ b/sysutils/bup/distinfo @@ -0,0 +1,10 @@ +$NetBSD: distinfo,v 1.1.1.1 2011/05/16 13:52:56 wiz Exp $ + +SHA1 (bup-0.24b.tar.gz) = 478aa11b9f1ecc72d6d1ca07fb543042d152b81e +RMD160 (bup-0.24b.tar.gz) = f2c3474c9f5467ad95153725947cc6c3a016f0f0 +Size (bup-0.24b.tar.gz) = 330630 bytes +SHA1 (bup-man-0.24b.tar.gz) = 03e84f5e61405a00750a7f1bd3ea9e9213a9ffd7 +RMD160 (bup-man-0.24b.tar.gz) = dff92315d4b54c5373fd21130c52987899e793f2 +Size (bup-man-0.24b.tar.gz) = 21950 bytes +SHA1 (patch-Makefile) = 6fe278c6ccfbda257880e4d8b52730238d3dbcb7 +SHA1 (patch-lib_bup_t_tgit.py) = aaf8fb8738aef2dae5379848895de1532118ea51 diff --git a/sysutils/bup/patches/patch-Makefile b/sysutils/bup/patches/patch-Makefile new file mode 100644 index 00000000000..11607fb070f --- /dev/null +++ b/sysutils/bup/patches/patch-Makefile @@ -0,0 +1,25 @@ +$NetBSD: patch-Makefile,v 1.1.1.1 2011/05/16 13:52:56 wiz Exp $ + +Install into PREFIX, and remove PYTHON override (set from pkgsrc Makefile). + +--- Makefile.orig 2011-03-20 07:40:42.000000000 +0000 ++++ Makefile +@@ -15,13 +15,12 @@ bup: lib/bup/_version.py lib/bup/_helper + Documentation/all: bup + + INSTALL=install +-PYTHON=python +-MANDIR=$(DESTDIR)/usr/share/man +-DOCDIR=$(DESTDIR)/usr/share/doc/bup +-BINDIR=$(DESTDIR)/usr/bin +-LIBDIR=$(DESTDIR)/usr/lib/bup ++MANDIR=$(DESTDIR)$(PREFIX)/share/man ++DOCDIR=$(DESTDIR)$(PREFIX)/share/doc/bup ++BINDIR=$(DESTDIR)$(PREFIX)/bin ++LIBDIR=$(DESTDIR)$(PREFIX)/lib/bup + install: all +- $(INSTALL) -d $(MANDIR)/man1 $(DOCDIR) $(BINDIR) \ ++ $(INSTALL) -d $(BINDIR) \ + $(LIBDIR)/bup $(LIBDIR)/cmd $(LIBDIR)/tornado \ + $(LIBDIR)/web $(LIBDIR)/web/static + [ ! -e Documentation/.docs-available ] || \ diff --git a/sysutils/bup/patches/patch-lib_bup_t_tgit.py b/sysutils/bup/patches/patch-lib_bup_t_tgit.py new file mode 100644 index 00000000000..cb17eca1837 --- /dev/null +++ b/sysutils/bup/patches/patch-lib_bup_t_tgit.py @@ -0,0 +1,29 @@ +$NetBSD: patch-lib_bup_t_tgit.py,v 1.1.1.1 2011/05/16 13:52:56 wiz Exp $ + +Fix test case, from upstream git. + +--- lib/bup/t/tgit.py.orig 2011-05-12 16:51:44.000000000 +0000 ++++ lib/bup/t/tgit.py +@@ -145,17 +145,18 @@ def test_long_index(): + @wvtest + def test_check_repo_or_die(): + git.check_repo_or_die() +- WVPASS('check_repo_or_die') # if we reach this point the call above passed ++ WVPASS('check_repo_or_die') # if we reach this point the call above passed + +- mode = os.stat('pybuptest.tmp').st_mode +- os.chmod('pybuptest.tmp', 0000) ++ os.rename('pybuptest.tmp/objects/pack', 'pybuptest.tmp/objects/pack.tmp') ++ open('pybuptest.tmp/objects/pack', 'w').close() + try: + git.check_repo_or_die() + except SystemExit, e: + WVPASSEQ(e.code, 14) + else: + WVFAIL() +- os.chmod('pybuptest.tmp', mode) ++ os.unlink('pybuptest.tmp/objects/pack') ++ os.rename('pybuptest.tmp/objects/pack.tmp', 'pybuptest.tmp/objects/pack') + + try: + git.check_repo_or_die('nonexistantbup.tmp') |