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