python3Packages.orjson: Disable failing tests on 32 bit
[NixPkgs.git] / pkgs / development / libraries / libusb1 / default.nix
blobf7f1633ed446e01636af7f634a4bda04e72e25ec
1 { lib, stdenv
2 , fetchFromGitHub
3 , fetchpatch
4 , autoreconfHook
5 , pkg-config
6 , enableUdev ? stdenv.isLinux && !stdenv.targetPlatform.isStatic
7 , udev
8 , libobjc
9 , IOKit
10 , Security
11 , withStatic ? false
14 stdenv.mkDerivation rec {
15   pname = "libusb";
16   version = "1.0.26";
18   src = fetchFromGitHub {
19     owner = "libusb";
20     repo = "libusb";
21     rev = "v${version}";
22     sha256 = "sha256-LEy45YiFbueCCi8d2hguujMsxBezaTUERHUpFsTKGZQ=";
23   };
25   outputs = [ "out" "dev" ];
27   nativeBuildInputs = [ pkg-config autoreconfHook ];
28   propagatedBuildInputs =
29     lib.optional enableUdev udev ++
30     lib.optionals stdenv.isDarwin [ libobjc IOKit Security ];
32   dontDisableStatic = withStatic;
34   configureFlags = lib.optional (!enableUdev) "--disable-udev";
36   preFixup = lib.optionalString enableUdev ''
37     sed 's,-ludev,-L${lib.getLib udev}/lib -ludev,' -i $out/lib/libusb-1.0.la
38   '';
40   meta = with lib; {
41     homepage = "https://libusb.info/";
42     description = "cross-platform user-mode USB device library";
43     longDescription = ''
44       libusb is a cross-platform user-mode library that provides access to USB devices.
45     '';
46     platforms = platforms.all;
47     license = licenses.lgpl21Plus;
48     maintainers = with maintainers; [ prusnak ];
49   };