summary refs log tree commit diff
path: root/pkgs/tools/misc/ostree/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/tools/misc/ostree/default.nix')
-rw-r--r--pkgs/tools/misc/ostree/default.nix70
1 files changed, 47 insertions, 23 deletions
diff --git a/pkgs/tools/misc/ostree/default.nix b/pkgs/tools/misc/ostree/default.nix
index a437eba4957..98154d9d562 100644
--- a/pkgs/tools/misc/ostree/default.nix
+++ b/pkgs/tools/misc/ostree/default.nix
@@ -1,40 +1,56 @@
-{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, gtk-doc, gobjectIntrospection
-, libgsystem, xz, e2fsprogs, libsoup, gpgme, which, autoconf, automake, libtool, fuse
-, libarchive, libcap, bzip2, yacc, libxslt, docbook_xsl, docbook_xml_dtd_42
+{ stdenv, fetchFromGitHub, fetchpatch, pkgconfig, gtk-doc, gobjectIntrospection, gnome3
+, glib, systemd, xz, e2fsprogs, libsoup, gpgme, which, autoconf, automake, libtool, fuse, utillinuxMinimal, libselinux
+, libarchive, libcap, bzip2, yacc, libxslt, docbook_xsl, docbook_xml_dtd_42, python3
 }:
 
 let
+  version = "2018.6";
+
   libglnx-src = fetchFromGitHub {
-    owner  = "GNOME";
-    repo   = "libglnx";
-    rev    = "0c82203cd459a35cc3f471e3205355e9fb79160f";
-    sha256 = "0xbrv7q6b2ygrbr0yr7p01zpryw45643qfwnlw0z2yv515qs7isc";
+    owner = "GNOME";
+    repo = "libglnx";
+    rev = "e1a78cf2f5351d5394ccfb79f3f5a7b4917f73f3";
+    sha256 = "10kzyjbrmr98i65hlz8jc1v5bijyqwwfp6qqjbd5g3y0n520iaxc";
   };
 
   bsdiff-src = fetchFromGitHub {
-    owner  = "mendsley";
-    repo   = "bsdiff";
-    rev    = "1edf9f656850c0c64dae260960fabd8249ea9c60";
+    owner = "mendsley";
+    repo = "bsdiff";
+    rev = "1edf9f656850c0c64dae260960fabd8249ea9c60";
     sha256 = "1h71d2h2d3anp4msvpaff445rnzdxii3id2yglqk7af9i43kdsn1";
   };
-
-  version = "2018.4";
 in stdenv.mkDerivation {
   name = "ostree-${version}";
 
+  outputs = [ "out" "dev" "man" "installedTests" ];
+
   src = fetchFromGitHub {
-    rev    = "v${version}";
-    owner  = "ostreedev";
-    repo   = "ostree";
-    sha256 = "00jgj6vcjpz1akfbmf82q1bcs3njrmvdgy4c2gnn24vkmh9yr0lr";
+    rev = "v${version}";
+    owner = "ostreedev";
+    repo = "ostree";
+    sha256 = "0kk04pznk6m6fqdz609m2zcnkalcw9q8fsx8wm42k6dhf6cw7l3g";
   };
 
+  patches = [
+    # Tests access the helper using relative path
+    # https://github.com/ostreedev/ostree/issues/1593
+    (fetchpatch {
+      url = https://github.com/ostreedev/ostree/pull/1633.patch;
+      sha256 = "07xiw1dr7j4yw3w92qhw37f9crlglibflcqj2kf0v5gfrl9i6g4j";
+    })
+  ];
+
   nativeBuildInputs = [
     autoconf automake libtool pkgconfig gtk-doc gobjectIntrospection which yacc
     libxslt docbook_xsl docbook_xml_dtd_42
   ];
 
-  buildInputs = [ libgsystem xz e2fsprogs libsoup gpgme fuse libarchive libcap bzip2 ];
+  buildInputs = [
+    glib systemd e2fsprogs libsoup gpgme fuse libselinux libcap
+    libarchive bzip2 xz
+    utillinuxMinimal # for libmount
+    (python3.withPackages (p: with p; [ pyyaml ])) gnome3.gjs # for tests
+  ];
 
   prePatch = ''
     rmdir libglnx bsdiff
@@ -44,16 +60,24 @@ in stdenv.mkDerivation {
 
   preConfigure = ''
     env NOCONFIGURE=1 ./autogen.sh
-
-    configureFlags+="--with-systemdsystemunitdir=$out/lib/systemd/system"
   '';
 
+  configureFlags = [
+    "--with-systemdsystemunitdir=$(out)/lib/systemd/system"
+    "--with-systemdsystemgeneratordir=$(out)/lib/systemd/system-generators"
+    "--enable-installed-tests"
+  ];
+
+  makeFlags = [
+    "installed_testdir=$(installedTests)/libexec/installed-tests/libostree"
+    "installed_test_metadir=$(installedTests)/share/installed-tests/libostree"
+  ];
+
   meta = with stdenv.lib; {
     description = "Git for operating system binaries";
-    homepage    = https://ostree.readthedocs.io/en/latest/;
-    license     = licenses.lgpl2Plus;
-    platforms   = platforms.linux;
+    homepage = https://ostree.readthedocs.io/en/latest/;
+    license = licenses.lgpl2Plus;
+    platforms = platforms.linux;
     maintainers = with maintainers; [ copumpkin ];
   };
 }
-