diff options
author | Robin H. Johnson <robbat2@gentoo.org> | 2003-07-08 07:23:50 +0000 |
---|---|---|
committer | Robin H. Johnson <robbat2@gentoo.org> | 2003-07-08 07:23:50 +0000 |
commit | 41cd81cc9646e0a9f4f27f1867e19861c8ac5ea7 (patch) | |
tree | d6359df30ec3d4828bffdefc05e2d37cd7f46c8a /app-admin | |
parent | new version of ebuild, see ChangeLog (diff) | |
download | gentoo-2-41cd81cc9646e0a9f4f27f1867e19861c8ac5ea7.tar.gz gentoo-2-41cd81cc9646e0a9f4f27f1867e19861c8ac5ea7.tar.bz2 gentoo-2-41cd81cc9646e0a9f4f27f1867e19861c8ac5ea7.zip |
new version of ebuild, see ChangeLog
Diffstat (limited to 'app-admin')
-rw-r--r-- | app-admin/amanda/ChangeLog | 12 | ||||
-rw-r--r-- | app-admin/amanda/Manifest | 8 | ||||
-rw-r--r-- | app-admin/amanda/amanda-2.4.4-r1.ebuild | 330 | ||||
-rw-r--r-- | app-admin/amanda/files/amanda-amandahosts | 10 | ||||
-rw-r--r-- | app-admin/amanda/files/amanda-inetd.amanda.sample | 3 | ||||
-rw-r--r-- | app-admin/amanda/files/amanda-profile | 2 | ||||
-rw-r--r-- | app-admin/amanda/files/amanda-xinetd | 18 | ||||
-rw-r--r-- | app-admin/amanda/files/digest-amanda-2.4.4-r1 | 1 |
8 files changed, 370 insertions, 14 deletions
diff --git a/app-admin/amanda/ChangeLog b/app-admin/amanda/ChangeLog index 5a5ffa77be32..9a4a6ab373d2 100644 --- a/app-admin/amanda/ChangeLog +++ b/app-admin/amanda/ChangeLog @@ -1,6 +1,16 @@ # ChangeLog for app-admin/amanda # Copyright 2000-2003 Gentoo Technologies, Inc.; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/app-admin/amanda/ChangeLog,v 1.1 2003/06/26 19:47:53 robbat2 Exp $ +# $Header: /var/cvsroot/gentoo-x86/app-admin/amanda/ChangeLog,v 1.2 2003/07/08 07:23:48 robbat2 Exp $ + +*amanda-2.4.4-r1 (08 Jul 2003) + + 08 Jul 2003; Robin Johnson <robbat2@gentoo.org> amanda-2.4.4-r1.ebuild, + files/amanda-amandahosts, files/amanda-inetd.amanda.sample, + files/amanda-profile, files/amanda-xinetd: + Large improvements to the ebuild configuration system, using the same + environment variables. Now we also preserve them in an env.d file, which also + adds the CONFIG_PROTECT entry I missed before. Also update many config files + to be dynamically filled in from the env variables. *amanda-2.4.4 (26 Jun 2003) diff --git a/app-admin/amanda/Manifest b/app-admin/amanda/Manifest index d56ae7bcc42b..a20b58d79bbc 100644 --- a/app-admin/amanda/Manifest +++ b/app-admin/amanda/Manifest @@ -1,13 +1,13 @@ MD5 b2f5b785a20a1b356e58629612c0aab5 amanda-2.4.4.ebuild 8488 -MD5 e74190fa362ddbc598d018088672881e amanda-2.4.4-r1.ebuild 8852 -MD5 57a77cc4973d7b06a845c2fd71f42de0 ChangeLog 805 +MD5 f376bcdf8ea3c00e0fa0a359ae85aac4 amanda-2.4.4-r1.ebuild 11277 +MD5 3f994b4f0c3d0b2a2cfccb164876d661 ChangeLog 1304 MD5 b21569120561b1c58ad59e93ce6df732 files/amanda-devfs 216 MD5 fe28f64731a2dbf85f76b6f38942e032 files/example_disklist 55 MD5 a98390eb2ab16398b7332c42560c190f files/amanda-cron 419 -MD5 ef0acf0fde212986b778cfb827ada0d4 files/amanda-xinetd 1415 +MD5 3f55a95767207ed6c8fa0a14ec2a27b3 files/amanda-xinetd 1502 MD5 df9ef94534db143bd33ed833a7765bc6 files/amanda-profile 43 MD5 7e3ebbf89155432d9ee2e0ede8d4d8d6 files/example_amanda.conf 635 -MD5 235cd39d86a0a3057cecc42ad383a1d5 files/amanda-amandahosts 325 +MD5 451df413de672ae539379c00fb9e62fc files/amanda-amandahosts 339 MD5 7e5571de2054c56f477b5522246a834e files/digest-amanda-2.4.4 65 MD5 7e5571de2054c56f477b5522246a834e files/digest-amanda-2.4.4-r1 65 MD5 95a109a0edbf12da91dbabf7977a97f7 files/example_global.conf 1377 diff --git a/app-admin/amanda/amanda-2.4.4-r1.ebuild b/app-admin/amanda/amanda-2.4.4-r1.ebuild new file mode 100644 index 000000000000..19f6c962d1bd --- /dev/null +++ b/app-admin/amanda/amanda-2.4.4-r1.ebuild @@ -0,0 +1,330 @@ +# Copyright 1999-2003 Gentoo Technologies, Inc. +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/app-admin/amanda/amanda-2.4.4-r1.ebuild,v 1.1 2003/07/08 07:23:48 robbat2 Exp $ + +inherit eutils +DESCRIPTION="The Advanced Maryland Automatic Network Disk Archiver" +HOMEPAGE="http://www.amanda.org/" +SRC_URI="mirror://sourceforge/amanda/${P}.tar.gz" +LICENSE="as-is" +SLOT="0" +KEYWORDS="~x86 ~ppc ~sparc" +DEPEND="sys-libs/readline + virtual/inetd + virtual/mta + app-arch/mt-st + net-mail/mailx + media-gfx/gnuplot + sys-apps/gawk + sys-apps/tar + sys-devel/autoconf + sys-devel/automake + dev-lang/perl + sys-apps/mtx + app-arch/dump + net-mail/mailx + samba? ( net-fs/samba ) + berkdb? ( sys-libs/db ) + gdbm? ( sys-libs/gdbm ) + xfs? ( sys-apps/xfsdump )" + +IUSE="pic debug gdbm berkdb samba xfs" + +S=${WORKDIR}/${P} +MYFILESDIR=${WORKDIR}/files +MYTMPDIR=${WORKDIR}/tmp +ENVDIR="/etc/env.d" +ENVDFILE="97amanda" +TMPENVFILE="${MYTMPDIR}/${ENVDFILE}" + +amanda_variable_setup() { + # places for us to work in + mkdir -p ${MYFILESDIR} ${MYTMPDIR} + + # Setting vars + local currentamanda + + # Grab the current settings + currentamanda="$(set | egrep "^AMANDA_" | xargs)" + use debug && einfo "Current settings: ${currentamanda}" + #for i in ${currentamanda}; do + # eval `eval echo ${i}` + # echo "Setting: ${i}" + #done; + + # First we set the defaults + [ -z "${AMANDA_GROUP_GID}" ] && AMANDA_GROUP_GID=87 + [ -z "${AMANDA_GROUP_NAME}" ] && AMANDA_GROUP_NAME=amanda + [ -z "${AMANDA_USER_NAME}" ] && AMANDA_USER_NAME=amanda + [ -z "${AMANDA_USER_UID}" ] && AMANDA_USER_UID=87 + [ -z "${AMANDA_USER_SH}" ] && AMANDA_USER_SH=/bin/false + [ -z "${AMANDA_USER_HOMEDIR}" ] && AMANDA_USER_HOMEDIR=/var/spool/amanda + [ -z "${AMANDA_USER_GROUPS}" ] && AMANDA_USER_GROUPS=${AMANDA_GROUP_NAME} + # This installs Amanda, with the server. However, it could be a client, + # just specify an alternate server name in AMANDA_SERVER. + [ -z "${AMANDA_SERVER}" ] && AMANDA_SERVER=localhost + [ -z "${AMANDA_SERVER_TAPE}" ] && AMANDA_SERVER_TAPE="${AMANDA_SERVER}" + [ -z "${AMANDA_SERVER_INDEX}" ] && AMANDA_SERVER_INDEX="${AMANDA_SERVER}" + [ -z "${AMANDA_TAR_LISTDIR}" ] && AMANDA_TAR_LISTDIR=${AMANDA_USER_HOMEDIR}/tar-lists + [ -z "${AMANDA_CONFIG_NAME}" ] && AMANDA_CONFIG_NAME=DailySet1 + [ -z "${AMANDA_TMPDIR}" ] && AMANDA_TMPDIR=${AMANDA_USER_HOMEDIR}/tmp + # These are left empty by default + [ -z "${AMANDA_PORTS_UDP}" ] && AMANDA_PORTS_UDP= + [ -z "${AMANDA_PORTS_TCP}" ] && AMANDA_PORTS_TCP= + [ -z "${AMANDA_PORTS_BOTH}" ] && AMANDA_PORTS_BOTH= + [ -z "${AMANDA_PORTS}" ] && AMANDA_PORTS= + + # This one is a little more complicated + # The priority list is this: + # 1. 'Berkely DB style' (only if USE="berkdb") + # 2. 'GDBM style' (only if USE="gdbm") + # 3. 'Text style' + [ -z "${AMANDA_DBMODE}" ] && use berkdb && AMANDA_DBMODE=db + [ -z "${AMANDA_DBMODE}" ] && use gdbm && AMANDA_DBMODE=gdbm + [ -z "${AMANDA_DBMODE}" ] && AMANDA_DBMODE=text + + # Now pull in the old stuff + if [ -f "${ENVDFILE}" ]; then + # We don't just source it as we don't want everything in there. + eval $(egrep "^AMANDA_" ${ENVDIR}/${ENVDFILE}) + fi + + # Re-apply the new settings if any + [ -n "${currentamanda}" ] && eval `echo "${currentamada}"` + + # Now we store the settings we just created + set | egrep "^AMANDA_" > ${TMPENVFILE} +} + +pkg_setup() { + # Now add users if needed + amanda_variable_setup + enewgroup ${AMANDA_GROUP_NAME} ${AMANDA_GROUP_GID} + enewuser ${AMANDA_USER_NAME} ${AMANDA_USER_UID} ${AMANDA_USER_SH} ${AMANDA_USER_HOMEDIR} ${AMANDA_USER_GROUPS} +} + +src_unpack() { + unpack ${A} + amanda_variable_setup +} + +src_compile() { + [ ! -f "${TMPENVFILE}" ] && die "Variable setting file (${TMPENVFILE}) should exist!" + source ${TMPENVFILE} + local myconf + cd ${S} + + einfo "Using '${AMANDA_DBMODE}' style database" + myconf="${myconf} --with-db=${AMANDA_DBMODE}" + + einfo "Using ${AMANDA_SERVER_TAPE} for tape server." + myconf="${myconf} --with-tape-server=${AMANDA_SERVER_TAPE}" + einfo "Using ${AMANDA_SERVER_INDEX} for index server." + myconf="${myconf} --with-index-server=${AMANDA_SERVER_TAPE}" + einfo "Using ${AMANDA_USER_NAME} for amanda user." + myconf="${myconf} --with-user=${AMANDA_USER_NAME}" + einfo "Using ${AMANDA_GROUP_NAME} for amanda group." + myconf="${myconf} --with-group=${AMANDA_GROUP_NAME}" + einfo "Using ${AMANDA_TAR_LISTDIR} as tar listdir." + myconf="${myconf} --with-gnutar-listdir=${AMANDA_TAR_LISTDIR}" + einfo "Using ${AMANDA_CONFIG_NAME} as default config name." + myconf="${myconf} --with-config=${AMANDA_CONFIG_NAME}" + einfo "Using ${AMANDA_TMPDIR} as Amanda temporary directory." + myconf="${myconf} --with-tmpdir=${AMANDA_TMPDIR}" + + if [ -n "${AMANDA_PORTS_UDP}" ] && [ -n "${AMANDA_PORTS_TCP}" ] && [ -z "${AMANDA_PORTS_BOTH}" ] ; then + eerror "If you want _both_ UDP and TCP ports, please use only the" + eerror "AMANDA_PORTS environment variable for identical ports, or set" + eerror "AMANDA_PORTS_BOTH." + die "Bad port setup!" + fi + if [ -n "${AMANDA_PORTS_UDP}" ]; then + einfo "Using UDP ports ${AMANDA_PORTS_UDP/,/-}" + myconf="${myconf} --with-udpportrange=${AMANDA_PORTS_UDP}" + fi + if [ -n "${AMANDA_PORTS_TCP}" ]; then + einfo "Using TCP ports ${AMANDA_PORTS_TCP/,/-}" + myconf="${myconf} --with-tcpportrange=${AMANDA_PORTS_TCP}" + fi + if [ -n "${AMANDA_PORTS}" ]; then + einfo "Using ports ${AMANDA_PORTS/,/-}" + myconf="${myconf} --with-portrange=${AMANDA_PORTS}" + fi + + # Extras + # Speed option + myconf="${myconf} --with-buffered-dump" + # Debug + myconf="${myconf} `use_with debug debugging`" + # PIC + myconf="${myconf} `use_with pic`" + # Where to put our files + myconf="${myconf} --localstatedir=${AMANDA_USER_HOMEDIR}" + + # Samba support + use samba && myconf="${myconf} --with-smbclient=/usr/bin/smbclient" || myconf="${myconf} --without-smbclient" + + econf ${myconf} || die "econf failed!" + emake || die "emake failed!" + + # Compile the tapetype program too + # This is deprecated, use amtapetype instead! + # cd tape-src + # emake tapetype || die "emake tapetype failed!" + + # Only needed if you we do versioning + #dosed "s,/usr/local/bin/perl,/usr/bin/perl," ${S}/contrib/set_prod_link.pl + #perl ${S}/contrib/set_prod_link.pl + +} + + +src_install() { + [ ! -f "${TMPENVFILE}" ] && die "Variable setting file (${TMPENVFILE}) should exist!" + source ${TMPENVFILE} + + einfo "Doing stock install" + make DESTDIR=${D} install || die + + # Prepare our custom files + einfo "Building custom configuration files" + cp ${FILESDIR}/amanda-* ${MYFILESDIR} + local i # our iterator + local sedexpr # var for sed expr + sedexpr='' + for i in AMANDA_GROUP_GID AMANDA_GROUP_NAME AMANDA_USER_NAME AMANDA_USER_UID AMANDA_USER_SH AMANDA_USER_HOMEDIR AMANDA_USER_GROUPS AMANDA_SERVER AMANDA_SERVER_TAPE AMANDA_SERVER_INDEX AMANDA_TAR_LISTDIR AMANDA_CONFIG_NAME AMANDA_TMPDIR AMANDA_PORTS_UDP AMANDA_PORTS_TCP AMANDA_PORTS_BOTH AMANDA_PORTS; do + local val + eval "val=\"\${${i}}\"" + sedexpr="${sedexpr}s|__${i}__|${val}|g;" + done + #einfo "Compiled SED expression: '${sedexpr}'" + + # now apply the sed expr + for i in ${FILESDIR}/amanda-* ; do + local filename + filename=`basename ${i}` + #einfo "Applying compiled SED expression to ${filename}" + sed -re "${sedexpr}" <${i} >${MYFILESDIR}/${filename} + done + + # Build the envdir file + # Don't forget this.. + einfo "Building environment file" + echo "CONFIG_PROTECT=${AMANDA_USER_HOMEDIR}/.amandahosts" >${MYFILESDIR}/${ENVDFILE} + echo "# These settings are what was present in the environment when this" >>${MYFILESDIR}/${ENVDFILE} + echo "# Amanda was compiled. Changing anything below this comment will" >>${MYFILESDIR}/${ENVDFILE} + echo "# have no effect on your application, but it merely exists to" >>${MYFILESDIR}/${ENVDFILE} + echo "# preserve them for your next emerge of Amanda" >>${MYFILESDIR}/${ENVDFILE} + cat ${TMPENVFILE} | sed "s,=\$,='',g" >>${MYFILESDIR}/${ENVDFILE} + + into /usr + + # Depreacted, use amtapetype instead + #einfo "Installing tapetype utility" + #newsbin tape-src/tapetype tapetype + + # docs + einfo "Installing documentation" + dodoc AUTHORS C* INSTALL NEWS README + # Clean up some bits + dodoc ${D}/usr/share/amanda/* + rm -rf ${D}/usr/share/amanda + # our inetd sample + einfo "Installing standard inetd sample" + dodoc ${MYFILESDIR}/amanda-inetd.amanda.sample + # Stock extra docs + docinto docs + dodoc ${S}/docs/* + # Labels + einfo "Installing labels" + docinto labels + dodoc ${S}/example/3hole.ps + dodoc ${S}/example/8.5x11.ps + dodoc ${S}/example/DIN-A4.ps + dodoc ${S}/example/DLT.ps + dodoc ${S}/example/EXB-8500.ps + dodoc ${S}/example/HP-DAT.ps + # Amanda example configs + einfo "Installing example configurations" + docinto example + dodoc ${S}/example/* + docinto example1 + newdoc ${FILESDIR}/example_amanda.conf amanda.conf + newdoc ${FILESDIR}/example_disklist disklist + newdoc ${FILESDIR}/example_global.conf global.conf + docinto example2 + newdoc ${S}/example/amanda.conf amanda.conf + newdoc ${S}/example/disklist disklist + # Compress it all + prepalldocs + + # Just make sure it exists for XFS to work... + use xfs && keepdir ${D}/var/xfsdump/inventory + + insinto ${AMANDA_USER_HOMEDIR} + einfo "Installing .amandahosts File for ${AMANDA_USER_NAME} user" + newins ${MYFILESDIR}/amanda-amandahosts .amandahosts + einfo "Installing .profile for ${AMANDA_USER_NAME} user" + newins ${MYFILESDIR}/amanda-profile .profile + + einfo "Installing Sample Daily Cron Job for Amanda" + CRONDIR=/etc/cron.daily/ + exeinto ${CRONDIR} + newexe ${MYFILESDIR}/amanda-cron amanda + # Not excetuable by default + fperms 644 ${CRONDIR}/amanda + + insinto /etc/amanda/${AMANDA_CONFIG_NAME} + keepdir /etc/amanda + keepdir /etc/amanda/${AMANDA_CONFIG_NAME} + + local i + for i in ${AMANDA_USER_HOMEDIR} ${AMANDA_TAR_LISTDIR} ${AMANDA_TMPDIR} ${AMANDA_TMPDIR}/dumps ${AMANDA_USER_HOMEDIR}/${AMANDA_CONFIG_NAME} /etc/amanda /etc/amanda/${AMANDA_CONFIG_NAME}; do + einfo "Securing directory (${i})" + dodir ${i} + keepdir ${i} + fowners ${AMANDA_USER_NAME}.${AMANDA_GROUP_NAME} ${i} + fperms 700 ${i} + done + + for i in amandates dumpdates; do + einfo "Creating inital Amanda file (${i})" + touch ${D}/etc/${i} + fowners ${AMANDA_USER_NAME}.${AMANDA_GROUP_NAME} /etc/${i} + fperms 600 /etc/${i} + done + + # DevFS + einfo "Installing DevFS config file" + insinto /etc/devfs.d + newins ${MYFILESDIR}/amanda-devfs amanda + + # Env.d + einfo "Installing environment config file" + insinto /etc/env.d + doins ${MYFILESDIR}/${ENVDFILE} + + # Installing Amanda Xinetd Services Definition + einfo "Installing xinetd service file" + insinto /etc/xinetd.d + newins ${MYFILESDIR}/amanda-xinetd amanda + +} + +pkg_postinst() { + einfo "You should configure Amanda in /etc/amanda now." + echo + einfo "If you use xinetd, Don't forget to check /etc/xinetd.d/amanda" + einfo "and restart xinetd afterwards!" + echo + einfo "Otherwise, please look at /usr/share/doc/${P}/inetd.amanda.sample" + einfo "as an example of how to configure your inetd." + echo + einfo "NOTICE: If you need raw acces to partitions you need to add the" + einfo "amanda user to the 'disk' group and uncomment following lines in" + einfo "your /etc/devfs.d/amanda:" + einfo "SCSI:" + einfo "REGISTER ^scsi/host.*/bus.*/target.*/lun.*/part[0-9] PERMISSIONS root.disk 660" + einfo "IDE:" + einfo "REGISTER ^ide/host.*/bus.*/target.*/lun.*/part[0-9] PERMISSIONS root.disk 660" +} diff --git a/app-admin/amanda/files/amanda-amandahosts b/app-admin/amanda/files/amanda-amandahosts index 1213e6590387..a86ab8a3f5ab 100644 --- a/app-admin/amanda/files/amanda-amandahosts +++ b/app-admin/amanda/files/amanda-amandahosts @@ -1,2 +1,8 @@ -localhost amanda -localhost root +# vim: ts=4 sts=4 sw=4 noexpandtab: +# Machine-name for those hosts which are permitted to back up (fully-qualified +# is best). An entry in /etc/hosts adds fail-safe against DNS death :-) +# | +# | permitted user-name +# | | + +__AMANDA_SERVER__ __AMANDA_USER_NAME__ diff --git a/app-admin/amanda/files/amanda-inetd.amanda.sample b/app-admin/amanda/files/amanda-inetd.amanda.sample new file mode 100644 index 000000000000..0314e9b87b04 --- /dev/null +++ b/app-admin/amanda/files/amanda-inetd.amanda.sample @@ -0,0 +1,3 @@ +amanda dgram udp wait amanda /usr/libexec/amandad amandad +amandaidx stream tcp nowait amanda /usr/libexec/amindexd amindexd +amidxtape stream tcp nowait amanda /usr/libexec/amidxtaped amidxtaped diff --git a/app-admin/amanda/files/amanda-profile b/app-admin/amanda/files/amanda-profile index 40c948b9adff..acf34263b613 100644 --- a/app-admin/amanda/files/amanda-profile +++ b/app-admin/amanda/files/amanda-profile @@ -1 +1 @@ -export PATH=/usr/sbin:/usr/libexec/amanda:${PATH} +export PATH=/usr/sbin:/usr/libexec:${PATH} diff --git a/app-admin/amanda/files/amanda-xinetd b/app-admin/amanda/files/amanda-xinetd index eb4ca8b2755a..2a52e591bc87 100644 --- a/app-admin/amanda/files/amanda-xinetd +++ b/app-admin/amanda/files/amanda-xinetd @@ -7,10 +7,12 @@ service amanda socket_type = dgram protocol = udp wait = yes - user = amanda - group = root + user = __AMANDA_USER_NAME__ + group = __AMANDA_GROUP_NAME__ groups = yes server = /usr/libexec/amandad + # You need to ensure this points to your Amanda server! + # Don't just remove it! only_from = __AMANDA_SERVER__ disable = yes } @@ -20,10 +22,12 @@ service amandaidx socket_type = stream protocol = tcp wait = no - user = amanda - group = root + user = __AMANDA_USER_NAME__ + group = __AMANDA_GROUP_NAME__ groups = yes server = /usr/libexec/amindexd + # You need to ensure this points to your Amanda server! + # Don't just remove it! only_from = __AMANDA_SERVER__ disable = yes } @@ -33,10 +37,12 @@ service amidxtape socket_type = stream protocol = tcp wait = no - user = amanda - group = root + user = __AMANDA_USER_NAME__ + group = __AMANDA_GROUP_NAME__ groups = yes server = /usr/libexec/amidxtaped + # You need to ensure this points to your Amanda server! + # Don't just remove it! only_from = __AMANDA_SERVER__ disable = yes } diff --git a/app-admin/amanda/files/digest-amanda-2.4.4-r1 b/app-admin/amanda/files/digest-amanda-2.4.4-r1 new file mode 100644 index 000000000000..0744e0686521 --- /dev/null +++ b/app-admin/amanda/files/digest-amanda-2.4.4-r1 @@ -0,0 +1 @@ +MD5 1f5f0c636707994eb7b5e74b19528323 amanda-2.4.4.tar.gz 1220934 |