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