summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRenaud <c0bw3b@users.noreply.github.com>2022-02-19 19:48:16 +0100
committerGitHub <noreply@github.com>2022-02-19 19:48:16 +0100
commit91e2727c1648d76a029bf7af1de9d811000e1c07 (patch)
tree192d2fd6563213e073517d92cad8753a62175626
parentMerge pull request #152876 from NixOS/backport-151628-to-release-21.11 (diff)
parenttsm-client: 8.1.13.2 -> 8.1.13.3 (diff)
downloadnixpkgs-91e2727c1648d76a029bf7af1de9d811000e1c07.tar.gz
Merge pull request #150590 from Yarny0/tsm-client-2111
[21.11] tsm-client: 8.1.8.0 -> 8.1.13.3 (security update)
-rw-r--r--pkgs/tools/backup/tsm-client/default.nix64
1 files changed, 45 insertions, 19 deletions
diff --git a/pkgs/tools/backup/tsm-client/default.nix b/pkgs/tools/backup/tsm-client/default.nix
index e298751facab..74ffcd274b9e 100644
--- a/pkgs/tools/backup/tsm-client/default.nix
+++ b/pkgs/tools/backup/tsm-client/default.nix
@@ -4,7 +4,9 @@
, buildEnv
, fetchurl
, makeWrapper
+, openssl
, procps
+, rpmextract
, zlib
# optional packages that enable certain features
, acl ? null # EXT2/EXT3/XFS ACL support
@@ -18,7 +20,7 @@
# For an explanation of optional packages
# (features provided by them, version limits), see
-# https://www-01.ibm.com/support/docview.wss?uid=swg21052223#Version%208.1
+# https://www.ibm.com/support/pages/node/660813#Version%208.1
# IBM Tivoli Storage Manager Client uses a system-wide
@@ -40,21 +42,31 @@
# point to this derivations `/dsmi_dir` directory symlink.
# Other environment variables might be necessary,
# depending on local configuration or usage; see:
-# https://www.ibm.com/support/knowledgecenter/en/SSEQVQ_8.1.8/client/c_cfg_sapiunix.html
+# https://www.ibm.com/docs/en/spectrum-protect/8.1.13?topic=solaris-set-api-environment-variables
-# The newest version of TSM client should be discoverable
-# by going the the `downloadPage` (see `meta` below),
-# there to "Client Latest Downloads",
-# "IBM Spectrum Protect Client Downloads and READMEs",
-# then to "Linux x86_64 Ubuntu client" (as of 2019-07-15).
+# The newest version of TSM client should be discoverable by
+# going to the `downloadPage` (see `meta` below).
+# Find the "Backup-archive client" table on that page.
+# Look for "Download Documents" of the latest release.
+# Here, two links must be checked:
+# * "IBM Spectrum Protect Client ... Downloads and READMEs":
+# In the table at the page's bottom,
+# check the date of the "Linux x86_64 client"
+# * "IBM Spectrum Protect BA client ... interim fix downloads"
+# Look for the "Linux x86_64 client" rows
+# in the table # at the bottom of each page.
+# Follow the "HTTPS" link of the row with the latest date stamp.
+# In the directory listing to show up, pick the big `.tar` file.
+#
+# (as of 2021-12-18)
let
meta = {
- homepage = "https://www.ibm.com/us-en/marketplace/data-protection-and-recovery";
- downloadPage = "https://www-01.ibm.com/support/docview.wss?uid=swg21239415";
+ homepage = "https://www.ibm.com/products/data-protection-and-recovery";
+ downloadPage = "https://www.ibm.com/support/pages/ibm-spectrum-protect-downloads-latest-fix-packs-and-interim-fixes";
platforms = [ "x86_64-linux" ];
license = lib.licenses.unfree;
maintainers = [ lib.maintainers.yarny ];
@@ -74,19 +86,30 @@ let
'';
};
+ mkSrcUrl = version:
+ let
+ major = lib.versions.major version;
+ minor = lib.versions.minor version;
+ patch = lib.versions.patch version;
+ fixup = lib.lists.elemAt (lib.versions.splitVersion version) 3;
+ in
+ "https://public.dhe.ibm.com/storage/tivoli-storage-management/${if fixup=="0" then "maintenance" else "patches"}/client/v${major}r${minor}/Linux/LinuxX86/BA/v${major}${minor}${patch}/${version}-TIV-TSMBAC-LinuxX86.tar";
+
unwrapped = stdenv.mkDerivation rec {
name = "tsm-client-${version}-unwrapped";
- version = "8.1.8.0";
+ version = "8.1.13.3";
src = fetchurl {
- url = "ftp://public.dhe.ibm.com/storage/tivoli-storage-management/maintenance/client/v8r1/Linux/LinuxX86_DEB/BA/v818/${version}-TIV-TSMBAC-LinuxX86_DEB.tar";
- sha256 = "0c1d0jm0i7qjd314nhj2vj8fs7sncm1x2n4d6dg4049jniyvjhpk";
+ url = mkSrcUrl version;
+ sha256 = "1dwczf236drdaf4jcfzz5154vdwvxf5zraxhrhiddl6n80hnvbcd";
};
inherit meta;
nativeBuildInputs = [
autoPatchelfHook
+ rpmextract
];
buildInputs = [
+ openssl
stdenv.cc.cc
zlib
];
@@ -96,12 +119,15 @@ let
sourceRoot = ".";
postUnpack = ''
- for debfile in *.deb
- do
- ar -x "$debfile"
- tar --xz --extract --file=data.tar.xz
- rm data.tar.xz
- done
+ rpmextract TIVsm-API64.x86_64.rpm
+ rpmextract TIVsm-APIcit.x86_64.rpm
+ rpmextract TIVsm-BA.x86_64.rpm
+ rpmextract TIVsm-BAcit.x86_64.rpm
+ rpmextract TIVsm-BAhdw.x86_64.rpm
+ rpmextract TIVsm-JBB.x86_64.rpm
+ # use globbing so that version updates don't break the build:
+ rpmextract gskcrypt64-*.linux.x86_64.rpm
+ rpmextract gskssl64-*.linux.x86_64.rpm
'';
installPhase = ''
@@ -113,7 +139,7 @@ let
# Fix relative symlinks after `/usr` was moved up one level
preFixup = ''
- for link in $out/lib/* $out/bin/*
+ for link in $out/lib{,64}/* $out/bin/*
do
target=$(readlink "$link")
if [ "$(cut -b -6 <<< "$target")" != "../../" ]