summaryrefslogtreecommitdiff
path: root/sysutils/bup
diff options
context:
space:
mode:
authorwiz <wiz@pkgsrc.org>2011-05-16 13:52:56 +0000
committerwiz <wiz@pkgsrc.org>2011-05-16 13:52:56 +0000
commit235d23153bc054504b9223d788607c0beea48566 (patch)
treee3b07407dfedbe0a900cc91c1bb8cd8e9d49d65e /sysutils/bup
parent1917d86ba9c01a80a299a99a6c7cf8ba0ab236d3 (diff)
downloadpkgsrc-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/DESCR41
-rw-r--r--sysutils/bup/Makefile86
-rw-r--r--sysutils/bup/PLIST100
-rw-r--r--sysutils/bup/distinfo10
-rw-r--r--sysutils/bup/patches/patch-Makefile25
-rw-r--r--sysutils/bup/patches/patch-lib_bup_t_tgit.py29
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')