diff options
58 files changed, 2154 insertions, 0 deletions
diff --git a/misc/amanda-client/Makefile b/misc/amanda-client/Makefile new file mode 100644 index 00000000000..a0772315d0f --- /dev/null +++ b/misc/amanda-client/Makefile @@ -0,0 +1,40 @@ +# $NetBSD: Makefile,v 1.1.1.1 1999/02/23 17:03:42 bouyer Exp $ +# FreeBSD Id: Makefile,v 1.9 1997/03/08 05:00:11 gpalmer Exp +# + +DISTNAME= amanda-2.4.1p1 +PKGNAME= amanda-client-2.4.1p1 +CATEGORIES= misc +MASTER_SITES= ftp://ftp.cs.umd.edu/pub/amanda/ + +MAINTAINER= packages@netbsd.org +HOMEPAGE= http://www.amanda.org/ + +DEPENDS+= readline-2.2:../../devel/readline +DEPENDS+= gtar-1.12:../../archivers/gtar +DEPENDS+= amanda-common-2.4.1p1:../amanda-common + +USE_LIBTOOL= yes +GNU_CONFIGURE= yes + +.include "../../mk/bsd.prefs.mk" +AMANDA_USER?= backup +AMANDA_GROUP= operator + +CONFIGURE_ARGS+= --with-user=${AMANDA_USER} \ + --with-group=${AMANDA_GROUP} \ + --with-mmap --with-amandahosts \ + --with-includes=${PREFIX}/include \ + --with-libraries=${PREFIX}/lib \ + --with-dump-honor-nodump \ + --without-server --without-restore + +.if defined(AMANDA_SMB) +CONFIGURE_ARGS+= --with-smbclient +DEPENDS+= samba-2.0.2:../../net/samba +.endif + +CONFIGURE_ENV+= INSTALL_SCRIPT="${INSTALL_SCRIPT}" + + +.include "../../mk/bsd.pkg.mk" diff --git a/misc/amanda-client/files/md5 b/misc/amanda-client/files/md5 new file mode 100644 index 00000000000..47cdce05477 --- /dev/null +++ b/misc/amanda-client/files/md5 @@ -0,0 +1,3 @@ +$NetBSD: md5,v 1.1.1.1 1999/02/23 17:03:42 bouyer Exp $ + +MD5 (amanda-2.4.1p1.tar.gz) = 13f34dc97c35f85f88e54ca25b2009ed diff --git a/misc/amanda-client/patches/patch-aa b/misc/amanda-client/patches/patch-aa new file mode 100644 index 00000000000..1dcb847b0a2 --- /dev/null +++ b/misc/amanda-client/patches/patch-aa @@ -0,0 +1,20 @@ +$NetBSD: patch-aa,v 1.1.1.1 1999/02/23 17:03:42 bouyer Exp $ + +--- configure.orig Sat Jul 18 10:34:33 1998 ++++ configure Sat Jul 18 10:35:03 1998 +@@ -4204,6 +4204,7 @@ + echo "$ac_t""no" 1>&6 + fi + ++if false; then + # Always use our own libtool. + LIBTOOL='$(SHELL) $(top_builddir)/libtool' + +@@ -4249,6 +4250,7 @@ + ${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig \ + $libtool_flags --no-verify $ac_aux_dir/ltmain.sh $host \ + || { echo "configure: error: libtool configure failed" 1>&2; exit 1; } ++fi + + # Extract the first word of "gcc", so it can be a program name with args. + set dummy gcc; ac_word=$2 diff --git a/misc/amanda-client/patches/patch-ab b/misc/amanda-client/patches/patch-ab new file mode 100644 index 00000000000..dc7498adf32 --- /dev/null +++ b/misc/amanda-client/patches/patch-ab @@ -0,0 +1,144 @@ +--- client-src/Makefile.in.old Tue Feb 23 11:09:57 1999 ++++ client-src/Makefile.in Tue Feb 23 11:11:28 1999 +@@ -83,7 +83,7 @@ + BUILD_CLIENT_SCRIPTS_LIBEXEC = @BUILD_CLIENT_SCRIPTS_LIBEXEC@ + BUILD_CLIENT_SCRIPTS_SBIN = @BUILD_CLIENT_SCRIPTS_SBIN@ + BUILD_COMMON_LIB = @BUILD_COMMON_LIB@ +-BUILD_COMMON_LTLIB = @BUILD_COMMON_LTLIB@ ++BUILD_COMMON_LTLIB = + BUILD_RECOVER_PROGS_SBIN = @BUILD_RECOVER_PROGS_SBIN@ + BUILD_RESTORE_PROGS_LIBEXEC = @BUILD_RESTORE_PROGS_LIBEXEC@ + BUILD_RESTORE_PROGS_SBIN = @BUILD_RESTORE_PROGS_SBIN@ +@@ -162,12 +162,11 @@ + + COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(AMANDA_CFLAGS) + +-LDADD = libamclient.$(LIB_EXTENSION) \ +- ../common-src/libamanda.$(LIB_EXTENSION) ++LDADD = libamclient.$(LIB_EXTENSION) + + SUFFIXES = .sh .pl + +-libexec_PROGRAMS = versionsuffix @BUILD_CLIENT_PROGS_LIBEXEC@ ++libexec_PROGRAMS = @BUILD_CLIENT_PROGS_LIBEXEC@ + + # these are used for testing only: + TEST_PROGS = getfsent +@@ -224,7 +223,7 @@ + DEFS = @DEFS@ -I. -I$(srcdir) -I../config + CPPFLAGS = @CPPFLAGS@ + LDFLAGS = @LDFLAGS@ +-LIBS = @LIBS@ ++LIBS = @LIBS@ -lamanda + libamclient_a_OBJECTS = amandates.o getfsent.o unctime.o + LTLIBRARIES = $(lib_LTLIBRARIES) + +@@ -234,60 +233,50 @@ + amandad_SOURCES = amandad.c + amandad_OBJECTS = amandad.o + amandad_LDADD = $(LDADD) +-amandad_DEPENDENCIES = libamclient.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++amandad_DEPENDENCIES = libamclient.$(LIB_EXTENSION) + amandad_LDFLAGS = + calcsize_SOURCES = calcsize.c + calcsize_OBJECTS = calcsize.o + calcsize_LDADD = $(LDADD) +-calcsize_DEPENDENCIES = libamclient.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++calcsize_DEPENDENCIES = libamclient.$(LIB_EXTENSION) + calcsize_LDFLAGS = + killpgrp_SOURCES = killpgrp.c + killpgrp_OBJECTS = killpgrp.o + killpgrp_LDADD = $(LDADD) +-killpgrp_DEPENDENCIES = libamclient.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++killpgrp_DEPENDENCIES = libamclient.$(LIB_EXTENSION) + killpgrp_LDFLAGS = + rundump_SOURCES = rundump.c + rundump_OBJECTS = rundump.o + rundump_LDADD = $(LDADD) +-rundump_DEPENDENCIES = libamclient.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++rundump_DEPENDENCIES = libamclient.$(LIB_EXTENSION) + rundump_LDFLAGS = + runtar_SOURCES = runtar.c + runtar_OBJECTS = runtar.o + runtar_LDADD = $(LDADD) +-runtar_DEPENDENCIES = libamclient.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++runtar_DEPENDENCIES = libamclient.$(LIB_EXTENSION) + runtar_LDFLAGS = + selfcheck_SOURCES = selfcheck.c + selfcheck_OBJECTS = selfcheck.o + selfcheck_LDADD = $(LDADD) +-selfcheck_DEPENDENCIES = libamclient.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++selfcheck_DEPENDENCIES = libamclient.$(LIB_EXTENSION) + selfcheck_LDFLAGS = + sendbackup_OBJECTS = sendbackup.o sendbackup-dump.o sendbackup-gnutar.o + sendbackup_LDADD = $(LDADD) +-sendbackup_DEPENDENCIES = libamclient.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++sendbackup_DEPENDENCIES = libamclient.$(LIB_EXTENSION) + sendbackup_LDFLAGS = + sendsize_SOURCES = sendsize.c + sendsize_OBJECTS = sendsize.o + sendsize_LDADD = $(LDADD) +-sendsize_DEPENDENCIES = libamclient.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++sendsize_DEPENDENCIES = libamclient.$(LIB_EXTENSION) + sendsize_LDFLAGS = + getfsent_OBJECTS = getfsent.test.o + getfsent_LDADD = $(LDADD) +-getfsent_DEPENDENCIES = libamclient.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++getfsent_DEPENDENCIES = libamclient.$(LIB_EXTENSION) + getfsent_LDFLAGS = + versionsuffix_SOURCES = versionsuffix.c + versionsuffix_OBJECTS = versionsuffix.o + versionsuffix_LDADD = $(LDADD) +-versionsuffix_DEPENDENCIES = libamclient.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++versionsuffix_DEPENDENCIES = libamclient.$(LIB_EXTENSION) + versionsuffix_LDFLAGS = + SCRIPTS = $(libexec_SCRIPTS) $(sbin_SCRIPTS) + +--- recover-src/Makefile.in.old Tue Feb 23 11:34:04 1999 ++++ recover-src/Makefile.in Tue Feb 23 11:36:07 1999 +@@ -83,7 +83,7 @@ + BUILD_CLIENT_SCRIPTS_LIBEXEC = @BUILD_CLIENT_SCRIPTS_LIBEXEC@ + BUILD_CLIENT_SCRIPTS_SBIN = @BUILD_CLIENT_SCRIPTS_SBIN@ + BUILD_COMMON_LIB = @BUILD_COMMON_LIB@ +-BUILD_COMMON_LTLIB = @BUILD_COMMON_LTLIB@ ++BUILD_COMMON_LTLIB = + BUILD_RECOVER_PROGS_SBIN = @BUILD_RECOVER_PROGS_SBIN@ + BUILD_RESTORE_PROGS_LIBEXEC = @BUILD_RESTORE_PROGS_LIBEXEC@ + BUILD_RESTORE_PROGS_SBIN = @BUILD_RESTORE_PROGS_SBIN@ +@@ -164,9 +164,7 @@ + COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(AMANDA_CFLAGS) + + LDADD = @LEXLIB@ \ +- ../client-src/libamclient.$(LIB_EXTENSION) \ +- ../tape-src/libamtape.$(LIB_EXTENSION) \ +- ../common-src/libamanda.$(LIB_EXTENSION) ++ ../client-src/libamclient.$(LIB_EXTENSION) + + EXTRA_PROGRAMS = amrecover + +@@ -189,13 +187,11 @@ + DEFS = @DEFS@ -I. -I$(srcdir) -I../config + CPPFLAGS = @CPPFLAGS@ + LDFLAGS = @LDFLAGS@ +-LIBS = @LIBS@ ++LIBS = @LIBS@ -lamanda -lamtape + amrecover_OBJECTS = amrecover.o display_commands.o extract_list.o \ + help.o set_commands.o uparse.o uscan.o + amrecover_LDADD = $(LDADD) +-amrecover_DEPENDENCIES = ../client-src/libamclient.$(LIB_EXTENSION) \ +-../tape-src/libamtape.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++amrecover_DEPENDENCIES = ../client-src/libamclient.$(LIB_EXTENSION) + amrecover_LDFLAGS = + LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ + LEXLIB = @LEXLIB@ diff --git a/misc/amanda-client/patches/patch-ac b/misc/amanda-client/patches/patch-ac new file mode 100644 index 00000000000..a89f09768e9 --- /dev/null +++ b/misc/amanda-client/patches/patch-ac @@ -0,0 +1,11 @@ +--- Makefile.in.old Tue Feb 23 10:37:10 1999 ++++ Makefile.in Tue Feb 23 10:38:36 1999 +@@ -157,7 +157,7 @@ + AUTOCONF = @AUTOCONF@ --localdir=config + + SUBDIRS=config \ +- common-src client-src tape-src \ ++ client-src tape-src \ + server-src restore-src recover-src \ + changer-src amplot man \ + example diff --git a/misc/amanda-client/patches/patch-ad b/misc/amanda-client/patches/patch-ad new file mode 100644 index 00000000000..83b2a57a2b9 --- /dev/null +++ b/misc/amanda-client/patches/patch-ad @@ -0,0 +1,16 @@ +--- man/Makefile.in.old Tue Feb 23 11:12:23 1999 ++++ man/Makefile.in Tue Feb 23 11:12:46 1999 +@@ -158,12 +158,7 @@ + + transform = s,x,x,; + +-man_MANS = amadmin.8 amanda.8 amcheck.8 \ +- amcheckdb.8 amcleanup.8 amdump.8 \ +- amflush.8 amlabel.8 amoverview.8 \ +- amplot.8 amrecover.8 amrestore.8 \ +- amrmtape.8 amtape.8 amtoc.8 \ +- amverify.8 amstatus.8 amreport.8 ++man_MANS = amrecover.8 + + EXTRA_DIST = amplot.8 amrestore.8 amtape.8 + mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs diff --git a/misc/amanda-client/pkg/COMMENT b/misc/amanda-client/pkg/COMMENT new file mode 100644 index 00000000000..87b97277da1 --- /dev/null +++ b/misc/amanda-client/pkg/COMMENT @@ -0,0 +1 @@ +The Advanced Maryland Automatic Network Disk Archiver diff --git a/misc/amanda-client/pkg/DESCR b/misc/amanda-client/pkg/DESCR new file mode 100644 index 00000000000..a605558ea0a --- /dev/null +++ b/misc/amanda-client/pkg/DESCR @@ -0,0 +1,67 @@ +This is an alpha-test release of Amanda, the Advanced Maryland Automatic +Network Disk Archiver. Amanda is a backup system designed to archive many +computers on a network to a single large-capacity tape drive. This release +is currently in daily use at the University of Maryland at College Park +Computer Science Department, backing up all the disks on all the +workstations in the department: currently over 70 gigabytes of data across +more than 400 filesystems on more than 146 workstations and servers, using +a single 5 Gigabyte Exabyte EXB-8500. Here are some features of Amanda: + + * written in C, freely distributable. + * built on top of standard backup software: BSD Unix dump/restore, and + later GNU Tar and others. + * will back up multiple machines in parallel to a holding disk, blasting + finished dumps one by one to tape as fast as we can write files to + tape. For example, a ~2 Gb 8mm tape on a ~240K/s interface to a host + with a large holding disk can be filled by Amanda in under 4 hours. + * does simple tape management: will not overwrite the wrong tape. + * supports tape changers via a generic interface. Easily customizable to + any type of tape carousel, robot, or stacker that can be controlled via + the unix command line. + * supports Kerberos 4 security, including encrypted dumps. The Kerberos + support is available as a separate add-on package, see the file + KERBEROS.HOW-TO-GET on the ftp site, and the file docs/KERBEROS in this + package, for more details. + * for a restore, tells you what tapes you need, and finds the proper + backup image on the tape for you. + * recovers gracefully from errors, including down or hung machines. + * reports results, including all errors in detail, in email to operators. + * will dynamically adjust backup schedule to keep within constraints: no + more juggling by hand when adding disks and computers to network. + * includes a pre-run checker program, that conducts sanity checks on both + the tape server host and all the client hosts (in parallel), and will + send an e-mail report of any problems that could cause the backups to + fail. + * can compress dumps before sending over net, with either compress or gzip. + * can optionally syncronize with external backups, for those large + timesharing computers where you want to do full dumps when the system + is down in single-user mode (since BSD dump is not reliable on active + filesystems): Amanda will still do your daily dumps. + * lots of other options; Amanda is very configurable. + +Amanda requires a host that is mostly idle at night, with a large capacity +tape drive (e.g. an EXABYTE or DAT tape). This becomes the "tape server +host". All the computers you are going to dump are the "backup client +hosts". The server host can also be a client host. + +Amanda works best with one or more large "holding disk" partition on the +server host available to it for buffering dumps before writing to tape. +The holding disk allows Amanda to run backups in parallel to the disk, only +writing them to tape when the backup is finished. Note that the holding +disk is not required: without it Amanda will run backups sequentially to +the tape drive. Running it this way kills the great performance, but still +allows you to take advantage of Amanda's other features. + +As a rule of thumb, for best performance the holding disk should be larger +than the dump output from your largest disk partitions. For example, if +you are backing up some full gigabyte disks that compress down to 500 MB, +then you'll want 500 MB on your holding disk. On the other hand, if those +gigabyte drives are partitioned into 500 MB filesystems, they'll probably +compress down to 250 MB and you'll only need that much on your holding +disk. Amanda will perform better with larger holding disks. We use 800 MB +for our holding disk. + +Actually, Amanda will still work if you have full dumps that are larger +than the holding disk: Amanda will send those dumps directly to tape one at +a time. If you have many such dumps you will be limited by the dump speed +of those machines. diff --git a/misc/amanda-client/pkg/PLIST b/misc/amanda-client/pkg/PLIST new file mode 100644 index 00000000000..121244ea7c1 --- /dev/null +++ b/misc/amanda-client/pkg/PLIST @@ -0,0 +1,14 @@ +@comment $NetBSD: PLIST,v 1.1.1.1 1999/02/23 17:03:42 bouyer Exp $ +lib/libamclient.a +lib/libamclient-2.4.1p1.so.0.0 +libexec/amandad +libexec/calcsize +libexec/killpgrp +libexec/patch-system +libexec/rundump +libexec/runtar +libexec/selfcheck +libexec/sendbackup +libexec/sendsize +man/man8/amrecover.8 +sbin/amrecover diff --git a/misc/amanda-common/Makefile b/misc/amanda-common/Makefile new file mode 100644 index 00000000000..01cc1ef142a --- /dev/null +++ b/misc/amanda-common/Makefile @@ -0,0 +1,33 @@ +# $NetBSD: Makefile,v 1.1.1.1 1999/02/23 17:03:41 bouyer Exp $ +# FreeBSD Id: Makefile,v 1.9 1997/03/08 05:00:11 gpalmer Exp +# + +DISTNAME= amanda-2.4.1p1 +PKGNAME= amanda-common-2.4.1p1 +CATEGORIES= misc +MASTER_SITES= ftp://ftp.cs.umd.edu/pub/amanda/ + +MAINTAINER= packages@netbsd.org +HOMEPAGE= http://www.amanda.org/ + +DEPENDS+= addnerd-1.6:../../sysutils/addnerd + +AMANDA_USER?= backup +AMANDA_GROUP= operator + +USE_LIBTOOL= yes +GNU_CONFIGURE= yes +CONFIGURE_ARGS+= --with-user=${AMANDA_USER} \ + --with-group=${AMANDA_GROUP} \ + --with-mmap --with-amandahosts \ + --with-includes=${PREFIX}/include \ + --with-libraries=${PREFIX}/lib \ + --with-dump-honor-nodump \ + --without-server --without-restore --without-client + +CONFIGURE_ENV+= INSTALL_SCRIPT="${INSTALL_SCRIPT}" + +pre-install: + @${SETENV} ${MAKE_ENV} addnerd -g ${AMANDA_GROUP} ${AMANDA_USER} + +.include "../../mk/bsd.pkg.mk" diff --git a/misc/amanda-common/files/md5 b/misc/amanda-common/files/md5 new file mode 100644 index 00000000000..2164a59dc88 --- /dev/null +++ b/misc/amanda-common/files/md5 @@ -0,0 +1,3 @@ +$NetBSD: md5,v 1.1.1.1 1999/02/23 17:03:41 bouyer Exp $ + +MD5 (amanda-2.4.1p1.tar.gz) = 13f34dc97c35f85f88e54ca25b2009ed diff --git a/misc/amanda-common/patches/patch-aa b/misc/amanda-common/patches/patch-aa new file mode 100644 index 00000000000..51d4535b00d --- /dev/null +++ b/misc/amanda-common/patches/patch-aa @@ -0,0 +1,20 @@ +$NetBSD: patch-aa,v 1.1.1.1 1999/02/23 17:03:41 bouyer Exp $ + +--- configure.orig Sat Jul 18 10:34:33 1998 ++++ configure Sat Jul 18 10:35:03 1998 +@@ -4204,6 +4204,7 @@ + echo "$ac_t""no" 1>&6 + fi + ++if false; then + # Always use our own libtool. + LIBTOOL='$(SHELL) $(top_builddir)/libtool' + +@@ -4249,6 +4250,7 @@ + ${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig \ + $libtool_flags --no-verify $ac_aux_dir/ltmain.sh $host \ + || { echo "configure: error: libtool configure failed" 1>&2; exit 1; } ++fi + + # Extract the first word of "gcc", so it can be a program name with args. + set dummy gcc; ac_word=$2 diff --git a/misc/amanda-common/patches/patch-ab b/misc/amanda-common/patches/patch-ab new file mode 100644 index 00000000000..3582417d897 --- /dev/null +++ b/misc/amanda-common/patches/patch-ab @@ -0,0 +1,11 @@ +--- tape-src/Makefile.in.old Tue Feb 23 11:45:50 1999 ++++ tape-src/Makefile.in Tue Feb 23 11:45:21 1999 +@@ -162,7 +162,7 @@ + + COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(AMANDA_CFLAGS) + +-lib_LTLIBRARIES = @BUILD_TAPE_LTLIB@ ++lib_LTLIBRARIES = libamtape.la + EXTRA_LTLIBRARIES = libamtape.la + + noinst_LIBRARIES = @BUILD_TAPE_LIB@ diff --git a/misc/amanda-common/patches/patch-ac b/misc/amanda-common/patches/patch-ac new file mode 100644 index 00000000000..7b025a39211 --- /dev/null +++ b/misc/amanda-common/patches/patch-ac @@ -0,0 +1,16 @@ +--- man/Makefile.in.old Tue Feb 23 10:24:35 1999 ++++ man/Makefile.in Tue Feb 23 10:25:34 1999 +@@ -158,12 +158,7 @@ + + transform = s,x,x,; + +-man_MANS = amadmin.8 amanda.8 amcheck.8 \ +- amcheckdb.8 amcleanup.8 amdump.8 \ +- amflush.8 amlabel.8 amoverview.8 \ +- amplot.8 amrecover.8 amrestore.8 \ +- amrmtape.8 amtape.8 amtoc.8 \ +- amverify.8 amstatus.8 amreport.8 ++man_MANS = amanda.8 + + EXTRA_DIST = amplot.8 amrestore.8 amtape.8 + mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs diff --git a/misc/amanda-common/pkg/COMMENT b/misc/amanda-common/pkg/COMMENT new file mode 100644 index 00000000000..87b97277da1 --- /dev/null +++ b/misc/amanda-common/pkg/COMMENT @@ -0,0 +1 @@ +The Advanced Maryland Automatic Network Disk Archiver diff --git a/misc/amanda-common/pkg/DESCR b/misc/amanda-common/pkg/DESCR new file mode 100644 index 00000000000..a605558ea0a --- /dev/null +++ b/misc/amanda-common/pkg/DESCR @@ -0,0 +1,67 @@ +This is an alpha-test release of Amanda, the Advanced Maryland Automatic +Network Disk Archiver. Amanda is a backup system designed to archive many +computers on a network to a single large-capacity tape drive. This release +is currently in daily use at the University of Maryland at College Park +Computer Science Department, backing up all the disks on all the +workstations in the department: currently over 70 gigabytes of data across +more than 400 filesystems on more than 146 workstations and servers, using +a single 5 Gigabyte Exabyte EXB-8500. Here are some features of Amanda: + + * written in C, freely distributable. + * built on top of standard backup software: BSD Unix dump/restore, and + later GNU Tar and others. + * will back up multiple machines in parallel to a holding disk, blasting + finished dumps one by one to tape as fast as we can write files to + tape. For example, a ~2 Gb 8mm tape on a ~240K/s interface to a host + with a large holding disk can be filled by Amanda in under 4 hours. + * does simple tape management: will not overwrite the wrong tape. + * supports tape changers via a generic interface. Easily customizable to + any type of tape carousel, robot, or stacker that can be controlled via + the unix command line. + * supports Kerberos 4 security, including encrypted dumps. The Kerberos + support is available as a separate add-on package, see the file + KERBEROS.HOW-TO-GET on the ftp site, and the file docs/KERBEROS in this + package, for more details. + * for a restore, tells you what tapes you need, and finds the proper + backup image on the tape for you. + * recovers gracefully from errors, including down or hung machines. + * reports results, including all errors in detail, in email to operators. + * will dynamically adjust backup schedule to keep within constraints: no + more juggling by hand when adding disks and computers to network. + * includes a pre-run checker program, that conducts sanity checks on both + the tape server host and all the client hosts (in parallel), and will + send an e-mail report of any problems that could cause the backups to + fail. + * can compress dumps before sending over net, with either compress or gzip. + * can optionally syncronize with external backups, for those large + timesharing computers where you want to do full dumps when the system + is down in single-user mode (since BSD dump is not reliable on active + filesystems): Amanda will still do your daily dumps. + * lots of other options; Amanda is very configurable. + +Amanda requires a host that is mostly idle at night, with a large capacity +tape drive (e.g. an EXABYTE or DAT tape). This becomes the "tape server +host". All the computers you are going to dump are the "backup client +hosts". The server host can also be a client host. + +Amanda works best with one or more large "holding disk" partition on the +server host available to it for buffering dumps before writing to tape. +The holding disk allows Amanda to run backups in parallel to the disk, only +writing them to tape when the backup is finished. Note that the holding +disk is not required: without it Amanda will run backups sequentially to +the tape drive. Running it this way kills the great performance, but still +allows you to take advantage of Amanda's other features. + +As a rule of thumb, for best performance the holding disk should be larger +than the dump output from your largest disk partitions. For example, if +you are backing up some full gigabyte disks that compress down to 500 MB, +then you'll want 500 MB on your holding disk. On the other hand, if those +gigabyte drives are partitioned into 500 MB filesystems, they'll probably +compress down to 250 MB and you'll only need that much on your holding +disk. Amanda will perform better with larger holding disks. We use 800 MB +for our holding disk. + +Actually, Amanda will still work if you have full dumps that are larger +than the holding disk: Amanda will send those dumps directly to tape one at +a time. If you have many such dumps you will be limited by the dump speed +of those machines. diff --git a/misc/amanda-common/pkg/PLIST b/misc/amanda-common/pkg/PLIST new file mode 100644 index 00000000000..aebca5c4a13 --- /dev/null +++ b/misc/amanda-common/pkg/PLIST @@ -0,0 +1,7 @@ +@comment $NetBSD: PLIST,v 1.1.1.1 1999/02/23 17:03:41 bouyer Exp $ +lib/libamanda.a +lib/libamanda-2.4.1p1.so.0.0 +lib/libamtape.a +lib/libamtape-2.4.1p1.so.0.0 +libexec/versionsuffix +man/man8/amanda.8 diff --git a/misc/amanda-server/Makefile b/misc/amanda-server/Makefile new file mode 100644 index 00000000000..2650ea41ae5 --- /dev/null +++ b/misc/amanda-server/Makefile @@ -0,0 +1,53 @@ +# $NetBSD: Makefile,v 1.1.1.1 1999/02/23 17:03:41 bouyer Exp $ +# FreeBSD Id: Makefile,v 1.9 1997/03/08 05:00:11 gpalmer Exp +# + +DISTNAME= amanda-2.4.1p1 +PKGNAME= amanda-server-2.4.1p1 +CATEGORIES= misc +MASTER_SITES= ftp://ftp.cs.umd.edu/pub/amanda/ + +MAINTAINER= packages@netbsd.org +HOMEPAGE= http://www.amanda.org/ + +DEPENDS+= readline-2.2:../../devel/readline +DEPENDS+= gnuplot-3.7:../../graphics/gnuplot +DEPENDS+= amanda-common-2.4.1p1:../amanda-common +USE_PERL5= yes + +AMANDA_USER?= backup +AMANDA_GROUP= operator + +USE_LIBTOOL= yes +GNU_CONFIGURE= yes +CONFIGURE_ARGS+= --with-user=${AMANDA_USER} \ + --with-group=${AMANDA_GROUP} \ + --with-mmap --with-amandahosts \ + --with-includes=${PREFIX}/include \ + --with-libraries=${PREFIX}/lib \ + --with-dump-honor-nodump \ + --without-client +CONFIGURE_ENV+= INSTALL_SCRIPT="${INSTALL_SCRIPT}" + +post-install: +.if !defined(NOPORTDOCS) + ${MKDIR} ${PREFIX}/share/doc/amanda + ${MKDIR} ${PREFIX}/share/examples/amanda + for i in ${WRKDIR}/${DISTNAME}/docs/* ; do \ + ${INSTALL_DATA} $$i ${PREFIX}/share/doc/amanda; \ + done + for i in ${WRKDIR}/${DISTNAME}/example/8.5x11.ps \ + ${WRKDIR}/${DISTNAME}/example/DIN-A4.ps \ + ${WRKDIR}/${DISTNAME}/example/DLT.ps \ + ${WRKDIR}/${DISTNAME}/example/EXB-8500.ps \ + ${WRKDIR}/${DISTNAME}/example/HP-DAT.ps \ + ${WRKDIR}/${DISTNAME}/example/amanda.conf \ + ${WRKDIR}/${DISTNAME}/example/chg-multi.conf \ + ${WRKDIR}/${DISTNAME}/example/chg-scsi.conf \ + ${WRKDIR}/${DISTNAME}/example/config.site \ + ${WRKDIR}/${DISTNAME}/example/disklist; do \ + ${INSTALL_DATA} $$i ${PREFIX}/share/examples/amanda; \ + done +.endif + +.include "../../mk/bsd.pkg.mk" diff --git a/misc/amanda-server/files/md5 b/misc/amanda-server/files/md5 new file mode 100644 index 00000000000..47cdce05477 --- /dev/null +++ b/misc/amanda-server/files/md5 @@ -0,0 +1,3 @@ +$NetBSD: md5,v 1.1.1.1 1999/02/23 17:03:42 bouyer Exp $ + +MD5 (amanda-2.4.1p1.tar.gz) = 13f34dc97c35f85f88e54ca25b2009ed diff --git a/misc/amanda-server/patches/patch-aa b/misc/amanda-server/patches/patch-aa new file mode 100644 index 00000000000..1dcb847b0a2 --- /dev/null +++ b/misc/amanda-server/patches/patch-aa @@ -0,0 +1,20 @@ +$NetBSD: patch-aa,v 1.1.1.1 1999/02/23 17:03:42 bouyer Exp $ + +--- configure.orig Sat Jul 18 10:34:33 1998 ++++ configure Sat Jul 18 10:35:03 1998 +@@ -4204,6 +4204,7 @@ + echo "$ac_t""no" 1>&6 + fi + ++if false; then + # Always use our own libtool. + LIBTOOL='$(SHELL) $(top_builddir)/libtool' + +@@ -4249,6 +4250,7 @@ + ${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig \ + $libtool_flags --no-verify $ac_aux_dir/ltmain.sh $host \ + || { echo "configure: error: libtool configure failed" 1>&2; exit 1; } ++fi + + # Extract the first word of "gcc", so it can be a program name with args. + set dummy gcc; ac_word=$2 diff --git a/misc/amanda-server/patches/patch-ab b/misc/amanda-server/patches/patch-ab new file mode 100644 index 00000000000..aaa30e72c39 --- /dev/null +++ b/misc/amanda-server/patches/patch-ab @@ -0,0 +1,11 @@ +--- client-src/Makefile.in.old Tue Feb 23 10:34:37 1999 ++++ client-src/Makefile.in Tue Feb 23 10:35:09 1999 +@@ -167,7 +167,7 @@ + + SUFFIXES = .sh .pl + +-libexec_PROGRAMS = versionsuffix @BUILD_CLIENT_PROGS_LIBEXEC@ ++libexec_PROGRAMS = @BUILD_CLIENT_PROGS_LIBEXEC@ + + # these are used for testing only: + TEST_PROGS = getfsent diff --git a/misc/amanda-server/patches/patch-ac b/misc/amanda-server/patches/patch-ac new file mode 100644 index 00000000000..f33a08a583d --- /dev/null +++ b/misc/amanda-server/patches/patch-ac @@ -0,0 +1,11 @@ +--- Makefile.in.old Tue Feb 23 10:37:10 1999 ++++ Makefile.in Tue Feb 23 10:38:36 1999 +@@ -157,7 +157,7 @@ + AUTOCONF = @AUTOCONF@ --localdir=config + + SUBDIRS=config \ +- common-src client-src tape-src \ ++ client-src \ + server-src restore-src recover-src \ + changer-src amplot man \ + example diff --git a/misc/amanda-server/patches/patch-ad b/misc/amanda-server/patches/patch-ad new file mode 100644 index 00000000000..6074bd71cec --- /dev/null +++ b/misc/amanda-server/patches/patch-ad @@ -0,0 +1,15 @@ +--- man/Makefile.in.old Tue Feb 23 10:43:23 1999 ++++ man/Makefile.in Tue Feb 23 10:42:34 1999 +@@ -158,10 +158,10 @@ + + transform = s,x,x,; + +-man_MANS = amadmin.8 amanda.8 amcheck.8 \ ++man_MANS = amadmin.8 amcheck.8 \ + amcheckdb.8 amcleanup.8 amdump.8 \ + amflush.8 amlabel.8 amoverview.8 \ +- amplot.8 amrecover.8 amrestore.8 \ ++ amplot.8 amrestore.8 \ + amrmtape.8 amtape.8 amtoc.8 \ + amverify.8 amstatus.8 amreport.8 + diff --git a/misc/amanda-server/patches/patch-ae b/misc/amanda-server/patches/patch-ae new file mode 100644 index 00000000000..0916691924f --- /dev/null +++ b/misc/amanda-server/patches/patch-ae @@ -0,0 +1,259 @@ +--- changer-src/Makefile.in.old Tue Feb 23 11:55:44 1999 ++++ changer-src/Makefile.in Tue Feb 23 11:57:09 1999 +@@ -83,7 +83,7 @@ + BUILD_CLIENT_SCRIPTS_LIBEXEC = @BUILD_CLIENT_SCRIPTS_LIBEXEC@ + BUILD_CLIENT_SCRIPTS_SBIN = @BUILD_CLIENT_SCRIPTS_SBIN@ + BUILD_COMMON_LIB = @BUILD_COMMON_LIB@ +-BUILD_COMMON_LTLIB = @BUILD_COMMON_LTLIB@ ++BUILD_COMMON_LTLIB = + BUILD_RECOVER_PROGS_SBIN = @BUILD_RECOVER_PROGS_SBIN@ + BUILD_RESTORE_PROGS_LIBEXEC = @BUILD_RESTORE_PROGS_LIBEXEC@ + BUILD_RESTORE_PROGS_SBIN = @BUILD_RESTORE_PROGS_SBIN@ +@@ -93,7 +93,7 @@ + BUILD_SERVER_PROGS_SBIN = @BUILD_SERVER_PROGS_SBIN@ + BUILD_SERVER_SCRIPTS_SBIN = @BUILD_SERVER_SCRIPTS_SBIN@ + BUILD_TAPE_LIB = @BUILD_TAPE_LIB@ +-BUILD_TAPE_LTLIB = @BUILD_TAPE_LTLIB@ ++BUILD_TAPE_LTLIB = + CAT = @CAT@ + CC = @CC@ + CHIO = @CHIO@ +@@ -161,8 +161,7 @@ + COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(AMANDA_CFLAGS) + + # they cross-reference each other a bit, so need to be included twice +-LDADD = ../server-src/libamserver.$(LIB_EXTENSION) \ +- ../common-src/libamanda.$(LIB_EXTENSION) ++LDADD = ../server-src/libamserver.$(LIB_EXTENSION) + + SUFFIXES = .pl .sh + +@@ -203,9 +202,8 @@ + + chg_scsi_OBJECTS = chg-scsi.o + chg_scsi_DEPENDENCIES = libscsi.a \ +-../server-src/libamserver.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) +-chg_scsi_LDFLAGS = ++../server-src/libamserver.$(LIB_EXTENSION) ++chg_scsi_LDFLAGS = -lamanda + SCRIPTS = $(libexec_SCRIPTS) + + CFLAGS = @CFLAGS@ +--- restore-src/Makefile.in.old Tue Feb 23 11:58:06 1999 ++++ restore-src/Makefile.in Tue Feb 23 12:58:50 1999 +@@ -83,7 +83,7 @@ + BUILD_CLIENT_SCRIPTS_LIBEXEC = @BUILD_CLIENT_SCRIPTS_LIBEXEC@ + BUILD_CLIENT_SCRIPTS_SBIN = @BUILD_CLIENT_SCRIPTS_SBIN@ + BUILD_COMMON_LIB = @BUILD_COMMON_LIB@ +-BUILD_COMMON_LTLIB = @BUILD_COMMON_LTLIB@ ++BUILD_COMMON_LTLIB = + BUILD_RECOVER_PROGS_SBIN = @BUILD_RECOVER_PROGS_SBIN@ + BUILD_RESTORE_PROGS_LIBEXEC = @BUILD_RESTORE_PROGS_LIBEXEC@ + BUILD_RESTORE_PROGS_SBIN = @BUILD_RESTORE_PROGS_SBIN@ +@@ -93,7 +93,7 @@ + BUILD_SERVER_PROGS_SBIN = @BUILD_SERVER_PROGS_SBIN@ + BUILD_SERVER_SCRIPTS_SBIN = @BUILD_SERVER_SCRIPTS_SBIN@ + BUILD_TAPE_LIB = @BUILD_TAPE_LIB@ +-BUILD_TAPE_LTLIB = @BUILD_TAPE_LTLIB@ ++BUILD_TAPE_LTLIB = + CAT = @CAT@ + CC = @CC@ + CHIO = @CHIO@ +@@ -162,8 +162,7 @@ + + COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(AMANDA_CFLAGS) + +-LDADD = ../tape-src/libamtape.$(LIB_EXTENSION) \ +- ../common-src/libamanda.$(LIB_EXTENSION) ++LDADD = + + sbin_PROGRAMS = @BUILD_RESTORE_PROGS_SBIN@ + +@@ -181,17 +180,15 @@ + DEFS = @DEFS@ -I. -I$(srcdir) -I../config + CPPFLAGS = @CPPFLAGS@ + LDFLAGS = @LDFLAGS@ +-LIBS = @LIBS@ ++LIBS = @LIBS@ -lamtape -lamanda + amrestore_SOURCES = amrestore.c + amrestore_OBJECTS = amrestore.o + amrestore_LDADD = $(LDADD) +-amrestore_DEPENDENCIES = ../tape-src/libamtape.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++amrestore_DEPENDENCIES = + amrestore_LDFLAGS = + amidxtaped_OBJECTS = amidxtaped.o + amidxtaped_LDADD = $(LDADD) +-amidxtaped_DEPENDENCIES = ../tape-src/libamtape.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++amidxtaped_DEPENDENCIES = + amidxtaped_LDFLAGS = + CFLAGS = @CFLAGS@ + LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +--- server-src/Makefile.in.old Tue Feb 23 13:01:08 1999 ++++ server-src/Makefile.in Tue Feb 23 13:03:27 1999 +@@ -83,7 +83,7 @@ + BUILD_CLIENT_SCRIPTS_LIBEXEC = @BUILD_CLIENT_SCRIPTS_LIBEXEC@ + BUILD_CLIENT_SCRIPTS_SBIN = @BUILD_CLIENT_SCRIPTS_SBIN@ + BUILD_COMMON_LIB = @BUILD_COMMON_LIB@ +-BUILD_COMMON_LTLIB = @BUILD_COMMON_LTLIB@ ++BUILD_COMMON_LTLIB = + BUILD_RECOVER_PROGS_SBIN = @BUILD_RECOVER_PROGS_SBIN@ + BUILD_RESTORE_PROGS_LIBEXEC = @BUILD_RESTORE_PROGS_LIBEXEC@ + BUILD_RESTORE_PROGS_SBIN = @BUILD_RESTORE_PROGS_SBIN@ +@@ -93,7 +93,7 @@ + BUILD_SERVER_PROGS_SBIN = @BUILD_SERVER_PROGS_SBIN@ + BUILD_SERVER_SCRIPTS_SBIN = @BUILD_SERVER_SCRIPTS_SBIN@ + BUILD_TAPE_LIB = @BUILD_TAPE_LIB@ +-BUILD_TAPE_LTLIB = @BUILD_TAPE_LTLIB@ ++BUILD_TAPE_LTLIB = + CAT = @CAT@ + CC = @CC@ + CHIO = @CHIO@ +@@ -162,9 +162,7 @@ + + COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(AMANDA_CFLAGS) + +-LDADD = libamserver.$(LIB_EXTENSION) \ +- ../tape-src/libamtape.$(LIB_EXTENSION) \ +- ../common-src/libamanda.$(LIB_EXTENSION) ++LDADD = libamserver.$(LIB_EXTENSION) + + SUFFIXES = .sh .pl + +@@ -234,7 +232,7 @@ + DEFS = @DEFS@ -I. -I$(srcdir) -I../config + CPPFLAGS = @CPPFLAGS@ + LDFLAGS = @LDFLAGS@ +-LIBS = @LIBS@ ++LIBS = @LIBS@ -lamtape -lamanda + libamserver_a_LIBADD = + libamserver_a_OBJECTS = amindex.o changer.o clock.o conffile.o \ + diskfile.o driverio.o holding.o infofile.o logfile.o tapefile.o find.o +@@ -249,109 +247,77 @@ + amadmin_SOURCES = amadmin.c + amadmin_OBJECTS = amadmin.o + amadmin_LDADD = $(LDADD) +-amadmin_DEPENDENCIES = libamserver.$(LIB_EXTENSION) \ +-../tape-src/libamtape.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++amadmin_DEPENDENCIES = libamserver.$(LIB_EXTENSION) + amadmin_LDFLAGS = + amcheck_SOURCES = amcheck.c + amcheck_OBJECTS = amcheck.o + amcheck_LDADD = $(LDADD) +-amcheck_DEPENDENCIES = libamserver.$(LIB_EXTENSION) \ +-../tape-src/libamtape.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++amcheck_DEPENDENCIES = libamserver.$(LIB_EXTENSION) + amcheck_LDFLAGS = + amflush_SOURCES = amflush.c + amflush_OBJECTS = amflush.o + amflush_LDADD = $(LDADD) +-amflush_DEPENDENCIES = libamserver.$(LIB_EXTENSION) \ +-../tape-src/libamtape.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++amflush_DEPENDENCIES = libamserver.$(LIB_EXTENSION) + amflush_LDFLAGS = + amindexd_OBJECTS = amindexd.o disk_history.o list_dir.o + amindexd_LDADD = $(LDADD) +-amindexd_DEPENDENCIES = libamserver.$(LIB_EXTENSION) \ +-../tape-src/libamtape.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++amindexd_DEPENDENCIES = libamserver.$(LIB_EXTENSION) + amindexd_LDFLAGS = + amlabel_SOURCES = amlabel.c + amlabel_OBJECTS = amlabel.o + amlabel_LDADD = $(LDADD) +-amlabel_DEPENDENCIES = libamserver.$(LIB_EXTENSION) \ +-../tape-src/libamtape.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++amlabel_DEPENDENCIES = libamserver.$(LIB_EXTENSION) + amlabel_LDFLAGS = + amtape_SOURCES = amtape.c + amtape_OBJECTS = amtape.o + amtape_LDADD = $(LDADD) +-amtape_DEPENDENCIES = libamserver.$(LIB_EXTENSION) \ +-../tape-src/libamtape.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++amtape_DEPENDENCIES = libamserver.$(LIB_EXTENSION) + amtape_LDFLAGS = + amtrmidx_SOURCES = amtrmidx.c + amtrmidx_OBJECTS = amtrmidx.o + amtrmidx_LDADD = $(LDADD) +-amtrmidx_DEPENDENCIES = libamserver.$(LIB_EXTENSION) \ +-../tape-src/libamtape.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++amtrmidx_DEPENDENCIES = libamserver.$(LIB_EXTENSION) + amtrmidx_LDFLAGS = + driver_SOURCES = driver.c + driver_OBJECTS = driver.o + driver_LDADD = $(LDADD) +-driver_DEPENDENCIES = libamserver.$(LIB_EXTENSION) \ +-../tape-src/libamtape.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++driver_DEPENDENCIES = libamserver.$(LIB_EXTENSION) + driver_LDFLAGS = + dumper_SOURCES = dumper.c + dumper_OBJECTS = dumper.o + dumper_LDADD = $(LDADD) +-dumper_DEPENDENCIES = libamserver.$(LIB_EXTENSION) \ +-../tape-src/libamtape.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++dumper_DEPENDENCIES = libamserver.$(LIB_EXTENSION) + dumper_LDFLAGS = + getconf_SOURCES = getconf.c + getconf_OBJECTS = getconf.o + getconf_LDADD = $(LDADD) +-getconf_DEPENDENCIES = libamserver.$(LIB_EXTENSION) \ +-../tape-src/libamtape.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++getconf_DEPENDENCIES = libamserver.$(LIB_EXTENSION) + getconf_LDFLAGS = + planner_SOURCES = planner.c + planner_OBJECTS = planner.o + planner_LDADD = $(LDADD) +-planner_DEPENDENCIES = libamserver.$(LIB_EXTENSION) \ +-../tape-src/libamtape.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++planner_DEPENDENCIES = libamserver.$(LIB_EXTENSION) + planner_LDFLAGS = + amreport_OBJECTS = reporter.o + amreport_LDADD = $(LDADD) +-amreport_DEPENDENCIES = libamserver.$(LIB_EXTENSION) \ +-../tape-src/libamtape.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++amreport_DEPENDENCIES = libamserver.$(LIB_EXTENSION) + amreport_LDFLAGS = + taper_SOURCES = taper.c + taper_OBJECTS = taper.o + taper_LDADD = $(LDADD) +-taper_DEPENDENCIES = libamserver.$(LIB_EXTENSION) \ +-../tape-src/libamtape.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++taper_DEPENDENCIES = libamserver.$(LIB_EXTENSION) + taper_LDFLAGS = + diskfile_OBJECTS = diskfile.test.o + diskfile_LDADD = $(LDADD) +-diskfile_DEPENDENCIES = libamserver.$(LIB_EXTENSION) \ +-../tape-src/libamtape.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++diskfile_DEPENDENCIES = libamserver.$(LIB_EXTENSION) + diskfile_LDFLAGS = + conffile_OBJECTS = conffile.test.o + conffile_LDADD = $(LDADD) +-conffile_DEPENDENCIES = libamserver.$(LIB_EXTENSION) \ +-../tape-src/libamtape.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++conffile_DEPENDENCIES = libamserver.$(LIB_EXTENSION) + conffile_LDFLAGS = + infofile_OBJECTS = infofile.test.o + infofile_LDADD = $(LDADD) +-infofile_DEPENDENCIES = libamserver.$(LIB_EXTENSION) \ +-../tape-src/libamtape.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++infofile_DEPENDENCIES = libamserver.$(LIB_EXTENSION) + infofile_LDFLAGS = + SCRIPTS = $(sbin_SCRIPTS) + diff --git a/misc/amanda-server/patches/patch-af b/misc/amanda-server/patches/patch-af new file mode 100644 index 00000000000..47fdad0714b --- /dev/null +++ b/misc/amanda-server/patches/patch-af @@ -0,0 +1,57 @@ +--- changer-src/chg-scsi.c.orig Sat Sep 19 03:55:13 1998 ++++ changer-src/chg-scsi.c Mon Feb 22 20:00:39 1999 +@@ -527,6 +527,15 @@ + { + FILE *out=NULL; + int cnt=0; ++ ++ /* if we have a long timeout, sleep a long time before access. ++ * This is avoid lots of error messages for drives which need a lot of time ++ */ ++ if ((timeout /2) > 1) { ++ timeout = timeout / 2; ++ sleep(timeout); ++ } ++ + while ((cnt<timeout) && (NULL==(out=fopen(tapedev,"w+")))){ + cnt++; + sleep(1); +@@ -634,7 +643,10 @@ + + /* Get the configuration parameters */ + if (tape_device[0] >= '0' && tape_device[0] <= '9' && tape_device[1] == 0){ +- read_config(changer_file,&chg); ++ if (read_config(changer_file,&chg) == -1) { ++ perror(changer_file); ++ exit(1); ++ } + confnum=atoi(tape_device); + use_slots = chg.conf[confnum].end-chg.conf[confnum].start+1; + slot_offset = chg.conf[confnum].start; +@@ -717,7 +729,7 @@ + if (need_eject) + eject_tape(tape_device); + (void)unload(fd, drive_num, oldtarget); +- if (ask_clean(tape_device,need_sleep)) ++ if (clean_slot != -1 && ask_clean(tape_device,need_sleep)) + clean_tape(fd,tape_device,clean_file,drive_num, + clean_slot,maxclean,time_file); + loaded=0; +@@ -751,7 +763,7 @@ + if (need_eject) + eject_tape(tape_device); + (void)unload(fd, drive_num, target); +- if (ask_clean(tape_device,need_sleep)) ++ if (clean_slot != -1 && ask_clean(tape_device,need_sleep)) + clean_tape(fd,tape_device,clean_file,drive_num,clean_slot, + maxclean,time_file); + } +@@ -776,7 +788,7 @@ + if (need_eject) + eject_tape(tape_device); + (void)unload(fd, drive_num, target); +- if (ask_clean(tape_device,need_sleep)) ++ if (clean_slot != -1 && ask_clean(tape_device,need_sleep)) + clean_tape(fd,tape_device,clean_file,drive_num,clean_slot, + maxclean,time_file); + printf("%d %s\n", target, tape_device); diff --git a/misc/amanda-server/patches/patch-ag b/misc/amanda-server/patches/patch-ag new file mode 100644 index 00000000000..283d06444cc --- /dev/null +++ b/misc/amanda-server/patches/patch-ag @@ -0,0 +1,21 @@ +--- example/chg-scsi.conf.old Tue Feb 23 16:44:39 1999 ++++ example/chg-scsi.conf Tue Feb 23 16:46:38 1999 +@@ -2,6 +2,8 @@ + number_configs 2 + eject 1 # Tapedrives need an eject command + sleep 5 # Seconds to wait until the tape gets ready ++ # The driver first sleeps for <sleep>/2 seconds, ++ # then pool the drive every seconds. + cleanmax 10 # How many times could a cleaning tape get used + changerdev /dev/sch0 + # +@@ -13,7 +15,8 @@ + startuse 0 # The slots associated with the drive 0 + enduse 9 # + statfile /usr/local/etc/amanda/tape5-slot # The file where the actual slot is stored +-cleancart 20 # the slot where the cleaningcartridge for drive 0 is located ++cleancart -1 # the slot where the cleaningcartridge for drive 0 is ++ # located. -1 means none. + cleanfile /usr/local/etc/amanda/tape0-clean # The file where the cleanings are recorded + usagecount /usr/local/etc/amanda/backup/totaltime + diff --git a/misc/amanda-server/pkg/COMMENT b/misc/amanda-server/pkg/COMMENT new file mode 100644 index 00000000000..87b97277da1 --- /dev/null +++ b/misc/amanda-server/pkg/COMMENT @@ -0,0 +1 @@ +The Advanced Maryland Automatic Network Disk Archiver diff --git a/misc/amanda-server/pkg/DESCR b/misc/amanda-server/pkg/DESCR new file mode 100644 index 00000000000..a605558ea0a --- /dev/null +++ b/misc/amanda-server/pkg/DESCR @@ -0,0 +1,67 @@ +This is an alpha-test release of Amanda, the Advanced Maryland Automatic +Network Disk Archiver. Amanda is a backup system designed to archive many +computers on a network to a single large-capacity tape drive. This release +is currently in daily use at the University of Maryland at College Park +Computer Science Department, backing up all the disks on all the +workstations in the department: currently over 70 gigabytes of data across +more than 400 filesystems on more than 146 workstations and servers, using +a single 5 Gigabyte Exabyte EXB-8500. Here are some features of Amanda: + + * written in C, freely distributable. + * built on top of standard backup software: BSD Unix dump/restore, and + later GNU Tar and others. + * will back up multiple machines in parallel to a holding disk, blasting + finished dumps one by one to tape as fast as we can write files to + tape. For example, a ~2 Gb 8mm tape on a ~240K/s interface to a host + with a large holding disk can be filled by Amanda in under 4 hours. + * does simple tape management: will not overwrite the wrong tape. + * supports tape changers via a generic interface. Easily customizable to + any type of tape carousel, robot, or stacker that can be controlled via + the unix command line. + * supports Kerberos 4 security, including encrypted dumps. The Kerberos + support is available as a separate add-on package, see the file + KERBEROS.HOW-TO-GET on the ftp site, and the file docs/KERBEROS in this + package, for more details. + * for a restore, tells you what tapes you need, and finds the proper + backup image on the tape for you. + * recovers gracefully from errors, including down or hung machines. + * reports results, including all errors in detail, in email to operators. + * will dynamically adjust backup schedule to keep within constraints: no + more juggling by hand when adding disks and computers to network. + * includes a pre-run checker program, that conducts sanity checks on both + the tape server host and all the client hosts (in parallel), and will + send an e-mail report of any problems that could cause the backups to + fail. + * can compress dumps before sending over net, with either compress or gzip. + * can optionally syncronize with external backups, for those large + timesharing computers where you want to do full dumps when the system + is down in single-user mode (since BSD dump is not reliable on active + filesystems): Amanda will still do your daily dumps. + * lots of other options; Amanda is very configurable. + +Amanda requires a host that is mostly idle at night, with a large capacity +tape drive (e.g. an EXABYTE or DAT tape). This becomes the "tape server +host". All the computers you are going to dump are the "backup client +hosts". The server host can also be a client host. + +Amanda works best with one or more large "holding disk" partition on the +server host available to it for buffering dumps before writing to tape. +The holding disk allows Amanda to run backups in parallel to the disk, only +writing them to tape when the backup is finished. Note that the holding +disk is not required: without it Amanda will run backups sequentially to +the tape drive. Running it this way kills the great performance, but still +allows you to take advantage of Amanda's other features. + +As a rule of thumb, for best performance the holding disk should be larger +than the dump output from your largest disk partitions. For example, if +you are backing up some full gigabyte disks that compress down to 500 MB, +then you'll want 500 MB on your holding disk. On the other hand, if those +gigabyte drives are partitioned into 500 MB filesystems, they'll probably +compress down to 250 MB and you'll only need that much on your holding +disk. Amanda will perform better with larger holding disks. We use 800 MB +for our holding disk. + +Actually, Amanda will still work if you have full dumps that are larger +than the holding disk: Amanda will send those dumps directly to tape one at +a time. If you have many such dumps you will be limited by the dump speed +of those machines. diff --git a/misc/amanda-server/pkg/PLIST b/misc/amanda-server/pkg/PLIST new file mode 100644 index 00000000000..54c72d624ec --- /dev/null +++ b/misc/amanda-server/pkg/PLIST @@ -0,0 +1,85 @@ +@comment $NetBSD: PLIST,v 1.1.1.1 1999/02/23 17:03:42 bouyer Exp $ +lib/libamserver.a +lib/libamserver-2.4.1p1.so.0.0 +libexec/amcat.awk +libexec/amidxtaped +libexec/amindexd +libexec/amplot.awk +libexec/amplot.g +libexec/amplot.gp +libexec/amtrmidx +libexec/chg-scsi +libexec/chg-zd-mtx +libexec/chg-chio +libexec/chg-chs +libexec/chg-manual +libexec/chg-mtx +libexec/chg-multi +libexec/chg-rth +libexec/driver +libexec/dumper +libexec/getconf +libexec/planner +libexec/taper +man/man8/amadmin.8 +man/man8/amcheck.8 +man/man8/amcheckdb.8 +man/man8/amcleanup.8 +man/man8/amdump.8 +man/man8/amflush.8 +man/man8/amlabel.8 +man/man8/amoverview.8 +man/man8/amplot.8 +man/man8/amreport.8 +man/man8/amrestore.8 +man/man8/amrmtape.8 +man/man8/amstatus.8 +man/man8/amtape.8 +man/man8/amtoc.8 +man/man8/amverify.8 +sbin/amadmin +sbin/amcheck +sbin/amcheckdb +sbin/amcleanup +sbin/amdump +sbin/amflush +sbin/amlabel +sbin/amoverview +sbin/amplot +sbin/amreport +sbin/amrestore +sbin/amrmtape +sbin/amstatus +sbin/amtape +sbin/amtoc +sbin/amverify +share/doc/amanda/FAQ +share/doc/amanda/INDEXING +share/doc/amanda/INSTALL +share/doc/amanda/INTERNALS +share/doc/amanda/KERBEROS +share/doc/amanda/LABEL.PRINTING +share/doc/amanda/MULTITAPE +share/doc/amanda/RESTORE +share/doc/amanda/SAMBA +share/doc/amanda/SECURITY +share/doc/amanda/SYSTEM.NOTES +share/doc/amanda/TAPE.CHANGERS +share/doc/amanda/TAPETYPES +share/doc/amanda/UPGRADE +share/doc/amanda/WHATS.NEW +share/doc/amanda/WISHLIST +share/doc/amanda/YEAR2000 +share/doc/amanda/ZFTAPE +share/examples/amanda/8.5x11.ps +share/examples/amanda/DIN-A4.ps +share/examples/amanda/DLT.ps +share/examples/amanda/EXB-8500.ps +share/examples/amanda/HP-DAT.ps +share/examples/amanda/amanda.conf +share/examples/amanda/chg-multi.conf +share/examples/amanda/chg-scsi.conf +share/examples/amanda/config.site +share/examples/amanda/disklist +@dirrm share/doc/amanda +@dirrm share/examples/amanda diff --git a/sysutils/amanda-client/Makefile b/sysutils/amanda-client/Makefile new file mode 100644 index 00000000000..a0772315d0f --- /dev/null +++ b/sysutils/amanda-client/Makefile @@ -0,0 +1,40 @@ +# $NetBSD: Makefile,v 1.1.1.1 1999/02/23 17:03:42 bouyer Exp $ +# FreeBSD Id: Makefile,v 1.9 1997/03/08 05:00:11 gpalmer Exp +# + +DISTNAME= amanda-2.4.1p1 +PKGNAME= amanda-client-2.4.1p1 +CATEGORIES= misc +MASTER_SITES= ftp://ftp.cs.umd.edu/pub/amanda/ + +MAINTAINER= packages@netbsd.org +HOMEPAGE= http://www.amanda.org/ + +DEPENDS+= readline-2.2:../../devel/readline +DEPENDS+= gtar-1.12:../../archivers/gtar +DEPENDS+= amanda-common-2.4.1p1:../amanda-common + +USE_LIBTOOL= yes +GNU_CONFIGURE= yes + +.include "../../mk/bsd.prefs.mk" +AMANDA_USER?= backup +AMANDA_GROUP= operator + +CONFIGURE_ARGS+= --with-user=${AMANDA_USER} \ + --with-group=${AMANDA_GROUP} \ + --with-mmap --with-amandahosts \ + --with-includes=${PREFIX}/include \ + --with-libraries=${PREFIX}/lib \ + --with-dump-honor-nodump \ + --without-server --without-restore + +.if defined(AMANDA_SMB) +CONFIGURE_ARGS+= --with-smbclient +DEPENDS+= samba-2.0.2:../../net/samba +.endif + +CONFIGURE_ENV+= INSTALL_SCRIPT="${INSTALL_SCRIPT}" + + +.include "../../mk/bsd.pkg.mk" diff --git a/sysutils/amanda-client/files/md5 b/sysutils/amanda-client/files/md5 new file mode 100644 index 00000000000..47cdce05477 --- /dev/null +++ b/sysutils/amanda-client/files/md5 @@ -0,0 +1,3 @@ +$NetBSD: md5,v 1.1.1.1 1999/02/23 17:03:42 bouyer Exp $ + +MD5 (amanda-2.4.1p1.tar.gz) = 13f34dc97c35f85f88e54ca25b2009ed diff --git a/sysutils/amanda-client/patches/patch-aa b/sysutils/amanda-client/patches/patch-aa new file mode 100644 index 00000000000..1dcb847b0a2 --- /dev/null +++ b/sysutils/amanda-client/patches/patch-aa @@ -0,0 +1,20 @@ +$NetBSD: patch-aa,v 1.1.1.1 1999/02/23 17:03:42 bouyer Exp $ + +--- configure.orig Sat Jul 18 10:34:33 1998 ++++ configure Sat Jul 18 10:35:03 1998 +@@ -4204,6 +4204,7 @@ + echo "$ac_t""no" 1>&6 + fi + ++if false; then + # Always use our own libtool. + LIBTOOL='$(SHELL) $(top_builddir)/libtool' + +@@ -4249,6 +4250,7 @@ + ${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig \ + $libtool_flags --no-verify $ac_aux_dir/ltmain.sh $host \ + || { echo "configure: error: libtool configure failed" 1>&2; exit 1; } ++fi + + # Extract the first word of "gcc", so it can be a program name with args. + set dummy gcc; ac_word=$2 diff --git a/sysutils/amanda-client/patches/patch-ab b/sysutils/amanda-client/patches/patch-ab new file mode 100644 index 00000000000..dc7498adf32 --- /dev/null +++ b/sysutils/amanda-client/patches/patch-ab @@ -0,0 +1,144 @@ +--- client-src/Makefile.in.old Tue Feb 23 11:09:57 1999 ++++ client-src/Makefile.in Tue Feb 23 11:11:28 1999 +@@ -83,7 +83,7 @@ + BUILD_CLIENT_SCRIPTS_LIBEXEC = @BUILD_CLIENT_SCRIPTS_LIBEXEC@ + BUILD_CLIENT_SCRIPTS_SBIN = @BUILD_CLIENT_SCRIPTS_SBIN@ + BUILD_COMMON_LIB = @BUILD_COMMON_LIB@ +-BUILD_COMMON_LTLIB = @BUILD_COMMON_LTLIB@ ++BUILD_COMMON_LTLIB = + BUILD_RECOVER_PROGS_SBIN = @BUILD_RECOVER_PROGS_SBIN@ + BUILD_RESTORE_PROGS_LIBEXEC = @BUILD_RESTORE_PROGS_LIBEXEC@ + BUILD_RESTORE_PROGS_SBIN = @BUILD_RESTORE_PROGS_SBIN@ +@@ -162,12 +162,11 @@ + + COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(AMANDA_CFLAGS) + +-LDADD = libamclient.$(LIB_EXTENSION) \ +- ../common-src/libamanda.$(LIB_EXTENSION) ++LDADD = libamclient.$(LIB_EXTENSION) + + SUFFIXES = .sh .pl + +-libexec_PROGRAMS = versionsuffix @BUILD_CLIENT_PROGS_LIBEXEC@ ++libexec_PROGRAMS = @BUILD_CLIENT_PROGS_LIBEXEC@ + + # these are used for testing only: + TEST_PROGS = getfsent +@@ -224,7 +223,7 @@ + DEFS = @DEFS@ -I. -I$(srcdir) -I../config + CPPFLAGS = @CPPFLAGS@ + LDFLAGS = @LDFLAGS@ +-LIBS = @LIBS@ ++LIBS = @LIBS@ -lamanda + libamclient_a_OBJECTS = amandates.o getfsent.o unctime.o + LTLIBRARIES = $(lib_LTLIBRARIES) + +@@ -234,60 +233,50 @@ + amandad_SOURCES = amandad.c + amandad_OBJECTS = amandad.o + amandad_LDADD = $(LDADD) +-amandad_DEPENDENCIES = libamclient.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++amandad_DEPENDENCIES = libamclient.$(LIB_EXTENSION) + amandad_LDFLAGS = + calcsize_SOURCES = calcsize.c + calcsize_OBJECTS = calcsize.o + calcsize_LDADD = $(LDADD) +-calcsize_DEPENDENCIES = libamclient.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++calcsize_DEPENDENCIES = libamclient.$(LIB_EXTENSION) + calcsize_LDFLAGS = + killpgrp_SOURCES = killpgrp.c + killpgrp_OBJECTS = killpgrp.o + killpgrp_LDADD = $(LDADD) +-killpgrp_DEPENDENCIES = libamclient.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++killpgrp_DEPENDENCIES = libamclient.$(LIB_EXTENSION) + killpgrp_LDFLAGS = + rundump_SOURCES = rundump.c + rundump_OBJECTS = rundump.o + rundump_LDADD = $(LDADD) +-rundump_DEPENDENCIES = libamclient.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++rundump_DEPENDENCIES = libamclient.$(LIB_EXTENSION) + rundump_LDFLAGS = + runtar_SOURCES = runtar.c + runtar_OBJECTS = runtar.o + runtar_LDADD = $(LDADD) +-runtar_DEPENDENCIES = libamclient.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++runtar_DEPENDENCIES = libamclient.$(LIB_EXTENSION) + runtar_LDFLAGS = + selfcheck_SOURCES = selfcheck.c + selfcheck_OBJECTS = selfcheck.o + selfcheck_LDADD = $(LDADD) +-selfcheck_DEPENDENCIES = libamclient.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++selfcheck_DEPENDENCIES = libamclient.$(LIB_EXTENSION) + selfcheck_LDFLAGS = + sendbackup_OBJECTS = sendbackup.o sendbackup-dump.o sendbackup-gnutar.o + sendbackup_LDADD = $(LDADD) +-sendbackup_DEPENDENCIES = libamclient.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++sendbackup_DEPENDENCIES = libamclient.$(LIB_EXTENSION) + sendbackup_LDFLAGS = + sendsize_SOURCES = sendsize.c + sendsize_OBJECTS = sendsize.o + sendsize_LDADD = $(LDADD) +-sendsize_DEPENDENCIES = libamclient.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++sendsize_DEPENDENCIES = libamclient.$(LIB_EXTENSION) + sendsize_LDFLAGS = + getfsent_OBJECTS = getfsent.test.o + getfsent_LDADD = $(LDADD) +-getfsent_DEPENDENCIES = libamclient.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++getfsent_DEPENDENCIES = libamclient.$(LIB_EXTENSION) + getfsent_LDFLAGS = + versionsuffix_SOURCES = versionsuffix.c + versionsuffix_OBJECTS = versionsuffix.o + versionsuffix_LDADD = $(LDADD) +-versionsuffix_DEPENDENCIES = libamclient.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++versionsuffix_DEPENDENCIES = libamclient.$(LIB_EXTENSION) + versionsuffix_LDFLAGS = + SCRIPTS = $(libexec_SCRIPTS) $(sbin_SCRIPTS) + +--- recover-src/Makefile.in.old Tue Feb 23 11:34:04 1999 ++++ recover-src/Makefile.in Tue Feb 23 11:36:07 1999 +@@ -83,7 +83,7 @@ + BUILD_CLIENT_SCRIPTS_LIBEXEC = @BUILD_CLIENT_SCRIPTS_LIBEXEC@ + BUILD_CLIENT_SCRIPTS_SBIN = @BUILD_CLIENT_SCRIPTS_SBIN@ + BUILD_COMMON_LIB = @BUILD_COMMON_LIB@ +-BUILD_COMMON_LTLIB = @BUILD_COMMON_LTLIB@ ++BUILD_COMMON_LTLIB = + BUILD_RECOVER_PROGS_SBIN = @BUILD_RECOVER_PROGS_SBIN@ + BUILD_RESTORE_PROGS_LIBEXEC = @BUILD_RESTORE_PROGS_LIBEXEC@ + BUILD_RESTORE_PROGS_SBIN = @BUILD_RESTORE_PROGS_SBIN@ +@@ -164,9 +164,7 @@ + COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(AMANDA_CFLAGS) + + LDADD = @LEXLIB@ \ +- ../client-src/libamclient.$(LIB_EXTENSION) \ +- ../tape-src/libamtape.$(LIB_EXTENSION) \ +- ../common-src/libamanda.$(LIB_EXTENSION) ++ ../client-src/libamclient.$(LIB_EXTENSION) + + EXTRA_PROGRAMS = amrecover + +@@ -189,13 +187,11 @@ + DEFS = @DEFS@ -I. -I$(srcdir) -I../config + CPPFLAGS = @CPPFLAGS@ + LDFLAGS = @LDFLAGS@ +-LIBS = @LIBS@ ++LIBS = @LIBS@ -lamanda -lamtape + amrecover_OBJECTS = amrecover.o display_commands.o extract_list.o \ + help.o set_commands.o uparse.o uscan.o + amrecover_LDADD = $(LDADD) +-amrecover_DEPENDENCIES = ../client-src/libamclient.$(LIB_EXTENSION) \ +-../tape-src/libamtape.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++amrecover_DEPENDENCIES = ../client-src/libamclient.$(LIB_EXTENSION) + amrecover_LDFLAGS = + LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ + LEXLIB = @LEXLIB@ diff --git a/sysutils/amanda-client/patches/patch-ac b/sysutils/amanda-client/patches/patch-ac new file mode 100644 index 00000000000..a89f09768e9 --- /dev/null +++ b/sysutils/amanda-client/patches/patch-ac @@ -0,0 +1,11 @@ +--- Makefile.in.old Tue Feb 23 10:37:10 1999 ++++ Makefile.in Tue Feb 23 10:38:36 1999 +@@ -157,7 +157,7 @@ + AUTOCONF = @AUTOCONF@ --localdir=config + + SUBDIRS=config \ +- common-src client-src tape-src \ ++ client-src tape-src \ + server-src restore-src recover-src \ + changer-src amplot man \ + example diff --git a/sysutils/amanda-client/patches/patch-ad b/sysutils/amanda-client/patches/patch-ad new file mode 100644 index 00000000000..83b2a57a2b9 --- /dev/null +++ b/sysutils/amanda-client/patches/patch-ad @@ -0,0 +1,16 @@ +--- man/Makefile.in.old Tue Feb 23 11:12:23 1999 ++++ man/Makefile.in Tue Feb 23 11:12:46 1999 +@@ -158,12 +158,7 @@ + + transform = s,x,x,; + +-man_MANS = amadmin.8 amanda.8 amcheck.8 \ +- amcheckdb.8 amcleanup.8 amdump.8 \ +- amflush.8 amlabel.8 amoverview.8 \ +- amplot.8 amrecover.8 amrestore.8 \ +- amrmtape.8 amtape.8 amtoc.8 \ +- amverify.8 amstatus.8 amreport.8 ++man_MANS = amrecover.8 + + EXTRA_DIST = amplot.8 amrestore.8 amtape.8 + mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs diff --git a/sysutils/amanda-client/pkg/COMMENT b/sysutils/amanda-client/pkg/COMMENT new file mode 100644 index 00000000000..87b97277da1 --- /dev/null +++ b/sysutils/amanda-client/pkg/COMMENT @@ -0,0 +1 @@ +The Advanced Maryland Automatic Network Disk Archiver diff --git a/sysutils/amanda-client/pkg/DESCR b/sysutils/amanda-client/pkg/DESCR new file mode 100644 index 00000000000..a605558ea0a --- /dev/null +++ b/sysutils/amanda-client/pkg/DESCR @@ -0,0 +1,67 @@ +This is an alpha-test release of Amanda, the Advanced Maryland Automatic +Network Disk Archiver. Amanda is a backup system designed to archive many +computers on a network to a single large-capacity tape drive. This release +is currently in daily use at the University of Maryland at College Park +Computer Science Department, backing up all the disks on all the +workstations in the department: currently over 70 gigabytes of data across +more than 400 filesystems on more than 146 workstations and servers, using +a single 5 Gigabyte Exabyte EXB-8500. Here are some features of Amanda: + + * written in C, freely distributable. + * built on top of standard backup software: BSD Unix dump/restore, and + later GNU Tar and others. + * will back up multiple machines in parallel to a holding disk, blasting + finished dumps one by one to tape as fast as we can write files to + tape. For example, a ~2 Gb 8mm tape on a ~240K/s interface to a host + with a large holding disk can be filled by Amanda in under 4 hours. + * does simple tape management: will not overwrite the wrong tape. + * supports tape changers via a generic interface. Easily customizable to + any type of tape carousel, robot, or stacker that can be controlled via + the unix command line. + * supports Kerberos 4 security, including encrypted dumps. The Kerberos + support is available as a separate add-on package, see the file + KERBEROS.HOW-TO-GET on the ftp site, and the file docs/KERBEROS in this + package, for more details. + * for a restore, tells you what tapes you need, and finds the proper + backup image on the tape for you. + * recovers gracefully from errors, including down or hung machines. + * reports results, including all errors in detail, in email to operators. + * will dynamically adjust backup schedule to keep within constraints: no + more juggling by hand when adding disks and computers to network. + * includes a pre-run checker program, that conducts sanity checks on both + the tape server host and all the client hosts (in parallel), and will + send an e-mail report of any problems that could cause the backups to + fail. + * can compress dumps before sending over net, with either compress or gzip. + * can optionally syncronize with external backups, for those large + timesharing computers where you want to do full dumps when the system + is down in single-user mode (since BSD dump is not reliable on active + filesystems): Amanda will still do your daily dumps. + * lots of other options; Amanda is very configurable. + +Amanda requires a host that is mostly idle at night, with a large capacity +tape drive (e.g. an EXABYTE or DAT tape). This becomes the "tape server +host". All the computers you are going to dump are the "backup client +hosts". The server host can also be a client host. + +Amanda works best with one or more large "holding disk" partition on the +server host available to it for buffering dumps before writing to tape. +The holding disk allows Amanda to run backups in parallel to the disk, only +writing them to tape when the backup is finished. Note that the holding +disk is not required: without it Amanda will run backups sequentially to +the tape drive. Running it this way kills the great performance, but still +allows you to take advantage of Amanda's other features. + +As a rule of thumb, for best performance the holding disk should be larger +than the dump output from your largest disk partitions. For example, if +you are backing up some full gigabyte disks that compress down to 500 MB, +then you'll want 500 MB on your holding disk. On the other hand, if those +gigabyte drives are partitioned into 500 MB filesystems, they'll probably +compress down to 250 MB and you'll only need that much on your holding +disk. Amanda will perform better with larger holding disks. We use 800 MB +for our holding disk. + +Actually, Amanda will still work if you have full dumps that are larger +than the holding disk: Amanda will send those dumps directly to tape one at +a time. If you have many such dumps you will be limited by the dump speed +of those machines. diff --git a/sysutils/amanda-client/pkg/PLIST b/sysutils/amanda-client/pkg/PLIST new file mode 100644 index 00000000000..121244ea7c1 --- /dev/null +++ b/sysutils/amanda-client/pkg/PLIST @@ -0,0 +1,14 @@ +@comment $NetBSD: PLIST,v 1.1.1.1 1999/02/23 17:03:42 bouyer Exp $ +lib/libamclient.a +lib/libamclient-2.4.1p1.so.0.0 +libexec/amandad +libexec/calcsize +libexec/killpgrp +libexec/patch-system +libexec/rundump +libexec/runtar +libexec/selfcheck +libexec/sendbackup +libexec/sendsize +man/man8/amrecover.8 +sbin/amrecover diff --git a/sysutils/amanda-common/Makefile b/sysutils/amanda-common/Makefile new file mode 100644 index 00000000000..01cc1ef142a --- /dev/null +++ b/sysutils/amanda-common/Makefile @@ -0,0 +1,33 @@ +# $NetBSD: Makefile,v 1.1.1.1 1999/02/23 17:03:41 bouyer Exp $ +# FreeBSD Id: Makefile,v 1.9 1997/03/08 05:00:11 gpalmer Exp +# + +DISTNAME= amanda-2.4.1p1 +PKGNAME= amanda-common-2.4.1p1 +CATEGORIES= misc +MASTER_SITES= ftp://ftp.cs.umd.edu/pub/amanda/ + +MAINTAINER= packages@netbsd.org +HOMEPAGE= http://www.amanda.org/ + +DEPENDS+= addnerd-1.6:../../sysutils/addnerd + +AMANDA_USER?= backup +AMANDA_GROUP= operator + +USE_LIBTOOL= yes +GNU_CONFIGURE= yes +CONFIGURE_ARGS+= --with-user=${AMANDA_USER} \ + --with-group=${AMANDA_GROUP} \ + --with-mmap --with-amandahosts \ + --with-includes=${PREFIX}/include \ + --with-libraries=${PREFIX}/lib \ + --with-dump-honor-nodump \ + --without-server --without-restore --without-client + +CONFIGURE_ENV+= INSTALL_SCRIPT="${INSTALL_SCRIPT}" + +pre-install: + @${SETENV} ${MAKE_ENV} addnerd -g ${AMANDA_GROUP} ${AMANDA_USER} + +.include "../../mk/bsd.pkg.mk" diff --git a/sysutils/amanda-common/files/md5 b/sysutils/amanda-common/files/md5 new file mode 100644 index 00000000000..2164a59dc88 --- /dev/null +++ b/sysutils/amanda-common/files/md5 @@ -0,0 +1,3 @@ +$NetBSD: md5,v 1.1.1.1 1999/02/23 17:03:41 bouyer Exp $ + +MD5 (amanda-2.4.1p1.tar.gz) = 13f34dc97c35f85f88e54ca25b2009ed diff --git a/sysutils/amanda-common/patches/patch-aa b/sysutils/amanda-common/patches/patch-aa new file mode 100644 index 00000000000..51d4535b00d --- /dev/null +++ b/sysutils/amanda-common/patches/patch-aa @@ -0,0 +1,20 @@ +$NetBSD: patch-aa,v 1.1.1.1 1999/02/23 17:03:41 bouyer Exp $ + +--- configure.orig Sat Jul 18 10:34:33 1998 ++++ configure Sat Jul 18 10:35:03 1998 +@@ -4204,6 +4204,7 @@ + echo "$ac_t""no" 1>&6 + fi + ++if false; then + # Always use our own libtool. + LIBTOOL='$(SHELL) $(top_builddir)/libtool' + +@@ -4249,6 +4250,7 @@ + ${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig \ + $libtool_flags --no-verify $ac_aux_dir/ltmain.sh $host \ + || { echo "configure: error: libtool configure failed" 1>&2; exit 1; } ++fi + + # Extract the first word of "gcc", so it can be a program name with args. + set dummy gcc; ac_word=$2 diff --git a/sysutils/amanda-common/patches/patch-ab b/sysutils/amanda-common/patches/patch-ab new file mode 100644 index 00000000000..3582417d897 --- /dev/null +++ b/sysutils/amanda-common/patches/patch-ab @@ -0,0 +1,11 @@ +--- tape-src/Makefile.in.old Tue Feb 23 11:45:50 1999 ++++ tape-src/Makefile.in Tue Feb 23 11:45:21 1999 +@@ -162,7 +162,7 @@ + + COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(AMANDA_CFLAGS) + +-lib_LTLIBRARIES = @BUILD_TAPE_LTLIB@ ++lib_LTLIBRARIES = libamtape.la + EXTRA_LTLIBRARIES = libamtape.la + + noinst_LIBRARIES = @BUILD_TAPE_LIB@ diff --git a/sysutils/amanda-common/patches/patch-ac b/sysutils/amanda-common/patches/patch-ac new file mode 100644 index 00000000000..7b025a39211 --- /dev/null +++ b/sysutils/amanda-common/patches/patch-ac @@ -0,0 +1,16 @@ +--- man/Makefile.in.old Tue Feb 23 10:24:35 1999 ++++ man/Makefile.in Tue Feb 23 10:25:34 1999 +@@ -158,12 +158,7 @@ + + transform = s,x,x,; + +-man_MANS = amadmin.8 amanda.8 amcheck.8 \ +- amcheckdb.8 amcleanup.8 amdump.8 \ +- amflush.8 amlabel.8 amoverview.8 \ +- amplot.8 amrecover.8 amrestore.8 \ +- amrmtape.8 amtape.8 amtoc.8 \ +- amverify.8 amstatus.8 amreport.8 ++man_MANS = amanda.8 + + EXTRA_DIST = amplot.8 amrestore.8 amtape.8 + mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs diff --git a/sysutils/amanda-common/pkg/COMMENT b/sysutils/amanda-common/pkg/COMMENT new file mode 100644 index 00000000000..87b97277da1 --- /dev/null +++ b/sysutils/amanda-common/pkg/COMMENT @@ -0,0 +1 @@ +The Advanced Maryland Automatic Network Disk Archiver diff --git a/sysutils/amanda-common/pkg/DESCR b/sysutils/amanda-common/pkg/DESCR new file mode 100644 index 00000000000..a605558ea0a --- /dev/null +++ b/sysutils/amanda-common/pkg/DESCR @@ -0,0 +1,67 @@ +This is an alpha-test release of Amanda, the Advanced Maryland Automatic +Network Disk Archiver. Amanda is a backup system designed to archive many +computers on a network to a single large-capacity tape drive. This release +is currently in daily use at the University of Maryland at College Park +Computer Science Department, backing up all the disks on all the +workstations in the department: currently over 70 gigabytes of data across +more than 400 filesystems on more than 146 workstations and servers, using +a single 5 Gigabyte Exabyte EXB-8500. Here are some features of Amanda: + + * written in C, freely distributable. + * built on top of standard backup software: BSD Unix dump/restore, and + later GNU Tar and others. + * will back up multiple machines in parallel to a holding disk, blasting + finished dumps one by one to tape as fast as we can write files to + tape. For example, a ~2 Gb 8mm tape on a ~240K/s interface to a host + with a large holding disk can be filled by Amanda in under 4 hours. + * does simple tape management: will not overwrite the wrong tape. + * supports tape changers via a generic interface. Easily customizable to + any type of tape carousel, robot, or stacker that can be controlled via + the unix command line. + * supports Kerberos 4 security, including encrypted dumps. The Kerberos + support is available as a separate add-on package, see the file + KERBEROS.HOW-TO-GET on the ftp site, and the file docs/KERBEROS in this + package, for more details. + * for a restore, tells you what tapes you need, and finds the proper + backup image on the tape for you. + * recovers gracefully from errors, including down or hung machines. + * reports results, including all errors in detail, in email to operators. + * will dynamically adjust backup schedule to keep within constraints: no + more juggling by hand when adding disks and computers to network. + * includes a pre-run checker program, that conducts sanity checks on both + the tape server host and all the client hosts (in parallel), and will + send an e-mail report of any problems that could cause the backups to + fail. + * can compress dumps before sending over net, with either compress or gzip. + * can optionally syncronize with external backups, for those large + timesharing computers where you want to do full dumps when the system + is down in single-user mode (since BSD dump is not reliable on active + filesystems): Amanda will still do your daily dumps. + * lots of other options; Amanda is very configurable. + +Amanda requires a host that is mostly idle at night, with a large capacity +tape drive (e.g. an EXABYTE or DAT tape). This becomes the "tape server +host". All the computers you are going to dump are the "backup client +hosts". The server host can also be a client host. + +Amanda works best with one or more large "holding disk" partition on the +server host available to it for buffering dumps before writing to tape. +The holding disk allows Amanda to run backups in parallel to the disk, only +writing them to tape when the backup is finished. Note that the holding +disk is not required: without it Amanda will run backups sequentially to +the tape drive. Running it this way kills the great performance, but still +allows you to take advantage of Amanda's other features. + +As a rule of thumb, for best performance the holding disk should be larger +than the dump output from your largest disk partitions. For example, if +you are backing up some full gigabyte disks that compress down to 500 MB, +then you'll want 500 MB on your holding disk. On the other hand, if those +gigabyte drives are partitioned into 500 MB filesystems, they'll probably +compress down to 250 MB and you'll only need that much on your holding +disk. Amanda will perform better with larger holding disks. We use 800 MB +for our holding disk. + +Actually, Amanda will still work if you have full dumps that are larger +than the holding disk: Amanda will send those dumps directly to tape one at +a time. If you have many such dumps you will be limited by the dump speed +of those machines. diff --git a/sysutils/amanda-common/pkg/PLIST b/sysutils/amanda-common/pkg/PLIST new file mode 100644 index 00000000000..aebca5c4a13 --- /dev/null +++ b/sysutils/amanda-common/pkg/PLIST @@ -0,0 +1,7 @@ +@comment $NetBSD: PLIST,v 1.1.1.1 1999/02/23 17:03:41 bouyer Exp $ +lib/libamanda.a +lib/libamanda-2.4.1p1.so.0.0 +lib/libamtape.a +lib/libamtape-2.4.1p1.so.0.0 +libexec/versionsuffix +man/man8/amanda.8 diff --git a/sysutils/amanda-server/Makefile b/sysutils/amanda-server/Makefile new file mode 100644 index 00000000000..2650ea41ae5 --- /dev/null +++ b/sysutils/amanda-server/Makefile @@ -0,0 +1,53 @@ +# $NetBSD: Makefile,v 1.1.1.1 1999/02/23 17:03:41 bouyer Exp $ +# FreeBSD Id: Makefile,v 1.9 1997/03/08 05:00:11 gpalmer Exp +# + +DISTNAME= amanda-2.4.1p1 +PKGNAME= amanda-server-2.4.1p1 +CATEGORIES= misc +MASTER_SITES= ftp://ftp.cs.umd.edu/pub/amanda/ + +MAINTAINER= packages@netbsd.org +HOMEPAGE= http://www.amanda.org/ + +DEPENDS+= readline-2.2:../../devel/readline +DEPENDS+= gnuplot-3.7:../../graphics/gnuplot +DEPENDS+= amanda-common-2.4.1p1:../amanda-common +USE_PERL5= yes + +AMANDA_USER?= backup +AMANDA_GROUP= operator + +USE_LIBTOOL= yes +GNU_CONFIGURE= yes +CONFIGURE_ARGS+= --with-user=${AMANDA_USER} \ + --with-group=${AMANDA_GROUP} \ + --with-mmap --with-amandahosts \ + --with-includes=${PREFIX}/include \ + --with-libraries=${PREFIX}/lib \ + --with-dump-honor-nodump \ + --without-client +CONFIGURE_ENV+= INSTALL_SCRIPT="${INSTALL_SCRIPT}" + +post-install: +.if !defined(NOPORTDOCS) + ${MKDIR} ${PREFIX}/share/doc/amanda + ${MKDIR} ${PREFIX}/share/examples/amanda + for i in ${WRKDIR}/${DISTNAME}/docs/* ; do \ + ${INSTALL_DATA} $$i ${PREFIX}/share/doc/amanda; \ + done + for i in ${WRKDIR}/${DISTNAME}/example/8.5x11.ps \ + ${WRKDIR}/${DISTNAME}/example/DIN-A4.ps \ + ${WRKDIR}/${DISTNAME}/example/DLT.ps \ + ${WRKDIR}/${DISTNAME}/example/EXB-8500.ps \ + ${WRKDIR}/${DISTNAME}/example/HP-DAT.ps \ + ${WRKDIR}/${DISTNAME}/example/amanda.conf \ + ${WRKDIR}/${DISTNAME}/example/chg-multi.conf \ + ${WRKDIR}/${DISTNAME}/example/chg-scsi.conf \ + ${WRKDIR}/${DISTNAME}/example/config.site \ + ${WRKDIR}/${DISTNAME}/example/disklist; do \ + ${INSTALL_DATA} $$i ${PREFIX}/share/examples/amanda; \ + done +.endif + +.include "../../mk/bsd.pkg.mk" diff --git a/sysutils/amanda-server/files/md5 b/sysutils/amanda-server/files/md5 new file mode 100644 index 00000000000..47cdce05477 --- /dev/null +++ b/sysutils/amanda-server/files/md5 @@ -0,0 +1,3 @@ +$NetBSD: md5,v 1.1.1.1 1999/02/23 17:03:42 bouyer Exp $ + +MD5 (amanda-2.4.1p1.tar.gz) = 13f34dc97c35f85f88e54ca25b2009ed diff --git a/sysutils/amanda-server/patches/patch-aa b/sysutils/amanda-server/patches/patch-aa new file mode 100644 index 00000000000..1dcb847b0a2 --- /dev/null +++ b/sysutils/amanda-server/patches/patch-aa @@ -0,0 +1,20 @@ +$NetBSD: patch-aa,v 1.1.1.1 1999/02/23 17:03:42 bouyer Exp $ + +--- configure.orig Sat Jul 18 10:34:33 1998 ++++ configure Sat Jul 18 10:35:03 1998 +@@ -4204,6 +4204,7 @@ + echo "$ac_t""no" 1>&6 + fi + ++if false; then + # Always use our own libtool. + LIBTOOL='$(SHELL) $(top_builddir)/libtool' + +@@ -4249,6 +4250,7 @@ + ${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig \ + $libtool_flags --no-verify $ac_aux_dir/ltmain.sh $host \ + || { echo "configure: error: libtool configure failed" 1>&2; exit 1; } ++fi + + # Extract the first word of "gcc", so it can be a program name with args. + set dummy gcc; ac_word=$2 diff --git a/sysutils/amanda-server/patches/patch-ab b/sysutils/amanda-server/patches/patch-ab new file mode 100644 index 00000000000..aaa30e72c39 --- /dev/null +++ b/sysutils/amanda-server/patches/patch-ab @@ -0,0 +1,11 @@ +--- client-src/Makefile.in.old Tue Feb 23 10:34:37 1999 ++++ client-src/Makefile.in Tue Feb 23 10:35:09 1999 +@@ -167,7 +167,7 @@ + + SUFFIXES = .sh .pl + +-libexec_PROGRAMS = versionsuffix @BUILD_CLIENT_PROGS_LIBEXEC@ ++libexec_PROGRAMS = @BUILD_CLIENT_PROGS_LIBEXEC@ + + # these are used for testing only: + TEST_PROGS = getfsent diff --git a/sysutils/amanda-server/patches/patch-ac b/sysutils/amanda-server/patches/patch-ac new file mode 100644 index 00000000000..f33a08a583d --- /dev/null +++ b/sysutils/amanda-server/patches/patch-ac @@ -0,0 +1,11 @@ +--- Makefile.in.old Tue Feb 23 10:37:10 1999 ++++ Makefile.in Tue Feb 23 10:38:36 1999 +@@ -157,7 +157,7 @@ + AUTOCONF = @AUTOCONF@ --localdir=config + + SUBDIRS=config \ +- common-src client-src tape-src \ ++ client-src \ + server-src restore-src recover-src \ + changer-src amplot man \ + example diff --git a/sysutils/amanda-server/patches/patch-ad b/sysutils/amanda-server/patches/patch-ad new file mode 100644 index 00000000000..6074bd71cec --- /dev/null +++ b/sysutils/amanda-server/patches/patch-ad @@ -0,0 +1,15 @@ +--- man/Makefile.in.old Tue Feb 23 10:43:23 1999 ++++ man/Makefile.in Tue Feb 23 10:42:34 1999 +@@ -158,10 +158,10 @@ + + transform = s,x,x,; + +-man_MANS = amadmin.8 amanda.8 amcheck.8 \ ++man_MANS = amadmin.8 amcheck.8 \ + amcheckdb.8 amcleanup.8 amdump.8 \ + amflush.8 amlabel.8 amoverview.8 \ +- amplot.8 amrecover.8 amrestore.8 \ ++ amplot.8 amrestore.8 \ + amrmtape.8 amtape.8 amtoc.8 \ + amverify.8 amstatus.8 amreport.8 + diff --git a/sysutils/amanda-server/patches/patch-ae b/sysutils/amanda-server/patches/patch-ae new file mode 100644 index 00000000000..0916691924f --- /dev/null +++ b/sysutils/amanda-server/patches/patch-ae @@ -0,0 +1,259 @@ +--- changer-src/Makefile.in.old Tue Feb 23 11:55:44 1999 ++++ changer-src/Makefile.in Tue Feb 23 11:57:09 1999 +@@ -83,7 +83,7 @@ + BUILD_CLIENT_SCRIPTS_LIBEXEC = @BUILD_CLIENT_SCRIPTS_LIBEXEC@ + BUILD_CLIENT_SCRIPTS_SBIN = @BUILD_CLIENT_SCRIPTS_SBIN@ + BUILD_COMMON_LIB = @BUILD_COMMON_LIB@ +-BUILD_COMMON_LTLIB = @BUILD_COMMON_LTLIB@ ++BUILD_COMMON_LTLIB = + BUILD_RECOVER_PROGS_SBIN = @BUILD_RECOVER_PROGS_SBIN@ + BUILD_RESTORE_PROGS_LIBEXEC = @BUILD_RESTORE_PROGS_LIBEXEC@ + BUILD_RESTORE_PROGS_SBIN = @BUILD_RESTORE_PROGS_SBIN@ +@@ -93,7 +93,7 @@ + BUILD_SERVER_PROGS_SBIN = @BUILD_SERVER_PROGS_SBIN@ + BUILD_SERVER_SCRIPTS_SBIN = @BUILD_SERVER_SCRIPTS_SBIN@ + BUILD_TAPE_LIB = @BUILD_TAPE_LIB@ +-BUILD_TAPE_LTLIB = @BUILD_TAPE_LTLIB@ ++BUILD_TAPE_LTLIB = + CAT = @CAT@ + CC = @CC@ + CHIO = @CHIO@ +@@ -161,8 +161,7 @@ + COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(AMANDA_CFLAGS) + + # they cross-reference each other a bit, so need to be included twice +-LDADD = ../server-src/libamserver.$(LIB_EXTENSION) \ +- ../common-src/libamanda.$(LIB_EXTENSION) ++LDADD = ../server-src/libamserver.$(LIB_EXTENSION) + + SUFFIXES = .pl .sh + +@@ -203,9 +202,8 @@ + + chg_scsi_OBJECTS = chg-scsi.o + chg_scsi_DEPENDENCIES = libscsi.a \ +-../server-src/libamserver.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) +-chg_scsi_LDFLAGS = ++../server-src/libamserver.$(LIB_EXTENSION) ++chg_scsi_LDFLAGS = -lamanda + SCRIPTS = $(libexec_SCRIPTS) + + CFLAGS = @CFLAGS@ +--- restore-src/Makefile.in.old Tue Feb 23 11:58:06 1999 ++++ restore-src/Makefile.in Tue Feb 23 12:58:50 1999 +@@ -83,7 +83,7 @@ + BUILD_CLIENT_SCRIPTS_LIBEXEC = @BUILD_CLIENT_SCRIPTS_LIBEXEC@ + BUILD_CLIENT_SCRIPTS_SBIN = @BUILD_CLIENT_SCRIPTS_SBIN@ + BUILD_COMMON_LIB = @BUILD_COMMON_LIB@ +-BUILD_COMMON_LTLIB = @BUILD_COMMON_LTLIB@ ++BUILD_COMMON_LTLIB = + BUILD_RECOVER_PROGS_SBIN = @BUILD_RECOVER_PROGS_SBIN@ + BUILD_RESTORE_PROGS_LIBEXEC = @BUILD_RESTORE_PROGS_LIBEXEC@ + BUILD_RESTORE_PROGS_SBIN = @BUILD_RESTORE_PROGS_SBIN@ +@@ -93,7 +93,7 @@ + BUILD_SERVER_PROGS_SBIN = @BUILD_SERVER_PROGS_SBIN@ + BUILD_SERVER_SCRIPTS_SBIN = @BUILD_SERVER_SCRIPTS_SBIN@ + BUILD_TAPE_LIB = @BUILD_TAPE_LIB@ +-BUILD_TAPE_LTLIB = @BUILD_TAPE_LTLIB@ ++BUILD_TAPE_LTLIB = + CAT = @CAT@ + CC = @CC@ + CHIO = @CHIO@ +@@ -162,8 +162,7 @@ + + COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(AMANDA_CFLAGS) + +-LDADD = ../tape-src/libamtape.$(LIB_EXTENSION) \ +- ../common-src/libamanda.$(LIB_EXTENSION) ++LDADD = + + sbin_PROGRAMS = @BUILD_RESTORE_PROGS_SBIN@ + +@@ -181,17 +180,15 @@ + DEFS = @DEFS@ -I. -I$(srcdir) -I../config + CPPFLAGS = @CPPFLAGS@ + LDFLAGS = @LDFLAGS@ +-LIBS = @LIBS@ ++LIBS = @LIBS@ -lamtape -lamanda + amrestore_SOURCES = amrestore.c + amrestore_OBJECTS = amrestore.o + amrestore_LDADD = $(LDADD) +-amrestore_DEPENDENCIES = ../tape-src/libamtape.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++amrestore_DEPENDENCIES = + amrestore_LDFLAGS = + amidxtaped_OBJECTS = amidxtaped.o + amidxtaped_LDADD = $(LDADD) +-amidxtaped_DEPENDENCIES = ../tape-src/libamtape.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++amidxtaped_DEPENDENCIES = + amidxtaped_LDFLAGS = + CFLAGS = @CFLAGS@ + LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +--- server-src/Makefile.in.old Tue Feb 23 13:01:08 1999 ++++ server-src/Makefile.in Tue Feb 23 13:03:27 1999 +@@ -83,7 +83,7 @@ + BUILD_CLIENT_SCRIPTS_LIBEXEC = @BUILD_CLIENT_SCRIPTS_LIBEXEC@ + BUILD_CLIENT_SCRIPTS_SBIN = @BUILD_CLIENT_SCRIPTS_SBIN@ + BUILD_COMMON_LIB = @BUILD_COMMON_LIB@ +-BUILD_COMMON_LTLIB = @BUILD_COMMON_LTLIB@ ++BUILD_COMMON_LTLIB = + BUILD_RECOVER_PROGS_SBIN = @BUILD_RECOVER_PROGS_SBIN@ + BUILD_RESTORE_PROGS_LIBEXEC = @BUILD_RESTORE_PROGS_LIBEXEC@ + BUILD_RESTORE_PROGS_SBIN = @BUILD_RESTORE_PROGS_SBIN@ +@@ -93,7 +93,7 @@ + BUILD_SERVER_PROGS_SBIN = @BUILD_SERVER_PROGS_SBIN@ + BUILD_SERVER_SCRIPTS_SBIN = @BUILD_SERVER_SCRIPTS_SBIN@ + BUILD_TAPE_LIB = @BUILD_TAPE_LIB@ +-BUILD_TAPE_LTLIB = @BUILD_TAPE_LTLIB@ ++BUILD_TAPE_LTLIB = + CAT = @CAT@ + CC = @CC@ + CHIO = @CHIO@ +@@ -162,9 +162,7 @@ + + COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(AMANDA_CFLAGS) + +-LDADD = libamserver.$(LIB_EXTENSION) \ +- ../tape-src/libamtape.$(LIB_EXTENSION) \ +- ../common-src/libamanda.$(LIB_EXTENSION) ++LDADD = libamserver.$(LIB_EXTENSION) + + SUFFIXES = .sh .pl + +@@ -234,7 +232,7 @@ + DEFS = @DEFS@ -I. -I$(srcdir) -I../config + CPPFLAGS = @CPPFLAGS@ + LDFLAGS = @LDFLAGS@ +-LIBS = @LIBS@ ++LIBS = @LIBS@ -lamtape -lamanda + libamserver_a_LIBADD = + libamserver_a_OBJECTS = amindex.o changer.o clock.o conffile.o \ + diskfile.o driverio.o holding.o infofile.o logfile.o tapefile.o find.o +@@ -249,109 +247,77 @@ + amadmin_SOURCES = amadmin.c + amadmin_OBJECTS = amadmin.o + amadmin_LDADD = $(LDADD) +-amadmin_DEPENDENCIES = libamserver.$(LIB_EXTENSION) \ +-../tape-src/libamtape.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++amadmin_DEPENDENCIES = libamserver.$(LIB_EXTENSION) + amadmin_LDFLAGS = + amcheck_SOURCES = amcheck.c + amcheck_OBJECTS = amcheck.o + amcheck_LDADD = $(LDADD) +-amcheck_DEPENDENCIES = libamserver.$(LIB_EXTENSION) \ +-../tape-src/libamtape.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++amcheck_DEPENDENCIES = libamserver.$(LIB_EXTENSION) + amcheck_LDFLAGS = + amflush_SOURCES = amflush.c + amflush_OBJECTS = amflush.o + amflush_LDADD = $(LDADD) +-amflush_DEPENDENCIES = libamserver.$(LIB_EXTENSION) \ +-../tape-src/libamtape.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++amflush_DEPENDENCIES = libamserver.$(LIB_EXTENSION) + amflush_LDFLAGS = + amindexd_OBJECTS = amindexd.o disk_history.o list_dir.o + amindexd_LDADD = $(LDADD) +-amindexd_DEPENDENCIES = libamserver.$(LIB_EXTENSION) \ +-../tape-src/libamtape.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++amindexd_DEPENDENCIES = libamserver.$(LIB_EXTENSION) + amindexd_LDFLAGS = + amlabel_SOURCES = amlabel.c + amlabel_OBJECTS = amlabel.o + amlabel_LDADD = $(LDADD) +-amlabel_DEPENDENCIES = libamserver.$(LIB_EXTENSION) \ +-../tape-src/libamtape.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++amlabel_DEPENDENCIES = libamserver.$(LIB_EXTENSION) + amlabel_LDFLAGS = + amtape_SOURCES = amtape.c + amtape_OBJECTS = amtape.o + amtape_LDADD = $(LDADD) +-amtape_DEPENDENCIES = libamserver.$(LIB_EXTENSION) \ +-../tape-src/libamtape.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++amtape_DEPENDENCIES = libamserver.$(LIB_EXTENSION) + amtape_LDFLAGS = + amtrmidx_SOURCES = amtrmidx.c + amtrmidx_OBJECTS = amtrmidx.o + amtrmidx_LDADD = $(LDADD) +-amtrmidx_DEPENDENCIES = libamserver.$(LIB_EXTENSION) \ +-../tape-src/libamtape.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++amtrmidx_DEPENDENCIES = libamserver.$(LIB_EXTENSION) + amtrmidx_LDFLAGS = + driver_SOURCES = driver.c + driver_OBJECTS = driver.o + driver_LDADD = $(LDADD) +-driver_DEPENDENCIES = libamserver.$(LIB_EXTENSION) \ +-../tape-src/libamtape.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++driver_DEPENDENCIES = libamserver.$(LIB_EXTENSION) + driver_LDFLAGS = + dumper_SOURCES = dumper.c + dumper_OBJECTS = dumper.o + dumper_LDADD = $(LDADD) +-dumper_DEPENDENCIES = libamserver.$(LIB_EXTENSION) \ +-../tape-src/libamtape.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++dumper_DEPENDENCIES = libamserver.$(LIB_EXTENSION) + dumper_LDFLAGS = + getconf_SOURCES = getconf.c + getconf_OBJECTS = getconf.o + getconf_LDADD = $(LDADD) +-getconf_DEPENDENCIES = libamserver.$(LIB_EXTENSION) \ +-../tape-src/libamtape.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++getconf_DEPENDENCIES = libamserver.$(LIB_EXTENSION) + getconf_LDFLAGS = + planner_SOURCES = planner.c + planner_OBJECTS = planner.o + planner_LDADD = $(LDADD) +-planner_DEPENDENCIES = libamserver.$(LIB_EXTENSION) \ +-../tape-src/libamtape.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++planner_DEPENDENCIES = libamserver.$(LIB_EXTENSION) + planner_LDFLAGS = + amreport_OBJECTS = reporter.o + amreport_LDADD = $(LDADD) +-amreport_DEPENDENCIES = libamserver.$(LIB_EXTENSION) \ +-../tape-src/libamtape.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++amreport_DEPENDENCIES = libamserver.$(LIB_EXTENSION) + amreport_LDFLAGS = + taper_SOURCES = taper.c + taper_OBJECTS = taper.o + taper_LDADD = $(LDADD) +-taper_DEPENDENCIES = libamserver.$(LIB_EXTENSION) \ +-../tape-src/libamtape.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++taper_DEPENDENCIES = libamserver.$(LIB_EXTENSION) + taper_LDFLAGS = + diskfile_OBJECTS = diskfile.test.o + diskfile_LDADD = $(LDADD) +-diskfile_DEPENDENCIES = libamserver.$(LIB_EXTENSION) \ +-../tape-src/libamtape.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++diskfile_DEPENDENCIES = libamserver.$(LIB_EXTENSION) + diskfile_LDFLAGS = + conffile_OBJECTS = conffile.test.o + conffile_LDADD = $(LDADD) +-conffile_DEPENDENCIES = libamserver.$(LIB_EXTENSION) \ +-../tape-src/libamtape.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++conffile_DEPENDENCIES = libamserver.$(LIB_EXTENSION) + conffile_LDFLAGS = + infofile_OBJECTS = infofile.test.o + infofile_LDADD = $(LDADD) +-infofile_DEPENDENCIES = libamserver.$(LIB_EXTENSION) \ +-../tape-src/libamtape.$(LIB_EXTENSION) \ +-../common-src/libamanda.$(LIB_EXTENSION) ++infofile_DEPENDENCIES = libamserver.$(LIB_EXTENSION) + infofile_LDFLAGS = + SCRIPTS = $(sbin_SCRIPTS) + diff --git a/sysutils/amanda-server/patches/patch-af b/sysutils/amanda-server/patches/patch-af new file mode 100644 index 00000000000..47fdad0714b --- /dev/null +++ b/sysutils/amanda-server/patches/patch-af @@ -0,0 +1,57 @@ +--- changer-src/chg-scsi.c.orig Sat Sep 19 03:55:13 1998 ++++ changer-src/chg-scsi.c Mon Feb 22 20:00:39 1999 +@@ -527,6 +527,15 @@ + { + FILE *out=NULL; + int cnt=0; ++ ++ /* if we have a long timeout, sleep a long time before access. ++ * This is avoid lots of error messages for drives which need a lot of time ++ */ ++ if ((timeout /2) > 1) { ++ timeout = timeout / 2; ++ sleep(timeout); ++ } ++ + while ((cnt<timeout) && (NULL==(out=fopen(tapedev,"w+")))){ + cnt++; + sleep(1); +@@ -634,7 +643,10 @@ + + /* Get the configuration parameters */ + if (tape_device[0] >= '0' && tape_device[0] <= '9' && tape_device[1] == 0){ +- read_config(changer_file,&chg); ++ if (read_config(changer_file,&chg) == -1) { ++ perror(changer_file); ++ exit(1); ++ } + confnum=atoi(tape_device); + use_slots = chg.conf[confnum].end-chg.conf[confnum].start+1; + slot_offset = chg.conf[confnum].start; +@@ -717,7 +729,7 @@ + if (need_eject) + eject_tape(tape_device); + (void)unload(fd, drive_num, oldtarget); +- if (ask_clean(tape_device,need_sleep)) ++ if (clean_slot != -1 && ask_clean(tape_device,need_sleep)) + clean_tape(fd,tape_device,clean_file,drive_num, + clean_slot,maxclean,time_file); + loaded=0; +@@ -751,7 +763,7 @@ + if (need_eject) + eject_tape(tape_device); + (void)unload(fd, drive_num, target); +- if (ask_clean(tape_device,need_sleep)) ++ if (clean_slot != -1 && ask_clean(tape_device,need_sleep)) + clean_tape(fd,tape_device,clean_file,drive_num,clean_slot, + maxclean,time_file); + } +@@ -776,7 +788,7 @@ + if (need_eject) + eject_tape(tape_device); + (void)unload(fd, drive_num, target); +- if (ask_clean(tape_device,need_sleep)) ++ if (clean_slot != -1 && ask_clean(tape_device,need_sleep)) + clean_tape(fd,tape_device,clean_file,drive_num,clean_slot, + maxclean,time_file); + printf("%d %s\n", target, tape_device); diff --git a/sysutils/amanda-server/patches/patch-ag b/sysutils/amanda-server/patches/patch-ag new file mode 100644 index 00000000000..283d06444cc --- /dev/null +++ b/sysutils/amanda-server/patches/patch-ag @@ -0,0 +1,21 @@ +--- example/chg-scsi.conf.old Tue Feb 23 16:44:39 1999 ++++ example/chg-scsi.conf Tue Feb 23 16:46:38 1999 +@@ -2,6 +2,8 @@ + number_configs 2 + eject 1 # Tapedrives need an eject command + sleep 5 # Seconds to wait until the tape gets ready ++ # The driver first sleeps for <sleep>/2 seconds, ++ # then pool the drive every seconds. + cleanmax 10 # How many times could a cleaning tape get used + changerdev /dev/sch0 + # +@@ -13,7 +15,8 @@ + startuse 0 # The slots associated with the drive 0 + enduse 9 # + statfile /usr/local/etc/amanda/tape5-slot # The file where the actual slot is stored +-cleancart 20 # the slot where the cleaningcartridge for drive 0 is located ++cleancart -1 # the slot where the cleaningcartridge for drive 0 is ++ # located. -1 means none. + cleanfile /usr/local/etc/amanda/tape0-clean # The file where the cleanings are recorded + usagecount /usr/local/etc/amanda/backup/totaltime + diff --git a/sysutils/amanda-server/pkg/COMMENT b/sysutils/amanda-server/pkg/COMMENT new file mode 100644 index 00000000000..87b97277da1 --- /dev/null +++ b/sysutils/amanda-server/pkg/COMMENT @@ -0,0 +1 @@ +The Advanced Maryland Automatic Network Disk Archiver diff --git a/sysutils/amanda-server/pkg/DESCR b/sysutils/amanda-server/pkg/DESCR new file mode 100644 index 00000000000..a605558ea0a --- /dev/null +++ b/sysutils/amanda-server/pkg/DESCR @@ -0,0 +1,67 @@ +This is an alpha-test release of Amanda, the Advanced Maryland Automatic +Network Disk Archiver. Amanda is a backup system designed to archive many +computers on a network to a single large-capacity tape drive. This release +is currently in daily use at the University of Maryland at College Park +Computer Science Department, backing up all the disks on all the +workstations in the department: currently over 70 gigabytes of data across +more than 400 filesystems on more than 146 workstations and servers, using +a single 5 Gigabyte Exabyte EXB-8500. Here are some features of Amanda: + + * written in C, freely distributable. + * built on top of standard backup software: BSD Unix dump/restore, and + later GNU Tar and others. + * will back up multiple machines in parallel to a holding disk, blasting + finished dumps one by one to tape as fast as we can write files to + tape. For example, a ~2 Gb 8mm tape on a ~240K/s interface to a host + with a large holding disk can be filled by Amanda in under 4 hours. + * does simple tape management: will not overwrite the wrong tape. + * supports tape changers via a generic interface. Easily customizable to + any type of tape carousel, robot, or stacker that can be controlled via + the unix command line. + * supports Kerberos 4 security, including encrypted dumps. The Kerberos + support is available as a separate add-on package, see the file + KERBEROS.HOW-TO-GET on the ftp site, and the file docs/KERBEROS in this + package, for more details. + * for a restore, tells you what tapes you need, and finds the proper + backup image on the tape for you. + * recovers gracefully from errors, including down or hung machines. + * reports results, including all errors in detail, in email to operators. + * will dynamically adjust backup schedule to keep within constraints: no + more juggling by hand when adding disks and computers to network. + * includes a pre-run checker program, that conducts sanity checks on both + the tape server host and all the client hosts (in parallel), and will + send an e-mail report of any problems that could cause the backups to + fail. + * can compress dumps before sending over net, with either compress or gzip. + * can optionally syncronize with external backups, for those large + timesharing computers where you want to do full dumps when the system + is down in single-user mode (since BSD dump is not reliable on active + filesystems): Amanda will still do your daily dumps. + * lots of other options; Amanda is very configurable. + +Amanda requires a host that is mostly idle at night, with a large capacity +tape drive (e.g. an EXABYTE or DAT tape). This becomes the "tape server +host". All the computers you are going to dump are the "backup client +hosts". The server host can also be a client host. + +Amanda works best with one or more large "holding disk" partition on the +server host available to it for buffering dumps before writing to tape. +The holding disk allows Amanda to run backups in parallel to the disk, only +writing them to tape when the backup is finished. Note that the holding +disk is not required: without it Amanda will run backups sequentially to +the tape drive. Running it this way kills the great performance, but still +allows you to take advantage of Amanda's other features. + +As a rule of thumb, for best performance the holding disk should be larger +than the dump output from your largest disk partitions. For example, if +you are backing up some full gigabyte disks that compress down to 500 MB, +then you'll want 500 MB on your holding disk. On the other hand, if those +gigabyte drives are partitioned into 500 MB filesystems, they'll probably +compress down to 250 MB and you'll only need that much on your holding +disk. Amanda will perform better with larger holding disks. We use 800 MB +for our holding disk. + +Actually, Amanda will still work if you have full dumps that are larger +than the holding disk: Amanda will send those dumps directly to tape one at +a time. If you have many such dumps you will be limited by the dump speed +of those machines. diff --git a/sysutils/amanda-server/pkg/PLIST b/sysutils/amanda-server/pkg/PLIST new file mode 100644 index 00000000000..54c72d624ec --- /dev/null +++ b/sysutils/amanda-server/pkg/PLIST @@ -0,0 +1,85 @@ +@comment $NetBSD: PLIST,v 1.1.1.1 1999/02/23 17:03:42 bouyer Exp $ +lib/libamserver.a +lib/libamserver-2.4.1p1.so.0.0 +libexec/amcat.awk +libexec/amidxtaped +libexec/amindexd +libexec/amplot.awk +libexec/amplot.g +libexec/amplot.gp +libexec/amtrmidx +libexec/chg-scsi +libexec/chg-zd-mtx +libexec/chg-chio +libexec/chg-chs +libexec/chg-manual +libexec/chg-mtx +libexec/chg-multi +libexec/chg-rth +libexec/driver +libexec/dumper +libexec/getconf +libexec/planner +libexec/taper +man/man8/amadmin.8 +man/man8/amcheck.8 +man/man8/amcheckdb.8 +man/man8/amcleanup.8 +man/man8/amdump.8 +man/man8/amflush.8 +man/man8/amlabel.8 +man/man8/amoverview.8 +man/man8/amplot.8 +man/man8/amreport.8 +man/man8/amrestore.8 +man/man8/amrmtape.8 +man/man8/amstatus.8 +man/man8/amtape.8 +man/man8/amtoc.8 +man/man8/amverify.8 +sbin/amadmin +sbin/amcheck +sbin/amcheckdb +sbin/amcleanup +sbin/amdump +sbin/amflush +sbin/amlabel +sbin/amoverview +sbin/amplot +sbin/amreport +sbin/amrestore +sbin/amrmtape +sbin/amstatus +sbin/amtape +sbin/amtoc +sbin/amverify +share/doc/amanda/FAQ +share/doc/amanda/INDEXING +share/doc/amanda/INSTALL +share/doc/amanda/INTERNALS +share/doc/amanda/KERBEROS +share/doc/amanda/LABEL.PRINTING +share/doc/amanda/MULTITAPE +share/doc/amanda/RESTORE +share/doc/amanda/SAMBA +share/doc/amanda/SECURITY +share/doc/amanda/SYSTEM.NOTES +share/doc/amanda/TAPE.CHANGERS +share/doc/amanda/TAPETYPES +share/doc/amanda/UPGRADE +share/doc/amanda/WHATS.NEW +share/doc/amanda/WISHLIST +share/doc/amanda/YEAR2000 +share/doc/amanda/ZFTAPE +share/examples/amanda/8.5x11.ps +share/examples/amanda/DIN-A4.ps +share/examples/amanda/DLT.ps +share/examples/amanda/EXB-8500.ps +share/examples/amanda/HP-DAT.ps +share/examples/amanda/amanda.conf +share/examples/amanda/chg-multi.conf +share/examples/amanda/chg-scsi.conf +share/examples/amanda/config.site +share/examples/amanda/disklist +@dirrm share/doc/amanda +@dirrm share/examples/amanda |