##
## tsmc.spec -- OpenPKG RPM Specification
## Copyright (c) 2000-2004 The OpenPKG Project
## Copyright (c) 2000-2004 Ralf S. Engelschall
## Copyright (c) 2000-2004 Cable & Wireless
##
## 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: tsmc
Summary: Tivoli Storage Manager (TSM) Client
URL: http://www.tivoli.com/support/storage_mgr/clients.html
Vendor: Tivoli
Packager: The OpenPKG Project
Distribution: OpenPKG
Class: EVAL
Group: System
License: Commercial
Version: 5.1.6.2
Release: 20040429
# list of sources
Source0: ftp://service.boulder.ibm.com/storage/tivoli-storage-management/patches/client/v5r1/Linux/Linux86/v516/TIVsm-BA.i386.rpm
Source1: ftp://service.boulder.ibm.com/storage/tivoli-storage-management/patches/client/v5r1/Solaris/v516/IP22658_FIX9.tar.Z
Source2: dsmexec
Source3: dsm.sys
Source4: dsm.opt
Source5: rc.tsmc
%NoSource 0
%NoSource 1
# build information
Prefix: %{l_prefix}
BuildRoot: %{l_buildroot}
BuildPreReq: OpenPKG, openpkg >= 20040217
PreReq: OpenPKG, openpkg >= 20040217
AutoReq: no
AutoReqProv: no
%description
This is a stripped down version of the client part of the Tivoli
Storage Manager (TSM v5) software. It can be used to backup Solaris,
Linux and FreeBSD machines to a TSM server.
%track
prog tsmc:linux = {
comment = "rse: 22654 was 5.1.6.2"
version = 22654
url = ftp://service.boulder.ibm.com/storage/tivoli-storage-management/patches/client/v5r1/Linux/Linux86/
regex = (v5\d+)
url = ftp://service.boulder.ibm.com/storage/tivoli-storage-management/patches/client/v5r1/Linux/Linux86/__NEWVER__/
regex = IP([\d+_]+(_FIX\d+)?)\.README
}
prog tsmc:solaris = {
comment = "rse: 22658 was 5.1.6.2"
version = 22658_FIX9
url = ftp://service.boulder.ibm.com/storage/tivoli-storage-management/patches/client/v5r1/Solaris
regex = (v5\d+)
url = ftp://service.boulder.ibm.com/storage/tivoli-storage-management/patches/client/v5r1/Solaris/__NEWVER__/
regex = IP([\d+_]+(_FIX\d+)?)\.README
}
%prep
%setup -q -T -c
%build
# unpack the corresponding binary only
case "%{l_platform -t}" in
*-freebsd* | *-linux* )
%{l_rpm2cpio} %{SOURCE0} | cpio -idmu
mv opt/tivoli/tsm/client root
;;
*-sunos* )
%{l_gzip} -d -c %{SOURCE1} | %{l_tar} xf -
pkgtrans `pwd`/TIVsmCba.pkg `pwd` TIVsmCba
mv TIVsmCba/reloc root
;;
esac
%install
rm -rf $RPM_BUILD_ROOT
# create filesystem hiearchy
%{l_shtool} mkdir -f -p -m 755 \
$RPM_BUILD_ROOT%{l_prefix}/bin \
$RPM_BUILD_ROOT%{l_prefix}/etc/tsmc \
$RPM_BUILD_ROOT%{l_prefix}/etc/rc.d \
$RPM_BUILD_ROOT%{l_prefix}/libexec/tsmc \
$RPM_BUILD_ROOT%{l_prefix}/libexec/tsmc/en_US \
$RPM_BUILD_ROOT%{l_prefix}/var/tsmc
# install execution wrapper
%{l_shtool} install -c -m 755 %{l_value -s -a} \
%{SOURCE dsmexec} $RPM_BUILD_ROOT%{l_prefix}/libexec/tsmc/
# install binaries
for f in dsmadmc dsmagent dsmc dsmcad dsmtca ; do
file="root/ba/bin/$f"
if [ -f "root/admin/bin/$f" ]; then
file="root/admin/bin/$f"
fi
%{l_shtool} install -c -m 755 \
$file $RPM_BUILD_ROOT%{l_prefix}/libexec/tsmc/
case "%{l_platform -t}" in
*-freebsd* ) brandelf -t Linux $RPM_BUILD_ROOT%{l_prefix}/libexec/tsmc/$f ;;
esac
ln $RPM_BUILD_ROOT%{l_prefix}/libexec/tsmc/dsmexec \
$RPM_BUILD_ROOT%{l_prefix}/bin/$f
done
# install required NLS stuff
%{l_shtool} install -c -m 644 \
root/ba/bin/en_US/* \
$RPM_BUILD_ROOT%{l_prefix}/libexec/tsmc/en_US
rm -f $RPM_BUILD_ROOT%{l_prefix}/libexec/tsmc/en_US/wchelp.htl >/dev/null 2>&1 || true
# install default configuration
case "%{l_platform -t}" in
*-freebsd* ) l_resutil="1" ;;
* ) l_resutil="2" ;;
esac
%{l_shtool} install -c -m 755 \
-e "s;@resutil@;${l_resutil};g" %{l_value -s -a} \
%{SOURCE dsm.opt} %{SOURCE dsm.sys} \
$RPM_BUILD_ROOT%{l_prefix}/libexec/tsmc/
mv $RPM_BUILD_ROOT%{l_prefix}/libexec/tsmc/dsm.sys \
$RPM_BUILD_ROOT%{l_prefix}/etc/tsmc/dsm.sys
ln -s ../../etc/tsmc/dsm.sys \
$RPM_BUILD_ROOT%{l_prefix}/libexec/tsmc/
mv $RPM_BUILD_ROOT%{l_prefix}/libexec/tsmc/dsm.opt \
$RPM_BUILD_ROOT%{l_prefix}/etc/tsmc/dsm.opt
ln -s ../../etc/tsmc/dsm.opt \
$RPM_BUILD_ROOT%{l_prefix}/libexec/tsmc/
# install run-command script
%{l_shtool} install -c -m 755 %{l_value -s -a} \
%{SOURCE rc.tsmc} \
$RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
# determine installation files
%{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
%{l_files_std} \
'%config %{l_prefix}/etc/tsmc/*' \
'%attr(4755,%{l_susr},%{l_mgrp}) %{l_prefix}/libexec/tsmc/dsmtca'
%files -f files
%clean
rm -rf $RPM_BUILD_ROOT
%post
# after initial install, check requirements and make recommendations
if [ $1 -eq 1 ]; then
case "%{l_platform -t}" in
*-freebsd*)
if [ ! -f /compat/linux/bin/sh ]; then
( echo "The Linux ABI base system is not installed under /compat/linux/."
echo "Please install the FreeBSD port/package linux_base-6.1."
) | %{l_rpmtool} msg -b
fi
if [ ! -f /compat/linux/etc/mtab ]; then
( echo "TSM insists on an /etc/mtab in the Linux ABI base system. Please"
echo "create /compat/linux/etc/mtab with at least these lines:"
awk /dev/null`
[ ".$tsmc_active" = .yes ] && %{l_rc} tsmc restart
fi
exit 0
%preun
# before erase, stop service and remove log files
if [ $1 -eq 0 ]; then
%{l_rc} tsmc stop 2>/dev/null
rm -f $RPM_INSTALL_PREFIX/var/tsmc/*.log* >/dev/null 2>&1 || true
fi
exit 0