about summary refs log tree commit diff
path: root/pkgs/tools
diff options
context:
space:
mode:
authorFrederik Rietdijk <fridh@fridh.nl>2019-07-20 09:21:59 +0200
committerFrederik Rietdijk <fridh@fridh.nl>2019-07-20 09:21:59 +0200
commitbe25210e89f507a4be8ba1daab9599d32312326f (patch)
tree1c41dd1883fa6a9ec475c4857895dd671e869294 /pkgs/tools
parent214d73a46b12af38d87caec894e595e6eb83013b (diff)
parent3b24d6e187f6c59cd33003aeeea54cdadc16f180 (diff)
downloadnixlib-be25210e89f507a4be8ba1daab9599d32312326f.tar
nixlib-be25210e89f507a4be8ba1daab9599d32312326f.tar.gz
nixlib-be25210e89f507a4be8ba1daab9599d32312326f.tar.bz2
nixlib-be25210e89f507a4be8ba1daab9599d32312326f.tar.lz
nixlib-be25210e89f507a4be8ba1daab9599d32312326f.tar.xz
nixlib-be25210e89f507a4be8ba1daab9599d32312326f.tar.zst
nixlib-be25210e89f507a4be8ba1daab9599d32312326f.zip
Merge staging-next into staging
Diffstat (limited to 'pkgs/tools')
-rw-r--r--pkgs/tools/X11/primus/default.nix2
-rw-r--r--pkgs/tools/backup/tsm-client/default.nix165
-rw-r--r--pkgs/tools/misc/html-proofer/Gemfile.lock4
-rw-r--r--pkgs/tools/misc/html-proofer/gemset.nix44
-rw-r--r--pkgs/tools/misc/ili2c/default.nix38
-rw-r--r--pkgs/tools/misc/txr/default.nix4
-rw-r--r--pkgs/tools/misc/yubikey-personalization/default.nix4
-rw-r--r--pkgs/tools/networking/ytcc/default.nix14
-rw-r--r--pkgs/tools/system/inxi/default.nix4
9 files changed, 229 insertions, 50 deletions
diff --git a/pkgs/tools/X11/primus/default.nix b/pkgs/tools/X11/primus/default.nix
index bf3ff7c65281..a70b619a6b46 100644
--- a/pkgs/tools/X11/primus/default.nix
+++ b/pkgs/tools/X11/primus/default.nix
@@ -28,5 +28,7 @@ let
 in writeScriptBin "primusrun" ''
   #!${runtimeShell}
   export LD_LIBRARY_PATH=${ldPath}:$LD_LIBRARY_PATH
+  # https://bugs.launchpad.net/ubuntu/+source/bumblebee/+bug/1758243
+  export __GLVND_DISALLOW_PATCHING=1
   exec "$@"
 ''
diff --git a/pkgs/tools/backup/tsm-client/default.nix b/pkgs/tools/backup/tsm-client/default.nix
new file mode 100644
index 000000000000..a1f7b1aba84e
--- /dev/null
+++ b/pkgs/tools/backup/tsm-client/default.nix
@@ -0,0 +1,165 @@
+{ lib
+, stdenv
+, autoPatchelfHook
+, buildEnv
+, fetchurl
+, makeWrapper
+, procps
+, zlib
+# optional packages that enable certain features
+, acl ? null  # EXT2/EXT3/XFS ACL support
+, jdk8 ? null  # Java GUI
+, lvm2 ? null  # LVM image backup and restore functions
+# path to `dsm.sys` configuration files
+, dsmSysCli ? "/etc/tsm-client/cli.dsm.sys"
+, dsmSysApi ? "/etc/tsm-client/api.dsm.sys"
+}:
+
+
+# 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
+
+
+# IBM Tivoli Storage Manager Client uses a system-wide
+# client system-options file `dsm.sys` and expects it
+# to be located in a directory within the package.
+# Note that the command line client and the API use
+# different "dms.sys" files (located in different directories).
+# Since these files contain settings to be altered by the
+# admin user (e.g. TSM server name), we create symlinks
+# in place of the files that the client attempts to open.
+# Use the arguments `dsmSysCli` and `dsmSysApi` to
+# provide the location of the configuration files for
+# the command-line interface and the API, respectively.
+#
+# While the command-line interface contains wrappers
+# that help the executables find the configuration file,
+# packages that link against the API have to
+# set the environment variable `DSMI_DIR` to
+# 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
+
+
+# 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).
+
+
+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;
+    platforms = [ "x86_64-linux" ];
+    license = lib.licenses.unfree;
+    maintainers = [ lib.maintainers.yarny ];
+    description = "IBM Spectrum Protect (Tivoli Storage Manager) CLI and API";
+    longDescription = ''
+      IBM Spectrum Protect (Tivoli Storage Manager) provides
+      a single point of control for backup and recovery.
+      This package contains the client software, that is,
+      a command line client and linkable libraries.
+
+      Note that the software requires a system-wide
+      client system-options file (commonly named "dsm.sys").
+      This package allows to use separate files for
+      the command-line interface and for the linkable API.
+      The location of those files can
+      be provided as build parameters.
+    '';
+  };
+
+  unwrapped = stdenv.mkDerivation rec {
+    name = "tsm-client-${version}-unwrapped";
+    version = "8.1.8.0";
+    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";
+    };
+    inherit meta;
+
+    nativeBuildInputs = [
+      autoPatchelfHook
+    ];
+    buildInputs = [
+      stdenv.cc.cc
+      zlib
+    ];
+    runtimeDependencies = [
+      lvm2
+    ];
+    sourceRoot = ".";
+
+    postUnpack = ''
+      for debfile in *.deb
+      do
+        ar -x "$debfile"
+        tar --xz --extract --file=data.tar.xz
+        rm data.tar.xz
+      done
+    '';
+
+    installPhase = ''
+      runHook preInstall
+      mkdir --parents $out
+      mv --target-directory=$out usr/* opt
+      runHook postInstall
+    '';
+
+    # Fix relative symlinks after `/usr` was moved up one level
+    preFixup = ''
+      for link in $out/lib/* $out/bin/*
+      do
+        target=$(readlink "$link")
+        if [ "$(cut -b -6 <<< "$target")" != "../../" ]
+        then
+          echo "cannot fix this symlink: $link -> $target"
+          exit 1
+        fi
+        ln --symbolic --force --no-target-directory "$out/$(cut -b 7- <<< "$target")" "$link"
+      done
+    '';
+  };
+
+in
+
+buildEnv {
+  name = "tsm-client-${unwrapped.version}";
+  inherit meta;
+  passthru = { inherit unwrapped; };
+  paths = [ unwrapped ];
+  buildInputs = [ makeWrapper ];
+  pathsToLink = [
+    "/"
+    "/bin"
+    "/opt/tivoli/tsm/client/ba/bin"
+    "/opt/tivoli/tsm/client/api/bin64"
+  ];
+  # * Provide top-level symlinks `dsm_dir` and `dsmi_dir`
+  #   to the so-called "installation directories"
+  # * Add symlinks to the "installation directories"
+  #   that point to the `dsm.sys` configuration files
+  # * Drop the Java GUI executable unless `jdk` is present
+  # * Create wrappers for the command-line interface to
+  #   prepare `PATH` and `DSM_DIR` environment variables
+  postBuild = ''
+    ln --symbolic --no-target-directory opt/tivoli/tsm/client/ba/bin $out/dsm_dir
+    ln --symbolic --no-target-directory opt/tivoli/tsm/client/api/bin64 $out/dsmi_dir
+    ln --symbolic --no-target-directory "${dsmSysCli}" $out/dsm_dir/dsm.sys
+    ln --symbolic --no-target-directory "${dsmSysApi}" $out/dsmi_dir/dsm.sys
+    ${lib.strings.optionalString (jdk8==null) "rm $out/bin/dsmj"}
+    for bin in $out/bin/*
+    do
+      target=$(readlink "$bin")
+      rm "$bin"
+      makeWrapper "$target" "$bin" \
+        --prefix PATH : "$out/dsm_dir:${lib.strings.makeBinPath [ procps acl jdk8 ]}" \
+        --set DSM_DIR $out/dsm_dir
+    done
+  '';
+}
diff --git a/pkgs/tools/misc/html-proofer/Gemfile.lock b/pkgs/tools/misc/html-proofer/Gemfile.lock
index d24cac78fab6..5080203d515c 100644
--- a/pkgs/tools/misc/html-proofer/Gemfile.lock
+++ b/pkgs/tools/misc/html-proofer/Gemfile.lock
@@ -12,7 +12,7 @@ GEM
     ethon (0.12.0)
       ffi (>= 1.3.0)
     ffi (1.11.1)
-    html-proofer (3.11.0)
+    html-proofer (3.11.1)
       activesupport (>= 4.2, < 6.0)
       addressable (~> 2.3)
       mercenary (~> 0.3.2)
@@ -29,7 +29,7 @@ GEM
     nokogiri (1.10.3)
       mini_portile2 (~> 2.4.0)
     parallel (1.17.0)
-    public_suffix (3.1.0)
+    public_suffix (3.1.1)
     rainbow (3.0.0)
     thread_safe (0.3.6)
     typhoeus (1.3.1)
diff --git a/pkgs/tools/misc/html-proofer/gemset.nix b/pkgs/tools/misc/html-proofer/gemset.nix
index 1d1991dcd929..4777d5d53e6c 100644
--- a/pkgs/tools/misc/html-proofer/gemset.nix
+++ b/pkgs/tools/misc/html-proofer/gemset.nix
@@ -1,8 +1,6 @@
 {
   activesupport = {
     dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"];
-    groups = ["default"];
-    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "110vp4frgkw3mpzlmshg2f2ig09cknls2w68ym1r1s39d01v0mi8";
@@ -12,8 +10,6 @@
   };
   addressable = {
     dependencies = ["public_suffix"];
-    groups = ["default"];
-    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "0bcm2hchn897xjhqj9zzsxf3n9xhddymj4lsclz508f4vw3av46l";
@@ -22,8 +18,6 @@
     version = "2.6.0";
   };
   concurrent-ruby = {
-    groups = ["default"];
-    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "1x07r23s7836cpp5z9yrlbpljcxpax14yw4fy4bnp6crhr6x24an";
@@ -33,8 +27,6 @@
   };
   ethon = {
     dependencies = ["ffi"];
-    groups = ["default"];
-    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "0gggrgkcq839mamx7a8jbnp2h7x2ykfn34ixwskwb0lzx2ak17g9";
@@ -43,8 +35,6 @@
     version = "0.12.0";
   };
   ffi = {
-    groups = ["default"];
-    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "06mvxpjply8qh4j3fj9wh08kdzwkbnvsiysh0vrhlk5cwxzjmblh";
@@ -54,19 +44,15 @@
   };
   html-proofer = {
     dependencies = ["activesupport" "addressable" "mercenary" "nokogiri" "parallel" "rainbow" "typhoeus" "yell"];
-    groups = ["default"];
-    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ywgnx7g7fv9f0hbm7xrv55qndvhgvbsp247zyrcg8mfgwxcbd66";
+      sha256 = "0kpcz7p0yjr1y9fs8gila2bkgb8y6qkyqv5a8yymw0hkvddnqig4";
       type = "gem";
     };
-    version = "3.11.0";
+    version = "3.11.1";
   };
   i18n = {
     dependencies = ["concurrent-ruby"];
-    groups = ["default"];
-    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "1hfxnlyr618s25xpafw9mypa82qppjccbh292c4l3bj36az7f6wl";
@@ -75,8 +61,6 @@
     version = "1.6.0";
   };
   mercenary = {
-    groups = ["default"];
-    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "10la0xw82dh5mqab8bl0dk21zld63cqxb1g16fk8cb39ylc4n21a";
@@ -85,8 +69,6 @@
     version = "0.3.6";
   };
   mini_portile2 = {
-    groups = ["default"];
-    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy";
@@ -95,8 +77,6 @@
     version = "2.4.0";
   };
   minitest = {
-    groups = ["default"];
-    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "0icglrhghgwdlnzzp4jf76b0mbc71s80njn5afyfjn4wqji8mqbq";
@@ -106,8 +86,6 @@
   };
   nokogiri = {
     dependencies = ["mini_portile2"];
-    groups = ["default"];
-    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "02bjydih0j515szfv9mls195cvpyidh6ixm7dwbl3s2sbaxxk5s4";
@@ -116,8 +94,6 @@
     version = "1.10.3";
   };
   parallel = {
-    groups = ["default"];
-    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "1x1gzgjrdlkm1aw0hfpyphsxcx90qgs3y4gmp9km3dvf4hc4qm8r";
@@ -126,18 +102,14 @@
     version = "1.17.0";
   };
   public_suffix = {
-    groups = ["default"];
-    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1c7c5xxkx91hwj4572hbnyvxmydb90q69wlpr2l0dxrmwx2p365l";
+      sha256 = "0g9ds2ffzljl6jjmkjffwxc1z6lh5nkqqmhhkxjk71q5ggv0rkpm";
       type = "gem";
     };
-    version = "3.1.0";
+    version = "3.1.1";
   };
   rainbow = {
-    groups = ["default"];
-    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "0bb2fpjspydr6x0s8pn1pqkzmxszvkfapv0p4627mywl7ky4zkhk";
@@ -146,8 +118,6 @@
     version = "3.0.0";
   };
   thread_safe = {
-    groups = ["default"];
-    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy";
@@ -157,8 +127,6 @@
   };
   typhoeus = {
     dependencies = ["ethon"];
-    groups = ["default"];
-    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "0cni8b1idcp0dk8kybmxydadhfpaj3lbs99w5kjibv8bsmip2zi5";
@@ -168,8 +136,6 @@
   };
   tzinfo = {
     dependencies = ["thread_safe"];
-    groups = ["default"];
-    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "1fjx9j327xpkkdlxwmkl3a8wqj7i4l4jwlrv3z13mg95z9wl253z";
@@ -178,8 +144,6 @@
     version = "1.2.5";
   };
   yell = {
-    groups = ["default"];
-    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
       sha256 = "1394pf8wsv4wx2lf1d9iqqx6lcww9bgmgh9sms3dbga804cns0n8";
diff --git a/pkgs/tools/misc/ili2c/default.nix b/pkgs/tools/misc/ili2c/default.nix
new file mode 100644
index 000000000000..4d78f797f109
--- /dev/null
+++ b/pkgs/tools/misc/ili2c/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub, jdk, ant, makeWrapper, jre }:
+
+stdenv.mkDerivation rec {
+  pname = "ili2c";
+  version = "5.0.0";
+
+  nativeBuildInputs = [ ant jdk makeWrapper ];
+
+  src = fetchFromGitHub {
+    owner = "claeis";
+    repo = pname;
+    rev = "${pname}-${version}";
+    sha256 = "0xps2343d5gdr2aj8j3l4cjq4k9zbxxlhnp8sjlhxh1wdczxlwx6";
+  };
+
+  buildPhase = "ant jar";
+
+  installPhase =
+    ''
+      mkdir -p $out/share/${pname}
+      cp $build/build/source/build/jar/ili2c.jar $out/share/${pname}
+
+      mkdir -p $out/bin
+      makeWrapper ${jre}/bin/java $out/bin/ili2c \
+        --add-flags "-jar $out/share/${pname}/ili2c.jar"
+    '';
+
+  meta = with stdenv.lib; {
+    description = "The INTERLIS Compiler";
+    longDescription = ''
+      Checks the syntactical correctness of an INTERLIS data model.
+    '';
+    homepage = "https://www.interlis.ch/downloads/ili2c";
+    license = licenses.lgpl21Plus;
+    maintainers = [ maintainers.das-g ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/misc/txr/default.nix b/pkgs/tools/misc/txr/default.nix
index 316dc8e09c1e..f679131381f1 100644
--- a/pkgs/tools/misc/txr/default.nix
+++ b/pkgs/tools/misc/txr/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "txr";
-  version = "217";
+  version = "220";
 
   src = fetchurl {
     url = "http://www.kylheku.com/cgit/txr/snapshot/${pname}-${version}.tar.bz2";
-    sha256 = "0q4v7zsbflzvw1xskacdnj0z8qng8c9pcvaa54f2jnnq7crkrd4q";
+    sha256 = "00jg1zhsqhi146xrh0bfb2czfgfw9i2xbpqwk3yh0n766wcm4ryd";
   };
 
   nativeBuildInputs = [ bison flex ];
diff --git a/pkgs/tools/misc/yubikey-personalization/default.nix b/pkgs/tools/misc/yubikey-personalization/default.nix
index 9caf4cf07b87..8308d5eebcd0 100644
--- a/pkgs/tools/misc/yubikey-personalization/default.nix
+++ b/pkgs/tools/misc/yubikey-personalization/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "yubikey-personalization-${version}";
-  version = "1.19.3";
+  version = "1.20.0";
 
   src = fetchurl {
     url = "https://developers.yubico.com/yubikey-personalization/Releases/ykpers-${version}.tar.gz";
-    sha256 = "0jhvnavjrpwzmmjcw486df5s48j53njqgyz36yz3dskbaz3kwlfr";
+    sha256 = "14wvlwqnwj0gllkpvfqiy8ns938bwvjsz8x1hmymmx32m074vj0f";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/tools/networking/ytcc/default.nix b/pkgs/tools/networking/ytcc/default.nix
index 137a9216df00..d489d84d1cc6 100644
--- a/pkgs/tools/networking/ytcc/default.nix
+++ b/pkgs/tools/networking/ytcc/default.nix
@@ -11,10 +11,20 @@ python3Packages.buildPythonApplication rec {
     sha256 = "080p145j5pg8db88kb0y3x1pfc3v4aj3w68pdihlmi68dhjdr7i7";
   };
 
-  doCheck = false; # try to access /homeless-shelter
+  nativeBuildInputs = [ gettext ];
+
   propagatedBuildInputs = with python3Packages; [ feedparser lxml sqlalchemy youtube-dl ];
 
-  nativeBuildInputs = [ gettext ];
+  checkInputs = with python3Packages; [ nose pytest ];
+
+  # Disable tests that touch network or shell out to commands
+  checkPhase = ''
+    pytest . -k 'not get_channels \
+                 and not play_video \
+                 and not download_videos \
+                 and not update_all \
+                 and not add_channel_duplicate'
+  '';
 
   meta = {
     description = "Command Line tool to keep track of your favourite YouTube channels without signing up for a Google account";
diff --git a/pkgs/tools/system/inxi/default.nix b/pkgs/tools/system/inxi/default.nix
index badc36650f0d..c869c4b11a5c 100644
--- a/pkgs/tools/system/inxi/default.nix
+++ b/pkgs/tools/system/inxi/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "inxi-${version}";
-  version = "3.0.34-1";
+  version = "3.0.35-1";
 
   src = fetchFromGitHub {
     owner = "smxi";
     repo = "inxi";
     rev = version;
-    sha256 = "0x2s40lwsan2pk292nspjgyw00f9f5fdfmwfvl50924pxhyxn2fh";
+    sha256 = "1rvidz2b9zp3ikkcjf8zr5r8r9mxnw3zgly2pvlim11kkp76zdl9";
   };
 
   buildInputs = [ perl ];