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