about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/gusb/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/gusb/default.nix')
-rw-r--r--nixpkgs/pkgs/development/libraries/gusb/default.nix67
1 files changed, 53 insertions, 14 deletions
diff --git a/nixpkgs/pkgs/development/libraries/gusb/default.nix b/nixpkgs/pkgs/development/libraries/gusb/default.nix
index 4d6546f0e5be..9ffc49e5588a 100644
--- a/nixpkgs/pkgs/development/libraries/gusb/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gusb/default.nix
@@ -1,22 +1,37 @@
-{ lib, stdenv, fetchurl, substituteAll, meson, ninja, pkg-config, gettext, gobject-introspection
-, gtk-doc, docbook_xsl, docbook_xml_dtd_412, docbook_xml_dtd_44, python3
-, glib, libusb1, vala, hwdata
+{ lib
+, stdenv
+, fetchFromGitHub
+, substituteAll
+, meson
+, ninja
+, pkg-config
+, gobject-introspection
+, gi-docgen
+, python3
+, glib
+, libusb1
+, json-glib
+, vala
+, hwdata
+, umockdev
 }:
 
 let
-  pythonEnv = python3.pythonForBuild.withPackages(ps: with ps; [
+  pythonEnv = python3.pythonForBuild.withPackages (ps: with ps; [
     setuptools
   ]);
 in
 stdenv.mkDerivation rec {
   pname = "gusb";
-  version = "0.3.10";
+  version = "0.4.6";
 
   outputs = [ "bin" "out" "dev" "devdoc" ];
 
-  src = fetchurl {
-    url = "https://people.freedesktop.org/~hughsient/releases/libgusb-${version}.tar.xz";
-    sha256 = "sha256-DrC5qw+LugxZYxyAnDe2Fu806zyOAAsLm3HPEeSTG9w=";
+  src = fetchFromGitHub {
+    owner = "hughsie";
+    repo = "libgusb";
+    rev = "refs/tags/${version}";
+    hash = "sha256-CtB9+5dDs+l05NyIFkKJpS1x3zHSykhLW3HiIM0RUWY=";
   };
 
   patches = [
@@ -26,21 +41,45 @@ stdenv.mkDerivation rec {
     })
   ];
 
+  strictDeps = true;
+
+  depsBuildBuild = [
+    pkg-config
+  ];
+
   nativeBuildInputs = [
-    meson ninja pkg-config gettext pythonEnv
-    gtk-doc docbook_xsl docbook_xml_dtd_412 docbook_xml_dtd_44
-    gobject-introspection vala
+    meson
+    ninja
+    pkg-config
+    gobject-introspection
+    gi-docgen
+    vala
   ];
-  buildInputs = [ glib ];
 
-  propagatedBuildInputs = [ libusb1 ];
+  # all required in gusb.pc
+  propagatedBuildInputs = [
+    glib
+    libusb1
+    json-glib
+  ];
 
   mesonFlags = [
-    "-Dusb_ids=${hwdata}/share/hwdata/usb.ids"
+    (lib.mesonBool "tests" doCheck)
+    (lib.mesonOption "usb_ids" "${hwdata}/share/hwdata/usb.ids")
+  ];
+
+  checkInputs = [
+    umockdev
   ];
 
   doCheck = false; # tests try to access USB
 
+  postFixup = ''
+    # Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back.
+    ls -la "$out/share/doc"
+    moveToOutput "share/doc" "$devdoc"
+  '';
+
   meta = with lib; {
     description = "GLib libusb wrapper";
     homepage = "https://github.com/hughsie/libgusb";