1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
|
# 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.ebuild,v 1.11 2003/12/25 02:43:56 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
app-arch/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-fs/xfsdump )"
IUSE="pic debug gdbm berkdb samba xfs"
S=${WORKDIR}/${P}
[ -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
pkg_setup() {
enewgroup ${AMANDA_GROUP_NAME} ${AMANDA_GROUP_GID}
enewuser ${AMANDA_USER_NAME} ${AMANDA_USER_UID} ${AMANDA_USER_SH} ${AMANDA_USER_HOMEDIR} ${AMANDA_USER_GROUPS}
echo >/dev/null
}
src_compile() {
# fix bug #36316
addpredict /var/cache/samba/gencache.tdb
local myconf
cd ${S}
[ -z "${AMANDA_DBMODE}" ] || use gdbm && AMANDA_DBMODE=gdbm
use berkdb && AMANDA_DBMODE=db
[ -z "${AMANDA_DBMODE}" ] && AMANDA_DBMODE=text
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`"
myconf="${myconf} --localstatedir=${AMANDA_USER_HOMEDIR}"
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
cd tape-src
emake tapetype || "emake tapetype failed!"
dosed "s,/usr/local/bin/perl,/usr/bin/perl," ${S}/contrib/set_prod_link.pl
perl ${S}/contrib/set_prod_link.pl
}
src_install() {
make DESTDIR=${D} install || die
into /usr
newsbin tape-src/tapetype tapetype
dodoc AUTHORS C* INSTALL NEWS README
docinto example
dodoc ${S}/example/*
docinto docs
dodoc ${S}/docs/*
prepalldocs
if use xfs; then
dodir ${D}/var/xfsdump/inventory
mkdir -p ${D}/var/xfsdump/inventory
fi
# einfo "Installing Amandahosts File for ${AMANDA_SERVER}"
insinto ${AMANDA_USER_HOMEDIR}
newins ${FILESDIR}/amanda-amandahosts .amandahosts
dosed "s/__AMANDA_SERVER__/${AMANDA_SERVER}/" ${AMANDA_USER_HOMEDIR}/.amandahosts
newins ${FILESDIR}/amanda-profile .profile
# einfo "Installing Sample Daily Cron Job for Amanda"
CRONDIR=/etc/cron.daily/
exeinto ${CDRONDIR}
newexe ${FILESDIR}/amanda-cron amanda
dosed "s,__AMANDA_CONFIG_NAME__,${AMANDA_CONFIG_NAME},g" ${CRONDIR}/amanda
fperms 644 ${CRONDIR}/amanda
insinto /etc/amanda/lbl
newins ${S}/example/3hole.ps 3hole.ps
newins ${S}/example/8.5x11.ps 8.5x11.ps
newins ${S}/example/DIN-A4.ps DIN-A4.ps
newins ${S}/example/DLT.ps DLT.ps
newins ${S}/example/EXB-8500.ps EXB-8500.ps
newins ${S}/example/HP-DAT.ps HP-DAT.ps
# Amanda example configs
insinto /etc/amanda/example
newins ${FILESDIR}/example_amanda.conf amanda.conf
newins ${FILESDIR}/example_disklist disklist
newins ${FILESDIR}/example_global.conf global.conf
insinto /etc/amanda/example2
newins ${S}/example/amanda.conf amanda.conf
newins ${S}/example/disklist disklist
# einfo "Installing Sample Daily Backup Configuration"
insinto /etc/amanda/${AMANDA_CONFIG_NAME}
fowners ${AMANDA_USER_NAME}:${AMANDA_GROUP_NAME} /etc/amanda
fowners ${AMANDA_USER_NAME}:${AMANDA_GROUP_NAME} /etc/amanda/${AMANDA_CONFIG_NAME}
fowners ${AMANDA_USER_NAME}:${AMANDA_GROUP_NAME} /etc/amanda/${AMANDA_CONFIG_NAME}/*
fperms 700 /etc/amanda
fperms 700 /etc/amanda/${AMANDA_CONFIG_NAME}
local i
for i in amandates dumpdates; do
touch ${D}/etc/${i}
fowners ${AMANDA_USER_NAME}:${AMANDA_GROUP_NAME} /etc/${i}
fperms 600 /etc/${i}
done
dodir ${AMANDA_TAR_LISTDIR}
dodir ${AMANDA_TMPDIR}
dodir ${AMANDA_TMPDIR}/dumps
dodir ${AMANDA_USER_HOMEDIR}/${AMANDA_CONFIG_NAME}
fowners ${AMANDA_USER_NAME}:${AMANDA_GROUP_NAME} ${AMANDA_USER_HOMEDIR}
fowners ${AMANDA_USER_NAME}:${AMANDA_GROUP_NAME} ${AMANDA_TAR_LISTDIR}
fowners ${AMANDA_USER_NAME}:${AMANDA_GROUP_NAME} ${AMANDA_TMPDIR}
fowners ${AMANDA_USER_NAME}:${AMANDA_GROUP_NAME} ${AMANDA_TMPDIR}/dumps
fowners ${AMANDA_USER_NAME}:${AMANDA_GROUP_NAME} ${AMANDA_USER_HOMEDIR}/${AMANDA_CONFIG_NAME}
fperms 700 ${AMANDA_USER_HOMEDIR}
# DevFS
insinto /etc/devfs.d
newins ${FILESDIR}/amanda-devfs amanda
if [ -x "/usr/sbin/xinetd" ]; then
# Installing Amanda Xinetd Services Definition
insinto /etc/xinetd.d
newins ${FILESDIR}/amanda-xinetd amanda
dosed "s/__AMANDA_SERVER__/${AMANDA_SERVER}/g" /etc/xinetd.d/amanda
else
echo > ${D}/etc/amanda/inetd.amanda "amanda dgram udp wait amanda /usr/libexec/amanda/amandad amandad"
echo >> ${D}/etc/amanda/inetd.amanda "amandaidx stream tcp nowait amanda /usr/libexec/amanda/amindexd amindexd"
echo >> ${D}/etc/amanda/inetd.amanda "amidxtape stream tcp nowait amanda /usr/libexec/amanda/amidxtaped amidxtaped"
fi
}
pkg_postinst() {
einfo "You should configure Amanda in /etc/amanda now."
if [ -x "/usr/sbin/xinetd" ]; then
einfo "Don't forget to check /etc/xinetd.d/amanda and restart"
einfo "xinetd afterwards!"
else
einfo "No xinetd found. Config example for inetd is in /etc/amanda/inetd.amanda"
fi
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"
}
|