evcc: 0.131.4 -> 0.131.5
[NixPkgs.git] / pkgs / by-name / li / libgudev / package.nix
blobdcd2015e1d156e67b729c9a4c2b950825438e0af
1 { stdenv
2 , lib
3 , fetchurl
4 , pkg-config
5 , meson
6 , ninja
7 , udev
8 , glib
9 , glibcLocales
10 , umockdev
11 , gnome
12 , vala
13 , gobject-introspection
14 , buildPackages
15 , withIntrospection ? lib.meta.availableOn stdenv.hostPlatform gobject-introspection && stdenv.hostPlatform.emulatorAvailable buildPackages
18 stdenv.mkDerivation (finalAttrs: {
19   pname = "libgudev";
20   version = "238";
22   outputs = [ "out" "dev" ];
24   src = fetchurl {
25     url = "mirror://gnome/sources/libgudev/${lib.versions.majorMinor finalAttrs.version}/libgudev-${finalAttrs.version}.tar.xz";
26     hash = "sha256-YSZqsa/J1z28YKiyr3PpnS/f9H2ZVE0IV2Dk+mZ7XdE=";
27   };
29   patches = [
30     # Conditionally disable one test that requires a locale implementation
31     # https://gitlab.gnome.org/GNOME/libgudev/-/merge_requests/31
32     ./tests-skip-double-test-on-stub-locale-impls.patch
33   ];
35   postPatch = lib.optionalString finalAttrs.finalPackage.doCheck ''
36     # The relative location of LD_PRELOAD works for Glibc but not for other loaders (e.g. pkgsMusl)
37     substituteInPlace tests/meson.build \
38       --replace "LD_PRELOAD=libumockdev-preload.so.0" "LD_PRELOAD=${lib.getLib umockdev}/lib/libumockdev-preload.so.0"
39   '';
41   strictDeps = true;
43   nativeBuildInputs = [
44     pkg-config
45     meson
46     ninja
47     glib # for glib-mkenums needed during the build
48   ] ++ lib.optionals withIntrospection [
49     gobject-introspection
50     vala
51   ];
53   buildInputs = [
54     udev
55     glib
56   ];
58   checkInputs = [
59     glibcLocales
60     umockdev
61   ];
63   doCheck = withIntrospection;
64   mesonFlags = [
65     (lib.mesonEnable "introspection" withIntrospection)
66     (lib.mesonEnable "vapi" withIntrospection)
67     (lib.mesonEnable "tests" finalAttrs.finalPackage.doCheck)
68   ];
70   passthru = {
71     updateScript = gnome.updateScript {
72       packageName = "libgudev";
73       versionPolicy = "none";
74     };
75   };
77   meta = with lib; {
78     description = "Library that provides GObject bindings for libudev";
79     homepage = "https://gitlab.gnome.org/GNOME/libgudev";
80     maintainers = teams.gnome.members;
81     platforms = platforms.linux;
82     license = licenses.lgpl2Plus;
83   };