## ## amanda.spec -- OpenPKG RPM Package Specification ## Copyright (c) 2000-2020 OpenPKG Project ## ## Permission to use, copy, modify, and distribute this software for ## any purpose with or without fee is hereby granted, provided that ## the above copyright notice and this permission notice appear in all ## copies. ## ## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ## SUCH DAMAGE. ## # package information Name: amanda Summary: The Advanced Maryland Automatic Network Disk Archiver URL: http://www.amanda.org/ Vendor: University of Maryland at College Park Packager: OpenPKG Project Distribution: OpenPKG Community Class: PLUS Group: System License: BSD-style Version: 3.3.7p1 Release: 20150217 # package options %option with_server no %option with_port_range yes %option with_config default %option with_tape_srv default %option with_index_srv default %option with_tape_dev default # list of sources Source0: http://download.sourceforge.net/amanda/amanda-%{version}.tar.gz Source1: amanda.conf Source2: amanda.disklist Source3: xinetd.amanda Source4: xinetd.amandaidx Source5: xinetd.amidxtape # build information BuildPreReq: OpenPKG, openpkg >= 20160101, tar, make, gcc, grep PreReq: OpenPKG, openpkg >= 20160101, tar, xinetd, grep %description AMANDA, the Advanced Maryland Automatic Network Disk Archiver, is a backup system that allows the administrator of a LAN to set up a single master backup server to back up multiple hosts to a single large capacity tape drive. AMANDA uses native dump and/or GNU tar facilities and can back up a large number of workstations running multiple versions of Unix. %track prog amanda = { version = %{version} url = http://www.amanda.org/download.php regex = amanda-(\d+\.\d+\.\d+(p\d+)?)\.tar\.gz } %prep %setup -q # patch /etc/amandates problem %{l_shtool} subst -s \ -e 's;/etc/amandates;%{l_prefix}/etc/amanda/amandates;g' \ client-src/amandates.h # relocate .amandahosts to %{l_prefix}/etc/amanda %{l_shtool} subst -s \ -e 's;pwptr->pw_dir, "/.amandahosts";"%{l_prefix}/etc/amanda", "/.amandahosts";g' \ common-src/security.c # replace grep -E %{l_shtool} subst -s \ -e 's;\(ac_cv_prog_egrep=.*\)grep \-E\(.*\);\1egrep\2;g' \ configure acinclude.m4 config/libtool.m4i # replace hard-coded chown=root %{l_shtool} subst -s \ -e 's;chown=root;;g' \ client-src/Makefile.in \ application-src/Makefile.in %build # configure package CC="%{l_cc}" \ CFLAGS="%{l_cflags -O}" \ CPPFLAGS="%{l_cppflags}" \ LDFLAGS="%{l_ldflags} %{l_fsl_ldflags}" \ LIBS="%{l_fsl_libs}" \ ./configure \ --prefix=%{l_prefix} \ --sysconfdir=%{l_prefix}/etc/amanda \ --libexecdir=%{l_prefix}/libexec \ --libdir=%{l_prefix}/lib/amanda \ --localstatedir=%{l_prefix}/var/amanda \ --includedir=%{l_prefix}/include/amanda \ --disable-installperms \ --enable-static \ --enable-shared \ --with-user=%{l_musr} \ --with-group=%{l_mgrp} \ --with-configdir=%{l_prefix}/etc/amanda \ --with-gnutar=%{l_prefix}/bin/tar \ --with-gnutar-listdir=%{l_prefix}/var/amanda/gnutar-lists \ %if "%{with_port_range}" == "yes" --with-portrange=50000,50090 \ --with-udpportrange=920,980 \ %endif %if "%{with_config}" != "default" --with-config=%{with_config} \ %endif %if "%{with_tape_srv}" != "default" --with-tape-server=%{with_tape_srv} \ %endif %if "%{with_tape_dev}" != "default" --with-tape-device=%{with_tape_dev} \ %endif %if "%{with_index_srv}" != "default" --with-index-server=%{with_index_srv} \ %endif %if "%{with_server}" == "yes" --with-server %else --without-server %endif # build package %{l_make} %{l_mflags} %install # perform standard installation procedure %{l_make} %{l_mflags} install \ DESTDIR=$RPM_BUILD_ROOT \ BINARY_OWNER="`%{l_shtool} echo -e %u`" \ SETUID_GROUP="`%{l_shtool} echo -e %u`" # create additional directories %{l_shtool} mkdir -f -p -m 755 \ $RPM_BUILD_ROOT%{l_prefix}/etc/amanda \ $RPM_BUILD_ROOT%{l_prefix}/etc/xinetd/xinetd.d \ $RPM_BUILD_ROOT%{l_prefix}/var/amanda/gnutar-lists \ $RPM_BUILD_ROOT%{l_prefix}/var/amanda/DailySet1 # create additional server-specific directories %if "%{with_server}" == "yes" %{l_shtool} mkdir -f -p -m 755 \ $RPM_BUILD_ROOT%{l_prefix}/etc/amanda \ $RPM_BUILD_ROOT%{l_prefix}/etc/amanda/DailySet1 \ $RPM_BUILD_ROOT%{l_prefix}/var/amanda/dumps \ $RPM_BUILD_ROOT%{l_prefix}/var/amanda/DailySet1/curinfo \ $RPM_BUILD_ROOT%{l_prefix}/var/amanda/DailySet1/index %endif # create empty files touch $RPM_BUILD_ROOT%{l_prefix}/etc/amanda/.amandahosts touch $RPM_BUILD_ROOT%{l_prefix}/etc/amanda/amandates touch $RPM_BUILD_ROOT%{l_prefix}/lib/amanda/exclude.gtar # install xinetd configuration files %{l_shtool} install -c -m 644 \ -e 's;@USER@;%{l_musr};g' \ -e 's;@GROUP@;%{l_mgrp};g' \ -e 's;@LIBDIR@;%{l_prefix}/libexec/amanda;g' \ %{SOURCE xinetd.amanda} \ $RPM_BUILD_ROOT%{l_prefix}/etc/xinetd/xinetd.d/amanda %if "%{with_server}" == "yes" %{l_shtool} install -c -m 644 \ -e 's;@USER@;%{l_musr};g' \ -e 's;@GROUP@;%{l_mgrp};g' \ -e 's;@LIBDIR@;%{l_prefix}/libexec/amanda;g' \ %{SOURCE xinetd.amandaidx} \ $RPM_BUILD_ROOT%{l_prefix}/etc/xinetd/xinetd.d/amandaidx %{l_shtool} install -c -m 644 \ -e 's;@USER@;%{l_musr};g' \ -e 's;@GROUP@;%{l_mgrp};g' \ -e 's;@LIBDIR@;%{l_prefix}/libexec/amanda;g' \ %{SOURCE xinetd.amidxtape} \ $RPM_BUILD_ROOT%{l_prefix}/etc/xinetd/xinetd.d/amidxtape %endif %if "%{with_server}" == "yes" # install example server configuration %{l_shtool} install -c -m 644 \ -e 's;@PREFIX@;%{l_prefix};g' \ %{SOURCE amanda.conf} \ $RPM_BUILD_ROOT%{l_prefix}/etc/amanda/DailySet1/ %{l_shtool} install -c -m 644 %{l_value -s -a} \ %{SOURCE amanda.disklist} \ $RPM_BUILD_ROOT%{l_prefix}/etc/amanda/DailySet1/disklist %endif # determine installation files %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \ %{l_files_std} \ '%config %{l_prefix}/etc/amanda/*' \ '%config(noreplace) %{l_prefix}/etc/xinetd/xinetd.d/*' \ '%attr(660,%{l_musr},%{l_mgrp}) %config(noreplace) %{l_prefix}/etc/amanda/.amandahosts' \ %if "%{with_server}" == "yes" '%attr(4711,%{l_susr},%{l_mgrp}) %{l_prefix}/sbin/amcheck' \ '%attr(4711,%{l_susr},%{l_mgrp}) %{l_prefix}/libexec/amanda/dumper' \ '%attr(4711,%{l_susr},%{l_mgrp}) %{l_prefix}/libexec/amanda/planner' \ %endif '%attr(4711,%{l_susr},%{l_mgrp}) %{l_prefix}/libexec/amanda/runtar' \ '%attr(4711,%{l_susr},%{l_mgrp}) %{l_prefix}/libexec/amanda/rundump' \ '%attr(4711,%{l_susr},%{l_mgrp}) %{l_prefix}/libexec/amanda/calcsize' \ '%attr(4711,%{l_susr},%{l_mgrp}) %{l_prefix}/libexec/amanda/killpgrp' \ '%attr(644,%{l_musr},%{l_mgrp}) %{l_prefix}/etc/amanda/amandates' \ '%attr(755,%{l_musr},%{l_mgrp}) %{l_prefix}/var/amanda/gnutar-lists' %files -f files %clean %post if [ $1 = 1 ]; then # add entries to /etc/services ( echo "amanda 10080/udp # AMANDA" echo "amandaidx 10082/tcp # AMANDA" echo "amidxtape 10083/tcp # AMANDA" ) | $RPM_INSTALL_PREFIX/lib/openpkg/rpmtool config \ -a -i "$RPM_INSTALL_PREFIX:amanda" /etc/services fi exit 0 %preun if [ $1 = 0 ]; then # remove entries from /etc/services $RPM_INSTALL_PREFIX/lib/openpkg/rpmtool config \ -r -i "$RPM_INSTALL_PREFIX:amanda" /etc/services fi exit 0