summary refs log tree commit diff
path: root/pkgs/development/libraries
diff options
context:
space:
mode:
authorFrederik Rietdijk <fridh@fridh.nl>2019-08-18 12:53:44 +0200
committerFrederik Rietdijk <fridh@fridh.nl>2019-08-18 12:53:44 +0200
commitf65aa21bb2b0a45ac671e8c9d656b1dfc88cda33 (patch)
tree98bb48130a5c464418af19f314236e112ad20c55 /pkgs/development/libraries
parentb8a79ac677bbc0f7b662bcc0c4fcb9df34c9f5f3 (diff)
parentffbb4d26f9f93681576815be82142d14f2aa8234 (diff)
downloadnixpkgs-f65aa21bb2b0a45ac671e8c9d656b1dfc88cda33.tar
nixpkgs-f65aa21bb2b0a45ac671e8c9d656b1dfc88cda33.tar.gz
nixpkgs-f65aa21bb2b0a45ac671e8c9d656b1dfc88cda33.tar.bz2
nixpkgs-f65aa21bb2b0a45ac671e8c9d656b1dfc88cda33.tar.lz
nixpkgs-f65aa21bb2b0a45ac671e8c9d656b1dfc88cda33.tar.xz
nixpkgs-f65aa21bb2b0a45ac671e8c9d656b1dfc88cda33.tar.zst
nixpkgs-f65aa21bb2b0a45ac671e8c9d656b1dfc88cda33.zip
Merge master into staging-next
Diffstat (limited to 'pkgs/development/libraries')
-rw-r--r--pkgs/development/libraries/ace/default.nix6
-rw-r--r--pkgs/development/libraries/armadillo/default.nix4
-rw-r--r--pkgs/development/libraries/audio/libbass/default.nix18
-rw-r--r--pkgs/development/libraries/cimg/default.nix5
-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/g2o/default.nix32
-rw-r--r--pkgs/development/libraries/g2o/remove-compiler-reference.patch25
-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/libqglviewer/default.nix20
-rw-r--r--pkgs/development/libraries/readline/readline-8.0-patches.nix1
-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/development/libraries/zlib/default.nix58
24 files changed, 365 insertions, 98 deletions
diff --git a/pkgs/development/libraries/ace/default.nix b/pkgs/development/libraries/ace/default.nix
index af94de525f7..04ab1331475 100644
--- a/pkgs/development/libraries/ace/default.nix
+++ b/pkgs/development/libraries/ace/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ace";
-  version = "6.5.5";
+  version = "6.5.6";
 
   src = fetchurl {
     url = "http://download.dre.vanderbilt.edu/previous_versions/ACE-${version}.tar.bz2";
-    sha256 = "1r1bvy65n50l6lbxm1k1bscqcv29mpkgp0pgr5cvvv7ldisrjl39";
+    sha256 = "15lfjc8r854hvjfvimhnqc3987b3cdngilhkii9rwpzginbyipi4";
   };
 
   enableParallelBuilding = true;
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   patchPhase = ''substituteInPlace ./MPC/prj_install.pl \
     --replace /usr/bin/perl "${perl}/bin/perl"'';
-  
+
   preConfigure = ''
     export INSTALL_PREFIX=$out
     export ACE_ROOT=$(pwd)
diff --git a/pkgs/development/libraries/armadillo/default.nix b/pkgs/development/libraries/armadillo/default.nix
index 27204e8e339..127c2f3ae31 100644
--- a/pkgs/development/libraries/armadillo/default.nix
+++ b/pkgs/development/libraries/armadillo/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, cmake, openblasCompat, superlu, hdf5 }:
 
 stdenv.mkDerivation rec {
-  version = "9.600.5";
   pname = "armadillo";
+  version = "9.600.6";
 
   src = fetchurl {
     url = "mirror://sourceforge/arma/armadillo-${version}.tar.xz";
-    sha256 = "1gy2rb3klvzx833851qgsbh5k1ds5zffwk0rmy1k8b1g51jdd76x";
+    sha256 = "0wlk1yv9531vpvgja4cpy0sxykrn0p5w376kx86vl45b50yamx7g";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/audio/libbass/default.nix b/pkgs/development/libraries/audio/libbass/default.nix
index 0e1445ca9ee..3552e335fed 100644
--- a/pkgs/development/libraries/audio/libbass/default.nix
+++ b/pkgs/development/libraries/audio/libbass/default.nix
@@ -1,32 +1,38 @@
 { stdenv, unzip, fetchurl }:
 
-let
-  version = "24";
+# Upstream changes files in-place, to update:
+# 1. Check latest version at http://www.un4seen.com/
+# 2. Update `version`s and `sha256` sums.
+# See also http://www.un4seen.com/forum/?topic=18614.0
 
+let
   allBass = {
     bass = {
       h = "bass.h";
+      version = "2.4.14";
       so = {
         i686_linux = "libbass.so";
         x86_64-linux = "x64/libbass.so";
       };
-      urlpath = "bass${version}-linux.zip";
-      sha256 = "1hjxp1akj8367qlglv5rqpwq2dimfz3bkllwq39abavz4sp8smjz";
+      urlpath = "bass24-linux.zip";
+      sha256 = "1nyzs08z0djyvz6jx1y9y99y0ksp4sxz9l2x43k1c9irls24xpfy";
     };
 
     bass_fx = {
       h = "C/bass_fx.h";
+      version = "2.4.12.1";
       so = {
         i686_linux = "libbass_fx.so";
         x86_64-linux = "x64/libbass_fx.so";
       };
-      urlpath = "z/0/bass_fx${version}-linux.zip";
+      urlpath = "z/0/bass_fx24-linux.zip";
       sha256 = "1q0g74z7iyhxqps5b3gnnbic8v2jji1r0mkvais57lsx8y21sbin";
     };
   };
 
   dropBass = name: bass: stdenv.mkDerivation {
-    name = "lib${name}-${version}";
+    pname = "lib${name}";
+    inherit (bass) version;
 
     src = fetchurl {
       url = "https://www.un4seen.com/files/${bass.urlpath}";
diff --git a/pkgs/development/libraries/cimg/default.nix b/pkgs/development/libraries/cimg/default.nix
index 904874b2290..3e7ef6d96ee 100644
--- a/pkgs/development/libraries/cimg/default.nix
+++ b/pkgs/development/libraries/cimg/default.nix
@@ -1,13 +1,12 @@
 { stdenv, fetchurl, unzip }:
 
 stdenv.mkDerivation rec {
-
   pname = "cimg";
-  version = "2.6.7";
+  version = "2.7.0";
 
   src = fetchurl {
     url = "http://cimg.eu/files/CImg_${version}.zip";
-    sha256 = "1jjsyq6ljpprak8l76aym1p28j9y7djxl73pdh1kpkw85ac23h6m";
+    sha256 = "1la6332cppyciyn3pflbchxa3av72a70p0n1c9sm1hgfbjlydqnv";
   };
 
   nativeBuildInputs = [ unzip ];
diff --git a/pkgs/development/libraries/flatpak/bubblewrap-paths.patch b/pkgs/development/libraries/flatpak/bubblewrap-paths.patch
index 79257fd6be5..407811736f8 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 4c4949b37be..d29be4cb930 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 49fcaa2b3f9..746b4382864 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 f987899e3bc..85b222152d0 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 0e259aebd8a..4cee60be2d0 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 798e388b23c..63ce0d12fe0 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 408198bda5c..01363ffb7b3 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 5b8cc2d0383..086114e11c3 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/g2o/default.nix b/pkgs/development/libraries/g2o/default.nix
index 1486b5bfc55..909c504870f 100644
--- a/pkgs/development/libraries/g2o/default.nix
+++ b/pkgs/development/libraries/g2o/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv, fetchFromGitHub, cmake, eigen, suitesparse }:
+{ lib, stdenv, fetchFromGitHub, cmake, eigen, suitesparse, libGLU, qt5
+, libsForQt5, makeWrapper }:
 
 stdenv.mkDerivation rec {
   pname = "g2o";
@@ -11,8 +12,33 @@ stdenv.mkDerivation rec {
     sha256 = "1rgrz6zxiinrik3lgwgvsmlww1m2fnpjmvcx1mf62xi1s2ma5w2i";
   };
 
-  nativeBuildInputs = [ cmake ];
-  buildInputs = [ eigen suitesparse ];
+  # Removes a reference to gcc that is only used in a debug message
+  patches = [ ./remove-compiler-reference.patch ];
+
+  separateDebugInfo = true;
+
+  nativeBuildInputs = [ cmake makeWrapper ];
+  buildInputs = [ eigen suitesparse libGLU qt5.qtbase libsForQt5.libqglviewer ];
+
+  cmakeFlags = [
+    # Detection script is broken
+    "-DQGLVIEWER_INCLUDE_DIR=${libsForQt5.libqglviewer}/include/QGLViewer"
+    "-DG2O_BUILD_EXAMPLES=OFF"
+  ] ++ lib.optionals stdenv.isx86_64 ([ "-DDO_SSE_AUTODETECT=OFF" ] ++ {
+    "default"        = [ "-DDISABLE_SSE3=ON" "-DDISABLE_SSE4_1=ON" "-DDISABLE_SSE4_2=ON" "-DDISABLE_SSE4_A=ON" ];
+    "westmere"       = [                                                                 "-DDISABLE_SSE4_A=ON" ];
+    "sandybridge"    = [                                                                 "-DDISABLE_SSE4_A=ON" ];
+    "ivybridge"      = [                                                                 "-DDISABLE_SSE4_A=ON" ];
+    "haswell"        = [                                                                 "-DDISABLE_SSE4_A=ON" ];
+    "broadwell"      = [                                                                 "-DDISABLE_SSE4_A=ON" ];
+    "skylake"        = [                                                                 "-DDISABLE_SSE4_A=ON" ];
+    "skylake-avx512" = [                                                                 "-DDISABLE_SSE4_A=ON" ];
+  }.${stdenv.hostPlatform.platform.gcc.arch or "default"});
+
+  postInstall = ''
+    wrapProgram $out/bin/g2o_viewer \
+      --prefix QT_PLUGIN_PATH : "${qt5.qtbase}/${qt5.qtbase.qtPluginPrefix}"
+  '';
 
   meta = {
     description = "A General Framework for Graph Optimization";
diff --git a/pkgs/development/libraries/g2o/remove-compiler-reference.patch b/pkgs/development/libraries/g2o/remove-compiler-reference.patch
new file mode 100644
index 00000000000..347c5780240
--- /dev/null
+++ b/pkgs/development/libraries/g2o/remove-compiler-reference.patch
@@ -0,0 +1,25 @@
+From b9bfed09e4e3c481b7eb36bee1ff4202ccf69dee Mon Sep 17 00:00:00 2001
+From: Ben Wolsieffer <benwolsieffer@gmail.com>
+Date: Fri, 17 May 2019 19:05:36 -0400
+Subject: [PATCH] Remove reference to compiler.
+
+---
+ CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index a3f66dd..bb05bd0 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -371,7 +371,7 @@ set(G2O_HAVE_CHOLMOD ${CHOLMOD_FOUND})
+ set(G2O_HAVE_CSPARSE ${CSPARSE_FOUND})
+ set(G2O_SHARED_LIBS ${BUILD_SHARED_LIBS})
+ set(G2O_LGPL_SHARED_LIBS ${BUILD_LGPL_SHARED_LIBS})
+-set(G2O_CXX_COMPILER "${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER}")
++set(G2O_CXX_COMPILER "${CMAKE_CXX_COMPILER_ID} unknown")
+ 
+ configure_file(config.h.in "${PROJECT_BINARY_DIR}/g2o/config.h")
+ install(FILES ${PROJECT_BINARY_DIR}/g2o/config.h DESTINATION ${INCLUDES_DESTINATION}/g2o)
+-- 
+2.21.0
+
diff --git a/pkgs/development/libraries/libmodulemd/1.nix b/pkgs/development/libraries/libmodulemd/1.nix
new file mode 100644
index 00000000000..174296375e0
--- /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 00000000000..ba77c7806b5
--- /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 00000000000..38ad5683692
--- /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 00000000000..a367872eec6
--- /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/libqglviewer/default.nix b/pkgs/development/libraries/libqglviewer/default.nix
index e68c5052beb..34b396a7102 100644
--- a/pkgs/development/libraries/libqglviewer/default.nix
+++ b/pkgs/development/libraries/libqglviewer/default.nix
@@ -1,25 +1,25 @@
-{ stdenv, fetchurl, qt4, qmake4Hook, AGL }:
+{ stdenv, fetchurl, qmake, qtbase, libGLU, AGL }:
 
 stdenv.mkDerivation rec {
-  name = "libqglviewer-2.6.3";
-  version = "2.6.3";
+  pname = "libqglviewer";
+  version = "2.7.1";
 
   src = fetchurl {
     url = "http://www.libqglviewer.com/src/libQGLViewer-${version}.tar.gz";
-    sha256 = "00jdkyk4wg1356c3ar6nk3hyp494ya3yvshq9m57kfmqpn3inqdy";
+    sha256 = "08f10yk22kjdsvrqhd063gqa8nxnl749c20mwhaxij4f7rzdkixz";
   };
 
-  buildInputs = [ qt4 qmake4Hook ]
+  nativeBuildInputs = [ qmake ];
+  buildInputs = [ qtbase libGLU ]
     ++ stdenv.lib.optional stdenv.isDarwin AGL;
 
-  postPatch =
-    ''
-      cd QGLViewer
-    '';
+  postPatch = ''
+    cd QGLViewer
+  '';
 
   meta = with stdenv.lib; {
     description = "C++ library based on Qt that eases the creation of OpenGL 3D viewers";
-    homepage = http://libqglviewer.com/;
+    homepage = "http://libqglviewer.com";
     license = licenses.gpl2;
     platforms = platforms.all;
   };
diff --git a/pkgs/development/libraries/readline/readline-8.0-patches.nix b/pkgs/development/libraries/readline/readline-8.0-patches.nix
index b8019fb3350..433da83dab9 100644
--- a/pkgs/development/libraries/readline/readline-8.0-patches.nix
+++ b/pkgs/development/libraries/readline/readline-8.0-patches.nix
@@ -1,4 +1,5 @@
 # Automatically generated by `update-patch-set.sh'; do not edit.
 
 patch: [
+(patch "001" "0sfh7wn0pr743xspnb1zndxndlv9rc0hcg14cbw5cmyg6f4ykrfq")
 ]
diff --git a/pkgs/development/libraries/xdg-desktop-portal-gtk/default.nix b/pkgs/development/libraries/xdg-desktop-portal-gtk/default.nix
index b8cf86999e0..9b031602371 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 3f02946c770..4be7bd1474c 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 f884899ecd1..d970f5636ae 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/development/libraries/zlib/default.nix b/pkgs/development/libraries/zlib/default.nix
index 9f5af47c726..592abea4ea0 100644
--- a/pkgs/development/libraries/zlib/default.nix
+++ b/pkgs/development/libraries/zlib/default.nix
@@ -1,24 +1,19 @@
 { stdenv
 , fetchurl
-# Regarding static/shared libaries, the current behaviour is:
-#
-# - static=true,  shared=true:  builds both and moves .a to the .static output;
-#                               in this case `pkg-config` auto detection will
-#                               not work if the .static output is given as
-#                               buildInputs to another package (#66461)
-# - static=true,  shared=false: builds .a only and leaves it in the main output
-# - static=false, shared=true:  builds shared only
-#
-# To get both `.a` and shared libraries in one output,
-# you currently have to use
-#   static=false, shared=true
-# and use
-#   .overrideAttrs (old: { dontDisableStatic = true; })
-# This is because by default, upstream zlib ./configure builds both.
-, static ? true
+# Note: If `{ static = false; shared = false; }`, upstream's default is used
+#       (which is building both static and shared as of zlib 1.2.11).
 , shared ? true
+, static ? true
+# If true, a separate .static ouput is created and the .a is moved there.
+# In this case `pkg-config` will auto detection will currently not work if the
+# .static output is given as `buildInputs` to another package (#66461), because
+# the `.pc` file lists only the main output's lib dir.
+# If false, and if `{ static = true; }`, the .a stays in the main output.
+, splitStaticOutput ? static
 }:
 
+assert splitStaticOutput -> static;
+
 stdenv.mkDerivation (rec {
   name = "zlib-${version}";
   version = "1.2.11";
@@ -41,14 +36,35 @@ stdenv.mkDerivation (rec {
   '';
 
   outputs = [ "out" "dev" ]
-    ++ stdenv.lib.optional (shared && static) "static";
+    ++ stdenv.lib.optional splitStaticOutput "static";
   setOutputFlags = false;
   outputDoc = "dev"; # single tiny man3 page
 
-  configureFlags = stdenv.lib.optional shared "--shared"
-                   ++ stdenv.lib.optional (static && !shared) "--static";
+  # For zlib's ./configure (as of verion 1.2.11), the order
+  # of --static/--shared flags matters!
+  # `--shared --static` builds only static libs, while
+  # `--static --shared` builds both.
+  # So we use the latter order to be able to build both.
+  # Also, giving just `--shared` builds both,
+  # giving just `--static` builds only static,
+  # and giving nothing builds both.
+  # So we have 3 possible ways to build both:
+  # `--static --shared`, `--shared` and giving nothing.
+  # Of these, we choose `--shared`, only because that's
+  # what we did in the past and we can avoid mass rebuilds this way.
+  # As a result, we pass `--static` only when we want just static.
+  configureFlags = stdenv.lib.optional (static && !shared) "--static"
+                   ++ stdenv.lib.optional shared "--shared";
+
+  # Note we don't need to set `dontDisableStatic`, because static-disabling
+  # works by grepping for `enable-static` in the `./configure` script
+  # (see `pkgs/stdenv/generic/setup.sh`), and zlib's handwritten one does
+  # not have such.
+  # It wouldn't hurt setting `dontDisableStatic = static && !splitStaticOutput`
+  # here (in case zlib ever switches to autoconf in the future),
+  # but we don't do it simply to avoid mass rebuilds.
 
-  postInstall = stdenv.lib.optionalString (shared && static) ''
+  postInstall = stdenv.lib.optionalString splitStaticOutput ''
     moveToOutput lib/libz.a "$static"
   ''
     # jww (2015-01-06): Sometimes this library install as a .so, even on
@@ -69,6 +85,8 @@ stdenv.mkDerivation (rec {
   # to the bootstrap-tools libgcc (as uses to happen on arm/mips)
   NIX_CFLAGS_COMPILE = stdenv.lib.optionalString (!stdenv.hostPlatform.isDarwin) "-static-libgcc";
 
+  # We don't strip on static cross-compilation because of reports that native
+  # stripping corrupted the target library; see commit 12e960f5 for the report.
   dontStrip = stdenv.hostPlatform != stdenv.buildPlatform && static;
   configurePlatforms = [];