diff options
author | Frederik Rietdijk <fridh@fridh.nl> | 2019-07-20 09:21:59 +0200 |
---|---|---|
committer | Frederik Rietdijk <fridh@fridh.nl> | 2019-07-20 09:21:59 +0200 |
commit | be25210e89f507a4be8ba1daab9599d32312326f (patch) | |
tree | 1c41dd1883fa6a9ec475c4857895dd671e869294 /pkgs/tools | |
parent | 214d73a46b12af38d87caec894e595e6eb83013b (diff) | |
parent | 3b24d6e187f6c59cd33003aeeea54cdadc16f180 (diff) | |
download | nixlib-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.nix | 2 | ||||
-rw-r--r-- | pkgs/tools/backup/tsm-client/default.nix | 165 | ||||
-rw-r--r-- | pkgs/tools/misc/html-proofer/Gemfile.lock | 4 | ||||
-rw-r--r-- | pkgs/tools/misc/html-proofer/gemset.nix | 44 | ||||
-rw-r--r-- | pkgs/tools/misc/ili2c/default.nix | 38 | ||||
-rw-r--r-- | pkgs/tools/misc/txr/default.nix | 4 | ||||
-rw-r--r-- | pkgs/tools/misc/yubikey-personalization/default.nix | 4 | ||||
-rw-r--r-- | pkgs/tools/networking/ytcc/default.nix | 14 | ||||
-rw-r--r-- | pkgs/tools/system/inxi/default.nix | 4 |
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 ]; |