Imported Upstream version 2.6.0p2
[debian/amanda] / packaging / rpm / amanda.spec
1 #
2 #                  Copyright (C) 2005 Zmanda Incorporated.
3 #                            All Rights Reserved.
4 #
5 #  This program is free software; you can redistribute it and/or modify it
6 #  under the terms of the GNU General Public License version 2 as published
7 #  by the Free Software Foundation.
8
9 #  This program is distributed in the hope that it will be useful, but
10 #  WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
11 #  or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
12 #  for more details.
13
14 #  You should have received a copy of the GNU General Public License along
15 #  with this program; if not, write to the Free Software Foundation, Inc.,
16 #  59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
17
18 #  Contact information: Zmanda Inc, 505 N Mathlida Ave, Suite 120
19 #  Sunnyvale, CA 94085, USA, or: http://www.zmanda.com
20 #
21
22
23 %define build_srpm 0
24 %{?srpm_only: %define build_srpm 1}
25
26 # Pkg-config sometimes needs its own path set, and we need to allow users to
27 # override our guess during detection.  This macro takes care of that.
28 # If no --define PKG_CONFIG_PATH was passed and env var $PKG_CONFIG_PATH is 
29 # set then use the env var.
30 %{!?PKG_CONFIG_PATH: %{expand:%(echo ${PKG_CONFIG_PATH:+"%%define PKG_CONFIG_PATH $PKG_CONFIG_PATH"})}}
31
32 %{?PKG_CONFIG_PATH:%{echo:PKG_CONFIG_PATH = %{PKG_CONFIG_PATH}}}
33
34 # Define which Distribution we are building:
35 # Try to detect the distribution we are building:
36 %if %{_vendor} == redhat 
37     # Fedora symlinks /etc/fedora-release to /etc/redhat-release for at least
38     # fc3-8.  So RHEL and Fedora look at the same file.  Different versions have
39     # different numbers of spaces; hence the use if $3 vs. $4..
40     %if %(awk '$1 == "Fedora" && $4 ~ /3.*/ { exit 1; }' /etc/redhat-release; echo $?)
41         %define dist fedora
42         %define disttag fc
43         %define distver 3
44     %endif
45     %if %(awk '$1 == "Fedora" && $4 ~ /4.*/ { exit 1; }' /etc/redhat-release; echo $?)
46         %define dist fedora
47         %define disttag fc
48         %define distver 4
49     %endif
50     %if %(awk '$1 == "Fedora" && $4 ~ /5.*/ { exit 1; }' /etc/redhat-release; echo $?)
51         %define dist fedora
52         %define disttag fc
53         %define distver 5
54     %endif
55     %if %(awk '$1 == "Fedora" && $4 ~ /6.*/ { exit 1; }' /etc/redhat-release; echo $?)
56         %define dist fedora
57         %define disttag fc
58         %define distver 6
59     %endif
60     %if %(awk '$1 == "Fedora" && $3 ~ /7.*/ { exit 1; }' /etc/redhat-release; echo $?)
61         %define dist fedora
62         %define disttag fc
63         %define distver 7
64     %endif
65     %if %(awk '$1 == "Fedora" && $3 ~ /8.*/ { exit 1; }' /etc/redhat-release; echo $?)
66         %define dist fedora
67         %define disttag fc
68         %define distver 8
69         # TODO: generalize this so that any platform can cross compile
70         %if %{_host_cpu} == x86_64 && %{_target_cpu} == i686
71                 # Do nothing if PKG_CONFIG_PATH was set by the user above.
72                 %{!?PKG_CONFIG_PATH: %define PKG_CONFIG_PATH /usr/lib/pkgconfig}
73         %endif
74     %endif
75     %if %(awk '$1 == "Red" && $7 ~ /3.*/ { exit 1; }' /etc/redhat-release; echo $?)
76         %define dist redhat
77         %define disttag rhel
78         %define distver 3
79         %define tarver 1.14
80     %endif
81     %if %(awk '$1 == "Red" && $7 ~ /4.*/ { exit 1; }' /etc/redhat-release; echo $?)
82         %define dist redhat
83         %define disttag rhel
84         %define distver 4
85         %define tarver 1.14
86     %endif
87     %if %(awk '$1 == "Red" && $7 ~ /5.*/ { exit 1; }' /etc/redhat-release; echo $?)
88         %define dist redhat
89         %define disttag rhel
90         %define distver 5
91     %endif
92 %endif
93 # Detect Suse variants.  Suse gives us some nice macros in their rpms
94 %if %{_vendor} == "suse"
95     %if %{suse_version} == 910
96         %define dist SuSE
97         %define disttag sles
98         %define distver 9
99     %endif
100     %if %{suse_version} == 1010
101         %define dist SuSE
102         %define disttag sles
103         %define distver 10
104     %endif
105     %if %{suse_version} == 1000
106         %define dist SuSE
107         %define disttag suse
108         %define distver 10
109     %endif
110 %endif
111
112 # Set options per distribution
113 %if %{dist} == redhat || %{dist} == fedora
114     %define rpm_group Applications/Archiving
115     %define xinetd_reload restart
116 %endif
117 %if %{dist} == SuSE
118     %define rpm_group Productivity/Archiving/Backup
119     %define xinetd_reload restart
120 %endif
121
122 # Set minimum tar version if it wasn't set in the per-distro section
123 %{!?tarver: %define tarver 1.15}
124
125 %define packer %(%{__id_u} -n)
126
127 # --- Definitions ---
128
129 # Define amanda_version if it is not already defined.
130 %{!?amanda_version: %define amanda_version 2.6.0p2}
131 %{!?amanda_release: %define amanda_release 1}
132 %define amanda_version_info "Amanda Community Edition - version %{amanda_version}"
133 %define amanda_user amandabackup
134 %define amanda_group disk
135 %define udpportrange "700,740"
136 %define tcpportrange "11000,11040"
137 %define low_tcpportrange "700,710"
138
139 Summary: The Amanda Backup and Archiving System
140 Name: amanda
141 Version: %{amanda_version}
142 %define rpm_release %{amanda_release}.%{disttag}%{distver}
143 %if %{build_srpm}
144 %define rpm_release %{amanda_release}
145 %endif
146 Release: %{rpm_release}
147 Source: %{name}-%{version}.tar.gz
148 License: http://wiki.zmanda.com/index.php/Amanda_Copyright
149 Vendor: Zmanda, Inc.
150 Packager: www.zmanda.com
151 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-%{packer}-buildroot
152 Group: %{rpm_group}
153 # TODO - Need required versions for these:
154 BuildRequires: autoconf
155 BuildRequires: automake
156 BuildRequires: binutils
157 BuildRequires: bison
158 BuildRequires: flex
159 BuildRequires: gcc
160 BuildRequires: glibc >= 2.2.0
161 BuildRequires: readline
162 BuildRequires: curl >= 7.10.0
163 Requires: /bin/awk
164 Requires: /bin/date
165 Requires: /usr/bin/id
166 Requires: /sbin/ldconfig
167 Requires: /bin/sh
168 Requires: /usr/sbin/useradd
169 Requires: /usr/sbin/usermod
170 Requires: fileutils
171 Requires: grep
172 Requires: gnuplot
173 Requires: libc.so.6
174 Requires: libm.so.6
175 Requires: libnsl.so.1
176 Requires: curl >= 7.10.0
177 Requires: xinetd
178 Requires: perl >= 5.6.0
179 Requires: tar >= %{tarver}
180 %if  %{dist} == redhat || %{dist}== fedora
181 Requires: libtermcap.so.2
182 Requires: initscripts
183 %endif
184 Provides: amanda-backup_client = %{amanda_version}, amanda-backup_server = %{amanda_version}
185
186 %package backup_client
187 Summary: The Amanda Backup and Archiving Client
188 Group: %{rpm_group}
189 Requires: /bin/awk
190 Requires: fileutils
191 Requires: grep
192 %if  %{dist} == redhat || %{dist}== fedora
193 Requires: libtermcap.so.2
194 Requires: initscripts
195 %endif
196 Requires: xinetd
197 Requires: libc.so.6
198 Requires: libm.so.6
199 Requires: libnsl.so.1
200 Requires: perl >= 5.6.0
201 Requires: tar >= 1.15
202 Provides: amanda-backup_client = %{amanda_version}
203 Provides: libamclient-%{version}.so = %{amanda_version}
204 Provides: libamanda-%{version}.so = %{amanda_version}
205 Conflicts: amanda-backup_server 
206
207 %package backup_server
208 Summary: The Amanda Backup and Archiving Server
209 Group: %{rpm_group}
210 Requires: /bin/awk
211 Requires: fileutils
212 Requires: grep
213 Requires: libc.so.6
214 Requires: libm.so.6
215 Requires: libnsl.so.1
216 %if  %{dist} == redhat || %{dist}== fedora
217 Requires: libtermcap.so.2
218 Requires: initscripts
219 %endif
220 Requires: xinetd
221 Requires: perl >= 5.6.0
222 Requires: tar >= 1.15
223 Provides: amanda-backup_server = %{amanda_version}
224 Provides: libamclient-%{version}.so = %{amanda_version}
225 Provides: libamanda-%{version}.so = %{amanda_version}
226 Provides: libamserver-%{version}.so = %{amanda_version}
227 Provides: librestore-%{version}.so = %{amanda_version}
228 Provides: libamtape-%{version}.so = %{amanda_version}
229 Provides: libamdevice-%{version}.so = %{amanda_version}
230
231 # --- Package descriptions ---
232
233 %description
234 Amanda is the leading Open-Source Backup and Archiving software.
235
236 The amanda-backup_server package should be installed on the Amanda server, i.e. 
237 the machine attached to backup media (such as a tape drive or disk 
238 drives) where backups will be written. The amanda-backup_server package
239 includes Amanda client.  The amanda-backup_client package needs 
240 to be installed on every system that is being backed up.
241
242 Amanda Forums is located at: http://forums.zmanda.com/
243 Amanda Documentation is available at: http://wiki.zmanda.com/
244
245
246
247 %description backup_server
248 Amanda is the leading Open-Source Backup and Archiving software.
249
250 This package contains the Amanda server.  The amanda-backup_server package 
251 should be installed on the Amanda server, i.e. the machine attached 
252 to backup media (such as a tape drive or disk drives) where backups 
253 will be written.  The amanda-backup_server package includes Amanda client.
254
255 Amanda Forums is located at: http://forums.zmanda.com/
256 Amanda Documentation is available at: http://wiki.zmanda.com/
257
258
259
260 %description backup_client
261 Amanda is the leading Open-Source Backup and Archiving software.
262
263 This package contains the Amanda client.  The amanda-backup_client package  
264 needs to be installed on every system that is being backed up.
265
266 Amanda Forums is located at: http://forums.zmanda.com/
267 Amanda Documentation is available at: http://wiki.zmanda.com/
268
269 # --- Directory setup ---
270
271 # Configure directories:
272 %define PREFIX          /usr
273 %define EPREFIX         %{PREFIX}
274 %define BINDIR          %{EPREFIX}/bin
275 %define SBINDIR         %{EPREFIX}/sbin
276 %define LIBEXECDIR      %{EPREFIX}/libexec
277 %define AMLIBEXECDIR    %{LIBEXECDIR}/amanda
278 %define DATADIR         %{PREFIX}/share
279 %define SYSCONFDIR      /etc
280 %define LOCALSTATEDIR   /var
281 %define AMANDAHOMEDIR   %{LOCALSTATEDIR}/lib/amanda
282 %ifarch x86_64
283 %define LIBDIR          %{EPREFIX}/lib64
284 %else
285 %define LIBDIR          %{EPREFIX}/lib
286 %endif
287 %define AMLIBDIR        %{LIBDIR}/amanda
288 %define INCLUDEDIR      %{PREFIX}/include
289 %define MANDIR          %{DATADIR}/man
290 %define LOGDIR          /var/log/amanda
291 %define PERLSITELIB     %(eval "`perl -V:installsitelib`"; echo $installsitelib)
292
293 # Installation directories:
294 %define ROOT_SBINDIR            %{buildroot}/%{SBINDIR}
295 %define ROOT_LIBEXECDIR         %{buildroot}/%{LIBEXECDIR}
296 %define ROOT_DATADIR            %{buildroot}/%{DATADIR}
297 %define ROOT_LOCALSTATEDIR      %{buildroot}/%{LOCALSTATEDIR}
298 %define ROOT_SYSCONFDIR         %{buildroot}/%{SYSCONFDIR}
299 %define ROOT_AMANDAHOMEDIR      %{buildroot}/%{AMANDAHOMEDIR}
300 %define ROOT_LIBDIR             %{buildroot}/%{LIBDIR}
301 %define ROOT_MANDIR             %{buildroot}/%{MANDIR}
302 %define ROOT_LOGDIR             %{buildroot}/%{LOGDIR}
303
304 # --- Unpack ---
305
306 %prep
307 %setup -q
308 # --- Configure and compile ---
309
310 %build
311 %define config_user %{amanda_user}
312 %define config_group %{amanda_group}
313
314 %if  %{disttag} == rhel && %{distver} == 3
315 ./configure \
316         CFLAGS="%{optflags} -g" CXXFLAGS="%{optflags}" \
317         --quiet \
318         --prefix=%{PREFIX} \
319         --sysconfdir=%{SYSCONFDIR} \
320         --sharedstatedir=%{LOCALSTATEDIR} \
321         --localstatedir=%{LOCALSTATEDIR} \
322         --libdir=%{LIBDIR} \
323         --includedir=%{INCLUDEDIR} \
324         --with-gnuplot=/usr/bin/gnuplot \
325         --with-gnutar=/bin/tar \
326         --with-gnutar-listdir=%{AMANDAHOMEDIR}/gnutar-lists \
327         --with-index-server=localhost \
328         --with-tape-server=localhost \
329         --with-user=%{config_user} \
330         --with-group=%{config_group} \
331         --with-owner=%{packer} \
332         --with-fqdn \
333         --with-bsd-security \
334         --with-bsdtcp-security \
335         --with-bsdudp-security \
336         --with-ssh-security \
337         --with-udpportrange=%{udpportrange} \
338         --with-tcpportrange=%{tcpportrange} \
339         --with-low-tcpportrange=%{low_tcpportrange} \
340         --with-debugging=%{LOGDIR} \
341         --with-assertions \
342         --disable-installperms \
343         --without-ipv6 
344 %else
345 # This confusing macro results in PKG_CONFIG_PATH=some/path if some/path
346 # was set on the command line, or by the platform detection bits.
347 ./configure \
348         %{?PKG_CONFIG_PATH: PKG_CONFIG_PATH=%PKG_CONFIG_PATH} \
349         CFLAGS="%{optflags} -g" CXXFLAGS="%{optflags}" \
350         --quiet \
351         --prefix=%{PREFIX} \
352         --sysconfdir=%{SYSCONFDIR} \
353         --sharedstatedir=%{LOCALSTATEDIR} \
354         --localstatedir=%{LOCALSTATEDIR} \
355         --libdir=%{LIBDIR} \
356         --includedir=%{INCLUDEDIR} \
357         --with-star=/usr/bin/star \
358         --with-gnuplot=/usr/bin/gnuplot \
359         --with-gnutar=/bin/tar \
360         --with-gnutar-listdir=%{AMANDAHOMEDIR}/gnutar-lists \
361         --with-index-server=localhost \
362         --with-tape-server=localhost \
363         --with-user=%{config_user} \
364         --with-group=%{config_group} \
365         --with-owner=%{packer} \
366         --with-fqdn \
367         --with-bsd-security \
368         --with-bsdtcp-security \
369         --with-bsdudp-security \
370         --with-ssh-security \
371         --with-udpportrange=%{udpportrange} \
372         --with-tcpportrange=%{tcpportrange} \
373         --with-low-tcpportrange=%{low_tcpportrange} \
374         --with-debugging=%{LOGDIR} \
375         --with-assertions \
376         --disable-installperms
377 %endif
378
379 make
380
381 # --- Install to buildroot ---
382
383 %install
384 if [ "%{buildroot}" != "/" ]; then
385         if [ -d "%{buildroot}" ] ; then
386                 rm -rf %{buildroot}
387         fi
388 else
389         echo "BuildRoot was somehow set to / !"
390         exit -1
391 fi
392
393 make -j1 DESTDIR=%{buildroot} install
394
395 rm -rf %{ROOT_DATADIR}/amanda
396 rm -f %{ROOT_AMANDAHOMEDIR}/example/inetd.conf.amandaclient
397 mkdir %{buildroot}/{etc,var/log}
398 mkdir %{ROOT_LOCALSTATEDIR}/amanda 
399 mkdir %{ROOT_SYSCONFDIR}/amanda
400 mkdir %{ROOT_AMANDAHOMEDIR}/gnutar-lists
401 mkdir %{ROOT_LOGDIR}
402
403 echo "%{amanda_version_info}" >%{ROOT_AMANDAHOMEDIR}/amanda-release
404
405 # --- Clean up buildroot ---
406
407 %clean
408 if [ "%{buildroot}" != "/" ]; then
409         if [ -d "%{buildroot}" ] ; then
410                 rm -rf %{buildroot}
411         fi
412 else
413         echo "BuildRoot was somehow set to / !"
414         exit -1
415 fi
416
417 # --- Pre/post (un)installation scripts ---
418
419 %pre
420 TMPFILE=`mktemp /tmp/rpm-amanda.XXXXXXXXXXX`
421 if [ $? -ne 0 ]; then
422         echo "Unable to mktemp!" 1>&2
423         exit 1
424 fi
425 LOGDIR="%{LOGDIR}"
426 INSTALL_LOG="${LOGDIR}/install.log"
427 INSTALL_ERR="${LOGDIR}/install.err"
428
429 echo "`date +'%b %e %Y %T'`: Preparing to install: %{amanda_version_info}" >${TMPFILE}
430
431 # Check for the 'amanda' user
432 echo "`date +'%b %e %Y %T'`: Checking for '%{amanda_user}' user..." >>${TMPFILE}
433 if [ "`id -u %{amanda_user} > /dev/null 2>&1 && echo 0 || echo 1`" != "0" ] ; then
434         useradd -c "Amanda" -M -g %{amanda_group} -d %{AMANDAHOMEDIR} -s /bin/sh %{amanda_user}
435         if [ %{dist} = "SuSE" ]; then
436                 PASSWD_EXIT=$?
437         else
438                 # Lock the amanda account until admin sets password
439                 passwd -l %{amanda_user} >>/dev/null
440                 PASSWD_EXIT=$?
441         fi
442         if [ ${PASSWD_EXIT} -eq 0 ] ; then
443                 echo "`date +'%b %e %Y %T'`:" >>${TMPFILE}
444                 echo "`date +'%b %e %Y %T'`:  The '%{amanda_user}; user account has been successfully created." >>${TMPFILE}
445                 echo "`date +'%b %e %Y %T'`:  Furthermore, the account has been automatically locked for you" >>${TMPFILE}
446                 echo "`date +'%b %e %Y %T'`:  for security purposes.  Once a password for the  '%{amanda_user}'" >>${TMPFILE}
447                 echo "`date +'%b %e %Y %T'`:  account has been set, the user can be unlocked by issuing" >>${TMPFILE}
448                 echo "`date +'%b %e %Y %T'`:  the following command as root.:" >>${TMPFILE}
449                 echo "`date +'%b %e %Y %T'`:" >>${TMPFILE}
450                 echo "`date +'%b %e %Y %T'`:  # passwd -u %{amanda_user}" >>${TMPFILE}
451                 echo "`date +'%b %e %Y %T'`:" >>${TMPFILE}
452                 echo "`date +'%b %e %Y %T'`:  If this is not a new installation of Amanda and you have" >>${TMPFILE}
453                 echo "`date +'%b %e %Y %T'`:  pre-existing Amanda configurations in %{SYSCONFDIR}/amanda" >>${TMPFILE}
454                 echo "`date +'%b %e %Y %T'`:  you should ensure that 'dumpuser' is set to '%{amanda_user}'" >>${TMPFILE}
455                 echo "`date +'%b %e %Y %T'`:  in those configurations.  Additionally, you should ensure" >>${TMPFILE}
456                 echo "`date +'%b %e %Y %T'`:  that %{AMANDAHOMEDIR}/.amandahosts on your client systems" >>${TMPFILE}
457                 echo "`date +'%b %e %Y %T'`:  is properly configured to allow connections for the user" >>${TMPFILE}
458                 echo "`date +'%b %e %Y %T'`:  '%{amanda_user}'." >>${TMPFILE}
459                 echo "`date +'%b %e %Y %T'`:" >>${TMPFILE}
460                 PASSWD_OK=0
461         else
462                 echo "`date +'%b %e %Y %T'`:  !!! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! !!!" >>${TMPFILE}
463                 echo "`date +'%b %e %Y %T'`:  !!!                                                       !!!" >>${TMPFILE}
464                 echo "`date +'%b %e %Y %T'`:  !!!  The '%{amanda_user}' user account for this system has been   !!!" >>${TMPFILE}
465                 echo "`date +'%b %e %Y %T'`:  !!!  created, however the user has no password set. For   !!!" >>${TMPFILE}
466                 echo "`date +'%b %e %Y %T'`:  !!!  security purposes this account  is normally locked   !!!" >>${TMPFILE}
467                 echo "`date +'%b %e %Y %T'`:  !!!  after creation.  Unfortunately,  when locking this   !!!" >>${TMPFILE}
468                 echo "`date +'%b %e %Y %T'`:  !!!  account an error occurred.  To ensure the security   !!!" >>${TMPFILE}
469                 echo "`date +'%b %e %Y %T'`:  !!!  of your system  you should set a password  for the   !!!" >>${TMPFILE}
470                 echo "`date +'%b %e %Y %T'`:  !!!  user account '%{amanda_user}' immediately!  To set  such a   !!!" >>${TMPFILE}
471                 echo "`date +'%b %e %Y %T'`:  !!!  password, please issue the following command.:       !!!" >>${TMPFILE}
472                 echo "`date +'%b %e %Y %T'`:  !!!                                                       !!!" >>${TMPFILE}
473                 echo "`date +'%b %e %Y %T'`:  !!!   # passwd %{amanda_user}                                   !!!" >>${TMPFILE}
474                 echo "`date +'%b %e %Y %T'`:  !!!                                                       !!!" >>${TMPFILE}
475                 echo "`date +'%b %e %Y %T'`:  !!! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! !!!" >>${TMPFILE}
476                 PASSWD_OK=1
477         fi
478 else
479         # log information about 'amanda' user parameters
480         echo "`date +'%b %e %Y %T'`:" >>${TMPFILE}
481         echo "`date +'%b %e %Y %T'`:  The Amanda backup software is configured to operate as the" >>${TMPFILE}
482         echo "`date +'%b %e %Y %T'`:  user '%{amanda_user}'.  This user exists on your system and has not" >>${TMPFILE}
483         echo "`date +'%b %e %Y %T'`:  been modified.  To ensure that Amanda functions properly," >>${TMPFILE}
484         echo "`date +'%b %e %Y %T'`:  please see that the following parameters are set for that" >>${TMPFILE}
485         echo "`date +'%b %e %Y %T'`:  user.:" >>${TMPFILE}
486         echo "`date +'%b %e %Y %T'`:" >>${TMPFILE}
487         echo "`date +'%b %e %Y %T'`:  SHELL:          /bin/sh" >>${TMPFILE}
488         echo "`date +'%b %e %Y %T'`:  HOME:           %{AMANDAHOMEDIR}" >>${TMPFILE}
489         echo "`date +'%b %e %Y %T'`:  Default group:  %{amanda_group}" >>${TMPFILE}
490         echo "`date +'%b %e %Y %T'`:  Verifying %{amanda_user} parameters :" >>${TMPFILE}
491
492         if [ "`id -gn %{amanda_user}`" != "disk" ] ; then
493                 echo "`date +'%b %e %Y %T'`:  !!! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! !!!" >>${TMPFILE}
494                 echo "`date +'%b %e %Y %T'`:  !!!  user 'amandabackup' is not part of the disk group,Pl !!!" >>${TMPFILE}
495                 echo "`date +'%b %e %Y %T'`:  !!!  make sure it is corrected before start using amanda  !!!" >>${TMPFILE}
496                 echo "`date +'%b %e %Y %T'`:  !!! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! !!!" >>${TMPFILE}
497         else
498                 echo "`date +'%b %e %Y %T'`:  Verified group name of user 'amandabackup'" >>${TMPFILE}
499         fi
500
501         if [ "`grep ^%{amanda_user} /etc/passwd|cut -d: -f7`" != "/bin/sh" ] ; then
502                 echo "`date +'%b %e %Y %T'`:  !!! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! !!!" >>${TMPFILE}
503                 echo "`date +'%b %e %Y %T'`:  !!! user 'amandabackup' default shell should be set to    !!!" >>${TMPFILE}
504                 echo "`date +'%b %e %Y %T'`:  !!! /bin/sh, pl correct before start using Amanda         !!!" >>${TMPFILE}
505                 echo "`date +'%b %e %Y %T'`:  !!! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! !!!" >>${TMPFILE}
506         else
507                 echo "`date +'%b %e %Y %T'`:  Verified Default shell for user 'amandabackup'" >>${TMPFILE}
508         fi
509
510         if [ "`grep ^%{amanda_user} /etc/passwd|cut -d: -f6`" != "%{AMANDAHOMEDIR}" ] ; then
511                 echo "`date +'%b %e %Y %T'`:  !!! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! !!!" >>${TMPFILE}
512                 echo "`date +'%b %e %Y %T'`:  !!! user 'amandabackup' home directory should be set to   !!!" >>${TMPFILE}
513                 echo "`date +'%b %e %Y %T'`:  !!! %{AMANDAHOMEDIR} Pl correct before using Amanda       !!!" >>${TMPFILE}
514                 echo "`date +'%b %e %Y %T'`:  !!! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! !!!" >>${TMPFILE}
515         else
516                 echo "`date +'%b %e %Y %T'`:  Verified Default home directory for user amandabackup" >>${TMPFILE}
517         fi
518         echo "`date +'%b %e %Y %T'`:" >>${TMPFILE}
519         PASSWD_OK=0
520 fi
521 if [ -d %{AMANDAHOMEDIR} ] ; then
522         echo -n "`date +'%b %e %Y %T'`:  Checking ownership of '%{AMANDAHOMEDIR}'... " >>${TMPFILE}
523         if [ "`ls -dl %{AMANDAHOMEDIR} | awk '//{split($_,x); print x[3]}'`" = "%{amanda_user}" ] && \
524            [ "`ls -dl %{AMANDAHOMEDIR} | awk '//{split($_,x); print x[4]}'`" = "%{amanda_group}" ] ; then
525                 echo "correct." >>${TMPFILE}
526                 VARLIB_OK=0
527         else
528                 echo "incorrect!" >>${TMPFILE}
529                 echo "`date +'%b %e %Y %T'`:  Please ensure that the directory '%{AMANDAHOMEDIR}' is owned by" >>${TMPFILE}
530                 echo "`date +'%b %e %Y %T'`:  the user '%{amanda_user}' and group '%{amanda_group}'." >>${TMPFILE}
531                 VARLIB_OK=1
532         fi
533 else
534         VARLIB_OK=0
535 fi
536 echo "`date +'%b %e %Y %T'`:" >>${TMPFILE}
537 if [ ! -e ${LOGDIR} ] ; then
538         # create log directory
539         mkdir -m 0750 ${LOGDIR} >>${TMPFILE} 2>&1
540         chown %{amanda_user}:%{amanda_group} ${LOGDIR} >>${TMPFILE} 2>&1
541 elif [ ! -d ${LOGDIR} ] ; then
542         mv ${LOGDIR} ${LOGDIR}.rpmsave >>${TMPFILE} 2>&1
543         mkdir -m 0750 ${LOGDIR} >>${TMPFILE} 2>&1
544         chown %{amanda_user}:%{amanda_group} ${LOGDIR} >>${TMPFILE} 2>&1
545         mv ${LOGDIR}.rpmsave ${LOGDIR}/ >>${TMPFILE} 2>&1
546 fi
547
548 if [ ${PASSWD_OK} -eq 1 ] || [ ${VARLIB_OK} -eq 1 ] ; then
549         cat ${TMPFILE}
550         cat ${TMPFILE} >>${INSTALL_ERR}
551         echo "Please review '${INSTALL_ERR}' to correct errors which have prevented the Amanda installaton." >&2
552         echo "Amanda installation log can be found in '${INSTALL_LOG}' and errors (if any) in '${INSTALL_ERR}'."
553         exit 1
554 else
555         cat ${TMPFILE}
556         cat ${TMPFILE} >>${INSTALL_LOG}
557 fi
558
559 echo "`date +'%b %e %Y %T'`: === Amanda installation started. ===" >${TMPFILE}
560
561 cat ${TMPFILE}
562 cat ${TMPFILE} >>${INSTALL_LOG}
563 if [ -f "${TMPFILE}" ]; then
564         rm -f "${TMPFILE}"
565 fi
566
567 %post
568 TMPFILE=`mktemp /tmp/rpm-amanda.XXXXXXXXXXX
569 if [ $? -ne 0 ]; then
570         echo "Unable to mktemp!" 1>&2
571         exit 1
572 fi
573 LOGDIR="%{LOGDIR}"
574 INSTALL_LOG="${LOGDIR}/install.log"
575 INSTALL_ERR="${LOGDIR}/install.err"
576
577 echo -n "`date +'%b %e %Y %T'`: Updating library cache..." >${TMPFILE}
578 /sbin/ldconfig >>${TMPFILE} 2>&1
579 echo "done." >>${TMPFILE}
580 cat ${TMPFILE}
581 cat ${TMPFILE} >>${INSTALL_LOG}
582
583 if [ -e /etc/xinetd.d ] && [ -d /etc/xinetd.d ] ; then
584         if [ ! -f /etc/xinetd.d/amandaserver ] ; then
585                 cp %{AMANDAHOMEDIR}/example/xinetd.amandaserver /etc/xinetd.d/amandaserver
586                 chmod 0644 /etc/xinetd.d/amandaserver >>${TMPFILE} 2>&1
587                 if [ -f /etc/xinetd.d/amandaclient ] ; then
588                         rm /etc/xinetd.d/amandaclient
589                 fi
590                 echo -n "`date +'%b %e %Y %T'`: Reloading xinetd configuration..." >${TMPFILE}
591                 if [ "%{xinetd_reload}" == "reload" ] ; then
592                         /etc/init.d/xinetd %{xinetd_reload} >>${TMPFILE} 2>&1
593                         ret_val=$?
594                         if [ ${ret_val} -ne 0 ] ; then
595                                 echo -n "reload failed.  Attempting restart..." >>${TMPFILE}
596                                 /etc/init.d/xinetd restart >>${TMPFILE} 2>&1
597                                 ret_val=$?
598                         fi
599                 else
600                         /etc/init.d/xinetd %{xinetd_reload} >>${TMPFILE} 2>&1
601                         ret_val=$?
602                 fi
603                 if [ ${ret_val} -eq 0 ] ; then
604                         echo "success." >>${TMPFILE}
605                         cat ${TMPFILE}
606                         cat ${TMPFILE} >>${INSTALL_LOG}
607                 else
608                         echo "failed.  Please check your system logs." >>${TMPFILE}
609                         cat ${TMPFILE} 1>&2
610                         cat ${TMPFILE} >>${INSTALL_ERR}
611                 fi
612         fi
613 fi
614
615 echo "`date +'%b %e %Y %T'`: Installing '%{LOCALSTATEDIR}/amanda/amandates'." >${TMPFILE}
616 ret_val=0
617 if [ ! -f %{LOCALSTATEDIR}/amanda/amandates ] ; then
618         touch %{LOCALSTATEDIR}/amanda/amandates >>${TMPFILE} 2>&1
619         ret_val=$?
620         if [ ${ret_val} -eq 0 ]; then
621                 echo "`date +'%b %e %Y %T'`: The file '%{LOCALSTATEDIR}/amanda/amandates' has been created." >>${TMPFILE}
622         fi
623 fi
624 if [ ${ret_val} -eq 0 ]; then
625         echo "`date +'%b %e %Y %T'`: Ensuring correct permissions for '%{LOCALSTATEDIR}/amanda/amandates'." >>${TMPFILE}
626         chown %{amanda_user}:%{amanda_group} %{LOCALSTATEDIR}/amanda/amandates >>${TMPFILE} 2>&1
627         chmod 0640 %{LOCALSTATEDIR}/amanda/amandates >>${TMPFILE} 2>&1
628         if [ -x /sbin/restorecon ] ; then
629               /sbin/restorecon %{LOCALSTATEDIR}/amanda/amandates  >>${TMPFILE} 2>&1
630         fi
631 fi
632 if [ ${ret_val} -eq 0 ]; then
633         echo "`date +'%b %e %Y %T'`: '%{LOCALSTATEDIR}/amanda/amandates' Installation successful." >>${TMPFILE}
634         cat ${TMPFILE}
635         cat ${TMPFILE} >>${INSTALL_LOG}
636 else
637         echo "`date +'%b %e %Y %T'`: '%{LOCALSTATEDIR}/amanda/amandates' Installation failed." >>${TMPFILE}
638         cat ${TMPFILE}
639         cat ${TMPFILE} >>${INSTALL_ERR}
640 fi
641
642
643 # Install .gnupg directory
644 echo "`date +'%b %e %Y %T'`: Installing '%{AMANDAHOMEDIR}/.gnupg'." >${TMPFILE}
645 ret_val=0
646 if [ ! -d %{AMANDAHOMEDIR}/.gnupg ] ; then
647         echo "`date +'%b %e %Y %T'`: '%{AMANDAHOMEDIR}/.gnupg' will be created." >>${TMPFILE}
648         mkdir %{AMANDAHOMEDIR}/.gnupg >>${TMPFILE} 2>&1
649         ret_val=$?
650         if [ ${ret_val} -eq 0 ]; then
651                 echo "`date +'%b %e %Y %T'`: The directory '%{AMANDAHOMEDIR}/.gnupg' created successfully." >>${TMPFILE}
652         else
653                 echo "`date +'%b %e %Y %T'`: The directory '%{AMANDAHOMEDIR}/.gnupg' creation failed." >>${TMPFILE}
654         fi
655 fi
656 if [ ${ret_val} -eq 0 ]; then
657         echo "`date +'%b %e %Y %T'`: Ensuring correct permissions for '%{AMANDAHOMEDIR}/.gnupg'." >>${TMPFILE}
658         chown %{amanda_user}:%{amanda_group} %{AMANDAHOMEDIR}/.gnupg >>${TMPFILE} 2>&1
659         ret_val=$?
660         if [ ${ret_val} -eq 0 ]; then
661                 chmod 700 %{AMANDAHOMEDIR}/.gnupg >>${TMPFILE} 2>&1
662                 ret_val=$?
663         fi
664 fi
665 if [ ${ret_val} -eq 0 ]; then
666         echo "`date +'%b %e %Y %T'`: '%{AMANDAHOMEDIR}/.gnupg' Installation successful." >>${TMPFILE}
667         cat ${TMPFILE}
668         cat ${TMPFILE} >>${INSTALL_LOG}
669 else
670         echo "`date +'%b %e %Y %T'`: '%{AMANDAHOMEDIR}/.gnupg' Installation failed." >>${TMPFILE}
671         cat ${TMPFILE}
672         cat ${TMPFILE} >>${INSTALL_ERR}
673 fi
674
675 # Install .amandahosts
676 echo "`date +'%b %e %Y %T'`: Checking '%{AMANDAHOMEDIR}/.amandahosts' file." >${TMPFILE}
677 if [ ! -f %{AMANDAHOMEDIR}/.amandahosts ] ; then
678         touch %{AMANDAHOMEDIR}/.amandahosts >>${TMPFILE} 2>&1
679 fi
680 for host in localhost localhost.localdomain ; do
681         if [ -z "`grep \"^${host}[[:blank:]]\+root[[:blank:]]\+amindexd[[:blank:]]\+amidxtaped\" %{AMANDAHOMEDIR}/.amandahosts`" ] ; then
682                 echo "${host}   root amindexd amidxtaped" >>%{AMANDAHOMEDIR}/.amandahosts
683         fi
684         if [ -z "`grep \"^${host}[[:blank:]]\+%{amanda_user}[[:blank:]]\+amdump\" %{AMANDAHOMEDIR}/.amandahosts`" ] ; then
685                 echo "${host}   %{amanda_user} amdump" >>%{AMANDAHOMEDIR}/.amandahosts
686         fi
687 done
688 chown %{amanda_user}:%{amanda_group} %{AMANDAHOMEDIR}/.amandahosts >>${TMPFILE} 2>&1
689 chmod 0600 %{AMANDAHOMEDIR}/.amandahosts >>${TMPFILE} 2>&1
690 cat ${TMPFILE}
691 cat ${TMPFILE} >>${INSTALL_LOG}
692
693 # SSH RSA key generation for amdump
694 KEYDIR="%{AMANDAHOMEDIR}/.ssh"
695 KEYFILE="id_rsa_amdump"
696 COMMENT="%{amanda_user}@server"
697 if [ ! -d ${KEYDIR} ] ; then
698         if [ -f ${KEYDIR} ] ; then
699                 echo "`date +'%b %e %Y %T'`: Directory '${KEYDIR}' exists as a file.  Renaming to '${KEYDIR}.rpmsave'." >${TMPFILE}
700                 mv ${KEYDIR} ${KEYDIR}.rpmsave
701                 cat ${TMPFILE}
702                 cat ${TMPFILE} >>${INSTALL_LOG}
703         fi
704         echo "`date +'%b %e %Y %T'`: Creating directory '${KEYDIR}'." >${TMPFILE}
705         mkdir ${KEYDIR} >>${TMPFILE} 2>&1
706         cat ${TMPFILE}
707         cat ${TMPFILE} >>${INSTALL_LOG}
708 fi
709 if [ ! -f ${KEYDIR}/${KEYFILE} ] ; then
710         echo "`date +'%b %e %Y %T'`: Creating ssh RSA key in '${KEYDIR}/${KEYFILE}'" >${TMPFILE}
711         cat ${TMPFILE}
712         cat ${TMPFILE} >>${INSTALL_LOG}
713         ssh-keygen -q -C $COMMENT -t rsa -f ${KEYDIR}/${KEYFILE} -N '' >>${TMPFILE} 2>&1
714         cat ${TMPFILE}
715         cat ${TMPFILE} >>${INSTALL_LOG}
716 fi
717 echo "`date +'%b %e %Y %T'`: Setting ownership and permissions for '${KEYDIR}' and '${KEYDIR}/${KEYFILE}*'" >${TMPFILE}
718 chown %{amanda_user}:%{amanda_group} ${KEYDIR} ${KEYDIR}/${KEYFILE}* >>${TMPFILE} 2>&1
719 chmod 0750 ${KEYDIR} >>${TMPFILE} 2>&1
720 chmod 0600 ${KEYDIR}/${KEYFILE}* >>${TMPFILE} 2>&1
721 cat ${TMPFILE}
722 cat ${TMPFILE} >>${INSTALL_LOG}
723
724 # SSH RSA key generation on client for amrecover
725 KEYDIR="%{AMANDAHOMEDIR}/.ssh"
726 KEYFILE="id_rsa_amrecover"
727 COMMENT="root@client"
728 if [ ! -d ${KEYDIR} ] ; then
729         if [ -f ${KEYDIR} ] ; then
730                 echo "`date +'%b %e %Y %T'`: Directory '${KEYDIR}' exists as a file.  Renaming to '${KEYDIR}.rpmsave'." >${TMPFILE}
731                 mv ${KEYDIR} ${KEYDIR}.rpmsave >>${TMPFILE} 2>&1
732                 cat ${TMPFILE}
733                 cat ${TMPFILE} >>${INSTALL_LOG}
734         fi
735         echo "`date +'%b %e %Y %T'`: Creating directory '${KEYDIR}'." >${TMPFILE}
736         mkdir ${KEYDIR} >>${TMPFILE} 2>&1
737         cat ${TMPFILE}
738         cat ${TMPFILE} >>${INSTALL_LOG}
739 fi
740 if [ ! -f ${KEYDIR}/${KEYFILE} ] ; then
741         echo "`date +'%b %e %Y %T'`: Creating ssh RSA key in '${KEYDIR}/${KEYFILE}'" >${TMPFILE}
742         ssh-keygen -q -C $COMMENT -t rsa -f ${KEYDIR}/${KEYFILE} -N '' >>${TMPFILE} 2>&1
743         cat ${TMPFILE}
744         cat ${TMPFILE} >>${INSTALL_LOG}
745 fi
746 echo "`date +'%b %e %Y %T'`: Setting permissions for '${KEYDIR}'" >${TMPFILE}
747 chown %{amanda_user}:%{amanda_group} ${KEYDIR} >>${TMPFILE} 2>&1
748 chmod 0750 ${KEYDIR} >>${TMPFILE} 2>&1
749 chmod 0600 ${KEYDIR}/${KEYFILE}* >>${TMPFILE} 2>&1
750 cat ${TMPFILE}
751 cat ${TMPFILE} >>${INSTALL_LOG}
752
753 # environment variables (~amandabackup/.profile)
754 echo "`date +'%b %e %Y %T'`: Checking for '%{AMANDAHOMEDIR}/.profile' and ensuring correct environment." >${TMPFILE}
755 if [ ! -f %{AMANDAHOMEDIR}/.profile ] ; then
756         touch %{AMANDAHOMEDIR}/.profile >>${TMPFILE} 2>&1
757 fi
758 if [ -z "`grep PATH %{AMANDAHOMEDIR}/.profile | grep '%{SBINDIR}'`" ] ; then
759         echo "export PATH=\"\$PATH:%{SBINDIR}\"" >>%{AMANDAHOMEDIR}/.profile 2>>${TMPFILE}
760 fi
761 echo "`date +'%b %e %Y %T'`: Setting ownership and permissions for '%{AMANDAHOMEDIR}/.profile'" >>${TMPFILE}
762 chown %{amanda_user}:%{amanda_group} %{AMANDAHOMEDIR}/.profile >>${TMPFILE} 2>&1
763 chmod 0640 %{AMANDAHOMEDIR}/.profile >>${TMPFILE} 2>&1
764 cat ${TMPFILE}
765 cat ${TMPFILE} >>${INSTALL_LOG}
766
767 echo "`date +'%b %e %Y %T'`: Sending anonymous distribution and version information to Zmanda" >> ${INSTALL_LOG}
768 if [ -x /usr/bin/wget ]; then 
769         /usr/bin/wget -q -o /dev/null -O - --timeout=5 http://www.zmanda.com/amanda-tips.php\?version=%{amanda_version}\&os=%{disttag}%{distver}\&type=server 
770 fi
771
772 echo "`date +'%b %e %Y %T'`: === Amanda installation complete. ===" >${TMPFILE}
773
774 cat ${TMPFILE}
775 cat ${TMPFILE} >>${INSTALL_LOG}
776 if [ -f "${TMPFILE}" ]; then
777         rm -f "${TMPFILE}"
778 fi
779
780 echo "Amanda installation log can be found in '${INSTALL_LOG}' and errors (if any) in '${INSTALL_ERR}'."
781 %postun
782 /sbin/ldconfig
783 %pre backup_server
784 TMPFILE=`mktemp /tmp/rpm-amanda.XXXXXXXXXXX`
785 if [ $? -ne 0 ]; then
786         echo "Unable to mktemp!" 1>&2
787         exit 1
788 fi
789
790 LOGDIR="%{LOGDIR}"
791 INSTALL_LOG="${LOGDIR}/install.log"
792 INSTALL_ERR="${LOGDIR}/install.err"
793
794 echo "`date +'%b %e %Y %T'`: Preparing to install: %{amanda_version_info}" >${TMPFILE}
795
796 # Check for the 'amanda' user
797 echo "`date +'%b %e %Y %T'`: Checking for '%{amanda_user}' user..." >>${TMPFILE}
798 if [ "`id -u %{amanda_user} > /dev/null 2>&1 && echo 0 || echo 1`" != "0" ] ; then
799         useradd -c "Amanda" -M -g %{amanda_group} -d %{AMANDAHOMEDIR} -s /bin/sh %{amanda_user}
800         if [ %{dist} = "SuSE" ]; then
801                 PASSWD_EXIT=$?
802         else
803                 # Lock the amanda account until admin sets password
804                 passwd -l %{amanda_user} >>/dev/null
805                 PASSWD_EXIT=$?
806         fi
807         if [ ${PASSWD_EXIT} -eq 0 ] ; then
808                 echo "`date +'%b %e %Y %T'`:" >>${TMPFILE}
809                 echo "`date +'%b %e %Y %T'`:  The '%{amanda_user}; user account has been successfully created." >>${TMPFILE}
810                 echo "`date +'%b %e %Y %T'`:  Furthermore, the account has been automatically locked for you" >>${TMPFILE}
811                 echo "`date +'%b %e %Y %T'`:  for security purposes.  Once a password for the  '%{amanda_user}'" >>${TMPFILE}
812                 echo "`date +'%b %e %Y %T'`:  account has been set, the user can be unlocked by issuing" >>${TMPFILE}
813                 echo "`date +'%b %e %Y %T'`:  the following command as root.:" >>${TMPFILE}
814                 echo "`date +'%b %e %Y %T'`:" >>${TMPFILE}
815                 echo "`date +'%b %e %Y %T'`:  # passwd -u %{amanda_user}" >>${TMPFILE}
816                 echo "`date +'%b %e %Y %T'`:" >>${TMPFILE}
817                 echo "`date +'%b %e %Y %T'`:  If this is not a new installation of Amanda and you have" >>${TMPFILE}
818                 echo "`date +'%b %e %Y %T'`:  pre-existing Amanda configurations in %{SYSCONFDIR}/amanda" >>${TMPFILE}
819                 echo "`date +'%b %e %Y %T'`:  you should ensure that 'dumpuser' is set to '%{amanda_user}'" >>${TMPFILE}
820                 echo "`date +'%b %e %Y %T'`:  in those configurations.  Additionally, you should ensure" >>${TMPFILE}
821                 echo "`date +'%b %e %Y %T'`:  that %{AMANDAHOMEDIR}/.amandahosts on your client systems" >>${TMPFILE}
822                 echo "`date +'%b %e %Y %T'`:  is properly configured to allow connections for the user" >>${TMPFILE}
823                 echo "`date +'%b %e %Y %T'`:  '%{amanda_user}'." >>${TMPFILE}
824                 echo "`date +'%b %e %Y %T'`:" >>${TMPFILE}
825                 PASSWD_OK=0
826         else
827                 echo "`date +'%b %e %Y %T'`:  !!! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! !!!" >>${TMPFILE}
828                 echo "`date +'%b %e %Y %T'`:  !!!                                                       !!!" >>${TMPFILE}
829                 echo "`date +'%b %e %Y %T'`:  !!!  The '%{amanda_user}' user account for this system has been   !!!" >>${TMPFILE}
830                 echo "`date +'%b %e %Y %T'`:  !!!  created, however the user has no password set. For   !!!" >>${TMPFILE}
831                 echo "`date +'%b %e %Y %T'`:  !!!  security purposes this account  is normally locked   !!!" >>${TMPFILE}
832                 echo "`date +'%b %e %Y %T'`:  !!!  after creation.  Unfortunately,  when locking this   !!!" >>${TMPFILE}
833                 echo "`date +'%b %e %Y %T'`:  !!!  account an error occurred.  To ensure the security   !!!" >>${TMPFILE}
834                 echo "`date +'%b %e %Y %T'`:  !!!  of your system  you should set a password  for the   !!!" >>${TMPFILE}
835                 echo "`date +'%b %e %Y %T'`:  !!!  user account '%{amanda_user}' immediately!  To set  such a   !!!" >>${TMPFILE}
836                 echo "`date +'%b %e %Y %T'`:  !!!  password, please issue the following command.:       !!!" >>${TMPFILE}
837                 echo "`date +'%b %e %Y %T'`:  !!!                                                       !!!" >>${TMPFILE}
838                 echo "`date +'%b %e %Y %T'`:  !!!   # passwd %{amanda_user}                                     !!!" >>${TMPFILE}
839                 echo "`date +'%b %e %Y %T'`:  !!!                                                       !!!" >>${TMPFILE}
840                 echo "`date +'%b %e %Y %T'`:  !!! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! !!!" >>${TMPFILE}
841                 PASSWD_OK=1
842         fi
843 else
844         # log information about 'amanda' user parameters
845         echo "`date +'%b %e %Y %T'`:" >>${TMPFILE}
846         echo "`date +'%b %e %Y %T'`:  The Amanda backup software is configured to operate as the" >>${TMPFILE}
847         echo "`date +'%b %e %Y %T'`:  user '%{amanda_user}'.  This user exists on your system and has not" >>${TMPFILE}
848         echo "`date +'%b %e %Y %T'`:  been modified.  To ensure that Amanda functions properly," >>${TMPFILE}
849         echo "`date +'%b %e %Y %T'`:  please see that the following parameters are set for that" >>${TMPFILE}
850         echo "`date +'%b %e %Y %T'`:  user.:" >>${TMPFILE}
851         echo "`date +'%b %e %Y %T'`:" >>${TMPFILE}
852         echo "`date +'%b %e %Y %T'`:  SHELL:          /bin/sh" >>${TMPFILE}
853         echo "`date +'%b %e %Y %T'`:  HOME:           %{AMANDAHOMEDIR}" >>${TMPFILE}
854         echo "`date +'%b %e %Y %T'`:  Default group:  %{amanda_group}" >>${TMPFILE}
855         echo "`date +'%b %e %Y %T'`:  Verifying %{amanda_user} parameters :" >>${TMPFILE}
856
857         if [ "`id -gn %{amanda_user}`" != "disk" ] ; then
858                 echo "`date +'%b %e %Y %T'`:  !!! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! !!!" >>${TMPFILE}
859                 echo "`date +'%b %e %Y %T'`:  !!! user 'amandabackup' is not part of the disk group,Pl  !!!" >>${TMPFILE}
860                 echo "`date +'%b %e %Y %T'`:  !!! make sure it is corrected before start using Amanda   !!!" >>${TMPFILE}
861                 echo "`date +'%b %e %Y %T'`:  !!! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! !!!" >>${TMPFILE}
862         else
863                 echo "`date +'%b %e %Y %T'`:  Verified group name of user 'amandabackup'" >>${TMPFILE}
864         fi
865
866         if [ "`grep ^%{amanda_user} /etc/passwd|cut -d: -f7`" != "/bin/sh" ] ; then
867                 echo "`date +'%b %e %Y %T'`:  !!! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! !!!" >>${TMPFILE}
868                 echo "`date +'%b %e %Y %T'`:  !!! user 'amandabackup' default shell should be set to    !!!" >>${TMPFILE}
869                 echo "`date +'%b %e %Y %T'`:  !!! /bin/sh, pl correct before start using Amanda         !!!" >>${TMPFILE}
870                 echo "`date +'%b %e %Y %T'`:  !!! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! !!!" >>${TMPFILE}
871         else
872                 echo "`date +'%b %e %Y %T'`:  Verified Default shell for user 'amandabackup'" >>${TMPFILE}
873         fi
874
875         if [ "`grep ^%{amanda_user} /etc/passwd|cut -d: -f6`" != "%{AMANDAHOMEDIR}" ] ; then
876                 echo "`date +'%b %e %Y %T'`:  !!! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! !!!" >>${TMPFILE}
877                 echo "`date +'%b %e %Y %T'`:  !!! user 'amandabackup' home directory should be set to   !!!" >>${TMPFILE}
878                 echo "`date +'%b %e %Y %T'`:  !!! %{AMANDAHOMEDIR} Pl correct before using Amanda       !!!" >>${TMPFILE}
879                 echo "`date +'%b %e %Y %T'`:  !!! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! !!!" >>${TMPFILE}
880         else
881                 echo "`date +'%b %e %Y %T'`:  Verified Default home directory for user amandabackup" >>${TMPFILE}
882         fi
883         echo "`date +'%b %e %Y %T'`:" >>${TMPFILE}
884         PASSWD_OK=0
885 fi
886 if [ -d %{AMANDAHOMEDIR} ] ; then
887         echo -n "`date +'%b %e %Y %T'`:  Checking ownership of '%{AMANDAHOMEDIR}'... " >>${TMPFILE}
888         if [ "`ls -dl %{AMANDAHOMEDIR} | awk '//{split($_,x); print x[3]}'`" = "%{amanda_user}" ] && \
889            [ "`ls -dl %{AMANDAHOMEDIR} | awk '//{split($_,x); print x[4]}'`" = "%{amanda_group}" ] ; then
890                 echo "correct." >>${TMPFILE}
891                 VARLIB_OK=0
892         else
893                 echo "incorrect!" >>${TMPFILE}
894                 echo "`date +'%b %e %Y %T'`:  Please ensure that the directory '%{AMANDAHOMEDIR}' is owned by" >>${TMPFILE}
895                 echo "`date +'%b %e %Y %T'`:  the user '%{amanda_user}' and group '%{amanda_group}'." >>${TMPFILE}
896                 VARLIB_OK=1
897         fi
898 else
899         VARLIB_OK=0
900 fi
901 echo "`date +'%b %e %Y %T'`:" >>${TMPFILE}
902
903 if [ ! -e ${LOGDIR} ] ; then
904         # create log directory
905         mkdir -m 0750 ${LOGDIR} >>${TMPFILE} 2>&1
906         chown %{amanda_user}:%{amanda_group} ${LOGDIR} >>${TMPFILE} 2>&1
907 elif [ ! -d ${LOGDIR} ] ; then
908         mv ${LOGDIR} ${LOGDIR}.rpmsave >>${TMPFILE} 2>&1
909         mkdir -m 0750 ${LOGDIR} >>${TMPFILE} 2>&1
910         chown %{amanda_user}:%{amanda_group} ${LOGDIR} >>${TMPFILE} 2>&1
911         mv ${LOGDIR}.rpmsave ${LOGDIR}/ >>${TMPFILE} 2>&1
912 fi
913 if [ ${PASSWD_OK} -eq 1 ] || [ ${VARLIB_OK} -eq 1 ] ; then
914         cat ${TMPFILE}
915         cat ${TMPFILE} >>${INSTALL_ERR}
916         echo "Please review '${INSTALL_ERR}' to correct errors which have prevented the Amanda installaton." >&2
917         echo "Amanda installation log can be found in '${INSTALL_LOG}' and errors (if any) in '${INSTALL_ERR}'."
918         exit 1
919 else
920         cat ${TMPFILE}
921         cat ${TMPFILE} >>${INSTALL_LOG}
922 fi
923
924 echo "`date +'%b %e %Y %T'`: === Amanda backup server installation started. ===" >${TMPFILE}
925
926 cat ${TMPFILE}
927 cat ${TMPFILE} >>${INSTALL_LOG}
928 if [ -f "${TMPFILE}" ]; then
929         rm -f "${TMPFILE}"
930 fi
931 %post backup_server
932 TMPFILE=`mktemp /tmp/rpm-amanda.XXXXXXXXXXX`
933 if [ $? -ne 0 ]; then
934         echo "Unable to mktemp!" 1>&2
935         exit 1
936 fi
937 LOGDIR="%{LOGDIR}"
938 INSTALL_LOG="${LOGDIR}/install.log"
939 INSTALL_ERR="${LOGDIR}/install.err"
940
941 echo -n "`date +'%b %e %Y %T'`: Updating system library cache..." >${TMPFILE}
942 /sbin/ldconfig
943 echo "done." >>${TMPFILE}
944 cat ${TMPFILE}
945 cat ${TMPFILE} >>${INSTALL_LOG}
946
947 if [ -e /etc/xinetd.d ] && [ -d /etc/xinetd.d ] ; then
948         if [ ! -f /etc/xinetd.d/amandaserver ] ; then
949                 cp %{AMANDAHOMEDIR}/example/xinetd.amandaserver /etc/xinetd.d/amandaserver
950                 chmod 0644 /etc/xinetd.d/amandaserver >>${TMPFILE} 2>&1
951                 if [ -f /etc/xinetd.d/amandaclient ] ; then
952                         rm /etc/xinetd.d/amandaclient
953                 fi
954
955                 echo -n "`date +'%b %e %Y %T'`: Reloading xinetd configuration..." >${TMPFILE}
956                 if [ "%{xinetd_reload}" == "reload" ] ; then
957                         /etc/init.d/xinetd %{xinetd_reload} >>${TMPFILE} 2>&1
958                         ret_val=$?
959                         if [ ${ret_val} -ne 0 ] ; then
960                                 echo -n "reload failed.  Attempting restart..." >>${TMPFILE}
961                                 /etc/init.d/xinetd restart >>${TMPFILE} 2>&1
962                                 ret_val=$?
963                         fi
964                 else
965                         /etc/init.d/xinetd %{xinetd_reload} >>${TMPFILE} 2>&1
966                         ret_val=$?
967                 fi
968                 if [ ${ret_val} -eq 0 ] ; then
969                         echo "success." >>${TMPFILE}
970                         cat ${TMPFILE}
971                         cat ${TMPFILE} >>${INSTALL_LOG}
972                 else
973                         echo "failed.  Please check your system logs." >>${TMPFILE}
974                         cat ${TMPFILE} 1>&2
975                         cat ${TMPFILE} >>${INSTALL_ERR}
976                 fi
977         fi
978 fi
979
980 echo "`date +'%b %e %Y %T'`: Installing '%{LOCALSTATEDIR}/amanda/amandates'." >${TMPFILE}
981 ret_val=0
982 if [ ! -f %{LOCALSTATEDIR}/amanda/amandates ] ; then
983         touch %{LOCALSTATEDIR}/amanda/amandates >>${TMPFILE} 2>&1
984         ret_val=$?
985         if [ ${ret_val} -eq 0 ]; then
986                 echo "`date +'%b %e %Y %T'`: The file '%{LOCALSTATEDIR}/amanda/amandates' has been created." >>${TMPFILE}
987         fi
988 fi
989 if [ ${ret_val} -eq 0 ]; then
990         echo "`date +'%b %e %Y %T'`: Ensuring correct permissions for '%{LOCALSTATEDIR}/amanda/amandates'." >>${TMPFILE}
991         chown %{amanda_user}:%{amanda_group} %{LOCALSTATEDIR}/amanda/amandates >>${TMPFILE} 2>&1
992         chmod 0640 %{LOCALSTATEDIR}/amanda/amandates >>${TMPFILE} 2>&1
993 fi
994 if [ ${ret_val} -eq 0 ]; then
995         echo "`date +'%b %e %Y %T'`: '%{LOCALSTATEDIR}/amanda/amandates' Installation successful." >>${TMPFILE}
996         cat ${TMPFILE}
997         cat ${TMPFILE} >>${INSTALL_LOG}
998 else
999         echo "`date +'%b %e %Y %T'`: '%{LOCALSTATEDIR}/amanda/amandates' Installation failed." >>${TMPFILE}
1000         cat ${TMPFILE}
1001         cat ${TMPFILE} >>${INSTALL_ERR}
1002 fi
1003
1004 # Install .amandahosts to server
1005 echo "`date +'%b %e %Y %T'`: Checking '%{AMANDAHOMEDIR}/.amandahosts' file." >${TMPFILE}
1006 if [ ! -f %{AMANDAHOMEDIR}/.amandahosts ] ; then
1007         touch %{AMANDAHOMEDIR}/.amandahosts >>${TMPFILE} 2>&1
1008 fi
1009 for host in localhost localhost.localdomain ; do
1010         if [ -z "`grep \"^${host}[[:blank:]]\+root[[:blank:]]\+amindexd[[:blank:]]\+amidxtaped\" %{AMANDAHOMEDIR}/.amandahosts`" ] ; then
1011                 echo "${host}   root amindexd amidxtaped" >>%{AMANDAHOMEDIR}/.amandahosts
1012         fi
1013         if [ -z "`grep \"^${host}[[:blank:]]\+%{amanda_user}[[:blank:]]\+amdump\" %{AMANDAHOMEDIR}/.amandahosts`" ] ; then
1014                 echo "${host}   %{amanda_user} amdump" >>%{AMANDAHOMEDIR}/.amandahosts
1015         fi
1016 done
1017 chown %{amanda_user}:%{amanda_group} %{AMANDAHOMEDIR}/.amandahosts >>${TMPFILE} 2>&1
1018 chmod 0600 %{AMANDAHOMEDIR}/.amandahosts >>${TMPFILE} 2>&1
1019 cat ${TMPFILE}
1020 cat ${TMPFILE} >>${INSTALL_LOG}
1021
1022 # Install amanda client configuration file
1023 echo "`date +'%b %e %Y %T'`: Checking '%{SYSCONFDIR}/amanda/amanda-client.conf' file." >${TMPFILE}
1024 if [ ! -f %{SYSCONFDIR}/amanda/amanda-client.conf ] ; then
1025         cp %{AMANDAHOMEDIR}/example/amanda-client.conf %{SYSCONFDIR}/amanda/amanda-client.conf >>${TMPFILE} 2>&1
1026 fi
1027 chown %{amanda_user}:%{amanda_group} %{SYSCONFDIR}/amanda/amanda-client.conf >>${TMPFILE} 2>&1
1028 chmod 0600 %{SYSCONFDIR}/amanda/amanda-client.conf >>${TMPFILE} 2>&1
1029 cat ${TMPFILE}
1030 cat ${TMPFILE} >>${INSTALL_LOG}
1031
1032 # install am_passphrase file to server
1033 echo "`date +'%b %e %Y %T'`: Checking '%{AMANDAHOMEDIR}/.am_passphrase' file." >${TMPFILE}
1034 if [ ! -f %{AMANDAHOMEDIR}/.am_passphrase ] ; then
1035         echo "`date +'%b %e %Y %T'`: Create '%{AMANDAHOMEDIR}/.am_passphrase' file." >${TMPFILE}
1036         touch %{AMANDAHOMEDIR}/.am_passphrase >>${TMPFILE} 2>&1
1037         phrase=`echo "amandabackup" | md5sum | awk '{print $1}'`
1038         echo ${phrase} >>%{AMANDAHOMEDIR}/.am_passphrase
1039
1040         chown %{amanda_user}:%{amanda_group} %{AMANDAHOMEDIR}/.am_passphrase >>${TMPFILE} 2>&1
1041         chmod 0700 %{AMANDAHOMEDIR}/.am_passphrase >>${TMPFILE} 2>&1
1042 fi
1043 cat ${TMPFILE}
1044 cat ${TMPFILE} >>${INSTALL_LOG}
1045
1046 # Install .gnupg directory
1047 echo "`date +'%b %e %Y %T'`: Installing '%{AMANDAHOMEDIR}/.gnupg'." >${TMPFILE}
1048 ret_val=0
1049 if [ ! -d %{AMANDAHOMEDIR}/.gnupg ] ; then
1050         echo "`date +'%b %e %Y %T'`: '%{AMANDAHOMEDIR}/.gnupg' will be created." >>${TMPFILE}
1051         mkdir %{AMANDAHOMEDIR}/.gnupg >>${TMPFILE} 2>&1
1052         ret_val=$?
1053         if [ ${ret_val} -eq 0 ]; then
1054                 echo "`date +'%b %e %Y %T'`: The directory '%{AMANDAHOMEDIR}/.gnupg' created successfully." >>${TMPFILE}
1055         else
1056                 echo "`date +'%b %e %Y %T'`: The directory '%{AMANDAHOMEDIR}/.gnupg' creation failed." >>${TMPFILE}
1057         fi
1058 fi
1059 if [ ${ret_val} -eq 0 ]; then
1060         echo "`date +'%b %e %Y %T'`: Ensuring correct permissions for '%{AMANDAHOMEDIR}/.gnupg'." >>${TMPFILE}
1061         chown %{amanda_user}:%{amanda_group} %{AMANDAHOMEDIR}/.gnupg >>${TMPFILE} 2>&1
1062         ret_val=$?
1063         if [ ${ret_val} -eq 0 ]; then
1064                 chmod 700 %{AMANDAHOMEDIR}/.gnupg >>${TMPFILE} 2>&1
1065                 ret_val=$?
1066         fi
1067 fi
1068 if [ ${ret_val} -eq 0 ]; then
1069         echo "`date +'%b %e %Y %T'`: '%{AMANDAHOMEDIR}/.gnupg' Installation successful." >>${TMPFILE}
1070         cat ${TMPFILE}
1071         cat ${TMPFILE} >>${INSTALL_LOG}
1072 else
1073         echo "`date +'%b %e %Y %T'`: '%{AMANDAHOMEDIR}/.gnupg' Installation failed." >>${TMPFILE}
1074         cat ${TMPFILE}
1075         cat ${TMPFILE} >>${INSTALL_ERR}
1076 fi
1077
1078 # SSH RSA key generation on server for amdump
1079 KEYDIR="%{AMANDAHOMEDIR}/.ssh"
1080 KEYFILE="id_rsa_amdump"
1081 COMMENT="%{amanda_user}@server"
1082 if [ ! -d ${KEYDIR} ] ; then
1083         if [ -f ${KEYDIR} ] ; then
1084                 echo "`date +'%b %e %Y %T'`: Directory '${KEYDIR}' exists as a file.  Renaming to '${KEYDIR}.rpmsave'." >${TMPFILE}
1085                 mv ${KEYDIR} ${KEYDIR}.rpmsave >>${TMPFILE} 2>&1
1086                 cat ${TMPFILE}
1087                 cat ${TMPFILE} >>${INSTALL_LOG}
1088         fi
1089         echo "`date +'%b %e %Y %T'`: Creating directory '${KEYDIR}'." >${TMPFILE}
1090         mkdir ${KEYDIR} >>${TMPFILE} 2>&1
1091         cat ${TMPFILE}
1092         cat ${TMPFILE} >>${INSTALL_LOG}
1093 fi
1094 if [ ! -f ${KEYDIR}/${KEYFILE} ] ; then
1095         echo "`date +'%b %e %Y %T'`: Creating ssh RSA key in '${KEYDIR}/${KEYFILE}'" >${TMPFILE}
1096         ssh-keygen -q -C $COMMENT -t rsa -f ${KEYDIR}/${KEYFILE} -N '' >>${TMPFILE} 2>&1
1097         cat ${TMPFILE}
1098         cat ${TMPFILE} >>${INSTALL_LOG}
1099 fi
1100 echo "`date +'%b %e %Y %T'`: Setting ownership and permissions for '${KEYDIR}' and '${KEYDIR}/${KEYFILE}*'" >${TMPFILE}
1101 chown %{amanda_user}:%{amanda_group} ${KEYDIR} ${KEYDIR}/${KEYFILE}* >>${TMPFILE} 2>&1
1102 chmod 0750 ${KEYDIR} >>${TMPFILE} 2>&1
1103 chmod 0600 ${KEYDIR}/${KEYFILE}* >>${TMPFILE} 2>&1
1104 cat ${TMPFILE}
1105 cat ${TMPFILE} >>${INSTALL_LOG}
1106
1107 # SSH RSA key generation on client for amrecover
1108 KEYDIR="%{AMANDAHOMEDIR}/.ssh"
1109 KEYFILE="id_rsa_amrecover"
1110 COMMENT="root@client"
1111 if [ ! -d ${KEYDIR} ] ; then
1112         if [ -f ${KEYDIR} ] ; then
1113                 echo "`date +'%b %e %Y %T'`: Directory '${KEYDIR}' exists as a file.  Renaming to '${KEYDIR}.rpmsave'." >${TMPFILE}
1114                 mv ${KEYDIR} ${KEYDIR}.rpmsave >>${TMPFILE} 2>&1
1115                 cat ${TMPFILE}
1116                 cat ${TMPFILE} >>${INSTALL_LOG}
1117         fi
1118         echo "`date +'%b %e %Y %T'`: Creating directory '${KEYDIR}'." >${TMPFILE}
1119         mkdir ${KEYDIR} >>${TMPFILE} 2>&1
1120         cat ${TMPFILE}
1121         cat ${TMPFILE} >>${INSTALL_LOG}
1122 fi
1123 if [ ! -f ${KEYDIR}/${KEYFILE} ] ; then
1124         echo "`date +'%b %e %Y %T'`: Creating ssh RSA key in '${KEYDIR}/${KEYFILE}'" >${TMPFILE}
1125         ssh-keygen -q -C $COMMENT -t rsa -f ${KEYDIR}/${KEYFILE} -N '' >>${TMPFILE} 2>&1
1126         cat ${TMPFILE}
1127         cat ${TMPFILE} >>${INSTALL_LOG}
1128 fi
1129 echo "`date +'%b %e %Y %T'`: Setting ownership and permissions for '${KEYDIR}'" >${TMPFILE}
1130 chown %{amanda_user}:%{amanda_group} ${KEYDIR} >>${TMPFILE} 2>&1
1131 chmod 0750 ${KEYDIR} >>${TMPFILE} 2>&1
1132 chmod 0600 ${KEYDIR}/${KEYFILE}* >>${TMPFILE} 2>&1
1133 cat ${TMPFILE}
1134 cat ${TMPFILE} >>${INSTALL_LOG}
1135
1136 # environment variables (~amandabackup/.profile)
1137 echo "`date +'%b %e %Y %T'`: Checking for '%{AMANDAHOMEDIR}/.profile' and ensuring correct environment." >${TMPFILE}
1138 if [ ! -f %{AMANDAHOMEDIR}/.profile ] ; then
1139         touch %{AMANDAHOMEDIR}/.profile >>${TMPFILE} 2>&1
1140 fi
1141 if [ -z "`grep PATH %{AMANDAHOMEDIR}/.profile | grep '%{SBINDIR}'`" ] ; then
1142         echo "export PATH=\"\$PATH:%{SBINDIR}\"" >>%{AMANDAHOMEDIR}/.profile 2>>${TMPFILE}
1143 fi
1144 cat ${TMPFILE}
1145 cat ${TMPFILE} >>${INSTALL_LOG}
1146
1147 echo "`date +'%b %e %Y %T'`: Setting ownership and permissions for '%{AMANDAHOMEDIR}/.profile'" >${TMPFILE}
1148 chown %{amanda_user}:%{amanda_group} %{AMANDAHOMEDIR}/.profile >>${TMPFILE} 2>&1
1149 chmod 0640 %{AMANDAHOMEDIR}/.profile >>${TMPFILE} 2>&1
1150 cat ${TMPFILE}
1151 cat ${TMPFILE} >>${INSTALL_LOG}
1152
1153 echo "`date +'%b %e %Y %T'`: Sending anonymous distribution and version information to Zmanda" >> ${INSTALL_LOG}
1154 if [ -x /usr/bin/wget ]; then 
1155         /usr/bin/wget -q -o /dev/null -O - --timeout=5 http://www.zmanda.com/amanda-tips.php\?version=%{amanda_version}\&os=%{disttag}%{distver}\&type=server 
1156 fi
1157
1158 echo "`date +'%b %e %Y %T'`: === Amanda backup server installation complete. ===" >${TMPFILE}
1159
1160 cat ${TMPFILE}
1161 cat ${TMPFILE} >>${INSTALL_LOG}
1162
1163 if [ -f "${TMPFILE}" ]; then
1164         rm -f "${TMPFILE}" >>${TMPFILE} 2>&1
1165 fi
1166
1167 echo "Amanda installation log can be found in '${INSTALL_LOG}' and errors (if any) in '${INSTALL_ERR}'."
1168 %postun backup_server
1169 /sbin/ldconfig
1170 %pre backup_client
1171 TMPFILE=`mktemp /tmp/rpm-amanda.XXXXXXXXXXX`
1172 if [ $? -ne 0 ]; then
1173         echo "Unable to mktemp!" 1>&2
1174         exit 1
1175 fi
1176 LOGDIR="%{LOGDIR}"
1177 INSTALL_LOG="${LOGDIR}/install.log"
1178 INSTALL_ERR="${LOGDIR}/install.err"
1179
1180 echo "`date +'%b %e %Y %T'`: Preparing to install: %{amanda_version_info}" >${TMPFILE}
1181
1182 # Check for the 'amanda' user
1183 echo "`date +'%b %e %Y %T'`: Checking for '%{amanda_user}' user..." >>${TMPFILE}
1184 if [ "`id -u %{amanda_user} > /dev/null 2>&1 && echo 0 || echo 1`" != "0" ] ; then
1185         useradd -c "Amanda" -M -g %{amanda_group} -d %{AMANDAHOMEDIR} -s /bin/sh %{amanda_user} >>${TMPFILE} 2>&1
1186         if [ %{dist} = "SuSE" ]; then
1187                 PASSWD_EXIT=$?
1188         else
1189                 # Lock the amanda account until admin sets password
1190                 passwd -l %{amanda_user} >>/dev/null
1191                 PASSWD_EXIT=$?
1192         fi
1193         if [ ${PASSWD_EXIT} -eq 0 ] ; then
1194                 echo "`date +'%b %e %Y %T'`:" >>${TMPFILE}
1195                 echo "`date +'%b %e %Y %T'`:  The '%{amanda_user}; user account has been successfully created." >>${TMPFILE}
1196                 echo "`date +'%b %e %Y %T'`:  Furthermore, the account has been automatically locked for you" >>${TMPFILE}
1197                 echo "`date +'%b %e %Y %T'`:  for security purposes.  Once a password for the  '%{amanda_user}'" >>${TMPFILE}
1198                 echo "`date +'%b %e %Y %T'`:  account has been set, the user can be unlocked by issuing" >>${TMPFILE}
1199                 echo "`date +'%b %e %Y %T'`:  the following command as root.:" >>${TMPFILE}
1200                 echo "`date +'%b %e %Y %T'`:" >>${TMPFILE}
1201                 echo "`date +'%b %e %Y %T'`:  # passwd -u %{amanda_user}" >>${TMPFILE}
1202                 echo "`date +'%b %e %Y %T'`:" >>${TMPFILE}
1203                 echo "`date +'%b %e %Y %T'`:  If this is not a new installation of Amanda and you have" >>${TMPFILE}
1204                 echo "`date +'%b %e %Y %T'`:  pre-existing Amanda configurations in %{SYSCONFDIR}/amanda" >>${TMPFILE}
1205                 echo "`date +'%b %e %Y %T'`:  you should ensure that 'dumpuser' is set to '%{amanda_user}'" >>${TMPFILE}
1206                 echo "`date +'%b %e %Y %T'`:  in those configurations.  Additionally, you should ensure" >>${TMPFILE}
1207                 echo "`date +'%b %e %Y %T'`:  that %{AMANDAHOMEDIR}/.amandahosts on your client systems" >>${TMPFILE}
1208                 echo "`date +'%b %e %Y %T'`:  is properly configured to allow connections for the user" >>${TMPFILE}
1209                 echo "`date +'%b %e %Y %T'`:  '%{amanda_user}'." >>${TMPFILE}
1210                 echo "`date +'%b %e %Y %T'`:" >>${TMPFILE}
1211                 PASSWD_OK=0
1212         else
1213                 echo "`date +'%b %e %Y %T'`:  !!! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! !!!" >>${TMPFILE}
1214                 echo "`date +'%b %e %Y %T'`:  !!!                                                       !!!" >>${TMPFILE}
1215                 echo "`date +'%b %e %Y %T'`:  !!!  The '%{amanda_user}' user account for this system has been   !!!" >>${TMPFILE}
1216                 echo "`date +'%b %e %Y %T'`:  !!!  created, however the user has no password set. For   !!!" >>${TMPFILE}
1217                 echo "`date +'%b %e %Y %T'`:  !!!  security purposes this account  is normally locked   !!!" >>${TMPFILE}
1218                 echo "`date +'%b %e %Y %T'`:  !!!  after creation.  Unfortunately,  when locking this   !!!" >>${TMPFILE}
1219                 echo "`date +'%b %e %Y %T'`:  !!!  account an error occurred.  To ensure the security   !!!" >>${TMPFILE}
1220                 echo "`date +'%b %e %Y %T'`:  !!!  of your system  you should set a password  for the   !!!" >>${TMPFILE}
1221                 echo "`date +'%b %e %Y %T'`:  !!!  user account '%{amanda_user}' immediately!  To set  such a   !!!" >>${TMPFILE}
1222                 echo "`date +'%b %e %Y %T'`:  !!!  password, please issue the following command.:       !!!" >>${TMPFILE}
1223                 echo "`date +'%b %e %Y %T'`:  !!!                                                       !!!" >>${TMPFILE}
1224                 echo "`date +'%b %e %Y %T'`:  !!!   # passwd %{amanda_user}                                     !!!" >>${TMPFILE}
1225                 echo "`date +'%b %e %Y %T'`:  !!!                                                       !!!" >>${TMPFILE}
1226                 echo "`date +'%b %e %Y %T'`:  !!! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! !!!" >>${TMPFILE}
1227                 PASSWD_OK=1
1228         fi
1229 else
1230         # log information about 'amanda' user parameters
1231         echo "`date +'%b %e %Y %T'`:" >>${TMPFILE}
1232         echo "`date +'%b %e %Y %T'`:  The Amanda backup software is configured to operate as the" >>${TMPFILE}
1233         echo "`date +'%b %e %Y %T'`:  user '%{amanda_user}'.  This user exists on your system and has not" >>${TMPFILE}
1234         echo "`date +'%b %e %Y %T'`:  been modified.  To ensure that Amanda functions properly," >>${TMPFILE}
1235         echo "`date +'%b %e %Y %T'`:  please see that the following parameters are set for that" >>${TMPFILE}
1236         echo "`date +'%b %e %Y %T'`:  user.:" >>${TMPFILE}
1237         echo "`date +'%b %e %Y %T'`:" >>${TMPFILE}
1238         echo "`date +'%b %e %Y %T'`:  SHELL:          /bin/sh" >>${TMPFILE}
1239         echo "`date +'%b %e %Y %T'`:  HOME:           %{AMANDAHOMEDIR}" >>${TMPFILE}
1240         echo "`date +'%b %e %Y %T'`:  Default group:  %{amanda_group}" >>${TMPFILE}
1241         echo "`date +'%b %e %Y %T'`:  Verifying %{amanda_user} parameters :" >>${TMPFILE}
1242
1243         if [ "`id -gn %{amanda_user}`" != "disk" ] ; then
1244                 echo "`date +'%b %e %Y %T'`:  !!! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! !!!" >>${TMPFILE}
1245                 echo "`date +'%b %e %Y %T'`:  !!! user 'amandabackup' is not part of the disk group,Pl  !!!" >>${TMPFILE}
1246                 echo "`date +'%b %e %Y %T'`:  !!! make sure it is corrected before start using Amanda   !!!" >>${TMPFILE}
1247                 echo "`date +'%b %e %Y %T'`:  !!! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! !!!" >>${TMPFILE}
1248         else
1249                 echo "`date +'%b %e %Y %T'`:  Verified group name of user 'amandabackup'" >>${TMPFILE}
1250         fi
1251
1252         if [ "`grep ^%{amanda_user} /etc/passwd|cut -d: -f7`" != "/bin/sh" ] ; then
1253                 echo "`date +'%b %e %Y %T'`:  !!! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! !!!" >>${TMPFILE}
1254                 echo "`date +'%b %e %Y %T'`:  !!! user 'amandabackup' default shell should be set to    !!!" >>${TMPFILE}
1255                 echo "`date +'%b %e %Y %T'`:  !!! /bin/sh, pl correct before start using Amanda         !!!" >>${TMPFILE}
1256                 echo "`date +'%b %e %Y %T'`:  !!! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! !!!" >>${TMPFILE}
1257         else
1258                 echo "`date +'%b %e %Y %T'`:  Verified Default shell for user 'amandabackup'" >>${TMPFILE}
1259         fi
1260
1261         if [ "`grep ^%{amanda_user} /etc/passwd|cut -d: -f6`" != "%{AMANDAHOMEDIR}" ] ; then
1262                 echo "`date +'%b %e %Y %T'`:  !!! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! !!!" >>${TMPFILE}
1263                 echo "`date +'%b %e %Y %T'`:  !!! user 'amandabackup' home directory should be set to   !!!" >>${TMPFILE}
1264                 echo "`date +'%b %e %Y %T'`:  !!! %{AMANDAHOMEDIR} Pl correct before using Amanda       !!!" >>${TMPFILE}
1265                 echo "`date +'%b %e %Y %T'`:  !!! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! !!!" >>${TMPFILE}
1266         else
1267                 echo "`date +'%b %e %Y %T'`:  Verified Default home directory for user amandabackup" >>${TMPFILE}
1268         fi
1269         echo "`date +'%b %e %Y %T'`:" >>${TMPFILE}
1270         PASSWD_OK=0
1271 fi
1272 if [ -d %{AMANDAHOMEDIR} ] ; then
1273         echo -n "`date +'%b %e %Y %T'`:  Checking ownership of '%{AMANDAHOMEDIR}'... " >>${TMPFILE}
1274         if [ "`ls -dl %{AMANDAHOMEDIR} | awk '//{split($_,x); print x[3]}'`" = "%{amanda_user}" ] && \
1275            [ "`ls -dl %{AMANDAHOMEDIR} | awk '//{split($_,x); print x[4]}'`" = "%{amanda_group}" ] ; then
1276                 echo "correct." >>${TMPFILE}
1277                 VARLIB_OK=0
1278         else
1279                 echo "incorrect!" >>${TMPFILE}
1280                 echo "`date +'%b %e %Y %T'`:  Please ensure that the directory '%{AMANDAHOMEDIR}' is owned by" >>${TMPFILE}
1281                 echo "`date +'%b %e %Y %T'`:  the user '%{amanda_user}' and group '%{amanda_group}'." >>${TMPFILE}
1282                 VARLIB_OK=1
1283         fi
1284 else
1285         VARLIB_OK=0
1286 fi
1287 echo "`date +'%b %e %Y %T'`:" >>${TMPFILE}
1288
1289 if [ ! -e ${LOGDIR} ] ; then
1290         # create log directory
1291         mkdir -m 0750 ${LOGDIR} >>${TMPFILE} 2>&1
1292         chown %{amanda_user}:%{amanda_group} ${LOGDIR} >>${TMPFILE} 2>&1
1293 elif [ ! -d ${LOGDIR} ] ; then
1294         mv ${LOGDIR} ${LOGDIR}.rpmsave >>${TMPFILE} 2>&1
1295         mkdir -m 0750 ${LOGDIR} >>${TMPFILE} 2>&1
1296         chown %{amanda_user}:%{amanda_group} ${LOGDIR} >>${TMPFILE} 2>&1
1297         mv ${LOGDIR}.rpmsave ${LOGDIR}/ >>${TMPFILE} 2>&1
1298 fi
1299 if [ ${PASSWD_OK} -eq 1 ] || [ ${VARLIB_OK} -eq 1 ] ; then
1300         cat ${TMPFILE}
1301         cat ${TMPFILE} >>${INSTALL_ERR}
1302         echo "Please review '${INSTALL_ERR}' to correct errors which have prevented the Amanda installaton." >&2
1303         echo "Amanda installation log can be found in '${INSTALL_LOG}' and errors (if any) in '${INSTALL_ERR}'."
1304         exit 1
1305 else
1306         cat ${TMPFILE}
1307         cat ${TMPFILE} >>${INSTALL_LOG}
1308 fi
1309
1310 echo "`date +'%b %e %Y %T'`: === Amanda backup client installation started. ===" >${TMPFILE}
1311
1312 cat ${TMPFILE}
1313 cat ${TMPFILE} >>${INSTALL_LOG}
1314
1315 if [ -f "${TMPFILE}" ]; then
1316         rm -f "${TMPFILE}"
1317 fi
1318
1319 %post backup_client
1320 TMPFILE=`mktemp /tmp/rpm-amanda.XXXXXXXXXXX`
1321 if [ $? -ne 0 ]; then
1322         echo "Unable to mktemp!" 1>&2
1323         exit 1
1324 fi
1325 LOGDIR="%{LOGDIR}"
1326 INSTALL_LOG="${LOGDIR}/install.log"
1327 INSTALL_ERR="${LOGDIR}/install.err"
1328
1329 echo -n "`date +'%b %e %Y %T'`: Updating system library cache..." >${TMPFILE}
1330 /sbin/ldconfig
1331 echo "done." >>${TMPFILE}
1332 cat ${TMPFILE}
1333 cat ${TMPFILE} >>${INSTALL_LOG}
1334
1335 if [ -e /etc/xinetd.d ] && [ -d /etc/xinetd.d ] ; then
1336         if [ ! -f /etc/xinetd.d/amandaclient ] ; then
1337                 cp %{AMANDAHOMEDIR}/example/xinetd.amandaclient /etc/xinetd.d/amandaclient
1338
1339                 echo -n "`date +'%b %e %Y %T'`: Reloading xinetd configuration..." >${TMPFILE}
1340                 if [ "%{xinetd_reload}" == "reload" ] ; then
1341                         /etc/init.d/xinetd %{xinetd_reload} >>${TMPFILE} 2>&1
1342                         ret_val=$?
1343                         if [ ${ret_val} -ne 0 ] ; then
1344                                 echo -n "reload failed.  Attempting restart..." >>${TMPFILE}
1345                                 /etc/init.d/xinetd restart >>${TMPFILE} 2>&1
1346                                 ret_val=$?
1347                         fi
1348                 else
1349                         /etc/init.d/xinetd %{xinetd_reload} >>${TMPFILE} 2>&1
1350                         ret_val=$?
1351                 fi
1352                 if [ ${ret_val} -eq 0 ] ; then
1353                         echo "success." >>${TMPFILE}
1354                         cat ${TMPFILE}
1355                         cat ${TMPFILE} >>${INSTALL_LOG}
1356                 else
1357                         echo "failed.  Please check your system logs." >>${TMPFILE}
1358                         cat ${TMPFILE}
1359                         cat ${TMPFILE} >>${INSTALL_LOG}
1360                 fi
1361         fi
1362 fi
1363
1364 echo "`date +'%b %e %Y %T'`: Installing '%{LOCALSTATEDIR}/amanda/amandates'." >${TMPFILE}
1365 ret_val=0
1366 if [ ! -f %{LOCALSTATEDIR}/amanda/amandates ] ; then
1367         touch %{LOCALSTATEDIR}/amanda/amandates >>${TMPFILE} 2>&1
1368         ret_val=$?
1369         if [ ${ret_val} -eq 0 ]; then
1370                 echo "`date +'%b %e %Y %T'`: The file '%{LOCALSTATEDIR}/amanda/amandates' has been created." >>${TMPFILE}
1371         fi
1372 fi
1373 if [ ${ret_val} -eq 0 ]; then
1374         echo "`date +'%b %e %Y %T'`: Ensuring correct permissions for '%{LOCALSTATEDIR}/amanda/amandates'." >>${TMPFILE}
1375         chown %{amanda_user}:%{amanda_group} %{LOCALSTATEDIR}/amanda/amandates >>${TMPFILE} 2>&1
1376         chmod 0640 %{LOCALSTATEDIR}/amanda/amandates >>${TMPFILE} 2>&1
1377 fi
1378 if [ ${ret_val} -eq 0 ]; then
1379         echo "`date +'%b %e %Y %T'`: '%{LOCALSTATEDIR}/amanda/amandates' Installation successful." >>${TMPFILE}
1380         cat ${TMPFILE}
1381         cat ${TMPFILE} >>${INSTALL_LOG}
1382 else
1383         echo "`date +'%b %e %Y %T'`: '%{LOCALSTATEDIR}/amanda/amandates' Installation failed." >>${TMPFILE}
1384         cat ${TMPFILE}
1385         cat ${TMPFILE} >>${INSTALL_ERR}
1386 fi
1387
1388 # Install .amandahosts to client
1389 echo "`date +'%b %e %Y %T'`: Checking '%{AMANDAHOMEDIR}/.amandahosts' file." >${TMPFILE}
1390 if [ ! -f %{AMANDAHOMEDIR}/.amandahosts ] ; then
1391         touch %{AMANDAHOMEDIR}/.amandahosts >>${TMPFILE} 2>&1
1392 fi
1393 for host in localhost localhost.localdomain ; do
1394                 if [ -z "`grep \"^${host}[[:blank:]]\+\" %{AMANDAHOMEDIR}/.amandahosts | grep \"[[:blank:]]\+%{amanda_user}[[:blank:]]\+amdump\"`" ] ; then
1395                         echo "${host}   %{amanda_user} amdump" >>%{AMANDAHOMEDIR}/.amandahosts
1396                 fi
1397 done
1398 chown %{amanda_user}:%{amanda_group} %{AMANDAHOMEDIR}/.amandahosts >>${TMPFILE} 2>&1
1399 chmod 0600 %{AMANDAHOMEDIR}/.amandahosts >>${TMPFILE} 2>&1
1400 cat ${TMPFILE}
1401 cat ${TMPFILE} >>${INSTALL_LOG}
1402
1403 # Install amanda client configuration file
1404 echo "`date +'%b %e %Y %T'`: Checking '%{SYSCONFDIR}/amanda/amanda-client.conf' file." >${TMPFILE}
1405 if [ ! -f %{SYSCONFDIR}/amanda/amanda-client.conf ] ; then
1406         cp %{AMANDAHOMEDIR}/example/amanda-client.conf %{SYSCONFDIR}/amanda/amanda-client.conf >>${TMPFILE} 2>&1
1407 fi
1408 chown %{amanda_user}:%{amanda_group} %{SYSCONFDIR}/amanda/amanda-client.conf >>${TMPFILE} 2>&1
1409 chmod 0600 %{SYSCONFDIR}/amanda/amanda-client.conf >>${TMPFILE} 2>&1
1410 cat ${TMPFILE}
1411 cat ${TMPFILE} >>${INSTALL_LOG}
1412
1413 # Install .gnupg directory
1414 echo "`date +'%b %e %Y %T'`: Installing '%{AMANDAHOMEDIR}/.gnupg'." >${TMPFILE}
1415 ret_val=0
1416 if [ ! -d %{AMANDAHOMEDIR}/.gnupg ] ; then
1417         echo "`date +'%b %e %Y %T'`: '%{AMANDAHOMEDIR}/.gnupg' will be created." >>${TMPFILE}
1418         mkdir %{AMANDAHOMEDIR}/.gnupg >>${TMPFILE} 2>&1
1419         ret_val=$?
1420         if [ ${ret_val} -eq 0 ]; then
1421                 echo "`date +'%b %e %Y %T'`: The directory '%{AMANDAHOMEDIR}/.gnupg' created successfully." >>${TMPFILE}
1422         else
1423                 echo "`date +'%b %e %Y %T'`: The directory '%{AMANDAHOMEDIR}/.gnupg' creation failed." >>${TMPFILE}
1424         fi
1425 fi
1426 if [ ${ret_val} -eq 0 ]; then
1427         echo "`date +'%b %e %Y %T'`: Ensuring correct permissions for '%{AMANDAHOMEDIR}/.gnupg'." >>${TMPFILE}
1428         chown %{amanda_user}:%{amanda_group} %{AMANDAHOMEDIR}/.gnupg >>${TMPFILE} 2>&1
1429         ret_val=$?
1430         if [ ${ret_val} -eq 0 ]; then
1431                 chmod 700 %{AMANDAHOMEDIR}/.gnupg >>${TMPFILE} 2>&1
1432                 ret_val=$?
1433         fi
1434 fi
1435 if [ ${ret_val} -eq 0 ]; then
1436         echo "`date +'%b %e %Y %T'`: '%{AMANDAHOMEDIR}/.gnupg' Installation successful." >>${TMPFILE}
1437         cat ${TMPFILE}
1438         cat ${TMPFILE} >>${INSTALL_LOG}
1439 else
1440         echo "`date +'%b %e %Y %T'`: '%{AMANDAHOMEDIR}/.gnupg' Installation failed." >>${TMPFILE}
1441         cat ${TMPFILE}
1442         cat ${TMPFILE} >>${INSTALL_ERR}
1443 fi
1444
1445 # SSH RSA key generation on client for amrecover
1446 KEYDIR="%{AMANDAHOMEDIR}/.ssh"
1447 KEYFILE="id_rsa_amrecover"
1448 COMMENT="root@client"
1449 if [ ! -d ${KEYDIR} ] ; then
1450         if [ -f ${KEYDIR} ] ; then
1451                 echo "`date +'%b %e %Y %T'`: Directory '${KEYDIR}' exists as a file.  Renaming to '${KEYDIR}.rpmsave'." >${TMPFILE}
1452                 mv ${KEYDIR} ${KEYDIR}.rpmsave >>${TMPFILE} 2>&1
1453                 cat ${TMPFILE}
1454                 cat ${TMPFILE} >>${INSTALL_LOG}
1455         fi
1456         echo "`date +'%b %e %Y %T'`: Creating directory '${KEYDIR}'." >${TMPFILE}
1457         mkdir ${KEYDIR} >>${TMPFILE} 2>&1
1458         cat ${TMPFILE}
1459         cat ${TMPFILE} >>${INSTALL_LOG}
1460 fi
1461 if [ ! -f ${KEYDIR}/${KEYFILE} ] ; then
1462         echo "`date +'%b %e %Y %T'`: Creating ssh RSA key in '${KEYDIR}/${KEYFILE}'" >${TMPFILE}
1463         ssh-keygen -q -C $COMMENT -t rsa -f ${KEYDIR}/${KEYFILE} -N '' >>${TMPFILE} 2>&1
1464         cat ${TMPFILE}
1465         cat ${TMPFILE} >>${INSTALL_LOG}
1466 fi
1467 echo "`date +'%b %e %Y %T'`: Setting permissions for '${KEYDIR}' and '${KEYDIR}/${KEYFILE}*'" >${TMPFILE}
1468 chown %{amanda_user}:%{amanda_group} ${KEYDIR} >>${TMPFILE} 2>&1
1469 chmod 0750 ${KEYDIR} >>${TMPFILE} 2>&1
1470 chmod 0600 ${KEYDIR}/${KEYFILE}* >>${TMPFILE} 2>&1
1471 cat ${TMPFILE}
1472 cat ${TMPFILE} >>${INSTALL_LOG}
1473
1474 # environment variables (~amandabackup/.profile)
1475 echo "`date +'%b %e %Y %T'`: Checking for '%{AMANDAHOMEDIR}/.profile' and ensuring correct environment." >${TMPFILE}
1476 if [ ! -f %{AMANDAHOMEDIR}/.profile ] ; then
1477         touch %{AMANDAHOMEDIR}/.profile >>${TMPFILE} 2>&1
1478 fi
1479 if [ -z "`grep PATH %{AMANDAHOMEDIR}/.profile | grep '%{SBINDIR}'`" ] ; then
1480         echo "export PATH=\"\$PATH:%{SBINDIR}\"" >>%{AMANDAHOMEDIR}/.profile 2>>${TMPFILE}
1481 fi
1482 cat ${TMPFILE}
1483 cat ${TMPFILE} >>${INSTALL_LOG}
1484 echo "`date +'%b %e %Y %T'`: Setting ownership and permissions for '%{AMANDAHOMEDIR}/.profile'" >${TMPFILE}
1485 chown %{amanda_user}:%{amanda_group} %{AMANDAHOMEDIR}/.profile >>${TMPFILE} 2>&1
1486 chmod 0640 %{AMANDAHOMEDIR}/.profile >>${TMPFILE} 2>&1
1487 cat ${TMPFILE}
1488 cat ${TMPFILE} >>${INSTALL_LOG}
1489
1490 echo "`date +'%b %e %Y %T'`: Sending anonymous distribution and version information to Zmanda" >> ${INSTALL_LOG}
1491 if [ -x /usr/bin/wget ]; then 
1492         /usr/bin/wget -q -o /dev/null -O - --timeout=5 http://www.zmanda.com/amanda-tips.php\?version=%{amanda_version}\&os=%{disttag}%{distver}\&type=client 
1493 fi
1494
1495 echo "`date +'%b %e %Y %T'`: === Amanda backup client installation complete. ===" >>${TMPFILE}
1496 cat ${TMPFILE}
1497 cat ${TMPFILE} >>${INSTALL_LOG}
1498
1499 if [ -f "${TMPFILE}" ]; then
1500         rm -f "${TMPFILE}"
1501 fi
1502
1503 echo "Amanda installation log can be found in '${INSTALL_LOG}' and errors (if any) in '${INSTALL_ERR}'."
1504 %postun backup_client
1505 /sbin/ldconfig
1506
1507 # --- Files to install ---
1508 # Notes:  Do not use wildcards on directories not wholly owned by amanda.  An
1509 # uninstall of the software will attempt to delete whatever matches here.
1510 %files backup_client
1511 %defattr(0755,%{amanda_user},%{amanda_group})
1512 %{SYSCONFDIR}/amanda
1513 %{AMANDAHOMEDIR}
1514 %{AMLIBEXECDIR}
1515 %{AMLIBDIR}
1516 %{AMLIBEXECDIR}/amanda-sh-lib.sh
1517 %{LOCALSTATEDIR}/amanda
1518 %defattr(4750,root,disk)
1519 %{AMLIBEXECDIR}/calcsize
1520 %{AMLIBEXECDIR}/killpgrp
1521 %{AMLIBEXECDIR}/rundump
1522 %{AMLIBEXECDIR}/runtar
1523 %defattr(0750,%{amanda_user},%{amanda_group})
1524 %{LOGDIR}
1525 %{SBINDIR}/amaespipe
1526 %{SBINDIR}/amcryp*
1527 %{SBINDIR}/amgpgcrypt
1528 %{SBINDIR}/amoldrecover
1529 %{SBINDIR}/amrecover
1530 %defattr(0644,%{amanda_user},%{amanda_group})
1531 %docdir %{MANDIR}
1532 %{MANDIR}/man5/amanda.conf.5.gz
1533 %{MANDIR}/man5/amanda-client.conf.5.gz
1534 %{MANDIR}/man8/amanda.8.gz
1535 %{MANDIR}/man8/amcheckdump.8.gz
1536 %{MANDIR}/man8/amrecover.8.gz
1537 %{AMLIBEXECDIR}/amcat.awk
1538 %{AMANDAHOMEDIR}/amanda-release
1539 %{AMANDAHOMEDIR}/example/xinetd.amandaclient
1540 %{AMANDAHOMEDIR}/example/amanda-client.conf
1541
1542 %files backup_server
1543 %defattr(0755,%{amanda_user},%{amanda_group})
1544 %{SYSCONFDIR}/amanda
1545 %{AMLIBEXECDIR}
1546 %{AMLIBDIR}
1547 %{PERLSITELIB}/Amanda
1548 %{PERLSITELIB}/auto/Amanda
1549 %{AMANDAHOMEDIR}
1550 %{LOCALSTATEDIR}/amanda
1551 %{SBINDIR}/amaddclient
1552 %{SBINDIR}/amadmin
1553 %{SBINDIR}/amcheckdb
1554 %{SBINDIR}/amcheckdump
1555 %{SBINDIR}/amcleanup
1556 %{SBINDIR}/amdd
1557 %{SBINDIR}/amdevcheck
1558 %{SBINDIR}/amdump
1559 %{SBINDIR}/amfetchdump
1560 %{SBINDIR}/amflush
1561 %{SBINDIR}/amgetconf
1562 %{SBINDIR}/amlabel
1563 %{SBINDIR}/ammt
1564 %{SBINDIR}/amoverview
1565 %{SBINDIR}/amplot
1566 %{SBINDIR}/amreport
1567 %{SBINDIR}/amrestore
1568 %{SBINDIR}/amrmtape
1569 %{SBINDIR}/amserverconfig
1570 %{SBINDIR}/amstatus
1571 %{SBINDIR}/amtape
1572 %{SBINDIR}/amtapetype
1573 %{SBINDIR}/amtoc
1574 %{SBINDIR}/amverify
1575 %{SBINDIR}/amverifyrun
1576 %{AMLIBEXECDIR}/amanda-sh-lib.sh
1577 %defattr(4750,root,disk)
1578 %{AMLIBEXECDIR}/calcsize
1579 %{AMLIBEXECDIR}/killpgrp
1580 %{AMLIBEXECDIR}/rundump
1581 %{AMLIBEXECDIR}/runtar
1582 %{AMLIBEXECDIR}/dumper
1583 %{AMLIBEXECDIR}/planner
1584 %{SBINDIR}/amcheck
1585 %defattr(0750,%{amanda_user},%{amanda_group})
1586 %{LOGDIR}
1587 %{SBINDIR}/amaespipe
1588 %{SBINDIR}/amcrypt
1589 %{SBINDIR}/amcrypt-ossl
1590 %{SBINDIR}/amcrypt-ossl-asym
1591 %{SBINDIR}/amcryptsimple
1592 %{SBINDIR}/amgpgcrypt
1593 %{SBINDIR}/amoldrecover
1594 %{SBINDIR}/amrecover
1595 %defattr(0644,%{amanda_user},%{amanda_group})
1596 %{AMLIBEXECDIR}/amcat.awk
1597 %{AMLIBEXECDIR}/amplot.awk
1598 %{AMLIBEXECDIR}/amplot.g
1599 %{AMLIBEXECDIR}/amplot.gp
1600 %docdir %{MANDIR}
1601 %{MANDIR}/man5/amanda.conf.5.gz
1602 %{MANDIR}/man5/amanda-client.conf.5.gz
1603 %{MANDIR}/man8/amaddclient.8.gz
1604 %{MANDIR}/man8/amadmin.8.gz
1605 %{MANDIR}/man8/amanda.8.gz
1606 %{MANDIR}/man8/amcheck.8.gz
1607 %{MANDIR}/man8/amcheckdb.8.gz
1608 %{MANDIR}/man8/amcheckdump.8.gz
1609 %{MANDIR}/man8/amcleanup.8.gz
1610 %{MANDIR}/man8/amdd.8.gz
1611 %{MANDIR}/man8/amdump.8.gz
1612 %{MANDIR}/man8/amfetchdump.8.gz
1613 %{MANDIR}/man8/amflush.8.gz
1614 %{MANDIR}/man8/amgetconf.8.gz
1615 %{MANDIR}/man8/amlabel.8.gz
1616 %{MANDIR}/man8/ammt.8.gz
1617 %{MANDIR}/man8/amoverview.8.gz
1618 %{MANDIR}/man8/amplot.8.gz
1619 %{MANDIR}/man8/amrecover.8.gz
1620 %{MANDIR}/man8/amreport.8.gz
1621 %{MANDIR}/man8/amrestore.8.gz
1622 %{MANDIR}/man8/amrmtape.8.gz
1623 %{MANDIR}/man8/amserverconfig.8.gz
1624 %{MANDIR}/man8/amstatus.8.gz
1625 %{MANDIR}/man8/amtape.8.gz
1626 %{MANDIR}/man8/amtapetype.8.gz
1627 %{MANDIR}/man8/amtoc.8.gz
1628 %{MANDIR}/man8/amverify.8.gz
1629 %{MANDIR}/man8/amverifyrun.8.gz
1630 %{MANDIR}/man8/amcrypt.8.gz
1631 %{MANDIR}/man8/amcrypt-ossl.8.gz
1632 %{MANDIR}/man8/amcrypt-ossl-asym.8.gz
1633 %{MANDIR}/man8/amcryptsimple.8.gz
1634 %{MANDIR}/man8/amgpgcrypt.8.gz
1635 %{MANDIR}/man8/amaespipe.8.gz
1636 %{MANDIR}/man8/amdevcheck.8.gz
1637 %{AMANDAHOMEDIR}/amanda-release
1638 %{AMANDAHOMEDIR}/example/amanda-client.conf
1639 %{AMANDAHOMEDIR}/example/xinetd.amandaserver
1640
1641 # --- ChangeLog
1642
1643 %changelog
1644 * Fri May 02 2008 Dan Locks <dwlocks at zmanda dot com>
1645 - Changed instances of ${ to %%{ where applicable
1646 * Tue Mar 11 2008 Dan Locks <dwlocks at zmanda dot com>
1647 - fixed many rpmlint complaints
1648 - added --quiet to configure statements
1649 - moved PERLSITELIB to definitions section
1650 * Wed Feb 13 2008 Dan Locks <dwlocks at zmanda dot com>
1651 - added an environment check for PKG_CONFIG_PATH
1652 - added PKG_CONFIG_PATH conditional to handle cross comp on FC8 (environment 
1653   var is used if provided)
1654 * Fri Feb 01 2008 Dan Locks <dwlocks at zmanda dot com>
1655 - Removed amplot executable and manpages from client installation
1656 - Added amcheckdump.8 manpage
1657 - Fixed %%{LOCALSTATEDIR}/amanda dir creation.
1658 * Wed Jan 23 2008  Dan Locks <dwlocks at zmanda dot com>
1659 - Change %%{SYSCONFDIR}/amanda/amandates to %%{LOCALSTATEDIR}/amanda/amandates,
1660   and added %%{LOCALSTATEDIR}/amanda to the files lists.
1661 * Mon Jan 14 2008  Dan Locks <dwlocks at zmanda dot com>
1662 - Updates for perlified amanda, file location moves, gpg setup.
1663 * Tue Nov  13 2007 Paddy Sreenivasan <paddy at zmanda dot com>
1664 - Added SYSCONFDIR to client rpm
1665 - Set xinetd and amanda-client.conf configuration files as part of postinstall
1666 * Thu Nov  8 2007 Dan Locks <dwlocks at zmanda dot com>
1667 - Added Linux distribution detection
1668 * Wed Nov 7 2007 Paddy Sreenivasan <paddy at zmanda dot com>
1669 - Added amserverconfig, amaddclient, amgpgcrypt, amcryptsimple and libamdevice.
1670 - Added amanda configuration template files
1671 * Fri Sep 21 2007 Paddy Sreenivasan <paddy at zmanda dot com>
1672 - Remove libamserver, libamtape from client rpm
1673 * Wed Sep 19 2007 Paddy Sreenivasan <paddy at zmanda dot com>
1674 - Added Fedora 7
1675 * Tue Jun 26 2007 Kevin Till <ktill at zmanda dot com>
1676 - set debug log to /var/log/amanda
1677 * Fri Jan 12 2007 Paddy Sreenivasan <paddy at zmanda dot com>
1678 - Added label templates
1679 * Thu Dec 07 2006 Paddy Sreenivasan <paddy at zmanda dot com>
1680 - Application API changes
1681 * Fri Jun 16 2006 Kevin Till <ktill at zmanda dot com>
1682 - make install will install necessary example files. 
1683   No need to "cp"
1684 * Wed Jun 07 2006 Paddy Sreenivasan <paddy at zmanda dot com> -
1685 - Added amoldrecover and amanda-client.conf man page.
1686 * Thu Jun 01 2006 Kevin Till <ktill at zmanda dot com> -
1687 - Added amcrypt-ossl, amcrypt-ossl-asym by Ben Slusky.
1688 * Thu May 18 2006 Paddy Sreenivasan <paddy at zmanda dot com> -
1689 - Added SLES10, RHEL3 build options.
1690 * Tue May 09 2006 Chris Lee <cmlee at zmanda dot com> -
1691 - Added amanda-release file to amandabackup home directory.
1692 - Installation message logging cleanup.
1693 * Thu Apr 27 2006 Paddy Sreenivasan <paddy at zmanda dot com> -
1694 - Removed dependency on tar version.
1695 - Moved log directory creation after backup user creation.
1696 * Wed Apr 19 2006 Chris Lee <cmlee at zmanda dot com> -
1697 - Added informative message to note the location of pre- and post-
1698 - install script logs files.
1699 * Mon Apr 17 2006 Chris Lee <cmlee at zmanda dot com> -
1700 - Reworked installation message logging and reporting.
1701 * Fri Apr 14 2006 Chris Lee <cmlee at zmanda dot com> -
1702 - Changed behavior for creating required localhost entries in the
1703 - amandahosts file to check for these entries even when the file
1704 - already exists.
1705 * Wed Apr 12 2006 Chris Lee <cmlee at zmanda dot com> -
1706 - Removed pre-install check for "disk" group.  This group should exist
1707 - by default on almost all modern distributions.
1708 * Tue Apr 11 2006 Chris Lee <cmlee at zmanda dot com> -
1709 - Added amandahosts entry for "localhost" without domain.
1710 * Fri Apr 07 2006 Chris Lee <cmlee at zmanda dot com> -
1711 - Changed default entries in .amandahosts to use "localdomain" instead
1712 - of "localnet".
1713 - Updated amanda_version and release.
1714 * Mon Apr 03 2006 Chris Lee <cmlee at zmanda dot com> -
1715 - Added example amanda.conf to files.
1716 * Thu Mar 16 2006 Chris Lee <cmlee at zmanda dot com> -
1717 - Corrected an issue with pre-install scripts wrt bug #218.
1718 - Corrected an issue with post-install scripts and added testing .profile 
1719 - in amandabackup's home directory for setting environment variables wrt
1720 - bug #220.
1721 * Mon Mar 13 2006 Chris Lee <cmlee at zmanda dot com> -
1722 - Corrected a syntactical error with setting ownership of amandates file
1723 - wrt bug #216.
1724 * Wed Mar 08 2006 Chris Lee <cmlee at zmanda dot com> -
1725 - Added pre-install scripts to verify proper ownership of
1726 - amandabackup home directory.
1727 * Thu Feb 2 2006 Paddy Sreenivasan <paddy at zmanda dot com> -
1728 - Require xinetd. Require termcap and initscripts for Fedora and Redhat.
1729 * Mon Jan 09 2006 Chris Lee <cmlee at zmanda dot com> -
1730 - Pre/post install scripts updated:
1731 - o Resolved an issue where an empty amandates file was installed
1732 -   even if the file already existed on the system.
1733 - o If .amandahosts does not exist a default is now created.
1734 - The Amanda user account has been changed to 'amandabackup' for
1735 - additional security.
1736 * Tue Jan 03 2006 Paddy Sreenivasan <paddy at zmanda dot com> -
1737 - Removed amandates from files list.
1738 * Thu Dec 29 2005 Chris Lee <cmlee at zmanda dot com> -
1739 - Corrected dependency for awk to "/bin/awk".
1740 * Thu Dec 29 2005 Kevin Till <ktill at zmanda dot com> -
1741 - add man pages for amcrypt and amaespipe
1742 * Thu Dec 29 2005 Chris Lee <cmlee at zmanda dot com> -
1743 - Updated dependancy info to depend on tar >= 1.15.
1744 - Included dependancies from top-level package in backup_client and
1745 - backup_server packages.
1746 - Reorganized files lists for readability (alphabetically).
1747 - Updated backup_client files list to include some missing files per
1748 - bug #129.
1749 - Updated pre- and post-install to handle potential issue when
1750 - /var/log/amanda exists and is a file rather than a directory.
1751 - Corrected permissions for /var/log/amanda in pre-install scripts
1752 - per bug #78 and 13 December change.
1753 * Thu Dec 22 2005 Paddy Sreenivasan <paddy at zmanda dot com> -
1754 - Added amaespipe and amcrypt
1755 - Added sles9 build definitions
1756 * Tue Dec 13 2005 Chris Lee <cmlee at zmanda dot com> -
1757 - Changed permissions for /var/log/amanda, removing set group id bit.
1758 - Added /etc/amandates to backup_client package.
1759 * Thu Dec 08 2005 Chris Lee <cmlee at zmanda dot com> -
1760 - Corrected an issue with detection of existing 'amanda' user account.
1761 - Corrected ownership of setuid executables per Bug #66.
1762 - Moved the gnutar and noop files to the backup_client package (where
1763 - they sould be).
1764 - Removed amqde from files list.
1765 - Added logging features to pre- and post-install scripts.
1766 * Wed Dec 07 2005 Chris Lee <cmlee at zmanda dot com> -
1767 - Changed a number of directory and file permissions from amanda:root
1768 - to amanda:disk in response to Bug #57.
1769 * Fri Dec 02 2005 Chris Lee <cmlee at zmanda dot com> -
1770 - Corrected SYSCONFDIR path definition.  Closes Bug #58.
1771 * Mon Nov 28 2005 Chris Lee <cmlee at zmanda dot com> -
1772 - Really fixed user creation preinstall scripts.
1773 * Wed Nov 23 2005 Paddy Sreenivasan <paddy at zmanda dot com> -
1774 - Updated package description.
1775 - Changed Group for packages.
1776 * Tue Nov 22 2005 Chris Lee <cmlee at zmanda dot com> -
1777 - Corrected dependancy packaging issue with amanda libraries.
1778 - Fixed creation of amanda user on systems which it does not exist.
1779 - Corrected Group definition for SuSE.
1780 - Updated descriptions to include amanda-libs package.
1781 - Updated release number to 2.
1782 * Tue Nov 08 2005 Chris Lee <cmlee at zmanda dot com> -
1783 - Permissions changes: now using user=amanda, group=disk
1784 * Sun Oct 30 2005 Chris Lee <cmlee at zmanda dot com> -
1785 - Parameters to configure options --with-user and --with-group changed
1786 - such that when test_build is set to '1' the username of the user who
1787 - runs rpmbuild is used for both values.  If test_build is set to '0'
1788 - then root is used for both values.
1789 - The release field was also changed to automatically reflect the
1790 - distribution and distribution release version for which the RPM was
1791 - built.
1792 * Tue Oct 18 2005 Chris Lee <cmlee at zmanda dot com> - 
1793 - Initial RPM SPEC file created.
1794