commit:     58fa7a04ac634c6c4f3df548dbcf9cd46638ebdc
Author:     Nowa Ammerlaan <nowa <AT> gentoo <DOT> org>
AuthorDate: Thu Sep 25 17:48:23 2025 +0000
Commit:     Nowa Ammerlaan <nowa <AT> gentoo <DOT> org>
CommitDate: Thu Sep 25 17:51:31 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=58fa7a04

app-backup/tsm: add use flag for gui support

- add gui flag that toggles pulling in components for the webui and
        the java desktop gui.
- add symlink for dmscad.lang for /etc protection of user
        customisation.
- do not install user space JBB components if the journal flag is
        disabled.

Thanks-to: Horst Prote <prote <AT> fmi.uni-stuttgart.de>
Signed-off-by: Nowa Ammerlaan <nowa <AT> gentoo.org>

 ...m-8.1.27.0-r1.ebuild => tsm-8.1.27.0-r2.ebuild} | 51 +++++++++++++++-------
 1 file changed, 35 insertions(+), 16 deletions(-)

diff --git a/app-backup/tsm/tsm-8.1.27.0-r1.ebuild 
b/app-backup/tsm/tsm-8.1.27.0-r2.ebuild
similarity index 89%
rename from app-backup/tsm/tsm-8.1.27.0-r1.ebuild
rename to app-backup/tsm/tsm-8.1.27.0-r2.ebuild
index 01dbce8f1877..e271a864e56a 100644
--- a/app-backup/tsm/tsm-8.1.27.0-r1.ebuild
+++ b/app-backup/tsm/tsm-8.1.27.0-r2.ebuild
@@ -5,7 +5,7 @@ EAPI=8
 
 MODULES_OPTIONAL_IUSE=journal
 MODULES_KERNEL_MAX=6.1
-inherit desktop linux-mod-r1 optfeature rpm toolchain-funcs pax-utils xdg
+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";
@@ -43,7 +43,7 @@ LICENSE="
 SLOT="0"
 KEYWORDS="~amd64" # ppc64 s390 -*
 
-IUSE="gpfs"
+IUSE="gpfs gui"
 # GPFS is not supported for journal-based backups on Linux
 REQUIRED_USE="journal? ( !gpfs )"
 
@@ -65,7 +65,7 @@ done
 
 BDEPEND="
        app-arch/xz-utils[extra-filters(+)]
-       media-gfx/imagemagick[png]
+       gui? ( media-gfx/imagemagick[png] )
 "
 DEPEND="
        acct-group/tsm
@@ -75,11 +75,9 @@ RDEPEND="
        dev-libs/expat
        dev-libs/openssl:0/3
        dev-libs/libxml2:2
-       media-libs/alsa-lib
        sys-apps/acl
        sys-fs/fuse:0
        sys-libs/zlib:0/1
-       x11-libs/libXft
        || (
                sys-libs/libxcrypt:0/1[compat]
                sys-libs/glibc:2.2[crypt(-)]
@@ -88,6 +86,11 @@ RDEPEND="
                app-shells/ksh
                app-shells/loksh
        ) )
+       gui? (
+               media-libs/alsa-lib
+               virtual/jre
+               x11-libs/libXft
+       )
 "
 
 src_unpack() {
@@ -121,6 +124,14 @@ src_unpack() {
                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
        rpmunpack "${S}/"*.rpm
@@ -157,7 +168,9 @@ src_install() {
        done
 
        # Don't bundle java
-       rm -r "${ED}/opt/tivoli/tsm/tdpvmware/common/jre" || die
+       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 .
@@ -244,18 +257,25 @@ src_install() {
        EOF
 
        # https://www.ibm.com/support/pages/apar/IT46420
-       insinto /opt/tivoli/tsm/client/ba/bin
+       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"
 
-       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
+       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' \
@@ -266,12 +286,13 @@ src_install() {
                -e '/LD_LIBRARY_PATH=/d' \
                -i "${ED}/opt/tivoli/tsm/client/ba/bin/"*.service || die
 
-       sed -e '/JAVA_HOME=/d' \
-               -i "${ED}/opt/tivoli/tsm/tdpvmware/common/scripts/webserver" || 
die
-
        # Overwrite with relative symlinks
        dosym ../../opt/tivoli/tsm/client/ba/bin/rc.dsmcad /etc/init.d/dsmcad
-       dosym ../../opt/tivoli/tsm/tdpvmware/common/scripts/webserver 
/etc/init.d/webserver
+       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
@@ -312,8 +333,6 @@ pkg_postinst() {
 
        linux-mod-r1_pkg_postinst
 
-       optfeature "using the Java GUI client" virtual/jre
-
        elog
        elog "To use the client as a regular user, add the user to the \"tsm\" 
group"
 }

Reply via email to