diff options
Diffstat (limited to 'pkgs/applications')
38 files changed, 595 insertions, 438 deletions
diff --git a/pkgs/applications/audio/sayonara/default.nix b/pkgs/applications/audio/sayonara/default.nix index 7776fa0c166e..c4258174500f 100644 --- a/pkgs/applications/audio/sayonara/default.nix +++ b/pkgs/applications/audio/sayonara/default.nix @@ -1,46 +1,82 @@ -{ stdenv, fetchurl, cmake, qt5, zlib, taglib, pkgconfig, pcre, gst_all_1 }: +{ mkDerivation +, cmake +, fetchgit +, gst_all_1 +, lib +, libpulseaudio +, ninja +, pcre +, pkgconfig +, qtbase +, qttools +, taglib +, zlib +}: -let - version = "1.1.1-git1-20180828"; -in -stdenv.mkDerivation { +mkDerivation rec { pname = "sayonara-player"; - inherit version; + version = "1.5.1-stable5"; - src = fetchurl { - url = "https://sayonara-player.com/sw/sayonara-player-${version}.tar.gz"; - sha256 = "0rvy47qvavrp03zjdrw025dmq9fq5aaii3q1qq8b94byarl0c5kn"; + src = fetchgit { + url = "https://git.sayonara-player.com/sayonara.git"; + rev = version; + sha256 = "13l7r3gaszrkyf4z8rdijfzxvcnilax4ki2mcm30wqk8d4g4qdzj"; }; - nativeBuildInputs = [ cmake pkgconfig ]; - buildInputs = with qt5; with gst_all_1; - [ gstreamer gst-plugins-base gst-plugins-good gst-plugins-ugly - pcre qtbase qttools taglib zlib - ]; - - # CMake Error at src/GUI/Resources/Icons/cmake_install.cmake:49 (file): - # file cannot create directory: /usr/share/icons. Maybe need administrative - # privileges. - # Call Stack (most recent call first): - # src/GUI/Resources/cmake_install.cmake:50 (include) - # src/GUI/cmake_install.cmake:50 (include) - # src/cmake_install.cmake:59 (include) - # cmake_install.cmake:42 (include) + # all this can go with version 1.5.2 postPatch = '' - substituteInPlace src/GUI/Resources/Icons/CMakeLists.txt \ - --replace "/usr/share" "$out/share" + # if we don't delete this, sayonara will look here instead of the provided taglib + rm -r src/3rdParty/taglib + + for f in \ + src/DBus/DBusNotifications.cpp \ + src/Gui/Resources/Icons/CMakeLists.txt \ + src/Utils/Utils.cpp \ + test/Util/FileHelperTest.cpp \ + ; do + + substituteInPlace $f --replace /usr $out + done + + substituteInPlace src/Components/Shutdown/Shutdown.cpp \ + --replace /usr/bin/systemctl systemctl ''; - # [ 65%] Building CXX object src/Components/Engine/CMakeFiles/say_comp_engine.dir/AbstractPipeline.cpp.o - # /tmp/nix-build-sayonara-player-1.0.0-git5-20180115.drv-0/sayonara-player/src/Components/Engine/AbstractPipeline.cpp:28:32: fatal error: gst/app/gstappsink.h: No such file or directory - # #include <gst/app/gstappsink.h> + nativeBuildInputs = [ cmake ninja pkgconfig qttools ]; + + buildInputs = [ + libpulseaudio + pcre + qtbase + taglib + zlib + ] + ++ (with gst_all_1; [ + gstreamer + gst-plugins-base + gst-plugins-good + gst-plugins-bad + gst-plugins-ugly + ]); + + # we carry the patched taglib 1.11.1 that doesn't break ogg but sayonara just + # checks for the version + cmakeFlags = [ + "-DWITH_SYSTEM_TAGLIB=ON" + ]; + + # gstreamer cannot otherwise be found NIX_CFLAGS_COMPILE = "-I${gst_all_1.gst-plugins-base.dev}/include/gstreamer-1.0"; - meta = with stdenv.lib; - { description = "Sayonara music player"; - homepage = https://sayonara-player.com/; - license = licenses.gpl3; - platforms = platforms.linux; - maintainers = [ maintainers.deepfire ]; - }; + postInstall = '' + qtWrapperArgs+=(--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0") + ''; + + meta = with lib; { + description = "Sayonara music player"; + homepage = "https://sayonara-player.com/"; + license = licenses.gpl3; + maintainers = with maintainers; [ deepfire ]; + platforms = platforms.unix; + }; } diff --git a/pkgs/applications/audio/strawberry/default.nix b/pkgs/applications/audio/strawberry/default.nix new file mode 100644 index 000000000000..60da75d3c7ed --- /dev/null +++ b/pkgs/applications/audio/strawberry/default.nix @@ -0,0 +1,91 @@ +{ mkDerivation +, stdenv +, lib +, fetchFromGitHub +, cmake +, pkgconfig +, alsaLib +, boost +, chromaprint +, fftw +, gnutls +, libcdio +, libmtp +, libpthreadstubs +, libtasn1 +, libXdmcp +, pcre +, protobuf +, sqlite +, taglib +, libpulseaudio ? null +, libselinux ? null +, libsepol ? null +, p11_kit ? null +, utillinux ? null +, qtbase +, qtx11extras +, qttools +, withGstreamer ? true +, gst_all_1 ? null +, withVlc ? true +, vlc ? null +}: + +mkDerivation rec { + pname = "strawberry"; + version = "0.6.3"; + + src = fetchFromGitHub { + owner = "jonaski"; + repo = pname; + rev = version; + sha256 = "01j5jzzicy895kg9sjy46lbcm5kvf3642d3q5wwb2fyvyq1fbcv0"; + }; + + buildInputs = [ + alsaLib + boost + chromaprint + fftw + gnutls + libcdio + libmtp + libpthreadstubs + libtasn1 + libXdmcp + pcre + protobuf + sqlite + taglib + qtbase + qtx11extras + ] + ++ lib.optionals stdenv.isLinux [ + libpulseaudio + libselinux + libsepol + p11_kit + utillinux + ] + ++ lib.optionals withGstreamer (with gst_all_1; [ + gstreamer + gst-plugins-base + gst-plugins-good + ]) + ++ lib.optional withVlc vlc; + + nativeBuildInputs = [ cmake pkgconfig qttools ]; + + cmakeFlags = [ + "-DUSE_SYSTEM_TAGLIB=ON" + ]; + + meta = with lib; { + description = "Music player and music collection organizer"; + license = licenses.gpl2; + maintainers = with maintainers; [ peterhoeg ]; + # upstream says darwin should work but they lack maintainers as of 0.6.3 + platforms = platforms.linux; + }; +} diff --git a/pkgs/applications/blockchains/go-ethereum.nix b/pkgs/applications/blockchains/go-ethereum.nix index 740ecfa228fd..5f347fe91e9c 100644 --- a/pkgs/applications/blockchains/go-ethereum.nix +++ b/pkgs/applications/blockchains/go-ethereum.nix @@ -2,7 +2,7 @@ buildGoPackage rec { pname = "go-ethereum"; - version = "1.9.2"; + version = "1.9.3"; goPackagePath = "github.com/ethereum/go-ethereum"; @@ -17,7 +17,7 @@ buildGoPackage rec { owner = "ethereum"; repo = pname; rev = "v${version}"; - sha256 = "0lymwylh4j63fzj9jy7mcw676a2ksgpsj9mazif1r3d2q73h9m88"; + sha256 = "0lv6gxp34j26hqazcvyr4c7rsl1vljm6cfzkcmlapsjdgym505bg"; }; meta = with stdenv.lib; { diff --git a/pkgs/applications/editors/vscode/vscode.nix b/pkgs/applications/editors/vscode/vscode.nix index 369ed7728909..75abb563c5a7 100644 --- a/pkgs/applications/editors/vscode/vscode.nix +++ b/pkgs/applications/editors/vscode/vscode.nix @@ -11,13 +11,13 @@ let archive_fmt = if system == "x86_64-darwin" then "zip" else "tar.gz"; sha256 = { - "x86_64-linux" = "1np7j6xv0bxmq7762ml0h6pib8963s2vdmyvigi0fz2iik92zv8z"; - "x86_64-darwin" = "0f87cv1sbcvix9f7hhw0vsypp0bf627xdyh4bmh0g41k17ls8wvc"; + "x86_64-linux" = "1iz36nhkg78346g5407df6jv4d1ydb22hhgs8hiaxql3hq5z7x3q"; + "x86_64-darwin" = "1iijk0kx90rax39iradbbafyvd3vwnzsgvyb3s13asy42pbhhkky"; }.${system}; in callPackage ./generic.nix rec { - version = "1.37.1"; + version = "1.38.0"; pname = "vscode"; executableName = "code" + lib.optionalString isInsiders "-insiders"; diff --git a/pkgs/applications/editors/vscode/vscodium.nix b/pkgs/applications/editors/vscode/vscodium.nix index 49472fde464b..f06cf18e4ec8 100644 --- a/pkgs/applications/editors/vscode/vscodium.nix +++ b/pkgs/applications/editors/vscode/vscodium.nix @@ -11,13 +11,13 @@ let archive_fmt = if system == "x86_64-darwin" then "zip" else "tar.gz"; sha256 = { - "x86_64-linux" = "0j6188gm66bwffyg0vn3ak8242vs2vb2cw92b9wfkiml6sfg555n"; - "x86_64-darwin" = "0iblg0hn6jdds7d2hzp0icb5yh6hhw3fd5g4iim64ibi7lpwj2cj"; + "x86_64-linux" = "09rq5jx7aicwp3qqi5pcv6bmyyp1rm5cfa96hvy3f4grhq1fi132"; + "x86_64-darwin" = "1y1lbb3q5myaz7jg21x5sl0in8wr46brqj9zyrg3f16zahsagzr4"; }.${system}; in callPackage ./generic.nix rec { - version = "1.37.1"; + version = "1.38.0"; pname = "vscodium"; executableName = "codium"; diff --git a/pkgs/applications/graphics/azpainter/default.nix b/pkgs/applications/graphics/azpainter/default.nix new file mode 100644 index 000000000000..b2060f5db31e --- /dev/null +++ b/pkgs/applications/graphics/azpainter/default.nix @@ -0,0 +1,38 @@ +{ stdenv, fetchFromGitHub, autoreconfHook +, libX11, libXext, libXi +, freetype, fontconfig +, libpng, libjpeg +, zlib +}: + +stdenv.mkDerivation rec { + pname = "azpainter"; + version = "2.1.4"; + + src = fetchFromGitHub { + owner = "Symbian9"; + repo = pname; + rev = "refs/tags/v${version}"; + sha256 = "1hrr9lhsbjyzar3nxvli6cazr7zhyzh0p8hwpg4g9ga6njs8vi8m"; + }; + + nativeBuildInputs = [ autoreconfHook ]; + + buildInputs = [ + libX11 libXext libXi + freetype fontconfig + libpng libjpeg + zlib + ]; + + configureFlags = [ + "--with-freetype-dir=${stdenv.lib.getDev freetype}/include/freetype2" + ]; + + meta = with stdenv.lib; { + description = "Full color painting software for illustration drawing"; + homepage = "https://osdn.net/projects/azpainter"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ dtzWill ]; + }; +} diff --git a/pkgs/applications/misc/calibre/default.nix b/pkgs/applications/misc/calibre/default.nix index b4c8bbb3f311..dd85156b3ef0 100644 --- a/pkgs/applications/misc/calibre/default.nix +++ b/pkgs/applications/misc/calibre/default.nix @@ -6,11 +6,11 @@ mkDerivation rec { pname = "calibre"; - version = "3.47.0"; + version = "3.47.1"; src = fetchurl { url = "https://download.calibre-ebook.com/${version}/${pname}-${version}.tar.xz"; - sha256 = "0mjj47w9pa7ihycialijrfq2qk107dcxwcwriz3b2mg4lixlawy4"; + sha256 = "17lz6rawlv268vv8i5kj59rswsipq3c14066adaz1paw54zr62dk"; }; patches = [ @@ -105,7 +105,7 @@ mkDerivation rec { disallowedReferences = [ podofo.dev ]; calibreDesktopItem = makeDesktopItem { - name = "calibre"; + name = "calibre-gui"; desktopName = "calibre"; exec = "@out@/bin/calibre --detach %F"; genericName = "E-book library management"; @@ -151,7 +151,7 @@ mkDerivation rec { }; ebookEditDesktopItem = makeDesktopItem { - name = "calibre-edit-ebook"; + name = "calibre-edit-book"; desktopName = "Edit E-book"; genericName = "E-book Editor"; comment = "Edit e-books"; diff --git a/pkgs/applications/misc/dbeaver/default.nix b/pkgs/applications/misc/dbeaver/default.nix index d8cf86461acf..2e8217012160 100644 --- a/pkgs/applications/misc/dbeaver/default.nix +++ b/pkgs/applications/misc/dbeaver/default.nix @@ -7,7 +7,7 @@ stdenv.mkDerivation rec { pname = "dbeaver-ce"; - version = "6.1.4"; + version = "6.1.5"; desktopItem = makeDesktopItem { name = "dbeaver"; @@ -30,7 +30,7 @@ stdenv.mkDerivation rec { src = fetchurl { url = "https://dbeaver.io/files/${version}/dbeaver-ce-${version}-linux.gtk.x86_64.tar.gz"; - sha256 = "1l4skcannbzddhm773dm3hwv3a7b3xy569gydcfczgdlgzgmlfjq"; + sha256 = "0lkycm1152wd56i1hjq7q3sd05h51fyz99qr2n65lwi33vz2qk9m"; }; installPhase = '' @@ -65,6 +65,6 @@ stdenv.mkDerivation rec { ''; license = licenses.asl20; platforms = [ "x86_64-linux" ]; - maintainers = [ maintainers.samueldr ]; + maintainers = [ maintainers.jojosch ]; }; } diff --git a/pkgs/applications/misc/evtest/default.nix b/pkgs/applications/misc/evtest/default.nix index 3d715a1d16bd..d6d20367b060 100644 --- a/pkgs/applications/misc/evtest/default.nix +++ b/pkgs/applications/misc/evtest/default.nix @@ -1,14 +1,15 @@ { stdenv, fetchgit, autoreconfHook, pkgconfig, libxml2 }: stdenv.mkDerivation rec { - name = "evtest-1.33"; + pname = "evtest"; + version = "1.34"; nativeBuildInputs = [ autoreconfHook pkgconfig ]; buildInputs = [ libxml2 ]; src = fetchgit { - url = "git://anongit.freedesktop.org/evtest"; - rev = "refs/tags/evtest-1.33"; + url = "git://anongit.freedesktop.org/${pname}"; + rev = "refs/tags/${pname}-${version}"; sha256 = "168gdhzj11f4nk94a6z696sm8v1njzwww69bn6wr97l17897913g"; }; diff --git a/pkgs/applications/misc/josm/default.nix b/pkgs/applications/misc/josm/default.nix index 56b28dbc8db9..4b70530987f1 100644 --- a/pkgs/applications/misc/josm/default.nix +++ b/pkgs/applications/misc/josm/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "josm"; - version = "15238"; + version = "15322"; src = fetchurl { url = "https://josm.openstreetmap.de/download/josm-snapshot-${version}.jar"; - sha256 = "0zh84glb4545av0s1qnccqqp8nrnfsr7rnwgbqpwwzvc2ngk91gv"; + sha256 = "1i6cxs6rvqjwh7yfji5701xdzpnaxcv97gsd692fjrwasnsx1f1i"; }; buildInputs = [ jdk11 makeWrapper ]; diff --git a/pkgs/applications/misc/michabo/default.nix b/pkgs/applications/misc/michabo/default.nix new file mode 100644 index 000000000000..015a326fdc9b --- /dev/null +++ b/pkgs/applications/misc/michabo/default.nix @@ -0,0 +1,53 @@ +{ lib +, mkDerivation +, makeDesktopItem +, fetchFromGitLab +, qmake +# qt +, qtbase +, qtwebsockets +}: + +let + desktopItem = makeDesktopItem { + type = "Application"; + name = "Michabo"; + desktopName = "Michabo"; + exec = "Michabo"; + }; + +in mkDerivation rec { + pname = "michabo"; + version = "0.1"; + + src = fetchFromGitLab { + domain = "git.pleroma.social"; + owner = "kaniini"; + repo = "michabo"; + rev = "v${version}"; + sha256 = "0pl4ymdb36r0kwlclfjjp6b1qml3fm9ql7ag5inprny5y8vcjpzn"; + }; + + nativeBuildInputs = [ + qmake + ]; + buildInputs = [ + qtbase + qtwebsockets + ]; + + qmakeFlags = [ "michabo.pro" "DESTDIR=${placeholder "out"}/bin" ]; + + postInstall = '' + ln -s ${desktopItem}/share $out/share + ''; + + meta = with lib; { + description = "A native desktop app for Pleroma and Mastodon servers"; + homepage = "https://git.pleroma.social/kaniini/michabo"; + license = licenses.gpl3; + maintainers = with maintainers; [ fgaz ]; + platforms = platforms.all; + }; +} + diff --git a/pkgs/applications/misc/taskell/default.nix b/pkgs/applications/misc/taskell/default.nix index 00b96f459cb7..702c3124d8ab 100644 --- a/pkgs/applications/misc/taskell/default.nix +++ b/pkgs/applications/misc/taskell/default.nix @@ -1,8 +1,8 @@ { lib, haskellPackages, fetchFromGitHub }: let - version = "1.6.0"; - sha256 = "1yq7lbqg759i3hyxcskx3924b7xmw6i4ny6n8yq80k4hikw2k6mf"; + version = "1.6.1"; + sha256 = "047gvpq52pif9sfb4qcfdiwz50x3wlnjvsnnjzypm1qlwyl2rbz1"; in (haskellPackages.mkDerivation { pname = "taskell"; diff --git a/pkgs/applications/networking/browsers/links2/default.nix b/pkgs/applications/networking/browsers/links2/default.nix index f2cc277f3dac..7bb443e22c33 100644 --- a/pkgs/applications/networking/browsers/links2/default.nix +++ b/pkgs/applications/networking/browsers/links2/default.nix @@ -8,12 +8,12 @@ }: stdenv.mkDerivation rec { - version = "2.19"; + version = "2.20"; pname = "links2"; src = fetchurl { url = "${meta.homepage}/download/links-${version}.tar.bz2"; - sha256 = "02ls11c02p7xvsdjyb43rrzr850i1yly003r812z0w5vv5yqqxbh"; + sha256 = "0bchwqa87dc8cb55spyybkqpc456pp4x2n9aw587wr7pn96cvp9v"; }; buildInputs = with stdenv.lib; diff --git a/pkgs/applications/networking/browsers/vivaldi/default.nix b/pkgs/applications/networking/browsers/vivaldi/default.nix index 246c5e7e60dc..6483b6d03e30 100644 --- a/pkgs/applications/networking/browsers/vivaldi/default.nix +++ b/pkgs/applications/networking/browsers/vivaldi/default.nix @@ -17,11 +17,11 @@ let vivaldiName = if isSnapshot then "vivaldi-snapshot" else "vivaldi"; in stdenv.mkDerivation rec { pname = "vivaldi"; - version = "2.7.1628.30-1"; + version = "2.7.1628.33-1"; src = fetchurl { url = "https://downloads.vivaldi.com/${branch}/vivaldi-${branch}_${version}_amd64.deb"; - sha256 = "1lz8adwiwll8g246s5pa0ipfraph51s9f4lcfysdrp1s3s1qhw8x"; + sha256 = "1km5ccxqyd5xgmzm42zca670jf7wd4j7c726fhyj4wjni71zar34"; }; unpackPhase = '' diff --git a/pkgs/applications/networking/cluster/kubernetes/default.nix b/pkgs/applications/networking/cluster/kubernetes/default.nix index e4adabd75813..d665693439f0 100644 --- a/pkgs/applications/networking/cluster/kubernetes/default.nix +++ b/pkgs/applications/networking/cluster/kubernetes/default.nix @@ -15,13 +15,13 @@ with lib; stdenv.mkDerivation rec { pname = "kubernetes"; - version = "1.14.3"; + version = "1.15.3"; src = fetchFromGitHub { owner = "kubernetes"; repo = "kubernetes"; rev = "v${version}"; - sha256 = "1r31ssf8bdbz8fdsprhkc34jqhz5rcs3ixlf0mbjcbq0xr7y651z"; + sha256 = "0vamr7m8i5svmvb0z01cngv3sffdfjj0bky2zalm7cfnapib8vz1"; }; buildInputs = [ removeReferencesTo makeWrapper which go rsync go-bindata ]; @@ -29,7 +29,10 @@ stdenv.mkDerivation rec { outputs = ["out" "man" "pause"]; postPatch = '' - substituteInPlace "hack/lib/golang.sh" --replace "_cgo" "" + # go env breaks the sandbox + substituteInPlace "hack/lib/golang.sh" \ + --replace 'echo "$(go env GOHOSTOS)/$(go env GOHOSTARCH)"' 'echo "${go.GOOS}/${go.GOARCH}"' + substituteInPlace "hack/update-generated-docs.sh" --replace "make" "make SHELL=${stdenv.shell}" # hack/update-munge-docs.sh only performs some tests on the documentation. # They broke building k8s; disabled for now. @@ -52,13 +55,12 @@ stdenv.mkDerivation rec { cp build/pause/pause "$pause/bin/pause" cp -R docs/man/man1 "$man/share/man" - cp cluster/addons/addon-manager/namespace.yaml $out/share cp cluster/addons/addon-manager/kube-addons.sh $out/bin/kube-addons patchShebangs $out/bin/kube-addons - substituteInPlace $out/bin/kube-addons \ - --replace /opt/namespace.yaml $out/share/namespace.yaml wrapProgram $out/bin/kube-addons --set "KUBECTL_BIN" "$out/bin/kubectl" + cp ${./mk-docker-opts.sh} $out/bin/mk-docker-opts.sh + $out/bin/kubectl completion bash > $out/share/bash-completion/completions/kubectl $out/bin/kubectl completion zsh > $out/share/zsh/site-functions/_kubectl ''; diff --git a/pkgs/applications/networking/cluster/kubernetes/mk-docker-opts.sh b/pkgs/applications/networking/cluster/kubernetes/mk-docker-opts.sh new file mode 100755 index 000000000000..22a459f51349 --- /dev/null +++ b/pkgs/applications/networking/cluster/kubernetes/mk-docker-opts.sh @@ -0,0 +1,113 @@ +#!/usr/bin/env bash + +# Copyright 2014 The Kubernetes Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Generate Docker daemon options based on flannel env file. + +# exit on any error +set -e + +usage() { + echo "$0 [-f FLANNEL-ENV-FILE] [-d DOCKER-ENV-FILE] [-i] [-c] [-m] [-k COMBINED-KEY] + +Generate Docker daemon options based on flannel env file +OPTIONS: + -f Path to flannel env file. Defaults to /run/flannel/subnet.env + -d Path to Docker env file to write to. Defaults to /run/docker_opts.env + -i Output each Docker option as individual var. e.g. DOCKER_OPT_MTU=1500 + -c Output combined Docker options into DOCKER_OPTS var + -k Set the combined options key to this value (default DOCKER_OPTS=) + -m Do not output --ip-masq (useful for older Docker version) +" >/dev/stderr + exit 1 +} + +flannel_env="/run/flannel/subnet.env" +docker_env="/run/docker_opts.env" +combined_opts_key="DOCKER_OPTS" +indiv_opts=false +combined_opts=false +ipmasq=true +val="" + +while getopts "f:d:icmk:" opt; do + case $opt in + f) + flannel_env=$OPTARG + ;; + d) + docker_env=$OPTARG + ;; + i) + indiv_opts=true + ;; + c) + combined_opts=true + ;; + m) + ipmasq=false + ;; + k) + combined_opts_key=$OPTARG + ;; + \?) + usage + ;; + esac +done + +if [[ $indiv_opts = false ]] && [[ $combined_opts = false ]]; then + indiv_opts=true + combined_opts=true +fi + +if [[ -f "${flannel_env}" ]]; then + source "${flannel_env}" +fi + +if [[ -n "$FLANNEL_SUBNET" ]]; then + # shellcheck disable=SC2034 # Variable name referenced in OPT_LOOP below + DOCKER_OPT_BIP="--bip=$FLANNEL_SUBNET" +fi + +if [[ -n "$FLANNEL_MTU" ]]; then + # shellcheck disable=SC2034 # Variable name referenced in OPT_LOOP below + DOCKER_OPT_MTU="--mtu=$FLANNEL_MTU" +fi + +if [[ "$FLANNEL_IPMASQ" = true ]] && [[ $ipmasq = true ]]; then + # shellcheck disable=SC2034 # Variable name referenced in OPT_LOOP below + DOCKER_OPT_IPMASQ="--ip-masq=false" +fi + +eval docker_opts="\$${combined_opts_key}" +docker_opts+=" " + +echo -n "" >"${docker_env}" + +# OPT_LOOP +for opt in $(compgen -v DOCKER_OPT_); do + eval val=\$"${opt}" + + if [[ "$indiv_opts" = true ]]; then + echo "$opt=\"$val\"" >>"${docker_env}" + fi + + docker_opts+="$val " +done + +if [[ "$combined_opts" = true ]]; then + echo "${combined_opts_key}=\"${docker_opts}\"" >>"${docker_env}" +fi diff --git a/pkgs/applications/networking/cluster/terraform/default.nix b/pkgs/applications/networking/cluster/terraform/default.nix index de1e86fa0736..9c07760355ca 100644 --- a/pkgs/applications/networking/cluster/terraform/default.nix +++ b/pkgs/applications/networking/cluster/terraform/default.nix @@ -97,8 +97,8 @@ in rec { terraform_0_11-full = terraform_0_11.full; terraform_0_12 = pluggable (generic { - version = "0.12.7"; - sha256 = "09zsak1a9z2mk88vb6xs9jaxfpazhs0p7x68mw62c9mm13m8kq02"; + version = "0.12.8"; + sha256 = "1qlhbn6xj2nd8gwr6aiyjsb62qmj4j9jnxab006xgdr1avvl2p67"; patches = [ ./provider-path.patch ]; passthru = { inherit plugins; }; }); diff --git a/pkgs/applications/networking/instant-messengers/discord/default.nix b/pkgs/applications/networking/instant-messengers/discord/default.nix index 1d9d645b0ed5..f5883875fcdc 100644 --- a/pkgs/applications/networking/instant-messengers/discord/default.nix +++ b/pkgs/applications/networking/instant-messengers/discord/default.nix @@ -27,10 +27,10 @@ in { pname = "discord-canary"; binaryName = "DiscordCanary"; desktopName = "Discord Canary"; - version = "0.0.95"; + version = "0.0.96"; src = fetchurl { - url = "https://dl-canary.discordapp.net/apps/linux/0.0.95/discord-canary-0.0.95.tar.gz"; - sha256 = "06qhm73kc88pq0lgbi7qjy4gx9ighkmx128fdm1dpzfv62fjdasw"; + url = "https://dl-canary.discordapp.net/apps/linux/0.0.96/discord-canary-0.0.96.tar.gz"; + sha256 = "1fxyh9v5xglwbgr5sidn0cv70qpzcd2q240wsv87k3nawhvfcwsp"; }; }; }.${branch} diff --git a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix index c97a908d33d9..f60e87affcfd 100644 --- a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix +++ b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix @@ -2,7 +2,7 @@ , gnome2, gtk3, atk, at-spi2-atk, cairo, pango, gdk-pixbuf, glib, freetype, fontconfig , dbus, libX11, xorg, libXi, libXcursor, libXdamage, libXrandr, libXcomposite , libXext, libXfixes, libXrender, libXtst, libXScrnSaver, nss, nspr, alsaLib -, cups, expat, udev, libnotify, libuuid +, cups, expat, udev, libnotify, libuuid, at-spi2-core # Unfortunately this also overwrites the UI language (not just the spell # checking language!): , hunspellDicts, spellcheckerLanguage ? null # E.g. "de_DE" @@ -25,6 +25,7 @@ let alsaLib atk at-spi2-atk + at-spi2-core cairo cups dbus @@ -57,11 +58,11 @@ let in stdenv.mkDerivation rec { pname = "signal-desktop"; - version = "1.26.2"; + version = "1.27.1"; src = fetchurl { url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb"; - sha256 = "08qx7k82x6ybqi3lln6ixzmdz4sr8yz8vfx0y408b85wjfc7ncjk"; + sha256 = "16fg60c5r7zcjs8ya6jk33l5kz8m21y9a1si3i0a2dvyaclz4a3q"; }; phases = [ "unpackPhase" "installPhase" ]; diff --git a/pkgs/applications/networking/irc/weechat/default.nix b/pkgs/applications/networking/irc/weechat/default.nix index 3f8ad762218c..31f2a7e6a276 100644 --- a/pkgs/applications/networking/irc/weechat/default.nix +++ b/pkgs/applications/networking/irc/weechat/default.nix @@ -6,21 +6,21 @@ , guileSupport ? true, guile , luaSupport ? true, lua5 , perlSupport ? true, perl -, pythonSupport ? true, pythonPackages +, pythonSupport ? true, python3Packages , rubySupport ? true, ruby , tclSupport ? true, tcl , extraBuildInputs ? [] }: let - inherit (pythonPackages) python; + inherit (python3Packages) python; plugins = [ { name = "perl"; enabled = perlSupport; cmakeFlag = "ENABLE_PERL"; buildInputs = [ perl ]; } { name = "tcl"; enabled = tclSupport; cmakeFlag = "ENABLE_TCL"; buildInputs = [ tcl ]; } { name = "ruby"; enabled = rubySupport; cmakeFlag = "ENABLE_RUBY"; buildInputs = [ ruby ]; } { name = "guile"; enabled = guileSupport; cmakeFlag = "ENABLE_GUILE"; buildInputs = [ guile ]; } { name = "lua"; enabled = luaSupport; cmakeFlag = "ENABLE_LUA"; buildInputs = [ lua5 ]; } - { name = "python"; enabled = pythonSupport; cmakeFlag = "ENABLE_PYTHON"; buildInputs = [ python ]; } + { name = "python"; enabled = pythonSupport; cmakeFlag = "ENABLE_PYTHON3"; buildInputs = [ python ]; } ]; enabledPlugins = builtins.filter (p: p.enabled) plugins; diff --git a/pkgs/applications/networking/irc/weechat/scripts/default.nix b/pkgs/applications/networking/irc/weechat/scripts/default.nix index cd9ecbf43370..81ee484f3b30 100644 --- a/pkgs/applications/networking/irc/weechat/scripts/default.nix +++ b/pkgs/applications/networking/irc/weechat/scripts/default.nix @@ -1,17 +1,13 @@ -{ callPackage, luaPackages, pythonPackages }: +{ callPackage, luaPackages }: { - weechat-xmpp = callPackage ./weechat-xmpp { - inherit (pythonPackages) pydns; - }; - weechat-matrix-bridge = callPackage ./weechat-matrix-bridge { inherit (luaPackages) cjson luaffi; }; - wee-slack = callPackage ./wee-slack { - inherit pythonPackages; - }; + wee-slack = callPackage ./wee-slack { }; weechat-autosort = callPackage ./weechat-autosort { }; + + weechat-otr = callPackage ./weechat-otr { }; } diff --git a/pkgs/applications/networking/irc/weechat/scripts/wee-slack/default.nix b/pkgs/applications/networking/irc/weechat/scripts/wee-slack/default.nix index 49616671507d..6811cb164e0e 100644 --- a/pkgs/applications/networking/irc/weechat/scripts/wee-slack/default.nix +++ b/pkgs/applications/networking/irc/weechat/scripts/wee-slack/default.nix @@ -1,4 +1,4 @@ -{ stdenv, substituteAll, buildEnv, fetchFromGitHub, pythonPackages }: +{ stdenv, substituteAll, buildEnv, fetchFromGitHub, python3Packages }: stdenv.mkDerivation rec { pname = "wee-slack"; @@ -16,8 +16,8 @@ stdenv.mkDerivation rec { src = ./libpath.patch; env = "${buildEnv { name = "wee-slack-env"; - paths = with pythonPackages; [ websocket_client six ]; - }}/${pythonPackages.python.sitePackages}"; + paths = with python3Packages; [ websocket_client six ]; + }}/${python3Packages.python.sitePackages}"; }) ]; diff --git a/pkgs/applications/networking/irc/weechat/scripts/weechat-otr/default.nix b/pkgs/applications/networking/irc/weechat/scripts/weechat-otr/default.nix new file mode 100644 index 000000000000..9682aa3169ac --- /dev/null +++ b/pkgs/applications/networking/irc/weechat/scripts/weechat-otr/default.nix @@ -0,0 +1,64 @@ +{ stdenv, substituteAll, buildEnv, fetchgit, fetchFromGitHub, python3Packages, gmp }: + +let + # pure-python-otr (potr) requires an older version of pycrypto, which is + # not compatible with pycryptodome. Therefore, the latest patched version + # of pycrypto will be fetched from the Debian project. + # https://security-tracker.debian.org/tracker/source-package/python-crypto + + pycrypto = python3Packages.buildPythonPackage rec { + pname = "pycrypto"; + version = "2.6.1-10"; + + src = fetchgit { + url = "https://salsa.debian.org/sramacher/python-crypto.git"; + rev = "debian/${version}"; + sha256 = "10rgq8bmjfpiqqa1g1p1hh7pxlxs7x0nawvk6zip0pd6x2vsr661"; + }; + + buildInputs = [ gmp ]; + + preConfigure = '' + sed -i 's,/usr/include,/no-such-dir,' configure + sed -i "s!,'/usr/include/'!!" setup.py + ''; + }; + + potr = python3Packages.potr.overridePythonAttrs (oldAttrs: { + propagatedBuildInputs = [ pycrypto ]; + }); +in stdenv.mkDerivation rec { + pname = "weechat-otr"; + version = "1.9.2"; + + src = fetchFromGitHub { + repo = pname; + owner = "mmb"; + rev = "v${version}"; + sha256 = "1lngv98y6883vk8z2628cl4d5y8jxy39w8245gjdvshl8g18k5s2"; + }; + + patches = [ + (substituteAll { + src = ./libpath.patch; + env = "${buildEnv { + name = "weechat-otr-env"; + paths = [ potr pycrypto ]; + }}/${python3Packages.python.sitePackages}"; + }) + ]; + + passthru.scripts = [ "weechat_otr.py" ]; + + installPhase = '' + mkdir -p $out/share + cp weechat_otr.py $out/share/weechat_otr.py + ''; + + meta = with stdenv.lib; { + homepage = "https://github.com/mmb/weechat-otr"; + license = licenses.gpl3; + maintainers = with maintainers; [ geistesk ]; + description = "WeeChat script for Off-the-Record messaging"; + }; +} diff --git a/pkgs/applications/networking/irc/weechat/scripts/weechat-otr/libpath.patch b/pkgs/applications/networking/irc/weechat/scripts/weechat-otr/libpath.patch new file mode 100644 index 000000000000..a7b77ed9b602 --- /dev/null +++ b/pkgs/applications/networking/irc/weechat/scripts/weechat-otr/libpath.patch @@ -0,0 +1,13 @@ +diff --git a/weechat_otr.py b/weechat_otr.py +index 0ccfb35..c42bebf 100644 +--- a/weechat_otr.py ++++ b/weechat_otr.py +@@ -41,6 +41,8 @@ import shlex + import shutil + import sys + ++sys.path.append('@env@') ++ + import potr + import weechat + diff --git a/pkgs/applications/networking/irc/weechat/scripts/weechat-xmpp/default.nix b/pkgs/applications/networking/irc/weechat/scripts/weechat-xmpp/default.nix deleted file mode 100644 index dad5b9c5e02a..000000000000 --- a/pkgs/applications/networking/irc/weechat/scripts/weechat-xmpp/default.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ stdenv, fetchFromGitHub, xmpppy, pydns, substituteAll, buildEnv }: - -stdenv.mkDerivation { - name = "weechat-jabber-2017-08-30"; - - src = fetchFromGitHub { - repo = "weechat-xmpp"; - owner = "sleduc"; - sha256 = "0s02xs0ynld9cxxzj07al364sfglyc5ir1i82133mq0s8cpphnxv"; - rev = "8f6c21f5a160c9318c7a2d8fd5dcac7ab2e0d843"; - }; - - installPhase = '' - mkdir -p $out/share - cp jabber.py $out/share/jabber.py - ''; - - patches = [ - (substituteAll { - src = ./libpath.patch; - env = "${buildEnv { - name = "weechat-xmpp-env"; - paths = [ pydns xmpppy ]; - }}/lib/python2.7/site-packages"; - }) - ]; - - passthru.scripts = [ "jabber.py" ]; - - meta = with stdenv.lib; { - description = "A fork of the jabber plugin for weechat"; - homepage = "https://github.com/sleduc/weechat-xmpp"; - maintainers = with maintainers; [ ma27 ]; - license = licenses.gpl3Plus; - }; -} diff --git a/pkgs/applications/networking/irc/weechat/scripts/weechat-xmpp/libpath.patch b/pkgs/applications/networking/irc/weechat/scripts/weechat-xmpp/libpath.patch deleted file mode 100644 index 372c83944a27..000000000000 --- a/pkgs/applications/networking/irc/weechat/scripts/weechat-xmpp/libpath.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff --git a/jabber.py b/jabber.py -index 27006a3..e53c2c0 100644 ---- a/jabber.py -+++ b/jabber.py -@@ -95,6 +95,11 @@ SCRIPT_COMMAND = SCRIPT_NAME - import re - import warnings - -+import sys -+ -+sys.path.append('@env@') -+ -+ - import_ok = True - - try: diff --git a/pkgs/applications/networking/irc/weechat/wrapper.nix b/pkgs/applications/networking/irc/weechat/wrapper.nix index e6fa95488e10..5c06bb8517a2 100644 --- a/pkgs/applications/networking/irc/weechat/wrapper.nix +++ b/pkgs/applications/networking/irc/weechat/wrapper.nix @@ -1,5 +1,5 @@ { lib, runCommand, writeScriptBin, buildEnv -, pythonPackages, perlPackages, runtimeShell +, python3Packages, perlPackages, runtimeShell }: weechat: @@ -17,11 +17,11 @@ let in rec { python = (simplePlugin "python") // { extraEnv = '' - export PATH="${pythonPackages.python}/bin:$PATH" + export PATH="${python3Packages.python}/bin:$PATH" ''; withPackages = pkgsFun: (python // { extraEnv = '' - export PYTHONHOME="${pythonPackages.python.withPackages pkgsFun}" + export PYTHONHOME="${python3Packages.python.withPackages pkgsFun}" ''; }); }; diff --git a/pkgs/applications/science/biology/xenomapper/default.nix b/pkgs/applications/science/biology/xenomapper/default.nix new file mode 100644 index 000000000000..cc235c4ca996 --- /dev/null +++ b/pkgs/applications/science/biology/xenomapper/default.nix @@ -0,0 +1,23 @@ +{buildPythonPackage, lib, fetchFromGitHub, statistics}: + +buildPythonPackage rec { + pname = "xenomapper"; + version = "1.0.2"; + + src = fetchFromGitHub { + owner = "genomematt"; + repo = pname; + rev = "v${version}"; + sha256 = "0mnmfzlq5mhih6z8dq5bkx95vb8whjycz9mdlqwbmlqjb3gb3zhr"; + }; + + propagatedBuildInputs = [ statistics ]; + + meta = with lib; { + homepage = "http://github.com/genomematt/xenomapper"; + description = "A utility for post processing mapped reads that have been aligned to a primary genome and a secondary genome and binning reads into species specific, multimapping in each species, unmapped and unassigned bins"; + license = licenses.gpl3; + platforms = platforms.all; + maintainers = [ maintainers.jbedo ]; + }; +} diff --git a/pkgs/applications/video/kodi/default.nix b/pkgs/applications/video/kodi/default.nix index 73bcdadbc594..035572099751 100644 --- a/pkgs/applications/video/kodi/default.nix +++ b/pkgs/applications/video/kodi/default.nix @@ -43,15 +43,15 @@ assert vdpauSupport -> libvdpau != null; assert useWayland -> wayland != null && wayland-protocols != null && waylandpp != null && libxkbcommon != null; let - kodiReleaseDate = "20190627"; - kodiVersion = "18.3"; + kodiReleaseDate = "20190901"; + kodiVersion = "18.4"; rel = "Leia"; kodi_src = fetchFromGitHub { owner = "xbmc"; repo = "xbmc"; rev = "${kodiVersion}-${rel}"; - sha256 = "18fbl5hs3aqccrn0m3x7hp95wlafjav0yvrwmb5q3gj24mwf6jld"; + sha256 = "1m0295czxabdcqyqf5m94av9d88pzhnzjvyfs1q07xqq82h313p7"; }; cmakeProto = fetchurl { diff --git a/pkgs/applications/video/mkvtoolnix/default.nix b/pkgs/applications/video/mkvtoolnix/default.nix index 42b40ade271f..04ddbbb8c06a 100644 --- a/pkgs/applications/video/mkvtoolnix/default.nix +++ b/pkgs/applications/video/mkvtoolnix/default.nix @@ -13,13 +13,13 @@ with stdenv.lib; stdenv.mkDerivation rec { pname = "mkvtoolnix"; - version = "36.0.0"; + version = "37.0.0"; src = fetchFromGitLab { owner = "mbunkus"; repo = "mkvtoolnix"; rev = "release-${version}"; - sha256 = "114j9n2m6dkh7vqzyhcsjzzffadr0lzyjmh31cbl4mvvkg9j5z6r"; + sha256 = "0r1qzvqc6xx7rmv4v4fjc70cqy832h8v0fjf6c5ljbg1c6pgkl0l"; }; nativeBuildInputs = [ diff --git a/pkgs/applications/virtualization/docker-compose/default.nix b/pkgs/applications/virtualization/docker-compose/default.nix index 2d983d009f1d..b1c42b099b67 100644 --- a/pkgs/applications/virtualization/docker-compose/default.nix +++ b/pkgs/applications/virtualization/docker-compose/default.nix @@ -5,6 +5,7 @@ , six, texttable, websocket_client, cached-property , enum34, functools32, paramiko }: + buildPythonApplication rec { version = "1.24.1"; pname = "docker-compose"; @@ -32,15 +33,17 @@ buildPythonApplication rec { ''; postInstall = '' - mkdir -p $out/share/bash-completion/completions/ - cp contrib/completion/bash/docker-compose $out/share/bash-completion/completions/docker-compose + install -D -m 0444 contrib/completion/bash/docker-compose \ + $out/share/bash-completion/completions/docker-compose + + install -D -m 0444 contrib/completion/zsh/_docker-compose \ + $out/share/zsh-completion/zsh/site-functions/_docker-compose ''; meta = with stdenv.lib; { homepage = https://docs.docker.com/compose/; description = "Multi-container orchestration for Docker"; license = licenses.asl20; - maintainers = with maintainers; [ - ]; + maintainers = [ ]; }; } diff --git a/pkgs/applications/virtualization/virtualbox/default.nix b/pkgs/applications/virtualization/virtualbox/default.nix index 20930b865370..104fc8a89bf6 100644 --- a/pkgs/applications/virtualization/virtualbox/default.nix +++ b/pkgs/applications/virtualization/virtualbox/default.nix @@ -1,8 +1,8 @@ { config, stdenv, fetchurl, lib, iasl, dev86, pam, libxslt, libxml2, wrapQtAppsHook , libX11, xorgproto, libXext, libXcursor, libXmu, libIDL, SDL, libcap, libGL , libpng, glib, lvm2, libXrandr, libXinerama, libopus, qtbase, qtx11extras -, qttools, pkgconfig, which, docbook_xsl, docbook_xml_dtd_43 -, alsaLib, curl, libvpx, nettools, dbus +, qttools, qtsvg, qtwayland, pkgconfig, which, docbook_xsl, docbook_xml_dtd_43 +, alsaLib, curl, libvpx, nettools, dbus, substituteAll , makeself, perl , javaBindings ? true, jdk ? null # Almost doesn't affect closure size , pythonBindings ? false, python3 ? null @@ -37,7 +37,7 @@ in stdenv.mkDerivation { nativeBuildInputs = [ pkgconfig which docbook_xsl docbook_xml_dtd_43 patchelfUnstable ] ++ optional (!headless) wrapQtAppsHook; - # Wrap manually because we just need to wrap one executable + # Wrap manually because we wrap just a small number of executables. dontWrapQtApps = true; buildInputs = @@ -79,6 +79,17 @@ in stdenv.mkDerivation { patches = optional enableHardening ./hardened.patch + # When hardening is enabled, we cannot use wrapQtApp to ensure that VirtualBoxVM sees + # the correct environment variables needed for Qt to work, specifically QT_PLUGIN_PATH. + # This is because VirtualBoxVM would detect that it is wrapped that and refuse to run, + # and also because it would unset QT_PLUGIN_PATH for security reasons. We work around + # these issues by patching the code to set QT_PLUGIN_PATH to the necessary paths, + # after the code that unsets it. Note that qtsvg is included so that SVG icons from + # the user's icon theme can be loaded. + ++ optional (!headless && enableHardening) (substituteAll { + src = ./qt-env-vars.patch; + qtPluginPath = "${qtbase.bin}/${qtbase.qtPluginPrefix}:${qtsvg.bin}/${qtbase.qtPluginPrefix}:${qtwayland.bin}/${qtbase.qtPluginPrefix}"; + }) ++ [ ./qtx11extras.patch ]; @@ -184,6 +195,11 @@ in stdenv.mkDerivation { preFixup = optionalString (!headless) '' wrapQtApp $out/bin/VirtualBox + '' + # If hardening is disabled, wrap the VirtualBoxVM binary instead of patching + # the source code (see postPatch). + + optionalString (!headless && !enableHardening) '' + wrapQtApp $out/libexec/virtualbox/VirtualBoxVM ''; passthru = { diff --git a/pkgs/applications/virtualization/virtualbox/qt-env-vars.patch b/pkgs/applications/virtualization/virtualbox/qt-env-vars.patch new file mode 100644 index 000000000000..ad1d1fd11f87 --- /dev/null +++ b/pkgs/applications/virtualization/virtualbox/qt-env-vars.patch @@ -0,0 +1,14 @@ +--- a/src/VBox/HostDrivers/Support/SUPR3HardenedMain.cpp ++++ b/src/VBox/HostDrivers/Support/SUPR3HardenedMain.cpp +@@ -2131,6 +2131,11 @@ static void supR3HardenedMainPurgeEnvironment(char **envp) + /** @todo Call NT API to do the same. */ + #endif + } ++ ++ /* ++ * NixOS hack: Set QT_PLUGIN_PATH to make Qt find plugins. ++ */ ++ setenv("QT_PLUGIN_PATH", "@qtPluginPath@", /*overwrite=*/ 1); + } + + diff --git a/pkgs/applications/window-managers/i3/default.nix b/pkgs/applications/window-managers/i3/default.nix index 31a96ba1788b..403d9939e134 100644 --- a/pkgs/applications/window-managers/i3/default.nix +++ b/pkgs/applications/window-managers/i3/default.nix @@ -5,11 +5,11 @@ stdenv.mkDerivation rec { pname = "i3"; - version = "4.17"; + version = "4.17.1"; src = fetchurl { url = "https://i3wm.org/downloads/${pname}-${version}.tar.bz2"; - sha256 = "1z8qmkkq9dhqmqy8sjw3rnpnmnb8v7lr456bs0qzp23bgpj17gjf"; + sha256 = "0iazv2i2rgmakzh95pgj6iapyzn7bdpcbcd35a79mhlml4ry33qy"; }; nativeBuildInputs = [ which pkgconfig makeWrapper ]; diff --git a/pkgs/applications/window-managers/i3/lock-fancy.nix b/pkgs/applications/window-managers/i3/lock-fancy.nix index f6d797c98e1e..4ca69ce31b44 100644 --- a/pkgs/applications/window-managers/i3/lock-fancy.nix +++ b/pkgs/applications/window-managers/i3/lock-fancy.nix @@ -23,7 +23,7 @@ stdenv.mkDerivation rec { sed -i -e 's|icon="/usr/share/i3lock-fancy/icons/lock.png"|icon="'$out'/share/i3lock-fancy/icons/lock.png"|' i3lock-fancy sed -i -e "s|getopt |${getopt}/bin/getopt |" i3lock-fancy sed -i -e "s|fc-match |${fontconfig.bin}/bin/fc-match |" i3lock-fancy - sed -i -e "s|shot=(import -window root)|shot=(${scrot}/bin/scrot -z)|" i3lock-fancy + sed -i -e "s|shot=(import -window root)|shot=(${scrot}/bin/scrot -z -o)|" i3lock-fancy rm Makefile ''; installPhase = '' diff --git a/pkgs/applications/window-managers/icewm/default.nix b/pkgs/applications/window-managers/icewm/default.nix index 71a4ec3549a7..f388c2d99db2 100644 --- a/pkgs/applications/window-managers/icewm/default.nix +++ b/pkgs/applications/window-managers/icewm/default.nix @@ -1,36 +1,40 @@ -{ stdenv, fetchurl, cmake, gettext +{ stdenv, fetchFromGitHub, cmake, gettext, perl, asciidoc , libjpeg, libtiff, libungif, libpng, imlib, expat , freetype, fontconfig, pkgconfig, gdk-pixbuf , mkfontdir, libX11, libXft, libXext, libXinerama , libXrandr, libICE, libSM, libXpm, libXdmcp, libxcb -, libpthreadstubs, pcre }: +, libpthreadstubs, pcre, libXdamage, libXcomposite, libXfixes +, libsndfile, fribidi }: -with stdenv.lib; stdenv.mkDerivation rec { pname = "icewm"; - version = "1.4.2"; + version = "1.6.0"; - buildInputs = - [ cmake gettext libjpeg libtiff libungif libpng imlib expat - freetype fontconfig pkgconfig gdk-pixbuf mkfontdir libX11 - libXft libXext libXinerama libXrandr libICE libSM libXpm - libXdmcp libxcb libpthreadstubs pcre ]; - - src = fetchurl { - url = "https://github.com/bbidulock/icewm/archive/${version}.tar.gz"; - sha256 = "05chzjjnb4n4j05ld2gmhhr07c887qb4j9inwg9izhvml51af1bw"; + src = fetchFromGitHub { + owner = "bbidulock"; + repo = "icewm"; + rev = version; + sha256 = "1l8hjmb19d7ds7z21cx207h86wkjcmmmamcnalgkwh4alvbawc2p"; }; - preConfigure = '' - export cmakeFlags="-DPREFIX=$out -DCFGDIR=/etc/icewm" - ''; + nativeBuildInputs = [ cmake pkgconfig perl asciidoc ]; - patches = [ ./fix-strlcat_strlcpy.patch ] ++ - stdenv.lib.optional stdenv.hostPlatform.isMusl ./musl.patch; + buildInputs = [ + gettext libjpeg libtiff libungif libpng imlib expat + freetype fontconfig gdk-pixbuf mkfontdir libX11 + libXft libXext libXinerama libXrandr libICE libSM libXpm + libXdmcp libxcb libpthreadstubs pcre libsndfile fribidi + libXdamage libXcomposite libXfixes + ]; + + cmakeFlags = [ "-DPREFIX=$out" "-DCFGDIR=/etc/icewm" ]; - patchFlags = [ "-p0" ]; + # install legacy themes + postInstall = '' + cp -r ../lib/themes/{gtk2,Natural,nice,nice2,warp3,warp4,yellowmotif} $out/share/icewm/themes/ + ''; - meta = { + meta = with stdenv.lib; { description = "A simple, lightweight X window manager"; longDescription = '' IceWM is a window manager for the X Window System. The goal of diff --git a/pkgs/applications/window-managers/icewm/fix-strlcat_strlcpy.patch b/pkgs/applications/window-managers/icewm/fix-strlcat_strlcpy.patch deleted file mode 100644 index 9721e125b051..000000000000 --- a/pkgs/applications/window-managers/icewm/fix-strlcat_strlcpy.patch +++ /dev/null @@ -1,236 +0,0 @@ ---- src/apppstatus.cc 2017-07-30 10:59:06.000000000 +0200 -+++ src/apppstatus.cc 2017-08-09 09:12:54.332052762 +0200 -@@ -366,7 +366,7 @@ - sscanf(p, "%s %s %s %s %s", val[0], val[1], val[2], val[3], val[4]); - for (i = 0; i < 4; i++) { - if (strncmp(val[i+1], "?", 1) != 0) -- strlcpy(phoneNumber, val[i+1], sizeof phoneNumber); -+ my_strlcpy(phoneNumber, val[i+1], sizeof phoneNumber); - } - } - ---- src/base.h 2017-07-30 10:59:06.000000000 +0200 -+++ src/base.h 2017-08-09 09:11:13.082025484 +0200 -@@ -44,9 +44,9 @@ - /*** String Functions *********************************************************/ - - /* Prefer this as a safer alternative over strcpy. Return strlen(from). */ --size_t strlcpy(char *dest, const char *from, size_t dest_size); -+size_t my_strlcpy(char *dest, const char *from, size_t dest_size); - /* Prefer this over strcat. Return strlen(dest) + strlen(from). */ --size_t strlcat(char *dest, const char *from, size_t dest_size); -+size_t my_strlcat(char *dest, const char *from, size_t dest_size); - - char *newstr(char const *str); - char *newstr(char const *str, int len); ---- src/gnome2.cc 2017-07-30 10:59:06.000000000 +0200 -+++ src/gnome2.cc 2017-08-09 09:11:21.819027846 +0200 -@@ -158,8 +158,8 @@ - const int plen = strlen(fPath); - - char tmp[256]; -- strlcpy(tmp, fPath, sizeof tmp); -- strlcat(tmp, "/.directory", sizeof tmp); -+ my_strlcpy(tmp, fPath, sizeof tmp); -+ my_strlcat(tmp, "/.directory", sizeof tmp); - - if (isDir && !stat(tmp, &sb)) { // looks like kde/gnome1 style - -@@ -279,8 +279,8 @@ - - while ((file = readdir(dir)) != NULL) { - char fullpath[256]; -- strlcpy(fullpath, dirname, sizeof fullpath); -- strlcat(fullpath, file->d_name, sizeof fullpath); -+ my_strlcpy(fullpath, dirname, sizeof fullpath); -+ my_strlcat(fullpath, file->d_name, sizeof fullpath); - GnomeDesktopItem *ditem = - gnome_desktop_item_new_from_file(fullpath, - (GnomeDesktopItemLoadFlags)0, ---- src/icehelp.cc 2017-07-30 10:59:06.000000000 +0200 -+++ src/icehelp.cc 2017-08-09 09:11:31.490030459 +0200 -@@ -1790,8 +1790,8 @@ - const size_t size = 9 + strlen(cfmt) + strlen(cstr) + strlen(crea); - char *cbuf = (char *)malloc(size); - snprintf(cbuf, size, cfmt, cstr); -- strlcat(cbuf, ":\n ", size); -- strlcat(cbuf, crea, size); -+ my_strlcat(cbuf, ":\n ", size); -+ my_strlcat(cbuf, crea, size); - - node *root = new node(node::div); - flist<node> nodes(root); ---- src/icesm.cc 2017-07-30 10:59:06.000000000 +0200 -+++ src/icesm.cc 2017-08-09 09:13:12.946057758 +0200 -@@ -28,10 +28,10 @@ - wordexp_t w; - if (wordexp(trim(buf), &w, 0) != 0 || w.we_wordc == 0) - return false; -- size_t len = strlcpy(buf, trim(w.we_wordv[0]), bufsiz); -+ size_t len = my_strlcpy(buf, trim(w.we_wordv[0]), bufsiz); - for (size_t k = 1; k < w.we_wordc && len < bufsiz; ++k) { -- strlcat(buf, " ", bufsiz); -- len = strlcat(buf, trim(w.we_wordv[k]), bufsiz); -+ my_strlcat(buf, " ", bufsiz); -+ len = my_strlcat(buf, trim(w.we_wordv[k]), bufsiz); - } - wordfree(&w); - if (len >= bufsiz) -@@ -39,7 +39,7 @@ - #else - char *str = trim(buf); - if (str > buf) -- strlcpy(buf, str, bufsiz); -+ my_strlcpy(buf, str, bufsiz); - #endif - if (buf[0] == '#' || buf[0] == '=') - buf[0] = 0; ---- src/icesound.cc 2017-07-30 10:59:06.000000000 +0200 -+++ src/icesound.cc 2017-08-09 09:11:26.686029161 +0200 -@@ -145,8 +145,8 @@ - char * findSample(int sid) { - char basefname[1024]; - -- strlcpy(basefname, gui_events[sid].name, sizeof basefname); -- strlcat(basefname, ".wav", sizeof basefname); -+ my_strlcpy(basefname, gui_events[sid].name, sizeof basefname); -+ my_strlcat(basefname, ".wav", sizeof basefname); - - return findSample(basefname); - } ---- src/misc.cc 2017-07-30 10:59:06.000000000 +0200 -+++ src/misc.cc 2017-08-09 09:13:39.372064834 +0200 -@@ -448,7 +448,7 @@ - #endif - - /* Prefer this as a safer alternative over strcpy. Return strlen(from). */ --size_t strlcpy(char *dest, const char *from, size_t dest_size) -+size_t my_strlcpy(char *dest, const char *from, size_t dest_size) - { - const char *in = from; - if (dest_size > 0) { -@@ -463,12 +463,12 @@ - } - - /* Prefer this over strcat. Return strlen(dest) + strlen(from). */ --size_t strlcat(char *dest, const char *from, size_t dest_size) -+size_t my_strlcat(char *dest, const char *from, size_t dest_size) - { - char *to = dest; - char *const stop = to + dest_size - 1; - while (to < stop && *to) ++to; -- return to - dest + strlcpy(to, from, dest_size - (to - dest)); -+ return to - dest + my_strlcpy(to, from, dest_size - (to - dest)); - } - - char *newstr(char const *str) { ---- src/strtest.cc 2017-07-30 10:59:06.000000000 +0200 -+++ src/strtest.cc 2017-08-09 09:13:24.395060823 +0200 -@@ -286,63 +286,63 @@ - strtest tester("strlc"); - char d[10] = "@"; - size_t n; -- n = strlcpy(d, "", 0); -+ n = my_strlcpy(d, "", 0); - sequal(d, "@"); - assert(d, n == 0); - -- n = strlcpy(d, "a", 0); -+ n = my_strlcpy(d, "a", 0); - sequal(d, "@"); - assert(d, n == 1); - -- n = strlcpy(d, "", 1); -+ n = my_strlcpy(d, "", 1); - sequal(d, ""); - assert(d, n == 0); - -- n = strlcpy(d, "a", 1); -+ n = my_strlcpy(d, "a", 1); - sequal(d, ""); - assert(d, n == 1); - -- n = strlcpy(d, "a", 2); -+ n = my_strlcpy(d, "a", 2); - sequal(d, "a"); - assert(d, n == 1); - -- n = strlcpy(d, "ab", 2); -+ n = my_strlcpy(d, "ab", 2); - sequal(d, "a"); - assert(d, n == 2); - -- n = strlcpy(d, "ab", 3); -+ n = my_strlcpy(d, "ab", 3); - sequal(d, "ab"); - assert(d, n == 2); - -- n = strlcpy(d, "abc", sizeof d); -+ n = my_strlcpy(d, "abc", sizeof d); - sequal(d, "abc"); - assert(d, n == 3); - -- n = strlcat(d, "def", 4); -+ n = my_strlcat(d, "def", 4); - sequal(d, "abc"); - assert(d, n == 6); - -- n = strlcat(d, "def", sizeof d); -+ n = my_strlcat(d, "def", sizeof d); - sequal(d, "abcdef"); - assert(d, n == 6); - -- n = strlcat(d, "ghijkl", sizeof d); -+ n = my_strlcat(d, "ghijkl", sizeof d); - sequal(d, "abcdefghi"); - assert(d, n == 12); - -- n = strlcpy(d, "123", sizeof d); -+ n = my_strlcpy(d, "123", sizeof d); - sequal(d, "123"); - assert(d, n == 3); - -- n = strlcpy(d, d + 1, sizeof d); -+ n = my_strlcpy(d, d + 1, sizeof d); - sequal(d, "23"); - assert(d, n == 2); - -- n = strlcpy(d, d + 1, sizeof d); -+ n = my_strlcpy(d, d + 1, sizeof d); - sequal(d, "3"); - assert(d, n == 1); - -- n = strlcpy(d, d + 1, sizeof d); -+ n = my_strlcpy(d, d + 1, sizeof d); - sequal(d, ""); - assert(d, n == 0); - } -@@ -418,7 +418,7 @@ - while (a.next()) { - const char *e = a.entry(); - assert(e, strcoll(buf, e) < 0); -- strlcpy(buf, e, sizeof buf); -+ my_strlcpy(buf, e, sizeof buf); - } - assert(buf, strcoll(buf, "~~~~~~~~~") < 0); - } -@@ -437,7 +437,7 @@ - cstring c(s.entry()); - const char *e = c.c_str(); - assert(e, strcoll(buf, e) < 0); -- strlcpy(buf, e, sizeof buf); -+ my_strlcpy(buf, e, sizeof buf); - } - assert(buf, strcoll(buf, "~~~~~~~~~") < 0); - } ---- src/udir.cc 2017-07-30 10:59:06.000000000 +0200 -+++ src/udir.cc 2017-08-09 09:13:28.346061883 +0200 -@@ -66,7 +66,7 @@ - if (impl) { - DirPtr dirp(impl); - if (dirp.next()) { -- strlcpy(fEntry, dirp.name(), sizeof fEntry); -+ my_strlcpy(fEntry, dirp.name(), sizeof fEntry); - return true; - } - } diff --git a/pkgs/applications/window-managers/icewm/musl.patch b/pkgs/applications/window-managers/icewm/musl.patch deleted file mode 100644 index e7d18e312874..000000000000 --- a/pkgs/applications/window-managers/icewm/musl.patch +++ /dev/null @@ -1,23 +0,0 @@ ---- src/ylocale.cc 2017-07-30 10:59:06.000000000 +0200 -+++ src/ylocale.cc 2017-08-09 08:15:50.938841549 +0200 -@@ -55,6 +55,8 @@ - int const codesetItems[] = { - #ifdef CONFIG_NL_CODESETS - CONFIG_NL_CODESETS -+#elif !defined(__GLIBC__) -+ CODESET, 0 - #else - CODESET, _NL_CTYPE_CODESET_NAME, 0 - #endif ---- src/globit.c 2017-07-30 10:59:06.000000000 +0200 -+++ src/globit.c 2017-08-09 08:17:18.691824584 +0200 -@@ -143,7 +143,9 @@ - } else if (*pattern == '~') { - /* yes, tilde */ - is_absolute = 2; -+#if defined(__GLIBC__) - glob_flags |= GLOB_TILDE; -+#endif - /* any slash in the pattern? */ - while (*cp && *cp != '/') - ++cp; |