summary refs log tree commit diff
diff options
context:
space:
mode:
authorWilliam A. Kennington III <william@wkennington.com>2015-04-05 14:58:50 -0700
committerWilliam A. Kennington III <william@wkennington.com>2015-04-05 14:58:50 -0700
commit181248b2a20497d8dc92d1763d9f804951cb9b9e (patch)
tree1285c646343dce60d290f87c99c63276a02dad0e
parenta5d29aaae2c882f7e438175b344bf0a62f38cb41 (diff)
parent466cb22bcd06ddf57b76e93f992957443ea313b4 (diff)
downloadnixlib-181248b2a20497d8dc92d1763d9f804951cb9b9e.tar
nixlib-181248b2a20497d8dc92d1763d9f804951cb9b9e.tar.gz
nixlib-181248b2a20497d8dc92d1763d9f804951cb9b9e.tar.bz2
nixlib-181248b2a20497d8dc92d1763d9f804951cb9b9e.tar.lz
nixlib-181248b2a20497d8dc92d1763d9f804951cb9b9e.tar.xz
nixlib-181248b2a20497d8dc92d1763d9f804951cb9b9e.tar.zst
nixlib-181248b2a20497d8dc92d1763d9f804951cb9b9e.zip
Merge pull request #7176 from codyopel/v4l
v4l-util: refactor & 1.0.0 -> 1.6.2 (libv4l)
-rw-r--r--pkgs/os-specific/linux/v4l-utils/default.nix55
-rw-r--r--pkgs/top-level/all-packages.nix7
2 files changed, 47 insertions, 15 deletions
diff --git a/pkgs/os-specific/linux/v4l-utils/default.nix b/pkgs/os-specific/linux/v4l-utils/default.nix
index 0455c2b8626a..ca5b35cff2fd 100644
--- a/pkgs/os-specific/linux/v4l-utils/default.nix
+++ b/pkgs/os-specific/linux/v4l-utils/default.nix
@@ -1,26 +1,55 @@
-{stdenv, fetchurl, which, libjpeg
-, withQt4 ? false, qt4 ? null}:
+{ stdenv, fetchurl, pkgconfig
+, libjpeg
+, alsaLib ? null
+, libX11 ? null
+, qt4 ? null # The default is set to qt4 in all-packages.nix
+, qt5 ? null
+}:
 
-assert withQt4 -> qt4 != null;
+# 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.0.0";
+  name = "v4l-utils-1.6.2";
 
   src = fetchurl {
     url = "http://linuxtv.org/downloads/v4l-utils/${name}.tar.bz2";
-    sha256 = "0c2z500ijxr1ldzb4snasfpwi2icp04f8pk7akiqjkp0k4h8iqqx";
+    sha256 = "0zdyjrja2mkqlijpdb4gz1vw0g7pslswmgqqsgri3yq408gypmnk";
   };
 
-  buildInputs = [ which ];
-  propagatedBuildInputs = [ libjpeg ] ++ stdenv.lib.optional withQt4 qt4;
+  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"
+  ]);
+
+  postInstall = ''
+    # Create symlink for V4l1 compatibility
+    ln -s $out/include/libv4l1-videodev.h $out/include/videodev.h
+  '';
+
+  nativeBuildInputs = [ pkgconfig ];
 
-  preConfigure = ''configureFlags="--with-udevdir=$out/lib/udev"'';
+  buildInputs = [ alsaLib libjpeg libX11 qt4 qt5 ];
 
-  meta = {
+  meta = with stdenv.lib; {
+    description = "V4L utils and libv4l, provide common image formats regardless of the v4l device";
     homepage = http://linuxtv.org/projects.php;
-    description = "V4L utils and libv4l, that provides common image formats regardless of the v4l device";
-    license = stdenv.lib.licenses.free; # The libs are of LGPLv2.1+, some other pieces are GPL.
-    maintainers = with stdenv.lib.maintainers; [viric];
-    platforms = with stdenv.lib.platforms; linux;
+    license = licenses.lgpl21Plus;
+    maintainers = with maintainers; [ codyopel viric ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 649850cd8cde..67df7ea30ed3 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -6826,7 +6826,10 @@ let
   });
 
   libv4l = lowPrio (v4l_utils.override {
-    withQt4 = false;
+    alsaLib = null;
+    libX11 = null;
+    qt4 = null;
+    qt5 = null;
   });
 
   libva = callPackage ../development/libraries/libva { };
@@ -9553,7 +9556,7 @@ let
   });
 
   v4l_utils = callPackage ../os-specific/linux/v4l-utils {
-    withQt4 = true;
+    qt5 = null;
   };
 
   windows = rec {