diff options
-rw-r--r-- | pkgs/development/libraries/umockdev/default.nix | 34 | ||||
-rw-r--r-- | pkgs/development/libraries/umockdev/fix-test-paths.patch | 12 |
2 files changed, 37 insertions, 9 deletions
diff --git a/pkgs/development/libraries/umockdev/default.nix b/pkgs/development/libraries/umockdev/default.nix index 07892e97087..866dc48f270 100644 --- a/pkgs/development/libraries/umockdev/default.nix +++ b/pkgs/development/libraries/umockdev/default.nix @@ -1,30 +1,46 @@ -{ stdenv, fetchFromGitHub, autoreconfHook, gobject-introspection -, pkgconfig, glib, systemd, libgudev, vala }: +{ stdenv, fetchurl, fetchpatch, pkgconfig +, gobject-introspection, glib, systemd, libgudev, vala +, usbutils, which, python3 }: stdenv.mkDerivation rec { name = "umockdev-${version}"; - version = "0.12.1"; + version = "0.13.1"; outputs = [ "bin" "out" "dev" "doc" ]; - src = fetchFromGitHub { - owner = "martinpitt"; - repo = "umockdev"; - rev = version; - sha256 = "0wnmz4jh04mvqzjnqvxrah969gg4x4v8d6ip61zc7jpbwnqb2fpg"; + src = fetchurl { + url = "https://github.com/martinpitt/umockdev/releases/download/${version}/${name}.tar.xz"; + sha256 = "197a169imiirgm73d9fn9234cx56agyw9d2f47h7f1d8s2d51lla"; }; + patches = [ + ./fix-test-paths.patch + # https://github.com/martinpitt/umockdev/pull/93 + (fetchpatch { + url = "https://github.com/abbradar/umockdev/commit/ce22f893bf50de0b32760238a3e2cfb194db89e9.patch"; + sha256 = "01q3qhs30x8hl23iigimsa2ikbiw8y8y0bpmh02mh1my87shpwnx"; + }) + ]; + # autoreconfHook complains if we try to build the documentation postPatch = '' echo 'EXTRA_DIST =' > docs/gtk-doc.make ''; + preCheck = '' + patchShebangs tests/test-static-code + ''; + buildInputs = [ glib systemd libgudev ]; - nativeBuildInputs = [ autoreconfHook pkgconfig vala gobject-introspection ]; + nativeBuildInputs = [ pkgconfig vala gobject-introspection ]; + + checkInputs = [ python3 which usbutils ]; enableParallelBuilding = true; + doCheck = true; + meta = with stdenv.lib; { description = "Mock hardware devices for creating unit tests"; license = licenses.lgpl2; diff --git a/pkgs/development/libraries/umockdev/fix-test-paths.patch b/pkgs/development/libraries/umockdev/fix-test-paths.patch new file mode 100644 index 00000000000..53015d66268 --- /dev/null +++ b/pkgs/development/libraries/umockdev/fix-test-paths.patch @@ -0,0 +1,12 @@ +diff -ru3 umockdev-0.13.1/tests/test-umockdev.c umockdev-0.13.1-new/tests/test-umockdev.c +--- umockdev-0.13.1/tests/test-umockdev.c 2019-08-18 20:39:39.708262517 +0300 ++++ umockdev-0.13.1-new/tests/test-umockdev.c 2019-08-18 21:04:27.688761503 +0300 +@@ -1084,7 +1084,7 @@ + + /* sys/ in other dir should not be trapped */ + errno = 0; +- dirfd = open("/run", O_RDONLY | O_DIRECTORY); ++ dirfd = open("/tmp", O_RDONLY | O_DIRECTORY); + g_assert_cmpint(openat(dirfd, "sys", O_RDONLY), <, 0); + g_assert_cmpint(errno, ==, ENOENT); + g_assert_cmpint(openat64(dirfd, "sys", O_RDONLY), <, 0); |