summary refs log tree commit diff
path: root/pkgs/applications
diff options
context:
space:
mode:
authorVladimír Čunát <vcunat@gmail.com>2016-12-04 10:06:52 +0100
committerVladimír Čunát <vcunat@gmail.com>2016-12-04 10:07:19 +0100
commit3dd219f0717eeb3e144c387d8fbd1aac15aadd4a (patch)
treee85b74f4d623aa8eeea86ddf869f3ca8d4d0a67d /pkgs/applications
parent1191dac0f90d755cc57ef48ba1b413ff7f53ab17 (diff)
parentcdafc8e70d13e21c258c6ad19b7dfae060fc0639 (diff)
downloadnixpkgs-3dd219f0717eeb3e144c387d8fbd1aac15aadd4a.tar
nixpkgs-3dd219f0717eeb3e144c387d8fbd1aac15aadd4a.tar.gz
nixpkgs-3dd219f0717eeb3e144c387d8fbd1aac15aadd4a.tar.bz2
nixpkgs-3dd219f0717eeb3e144c387d8fbd1aac15aadd4a.tar.lz
nixpkgs-3dd219f0717eeb3e144c387d8fbd1aac15aadd4a.tar.xz
nixpkgs-3dd219f0717eeb3e144c387d8fbd1aac15aadd4a.tar.zst
nixpkgs-3dd219f0717eeb3e144c387d8fbd1aac15aadd4a.zip
Merge "forked" staging branches together
Diffstat (limited to 'pkgs/applications')
-rw-r--r--pkgs/applications/editors/neovim/qt.nix4
-rw-r--r--pkgs/applications/graphics/vimiv/default.nix74
-rw-r--r--pkgs/applications/graphics/vimiv/fixes.patch128
-rw-r--r--pkgs/applications/video/mkvtoolnix/default.nix4
4 files changed, 206 insertions, 4 deletions
diff --git a/pkgs/applications/editors/neovim/qt.nix b/pkgs/applications/editors/neovim/qt.nix
index df98264d969..07660eaddf6 100644
--- a/pkgs/applications/editors/neovim/qt.nix
+++ b/pkgs/applications/editors/neovim/qt.nix
@@ -3,7 +3,7 @@
 }:
 
 let # not very usable ATM
-  version = "0.2.3";
+  version = "0.2.4";
 in
 stdenv.mkDerivation {
   name = "neovim-qt-${version}";
@@ -12,7 +12,7 @@ stdenv.mkDerivation {
     owner = "equalsraf";
     repo = "neovim-qt";
     rev = "v${version}";
-    sha256 = "0ichqph7nfw3934jf0sp81bqd376xna3f899cc2xg88alb4f16dv";
+    sha256 = "0yf9wwkl0lbbj3vyf8hxnlsk7jhk5ggivszyqxply69dbar9ww59";
   };
 
   # It tries to download libmsgpack; let's use ours.
diff --git a/pkgs/applications/graphics/vimiv/default.nix b/pkgs/applications/graphics/vimiv/default.nix
new file mode 100644
index 00000000000..bb8437153ca
--- /dev/null
+++ b/pkgs/applications/graphics/vimiv/default.nix
@@ -0,0 +1,74 @@
+{ lib, python3Packages, fetchFromGitHub, imagemagick, librsvg, gtk3, jhead
+, hicolor_icon_theme, defaultIconTheme
+
+# Test requirements
+, dbus, xvfb_run, xdotool
+}:
+
+python3Packages.buildPythonApplication rec {
+  name = "vimiv";
+  version = "0.7.2";
+
+  src = fetchFromGitHub {
+    owner = "karlch";
+    repo = "vimiv";
+    rev = "v${version}";
+    sha256 = "1g97ms84xk4ci4crq9wdc3744jnrqkq2qz9sg69lhm9sr5f68bw4";
+  };
+
+  testimages = fetchFromGitHub {
+    owner = "karlch";
+    repo = "vimiv";
+    rev = "6f4d1372b27f2065c56eafdb521d230d9bb8f4e2";
+    sha256 = "0a3aybzpms0381dz9japhm4c7j5klhmw91prcac6zaww6x34nmxb";
+  };
+
+  patches = [ ./fixes.patch ];
+
+  postPatch = ''
+    patchShebangs scripts/install_icons.sh
+    sed -i -e 's,/usr,,g' -e '/setup\.py/d' Makefile scripts/install_icons.sh
+
+    sed -i \
+      -e 's,/etc/vimiv/\(vimivrc\|keys\.conf\),'"$out"'&,g' \
+      man/* vimiv/parser.py
+
+    sed -i \
+      -e 's!"mogrify"!"${imagemagick}/bin/mogrify"!g' \
+      -e '/cmd *=/s!"jhead"!"${jhead}/bin/jhead"!g' \
+      vimiv/imageactions.py
+  '';
+
+  checkInputs = [ python3Packages.nose dbus.daemon xvfb_run xdotool ];
+  buildInputs = [ hicolor_icon_theme defaultIconTheme librsvg ];
+  propagatedBuildInputs = with python3Packages; [ pillow pygobject3 gtk3 ];
+
+  makeWrapperArgs = [
+    "--prefix GI_TYPELIB_PATH : \"$GI_TYPELIB_PATH\""
+    "--suffix XDG_DATA_DIRS : \"$XDG_ICON_DIRS:$out/share\""
+    "--set GDK_PIXBUF_MODULE_FILE \"$GDK_PIXBUF_MODULE_FILE\""
+  ];
+
+  postCheck = ''
+    # Some tests assume that the directory only contains one vimiv directory
+    rm -rf vimiv.egg-info vimiv.desktop
+
+    # Re-use the wrapper args from the main program
+    makeWrapper "$SHELL" run-tests $makeWrapperArgs
+
+    cp -Rd --no-preserve=mode "$testimages/testimages" vimiv/testimages
+    HOME="$(mktemp -d)" PATH="$out/bin:$PATH" \
+      xvfb-run -s '-screen 0 800x600x24' dbus-run-session \
+      --config-file=${dbus.daemon}/share/dbus-1/session.conf \
+      ./run-tests -c 'python tests/main_test.py && nosetests -vx'
+  '';
+
+  postInstall = "make DESTDIR=\"$out\" install";
+
+  meta = {
+    homepage = "https://github.com/karlch/vimiv";
+    description = "An image viewer with Vim-like keybindings";
+    license = lib.licenses.mit;
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/pkgs/applications/graphics/vimiv/fixes.patch b/pkgs/applications/graphics/vimiv/fixes.patch
new file mode 100644
index 00000000000..09c06e43058
--- /dev/null
+++ b/pkgs/applications/graphics/vimiv/fixes.patch
@@ -0,0 +1,128 @@
+Patch submitted upstream at https://github.com/karlch/vimiv/pull/32
+
+diff --git a/tests/main_test.py b/tests/main_test.py
+index a1870e7..2edc86d 100644
+--- a/tests/main_test.py
++++ b/tests/main_test.py
+@@ -15,7 +15,7 @@ class MainTest(TestCase):
+ 
+     def test_main_until_quit(self):
+         """Run through vimiv main once."""
+-        v_main.main(True)
++        v_main.main([], True)
+ 
+ 
+ if __name__ == '__main__':
+diff --git a/vimiv/helpers.py b/vimiv/helpers.py
+index 22f0115..bfaf016 100644
+--- a/vimiv/helpers.py
++++ b/vimiv/helpers.py
+@@ -3,7 +3,6 @@
+ """Wrappers around standard library functions used in vimiv."""
+ 
+ import os
+-from subprocess import Popen, PIPE
+ from gi import require_version
+ require_version('Gtk', '3.0')
+ from gi.repository import Gtk
+@@ -20,17 +19,17 @@ scrolltypes["K"] = (Gtk.ScrollType.START, False)
+ scrolltypes["L"] = (Gtk.ScrollType.END, True)
+ 
+ # A list of all external commands
+-external_commands = []
+-try:
+-    p = Popen('echo $PATH | tr \':\' \'\n\' | xargs -n 1 ls -1',
+-              stdout=PIPE, stderr=PIPE, shell=True)
+-    out, err = p.communicate()
+-    out = out.decode('utf-8').split()
+-    for cmd in sorted(list(set(out))):
+-        external_commands.append("!" + cmd)
+-except:
+-    external_commands = []
+-external_commands = tuple(external_commands)
++pathenv = os.environ.get('PATH')
++if pathenv is not None:
++    executables = set()
++    for path in pathenv.split(':'):
++        try:
++            executables |= set(["!" + e for e in os.listdir(path)])
++        except OSError:
++            continue
++    external_commands = tuple(sorted(list(executables)))
++else:
++    external_commands = ()
+ 
+ 
+ def listdir_wrapper(path, show_hidden=False):
+diff --git a/vimiv/imageactions.py b/vimiv/imageactions.py
+index d92eb73..b9bc986 100644
+--- a/vimiv/imageactions.py
++++ b/vimiv/imageactions.py
+@@ -157,8 +157,8 @@ class Thumbnails:
+             # Correct name
+             thumb_ext = ".thumbnail_%dx%d" % (self.thumbsize[0],
+                                               self.thumbsize[1])
+-            outfile_ext = infile.split(".")[0] + thumb_ext + ".png"
+-            outfile_base = os.path.basename(outfile_ext)
++            infile_base = os.path.basename(infile)
++            outfile_base = infile_base.split(".")[0] + thumb_ext + ".png"
+             outfile = os.path.join(self.directory, outfile_base)
+             # Only if they aren't cached already
+             if outfile_base not in self.thumbnails:
+diff --git a/vimiv/main.py b/vimiv/main.py
+index a0e38cf..39f7407 100644
+--- a/vimiv/main.py
++++ b/vimiv/main.py
+@@ -27,7 +27,7 @@ from vimiv.mark import Mark
+ from vimiv.information import Information
+ 
+ 
+-def main(running_tests=False):
++def main(arguments, running_tests=False):
+     """Starting point for vimiv.
+ 
+     Args:
+@@ -36,7 +36,7 @@ def main(running_tests=False):
+     parser = get_args()
+     parse_dirs()
+     settings = parse_config()
+-    settings = parse_args(parser, settings)
++    settings = parse_args(parser, settings, arguments)
+ 
+     args = settings["GENERAL"]["paths"]
+ 
+diff --git a/vimiv/parser.py b/vimiv/parser.py
+index 874a538..9d5afce 100644
+--- a/vimiv/parser.py
++++ b/vimiv/parser.py
+@@ -56,7 +56,7 @@ def get_args():
+     return parser
+ 
+ 
+-def parse_args(parser, settings, arguments=None):
++def parse_args(parser, settings, arguments):
+     """Parse the arguments and return the modified settings.
+ 
+     Args:
+@@ -66,10 +66,7 @@ def parse_args(parser, settings, arguments=None):
+ 
+     Return: Modified settings after parsing the arguments.
+     """
+-    if arguments:
+-        args = parser.parse_args(arguments)
+-    else:
+-        args = parser.parse_args()
++    args = parser.parse_args(arguments)
+     if args.show_version:
+         information = Information()
+         print(information.get_version())
+diff --git a/vimiv/vimiv b/vimiv/vimiv
+index 5497e08..57f34f1 100755
+--- a/vimiv/vimiv
++++ b/vimiv/vimiv
+@@ -5,4 +5,4 @@ import sys
+ import vimiv
+ 
+ if __name__ == '__main__':
+-    sys.exit(vimiv.main.main())
++    sys.exit(vimiv.main.main(sys.argv))
diff --git a/pkgs/applications/video/mkvtoolnix/default.nix b/pkgs/applications/video/mkvtoolnix/default.nix
index 0af19aeca95..9c987534065 100644
--- a/pkgs/applications/video/mkvtoolnix/default.nix
+++ b/pkgs/applications/video/mkvtoolnix/default.nix
@@ -10,13 +10,13 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   name = "mkvtoolnix-${version}";
-  version = "9.5.0";
+  version = "9.6.0";
 
   src = fetchFromGitHub {
     owner = "mbunkus";
     repo = "mkvtoolnix";
     rev = "release-${version}";
-    sha256 = "1v6rqlb5srhwzad45b50pvfbi1c9n719ihi54hzbkzklj7h4s70h";
+    sha256 = "14v6iclzkqxibzcdxr65bb5frmnsjyyly0d3lwv1gg7g1mkcw3jd";
   };
 
   nativeBuildInputs = [ pkgconfig autoconf automake gettext ruby ];