repo/gentoo:master commit in: app-backup/tsm/
"Nowa Ammerlaan" <[email protected]> Mon, 03 Aug 2026 14:02:45 +0000 (UTC)
| Newsgroups | gmane.linux.gentoo.cvs |
|---|---|
| Message-ID | <1785765757.51b43ab6bfe1513b9332a625310ac1da742708fc.nowa@gentoo> |
commit: 51b43ab6bfe1513b9332a625310ac1da742708fc
Author: Nowa Ammerlaan <nowa <AT> gentoo <DOT> org>
AuthorDate: Mon Aug 3 14:02:22 2026 +0000
Commit: Nowa Ammerlaan <nowa <AT> gentoo <DOT> org>
CommitDate: Mon Aug 3 14:02:37 2026 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=51b43ab6
app-backup/tsm: add 8.2.2.0
Signed-off-by: Nowa Ammerlaan <nowa <AT> gentoo.org>
app-backup/tsm/Manifest | 6 +
app-backup/tsm/tsm-8.2.2.0.ebuild | 364 ++++++++++++++++++++++++++++++++++++++
2 files changed, 370 insertions(+)
diff --git a/app-backup/tsm/Manifest b/app-backup/tsm/Manifest
index 166f15f79359..4c94fe24c9ec 100644
--- a/app-backup/tsm/Manifest
+++ b/app-backup/tsm/Manifest
@@ -16,3 +16,9 @@ DIST 8.2.1.0-TIV-TSMBAC-LinuxS390.tar 534667510 BLAKE2B 83d027171b97bd00e1f886e6
DIST 8.2.1.0-TIV-TSMBAC-LinuxX86.tar 633296192 BLAKE2B d51f36cdacf8391abd8ab32624356b6405343aa3e5629e73919f1957bc988c7207ab6ddf656c1a23569099a9896cfa4567fb927b9ee87d51d4412e5c8033dfc0 SHA512 1e59b8b24efc23ffa154ac06b120e9c088a132a31e0252edbb81ff0cba3635534c4278b1653611721ebd8404753cd6924bbab3f3fa22239d4061373af8961db4
DIST 8.2.1.0-TIV-TSMHSM-LinuxPLEGPFS.tar 578225886 BLAKE2B de51bf747b35c1f95901b9ff95f32b7fa388c94cc2ce730db6bf94cc9453620a8bdec209bb362ae5808a2f048763456320d00b124b6784bd7cf2a8d57657a692 SHA512 df5b5996ed933e50c29fc901692bf85f70db65cfb76a78e8a44a9959920e1a9eca40fdbe55a225f9e640d748cb7d2a3af2c36e3074ee7d5663d14ed827fbb924
DIST 8.2.1.0-TIV-TSMHSM-LinuxX86GPFS.tar 706597852 BLAKE2B a10850f7cddf058fd995500753f3d69c08c6a5eec9004043e28bc78c4dffc75e248b54158a71996144046cba2b0180e61478b80717b6d01d89d0e13b363c0b3e SHA512 27aa31511e4cd969ee0eaf052b583a0c63ec484d53eb5654c05bed4ce63ee3e4d78ada0733451680b8625ecafa4a614679c9a2a8cf6e0a38c0dfbac6b58e5b4e
+DIST 8.2.2.0-TIV-TSMBAC-LinuxPLE.tar 565012480 BLAKE2B 4c214833a3ff6155e4c9ae31550fe62aa9ff723998d1ca3f6b93de879b3f0bfe6b585f7c4b90b9e90bfb235ecd78a56cdca2cf7ddaf50e5631866b7639308f4b SHA512 01c917a55a2c40733e0ca226f0576b4e9fec936ca3e95e9f1d85d870ca64af8e246f165ee7c2beed65105849bdbbc5dfafc562439980373d22c494394b2e5f9a
+DIST 8.2.2.0-TIV-TSMBAC-LinuxPPC.tar 68966400 BLAKE2B 51a914f1e1bcc0ef0a2c5a5d0bd0d9d832db834e0ff41a58bc06ebf1b68b89ea8229792222af2c4428f5768ee7cf6119dc5ac3ba85670a6b33611e2c5c57e2f5 SHA512 f7e8781a6077565614ecea075995f9515f144b4395ce27d855124e22f50f6bf5e3213807523a2205dc099cf125d43e6aab8c3e63df8bd470517bb66154ccf6eb
+DIST 8.2.2.0-TIV-TSMBAC-LinuxS390.tar 561233920 BLAKE2B 7a490a7401fa669d71822653e812b8e1e7c0ce7d205b90c5c0c42299cd89342ab73d82df5b58988882fc45efe2f715814e5df3dda51d2c5e9035e0f2a2192da4 SHA512 35ff1b48a45561e4157e1623ac8db4325bf8f95bf9f759174500d3e3c7bf835e3c2cfeb92e8b08c96c73aa6685084ec6fd59a05adaef367397e7c4c281838199
+DIST 8.2.2.0-TIV-TSMBAC-LinuxX86.tar 656312320 BLAKE2B 812d026a49a4e3f3c929e9db6ffb7f181bb1e9f5e7810c7275ec1d2bfe2775479adcae01d43baf3443a1e13e2289b4fb2c3487a366f3e1ed611263624c3f537b SHA512 70ad082f70f920326637d48a2070d7079c1c3babcfb67ed7c0756addd1208377de652f05844eb6c19a292d0a062d82a0d75933df82553aa06d7e8bad85959b50
+DIST 8.2.2.0-TIV-TSMHSM-LinuxPLEGPFS.tar 602583040 BLAKE2B 20fa5d710f125cf3f8eb1fbc90041c7377dc55f107116be87760e377e72e017cf1c73753a810b7c03d69bdccd599767cd6566eef329feec528f1fa0040018962 SHA512 2a70ac823a6d5f6bb9eb184c95e7d94b458708badc2d5d92bcff54dc547f9f0812a0875f582b088d7f53fed2c474f3ff91e7fb0227e30bd6f4d22613c50ca865
+DIST 8.2.2.0-TIV-TSMHSM-LinuxX86GPFS.tar 778280960 BLAKE2B d922cf51cee7b04c55d1a79aac7c293dc74003d502b9c6d4a9efda8eae13464a53bf43a2fe89279148d2aa061470bd67373be47ebd7ff308a92d3cdacd873cea SHA512 eaf6cfb59a557f2d87ca7eca48af4cdbf99bb18d9d218475bda6c3c21f3a842ccbae4bb4de39e46e293f696629f9e93b20c6799f6dcacf65e2279a8812de9bbe
diff --git a/app-backup/tsm/tsm-8.2.2.0.ebuild b/app-backup/tsm/tsm-8.2.2.0.ebuild
new file mode 100644
index 000000000000..736a2dabed28
--- /dev/null
+++ b/app-backup/tsm/tsm-8.2.2.0.ebuild
@@ -0,0 +1,364 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+RPM_COMPRESS_TYPE=bzip2,lzma,xz,zstd
+MODULES_OPTIONAL_IUSE=journal
+MODULES_KERNEL_MAX=6.1
+inherit desktop linux-mod-r1 rpm toolchain-funcs pax-utils xdg
+
+DESCRIPTION="IBM Storage Protect (former Tivoli Storage Manager) Backup/Archive Client, API"
+HOMEPAGE="https://www.ibm.com/products/storage-protect"
+
+BASE_URI="https://public.dhe.ibm.com/storage/tivoli-storage-management/"
+if [[ $(ver_cut 4) == 0 ]]; then
+ BASE_URI+="maintenance/client/v$(ver_cut 1)r$(ver_cut 2)/Linux/"
+else
+ BASE_URI+="patches/client/v$(ver_cut 1)r$(ver_cut 2)/Linux/"
+fi
+
+SRC_URI="
+ amd64? (
+ !gpfs? ( ${BASE_URI}LinuxX86/BA/v$(ver_rs 1-3 '' $(ver_cut 1-3))/${PV}-TIV-TSMBAC-LinuxX86.tar )
+ gpfs? ( ${BASE_URI}LinuxX86/HSMGPFS/v$(ver_rs 1-3 '' $(ver_cut 1-3))/${PV}-TIV-TSMHSM-LinuxX86GPFS.tar )
+ )
+ ppc64? (
+ !gpfs? (
+ ${BASE_URI}LinuxPPC/v$(ver_rs 1-3 '' $(ver_cut 1-3))/${PV}-TIV-TSMBAC-LinuxPPC.tar
+ ${BASE_URI}LinuxPLE/BA/v$(ver_rs 1-3 '' $(ver_cut 1-3))/${PV}-TIV-TSMBAC-LinuxPLE.tar
+ )
+ gpfs? ( ${BASE_URI}LinuxPLE/HSMGPFS/v$(ver_rs 1-3 '' $(ver_cut 1-3))/${PV}-TIV-TSMHSM-LinuxPLEGPFS.tar )
+ )
+ s390? ( ${BASE_URI}LinuxzSeries/BA/v$(ver_rs 1-3 '' $(ver_cut 1-3))/${PV}-TIV-TSMBAC-LinuxS390.tar )
+"
+S="${WORKDIR}"
+
+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 gSOAP libpng tsm || ( BSD GPL-2+ )
+"
+
+SLOT="0"
+KEYWORDS="~amd64" # ppc64 s390 -*
+
+IUSE="gpfs gui"
+# GPFS is not supported for journal-based backups on Linux
+REQUIRED_USE="journal? ( !gpfs )"
+
+RESTRICT="strip bindist mirror" # Breaks libPiIMG.so and libPiSNAP.so
+QA_PREBUILT="/opt/*"
+PLOCALE_BACKUP="en_US"
+PLOCALES="
+ cs_CZ de_DE en_US es_ES fr_FR hu_HU it_IT ja_JP ko_KR pl_PL pt_BR
+ ru_RU zh_CN zh_TW
+"
+
+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
+"
+for lang in ${MY_LANGS}; do
+ IUSE+=" l10n_${lang%:*}"
+done
+
+BDEPEND="
+ app-arch/xz-utils[extra-filters(+)]
+ gui? ( media-gfx/imagemagick[png] )
+"
+DEPEND="
+ acct-group/tsm
+"
+RDEPEND="
+ acct-group/tsm
+ dev-libs/expat
+ dev-libs/json-c:0/5.1
+ >=dev-libs/openssl-3.3.0:0/3
+ dev-libs/libxml2:2
+ net-misc/curl[openssl]
+ sys-apps/acl
+ sys-fs/fuse:0
+ virtual/zlib:0/1
+ || (
+ sys-libs/libxcrypt:0/1[compat]
+ sys-libs/glibc:2.2[crypt(-)]
+ )
+ gpfs? ( || (
+ app-shells/ksh
+ app-shells/loksh
+ ) )
+ gui? (
+ media-libs/alsa-lib
+ virtual/jre
+ x11-libs/libXft
+ )
+"
+
+src_unpack() {
+ if use amd64; then
+ if use gpfs; then
+ unpack "${PV}-TIV-TSMHSM-LinuxX86GPFS.tar"
+ else
+ unpack "${PV}-TIV-TSMBAC-LinuxX86.tar"
+ fi
+ elif use ppc64; then
+ if [[ $(tc-endian) == big ]]; then
+ if use gpfs; then
+ die "GPFS not supported on big endian"
+ else
+ unpack "${PV}-TIV-TSMBAC-LinuxPPC.tar"
+ fi
+ else
+ if use gpfs; then
+ unpack "${PV}-TIV-TSMHSM-LinuxPLEGPFS.tar"
+ else
+ unpack "${PV}-TIV-TSMBAC-LinuxPLE.tar"
+ fi
+ fi
+ elif use s390; then
+ if use gpfs; then
+ die "GPFS not supported on s390"
+ else
+ unpack "${PV}-TIV-TSMBAC-LinuxS390.tar"
+ fi
+ else
+ die "Unsupported architecture"
+ fi
+
+ if ! use gui; then
+ rm -f TIVsm-WEBGUI.*.rpm || die
+ fi
+
+ if ! use journal; then
+ rm -f TIVsm-JBB.*.rpm || die
+ fi
+
+ mkdir rpms_unpacked || die
+ pushd rpms_unpacked >/dev/null || die
+ rpm_unpack ./../*.rpm
+ popd >/dev/null || die
+
+ use journal && unpack "${S}/TIVsm-filepath-source.tar.gz"
+}
+
+src_prepare() {
+ default
+ local lang
+ for lang in ${MY_LANGS}; do
+ if ! use l10n_${lang%:*}; then
+ find -type d -name "${lang#*:}" -exec rm -r {} + || die
+ fi
+ done
+}
+
+src_compile() {
+ local modlist=( filepath=:jbb_gpl )
+ local modargs=(
+ KDIR="${KV_OUT_DIR}" RELNUM=${PV}
+ # The usage of arch is non-standard here
+ $(usev amd64 ARCH=x86_64)
+ $(usev ppc64 ARCH=ppc64)
+ )
+ linux-mod-r1_src_compile
+}
+
+src_install() {
+ mv rpms_unpacked/* "${ED}" || die
+
+ # Don't bundle java
+ if [[ -e "${ED}/opt/tivoli/tsm/tdpvmware/common/jre" ]]; then
+ rm -r "${ED}/opt/tivoli/tsm/tdpvmware/common/jre" || die
+ fi
+
+ # 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.
+
+ # Mimic TIVsm-API64 postinstall script
+ for i in "${ED}/opt/tivoli/tsm/client/api/bin64/"*.so; do
+ dosym "../../opt/tivoli/tsm/client/api/bin64/$(basename "${i}")" \
+ "/usr/$(get_libdir)/$(basename "${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 "${ED}/usr/local/ibm" "${ED}/opt/" || die
+ rmdir "${ED}/usr/local" || die
+
+ # Mimic gskssl64 postinstall script
+ for i in "${ED}/opt/ibm/gsk8_64/lib64/"*.so; do
+ dosym "../../opt/ibm/gsk8_64/lib64/$(basename "${i}")" \
+ "/usr/$(get_libdir)/$(basename "${i}")"
+ done
+ for i in "${ED}/opt/ibm/gsk8_64/bin/"*; do
+ dosym "../../opt/ibm/gsk8_64/bin/$(basename "${i}")" \
+ "/usr/bin/$(basename "${i//8/}")"
+ done
+
+ # Done with the postinstall scripts as the RPMs contain them.
+ # Now on to some more Gentoo-specific installation.
+
+ rm -rf "${ED}/usr/lib/.build-id" &> /dev/null
+ if [[ -d "${ED}/usr/lib" ]]; then
+ rmdir "${ED}/usr/lib" || die "Using 32bit lib dir in 64bit only system"
+ fi
+
+ # Avoid "QA Notice: Found an absolute symlink in a library directory"
+ local target
+ find "${ED}"/usr/lib* -lname '/*' | while read i; do
+ target=$(readlink "${i}")
+ rm -v "${i}" || die
+ dosym "../..${target}" "${i#${ED}/}"
+ done
+
+ keepdir /var/log/tsm
+ insinto /etc/logrotate.d
+ newins "${FILESDIR}/tsm.logrotate" tsm
+
+ keepdir /etc/tivoli
+
+ cp -a "${ED}/opt/tivoli/tsm/client/ba/bin/dsm.sys.smp" "${ED}/etc/tivoli/dsm.sys" || die
+ echo ' PasswordDir "/etc/tivoli/"' >> "${ED}/etc/tivoli/dsm.sys"
+ echo ' PasswordAccess generate' >> "${ED}/etc/tivoli/dsm.sys"
+
+ # Added the hostname to be more friendly, the admin will need to edit this file anyway
+ echo ' NodeName' $(hostname) >> "${ED}/etc/tivoli/dsm.sys"
+ echo ' ErrorLogName "/var/log/tsm/dsmerror.log"' >> "${ED}/etc/tivoli/dsm.sys"
+ echo ' SchedLogName "/var/log/tsm/dsmsched.log"' >> "${ED}/etc/tivoli/dsm.sys"
+ dosym ../../../../../../etc/tivoli/dsm.sys /opt/tivoli/tsm/client/ba/bin/dsm.sys
+
+ cp -a "${ED}/opt/tivoli/tsm/client/ba/bin/dsm.opt.smp" "${ED}/etc/tivoli/dsm.opt" || die
+ dosym ../../../../../../etc/tivoli/dsm.opt /opt/tivoli/tsm/client/ba/bin/dsm.opt
+
+ if use journal; then
+ touch "${ED}/etc/tivoli/tsmjbbd.ini" || die
+ dosym ../../../../../../etc/tivoli/tsmjbbd.ini /opt/tivoli/tsm/client/ba/bin/tsmjbbd.ini
+ fi
+
+ chown -R root:tsm "${ED}/etc/tivoli" || die
+ chmod -R 0660 "${ED}/etc/tivoli/"* || die
+
+ # Setup the env
+ newenvd - 80tivoli <<-EOF
+ DSM_CONFIG="/etc/tivoli/dsm.opt"
+ DSM_DIR="/opt/tivoli/tsm/client/ba/bin"
+ DSM_LOG="/var/log/tsm"
+ # ROOTPATH="/opt/tivoli/tsm/client/ba/bin"
+ EOF
+
+ insinto /etc/revdep-rebuild
+ newins - 80${PN} <<-EOF
+ SEARCH_DIRS_MASK="/opt/tivoli/tsm/client/ba/bin"
+ EOF
+
+ # https://www.ibm.com/support/pages/apar/IT46420
+ insinto /etc/tivoli
+ newins - dsmcad.lang <<-EOF
+ LANG=en_US
+ LC_ALL=en_US
+ EOF
+ dosym ../../../../../../etc/tivoli/dsmcad.lang /opt/tivoli/tsm/client/ba/bin/dsmcad.lang
+
+ # Need this for hardened, otherwise a cryptic "connection to server lost" message appears
+ pax-mark -m "${ED}/opt/tivoli/tsm/client/ba/bin/dsmc"
+
+ if use gui; then
+ magick "${ED}/opt/tivoli/tsm/client/ba/bin/favicon.ico" "${T}/ibm.png" || die
+ doicon -s 16 "${T}/ibm.png"
+ make_desktop_entry dsmj "IBM Storage Protect" ibm System
+
+ # Respect our java setting
+ sed -e '/JAVA_HOME=/d' \
+ -i "${ED}/opt/tivoli/tsm/tdpvmware/common/scripts/webserver" || die
+ fi
+
+ # Ensure the services can start on Gentoo, respect our java setting
+ sed -e 's/Ubuntu/Gentoo/g' \
+ -i "${ED}/opt/tivoli/tsm/client/ba/bin/rc."* || die
+ sed -e 's/DSM_LOG=\/opt\/tivoli\/tsm\/client\/ba\/bin/DSM_LOG=\/var\/log\/tsm/g' \
+ -e '/JAVA_HOME=/d' \
+ -e '/PATH=/d' \
+ -e '/LD_LIBRARY_PATH=/d' \
+ -i "${ED}/opt/tivoli/tsm/client/ba/bin/"*.service || die
+
+ # Overwrite with relative symlinks
+ dosym ../../opt/tivoli/tsm/client/ba/bin/rc.dsmcad /etc/init.d/dsmcad
+ if use gui; then
+ dosym ../../opt/tivoli/tsm/tdpvmware/common/scripts/webserver /etc/init.d/webserver
+ else
+ rm -f "${ED}/etc/init.d/webserver" || die
+ fi
+ if use journal; then
+ dosym ../../opt/tivoli/tsm/client/ba/bin/rc.tsmjbb /etc/init.d/tsmjbbd
+ else
+ rm -f "${ED}/etc/init.d/tsmjbbd" || die
+ fi
+
+ dosym ../../../../opt/tivoli/tsm/client/ba/bin/dsmcad.service /usr/lib/systemd/system/dsmcad.service
+ if use journal; then
+ dosym ../../../../opt/tivoli/tsm/client/ba/bin/tsmjbbd.service /usr/lib/systemd/system/tsmjbbd.service
+ else
+ rm -f "${ED}/usr/lib/systemd/system/tsmjbbd.service" || die
+ fi
+
+ # Unbundle ssl
+ rm "${ED}/opt/tivoli/tsm/client/api/bin64/libcrypto.so.3" || die
+ dosym ../../../../../../usr/$(get_libdir)/libcrypto.so.3 \
+ /opt/tivoli/tsm/client/api/bin64/libcrypto.so.3
+ rm "${ED}/opt/tivoli/tsm/client/api/bin64/libssl.so.3" || die
+ dosym ../../../../../../usr/$(get_libdir)/libssl.so.3 \
+ /opt/tivoli/tsm/client/api/bin64/libssl.so.3
+ if ! use gpfs; then
+ rm "${ED}/opt/tivoli/tsm/client/ba/bin/plugins/netappmgm/libcrypto.so.3" || die
+ dosym /../../../../../../../../usr/$(get_libdir)/libcrypto.so.3 \
+ /opt/tivoli/tsm/client/ba/bin/plugins/netappmgm/libcrypto.so.3
+ rm "${ED}/opt/tivoli/tsm/client/ba/bin/plugins/netappmgm/libssl.so.3" || die
+ dosym /../../../../../../../../usr/$(get_libdir)/libssl.so.3 \
+ /opt/tivoli/tsm/client/ba/bin/plugins/netappmgm/libssl.so.3
+ # Unbundle curl
+ rm "${ED}/opt/tivoli/tsm/client/ba/bin/plugins/netappmgm/libcurl.so" || die
+ dosym /../../../../../../../../usr/$(get_libdir)/libcurl.so \
+ /opt/tivoli/tsm/client/ba/bin/plugins/netappmgm/libcurl.so
+ # Unbundle json-c
+ rm "${ED}/opt/tivoli/tsm/client/ba/bin/plugins/netappmgm/libjson-c.so" || die
+ dosym /../../../../../../../../usr/$(get_libdir)/libjson-c.so \
+ /opt/tivoli/tsm/client/ba/bin/plugins/netappmgm/libjson-c.so
+ fi
+
+ linux-mod-r1_src_install
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+
+ local i dirs
+ for i in "${EROOT}/var/log/tsm/dsm"{error,instr,j,sched,webcl}.log; do
+ if [[ ! -e ${i} ]]; then
+ touch ${i} || die
+ chown root: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 "${EROOT}/var/log/tsm" || die
+ chmod 0750 "${EROOT}/var/log/tsm" || die
+
+ # Bug 508052: directories used to be too restrictive, have to widen perms.
+ dirs=( "${EROOT}/opt/tivoli" $(find "${EROOT}/opt/tivoli/tsm" -type d) )
+ chown root:root "${dirs[@]}" || die
+ chmod 0755 "${dirs[@]}" || die
+
+ linux-mod-r1_pkg_postinst
+
+ elog
+ elog "To use the client as a regular user, add the user to the \"tsm\" group"
+}