diff options
Diffstat (limited to 'pkgs/os-specific/linux/upower/default.nix')
-rw-r--r-- | pkgs/os-specific/linux/upower/default.nix | 50 |
1 files changed, 47 insertions, 3 deletions
diff --git a/pkgs/os-specific/linux/upower/default.nix b/pkgs/os-specific/linux/upower/default.nix index f083184a1145c..2ef6d8c8243d7 100644 --- a/pkgs/os-specific/linux/upower/default.nix +++ b/pkgs/os-specific/linux/upower/default.nix @@ -1,12 +1,16 @@ { lib , stdenv , fetchFromGitLab +, fetchpatch , pkg-config , rsync , libxslt , meson , ninja , python3 +, dbus +, umockdev +, libeatmydata , gtk-doc , docbook-xsl-nons , udev @@ -23,7 +27,7 @@ stdenv.mkDerivation rec { pname = "upower"; - version = "0.99.17"; + version = "0.99.19"; outputs = [ "out" "dev" ] ++ lib.optionals withDocs [ "devdoc" ]; @@ -33,9 +37,18 @@ stdenv.mkDerivation rec { owner = "upower"; repo = "upower"; rev = "v${version}"; - sha256 = "xvvqzGxgkuGcvnO12jnLURNJUoSlnMw2g/mnII+i6Bs="; + sha256 = "gpLsBh4jgiDO8bxic2BTFhjIwc2q/tuAIxykTHqK6UM="; }; + patches = [ + # Fix test + # https://gitlab.freedesktop.org/upower/upower/-/merge_requests/150 + (fetchpatch { + url = "https://gitlab.freedesktop.org/upower/upower/-/commit/a78ee6039054770b466749f8ec4bfbe4c278d697.patch"; + sha256 = "aUPXnr/2PlOZNb7mQl43hmKe01DtuBUrGnqvwBFRf7Q="; + }) + ]; + strictDeps = true; depsBuildBuild = [ @@ -64,6 +77,16 @@ stdenv.mkDerivation rec { libimobiledevice ]; + checkInputs = [ + python3.pkgs.dbus-python + python3.pkgs.python-dbusmock + python3.pkgs.pygobject3 + dbus + umockdev + libeatmydata + python3.pkgs.packaging + ]; + propagatedBuildInputs = [ glib ]; @@ -74,16 +97,37 @@ stdenv.mkDerivation rec { "-Dos_backend=linux" "-Dsystemdsystemunitdir=${placeholder "out"}/etc/systemd/system" "-Dudevrulesdir=${placeholder "out"}/lib/udev/rules.d" + "-Dudevhwdbdir=${placeholder "out"}/lib/udev/hwdb.d" "-Dintrospection=${if (stdenv.buildPlatform == stdenv.hostPlatform) then "auto" else "disabled"}" "-Dgtk-doc=${lib.boolToString withDocs}" ]; - doCheck = false; # fails with "env: './linux/integration-test': No such file or directory" + doCheck = true; postPatch = '' + patchShebangs src/linux/integration-test.py patchShebangs src/linux/unittest_inspector.py ''; + preCheck = '' + # Our gobject-introspection patches make the shared library paths absolute + # in the GIR files. When running tests, the library is not yet installed, + # though, so we need to replace the absolute path with a local one during build. + # We are using a symlink that will be overwitten during installation. + mkdir -p "$out/lib" + ln -s "$PWD/libupower-glib/libupower-glib.so" "$out/lib/libupower-glib.so.3" + ''; + + checkPhase = '' + runHook preCheck + + # Slow fsync calls can make self-test fail: + # https://gitlab.freedesktop.org/upower/upower/-/issues/195 + eatmydata meson test --print-errorlogs + + runHook postCheck + ''; + postInstall = '' # Move stuff from DESTDIR to proper location. # We use rsync to merge the directories. |