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