about summary refs log tree commit diff
diff options
context:
space:
mode:
authorworldofpeace <worldofpeace@protonmail.ch>2019-08-18 04:23:54 -0400
committerGitHub <noreply@github.com>2019-08-18 04:23:54 -0400
commit4f3e9ca93a91626256d1b1edae005288704c8225 (patch)
tree008483a086c325a4af8e8c2cebf1a1ce7b6ffb92
parent8ed485c67b1c98f69e9162b8ff2cdec99a158de8 (diff)
parentce0511e302eda34ac1fb35d741829d5ea91d3588 (diff)
Merge pull request #65291 from worldofpeace/xdg-updates
Flatpak updates
-rw-r--r--nixos/modules/services/desktops/flatpak.nix11
-rw-r--r--pkgs/development/libraries/flatpak/bubblewrap-paths.patch4
-rw-r--r--pkgs/development/libraries/flatpak/default.nix8
-rw-r--r--pkgs/development/libraries/flatpak/fix-paths.patch6
-rw-r--r--pkgs/development/libraries/flatpak/fix-test-paths.patch29
-rw-r--r--pkgs/development/libraries/flatpak/respect-xml-catalog-files-var.patch4
-rw-r--r--pkgs/development/libraries/flatpak/unset-env-vars.patch4
-rw-r--r--pkgs/development/libraries/flatpak/use-flatpak-from-path.patch22
-rw-r--r--pkgs/development/libraries/flatpak/validate-icon-pixbuf.patch4
-rw-r--r--pkgs/development/libraries/libmodulemd/1.nix21
-rw-r--r--pkgs/development/libraries/libmodulemd/default.nix59
-rw-r--r--pkgs/development/libraries/libmodulemd/dont-check-docs.patch29
-rw-r--r--pkgs/development/libraries/libmodulemd/pygobject-dir.patch45
-rw-r--r--pkgs/development/libraries/xdg-desktop-portal-gtk/default.nix31
-rw-r--r--pkgs/development/libraries/xdg-desktop-portal/default.nix8
-rw-r--r--pkgs/development/libraries/xdg-desktop-portal/respect-path-env-var.patch20
-rw-r--r--pkgs/tools/misc/ostree/01-Drop-ostree-trivial-httpd-CLI-move-to-tests-director.patch271
-rw-r--r--pkgs/tools/misc/ostree/default.nix9
-rw-r--r--pkgs/tools/misc/ostree/disable-test-gpg-verify-result.patch12
-rw-r--r--pkgs/tools/misc/ostree/fix-1592.patch87
-rw-r--r--pkgs/tools/misc/rpm-ostree/default.nix8
-rw-r--r--pkgs/top-level/all-packages.nix3
22 files changed, 606 insertions, 89 deletions
diff --git a/nixos/modules/services/desktops/flatpak.nix b/nixos/modules/services/desktops/flatpak.nix
index 1492d855aa034..7fb0024f37dc7 100644
--- a/nixos/modules/services/desktops/flatpak.nix
+++ b/nixos/modules/services/desktops/flatpak.nix
@@ -38,5 +38,16 @@ in {
       "$HOME/.local/share/flatpak/exports"
       "/var/lib/flatpak/exports"
     ];
+
+    # It has been possible since https://github.com/flatpak/flatpak/releases/tag/1.3.2
+    # to build a SELinux policy module.
+
+    users.users.flatpak = {
+      description = "Flatpak system helper";
+      group = "flatpak";
+      isSystemUser = true;
+    };
+
+    users.groups.flatpak = { };
   };
 }
diff --git a/pkgs/development/libraries/flatpak/bubblewrap-paths.patch b/pkgs/development/libraries/flatpak/bubblewrap-paths.patch
index 79257fd6be50a..407811736f83b 100644
--- a/pkgs/development/libraries/flatpak/bubblewrap-paths.patch
+++ b/pkgs/development/libraries/flatpak/bubblewrap-paths.patch
@@ -1,8 +1,8 @@
 diff --git a/icon-validator/validate-icon.c b/icon-validator/validate-icon.c
-index 6e23d9f2..8c621ec4 100644
+index 9e885070..d02eeb8c 100644
 --- a/icon-validator/validate-icon.c
 +++ b/icon-validator/validate-icon.c
-@@ -149,8 +149,8 @@ rerun_in_sandbox (const char *arg_width,
+@@ -156,8 +156,8 @@ rerun_in_sandbox (const char *arg_width,
              "--unshare-ipc",
              "--unshare-net",
              "--unshare-pid",
diff --git a/pkgs/development/libraries/flatpak/default.nix b/pkgs/development/libraries/flatpak/default.nix
index 4c4949b37be89..d29be4cb93047 100644
--- a/pkgs/development/libraries/flatpak/default.nix
+++ b/pkgs/development/libraries/flatpak/default.nix
@@ -1,18 +1,18 @@
 { stdenv, fetchurl, autoreconfHook, docbook_xml_dtd_412, docbook_xml_dtd_42, docbook_xml_dtd_43, docbook_xsl, which, libxml2
 , gobject-introspection, gtk-doc, intltool, libxslt, pkgconfig, xmlto, appstream-glib, substituteAll, glibcLocales, yacc, xdg-dbus-proxy, p11-kit
-, bubblewrap, bzip2, dbus, glib, gpgme, json-glib, libarchive, libcap, libseccomp, coreutils, gettext, hicolor-icon-theme
+, bubblewrap, bzip2, dbus, glib, gpgme, json-glib, libarchive, libcap, libseccomp, coreutils, gettext, hicolor-icon-theme, fuse
 , libsoup, lzma, ostree, polkit, python3, systemd, xorg, valgrind, glib-networking, wrapGAppsHook, gnome3, gsettings-desktop-schemas, librsvg }:
 
 stdenv.mkDerivation rec {
   pname = "flatpak";
-  version = "1.2.4";
+  version = "1.4.2";
 
   # TODO: split out lib once we figure out what to do with triggerdir
   outputs = [ "out" "man" "doc" "installedTests" ];
 
   src = fetchurl {
     url = "https://github.com/flatpak/flatpak/releases/download/${version}/${pname}-${version}.tar.xz";
-    sha256 = "1qf3ys84fzv11z6f6li59rxjdjbyrv7cyi9539k73r9i9pckjr8v";
+    sha256 = "08nmpp26mgv0vp3mlwk97rnp0j7i108h4hr9nllja19sjxnrlygj";
   };
 
   patches = [
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     bubblewrap bzip2 dbus gnome3.dconf glib gpgme json-glib libarchive libcap libseccomp
-    libsoup lzma ostree polkit python3 systemd xorg.libXau
+    libsoup lzma ostree polkit python3 systemd xorg.libXau fuse
     gsettings-desktop-schemas glib-networking
     librsvg # for flatpak-validate-icon
   ];
diff --git a/pkgs/development/libraries/flatpak/fix-paths.patch b/pkgs/development/libraries/flatpak/fix-paths.patch
index 49fcaa2b3f9b8..746b4382864be 100644
--- a/pkgs/development/libraries/flatpak/fix-paths.patch
+++ b/pkgs/development/libraries/flatpak/fix-paths.patch
@@ -1,6 +1,8 @@
+diff --git a/session-helper/flatpak-session-helper.c b/session-helper/flatpak-session-helper.c
+index 5dd7629e..ddc71a4c 100644
 --- a/session-helper/flatpak-session-helper.c
 +++ b/session-helper/flatpak-session-helper.c
-@@ -624,7 +624,7 @@
+@@ -693,7 +693,7 @@ start_p11_kit_server (const char *flatpak_dir)
    g_auto(GStrv) stdout_lines = NULL;
    int i;
    char *p11_argv[] = {
@@ -9,7 +11,7 @@
      /* We explicitly request --sh here, because we then fail on earlier versions that doesn't support
       * this flag. This is good, because those earlier versions did not properly daemonize and caused
       * the spawn_sync to hang forever, waiting for the pipe to close.
-@@ -770,7 +770,7 @@
+@@ -836,7 +836,7 @@ main (int    argc,
        exit (1);
      }
  
diff --git a/pkgs/development/libraries/flatpak/fix-test-paths.patch b/pkgs/development/libraries/flatpak/fix-test-paths.patch
index f987899e3bcb8..85b222152d0a1 100644
--- a/pkgs/development/libraries/flatpak/fix-test-paths.patch
+++ b/pkgs/development/libraries/flatpak/fix-test-paths.patch
@@ -1,6 +1,8 @@
+diff --git a/tests/libtest.sh b/tests/libtest.sh
+index 46bcefb3..0134425e 100644
 --- a/tests/libtest.sh
 +++ b/tests/libtest.sh
-@@ -328,7 +328,7 @@
+@@ -352,7 +352,7 @@ if [ -z "${FLATPAK_BWRAP:-}" ]; then
      # running installed-tests: assume we know what we're doing
      _flatpak_bwrap_works=true
  elif ! "$FLATPAK_BWRAP" --unshare-ipc --unshare-net --unshare-pid \
@@ -9,7 +11,7 @@
      _flatpak_bwrap_works=false
  else
      _flatpak_bwrap_works=true
-@@ -309,12 +309,12 @@
+@@ -426,12 +426,12 @@ dbus-daemon --fork --config-file=session.conf --print-address=3 --print-pid=4 \
  export DBUS_SESSION_BUS_ADDRESS="$(cat dbus-session-bus-address)"
  DBUS_SESSION_BUS_PID="$(cat dbus-session-bus-pid)"
  
@@ -24,9 +26,11 @@
      gpg-connect-agent --homedir "${FL_GPG_HOMEDIR}" killagent /bye || true
      fusermount -u $XDG_RUNTIME_DIR/doc || :
      if test -n "${TEST_SKIP_CLEANUP:-}"; then
+diff --git a/tests/make-test-app.sh b/tests/make-test-app.sh
+index 0a0a28f1..16fd51fe 100755
 --- a/tests/make-test-app.sh
 +++ b/tests/make-test-app.sh
-@@ -114,13 +114,13 @@ msgid "Hello world"
+@@ -129,13 +129,13 @@ msgid "Hello world"
  msgstr "Hallo Welt"
  EOF
  mkdir -p ${DIR}/files/de/share/de/LC_MESSAGES
@@ -42,9 +46,11 @@
  
  flatpak build-finish ${DIR}
  mkdir -p repos
+diff --git a/tests/make-test-runtime.sh b/tests/make-test-runtime.sh
+index 57899b75..9236996f 100755
 --- a/tests/make-test-runtime.sh
 +++ b/tests/make-test-runtime.sh
-@@ -26,6 +26,7 @@
+@@ -28,6 +28,7 @@ EOF
  PATH="$PATH:/usr/sbin:/sbin"
  
  # Add bash and dependencies
@@ -52,7 +58,7 @@
  mkdir -p ${DIR}/usr/bin
  mkdir -p ${DIR}/usr/lib
  ln -s ../lib ${DIR}/usr/lib64
-@@ -35,48 +36,27 @@
+@@ -37,48 +38,23 @@ if test -f /sbin/ldconfig.real; then
  else
      cp `which ldconfig` ${DIR}/usr/bin
  fi
@@ -105,21 +111,20 @@
 -# We copy the C.UTF8 locale and call it en_US. Its a bit of a lie, but
 -# the real en_US locale is often not available, because its in the
 -# local archive.
+-mkdir -p ${DIR}/usr/lib/locale/
+-cp -r /usr/lib/locale/C.* ${DIR}/usr/lib/locale/en_US
 +mv ${DIR}/nix/store ${DIR}/usr/store # files outside /usr are not permitted, we will have to replace /nix/store with /usr/store
 +chmod -R u+w ${DIR} # nix store has read-only directories which would cause problems during clean-up, files need to be writable for sed
 +find ${DIR} -type f -print0 | xargs -0 sed -i 's~/nix/store/~/usr/store/~g' # replace hardcoded paths
 +find ${DIR} -type l | xargs -I '{}' sh -c 'tg="$(readlink "$1")"; newtg="${tg#/nix/store/}"; if [ "$tg" != "$newtg" ]; then ln -fs "/usr/store/$newtg" "$1"; fi' -- '{}' # replace symlink targets
-+
-+# We copy the whole locale archive because we do not have C.UTF8 locale
- mkdir -p ${DIR}/usr/lib/locale/
--cp -r /usr/lib/locale/C.* ${DIR}/usr/lib/locale/en_US
-+cp @glibcLocales@/lib/locale/locale-archive ${DIR}/usr/lib/locale/locale-archive
  
  if [ x$COLLECTION_ID != x ]; then
      collection_args=--collection-id=${COLLECTION_ID}
+diff --git a/tests/testlibrary.c b/tests/testlibrary.c
+index f2773dc8..3af9026f 100644
 --- a/tests/testlibrary.c
 +++ b/tests/testlibrary.c
-@@ -584,7 +584,7 @@
+@@ -1053,7 +1053,7 @@ check_bwrap_support (void)
      {
        gint exit_code = 0;
        char *argv[] = { (char *) bwrap, "--unshare-ipc", "--unshare-net",
@@ -128,6 +133,8 @@
        g_autofree char *argv_str = g_strjoinv (" ", argv);
        g_test_message ("Spawning %s", argv_str);
        g_spawn_sync (NULL, argv, NULL, G_SPAWN_SEARCH_PATH, NULL, NULL, NULL, NULL, &exit_code, &error);
+diff --git a/triggers/gtk-icon-cache.trigger b/triggers/gtk-icon-cache.trigger
+index 711cfab2..10c220ec 100755
 --- a/triggers/gtk-icon-cache.trigger
 +++ b/triggers/gtk-icon-cache.trigger
 @@ -1,7 +1,7 @@
diff --git a/pkgs/development/libraries/flatpak/respect-xml-catalog-files-var.patch b/pkgs/development/libraries/flatpak/respect-xml-catalog-files-var.patch
index 0e259aebd8a5e..4cee60be2d07d 100644
--- a/pkgs/development/libraries/flatpak/respect-xml-catalog-files-var.patch
+++ b/pkgs/development/libraries/flatpak/respect-xml-catalog-files-var.patch
@@ -1,6 +1,8 @@
+diff --git a/acinclude.m4 b/acinclude.m4
+index 92ec3985..b3fccf1d 100644
 --- a/acinclude.m4
 +++ b/acinclude.m4
-@@ -40,8 +40,8 @@
+@@ -40,8 +40,8 @@ AC_DEFUN([JH_CHECK_XML_CATALOG],
  [
    AC_REQUIRE([JH_PATH_XML_CATALOG],[JH_PATH_XML_CATALOG(,[:])])dnl
    AC_MSG_CHECKING([for ifelse([$2],,[$1],[$2]) in XML catalog])
diff --git a/pkgs/development/libraries/flatpak/unset-env-vars.patch b/pkgs/development/libraries/flatpak/unset-env-vars.patch
index 798e388b23c27..63ce0d12fe075 100644
--- a/pkgs/development/libraries/flatpak/unset-env-vars.patch
+++ b/pkgs/development/libraries/flatpak/unset-env-vars.patch
@@ -1,6 +1,8 @@
+diff --git a/common/flatpak-run.c b/common/flatpak-run.c
+index 8d52d3a5..81700183 100644
 --- a/common/flatpak-run.c
 +++ b/common/flatpak-run.c
-@@ -1192,6 +1192,7 @@ static const ExportData default_exports[] = {
+@@ -1232,6 +1232,7 @@ static const ExportData default_exports[] = {
    {"PERLLIB", NULL},
    {"PERL5LIB", NULL},
    {"XCURSOR_PATH", NULL},
diff --git a/pkgs/development/libraries/flatpak/use-flatpak-from-path.patch b/pkgs/development/libraries/flatpak/use-flatpak-from-path.patch
index 408198bda5cbe..01363ffb7b349 100644
--- a/pkgs/development/libraries/flatpak/use-flatpak-from-path.patch
+++ b/pkgs/development/libraries/flatpak/use-flatpak-from-path.patch
@@ -1,6 +1,8 @@
+diff --git a/common/flatpak-dir.c b/common/flatpak-dir.c
+index 8f9dc66c..d3ab6e5f 100644
 --- a/common/flatpak-dir.c
 +++ b/common/flatpak-dir.c
-@@ -5758,7 +5758,7 @@ export_desktop_file (const char   *app,
+@@ -6701,7 +6701,7 @@ export_desktop_file (const char         *app,
  
        new_exec = g_string_new ("");
        g_string_append_printf (new_exec,
@@ -9,7 +11,7 @@
                                escaped_branch,
                                escaped_arch);
  
-@@ -6935,8 +6935,8 @@ flatpak_dir_deploy (FlatpakDir          *self,
+@@ -7891,8 +7891,8 @@ flatpak_dir_deploy (FlatpakDir          *self,
                                         error))
          return FALSE;
  
@@ -21,28 +23,28 @@
                                      G_FILE_CREATE_REPLACE_DESTINATION, NULL, cancellable, error))
          return FALSE;
 diff --git a/tests/test-bundle.sh b/tests/test-bundle.sh
-index 6937b041..01f8add7 100755
+index dff17f33..a9857adc 100755
 --- a/tests/test-bundle.sh
 +++ b/tests/test-bundle.sh
 @@ -59,7 +59,7 @@ assert_has_dir $FL_DIR/app/org.test.Hello/$ARCH/master/active/files
  assert_has_dir $FL_DIR/app/org.test.Hello/$ARCH/master/active/export
  assert_has_file $FL_DIR/exports/share/applications/org.test.Hello.desktop
  # Ensure Exec key is rewritten
--assert_file_has_content $FL_DIR/exports/share/applications/org.test.Hello.desktop "^Exec=.*/flatpak run --branch=master --arch=$ARCH --command=hello.sh org.test.Hello$"
-+assert_file_has_content $FL_DIR/exports/share/applications/org.test.Hello.desktop "^Exec=flatpak run --branch=master --arch=$ARCH --command=hello.sh org.test.Hello$"
+-assert_file_has_content $FL_DIR/exports/share/applications/org.test.Hello.desktop "^Exec=.*/flatpak run --branch=master --arch=$ARCH --command=hello\.sh org\.test\.Hello$"
++assert_file_has_content $FL_DIR/exports/share/applications/org.test.Hello.desktop "^Exec=flatpak run --branch=master --arch=$ARCH --command=hello\.sh org\.test\.Hello$"
  assert_has_file $FL_DIR/exports/share/icons/hicolor/64x64/apps/org.test.Hello.png
  assert_has_file $FL_DIR/exports/share/icons/HighContrast/64x64/apps/org.test.Hello.png
  
 diff --git a/tests/test-run.sh b/tests/test-run.sh
-index 9d83d82e..234e4ec6 100755
+index 233df9ad..76e0b23b 100644
 --- a/tests/test-run.sh
 +++ b/tests/test-run.sh
-@@ -42,7 +42,7 @@ assert_has_dir $FL_DIR/app/org.test.Hello/$ARCH/master/active/files
- assert_has_dir $FL_DIR/app/org.test.Hello/$ARCH/master/active/export
+@@ -45,7 +45,7 @@ assert_has_dir $FL_DIR/app/org.test.Hello/$ARCH/stable/active/files
+ assert_has_dir $FL_DIR/app/org.test.Hello/$ARCH/stable/active/export
  assert_has_file $FL_DIR/exports/share/applications/org.test.Hello.desktop
  # Ensure Exec key is rewritten
--assert_file_has_content $FL_DIR/exports/share/applications/org.test.Hello.desktop "^Exec=.*/flatpak run --branch=master --arch=$ARCH --command=hello.sh org.test.Hello$"
-+assert_file_has_content $FL_DIR/exports/share/applications/org.test.Hello.desktop "^Exec=flatpak run --branch=master --arch=$ARCH --command=hello.sh org.test.Hello$"
+-assert_file_has_content $FL_DIR/exports/share/applications/org.test.Hello.desktop "^Exec=.*/flatpak run --branch=stable --arch=$ARCH --command=hello\.sh org\.test\.Hello$"
++assert_file_has_content $FL_DIR/exports/share/applications/org.test.Hello.desktop "^Exec=flatpak run --branch=stable --arch=$ARCH --command=hello\.sh org\.test\.Hello$"
  assert_has_file $FL_DIR/exports/share/icons/hicolor/64x64/apps/org.test.Hello.png
  assert_not_has_file $FL_DIR/exports/share/icons/hicolor/64x64/apps/dont-export.png
  assert_has_file $FL_DIR/exports/share/icons/HighContrast/64x64/apps/org.test.Hello.png
diff --git a/pkgs/development/libraries/flatpak/validate-icon-pixbuf.patch b/pkgs/development/libraries/flatpak/validate-icon-pixbuf.patch
index 5b8cc2d0383f2..086114e11c30d 100644
--- a/pkgs/development/libraries/flatpak/validate-icon-pixbuf.patch
+++ b/pkgs/development/libraries/flatpak/validate-icon-pixbuf.patch
@@ -1,8 +1,8 @@
 diff --git a/icon-validator/validate-icon.c b/icon-validator/validate-icon.c
-index 6e23d9f2..f0659a78 100644
+index 9e885070..44fea035 100644
 --- a/icon-validator/validate-icon.c
 +++ b/icon-validator/validate-icon.c
-@@ -193,6 +193,8 @@ rerun_in_sandbox (const char *arg_width,
+@@ -200,6 +200,8 @@ rerun_in_sandbox (const char *arg_width,
      add_args (args, "--setenv", "G_MESSAGES_DEBUG", g_getenv ("G_MESSAGES_DEBUG"), NULL);
    if (g_getenv ("G_MESSAGES_PREFIXED"))
      add_args (args, "--setenv", "G_MESSAGES_PREFIXED", g_getenv ("G_MESSAGES_PREFIXED"), NULL);
diff --git a/pkgs/development/libraries/libmodulemd/1.nix b/pkgs/development/libraries/libmodulemd/1.nix
new file mode 100644
index 0000000000000..174296375e08c
--- /dev/null
+++ b/pkgs/development/libraries/libmodulemd/1.nix
@@ -0,0 +1,21 @@
+{ libmodulemd, fetchurl }:
+
+libmodulemd.overrideAttrs(old: rec {
+  name = "libmodulemd-${version}";
+  version = "1.8.15";
+
+  # Removes py output since there's no overrides here
+  outputs = [ "out" "devdoc" ];
+
+  patches = [
+    # Checks for glib docs in glib's prefix
+    # but they're installed to another
+    ./dont-check-docs.patch
+  ];
+
+  src = fetchurl {
+    url = "https://github.com/fedora-modularity/libmodulemd/releases/download/${name}/modulemd-${version}.tar.xz";
+    sha256 = "0gz8p3qzji3cx0r57sy3gn4dhigg4k7pcxj3lmjcjn13vxh5rm7z";
+  };
+
+})
diff --git a/pkgs/development/libraries/libmodulemd/default.nix b/pkgs/development/libraries/libmodulemd/default.nix
new file mode 100644
index 0000000000000..ba77c7806b53b
--- /dev/null
+++ b/pkgs/development/libraries/libmodulemd/default.nix
@@ -0,0 +1,59 @@
+{ stdenv
+, fetchFromGitHub
+, pkgconfig
+, meson
+, ninja
+, gobject-introspection
+, python3
+, libyaml
+, gtk-doc
+, docbook_xsl
+, docbook_xml_dtd_412
+, glib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "libmodulemd";
+  version = "2.6.0";
+
+  outputs = [ "out" "devdoc" "py" ];
+
+  src = fetchFromGitHub {
+    owner = "fedora-modularity";
+    repo = pname;
+    rev = "${pname}-${version}";
+    sha256 = "0gizfmzs6jrzb29lwcimm5dq3027935xbzwgkbvbp67zcmjd3y5i";
+  };
+
+  patches = [
+    ./pygobject-dir.patch
+  ];
+
+  nativeBuildInputs = [
+    pkgconfig
+    meson
+    ninja
+    gtk-doc
+    docbook_xsl
+    docbook_xml_dtd_412
+    gobject-introspection
+  ];
+
+  buildInputs = [
+    libyaml
+    glib
+  ];
+
+  mesonFlags = [
+    "-Ddeveloper_build=false"
+    "-Dpygobject_override_dir=${placeholder "py"}/${python3.sitePackages}/gi/overrides"
+  ];
+
+  meta = with stdenv.lib; {
+    description = "C Library for manipulating module metadata files";
+    homepage = "https://github.com/fedora-modularity/libmodulemd";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/libraries/libmodulemd/dont-check-docs.patch b/pkgs/development/libraries/libmodulemd/dont-check-docs.patch
new file mode 100644
index 0000000000000..38ad5683692b1
--- /dev/null
+++ b/pkgs/development/libraries/libmodulemd/dont-check-docs.patch
@@ -0,0 +1,29 @@
+diff --git a/meson.build b/meson.build
+index 155c9e7..9125372 100644
+--- a/meson.build
++++ b/meson.build
+@@ -60,15 +60,15 @@ sh = find_program('sh')
+ sed = find_program('sed')
+ test = find_program('test')
+ 
+-ret = run_command ([test, '-e', join_paths(glib_docpath, 'glib/index.html')])
+-if ret.returncode() != 0
+-  error('Missing documentation for GLib.')
+-endif
+-
+-ret = run_command ([test, '-e', join_paths(glib_docpath, 'gobject/index.html')])
+-if ret.returncode() != 0
+-  error('Missing documentation for GObject.')
+-endif
++# ret = run_command ([test, '-e', join_paths(glib_docpath, 'glib/index.html')])
++# if ret.returncode() != 0
++#   error('Missing documentation for GLib.')
++# endif
++
++# ret = run_command ([test, '-e', join_paths(glib_docpath, 'gobject/index.html')])
++# if ret.returncode() != 0
++#   error('Missing documentation for GObject.')
++# endif
+ 
+ python_name = get_option('python_name')
+ 
diff --git a/pkgs/development/libraries/libmodulemd/pygobject-dir.patch b/pkgs/development/libraries/libmodulemd/pygobject-dir.patch
new file mode 100644
index 0000000000000..a367872eec650
--- /dev/null
+++ b/pkgs/development/libraries/libmodulemd/pygobject-dir.patch
@@ -0,0 +1,45 @@
+diff --git a/bindings/python/meson.build b/bindings/python/meson.build
+index 4358b79..61fd5a5 100644
+--- a/bindings/python/meson.build
++++ b/bindings/python/meson.build
+@@ -1,3 +1,5 @@
++pygobject_override_dir = get_option('pygobject_override_dir')
++
+ get_overridedir = '''
+ import os
+ import sysconfig
+@@ -21,7 +23,7 @@ print(overridedir)
+ '''
+ 
+ # Python 3
+-if (get_option('with_py3_overrides'))
++if (get_option('with_py3_overrides')) and pygobject_override_dir == ''
+   ret = run_command([python3, '-c', get_overridedir])
+ 
+   if ret.returncode() != 0
+@@ -34,7 +36,7 @@ if (get_option('with_py3_overrides'))
+ endif
+ 
+ # Python 2
+-if (get_option('with_py2_overrides'))
++if (get_option('with_py2_overrides')) and pygobject_override_dir == ''
+   ret2 = run_command([python2, '-c', get_overridedir])
+ 
+   if ret2.returncode() != 0
+@@ -45,3 +47,7 @@ if (get_option('with_py2_overrides'))
+ 
+   install_data('gi/overrides/Modulemd.py', install_dir: pygobject2_override_dir)
+ endif
++
++if pygobject_override_dir != ''
++    install_data('gi/overrides/Modulemd.py', install_dir: pygobject_override_dir)
++endif
+diff --git a/meson_options.txt b/meson_options.txt
+index 147419f..9071a04 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -18,3 +18,4 @@ option('skip_introspection', type : 'boolean', value : false)
+ option('python_name', type : 'string')
+ option('with_py2_overrides', type : 'boolean', value : false)
+ option('with_py3_overrides', type : 'boolean', value : true)
++option('pygobject_override_dir', type : 'string', value : '', description: 'Path to pygobject overrides directory')
diff --git a/pkgs/development/libraries/xdg-desktop-portal-gtk/default.nix b/pkgs/development/libraries/xdg-desktop-portal-gtk/default.nix
index b8cf86999e0b7..9b0316023710f 100644
--- a/pkgs/development/libraries/xdg-desktop-portal-gtk/default.nix
+++ b/pkgs/development/libraries/xdg-desktop-portal-gtk/default.nix
@@ -1,18 +1,39 @@
-{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, libxml2, xdg-desktop-portal, gtk3, glib, wrapGAppsHook, gsettings-desktop-schemas }:
+{ stdenv
+, fetchFromGitHub
+, autoreconfHook
+, pkgconfig
+, libxml2
+, xdg-desktop-portal
+, gtk3
+, glib
+, wrapGAppsHook
+, gsettings-desktop-schemas
+}:
 
 stdenv.mkDerivation rec {
   pname = "xdg-desktop-portal-gtk";
-  version = "1.2.0";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "flatpak";
     repo = pname;
     rev = version;
-    sha256 = "1vgnsahljzrjcdjzv1dxhp2rf709pnf8595an82llnylwa8rdp1j";
+    sha256 = "1zryfg6232vz1pmv0zqcxvl4clnbb15kjf55b24cimkcnidklbap";
   };
 
-  nativeBuildInputs = [ autoreconfHook pkgconfig libxml2 xdg-desktop-portal wrapGAppsHook ];
-  buildInputs = [ glib gtk3 gsettings-desktop-schemas ];
+  nativeBuildInputs = [
+    autoreconfHook
+    libxml2
+    pkgconfig
+    wrapGAppsHook
+    xdg-desktop-portal
+  ];
+
+  buildInputs = [
+    glib
+    gsettings-desktop-schemas
+    gtk3
+  ];
 
   meta = with stdenv.lib; {
     description = "Desktop integration portals for sandboxed apps";
diff --git a/pkgs/development/libraries/xdg-desktop-portal/default.nix b/pkgs/development/libraries/xdg-desktop-portal/default.nix
index 3f02946c77040..4be7bd1474cf0 100644
--- a/pkgs/development/libraries/xdg-desktop-portal/default.nix
+++ b/pkgs/development/libraries/xdg-desktop-portal/default.nix
@@ -1,8 +1,8 @@
-{ stdenv, fetchFromGitHub, substituteAll, autoreconfHook, pkgconfig, libxml2, glib, pipewire, fontconfig, flatpak, gsettings-desktop-schemas, acl, dbus, fuse, geoclue2, wrapGAppsHook }:
+{ stdenv, fetchFromGitHub, substituteAll, autoreconfHook, pkgconfig, libxml2, glib, pipewire, fontconfig, flatpak, gsettings-desktop-schemas, acl, dbus, fuse, geoclue2, json-glib, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "xdg-desktop-portal";
-  version = "1.2.0";
+  version = "1.4.2";
 
   outputs = [ "out" "installedTests" ];
 
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     owner = "flatpak";
     repo = pname;
     rev = version;
-    sha256 = "1gjyif4gly0mkdx6ir6wc4vhfh1raah9jq03q28i88hr7phjdy71";
+    sha256 = "1rs3kmpczkr6nm08kb9njnl7n3rmhh0ral0xav6f0y70pyh8whx6";
   };
 
   patches = [
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   ];
 
   nativeBuildInputs = [ autoreconfHook pkgconfig libxml2 wrapGAppsHook ];
-  buildInputs = [ glib pipewire fontconfig flatpak acl dbus geoclue2 fuse gsettings-desktop-schemas ];
+  buildInputs = [ glib pipewire fontconfig flatpak acl dbus geoclue2 fuse gsettings-desktop-schemas json-glib ];
 
   doCheck = true; # XXX: investigate!
 
diff --git a/pkgs/development/libraries/xdg-desktop-portal/respect-path-env-var.patch b/pkgs/development/libraries/xdg-desktop-portal/respect-path-env-var.patch
index f884899ecd19f..d970f5636ae44 100644
--- a/pkgs/development/libraries/xdg-desktop-portal/respect-path-env-var.patch
+++ b/pkgs/development/libraries/xdg-desktop-portal/respect-path-env-var.patch
@@ -1,10 +1,12 @@
---- a/src/xdg-desktop-portal.c
-+++ b/src/xdg-desktop-portal.c
-@@ -177,38 +177,50 @@
- static void
- load_installed_portals (void)
+diff --git a/src/portal-impl.c b/src/portal-impl.c
+index 4fd48ff..346da7c 100644
+--- a/src/portal-impl.c
++++ b/src/portal-impl.c
+@@ -116,38 +116,50 @@ sort_impl_by_name (gconstpointer a,
+ void
+ load_installed_portals (gboolean opt_verbose)
  {
--  const char *portal_dir = PKGDATADIR "/portals";
+-  const char *portal_dir = DATADIR "/xdg-desktop-portal/portals";
 -  g_autoptr(GFile) dir = g_file_new_for_path (portal_dir);
 -  g_autoptr(GFileEnumerator) enumerator = NULL;
  
@@ -14,7 +16,7 @@
 +  const char *portal_dir = g_getenv ("XDG_DESKTOP_PORTAL_PATH");
 +
 +  if (portal_dir == NULL)
-+    portal_dir = PKGDATADIR "/portals";
++    portal_dir = DATADIR "/portals";
  
 -  if (enumerator == NULL)
 -    return;
@@ -56,7 +58,7 @@
 -      path = g_file_get_path (child);
 +          name = g_file_info_get_name (info);
  
--      if (!register_portal (path, &error))
+-      if (!register_portal (path, opt_verbose, &error))
 -        {
 -          g_warning ("Error loading %s: %s", path, error->message);
 -          continue;
@@ -66,7 +68,7 @@
 +          child = g_file_enumerator_get_child (enumerator, info);
 +          path = g_file_get_path (child);
 +
-+          if (!register_portal (path, &error))
++          if (!register_portal (path, opt_verbose, &error))
 +            {
 +              g_warning ("Error loading %s: %s", path, error->message);
 +              continue;
diff --git a/pkgs/tools/misc/ostree/01-Drop-ostree-trivial-httpd-CLI-move-to-tests-director.patch b/pkgs/tools/misc/ostree/01-Drop-ostree-trivial-httpd-CLI-move-to-tests-director.patch
new file mode 100644
index 0000000000000..9c334436162b5
--- /dev/null
+++ b/pkgs/tools/misc/ostree/01-Drop-ostree-trivial-httpd-CLI-move-to-tests-director.patch
@@ -0,0 +1,271 @@
+From a9a62d7c7adf6fc0237c7d04937b538a4cea87ad Mon Sep 17 00:00:00 2001
+From: Colin Walters <walters@verbum.org>
+Date: Tue, 19 Jun 2018 09:34:18 -0400
+Subject: [PATCH] Drop "ostree trivial-httpd" CLI, move to tests directory
+
+See https://github.com/ostreedev/ostree/issues/1593
+
+Basically this makes it easier for people packaging, as the trivial-httpd
+is only for tests, and this way the binary will live with the tests.
+
+Also at this point nothing should depend on `ostree trivial-httpd`.
+---
+ Makefile-man.am              |   6 --
+ Makefile-ostree.am           |   7 ---
+ Makefile-tests.am            |   7 +++
+ configure.ac                 |  10 ---
+ man/ostree-trivial-httpd.xml | 118 -----------------------------------
+ src/ostree/main.c            |   5 --
+ tests/libtest.sh             |  13 ++--
+ 7 files changed, 12 insertions(+), 154 deletions(-)
+ delete mode 100644 man/ostree-trivial-httpd.xml
+
+diff --git a/Makefile-man.am b/Makefile-man.am
+index 8ccbba8c..d204aa3e 100644
+--- a/Makefile-man.am
++++ b/Makefile-man.am
+@@ -34,12 +34,6 @@ ostree-init.1 ostree-log.1 ostree-ls.1 ostree-prune.1 ostree-pull-local.1 \
+ ostree-pull.1 ostree-refs.1 ostree-remote.1 ostree-reset.1 \
+ ostree-rev-parse.1 ostree-show.1 ostree-summary.1 \
+ ostree-static-delta.1
+-if BUILDOPT_TRIVIAL_HTTPD
+-man1_files += ostree-trivial-httpd.1
+-else
+-# We still want to distribute the source, even if we are not building it
+-EXTRA_DIST += man/ostree-trivial-httpd.xml
+-endif
+ 
+ if BUILDOPT_FUSE
+ man1_files += rofiles-fuse.1
+diff --git a/Makefile-ostree.am b/Makefile-ostree.am
+index 8d352e38..1471b3e5 100644
+--- a/Makefile-ostree.am
++++ b/Makefile-ostree.am
+@@ -133,13 +133,6 @@ ostree_SOURCES += src/ostree/ot-builtin-pull.c
+ endif
+ 
+ if USE_LIBSOUP
+-# Eventually once we stop things from using this, we should support disabling this
+-ostree_SOURCES += src/ostree/ot-builtin-trivial-httpd.c
+-pkglibexec_PROGRAMS += ostree-trivial-httpd
+-ostree_trivial_httpd_SOURCES = src/ostree/ostree-trivial-httpd.c
+-ostree_trivial_httpd_CFLAGS = $(ostree_bin_shared_cflags) $(OT_INTERNAL_SOUP_CFLAGS)
+-ostree_trivial_httpd_LDADD = $(ostree_bin_shared_ldadd) $(OT_INTERNAL_SOUP_LIBS)
+-
+ if !USE_CURL
+ # This is necessary for the cookie jar bits
+ ostree_CFLAGS += $(OT_INTERNAL_SOUP_CFLAGS)
+diff --git a/Makefile-tests.am b/Makefile-tests.am
+index 2c0916f6..b11fde89 100644
+--- a/Makefile-tests.am
++++ b/Makefile-tests.am
+@@ -248,6 +248,13 @@ _installed_or_uninstalled_test_programs = tests/test-varint tests/test-ot-unix-u
+ 	tests/test-gpg-verify-result tests/test-checksum tests/test-lzma tests/test-rollsum \
+ 	tests/test-basic-c tests/test-sysroot-c tests/test-pull-c tests/test-repo tests/test-include-ostree-h
+ 
++if USE_LIBSOUP
++test_extra_programs += ostree-trivial-httpd
++ostree_trivial_httpd_SOURCES = src/ostree/ostree-trivial-httpd.c
++ostree_trivial_httpd_CFLAGS = $(common_tests_cflags) $(OT_INTERNAL_SOUP_CFLAGS)
++ostree_trivial_httpd_LDADD = $(common_tests_ldadd) $(OT_INTERNAL_SOUP_LIBS)
++endif
++
+ if USE_AVAHI
+ test_programs += tests/test-repo-finder-avahi
+ endif
+diff --git a/configure.ac b/configure.ac
+index e6e145db..1e36e6a0 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -187,15 +187,6 @@ if test x$with_soup != xno; then OSTREE_FEATURES="$OSTREE_FEATURES libsoup"; fi
+ AM_CONDITIONAL(USE_LIBSOUP, test x$with_soup != xno)
+ AM_CONDITIONAL(HAVE_LIBSOUP_CLIENT_CERTS, test x$have_libsoup_client_certs = xyes)
+ 
+-AC_ARG_ENABLE(trivial-httpd-cmdline,
+-  [AS_HELP_STRING([--enable-trivial-httpd-cmdline],
+-  [Continue to support "ostree trivial-httpd" [default=no]])],,
+-  enable_trivial_httpd_cmdline=no)
+-AM_CONDITIONAL(BUILDOPT_TRIVIAL_HTTPD, test x$enable_trivial_httpd_cmdline = xyes)
+-AM_COND_IF(BUILDOPT_TRIVIAL_HTTPD,
+-  [AC_DEFINE([BUILDOPT_ENABLE_TRIVIAL_HTTPD_CMDLINE], 1, [Define if we are enabling ostree trivial-httpd entrypoint])]
+-)
+-
+ AS_IF([test x$with_curl = xyes && test x$with_soup = xno], [
+   AC_MSG_WARN([Curl enabled, but libsoup is not; libsoup is needed for tests (make check, etc.)])
+ ])
+@@ -602,7 +593,6 @@ echo "
+     Rust (internal oxidation):                    $rust_debug_release
+     rofiles-fuse:                                 $enable_rofiles_fuse
+     HTTP backend:                                 $fetcher_backend
+-    \"ostree trivial-httpd\":                       $enable_trivial_httpd_cmdline
+     SELinux:                                      $with_selinux
+     cryptographic checksums:                      $with_crypto
+     systemd:                                      $have_libsystemd
+diff --git a/man/ostree-trivial-httpd.xml b/man/ostree-trivial-httpd.xml
+deleted file mode 100644
+index d03c12be..00000000
+--- a/man/ostree-trivial-httpd.xml
++++ /dev/null
+@@ -1,118 +0,0 @@
+-<?xml version='1.0'?> <!--*-nxml-*-->
+-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+-    "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
+-
+-<!--
+-Copyright 2011,2013 Colin Walters <walters@verbum.org>
+-
+-SPDX-License-Identifier: LGPL-2.0+
+-
+-This library is free software; you can redistribute it and/or
+-modify it under the terms of the GNU Lesser General Public
+-License as published by the Free Software Foundation; either
+-version 2 of the License, or (at your option) any later version.
+-
+-This library is distributed in the hope that it will be useful,
+-but WITHOUT ANY WARRANTY; without even the implied warranty of
+-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-Lesser General Public License for more details.
+-
+-You should have received a copy of the GNU Lesser General Public
+-License along with this library; if not, write to the
+-Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+-Boston, MA 02111-1307, USA.
+--->
+-
+-<refentry id="ostree">
+-
+-    <refentryinfo>
+-        <title>ostree trivial-httpd</title>
+-        <productname>OSTree</productname>
+-
+-        <authorgroup>
+-            <author>
+-                <contrib>Developer</contrib>
+-                <firstname>Colin</firstname>
+-                <surname>Walters</surname>
+-                <email>walters@verbum.org</email>
+-            </author>
+-        </authorgroup>
+-    </refentryinfo>
+-
+-    <refmeta>
+-        <refentrytitle>ostree trivial-httpd</refentrytitle>
+-        <manvolnum>1</manvolnum>
+-    </refmeta>
+-
+-    <refnamediv>
+-        <refname>ostree-trivial-httpd</refname>
+-        <refpurpose>Simple webserver</refpurpose>
+-    </refnamediv>
+-
+-    <refsynopsisdiv>
+-            <cmdsynopsis>
+-                <command>ostree trivial-httpd</command> <arg choice="opt" rep="repeat">OPTIONS</arg> <arg choice="opt">DIR</arg>
+-            </cmdsynopsis>
+-    </refsynopsisdiv>
+-
+-<!-- Don't entirely understand this command.  Needs details, better content-->
+-    <refsect1>
+-        <title>Description</title>
+-
+-        <para>
+-            This runs a simple webserver and keeps it running until killed.  If DIR is not specified, it defaults to the current directory.
+-        </para>
+-    </refsect1>
+-
+-    <refsect1>
+-        <title>Options</title>
+-
+-        <variablelist>
+-            <varlistentry>
+-                <term><option>--daemonize</option>,<option>-d</option></term>
+-
+-                <listitem><para>
+-                    Fork into background when ready.
+-                </para></listitem>
+-            </varlistentry>
+-
+-            <varlistentry>
+-                <term><option>--autoexit</option></term>
+-
+-                <listitem><para>
+-                    Automatically exit when directory is deleted.
+-                </para></listitem>
+-            </varlistentry>
+-
+-            <varlistentry>
+-                <term><option>--port-file</option>,<option>-p</option>="PATH"</term>
+-
+-                <listitem><para>
+-                    Write port number to PATH (- for standard output).
+-                </para></listitem>
+-            </varlistentry>
+-
+-            <varlistentry>
+-                <term><option>--port</option>,<option>-P</option></term>
+-
+-                <listitem><para>
+-                    Use the specified TCP port to listen on.
+-                </para></listitem>
+-            </varlistentry>
+-
+-            <varlistentry>
+-                <term><option>--force-range-requests</option></term>
+-
+-                <listitem><para>
+-                    Force range requests by only serving half of files.
+-                </para></listitem>
+-            </varlistentry>
+-        </variablelist>
+-    </refsect1>
+-
+-<!-- NEED EXAMPLE OUTPUT HERE!-->
+-    <refsect1>
+-        <title>Example</title>
+-        <para><command>$ ostree trivial-httpd</command></para>
+-    </refsect1>
+-</refentry>
+diff --git a/src/ostree/main.c b/src/ostree/main.c
+index c5b45012..6478a62b 100644
+--- a/src/ostree/main.c
++++ b/src/ostree/main.c
+@@ -116,11 +116,6 @@ static OstreeCommand commands[] = {
+   { "summary", OSTREE_BUILTIN_FLAG_NONE,
+     ostree_builtin_summary,
+     "Manage summary metadata" },
+-#if defined(HAVE_LIBSOUP) && defined(BUILDOPT_ENABLE_TRIVIAL_HTTPD_CMDLINE)
+-  { "trivial-httpd", OSTREE_BUILTIN_FLAG_NONE,
+-    ostree_builtin_trivial_httpd,
+-    NULL },
+-#endif
+   { NULL }
+ };
+ 
+diff --git a/tests/libtest.sh b/tests/libtest.sh
+index e0022512..b07dc962 100755
+--- a/tests/libtest.sh
++++ b/tests/libtest.sh
+@@ -149,15 +149,12 @@ fi
+ if test -n "${OSTREE_UNINSTALLED:-}"; then
+     OSTREE_HTTPD=${OSTREE_UNINSTALLED}/ostree-trivial-httpd
+ else
+-    # trivial-httpd is now in $libexecdir by default, which we don't
+-    # know at this point. Fortunately, libtest.sh is also in
+-    # $libexecdir, so make an educated guess. If it's not found, assume
+-    # it's still runnable as "ostree trivial-httpd".
+-    if [ -x "${test_srcdir}/../../libostree/ostree-trivial-httpd" ]; then
+-        OSTREE_HTTPD="${CMD_PREFIX} ${test_srcdir}/../../libostree/ostree-trivial-httpd"
+-    else
+-        OSTREE_HTTPD="${CMD_PREFIX} ostree trivial-httpd"
++    # trivial-httpd is now the test directory.
++    OSTREE_HTTPD="${G_TEST_BUILDDIR}/ostree-trivial-httpd"
++    if ! [ -x "${OSTREE_HTTPD}" ]; then
++        fatal "Failed to find ${OSTREE_HTTPD}"
+     fi
++    OSTREE_HTTPD="${CMD_PREFIX} ${OSTREE_HTTPD}"
+ fi
+ 
+ files_are_hardlinked() {
+-- 
+2.22.0
+
diff --git a/pkgs/tools/misc/ostree/default.nix b/pkgs/tools/misc/ostree/default.nix
index 0054e38ed2da6..9f423cf6a4da0 100644
--- a/pkgs/tools/misc/ostree/default.nix
+++ b/pkgs/tools/misc/ostree/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ostree";
-  version = "2019.1";
+  version = "2019.2";
 
   outputs = [ "out" "dev" "man" "installedTests" ];
 
   src = fetchurl {
     url = "https://github.com/ostreedev/ostree/releases/download/v${version}/libostree-${version}.tar.xz";
-    sha256 = "08y7nsxl305dnlfak4kyj88lld848y4kg6bvjqngcxaqqvkk9xqm";
+    sha256 = "0nbbrz3p4ms6vpl272q6fimqvizryw2a8mnfqcn69xf03sz5204y";
   };
 
   patches = [
@@ -22,10 +22,7 @@ stdenv.mkDerivation rec {
     ./disable-test-gpg-verify-result.patch
     # 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";
-    })
+    ./01-Drop-ostree-trivial-httpd-CLI-move-to-tests-director.patch
   ];
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/misc/ostree/disable-test-gpg-verify-result.patch b/pkgs/tools/misc/ostree/disable-test-gpg-verify-result.patch
index d3ef7e08357ab..8da2fb82dd0ee 100644
--- a/pkgs/tools/misc/ostree/disable-test-gpg-verify-result.patch
+++ b/pkgs/tools/misc/ostree/disable-test-gpg-verify-result.patch
@@ -1,12 +1,12 @@
-diff -aur --no-dereference a/Makefile-tests.am b/Makefile-tests.am
---- a/Makefile-tests.am	1970-01-01 01:00:01.000000000 +0100
-+++ b/Makefile-tests.am	2018-09-17 00:24:11.977841113 +0200
-@@ -243,7 +243,7 @@
+diff --git a/Makefile-tests.am b/Makefile-tests.am
+index b11fde89..82937a67 100644
+--- a/Makefile-tests.am
++++ b/Makefile-tests.am
+@@ -245,7 +245,6 @@ endif
  
  _installed_or_uninstalled_test_programs = tests/test-varint tests/test-ot-unix-utils tests/test-bsdiff tests/test-mutable-tree \
  	tests/test-keyfile-utils tests/test-ot-opt-utils tests/test-ot-tool-util \
 -	tests/test-gpg-verify-result tests/test-checksum tests/test-lzma tests/test-rollsum \
-+	tests/test-checksum tests/test-lzma tests/test-rollsum \
  	tests/test-basic-c tests/test-sysroot-c tests/test-pull-c tests/test-repo tests/test-include-ostree-h
  
- if USE_AVAHI
+ if USE_LIBSOUP
diff --git a/pkgs/tools/misc/ostree/fix-1592.patch b/pkgs/tools/misc/ostree/fix-1592.patch
index f26a924c0d833..1eccd74bfa7de 100644
--- a/pkgs/tools/misc/ostree/fix-1592.patch
+++ b/pkgs/tools/misc/ostree/fix-1592.patch
@@ -1,6 +1,7 @@
-diff -aur --no-dereference a/tests/pull-test.sh b/tests/pull-test.sh
---- a/tests/pull-test.sh	1970-01-01 01:00:01.000000000 +0100
-+++ b/tests/pull-test.sh	2018-09-16 23:55:44.214593856 +0200
+diff --git a/tests/pull-test.sh b/tests/pull-test.sh
+index a8bc49a9..4a08ebb5 100644
+--- a/tests/pull-test.sh
++++ b/tests/pull-test.sh
 @@ -275,7 +275,7 @@
  if ${CMD_PREFIX} ostree --repo=mirrorrepo-local pull-local otherrepo 2>err.txt; then
      fatal "pull with mixed refs succeeded?"
@@ -19,23 +20,62 @@ diff -aur --no-dereference a/tests/pull-test.sh b/tests/pull-test.sh
  echo "ok pull-local nonexistent branch"
  
  cd ${test_tmpdir}
-@@ -587,5 +587,5 @@
+@@ -593,5 +593,5 @@
  if ${CMD_PREFIX} ostree --repo=repo pull origin main 2>err.txt; then
      fatal "pull of invalid ref succeeded"
  fi
 -assert_file_has_content_literal err.txt 'error: Fetching checksum for ref ((empty), main): Invalid rev lots of html here  lots of html here  lots of html here  lots of'
 +assert_file_has_content_literal err.txt 'Fetching checksum for ref ((empty), main): Invalid rev lots of html here  lots of html here  lots of html here  lots of'
  echo "ok pull got HTML for a ref"
-diff -aur --no-dereference a/tests/test-fsck-collections.sh b/tests/test-fsck-collections.sh
---- a/tests/test-fsck-collections.sh	1970-01-01 01:00:01.000000000 +0100
-+++ b/tests/test-fsck-collections.sh	2018-09-17 02:22:48.922502037 +0200
+diff --git a/tests/test-config.sh b/tests/test-config.sh
+index 7e913d32..69d1675d 100755
+--- a/tests/test-config.sh
++++ b/tests/test-config.sh
+@@ -46,7 +46,7 @@
+ if ${CMD_PREFIX} ostree config --repo=repo get --group=core lock-timeout-secs extra 2>err.txt; then
+     assert_not_reached "ostree config get should error out if too many arguments are given"
+ fi
+-assert_file_has_content err.txt "error: Too many arguments given"
++assert_file_has_content err.txt "Too many arguments given"
+ echo "ok config get"
+ 
+ ${CMD_PREFIX} ostree config --repo=repo set core.mode bare-user-only
+@@ -63,7 +63,7 @@
+ if ${CMD_PREFIX} ostree config --repo=repo set --group=core lock-timeout-secs 120 extra 2>err.txt; then
+     assert_not_reached "ostree config set should error out if too many arguments are given"
+ fi
+-assert_file_has_content err.txt "error: Too many arguments given"
++assert_file_has_content err.txt "Too many arguments given"
+ echo "ok config set"
+ 
+ # Check that "ostree config unset" works
+@@ -78,7 +78,7 @@
+ fi
+ # Check for any character where quotation marks would be as they appear differently in the Fedora and Debian
+ # test suites (“” and '' respectively). See: https://github.com/ostreedev/ostree/pull/1839
+-assert_file_has_content err.txt "error: Key file does not have key .lock-timeout-secs. in group .core."
++assert_file_has_content err.txt "Key file does not have key .lock-timeout-secs. in group .core."
+ 
+ # Check that it's idempotent
+ ${CMD_PREFIX} ostree config --repo=repo unset core.lock-timeout-secs
+@@ -95,5 +95,5 @@
+ if ${CMD_PREFIX} ostree config --repo=repo unset core.lock-timeout-secs extra 2>err.txt; then
+     assert_not_reached "ostree config unset should error out if too many arguments are given"
+ fi
+-assert_file_has_content err.txt "error: Too many arguments given"
++assert_file_has_content err.txt "Too many arguments given"
+ echo "ok config unset"
+diff --git a/tests/test-fsck-collections.sh b/tests/test-fsck-collections.sh
+index dc6bcfeb..4a5eef55 100755
+--- a/tests/test-fsck-collections.sh
++++ b/tests/test-fsck-collections.sh
 @@ -100,7 +100,7 @@
  if ${CMD_PREFIX} ostree fsck --repo=repo --verify-bindings > fsck 2> fsck-error; then
      assert_not_reached "fsck unexpectedly succeeded after adding unbound ref!"
  fi
 -assert_file_has_content fsck-error "Commit has no requested ref ‘new-ref’ in ref binding metadata (‘ref1’)"
 +assert_file_has_content fsck-error "Commit has no requested ref .new-ref. in ref binding metadata (.ref1.)"
- assert_file_has_content fsck "^Validating refs...$"
+ assert_file_has_content fsck "^Validating refs\.\.\.$"
  
  echo "ok 3 fsck detects missing ref bindings"
 @@ -113,7 +113,7 @@
@@ -44,26 +84,26 @@ diff -aur --no-dereference a/tests/test-fsck-collections.sh b/tests/test-fsck-co
  fi
 -assert_file_has_content fsck-error "Commit has no requested ref ‘new-ref’ in ref binding metadata (‘ref1’)"
 +assert_file_has_content fsck-error "Commit has no requested ref .new-ref. in ref binding metadata (.ref1.)"
- assert_file_has_content fsck "^Validating refs...$"
- assert_file_has_content fsck "^Validating refs in collections...$"
+ assert_file_has_content fsck "^Validating refs\.\.\.$"
+ assert_file_has_content fsck "^Validating refs in collections\.\.\.$"
  
 @@ -127,7 +127,7 @@
  if ${CMD_PREFIX} ostree fsck --repo=repo --verify-bindings > fsck 2> fsck-error; then
      assert_not_reached "fsck unexpectedly succeeded after adding unbound ref!"
  fi
--assert_file_has_content fsck-error "Commit has collection ID ‘org.example.Collection’ in collection binding metadata, while the remote it came from has collection ID ‘org.example.Collection2’"
-+assert_file_has_content fsck-error "Commit has collection ID .org.example.Collection. in collection binding metadata, while the remote it came from has collection ID .org.example.Collection2."
- assert_file_has_content fsck "^Validating refs...$"
- assert_file_has_content fsck "^Validating refs in collections...$"
+-assert_file_has_content fsck-error "Commit has collection ID ‘org\.example\.Collection’ in collection binding metadata, while the remote it came from has collection ID ‘org\.example\.Collection2’"
++assert_file_has_content fsck-error "Commit has collection ID .org\.example\.Collection. in collection binding metadata, while the remote it came from has collection ID .org\.example\.Collection2."
+ assert_file_has_content fsck "^Validating refs\.\.\.$"
+ assert_file_has_content fsck "^Validating refs in collections\.\.\.$"
  
 @@ -147,7 +147,7 @@
  if ${CMD_PREFIX} ostree fsck --repo=repo --verify-back-refs > fsck 2> fsck-error; then
      assert_not_reached "fsck unexpectedly succeeded after adding unbound ref!"
  fi
--assert_file_has_content fsck-error "Collection–ref (org.example.Collection, ref1) in bindings for commit .* does not exist"
-+assert_file_has_content fsck-error 'Collection.ref (org.example.Collection, ref1) in bindings for commit .* does not exist'
- assert_file_has_content fsck "^Validating refs...$"
- assert_file_has_content fsck "^Validating refs in collections...$"
+-assert_file_has_content fsck-error "Collection–ref (org\.example\.Collection, ref1) in bindings for commit .* does not exist"
++assert_file_has_content fsck-error 'Collection.ref (org\.example\.Collection, ref1) in bindings for commit .* does not exist'
+ assert_file_has_content fsck "^Validating refs\.\.\.$"
+ assert_file_has_content fsck "^Validating refs in collections\.\.\.$"
  
 @@ -186,7 +186,7 @@
  if ${CMD_PREFIX} ostree fsck --repo=repo --verify-bindings > fsck 2> fsck-error; then
@@ -71,7 +111,7 @@ diff -aur --no-dereference a/tests/test-fsck-collections.sh b/tests/test-fsck-co
  fi
 -assert_file_has_content fsck-error "Commit has no requested ref ‘new-ref’ in ref binding metadata (‘ref3’, ‘ref4’)"
 +assert_file_has_content fsck-error "Commit has no requested ref .new-ref. in ref binding metadata (.ref3., .ref4.)"
- assert_file_has_content fsck "^Validating refs...$"
+ assert_file_has_content fsck "^Validating refs\.\.\.$"
  
  echo "ok 9 fsck detects missing ref bindings"
 @@ -205,7 +205,7 @@
@@ -80,12 +120,13 @@ diff -aur --no-dereference a/tests/test-fsck-collections.sh b/tests/test-fsck-co
  fi
 -assert_file_has_content fsck-error "Ref ‘ref3’ in bindings for commit .* does not exist"
 +assert_file_has_content fsck-error 'Ref .ref3. in bindings for commit .* does not exist'
- assert_file_has_content fsck "^Validating refs...$"
+ assert_file_has_content fsck "^Validating refs\.\.\.$"
  
  echo "ok 11 fsck ignores unreferenced ref bindings"
-diff -aur --no-dereference a/tests/test-remote-add.sh b/tests/test-remote-add.sh
---- a/tests/test-remote-add.sh	1970-01-01 01:00:01.000000000 +0100
-+++ b/tests/test-remote-add.sh	2018-09-17 00:14:16.486788225 +0200
+diff --git a/tests/test-remote-add.sh b/tests/test-remote-add.sh
+index bb7eae89..62a3bcd7 100755
+--- a/tests/test-remote-add.sh
++++ b/tests/test-remote-add.sh
 @@ -83,7 +83,7 @@
  if $OSTREE remote delete nosuchremote 2>err.txt; then
      assert_not_reached "Deleting remote unexpectedly succeeded"
diff --git a/pkgs/tools/misc/rpm-ostree/default.nix b/pkgs/tools/misc/rpm-ostree/default.nix
index 0680f360209c9..409e65dff7739 100644
--- a/pkgs/tools/misc/rpm-ostree/default.nix
+++ b/pkgs/tools/misc/rpm-ostree/default.nix
@@ -1,15 +1,15 @@
 { stdenv, fetchurl, ostree, rpm, which, autoconf, automake, libtool, pkgconfig, cargo, rustc,
   gobject-introspection, gtk-doc, libxml2, libxslt, docbook_xsl, docbook_xml_dtd_42, docbook_xml_dtd_43, gperf, cmake,
   libcap, glib, systemd, json-glib, libarchive, libsolv, librepo, polkit,
-  bubblewrap, pcre, check, python }:
+  bubblewrap, pcre, check, python, json_c, libmodulemd_1, utillinux, sqlite, cppunit }:
 
 stdenv.mkDerivation rec {
   pname = "rpm-ostree";
-  version = "2019.2";
+  version = "2019.5";
 
   src = fetchurl {
     url = "https://github.com/projectatomic/${pname}/releases/download/v${version}/${pname}-${version}.tar.xz";
-    sha256 = "0sxjlcq15avb0fv6v89z2xrqv095dck4k5s9f0pk6y7sm063n2pk";
+    sha256 = "0innbrjj086mslbf55bcvs9a3rv9hg1y2nhzxdjy3nhpqxqlzdnn";
   };
 
   patches = [
@@ -28,6 +28,8 @@ stdenv.mkDerivation rec {
     libcap ostree rpm glib systemd polkit bubblewrap
     json-glib libarchive libsolv librepo
     pcre check python
+     # libdnf
+    json_c libmodulemd_1 utillinux sqlite cppunit
   ];
 
   configureFlags = [
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index c2df042eae22e..75ba59e8079ff 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -12348,6 +12348,9 @@ in
 
   libvdpau = callPackage ../development/libraries/libvdpau { };
 
+  libmodulemd = callPackage ../development/libraries/libmodulemd { };
+  libmodulemd_1 = callPackage ../development/libraries/libmodulemd/1.nix { };
+
   libvdpau-va-gl = callPackage ../development/libraries/libvdpau-va-gl { };
 
   libversion = callPackage ../development/libraries/libversion { };