##
## tsmc.spec -- OpenPKG RPM Specification
## Copyright (c) 2000-2002 Cable & Wireless Deutschland GmbH
## Copyright (c) 2000-2002 The OpenPKG Project
## Copyright (c) 2000-2002 Ralf S. Engelschall
##
## 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 [EXP]
Group: Converter
License: Commercial
Version: 4.2.1
Release: 20020212
# list of sources
Source0: ftp://service.boulder.ibm.com/storage/tivoli-storage-management/maintenance/client/v4r2/Linux86/v421/IP22369.tar
Source1: ftp://service.boulder.ibm.com/storage/tivoli-storage-management/maintenance/client/v4r2/Solaris/v421/IP22372.tar.Z
Source2: redhat-7.1-libs.tar
Source3: dsmexec
Source4: dsm.sys
Source5: dsm.opt
Source6: rc.tsmc
# build information
Prefix: %{l_prefix}
BuildRoot: %{l_buildroot}
BuildPreReq: OpenPKG, openpkg >= 20020206, tar, gzip
PreReq: OpenPKG, openpkg >= 20020206
AutoReq: no
AutoReqProv: no
%description
This is a stripped down version of the client part of the Tivoli
Storage Manager (TSM) software. It can be used to backup Solaris,
Linux and FreeBSD machines to a TSM server.
%prep
%setup -q -T -c -n tsmc-%{version}
%build
# unpack the corresponding binary only
case "%{l_target}" in
*-freebsd* | *-linux* )
%{l_prefix}/bin/tar xf %{SOURCE IP22369.tar}
%{l_prefix}/bin/rpm2cpio TIVsm-BA.i386.rpm | cpio -idmu
( mkdir lib; cd lib; %{l_prefix}/bin/tar xf %{SOURCE redhat-7.1-libs.tar} )
mv opt/tivoli/tsm/client root
;;
*-solaris* )
%{l_prefix}/bin/gzip -d -c %{SOURCE IP22372.tar.Z} | %{l_prefix}/bin/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/lib \
$RPM_BUILD_ROOT%{l_prefix}/libexec/tsmc/en_US \
$RPM_BUILD_ROOT%{l_prefix}/var/tsmc
# install execution wrapper
l_binsh="/bin/sh"
case "%{l_target}" in
*-freebsd* ) l_binsh="/compat/linux/bin/sh" ;;
esac
%{l_shtool} install -c -m 755 \
-e "s;@l_binsh@;${l_binsh};g" \
-e 's;@l_prefix@;%{l_prefix};g' \
%{SOURCE dsmexec} $RPM_BUILD_ROOT%{l_prefix}/libexec/tsmc/
# install binaries
for f in dsmagent dsmc dsmcad dsmstat dsmtca; do
%{l_shtool} install -c -m 755 \
root/ba/bin/$f \
$RPM_BUILD_ROOT%{l_prefix}/libexec/tsmc/
case "%{l_target}" 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/DDsmResources.java >/dev/null 2>&1 || true
rm -f $RPM_BUILD_ROOT%{l_prefix}/libexec/tsmc/en_US/wchelp.htl >/dev/null 2>&1 || true
rm -f $RPM_BUILD_ROOT%{l_prefix}/libexec/tsmc/en_US/*.tif >/dev/null 2>&1 || true
# install required shared libraries
case "%{l_target}" in
*-freebsd* )
%{l_shtool} install -c -m 755 \
lib/* $RPM_BUILD_ROOT%{l_prefix}/libexec/tsmc/lib/
;;
esac
# install default configuration
%{l_shtool} install -c -m 755 \
-e 's;@l_prefix@;%{l_prefix};g' \
%{SOURCE dsm.opt} %{SOURCE dsm.sys} \
$RPM_BUILD_ROOT%{l_prefix}/libexec/tsmc/
ln $RPM_BUILD_ROOT%{l_prefix}/libexec/tsmc/dsm.sys \
$RPM_BUILD_ROOT%{l_prefix}/etc/tsmc/dsm.sys
ln $RPM_BUILD_ROOT%{l_prefix}/libexec/tsmc/dsm.opt \
$RPM_BUILD_ROOT%{l_prefix}/etc/tsmc/dsm.opt
# install run-command script
%{l_shtool} install -c -m 755 \
-e 's;@l_prefix@;%{l_prefix};g' \
-e 's;@l_musr@;%{l_musr};g' \
-e 's;@l_mgrp@;%{l_mgrp};g' \
%{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,root,%{l_mgrp}) %{l_prefix}/bin/dsmtca'
%files -f files
%clean
rm -rf $RPM_BUILD_ROOT
%post
if [ $1 -eq 1 ]; then
case "%{l_target}" in
*-linux*)
echo "Please make sure you have the vendor libstdc++ 2.9 package installed:"
echo "- RedHat Linux 7.x: compat-libstdc++-6.2-2.9.0.16"
echo "- Debian GNU/Linux 2.2: libstdc++2.9-glibc2.1"
echo "The resulting library file has to be named libstdc++-libc6.1-1.so.2"
;;
esac
fi