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