summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--nixos/doc/manual/release-notes/rl-2311.section.md2
-rw-r--r--pkgs/applications/misc/mupdf/default.nix4
-rw-r--r--pkgs/applications/terminal-emulators/xterm/default.nix4
-rw-r--r--pkgs/build-support/fetchurl/mirrors.nix6
-rw-r--r--pkgs/build-support/setup-hooks/make-wrapper.sh6
-rw-r--r--pkgs/development/compilers/gcc/10/default.nix4
-rw-r--r--pkgs/development/compilers/gcc/11/default.nix4
-rw-r--r--pkgs/development/compilers/gcc/12/default.nix4
-rw-r--r--pkgs/development/compilers/gcc/13/default.nix3
-rw-r--r--pkgs/development/compilers/gcc/4.8/default.nix4
-rw-r--r--pkgs/development/compilers/gcc/4.9/default.nix4
-rw-r--r--pkgs/development/compilers/gcc/6/default.nix4
-rw-r--r--pkgs/development/compilers/gcc/7/default.nix4
-rw-r--r--pkgs/development/compilers/gcc/8/default.nix4
-rw-r--r--pkgs/development/compilers/gcc/9/default.nix4
-rw-r--r--pkgs/development/compilers/gcc/install-info-files-serially.patch15
-rw-r--r--pkgs/development/libraries/glibc/common.nix12
-rw-r--r--pkgs/development/libraries/glibc/default.nix2
-rw-r--r--pkgs/development/libraries/gnu-efi/default.nix5
-rw-r--r--pkgs/development/libraries/gstreamer/bad/default.nix7
-rw-r--r--pkgs/development/libraries/gtk/2.x.nix119
-rw-r--r--pkgs/development/libraries/libgdiplus/configure-pkg-config.patch17
-rw-r--r--pkgs/development/libraries/libgdiplus/default.nix23
-rw-r--r--pkgs/development/python-modules/hatch-fancy-pypi-readme/default.nix4
-rw-r--r--pkgs/development/python-modules/pydantic/default.nix10
-rw-r--r--pkgs/misc/cups/default.nix4
-rw-r--r--pkgs/os-specific/darwin/apple-sdk-11.0/default.nix1
-rw-r--r--pkgs/tools/networking/dhcpcd/default.nix10
-rw-r--r--pkgs/tools/networking/openresolv/default.nix10
-rw-r--r--pkgs/tools/video/rav1e/default.nix6
-rw-r--r--pkgs/top-level/unixtools.nix2
31 files changed, 198 insertions, 110 deletions
diff --git a/nixos/doc/manual/release-notes/rl-2311.section.md b/nixos/doc/manual/release-notes/rl-2311.section.md
index 708306affdf..9147ee803fd 100644
--- a/nixos/doc/manual/release-notes/rl-2311.section.md
+++ b/nixos/doc/manual/release-notes/rl-2311.section.md
@@ -28,6 +28,8 @@
 
 - `mariadb` now defaults to `mariadb_1011` instead of `mariadb_106`, meaning the default version was upgraded from 10.6.x to 10.11.x. See the [upgrade notes](https://mariadb.com/kb/en/upgrading-from-mariadb-10-6-to-mariadb-10-11/) for potential issues.
 
+- `getent` has been moved from `glibc`'s `bin` output to its own dedicated output, reducing closure size for many dependents. Dependents using the `getent` alias should not be affected; others should move from using `glibc.bin` or `getBin glibc` to `getent` (which also improves compatibility with non-glibc platforms).
+
 - `etcd` has been updated to 3.5, you will want to read the [3.3 to 3.4](https://etcd.io/docs/v3.5/upgrades/upgrade_3_4/) and [3.4 to 3.5](https://etcd.io/docs/v3.5/upgrades/upgrade_3_5/) upgrade guides
 
 - `himalaya` has been updated to `0.8.0`, which drops the native TLS support (in favor of Rustls) and add OAuth 2.0 support. See the [release note](https://github.com/soywod/himalaya/releases/tag/v0.8.0) for more details.
diff --git a/pkgs/applications/misc/mupdf/default.nix b/pkgs/applications/misc/mupdf/default.nix
index c9523581b0a..99ca2751434 100644
--- a/pkgs/applications/misc/mupdf/default.nix
+++ b/pkgs/applications/misc/mupdf/default.nix
@@ -64,11 +64,9 @@ stdenv.mkDerivation rec {
     substituteInPlace Makerules --replace "(shell pkg-config" "(shell $PKG_CONFIG"
   '';
 
-  # Use shared libraries to decrease size
-  buildFlags = [ "shared" ];
-
   makeFlags = [
     "prefix=$(out)"
+    "shared=yes"
     "USE_SYSTEM_LIBS=yes"
     "PKG_CONFIG=${buildPackages.pkg-config}/bin/${buildPackages.pkg-config.targetPrefix}pkg-config"
   ] ++ lib.optionals (!enableX11) [ "HAVE_X11=no" ]
diff --git a/pkgs/applications/terminal-emulators/xterm/default.nix b/pkgs/applications/terminal-emulators/xterm/default.nix
index aad630f384e..958f87a6c31 100644
--- a/pkgs/applications/terminal-emulators/xterm/default.nix
+++ b/pkgs/applications/terminal-emulators/xterm/default.nix
@@ -4,14 +4,14 @@
 
 stdenv.mkDerivation rec {
   pname = "xterm";
-  version = "380";
+  version = "382";
 
   src = fetchurl {
     urls = [
       "ftp://ftp.invisible-island.net/xterm/${pname}-${version}.tgz"
       "https://invisible-mirror.net/archives/xterm/${pname}-${version}.tgz"
     ];
-    hash = "sha256-DB3B+oAPpktcWNFt25BecAsnylOKZb6MA7K6V2EQbDg=";
+    hash = "sha256-DNC889CqdGqEDqPxNm6imnQmNpTVNbXHd/J+tl1/zu0=";
   };
 
   strictDeps = true;
diff --git a/pkgs/build-support/fetchurl/mirrors.nix b/pkgs/build-support/fetchurl/mirrors.nix
index 2f12be0a897..2546b8e6dc9 100644
--- a/pkgs/build-support/fetchurl/mirrors.nix
+++ b/pkgs/build-support/fetchurl/mirrors.nix
@@ -175,12 +175,6 @@
     "https://download.qt.io/"
   ];
 
-  # Roy marples mirrors
-  roy = [
-    "https://roy.marples.name/downloads/"
-    "https://cflags.cc/roy/"
-  ];
-
   # Sage mirrors (https://www.sagemath.org/mirrors.html)
   sageupstream = [
     # Africa (HTTPS)
diff --git a/pkgs/build-support/setup-hooks/make-wrapper.sh b/pkgs/build-support/setup-hooks/make-wrapper.sh
index 4932e934ec1..11b332bfc3e 100644
--- a/pkgs/build-support/setup-hooks/make-wrapper.sh
+++ b/pkgs/build-support/setup-hooks/make-wrapper.sh
@@ -166,11 +166,11 @@ makeShellWrapper() {
         elif [[ "$p" == "--add-flags" ]]; then
             flags="${params[$((n + 1))]}"
             n=$((n + 1))
-            flagsBefore="$flagsBefore $flags"
+            flagsBefore="${flagsBefore-} $flags"
         elif [[ "$p" == "--append-flags" ]]; then
             flags="${params[$((n + 1))]}"
             n=$((n + 1))
-            flagsAfter="$flagsAfter $flags"
+            flagsAfter="${flagsAfter-} $flags"
         elif [[ "$p" == "--argv0" ]]; then
             argv0="${params[$((n + 1))]}"
             n=$((n + 1))
@@ -183,7 +183,7 @@ makeShellWrapper() {
     done
 
     echo exec ${argv0:+-a \"$argv0\"} \""$original"\" \
-         "$flagsBefore" '"$@"' "$flagsAfter" >> "$wrapper"
+         "${flagsBefore-}" '"$@"' "${flagsAfter-}" >> "$wrapper"
 
     chmod +x "$wrapper"
 }
diff --git a/pkgs/development/compilers/gcc/10/default.nix b/pkgs/development/compilers/gcc/10/default.nix
index df1cbdf1898..eef6ebc6833 100644
--- a/pkgs/development/compilers/gcc/10/default.nix
+++ b/pkgs/development/compilers/gcc/10/default.nix
@@ -55,7 +55,6 @@ let majorVersion = "10";
       # Fix https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80431
       ../fix-bug-80431.patch
       ../11/fix-struct-redefinition-on-glibc-2.36.patch
-      ../install-info-files-serially.patch
     ] ++ optional (targetPlatform != hostPlatform) ../libstdc++-target.patch
       ++ optional noSysDirs ../no-sys-dirs.patch
       ++ optional (noSysDirs && hostPlatform.isRiscV) ../no-sys-dirs-riscv.patch
@@ -238,6 +237,9 @@ stdenv.mkDerivation ({
     (targetPlatform == hostPlatform && hostPlatform == buildPlatform)
     (if profiledCompiler then "profiledbootstrap" else "bootstrap");
 
+  # https://gcc.gnu.org/PR109898
+  enableParallelInstalling = false;
+
   inherit (callFile ../common/strip-attributes.nix { })
     stripDebugList
     stripDebugListTarget
diff --git a/pkgs/development/compilers/gcc/11/default.nix b/pkgs/development/compilers/gcc/11/default.nix
index 8513f03d2da..304cd3c3811 100644
--- a/pkgs/development/compilers/gcc/11/default.nix
+++ b/pkgs/development/compilers/gcc/11/default.nix
@@ -59,7 +59,6 @@ let majorVersion = "11";
       # Fix https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80431
       ../fix-bug-80431.patch
       ./fix-struct-redefinition-on-glibc-2.36.patch
-      ../install-info-files-serially.patch
     ] ++ optional (targetPlatform != hostPlatform) ../libstdc++-target.patch
       ++ optional noSysDirs ../no-sys-dirs.patch
       ++ optional (noSysDirs && hostPlatform.isRiscV) ../no-sys-dirs-riscv.patch
@@ -254,6 +253,9 @@ lib.pipe (stdenv.mkDerivation ({
       + lib.optionalString (targetPlatform == hostPlatform && hostPlatform == buildPlatform && !disableBootstrap) "bootstrap";
     in lib.optional (target != "") target;
 
+  # https://gcc.gnu.org/PR109898
+  enableParallelInstalling = false;
+
   inherit (callFile ../common/strip-attributes.nix { })
     stripDebugList
     stripDebugListTarget
diff --git a/pkgs/development/compilers/gcc/12/default.nix b/pkgs/development/compilers/gcc/12/default.nix
index f0886f862c9..b816c554fa3 100644
--- a/pkgs/development/compilers/gcc/12/default.nix
+++ b/pkgs/development/compilers/gcc/12/default.nix
@@ -68,7 +68,6 @@ let majorVersion = "12";
         ../gnat-cflags-11.patch
         ../gcc-12-gfortran-driving.patch
         ../ppc-musl.patch
-        ../install-info-files-serially.patch
 
         # backport ICE fix on ccache code
         ./lambda-ICE-PR109241.patch
@@ -300,6 +299,9 @@ lib.pipe (stdenv.mkDerivation ({
           lib.optionalString (targetPlatform == hostPlatform && hostPlatform == buildPlatform && !disableBootstrap) "bootstrap";
     in lib.optional (target != "") target;
 
+  # https://gcc.gnu.org/PR109898
+  enableParallelInstalling = false;
+
   inherit (callFile ../common/strip-attributes.nix { })
     stripDebugList
     stripDebugListTarget
diff --git a/pkgs/development/compilers/gcc/13/default.nix b/pkgs/development/compilers/gcc/13/default.nix
index 4273195e718..73b6fb96863 100644
--- a/pkgs/development/compilers/gcc/13/default.nix
+++ b/pkgs/development/compilers/gcc/13/default.nix
@@ -298,6 +298,9 @@ lib.pipe (stdenv.mkDerivation ({
     stripDebugListTarget
     preFixup;
 
+  # https://gcc.gnu.org/PR109898
+  enableParallelInstalling = false;
+
   # https://gcc.gnu.org/install/specific.html#x86-64-x-solaris210
   ${if hostPlatform.system == "x86_64-solaris" then "CC" else null} = "gcc -m64";
 
diff --git a/pkgs/development/compilers/gcc/4.8/default.nix b/pkgs/development/compilers/gcc/4.8/default.nix
index 90489fd3fb1..2f03b838e76 100644
--- a/pkgs/development/compilers/gcc/4.8/default.nix
+++ b/pkgs/development/compilers/gcc/4.8/default.nix
@@ -74,7 +74,6 @@ let majorVersion = "4";
         ../struct-ucontext-4.8.patch
         ../sigsegv-not-declared.patch
         ../res_state-not-declared.patch
-        ../install-info-files-serially.patch
         # gcc-11 compatibility
         (fetchpatch {
           name = "gcc4-char-reload.patch";
@@ -257,6 +256,9 @@ stdenv.mkDerivation ({
     stripDebugListTarget
     preFixup;
 
+  # https://gcc.gnu.org/PR109898
+  enableParallelInstalling = false;
+
   doCheck = false; # requires a lot of tools, causes a dependency cycle for stdenv
 
   # https://gcc.gnu.org/install/specific.html#x86-64-x-solaris210
diff --git a/pkgs/development/compilers/gcc/4.9/default.nix b/pkgs/development/compilers/gcc/4.9/default.nix
index ec0f4cde781..768988e210b 100644
--- a/pkgs/development/compilers/gcc/4.9/default.nix
+++ b/pkgs/development/compilers/gcc/4.9/default.nix
@@ -63,7 +63,6 @@ let majorVersion = "4";
       [ ../9/fix-struct-redefinition-on-glibc-2.36.patch ../use-source-date-epoch.patch
         ../parallel-bconfig.patch ./parallel-strsignal.patch
         ./libsanitizer.patch
-        ../install-info-files-serially.patch
         (fetchpatch {
           name = "avoid-ustat-glibc-2.28.patch";
           url = "https://gitweb.gentoo.org/proj/gcc-patches.git/plain/4.9.4/gentoo/100_all_avoid-ustat-glibc-2.28.patch?id=55fcb515620a8f7d3bb77eba938aa0fcf0d67c96";
@@ -273,6 +272,9 @@ stdenv.mkDerivation ({
     (targetPlatform == hostPlatform && hostPlatform == buildPlatform)
     (if profiledCompiler then "profiledbootstrap" else "bootstrap");
 
+  # https://gcc.gnu.org/PR109898
+  enableParallelInstalling = false;
+
   inherit (callFile ../common/strip-attributes.nix { })
     stripDebugList
     stripDebugListTarget
diff --git a/pkgs/development/compilers/gcc/6/default.nix b/pkgs/development/compilers/gcc/6/default.nix
index 965a987aab3..c5799060a1e 100644
--- a/pkgs/development/compilers/gcc/6/default.nix
+++ b/pkgs/development/compilers/gcc/6/default.nix
@@ -68,7 +68,6 @@ let majorVersion = "6";
 
       # Fix https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80431
       ../fix-bug-80431.patch
-      ../install-info-files-serially.patch
     ] ++ optional (targetPlatform != hostPlatform) ../libstdc++-target.patch
       ++ optional noSysDirs ../no-sys-dirs.patch
       ++ optional langAda ../gnat-cflags.patch
@@ -291,6 +290,9 @@ stdenv.mkDerivation ({
     (targetPlatform == hostPlatform && hostPlatform == buildPlatform)
     (if profiledCompiler then "profiledbootstrap" else "bootstrap");
 
+  # https://gcc.gnu.org/PR109898
+  enableParallelInstalling = false;
+
   inherit (callFile ../common/strip-attributes.nix { })
     stripDebugList
     stripDebugListTarget
diff --git a/pkgs/development/compilers/gcc/7/default.nix b/pkgs/development/compilers/gcc/7/default.nix
index 6ec689ab252..3e8e52940e7 100644
--- a/pkgs/development/compilers/gcc/7/default.nix
+++ b/pkgs/development/compilers/gcc/7/default.nix
@@ -61,7 +61,6 @@ let majorVersion = "7";
         ../fix-bug-80431.patch
 
         ../9/fix-struct-redefinition-on-glibc-2.36.patch
-        ../install-info-files-serially.patch
       ]
       ++ optional (targetPlatform != hostPlatform) ../libstdc++-target.patch
       ++ optionals targetPlatform.isNetBSD [
@@ -244,6 +243,9 @@ stdenv.mkDerivation ({
     (targetPlatform == hostPlatform && hostPlatform == buildPlatform)
     (if profiledCompiler then "profiledbootstrap" else "bootstrap");
 
+  # https://gcc.gnu.org/PR109898
+  enableParallelInstalling = false;
+
   inherit (callFile ../common/strip-attributes.nix { })
     stripDebugList
     stripDebugListTarget
diff --git a/pkgs/development/compilers/gcc/8/default.nix b/pkgs/development/compilers/gcc/8/default.nix
index 1baed913785..25c5475ee80 100644
--- a/pkgs/development/compilers/gcc/8/default.nix
+++ b/pkgs/development/compilers/gcc/8/default.nix
@@ -50,7 +50,6 @@ let majorVersion = "8";
       # Fix https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80431
       ../fix-bug-80431.patch
       ../9/fix-struct-redefinition-on-glibc-2.36.patch
-      ../install-info-files-serially.patch
     ] ++ optional (targetPlatform != hostPlatform) ../libstdc++-target.patch
       ++ optional targetPlatform.isNetBSD ../libstdc++-netbsd-ctypes.patch
       ++ optional noSysDirs ../no-sys-dirs.patch
@@ -221,6 +220,9 @@ stdenv.mkDerivation ({
     (targetPlatform == hostPlatform && hostPlatform == buildPlatform)
     (if profiledCompiler then "profiledbootstrap" else "bootstrap");
 
+  # https://gcc.gnu.org/PR109898
+  enableParallelInstalling = false;
+
   inherit (callFile ../common/strip-attributes.nix { })
     stripDebugList
     stripDebugListTarget
diff --git a/pkgs/development/compilers/gcc/9/default.nix b/pkgs/development/compilers/gcc/9/default.nix
index aceb912d7a6..53c98a0b7a8 100644
--- a/pkgs/development/compilers/gcc/9/default.nix
+++ b/pkgs/development/compilers/gcc/9/default.nix
@@ -59,7 +59,6 @@ let majorVersion = "9";
       ./fix-struct-redefinition-on-glibc-2.36.patch
       # Fix https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80431
       ../fix-bug-80431.patch
-      ../install-info-files-serially.patch
     ] ++ optional (targetPlatform != hostPlatform) ../libstdc++-target.patch
       ++ optional targetPlatform.isNetBSD ../libstdc++-netbsd-ctypes.patch
       ++ optional noSysDirs ../no-sys-dirs.patch
@@ -235,6 +234,9 @@ stdenv.mkDerivation ({
     (targetPlatform == hostPlatform && hostPlatform == buildPlatform)
     (if profiledCompiler then "profiledbootstrap" else "bootstrap");
 
+  # https://gcc.gnu.org/PR109898
+  enableParallelInstalling = false;
+
   inherit (callFile ../common/strip-attributes.nix { })
     stripDebugList
     stripDebugListTarget
diff --git a/pkgs/development/compilers/gcc/install-info-files-serially.patch b/pkgs/development/compilers/gcc/install-info-files-serially.patch
deleted file mode 100644
index bec7c0a158d..00000000000
--- a/pkgs/development/compilers/gcc/install-info-files-serially.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -Naur gcc-12.2.0/gcc/Makefile.in gcc-12.2.0-new/gcc/Makefile.in
---- gcc-12.2.0/gcc/Makefile.in	2022-08-19 10:09:52.280658631 +0200
-+++ gcc-12.2.0-new/gcc/Makefile.in	2023-05-04 14:35:44.401420184 +0200
-@@ -3781,6 +3781,11 @@
- 	  fi; \
- 	fi
- 
-+# We don't care about the order in which the info files are built, but
-+# install-info doesn't support multiple parallel invocations writing to
-+# the same `dir-file`, so we have to disable parallelism for that reason:
-+.NOTPARALLEL: install-info
-+
- # Install the info files.
- # $(INSTALL_DATA) might be a relative pathname, so we can't cd into srcdir
- # to do the install.
diff --git a/pkgs/development/libraries/glibc/common.nix b/pkgs/development/libraries/glibc/common.nix
index 00b78f57db6..de9867f41d0 100644
--- a/pkgs/development/libraries/glibc/common.nix
+++ b/pkgs/development/libraries/glibc/common.nix
@@ -165,10 +165,18 @@ stdenv.mkDerivation ({
     "OBJCOPY=${stdenv.cc.targetPrefix}objcopy"
   ];
 
+  postInstall = (args.postInstall or "") + ''
+    moveToOutput bin/getent $getent
+  '';
+
   installFlags = [ "sysconfdir=$(out)/etc" ];
 
   # out as the first output is an exception exclusive to glibc
-  outputs = [ "out" "bin" "dev" "static" ];
+
+  # getent is its own output, not kept in bin, since many things
+  # depend on getent but not on the locale generation tools in the bin
+  # output. This saves a couple of megabytes of closure size in many cases.
+  outputs = [ "out" "bin" "dev" "static" "getent" ];
 
   strictDeps = true;
   depsBuildBuild = [ buildPackages.stdenv.cc ];
@@ -188,7 +196,7 @@ stdenv.mkDerivation ({
   passthru = { inherit version; minorRelease = version; };
 }
 
-// (removeAttrs args [ "withLinuxHeaders" "withGd" ]) //
+// (removeAttrs args [ "withLinuxHeaders" "withGd" "postInstall" ]) //
 
 {
   src = fetchurl {
diff --git a/pkgs/development/libraries/glibc/default.nix b/pkgs/development/libraries/glibc/default.nix
index 1c0c1b09e15..0f6cad157bb 100644
--- a/pkgs/development/libraries/glibc/default.nix
+++ b/pkgs/development/libraries/glibc/default.nix
@@ -94,7 +94,7 @@ in
         "user-defined-trusted-dirs=${stdenv.cc.cc.libgcc}/lib"
       ];
 
-    postInstall = (if stdenv.hostPlatform == stdenv.buildPlatform then ''
+    postInstall = previousAttrs.postInstall + (if stdenv.hostPlatform == stdenv.buildPlatform then ''
       echo SUPPORTED-LOCALES=C.UTF-8/UTF-8 > ../glibc-2*/localedata/SUPPORTED
       make -j''${NIX_BUILD_CORES:-1} localedata/install-locales
     '' else lib.optionalString stdenv.buildPlatform.isLinux ''
diff --git a/pkgs/development/libraries/gnu-efi/default.nix b/pkgs/development/libraries/gnu-efi/default.nix
index 1bdd6890ab2..e9746271ea2 100644
--- a/pkgs/development/libraries/gnu-efi/default.nix
+++ b/pkgs/development/libraries/gnu-efi/default.nix
@@ -20,6 +20,11 @@ stdenv.mkDerivation rec {
     "CROSS_COMPILE=${stdenv.cc.targetPrefix}"
   ];
 
+  postPatch = ''
+    substituteInPlace Make.defaults \
+      --replace "-Werror" ""
+  '';
+
   passthru.updateScript = gitUpdater {
     # No nicer place to find latest release.
     url = "https://git.code.sf.net/p/gnu-efi/code";
diff --git a/pkgs/development/libraries/gstreamer/bad/default.nix b/pkgs/development/libraries/gstreamer/bad/default.nix
index ccfbd892a97..e05e446a941 100644
--- a/pkgs/development/libraries/gstreamer/bad/default.nix
+++ b/pkgs/development/libraries/gstreamer/bad/default.nix
@@ -14,6 +14,8 @@
 , enableZbar ? false
 , faacSupport ? false
 , faac
+, opencvSupport ? false
+, opencv4
 , faad2
 , ldacbt
 , libass
@@ -54,7 +56,6 @@
 , libusb1
 , neon
 , openal
-, opencv4
 , openexr_3
 , openh264
 , libopenmpt
@@ -171,7 +172,6 @@ stdenv.mkDerivation rec {
     libusb1
     neon
     openal
-    opencv4
     openexr_3
     openh264
     rtmpdump
@@ -192,6 +192,8 @@ stdenv.mkDerivation rec {
     libfreeaptx
     zxing-cpp
     usrsctp
+  ] ++ lib.optionals opencvSupport [
+    opencv4
   ] ++ lib.optionals enableZbar [
     zbar
   ] ++ lib.optionals faacSupport [
@@ -292,6 +294,7 @@ stdenv.mkDerivation rec {
     "-Dgs=disabled" # depends on `google-cloud-cpp`
     "-Donnx=disabled" # depends on `libonnxruntime` not packaged in nixpkgs as of writing
     "-Dopenaptx=enabled" # since gstreamer-1.20.1 `libfreeaptx` is supported for circumventing the dubious license conflict with `libopenaptx`
+    "-Dopencv=${if opencvSupport then "enabled" else "disabled"}" # Reduces rebuild size when `config.cudaSupport = true`
     "-Dmicrodns=${if microdnsSupport then "enabled" else "disabled"}"
     "-Dbluez=${if bluezSupport then "enabled" else "disabled"}"
     (lib.mesonEnable "doc" enableDocumentation)
diff --git a/pkgs/development/libraries/gtk/2.x.nix b/pkgs/development/libraries/gtk/2.x.nix
index 4a77afa176a..539cfc37051 100644
--- a/pkgs/development/libraries/gtk/2.x.nix
+++ b/pkgs/development/libraries/gtk/2.x.nix
@@ -1,45 +1,63 @@
-{ config, lib, substituteAll, stdenv, fetchurl, pkg-config, gettext, glib, atk, pango, cairo, perl, xorg
-, gdk-pixbuf, gobject-introspection
-, xineramaSupport ? stdenv.isLinux
-, cupsSupport ? config.gtk2.cups or stdenv.isLinux, cups
-, gdktarget ? if stdenv.isDarwin then "quartz" else "x11"
-, AppKit, Cocoa
-, fetchpatch, buildPackages
+{ config
+, lib
+, stdenv
+, fetchurl
+, atk
+, buildPackages
+, cairo
+, cups
+, gdk-pixbuf
+, gettext
+, glib
+, gobject-introspection
+, libXcomposite
+, libXcursor
+, libXdamage
+, libXi
+, libXinerama
+, libXrandr
+, libXrender
+, pango
+, perl
+, pkg-config
+, substituteAll
 , testers
+, AppKit
+, Cocoa
+, gdktarget ? if stdenv.isDarwin then "quartz" else "x11"
+, cupsSupport ? config.gtk2.cups or stdenv.isLinux
+, xineramaSupport ? stdenv.isLinux
 }:
 
 let
-
   gtkCleanImmodulesCache = substituteAll {
     src = ./hooks/clean-immodules-cache.sh;
     gtk_module_path = "gtk-2.0";
     gtk_binary_version = "2.10.0";
   };
-
 in
-
 stdenv.mkDerivation (finalAttrs: {
   pname = "gtk+";
   version = "2.24.33";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gtk+/2.24/${finalAttrs.pname}-${finalAttrs.version}.tar.xz";
-    sha256 = "rCrHV/WULTGKMRpUsMgLXvKV8pnCpzxjL2v7H/Scxto=";
+    url = "mirror://gnome/sources/gtk+/2.24/gtk+-${finalAttrs.version}.tar.xz";
+    hash = "sha256-rCrHV/WULTGKMRpUsMgLXvKV8pnCpzxjL2v7H/Scxto=";
   };
 
   outputs = [ "out" "dev" "devdoc" ];
   outputBin = "dev";
 
-  enableParallelBuilding = true;
-
   setupHooks =  [
     ./hooks/drop-icon-theme-cache.sh
     gtkCleanImmodulesCache
   ];
 
-
   nativeBuildInputs = finalAttrs.setupHooks ++ [
-    perl pkg-config gettext gobject-introspection
+    gettext
+    gobject-introspection
+    perl
+    pkg-config
   ];
 
   patches = [
@@ -50,19 +68,31 @@ stdenv.mkDerivation (finalAttrs: {
     ./patches/2.0-darwin-x11.patch
   ];
 
-  propagatedBuildInputs = with xorg;
-    [ glib cairo pango gdk-pixbuf atk ]
-    ++ lib.optionals (stdenv.isLinux || stdenv.isDarwin) [
-         libXrandr libXrender libXcomposite libXi libXcursor
-       ]
-    ++ lib.optionals stdenv.isDarwin [ libXdamage ]
-    ++ lib.optional xineramaSupport libXinerama
-    ++ lib.optionals cupsSupport [ cups ]
-    ++ lib.optionals stdenv.isDarwin [ AppKit Cocoa ];
+  propagatedBuildInputs = [
+    atk
+    cairo
+    gdk-pixbuf
+    glib
+    pango
+  ] ++ lib.optionals (stdenv.isLinux || stdenv.isDarwin) [
+    libXcomposite
+    libXcursor
+    libXi
+    libXrandr
+    libXrender
+  ] ++ lib.optional xineramaSupport libXinerama
+  ++ lib.optional cupsSupport cups
+  ++ lib.optionals stdenv.isDarwin [
+    libXdamage
+    AppKit
+    Cocoa
+  ];
 
-  preConfigure = if (lib.versionAtLeast stdenv.hostPlatform.darwinMinVersion "11" && stdenv.isDarwin) then ''
-    MACOSX_DEPLOYMENT_TARGET=10.16
-  '' else null;
+  preConfigure =
+    lib.optionalString (stdenv.isDarwin
+                        && lib.versionAtLeast
+                          stdenv.hostPlatform.darwinMinVersion "11")
+      "MACOSX_DEPLOYMENT_TARGET=10.16";
 
   configureFlags = [
     "--sysconfdir=/etc"
@@ -77,6 +107,8 @@ stdenv.mkDerivation (finalAttrs: {
     "ac_cv_path_GDK_PIXBUF_CSOURCE=${buildPackages.gdk-pixbuf.dev}/bin/gdk-pixbuf-csource"
   ];
 
+  enableParallelBuilding = true;
+
   installFlags = [
     "sysconfdir=${placeholder "out"}/etc"
   ];
@@ -98,11 +130,21 @@ stdenv.mkDerivation (finalAttrs: {
     tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
   };
 
-  meta = with lib; {
+  meta = {
+    homepage = "https://www.gtk.org/";
     description = "A multi-platform toolkit for creating graphical user interfaces";
-    homepage    = "https://www.gtk.org/";
-    license     = licenses.lgpl2Plus;
-    maintainers = with maintainers; [ lovek323 raskin ];
+    longDescription = ''
+      GTK is a highly usable, feature rich toolkit for creating graphical user
+      interfaces which boasts cross platform compatibility and an easy to use
+      API.  GTK it is written in C, but has bindings to many other popular
+      programming languages such as C++, Python and C# among others.  GTK is
+      licensed under the GNU LGPL 2.1 allowing development of both free and
+      proprietary software with GTK without any license fees or royalties.
+    '';
+    changelog = "https://gitlab.gnome.org/GNOME/gtk/-/raw/${finalAttrs.version}/NEWS";
+    license = lib.licenses.lgpl2Plus;
+    maintainers = with lib.maintainers; [ lovek323 raskin ];
+    platforms = lib.platforms.all;
     pkgConfigModules = [
       "gdk-2.0"
       "gtk+-2.0"
@@ -110,18 +152,5 @@ stdenv.mkDerivation (finalAttrs: {
       "gdk-x11-2.0"
       "gtk+-x11-2.0"
     ];
-    platforms   = platforms.all;
-
-    longDescription = ''
-      GTK is a highly usable, feature rich toolkit for creating
-      graphical user interfaces which boasts cross platform
-      compatibility and an easy to use API.  GTK it is written in C,
-      but has bindings to many other popular programming languages
-      such as C++, Python and C# among others.  GTK is licensed
-      under the GNU LGPL 2.1 allowing development of both free and
-      proprietary software with GTK without any license fees or
-      royalties.
-    '';
-    changelog = "https://gitlab.gnome.org/GNOME/gtk/-/raw/${version}/NEWS";
   };
 })
diff --git a/pkgs/development/libraries/libgdiplus/configure-pkg-config.patch b/pkgs/development/libraries/libgdiplus/configure-pkg-config.patch
new file mode 100644
index 00000000000..b636f07e2bd
--- /dev/null
+++ b/pkgs/development/libraries/libgdiplus/configure-pkg-config.patch
@@ -0,0 +1,17 @@
+diff --git a/configure.ac b/configure.ac
+index e47a3f1..f529e69 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -16,10 +16,8 @@ m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
+ 
+ AC_C_BIGENDIAN
+ 
+-AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
+-if test "x$PKG_CONFIG" = "xno"; then
+-	AC_MSG_ERROR([You need to install pkg-config])
+-fi
++PKG_PROG_PKG_CONFIG
++
+ GLIB_REQUIRED_VERSION="2.2.3"
+ PKG_CHECK_MODULES(BASE_DEPENDENCIES, glib-2.0 >= $GLIB_REQUIRED_VERSION)
+ 
diff --git a/pkgs/development/libraries/libgdiplus/default.nix b/pkgs/development/libraries/libgdiplus/default.nix
index 705205df396..e71aedd2cbc 100644
--- a/pkgs/development/libraries/libgdiplus/default.nix
+++ b/pkgs/development/libraries/libgdiplus/default.nix
@@ -1,18 +1,23 @@
-{ lib, stdenv, fetchFromGitHub, pkg-config, glib, cairo, Carbon, fontconfig
+{ lib, stdenv, fetchzip, pkg-config, glib, cairo, Carbon, fontconfig
 , libtiff, giflib, libjpeg, libpng
 , libXrender, libexif, autoreconfHook, fetchpatch }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "libgdiplus";
-  version = "6.0.5";
+  version = "6.1";
 
-  src = fetchFromGitHub {
-    owner = "mono";
-    repo = "libgdiplus";
-    rev = version;
-    sha256 = "1387lgph5r17viv3rkf5hbksdn435njzmra7s17q0nzk2mkkm68c";
+  # Using source archive to avoid fetching Git submodules.
+  # Git repo: https://github.com/mono/libgdiplus
+  src = fetchzip {
+    url = "https://download.mono-project.com/sources/libgdiplus/libgdiplus-${finalAttrs.version}.tar.gz";
+    hash = "sha256-+lP9ETlw3s0RUliQT1uBWZ2j6o3V9EECBQSppOYFq4Q=";
   };
 
+  patches = [
+    # Fix pkg-config lookup when cross-compiling.
+    ./configure-pkg-config.patch
+  ];
+
   NIX_LDFLAGS = "-lgif";
 
   outputs = [ "out" "dev" ];
@@ -45,4 +50,4 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     license = licenses.mit;
   };
-}
+})
diff --git a/pkgs/development/python-modules/hatch-fancy-pypi-readme/default.nix b/pkgs/development/python-modules/hatch-fancy-pypi-readme/default.nix
index 16bbe3092da..63789c90deb 100644
--- a/pkgs/development/python-modules/hatch-fancy-pypi-readme/default.nix
+++ b/pkgs/development/python-modules/hatch-fancy-pypi-readme/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "hatch-fancy-pypi-readme";
-  version = "22.8.0";
+  version = "23.1.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "hatch_fancy_pypi_readme";
     inherit version;
-    hash = "sha256-2pEoLKCWAcGK3tjjeNr4tXjHAhSGbwlxFW7pu5zmwmo=";
+    hash = "sha256-sd9EBjCUrx6CSM6s1HqSyc8xPWuYI79mr4qSfDlgKH0=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pydantic/default.nix b/pkgs/development/python-modules/pydantic/default.nix
index 1a2851158c5..7312c4aac1b 100644
--- a/pkgs/development/python-modules/pydantic/default.nix
+++ b/pkgs/development/python-modules/pydantic/default.nix
@@ -6,6 +6,7 @@
 , devtools
 , email-validator
 , fetchFromGitHub
+, fetchpatch
 , pytest-mock
 , pytestCheckHook
 , python-dotenv
@@ -50,6 +51,15 @@ buildPythonPackage rec {
     hash = "sha256-4oJoDlP1grLblF0ppqYM1GYEyNMEM9FssFQjacipmms=";
   };
 
+  patches = [
+    # Fixes racy doctests build failures on really fast machines
+    # FIXME: remove after next release
+    (fetchpatch {
+      url = "https://github.com/pydantic/pydantic/pull/6103/commits/f05014a30340e608155683aaca17d275f93a0380.diff";
+      hash = "sha256-sr47hpl37SSFFbK+/h3hGlF6Pl6L8XPKDU0lZZV7Vzs=";
+    })
+  ];
+
   postPatch = ''
     sed -i '/flake8/ d' Makefile
   '';
diff --git a/pkgs/misc/cups/default.nix b/pkgs/misc/cups/default.nix
index 44e46355d0b..7c809f0c964 100644
--- a/pkgs/misc/cups/default.nix
+++ b/pkgs/misc/cups/default.nix
@@ -23,11 +23,11 @@
 
 stdenv.mkDerivation rec {
   pname = "cups";
-  version = "2.4.3";
+  version = "2.4.5";
 
   src = fetchurl {
     url = "https://github.com/OpenPrinting/cups/releases/download/v${version}/cups-${version}-source.tar.gz";
-    sha256 = "sha256-nd65jyDpyfSvEhwrEFPnQgt5vWdw8a3tKGYwPSdSb28=";
+    sha256 = "sha256-mkBN5V90UlsKaFHfDP3r+hIVrsDnwve+a5sJtpFvsAA=";
   };
 
   outputs = [ "out" "lib" "dev" "man" ];
diff --git a/pkgs/os-specific/darwin/apple-sdk-11.0/default.nix b/pkgs/os-specific/darwin/apple-sdk-11.0/default.nix
index 741c1a82f34..fca574bb8c1 100644
--- a/pkgs/os-specific/darwin/apple-sdk-11.0/default.nix
+++ b/pkgs/os-specific/darwin/apple-sdk-11.0/default.nix
@@ -62,6 +62,7 @@ let
     if stdenv.isAarch64 then stdenv
     else
       (overrideCC stdenv (mkCc stdenv.cc)).override {
+        extraBuildInputs = [ pkgs.darwin.apple_sdk_11_0.frameworks.CoreFoundation ];
         targetPlatform = stdenv.targetPlatform // {
           darwinMinVersion = "10.12";
           darwinSdkVersion = "11.0";
diff --git a/pkgs/tools/networking/dhcpcd/default.nix b/pkgs/tools/networking/dhcpcd/default.nix
index 87162c4e0d4..40cfa407722 100644
--- a/pkgs/tools/networking/dhcpcd/default.nix
+++ b/pkgs/tools/networking/dhcpcd/default.nix
@@ -1,6 +1,6 @@
 { lib
 , stdenv
-, fetchurl
+, fetchFromGitHub
 , fetchpatch
 , pkg-config
 , udev
@@ -14,9 +14,11 @@ stdenv.mkDerivation rec {
   pname = "dhcpcd";
   version = "9.4.1";
 
-  src = fetchurl {
-    url = "mirror://roy/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-gZNXY07+0epc9E7AGyTT0/iFL+yLQkmSXcxWZ8VON2w=";
+  src = fetchFromGitHub {
+    owner = "NetworkConfiguration";
+    repo = "dhcpcd";
+    rev = "v${version}";
+    sha256 = "sha256-qyxON+TsAKMwAI19b5P+dT/sgxpW6m1giGcf/boFpHc=";
   };
 
   patches = [
diff --git a/pkgs/tools/networking/openresolv/default.nix b/pkgs/tools/networking/openresolv/default.nix
index f486c903c5d..eb97e24b1f7 100644
--- a/pkgs/tools/networking/openresolv/default.nix
+++ b/pkgs/tools/networking/openresolv/default.nix
@@ -1,12 +1,14 @@
-{ lib, stdenv, fetchurl, makeWrapper, coreutils }:
+{ lib, stdenv, fetchFromGitHub, makeWrapper, coreutils }:
 
 stdenv.mkDerivation rec {
   pname = "openresolv";
   version = "3.12.0";
 
-  src = fetchurl {
-    url = "mirror://roy/openresolv/${pname}-${version}.tar.xz";
-    sha256 = "sha256-QrMFCOhXoihTXGMeqsk2hi2G7KaMFLXAvzh7oXa5G5c=";
+  src = fetchFromGitHub {
+    owner = "NetworkConfiguration";
+    repo = "openresolv";
+    rev = "v${version}";
+    sha256 = "sha256-lEyqOf2NGWnH44pDVNVSWZeuhXx7z0ru4KuXu2RuyIg=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/video/rav1e/default.nix b/pkgs/tools/video/rav1e/default.nix
index b5b66ec3475..b7ca158d2e7 100644
--- a/pkgs/tools/video/rav1e/default.nix
+++ b/pkgs/tools/video/rav1e/default.nix
@@ -55,6 +55,12 @@ in rustPlatform.buildRustPackage rec {
     Security
   ];
 
+  # Darwin uses `llvm-strip`, which results in link errors when using `-x` to strip the asm library
+  # and linking it with cctools ld64.
+  postPatch = lib.optionalString (stdenv.isDarwin && stdenv.isx86_64) ''
+    substituteInPlace build.rs --replace 'cmd.arg("-x")' 'cmd.arg("-S")'
+  '';
+
   checkType = "debug";
 
   postBuild =  ''
diff --git a/pkgs/top-level/unixtools.nix b/pkgs/top-level/unixtools.nix
index aa282adf6a3..40faa764212 100644
--- a/pkgs/top-level/unixtools.nix
+++ b/pkgs/top-level/unixtools.nix
@@ -72,7 +72,7 @@ let
       darwin = pkgs.darwin.system_cmds;
     };
     getent = {
-      linux = if stdenv.hostPlatform.libc == "glibc" then pkgs.stdenv.cc.libc
+      linux = if stdenv.hostPlatform.libc == "glibc" then pkgs.stdenv.cc.libc.getent
               else pkgs.netbsd.getent;
       darwin = pkgs.netbsd.getent;
     };