Added new tsm client release

This commit is contained in:
layman 2020-02-20 21:59:16 +01:00
parent 9ac1fe2c59
commit f763516344
9 changed files with 343 additions and 0 deletions

9
app-backup/tsm/Manifest Normal file
View File

@ -0,0 +1,9 @@
AUX dsmc.conf.d 196 BLAKE2B e87b70a2580b33a2e9c18b25b98b0f8452ec9396a0bcd757286ef2362bb2707fad468397dad71689d63cf42b27e5e2d775fd42c33a4c78a3d41f8fc95754df5e SHA512 5697da5a820f328e80c78063be2216572b544e4195efbb0866d15f781be8d155aac257b3bb843e67d466b2c1b37efdc3922397cf49fdf5cc18f0c5c08808f634
AUX dsmc.init.d 718 BLAKE2B a1de3d6eab6e0ee94f9549a73f45323728911eff36c87b5d471046daa27052932a77bf70c66411ab01db228c276553ddf04e6c2b9bc6a574fafe026105443629 SHA512 01cf7775b0a7e3ad84cc2c35bd73ae3ce6a4fb1c1968da6cfe9d97a8804833970af32873f895181d7d2220b0787e96b67c4b5f8ff4b6d450ee3a5d92735a6f2c
AUX dsmc.service 184 BLAKE2B a6a14302b32cdfdd9d1460b2d686a9a828d1cdd3c19dc53f8f57b4febccdb389d12813e0cb6ec34d9e1914d85f19865d7d8e75d5ecdac101bb4108ba68f9c64a SHA512 b047251e3fb7d006315b0f069adac62bc3c7f6ccc835ab59a2975a3f206151de8b0cb6a8f414d0f41922a961378376d79d61e38cd7be2aa5743822f365f87bf6
AUX dsmcad.init.d-r1 531 BLAKE2B 840b6431f083df2da7f42d79a1b28a87ed3b90d497e54a165b98dec9466323d1ec8ffad894c5d165fd994a99e7a52ca22bb6b81597e93001f22be2af641da6a9 SHA512 b69166e9e004d81a7f43551e5f1189c3a545afc67e5029009e9693fbed20a247f922975fec695542f0a3afd7c0c5a4ee6c026678de4812b00488afc45699699a
AUX dsmcad.service 224 BLAKE2B cb84b8616daa3649b8b29c58aa91fffbb119dfd1e84810ed61564fd45380ac792c89c20da1f8296f617467c411605f86a5cc2190d2135be771348c1d58b7c56c SHA512 e3572098abf5b2831d10a3b649337b5c9f1cd9fda4ed58844408b6fe31fdc68a3bbc197eab227f9808bc9ab4b4a7488c766aaa472e801d88631b6b8ec398eb45
AUX tsm.logrotate 60 BLAKE2B bb367d3da53f8061d71e3753ab8c46595d5cf91485da920f032473a99d3241d22fdbe576cc99088c99e97c63d3f2af920d4602878830fb815a58dc8321d37a2a SHA512 2f412c61a21dbb2c69b2c12130ae12844787d998098de269da2b8a284c2ed86f7244c2854d7050f2a521b3fbe7239f1ec4339f3b434c67b9cd57980fe5de5a92
DIST 8.1.9.0-TIV-TSMBAC-LinuxX86.tar 545669120 BLAKE2B 8f8af95ae15ef5355a816417092dbea264726c7488b78efd8252e416a4674d6f5621af58c588dbd764dfd17937e16db076f515f16af107178ebde670a58cc4bb SHA512 16cca15cea4e14d2277bcf8eb25d47c69301a99785d380429f402eff4e47ca91aca3e6cb1860e83bad1cf2550788723241e5ad8cca240c6a1ebdc0d4060f3a68
EBUILD tsm-8.1.9.0.ebuild 7410 BLAKE2B 8deb1fba803adb7a66b60d0ee69df109aeacd620349cf329e8dcf9c1c3f2c04fe2c2677971303bbe896491ff7765b92b459b2927450408cc033427bc73f23701 SHA512 786d9804de1194406d8803a33508e1526b225309f6b6bd29f6791ca07296464cd555042af5af331de57d6dc620fc45641baf07625d4f6b5447d015383b965c5a
MISC metadata.xml 398 BLAKE2B fb4d250c3bf724349ac31d66b1c43e766d4ba9b001e88b47949c6fe188a629eb1b87321ef3391d2886e9b74daf235cff0139079fd6f72b7342119542438e30e6 SHA512 bd6ec11787dd6f2ff1a59e7e1027a01b80b22256530d35d6a2fb5b3398ee641b9c778f6a8c2555b7098a199bbb1eda1a5204be53509e5eb47399dbad83798547

View File

@ -0,0 +1,7 @@
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# Config file for /etc/init.d/tivoli
# See your TSM manual for valid ops
#DSMC_OPTS=""

View File

@ -0,0 +1,27 @@
#!/sbin/openrc-run
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
depend() {
use net
after dns
}
start() {
ebegin "Starting dsmc"
start-stop-daemon --start --background --nicelevel 15 \
--make-pidfile --pidfile /var/run/dsmc.pid \
--exec /opt/tivoli/tsm/client/ba/bin/dsmc sched ${DSMC_OPTS}
eend $?
}
stop() {
ebegin "Stopping dsmc"
# For whatever reason SIGTERM doesn't affect the dsmc process, but
# SIGHUP makes it exit cleanly
start-stop-daemon --stop \
--signal 1 \
--pidfile /var/run/dsmc.pid
eend $?
}

View File

@ -0,0 +1,10 @@
[Unit]
Description=Tivoli Storage Manager (TSM) - dsmc
After=network.target
[Service]
Nice=15
ExecStart=/opt/tivoli/tsm/client/ba/bin/dsmc sched
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1,25 @@
#!/sbin/openrc-run
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
command=/opt/tivoli/tsm/client/ba/bin/dsmcad
depend() {
use net
after dns dsmc
}
start() {
ebegin "Starting dsmcad"
start-stop-daemon --start --nicelevel 15 \
--exec ${command}
eend $?
}
stop() {
ebegin "Stopping dsmcad"
start-stop-daemon --stop \
--signal 1 \
--exec ${command}
eend $?
}

View File

@ -0,0 +1,12 @@
[Unit]
Description=Tivoli Storage Manager (TSM) - dsmcad
After=network.target dsmc.service
[Service]
Type=forking
Nice=15
ExecStart=/opt/tivoli/tsm/client/ba/bin/dsmcad
GuessMainPID=no
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1,4 @@
/var/log/tsm/*.log {
create 0660 root tsm
delaycompress
}

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>dilfridge@gentoo.org</email>
</maintainer>
<use>
<flag name="tsm_cit">IBM Tivoli Common Inventory Technology</flag>
<flag name="tsm_hw">Difference snapshot support for NetApp and N-Series file servers</flag>
</use>
</pkgmetadata>

View File

@ -0,0 +1,238 @@
# Copyright 1999-2018 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
inherit versionator multilib eutils readme.gentoo-r1 rpm systemd user pax-utils
DESCRIPTION="IBM Spectrum Protect (former Tivoli Storage Manager) Backup/Archive Client, API"
HOMEPAGE="https://www.ibm.com/us-en/marketplace/data-protection-and-recovery"
MY_PV_MAJOR=$(get_major_version)
MY_PV_MINOR=$(get_version_component_range 2)
MY_PV_TINY=$(get_version_component_range 3)
MY_PV_PATCH=$(get_version_component_range 4)
MY_PV_NODOTS="${MY_PV_MAJOR}${MY_PV_MINOR}${MY_PV_TINY}"
MY_PVR_ALLDOTS=${PV}
if [[ ${MY_PV_PATCH} == 0 ]]; then
MY_RELEASE_PATH=maintenance
else
MY_RELEASE_PATH=patches
fi
BASE_URI="ftp://ftp.software.ibm.com/storage/tivoli-storage-management/"
BASE_URI+="${MY_RELEASE_PATH}/client/v${MY_PV_MAJOR}r${MY_PV_MINOR}/"
BASE_URI+="Linux/LinuxX86/BA/v${MY_PV_NODOTS}/"
SRC_TAR="${MY_PVR_ALLDOTS}-TIV-TSMBAC-LinuxX86.tar"
SRC_URI="${BASE_URI}${SRC_TAR}"
RESTRICT="strip" # Breaks libPiIMG.so and libPiSNAP.so
LICENSE="Apache-1.1 Apache-2.0 JDOM BSD-2 CC-PD Boost-1.0 MIT CPL-1.0 HPND Exolab
dom4j EPL-1.0 FTL icu unicode IBM Info-ZIP LGPL-2 LGPL-2.1 openafs-krb5-a
ZLIB MPL-1.0 MPL-1.1 NPL-1.1 openssl OPENLDAP RSA public-domain W3C
|| ( BSD GPL-2+ ) gSOAP libpng tsm"
SLOT="0"
KEYWORDS="~amd64"
IUSE="acl java +tsm_cit +tsm_hw"
QA_PREBUILT="*"
# not available (yet?)
#MY_LANGS="cs:CS_CZ de:DE_DE es:ES_ES fr:FR_FR hu:HU_HU it:IT_IT ja:JA_JP
# ko:KO_KR pl:PL_PL pt-BR:PT_BR ru:RU_RU zh-CN:ZH_CN zh-TW:ZH_TW"
MY_LANG_PV="${MY_PVR_ALLDOTS}-"
for lang in ${MY_LANGS}; do
IUSE="${IUSE} l10n_${lang%:*}"
SRC_URI="${SRC_URI} l10n_${lang%:*}? ( \
${BASE_URI}TIVsm-msg.${lang#*:}.x86_64.rpm -> \
${MY_LANG_PV}TIVsm-msg.${lang#*:}.x86_64.rpm )"
done
unset lang
DEPEND=""
RDEPEND="
dev-libs/expat
dev-libs/libxml2
sys-fs/fuse:0
acl? ( sys-apps/acl )
java? ( >=virtual/jre-1.7 )
"
S="${WORKDIR}/bacli"
pkg_setup() {
enewgroup tsm
DOC_CONTENTS="
Note that you have to be root to be able to use the Tivoli Storage Manager
client. The dsmtca trusted agent binary does not exist anymore.
For information on how to give other users access, please see the following
URLs:
https://www.ibm.com/support/knowledgecenter/SSGSG7_7.1.8/client/c_cfg_nonadmin.html#c_macuninst_nonadmin
https://www.ibm.com/support/knowledgecenter/SSGSG7_7.1.8/client/c_secure_pwd.html#c_secure_pwd__sec_no_tca
"
}
src_unpack() {
local rpm rpms lang
mkdir bacli || die
cd bacli || die
unpack ${SRC_TAR}
cd "${S}"
for rpm in *.rpm; do
case ${rpm} in
TIVsm-APIcit.*|TIVsm-BAcit.*)
use tsm_cit && rpms="${rpms} ./${rpm}"
;;
TIVsm-BAhdw.*)
use tsm_hw && rpms="${rpms} ./${rpm}"
;;
TIVsm-JBB.*|*-filepath-*)
# "journal based backup" for all filesystems
# requires a kernel module.
# "Linux Filepath source code" available
# by request from vendor
;;
*)
rpms="${rpms} ./${rpm}"
;;
esac
done
for rpm in ${A}; do
case ${rpm} in
*.rpm)
rpms="${rpms} ${rpm}"
;;
esac
done
rpm_unpack ${rpms}
# Avoid strange error messages caused by read-only files
chmod -R u+w "${S}" || die
}
src_install(){
cp -a opt "${D}" || die
cp -a usr "${D}" || die
# The RPM files contain postinstall scripts which can be extracted
# e.g. using https://bugs.gentoo.org/attachment.cgi?id=234663 .
# Below we try to mimic the behaviour of these scripts.
# We don't deal with SELinux compliance (yet), though.
local RPM_INSTALL_PREFIX CLIENTDIR i
RPM_INSTALL_PREFIX=/opt
CLIENTDIR=$RPM_INSTALL_PREFIX/tivoli/tsm/client
# Create links for messages; this is spread over several postin scripts.
#for i in $(cd "${D}"${CLIENTDIR}/lang; ls -1d ??_??); do
# dosym ../../lang/${i} $CLIENTDIR/ba/bin/${i}
# dosym ../../lang/${i} $CLIENTDIR/api/bin64/${i}
#done
# Mimic TIVsm-API64 postinstall script
for i in libgpfs.so libdmapi.so; do
dosym ../..$CLIENTDIR/api/bin64/${i} /usr/lib64/${i}
done
# The TIVsm-BA postinstall script only does messages and ancient upgrades
# The gscrypt64 postinstall script only deals with s390[x] SELinux
# and the symlink for the iccs library which we handle in the loop below.
# Move stuff from /usr/local to /opt, #452332
mv "${D}"/usr/local/ibm "${D}"/opt/ || die
rmdir "${D}"/usr/local || die
# Mimic gskssl64 postinstall script
for i in sys p11 km ssl drld kicc ldap cms acmeidup valn dbfl iccs; do
dosym ../../opt/ibm/gsk8_64/lib64/libgsk8${i}_64.so \
/usr/lib64/libgsk8${i}_64.so
done
for i in capicmd ver; do
dosym ../../opt/ibm/gsk8_64/bin/gsk8${i}_64 /usr/bin/gsk${i}_64
done
# Done with the postinstall scripts as the RPMs contain them.
# Now on to some more Gentoo-specific installation.
[[ -d "${D}usr/lib" ]] && die "Using 32bit lib dir in 64bit only system"
# Avoid "QA Notice: Found an absolute symlink in a library directory"
local target
find "${D}"usr/lib* -lname '/*' | while read i; do
target=$(readlink "${i}")
rm -v "${i}" || die
dosym "../..${target}" "${i#${D}}"
done
keepdir /var/log/tsm
insinto /etc/logrotate.d
newins "${FILESDIR}/tsm.logrotate" tsm
keepdir /etc/tivoli
cp -a "${S}/opt/tivoli/tsm/client/ba/bin/dsm.sys.smp" "${D}/etc/tivoli/dsm.sys" || die
echo ' PasswordDir "/etc/tivoli/"' >> ${D}/etc/tivoli/dsm.sys
echo ' PasswordAccess generate' >> ${D}/etc/tivoli/dsm.sys
# Added the hostname to be more friendly, the admin will need to edit this file anyway
echo ' NodeName' `hostname` >> ${D}/etc/tivoli/dsm.sys
echo ' ErrorLogName "/var/log/tsm/dsmerror.log"' >> ${D}/etc/tivoli/dsm.sys
echo ' SchedLogName "/var/log/tsm/dsmsched.log"' >> ${D}/etc/tivoli/dsm.sys
dosym ../../../../../../etc/tivoli/dsm.sys /opt/tivoli/tsm/client/ba/bin/dsm.sys
cp -a "${S}/opt/tivoli/tsm/client/ba/bin/dsm.opt.smp" "${D}/etc/tivoli/dsm.opt"
dosym ../../../../../../etc/tivoli/dsm.opt /opt/tivoli/tsm/client/ba/bin/dsm.opt
# Setup the env
dodir /etc/env.d
ENV_FILE="${D}/etc/env.d/80tivoli"
echo 'DSM_CONFIG="/etc/tivoli/dsm.opt"' >> ${ENV_FILE}
echo 'DSM_DIR="/opt/tivoli/tsm/client/ba/bin"' >> ${ENV_FILE}
echo 'DSM_LOG="/var/log/tsm"' >> ${ENV_FILE}
echo 'ROOTPATH="/opt/tivoli/tsm/client/ba/bin"' >> ${ENV_FILE}
echo 'SEARCH_DIRS_MASK="/opt/tivoli/tsm/client/ba/bin"' > "${T}/80${PN}" || die
insinto "/etc/revdep-rebuild"
doins "${T}/80${PN}"
newconfd "${FILESDIR}/dsmc.conf.d" dsmc
newinitd "${FILESDIR}/dsmc.init.d" dsmc
newinitd "${FILESDIR}/dsmcad.init.d-r1" dsmcad
# Need this for hardened, otherwise a cryptic "connection to server lost" message appears
pax-mark -m "${D}/opt/tivoli/tsm/client/ba/bin/dsmc"
systemd_dounit "${FILESDIR}/dsmc.service"
systemd_dounit "${FILESDIR}/dsmcad.service"
readme.gentoo_create_doc
}
pkg_postinst() {
local i dirs
for i in /var/log/tsm/dsm{error,sched,j,webcl}.log; do
if [[ ! -e $i ]]; then
touch $i || die
chown :tsm $i || die
chmod 0660 $i || die
fi
done
# Bug #375041: the log directory itself should not be world writable.
# Have to do this in postinst due to bug #141619
chown root:tsm /var/log/tsm || die
chmod 0750 /var/log/tsm || die
# Bug 508052: directories used to be too restrictive, have to widen perms.
dirs=( /opt/tivoli $(find /opt/tivoli/tsm -type d) )
chown root:root "${dirs[@]}" || die
chmod 0755 "${dirs[@]}" || die
FORCE_PRINT_ELOG=1
DISABLE_AUTOFORMATTING=1
readme.gentoo_print_elog
}