summary refs log tree commit diff
path: root/pkgs/os-specific/linux/v4l-utils
diff options
context:
space:
mode:
authorNikolay Amiantov <ab@fmap.me>2017-04-02 23:43:13 +0300
committerNikolay Amiantov <ab@fmap.me>2017-04-02 23:55:13 +0300
commitfda2590abb81795e0e5b90d4f5fd5f40f2ce3242 (patch)
treec1405fd1ff1ee5bf6dfffe5cc23b8fb7008b4649 /pkgs/os-specific/linux/v4l-utils
parent74e2f482fe6821fab0c335f02690d8a48fbbdcbe (diff)
downloadnixpkgs-fda2590abb81795e0e5b90d4f5fd5f40f2ce3242.tar
nixpkgs-fda2590abb81795e0e5b90d4f5fd5f40f2ce3242.tar.gz
nixpkgs-fda2590abb81795e0e5b90d4f5fd5f40f2ce3242.tar.bz2
nixpkgs-fda2590abb81795e0e5b90d4f5fd5f40f2ce3242.tar.lz
nixpkgs-fda2590abb81795e0e5b90d4f5fd5f40f2ce3242.tar.xz
nixpkgs-fda2590abb81795e0e5b90d4f5fd5f40f2ce3242.tar.zst
nixpkgs-fda2590abb81795e0e5b90d4f5fd5f40f2ce3242.zip
v4l_utils: 1.10.1 -> 1.12.3
Add CLI utils-only mode.
Use flags instead of null's.
Move to Qt 5.
Diffstat (limited to 'pkgs/os-specific/linux/v4l-utils')
-rw-r--r--pkgs/os-specific/linux/v4l-utils/default.nix54
1 files changed, 25 insertions, 29 deletions
diff --git a/pkgs/os-specific/linux/v4l-utils/default.nix b/pkgs/os-specific/linux/v4l-utils/default.nix
index 11a9808392a..c0e065b3b55 100644
--- a/pkgs/os-specific/linux/v4l-utils/default.nix
+++ b/pkgs/os-specific/linux/v4l-utils/default.nix
@@ -1,54 +1,50 @@
-{ stdenv, fetchurl, pkgconfig
-, libjpeg
-, alsaLib ? null
-, libX11 ? null
-, qt4 ? null # The default is set to qt4 in all-packages.nix
-, qt5 ? null
+{ stdenv, lib, fetchurl, pkgconfig, perl, makeQtWrapper
+, libjpeg, udev
+, withUtils ? true
+, withGUI ? true, alsaLib, libX11, qtbase, mesa_glu
 }:
 
 # See libv4l in all-packages.nix for the libs only (overrides alsa, libX11 & QT)
 
-assert qt4 != null -> qt5 == null;
-assert qt5 != null -> qt4 == null;
-
-let
-  inherit (stdenv.lib) optional;
-in
-
 stdenv.mkDerivation rec {
-  name = "v4l-utils-1.10.1";
+  name = "v4l-utils-${version}";
+  version = "1.12.3";
 
   src = fetchurl {
     url = "http://linuxtv.org/downloads/v4l-utils/${name}.tar.bz2";
-    sha256 = "1h1nhg5cmmzlbipak526nk4bm6d0yb217mll75f3rpg7kz1cqiv1";
+    sha256 = "0vpl3jl0x441y7b5cn7zhdsyi954hp9h2p30jhnr1zkx1rpxsiss";
   };
 
   outputs = [ "out" "dev" ];
 
-  configureFlags = [
-    "--enable-libv4l"
-  ] ++ (if (alsaLib != null && libX11 != null && (qt4 != null || qt5 != null)) then [
-    "--with-udevdir=\${out}/lib/udev"
-    "--enable-v4l-utils"
-    "--enable-qv4l2"
-  ] else [
-    "--without-libudev"
-    "--without-udevdir"
-    "--disable-v4l-utils"
-    "--disable-qv4l2"
-  ]);
+  configureFlags =
+    if withUtils then [
+      "--with-udevdir=\${out}/lib/udev"
+    ] else [
+      "--disable-v4l-utils"
+    ];
 
   postFixup = ''
     # Create symlink for V4l1 compatibility
     ln -s "$dev/include/libv4l1-videodev.h" "$dev/include/videodev.h"
   '';
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig perl ] ++ lib.optional (withUtils && withGUI) makeQtWrapper;
 
-  buildInputs = [ alsaLib libX11 qt4 qt5 ];
+  buildInputs = [ udev ] ++ lib.optionals (withUtils && withGUI) [ alsaLib libX11 qtbase mesa_glu ];
 
   propagatedBuildInputs = [ libjpeg ];
 
+  NIX_CFLAGS_COMPILE = lib.optional (withUtils && withGUI) "-std=c++11";
+
+  postPatch = ''
+    patchShebangs .
+  '';
+
+  postInstall = lib.optionalString (withUtils && withGUI) ''
+    wrapQtProgram $out/bin/qv4l2
+  '';
+
   meta = with stdenv.lib; {
     description = "V4L utils and libv4l, provide common image formats regardless of the v4l device";
     homepage = http://linuxtv.org/projects.php;