about summary refs log tree commit diff
path: root/pkgs/development
diff options
context:
space:
mode:
authorgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>2023-12-06 06:01:30 +0000
committerGitHub <noreply@github.com>2023-12-06 06:01:30 +0000
commit035a649a67c56b9d16be608e8bb87b9c215b33da (patch)
treecdb7f52fa90bd89fe14628303333ba524f1c49be /pkgs/development
parent2622221e95392f62f81ae60c35504e338e9ac2cf (diff)
parentbf78e6a54601fc74d8d27fb918a420c84fb6f5b3 (diff)
Merge master into staging-next
Diffstat (limited to 'pkgs/development')
-rw-r--r--pkgs/development/compilers/gcc/patches/6/fix-objdump-check.patch43
-rw-r--r--pkgs/development/compilers/gcc/patches/9/avoid-cycling-subreg-reloads.patch261
-rw-r--r--pkgs/development/compilers/gcc/patches/9/gcc9-asan-glibc-2.34.patch70
-rw-r--r--pkgs/development/compilers/gcc/patches/libsanitizer-no-cyclades.patch83
-rw-r--r--pkgs/development/compilers/gcc/patches/struct-sigaltstack.patch87
-rw-r--r--pkgs/development/compilers/gcc/patches/struct-ucontext-4.5.patch107
-rw-r--r--pkgs/development/compilers/gcc/patches/struct-ucontext-libjava.patch33
-rw-r--r--pkgs/development/dotnet-modules/patches/monodevelop-fsharpbinding.addin-xml.patch88
-rw-r--r--pkgs/development/dotnet-modules/patches/monodevelop-fsharpbinding.references.patch43
-rw-r--r--pkgs/development/interpreters/love/0.7-gl-prototypes.patch21
-rw-r--r--pkgs/development/interpreters/octave/patches/bug62436.patch27
-rw-r--r--pkgs/development/libraries/abseil-cpp/cmake-full-dirs.patch15
-rw-r--r--pkgs/development/libraries/apr/is-this-a-compiler-bug.patch17
-rw-r--r--pkgs/development/libraries/audio/rtmidi/macos_include_targetconditionals.patch13
-rw-r--r--pkgs/development/libraries/cairo/skip-configure-stderr-check.patch89
-rw-r--r--pkgs/development/libraries/glibc/rpcgen-path.patch54
-rw-r--r--pkgs/development/libraries/libbluray/BDJ-JARFILE-path.patch27
-rw-r--r--pkgs/development/libraries/libopenshot-audio/0001-undef-fpret-on-aarch64-darwin.patch13
-rw-r--r--pkgs/development/libraries/libopenshot-audio/default.nix77
-rw-r--r--pkgs/development/libraries/libopenshot/0001-link-magickcore.diff12
-rw-r--r--pkgs/development/libraries/libopenshot/default.nix87
-rw-r--r--pkgs/development/libraries/libressl/fix-build-with-glibc.patch92
-rw-r--r--pkgs/development/libraries/libwnck/fix-pc-file.patch24
-rw-r--r--pkgs/development/libraries/loudmouth/glib-2.32.patch13
-rw-r--r--pkgs/development/libraries/mp4v2/fix-build-clang.patch13
-rw-r--r--pkgs/development/libraries/mtxclient/fix-compilation-with-olm-3.2.5.patch22
-rw-r--r--pkgs/development/libraries/science/math/tensorflow-lite/eigen_include_dir.patch45
-rw-r--r--pkgs/development/libraries/zchunk/0001-meson-fix-argp-standalone.patch18
-rw-r--r--pkgs/development/lisp-modules-new-obsolete/patches/qtools-use-nix-libs.patch19
-rw-r--r--pkgs/development/lisp-modules/patches/qt-libs-dont-download.patch36
-rw-r--r--pkgs/development/ocaml-modules/expat/unittest.patch15
-rw-r--r--pkgs/development/python-modules/dvc/dvc-daemon.patch18
-rw-r--r--pkgs/development/python-modules/enamlx/replace-unicode-with-str.patch274
-rw-r--r--pkgs/development/python-modules/faulthandler/disable-env-test.patch13
-rw-r--r--pkgs/development/python-modules/flask-appbuilder/upgrade-to-flask_jwt_extended-4.patch45
-rw-r--r--pkgs/development/python-modules/pomegranate/disable-failed-on-nextworkx-2.6.patch26
-rw-r--r--pkgs/development/python-modules/pydash/0001-Only-build-unit-tests.patch30
-rw-r--r--pkgs/development/python-modules/pyhanko/0001-Updating-pytest-aiohttp-version.patch25
-rw-r--r--pkgs/development/python-modules/pymiele/default.nix40
-rw-r--r--pkgs/development/python-modules/pyqt-builder/use-sip-distinfo-from-path.patch20
-rw-r--r--pkgs/development/python-modules/pyqtwebengine/fix-build-with-qt-514.patch31
-rw-r--r--pkgs/development/python-modules/reportlab/darwin-m1-compat.patch13
-rw-r--r--pkgs/development/python-modules/signify/certificate-expiration-date.patch18
-rw-r--r--pkgs/development/python-modules/ufo2ft/fonttools-cu2qu.patch130
-rw-r--r--pkgs/development/python-modules/xlib/fix-no-protocol-specified.patch13
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel-remote/disable_build_file_generation.patch24
-rw-r--r--pkgs/development/tools/misc/gdb/32-bit-BFD_VMA-format.patch68
-rw-r--r--pkgs/development/web/nodejs/node-npm-build-npm-package-logic-node16.patch95
48 files changed, 229 insertions, 2218 deletions
diff --git a/pkgs/development/compilers/gcc/patches/6/fix-objdump-check.patch b/pkgs/development/compilers/gcc/patches/6/fix-objdump-check.patch
deleted file mode 100644
index f9adbe9eb1ca5..0000000000000
--- a/pkgs/development/compilers/gcc/patches/6/fix-objdump-check.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-commit 4c38abe0967bad78dd6baa61c86923e4d4b346d3
-Author: Ben Gamari <ben@smart-cactus.org>
-Date:   Sun Nov 5 13:14:19 2017 -0500
-
-    Fix it
-
-diff --git a/config/gcc-plugin.m4 b/config/gcc-plugin.m4
-index dd06a58..f4435b8 100644
---- a/config/gcc-plugin.m4
-+++ b/config/gcc-plugin.m4
-@@ -13,6 +13,32 @@ dnl the same distribution terms as the rest of that program.
- # Sets the shell variables enable_plugin and pluginlibs.
- AC_DEFUN([GCC_ENABLE_PLUGINS],
-   [# Check for plugin support
-+
-+   # Figure out what objdump we will be using.
-+   AS_VAR_SET_IF(gcc_cv_objdump,, [
-+   if test -f $gcc_cv_binutils_srcdir/configure.ac \
-+        && test -f ../binutils/Makefile \
-+        && test x$build = x$host; then
-+   	# Single tree build which includes binutils.
-+   	gcc_cv_objdump=../binutils/objdump$build_exeext
-+   elif test -x objdump$build_exeext; then
-+   	gcc_cv_objdump=./objdump$build_exeext
-+   elif ( set dummy $OBJDUMP_FOR_TARGET; test -x $[2] ); then
-+           gcc_cv_objdump="$OBJDUMP_FOR_TARGET"
-+   else
-+           AC_PATH_PROG(gcc_cv_objdump, $OBJDUMP_FOR_TARGET)
-+   fi])
-+   
-+   AC_MSG_CHECKING(what objdump to use)
-+   if test "$gcc_cv_objdump" = ../binutils/objdump$build_exeext; then
-+   	# Single tree build which includes binutils.
-+   	AC_MSG_RESULT(newly built objdump)
-+   elif test x$gcc_cv_objdump = x; then
-+   	AC_MSG_RESULT(not found)
-+   else
-+   	AC_MSG_RESULT($gcc_cv_objdump)
-+   fi
-+
-    AC_ARG_ENABLE(plugin,
-    [AS_HELP_STRING([--enable-plugin], [enable plugin support])],
-    enable_plugin=$enableval,
diff --git a/pkgs/development/compilers/gcc/patches/9/avoid-cycling-subreg-reloads.patch b/pkgs/development/compilers/gcc/patches/9/avoid-cycling-subreg-reloads.patch
deleted file mode 100644
index 17a4e0a2447b3..0000000000000
--- a/pkgs/development/compilers/gcc/patches/9/avoid-cycling-subreg-reloads.patch
+++ /dev/null
@@ -1,261 +0,0 @@
-From 6001db79c477b03eacc7e7049560921fb54b7845 Mon Sep 17 00:00:00 2001
-From: Richard Sandiford <richard.sandiford@arm.com>
-Date: Mon, 7 Sep 2020 20:15:36 +0100
-Subject: [PATCH] lra: Avoid cycling on certain subreg reloads [PR96796]
-
-This PR is about LRA cycling for a reload of the form:
-
-----------------------------------------------------------------------------
-Changing pseudo 196 in operand 1 of insn 103 on equiv [r105:DI*0x8+r140:DI]
-      Creating newreg=287, assigning class ALL_REGS to slow/invalid mem r287
-      Creating newreg=288, assigning class ALL_REGS to slow/invalid mem r288
-  103: r203:SI=r288:SI<<0x1+r196:DI#0
-      REG_DEAD r196:DI
-    Inserting slow/invalid mem reload before:
-  316: r287:DI=[r105:DI*0x8+r140:DI]
-  317: r288:SI=r287:DI#0
-----------------------------------------------------------------------------
-
-The problem is with r287.  We rightly give it a broad starting class of
-POINTER_AND_FP_REGS (reduced from ALL_REGS by preferred_reload_class).
-However, we never make forward progress towards narrowing it down to
-a specific choice of class (POINTER_REGS or FP_REGS).
-
-I think in practice we rely on two things to narrow a reload pseudo's
-class down to a specific choice:
-
-(1) a restricted class is specified when the pseudo is created
-
-    This happens for input address reloads, where the class is taken
-    from the target's chosen base register class.  It also happens
-    for simple REG reloads, where the class is taken from the chosen
-    alternative's constraints.
-
-(2) uses of the reload pseudo as a direct input operand
-
-    In this case get_reload_reg tries to reuse the existing register
-    and narrow its class, instead of creating a new reload pseudo.
-
-However, neither occurs here.  As described above, r287 rightly
-starts out with a wide choice of class, ultimately derived from
-ALL_REGS, so we don't get (1).  And as the comments in the PR
-explain, r287 is never used as an input reload, only the subreg is,
-so we don't get (2):
-
-----------------------------------------------------------------------------
-         Choosing alt 13 in insn 317:  (0) r  (1) w {*movsi_aarch64}
-      Creating newreg=291, assigning class FP_REGS to r291
-  317: r288:SI=r291:SI
-    Inserting insn reload before:
-  320: r291:SI=r287:DI#0
-----------------------------------------------------------------------------
-
-IMO, in this case we should rely on the reload of r316 to narrow
-down the class of r278.  Currently we do:
-
-----------------------------------------------------------------------------
-         Choosing alt 7 in insn 316:  (0) r  (1) m {*movdi_aarch64}
-      Creating newreg=289 from oldreg=287, assigning class GENERAL_REGS to r289
-  316: r289:DI=[r105:DI*0x8+r140:DI]
-    Inserting insn reload after:
-  318: r287:DI=r289:DI
----------------------------------------------------
-
-i.e. we create a new pseudo register r289 and give *that* pseudo
-GENERAL_REGS instead.  This is because get_reload_reg only narrows
-down the existing class for OP_IN and OP_INOUT, not OP_OUT.
-
-But if we have a reload pseudo in a reload instruction and have chosen
-a specific class for the reload pseudo, I think we should simply install
-it for OP_OUT reloads too, if the class is a subset of the existing class.
-We will need to pick such a register whatever happens (for r289 in the
-example above).  And as explained in the PR, doing this actually avoids
-an unnecessary move via the FP registers too.
-
-The patch is quite aggressive in that it does this for all reload
-pseudos in all reload instructions.  I wondered about reusing the
-condition for a reload move in in_class_p:
-
-          INSN_UID (curr_insn) >= new_insn_uid_start
-          && curr_insn_set != NULL
-          && ((OBJECT_P (SET_SRC (curr_insn_set))
-               && ! CONSTANT_P (SET_SRC (curr_insn_set)))
-              || (GET_CODE (SET_SRC (curr_insn_set)) == SUBREG
-                  && OBJECT_P (SUBREG_REG (SET_SRC (curr_insn_set)))
-                  && ! CONSTANT_P (SUBREG_REG (SET_SRC (curr_insn_set)))))))
-
-but I can't really justify that on first principles.  I think we
-should apply the rule consistently until we have a specific reason
-for doing otherwise.
-
-gcc/
-	PR rtl-optimization/96796
-	* lra-constraints.c (in_class_p): Add a default-false
-	allow_all_reload_class_changes_p parameter.  Do not treat
-	reload moves specially when the parameter is true.
-	(get_reload_reg): Try to narrow the class of an existing OP_OUT
-	reload if we're reloading a reload pseudo in a reload instruction.
-
-gcc/testsuite/
-	PR rtl-optimization/96796
-	* gcc.c-torture/compile/pr96796.c: New test.
----
- gcc/lra-constraints.c                         | 54 ++++++++++++++----
- gcc/testsuite/gcc.c-torture/compile/pr96796.c | 55 +++++++++++++++++++
- 2 files changed, 99 insertions(+), 10 deletions(-)
- create mode 100644 gcc/testsuite/gcc.c-torture/compile/pr96796.c
-
-diff --git a/gcc/lra-constraints.c b/gcc/lra-constraints.c
-index 580da9c3ed6..161b721efb1 100644
---- a/gcc/lra-constraints.c
-+++ b/gcc/lra-constraints.c
-@@ -236,12 +236,17 @@ get_reg_class (int regno)
-    CL.  Use elimination first if REG is a hard register.  If REG is a
-    reload pseudo created by this constraints pass, assume that it will
-    be allocated a hard register from its allocno class, but allow that
--   class to be narrowed to CL if it is currently a superset of CL.
-+   class to be narrowed to CL if it is currently a superset of CL and
-+   if either:
-+
-+   - ALLOW_ALL_RELOAD_CLASS_CHANGES_P is true or
-+   - the instruction we're processing is not a reload move.
- 
-    If NEW_CLASS is nonnull, set *NEW_CLASS to the new allocno class of
-    REGNO (reg), or NO_REGS if no change in its class was needed.  */
- static bool
--in_class_p (rtx reg, enum reg_class cl, enum reg_class *new_class)
-+in_class_p (rtx reg, enum reg_class cl, enum reg_class *new_class,
-+	    bool allow_all_reload_class_changes_p = false)
- {
-   enum reg_class rclass, common_class;
-   machine_mode reg_mode;
-@@ -266,7 +271,8 @@ in_class_p (rtx reg, enum reg_class cl, enum reg_class *new_class)
- 	 typically moves that have many alternatives, and restricting
- 	 reload pseudos for one alternative may lead to situations
- 	 where other reload pseudos are no longer allocatable.  */
--      || (INSN_UID (curr_insn) >= new_insn_uid_start
-+      || (!allow_all_reload_class_changes_p
-+	  && INSN_UID (curr_insn) >= new_insn_uid_start
- 	  && curr_insn_set != NULL
- 	  && ((OBJECT_P (SET_SRC (curr_insn_set))
- 	       && ! CONSTANT_P (SET_SRC (curr_insn_set)))
-@@ -598,13 +604,12 @@ canonicalize_reload_addr (rtx addr)
-   return addr;
- }
- 
--/* Create a new pseudo using MODE, RCLASS, ORIGINAL or reuse already
--   created input reload pseudo (only if TYPE is not OP_OUT).  Don't
--   reuse pseudo if IN_SUBREG_P is true and the reused pseudo should be
--   wrapped up in SUBREG.  The result pseudo is returned through
--   RESULT_REG.  Return TRUE if we created a new pseudo, FALSE if we
--   reused the already created input reload pseudo.  Use TITLE to
--   describe new registers for debug purposes.  */
-+/* Create a new pseudo using MODE, RCLASS, ORIGINAL or reuse an existing
-+   reload pseudo.  Don't reuse an existing reload pseudo if IN_SUBREG_P
-+   is true and the reused pseudo should be wrapped up in a SUBREG.
-+   The result pseudo is returned through RESULT_REG.  Return TRUE if we
-+   created a new pseudo, FALSE if we reused an existing reload pseudo.
-+   Use TITLE to describe new registers for debug purposes.  */
- static bool
- get_reload_reg (enum op_type type, machine_mode mode, rtx original,
- 		enum reg_class rclass, bool in_subreg_p,
-@@ -616,6 +621,35 @@ get_reload_reg (enum op_type type, machine_mode mode, rtx original,
- 
-   if (type == OP_OUT)
-     {
-+      /* Output reload registers tend to start out with a conservative
-+	 choice of register class.  Usually this is ALL_REGS, although
-+	 a target might narrow it (for performance reasons) through
-+	 targetm.preferred_reload_class.  It's therefore quite common
-+	 for a reload instruction to require a more restrictive class
-+	 than the class that was originally assigned to the reload register.
-+
-+	 In these situations, it's more efficient to refine the choice
-+	 of register class rather than create a second reload register.
-+	 This also helps to avoid cycling for registers that are only
-+	 used by reload instructions.  */
-+      if (REG_P (original)
-+	  && (int) REGNO (original) >= new_regno_start
-+	  && INSN_UID (curr_insn) >= new_insn_uid_start
-+	  && in_class_p (original, rclass, &new_class, true))
-+	{
-+	  unsigned int regno = REGNO (original);
-+	  if (lra_dump_file != NULL)
-+	    {
-+	      fprintf (lra_dump_file, "	 Reuse r%d for output ", regno);
-+	      dump_value_slim (lra_dump_file, original, 1);
-+	    }
-+	  if (new_class != lra_get_allocno_class (regno))
-+	    lra_change_class (regno, new_class, ", change to", false);
-+	  if (lra_dump_file != NULL)
-+	    fprintf (lra_dump_file, "\n");
-+	  *result_reg = original;
-+	  return false;
-+	}
-       *result_reg
- 	= lra_create_new_reg_with_unique_value (mode, original, rclass, title);
-       return true;
-diff --git a/gcc/testsuite/gcc.c-torture/compile/pr96796.c b/gcc/testsuite/gcc.c-torture/compile/pr96796.c
-new file mode 100644
-index 00000000000..8808e62fe77
---- /dev/null
-+++ b/gcc/testsuite/gcc.c-torture/compile/pr96796.c
-@@ -0,0 +1,55 @@
-+/* { dg-additional-options "-fcommon" } */
-+
-+struct S0 {
-+  signed f0 : 8;
-+  unsigned f1;
-+  unsigned f4;
-+};
-+struct S1 {
-+  long f3;
-+  char f4;
-+} g_3_4;
-+
-+int g_5, func_1_l_32, func_50___trans_tmp_31;
-+static struct S0 g_144, g_834, g_1255, g_1261;
-+
-+int g_273[120] = {};
-+int *g_555;
-+char **g_979;
-+static int g_1092_0;
-+static int g_1193;
-+int safe_mul_func_int16_t_s_s(int si1, int si2) { return si1 * si2; }
-+static struct S0 *func_50();
-+int func_1() { func_50(g_3_4, g_5, func_1_l_32, 8, 3); }
-+void safe_div_func_int64_t_s_s(int *);
-+void safe_mod_func_uint32_t_u_u(struct S0);
-+struct S0 *func_50(int p_51, struct S0 p_52, struct S1 p_53, int p_54,
-+                   int p_55) {
-+  int __trans_tmp_30;
-+  char __trans_tmp_22;
-+  short __trans_tmp_19;
-+  long l_985_1;
-+  long l_1191[8];
-+  safe_div_func_int64_t_s_s(g_273);
-+  __builtin_printf((char*)g_1261.f4);
-+  safe_mod_func_uint32_t_u_u(g_834);
-+  g_144.f0 += 1;
-+  for (;;) {
-+    struct S1 l_1350 = {&l_1350};
-+    for (; p_53.f3; p_53.f3 -= 1)
-+      for (; g_1193 <= 2; g_1193 += 1) {
-+        __trans_tmp_19 = safe_mul_func_int16_t_s_s(l_1191[l_985_1 + p_53.f3],
-+                                                   p_55 % (**g_979 = 10));
-+        __trans_tmp_22 = g_1255.f1 * p_53.f4;
-+        __trans_tmp_30 = __trans_tmp_19 + __trans_tmp_22;
-+        if (__trans_tmp_30)
-+          g_1261.f0 = p_51;
-+        else {
-+          g_1255.f0 = p_53.f3;
-+          int *l_1422 = g_834.f0 = g_144.f4 != (*l_1422)++ > 0 < 0 ^ 51;
-+          g_555 = ~0;
-+          g_1092_0 |= func_50___trans_tmp_31;
-+        }
-+      }
-+  }
-+}
--- 
-2.18.4
-
diff --git a/pkgs/development/compilers/gcc/patches/9/gcc9-asan-glibc-2.34.patch b/pkgs/development/compilers/gcc/patches/9/gcc9-asan-glibc-2.34.patch
deleted file mode 100644
index 1aea1f9b18a14..0000000000000
--- a/pkgs/development/compilers/gcc/patches/9/gcc9-asan-glibc-2.34.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From 3d0135bf3be416bbe2531dc763d19b749eb2b856 Mon Sep 17 00:00:00 2001
-From: Jakub Jelinek <jakub@redhat.com>
-Date: Sat, 17 Apr 2021 11:27:14 +0200
-Subject: [PATCH] sanitizer: Fix asan against glibc 2.34 [PR100114]
-
-As mentioned in the PR, SIGSTKSZ is no longer a compile time constant in
-glibc 2.34 and later, so
-static const uptr kAltStackSize = SIGSTKSZ * 4;
-needs dynamic initialization, but is used by a function called indirectly
-from .preinit_array and therefore before the variable is constructed.
-This results in using 0 size instead and all asan instrumented programs
-die with:
-==91==ERROR: AddressSanitizer failed to allocate 0x0 (0) bytes of SetAlternateSignalStack (error code: 22)
-
-Here is a cherry-pick from upstream to fix this.
-
-2021-04-17  Jakub Jelinek  <jakub@redhat.com>
-
-	PR sanitizer/100114
-	* sanitizer_common/sanitizer_posix_libcdep.cc: Cherry-pick
-	llvm-project revisions 82150606fb11d28813ae6da1101f5bda638165fe
-	and b93629dd335ffee2fc4b9b619bf86c3f9e6b0023.
-
-(cherry picked from commit 950bac27d63c1c2ac3a6ed867692d6a13f21feb3)
----
- .../sanitizer_common/sanitizer_posix_libcdep.cc     | 13 ++++++++-----
- 1 file changed, 8 insertions(+), 5 deletions(-)
-
-diff --git a/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cc b/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cc
-index d2fd76a6d36..1917e29ced2 100644
---- a/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cc
-+++ b/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cc
-@@ -169,7 +169,11 @@ bool SupportsColoredOutput(fd_t fd) {
- 
- #if !SANITIZER_GO
- // TODO(glider): different tools may require different altstack size.
--static const uptr kAltStackSize = SIGSTKSZ * 4;  // SIGSTKSZ is not enough.
-+static uptr GetAltStackSize() {
-+  // SIGSTKSZ is not enough.
-+  static const uptr kAltStackSize = SIGSTKSZ * 4;
-+  return kAltStackSize;
-+}
- 
- void SetAlternateSignalStack() {
-   stack_t altstack, oldstack;
-@@ -180,10 +184,9 @@ void SetAlternateSignalStack() {
-   // TODO(glider): the mapped stack should have the MAP_STACK flag in the
-   // future. It is not required by man 2 sigaltstack now (they're using
-   // malloc()).
--  void* base = MmapOrDie(kAltStackSize, __func__);
--  altstack.ss_sp = (char*) base;
-+  altstack.ss_size = GetAltStackSize();
-+  altstack.ss_sp = (char *)MmapOrDie(altstack.ss_size, __func__);
-   altstack.ss_flags = 0;
--  altstack.ss_size = kAltStackSize;
-   CHECK_EQ(0, sigaltstack(&altstack, nullptr));
- }
- 
-@@ -191,7 +194,7 @@ void UnsetAlternateSignalStack() {
-   stack_t altstack, oldstack;
-   altstack.ss_sp = nullptr;
-   altstack.ss_flags = SS_DISABLE;
--  altstack.ss_size = kAltStackSize;  // Some sane value required on Darwin.
-+  altstack.ss_size = GetAltStackSize();  // Some sane value required on Darwin.
-   CHECK_EQ(0, sigaltstack(&altstack, &oldstack));
-   UnmapOrDie(oldstack.ss_sp, oldstack.ss_size);
- }
--- 
-2.27.0
-
diff --git a/pkgs/development/compilers/gcc/patches/libsanitizer-no-cyclades.patch b/pkgs/development/compilers/gcc/patches/libsanitizer-no-cyclades.patch
deleted file mode 100644
index e2155cd0c982d..0000000000000
--- a/pkgs/development/compilers/gcc/patches/libsanitizer-no-cyclades.patch
+++ /dev/null
@@ -1,83 +0,0 @@
-https://gcc.gnu.org/git/?p=gcc.git;a=patch;h=2bf34b9f4e446bf9be7f04458058dd5319fb396e
-https://gcc.gnu.org/PR100379 
---- a/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc
-+++ b/libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc
-@@ -366,15 +366,6 @@ static void ioctl_table_fill() {
- 
- #if SANITIZER_LINUX && !SANITIZER_ANDROID
-   // _(SIOCDEVPLIP, WRITE, struct_ifreq_sz); // the same as EQL_ENSLAVE
--  _(CYGETDEFTHRESH, WRITE, sizeof(int));
--  _(CYGETDEFTIMEOUT, WRITE, sizeof(int));
--  _(CYGETMON, WRITE, struct_cyclades_monitor_sz);
--  _(CYGETTHRESH, WRITE, sizeof(int));
--  _(CYGETTIMEOUT, WRITE, sizeof(int));
--  _(CYSETDEFTHRESH, NONE, 0);
--  _(CYSETDEFTIMEOUT, NONE, 0);
--  _(CYSETTHRESH, NONE, 0);
--  _(CYSETTIMEOUT, NONE, 0);
-   _(EQL_EMANCIPATE, WRITE, struct_ifreq_sz);
-   _(EQL_ENSLAVE, WRITE, struct_ifreq_sz);
-   _(EQL_GETMASTRCFG, WRITE, struct_ifreq_sz);
---- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp
-+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp
-@@ -130,7 +130,6 @@ typedef struct user_fpregs elf_fpregset_t;
- # include <sys/procfs.h>
- #endif
- #include <sys/user.h>
--#include <linux/cyclades.h>
- #include <linux/if_eql.h>
- #include <linux/if_plip.h>
- #include <linux/lp.h>
-@@ -443,7 +442,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr);
- 
- #if SANITIZER_LINUX && !SANITIZER_ANDROID
-   unsigned struct_ax25_parms_struct_sz = sizeof(struct ax25_parms_struct);
--  unsigned struct_cyclades_monitor_sz = sizeof(struct cyclades_monitor);
- #if EV_VERSION > (0x010000)
-   unsigned struct_input_keymap_entry_sz = sizeof(struct input_keymap_entry);
- #else
-@@ -809,15 +807,6 @@ unsigned struct_ElfW_Phdr_sz = sizeof(Elf_Phdr);
- #endif // SANITIZER_LINUX
- 
- #if SANITIZER_LINUX && !SANITIZER_ANDROID
--  unsigned IOCTL_CYGETDEFTHRESH = CYGETDEFTHRESH;
--  unsigned IOCTL_CYGETDEFTIMEOUT = CYGETDEFTIMEOUT;
--  unsigned IOCTL_CYGETMON = CYGETMON;
--  unsigned IOCTL_CYGETTHRESH = CYGETTHRESH;
--  unsigned IOCTL_CYGETTIMEOUT = CYGETTIMEOUT;
--  unsigned IOCTL_CYSETDEFTHRESH = CYSETDEFTHRESH;
--  unsigned IOCTL_CYSETDEFTIMEOUT = CYSETDEFTIMEOUT;
--  unsigned IOCTL_CYSETTHRESH = CYSETTHRESH;
--  unsigned IOCTL_CYSETTIMEOUT = CYSETTIMEOUT;
-   unsigned IOCTL_EQL_EMANCIPATE = EQL_EMANCIPATE;
-   unsigned IOCTL_EQL_ENSLAVE = EQL_ENSLAVE;
-   unsigned IOCTL_EQL_GETMASTRCFG = EQL_GETMASTRCFG;
---- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
-+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
-@@ -974,7 +974,6 @@ extern unsigned struct_vt_mode_sz;
- 
- #if SANITIZER_LINUX && !SANITIZER_ANDROID
- extern unsigned struct_ax25_parms_struct_sz;
--extern unsigned struct_cyclades_monitor_sz;
- extern unsigned struct_input_keymap_entry_sz;
- extern unsigned struct_ipx_config_data_sz;
- extern unsigned struct_kbdiacrs_sz;
-@@ -1319,15 +1318,6 @@ extern unsigned IOCTL_VT_WAITACTIVE;
- #endif  // SANITIZER_LINUX
- 
- #if SANITIZER_LINUX && !SANITIZER_ANDROID
--extern unsigned IOCTL_CYGETDEFTHRESH;
--extern unsigned IOCTL_CYGETDEFTIMEOUT;
--extern unsigned IOCTL_CYGETMON;
--extern unsigned IOCTL_CYGETTHRESH;
--extern unsigned IOCTL_CYGETTIMEOUT;
--extern unsigned IOCTL_CYSETDEFTHRESH;
--extern unsigned IOCTL_CYSETDEFTIMEOUT;
--extern unsigned IOCTL_CYSETTHRESH;
--extern unsigned IOCTL_CYSETTIMEOUT;
- extern unsigned IOCTL_EQL_EMANCIPATE;
- extern unsigned IOCTL_EQL_ENSLAVE;
- extern unsigned IOCTL_EQL_GETMASTRCFG;
--- 
-2.33.0
-
diff --git a/pkgs/development/compilers/gcc/patches/struct-sigaltstack.patch b/pkgs/development/compilers/gcc/patches/struct-sigaltstack.patch
deleted file mode 100644
index 6e1ddb252c24c..0000000000000
--- a/pkgs/development/compilers/gcc/patches/struct-sigaltstack.patch
+++ /dev/null
@@ -1,87 +0,0 @@
-From 72edc2c02f8b4768ad660f46a1c7e2400c0a8e06 Mon Sep 17 00:00:00 2001
-From: jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
-Date: Mon, 17 Jul 2017 19:41:08 +0000
-Subject: [PATCH] 	Backported from mainline 	2017-07-14  Jakub
- Jelinek  <jakub@redhat.com>
-
-	PR sanitizer/81066
-	* sanitizer_common/sanitizer_linux.h: Cherry-pick upstream r307969.
-	* sanitizer_common/sanitizer_linux.cc: Likewise.
-	* sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc: Likewise.
-	* tsan/tsan_platform_linux.cc: Likewise.
-
-
-git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@250287 138bc75d-0d04-0410-961f-82ee72b054a4
----
- libsanitizer/ChangeLog  (REMOVED)                             | 11 +++++++++++
- libsanitizer/sanitizer_common/sanitizer_linux.cc              |  3 +--
- libsanitizer/sanitizer_common/sanitizer_linux.h               |  4 +---
- .../sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc  |  2 +-
- libsanitizer/tsan/tsan_platform_linux.cc                      |  2 +-
- 5 files changed, 15 insertions(+), 7 deletions(-)
-
-diff --git a/libsanitizer/sanitizer_common/sanitizer_linux.cc b/libsanitizer/sanitizer_common/sanitizer_linux.cc
-index 806fcd5..5b6f186 100644
---- a/libsanitizer/sanitizer_common/sanitizer_linux.cc
-+++ b/libsanitizer/sanitizer_common/sanitizer_linux.cc
-@@ -605,8 +605,7 @@ uptr internal_prctl(int option, uptr arg2, uptr arg3, uptr arg4, uptr arg5) {
- }
- #endif
- 
--uptr internal_sigaltstack(const struct sigaltstack *ss,
--                         struct sigaltstack *oss) {
-+uptr internal_sigaltstack(const void *ss, void *oss) {
-   return internal_syscall(SYSCALL(sigaltstack), (uptr)ss, (uptr)oss);
- }
- 
-diff --git a/libsanitizer/sanitizer_common/sanitizer_linux.h b/libsanitizer/sanitizer_common/sanitizer_linux.h
-index 895bfc1..a42df57 100644
---- a/libsanitizer/sanitizer_common/sanitizer_linux.h
-+++ b/libsanitizer/sanitizer_common/sanitizer_linux.h
-@@ -19,7 +19,6 @@
- #include "sanitizer_platform_limits_posix.h"
- 
- struct link_map;  // Opaque type returned by dlopen().
--struct sigaltstack;
- 
- namespace __sanitizer {
- // Dirent structure for getdents(). Note that this structure is different from
-@@ -28,8 +27,7 @@ struct linux_dirent;
- 
- // Syscall wrappers.
- uptr internal_getdents(fd_t fd, struct linux_dirent *dirp, unsigned int count);
--uptr internal_sigaltstack(const struct sigaltstack* ss,
--                          struct sigaltstack* oss);
-+uptr internal_sigaltstack(const void* ss, void* oss);
- uptr internal_sigprocmask(int how, __sanitizer_sigset_t *set,
-     __sanitizer_sigset_t *oldset);
- 
-diff --git a/libsanitizer/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc b/libsanitizer/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc
-index 891386dc..234e8c6 100644
---- a/libsanitizer/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc
-+++ b/libsanitizer/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc
-@@ -273,7 +273,7 @@ static int TracerThread(void* argument) {
- 
-   // Alternate stack for signal handling.
-   InternalScopedBuffer<char> handler_stack_memory(kHandlerStackSize);
--  struct sigaltstack handler_stack;
-+  stack_t handler_stack;
-   internal_memset(&handler_stack, 0, sizeof(handler_stack));
-   handler_stack.ss_sp = handler_stack_memory.data();
-   handler_stack.ss_size = kHandlerStackSize;
-diff --git a/libsanitizer/tsan/tsan_platform_linux.cc b/libsanitizer/tsan/tsan_platform_linux.cc
-index 2ed5718..6f972ab 100644
---- a/libsanitizer/tsan/tsan_platform_linux.cc
-+++ b/libsanitizer/tsan/tsan_platform_linux.cc
-@@ -287,7 +287,7 @@ void InitializePlatform() {
- int ExtractResolvFDs(void *state, int *fds, int nfd) {
- #if SANITIZER_LINUX && !SANITIZER_ANDROID
-   int cnt = 0;
--  __res_state *statp = (__res_state*)state;
-+  struct __res_state *statp = (struct __res_state*)state;
-   for (int i = 0; i < MAXNS && cnt < nfd; i++) {
-     if (statp->_u._ext.nsaddrs[i] && statp->_u._ext.nssocks[i] != -1)
-       fds[cnt++] = statp->_u._ext.nssocks[i];
--- 
-2.9.3
-
diff --git a/pkgs/development/compilers/gcc/patches/struct-ucontext-4.5.patch b/pkgs/development/compilers/gcc/patches/struct-ucontext-4.5.patch
deleted file mode 100644
index a84e9ffe26811..0000000000000
--- a/pkgs/development/compilers/gcc/patches/struct-ucontext-4.5.patch
+++ /dev/null
@@ -1,107 +0,0 @@
-Trivally backported the upstream commit
-b685411208e0aaa79190d54faf945763514706b8
-(different directory, some files not present, etc.)
-We only really use x86* from those, probably, so I didn't bother much.
-diff --git a/gcc/config/alpha/linux-unwind.h b/gcc/config/alpha/linux-unwind.h
-index bdbba4a..e84812e 100644
---- a/gcc/config/alpha/linux-unwind.h
-+++ b/gcc/config/alpha/linux-unwind.h
-@@ -51,7 +51,7 @@ alpha_fallback_frame_state (struct _Unwind_Context *context,
-     {
-       struct rt_sigframe {
- 	siginfo_t info;
--	struct ucontext uc;
-+	ucontext_t uc;
-       } *rt_ = context->cfa;
-       sc = &rt_->uc.uc_mcontext;
-     }
-diff --git a/gcc/config/bfin/linux-unwind.h b/gcc/config/bfin/linux-unwind.h
-index 77b7c23..8bf5e82 100644
---- a/gcc/config/bfin/linux-unwind.h
-+++ b/gcc/config/bfin/linux-unwind.h
-@@ -52,7 +52,7 @@ bfin_fallback_frame_state (struct _Unwind_Context *context,
- 	void *puc;
- 	char retcode[8];
- 	siginfo_t info;
--	struct ucontext uc;
-+	ucontext_t uc;
-       } *rt_ = context->cfa;
- 
-       /* The void * cast is necessary to avoid an aliasing warning.
-diff --git a/gcc/config/i386/linux-unwind.h b/gcc/config/i386/linux-unwind.h
-index 540a0a2..29efbe3 100644
---- a/gcc/config/i386/linux-unwind.h
-+++ b/gcc/config/i386/linux-unwind.h
-@@ -58,7 +58,7 @@ x86_64_fallback_frame_state (struct _Unwind_Context *context,
-   if (*(unsigned char *)(pc+0) == 0x48
-       && *(unsigned long long *)(pc+1) == RT_SIGRETURN_SYSCALL)
-     {
--      struct ucontext *uc_ = context->cfa;
-+      ucontext_t *uc_ = context->cfa;
-       /* The void * cast is necessary to avoid an aliasing warning.
-          The aliasing warning is correct, but should not be a problem
-          because it does not alias anything.  */
-@@ -138,7 +138,7 @@ x86_fallback_frame_state (struct _Unwind_Context *context,
- 	siginfo_t *pinfo;
- 	void *puc;
- 	siginfo_t info;
--	struct ucontext uc;
-+	ucontext_t uc;
-       } *rt_ = context->cfa;
-       /* The void * cast is necessary to avoid an aliasing warning.
-          The aliasing warning is correct, but should not be a problem
-diff --git a/gcc/config/m68k/linux-unwind.h b/gcc/config/m68k/linux-unwind.h
-index 75b7cf7..f964e24 100644
---- a/gcc/config/m68k/linux-unwind.h
-+++ b/gcc/config/m68k/linux-unwind.h
-@@ -33,7 +33,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
- /* <sys/ucontext.h> is unfortunately broken right now.  */
- struct uw_ucontext {
- 	unsigned long	  uc_flags;
--	struct ucontext  *uc_link;
-+	ucontext_t	 *uc_link;
- 	stack_t		  uc_stack;
- 	mcontext_t	  uc_mcontext;
- 	unsigned long	  uc_filler[80];
-diff --git a/gcc/config/pa/linux-unwind.h b/gcc/config/pa/linux-unwind.h
-index 9a2657f..e47493d 100644
---- a/gcc/config/pa/linux-unwind.h
-+++ b/gcc/config/pa/linux-unwind.h
-@@ -80,7 +80,7 @@ pa32_fallback_frame_state (struct _Unwind_Context *context,
-   struct sigcontext *sc;
-   struct rt_sigframe {
-     siginfo_t info;
--    struct ucontext uc;
-+    ucontext_t uc;
-   } *frame;
- 
-   /* rt_sigreturn trampoline:
-diff --git a/gcc/config/sh/linux-unwind.h b/gcc/config/sh/linux-unwind.h
-index e389cac..0bf43ba 100644
---- a/gcc/config/sh/linux-unwind.h
-+++ b/gcc/config/sh/linux-unwind.h
-@@ -180,7 +180,7 @@ sh_fallback_frame_state (struct _Unwind_Context *context,
-     {
-       struct rt_sigframe {
- 	siginfo_t info;
--	struct ucontext uc;
-+	ucontext_t uc;
-       } *rt_ = context->cfa;
-       /* The void * cast is necessary to avoid an aliasing warning.
-          The aliasing warning is correct, but should not be a problem
-diff --git a/gcc/config/xtensa/linux-unwind.h b/gcc/config/xtensa/linux-unwind.h
-index 9872492..586a9d4 100644
---- a/gcc/config/xtensa/linux-unwind.h
-+++ b/gcc/config/xtensa/linux-unwind.h
-@@ -67,7 +67,7 @@ xtensa_fallback_frame_state (struct _Unwind_Context *context,
- 
-   struct rt_sigframe {
-     siginfo_t info;
--    struct ucontext uc;
-+    ucontext_t uc;
-   } *rt_;
- 
-   /* movi a2, __NR_rt_sigreturn; syscall */
--- 
-2.9.3
-
diff --git a/pkgs/development/compilers/gcc/patches/struct-ucontext-libjava.patch b/pkgs/development/compilers/gcc/patches/struct-ucontext-libjava.patch
deleted file mode 100644
index 3892a56954e08..0000000000000
--- a/pkgs/development/compilers/gcc/patches/struct-ucontext-libjava.patch
+++ /dev/null
@@ -1,33 +0,0 @@
---- a/libjava/include/x86_64-signal.h
-+++ a/libjava/include/x86_64-signal.h
-@@ -28,7 +28,7 @@
- #define HANDLE_DIVIDE_OVERFLOW						\
- do									\
- {									\
--  struct ucontext *_uc = (struct ucontext *)_p;				\
-+  ucontext_t *_uc = (ucontext_t *)_p;					\
-   gregset_t &_gregs = _uc->uc_mcontext.gregs;				\
-   unsigned char *_rip = (unsigned char *)_gregs[REG_RIP];		\
- 									\
---- a/libjava/include/i386-signal.h
-+++ a/libjava/include/i386-signal.h
-@@ -29,7 +29,7 @@
- #define HANDLE_DIVIDE_OVERFLOW						\
- do									\
- {									\
--  struct ucontext *_uc = (struct ucontext *)_p;				\
-+  ucontext_t *_uc = (ucontext_t *)_p;					\
-   gregset_t &_gregs = _uc->uc_mcontext.gregs;				\
-   unsigned char *_eip = (unsigned char *)_gregs[REG_EIP];		\
- 									\
---- a/libjava/include/s390-signal.h
-+++ a/libjava/include/s390-signal.h
-@@ -51,7 +51,7 @@
-   struct                                                                \
-   {                                                                     \
-     unsigned long int uc_flags;                                         \
--    struct ucontext *uc_link;                                           \
-+    ucontext_t *uc_link;                                                \
-     stack_t uc_stack;                                                   \
-     mcontext_t uc_mcontext;                                             \
-     unsigned long sigmask[2];                                           \
diff --git a/pkgs/development/dotnet-modules/patches/monodevelop-fsharpbinding.addin-xml.patch b/pkgs/development/dotnet-modules/patches/monodevelop-fsharpbinding.addin-xml.patch
deleted file mode 100644
index a3b2f87f37878..0000000000000
--- a/pkgs/development/dotnet-modules/patches/monodevelop-fsharpbinding.addin-xml.patch
+++ /dev/null
@@ -1,88 +0,0 @@
---- fsharpbinding-a09c818/monodevelop/MonoDevelop.FSharpBinding/FSharpBinding.addin.xml.orig.old	2015-06-03 19:53:00.116849746 +0100
-+++ fsharpbinding-a09c818/monodevelop/MonoDevelop.FSharpBinding/FSharpBinding.addin.xml.orig	2015-06-03 19:56:30.112579384 +0100
-@@ -130,6 +130,11 @@
-   <!-- New projects will be created with this targets file. -->
-   <Extension path="/MonoDevelop/ProjectModel/MSBuildItemTypes">
-     <!--  If FSharp 3.1 is available, use it. Note XS looks for the first DotNetProject node under 'Extension' -->
-+	<Condition id="MSBuildTargetIsAvailable" target="$(FSharpTargetsPath)" >
-+        <DotNetProject language="F#" extension="fsproj" guid="{f2a71f9b-5d33-465a-a702-920d77279786}" import="$(FSharpTargetsPath)"  resourceHandler="MonoDevelop.FSharp.FSharpResourceIdBuilder"/>
-+	</Condition>
-+
-+    <!--  If FSharp 3.1 is available, use it. Note XS looks for the first DotNetProject node under 'Extension' -->
- 	<Condition id="MSBuildTargetIsAvailable" target="$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.1\Framework\v4.0\Microsoft.FSharp.Targets" >
-       <DotNetProject language="F#" extension="fsproj" guid="{f2a71f9b-5d33-465a-a702-920d77279786}" import="$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.1\Framework\v4.0\Microsoft.FSharp.Targets"  resourceHandler="MonoDevelop.FSharp.FSharpResourceIdBuilder"/>
- 	</Condition>
-@@ -182,14 +187,7 @@
-     <ProjectTemplate id="FSharpConsoleProject" file="Templates/FSharpConsoleProject.xpt.xml"/>
-     <ProjectTemplate id="FSharpLibraryProject" file="Templates/FSharpLibraryProject.xpt.xml"/>
-     <!-- Only include the tutorial project if an F# 3.0 or 3.1 target is available as this includes F# 3.0 specific features -->
--	<ComplexCondition>
--		<Or>
--			<Condition id="MSBuildTargetIsAvailable" target="$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets" />
--			<Condition id="MSBuildTargetIsAvailable" target="$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.1\Framework\v4.0\Microsoft.FSharp.Targets" />
--		</Or>
- 		<ProjectTemplate id="FSharpTutorialProject" file="Templates/FSharpTutorialProject.xpt.xml"/>
--	</ComplexCondition>
--
-     <ProjectTemplate id="FSharpGtkProject" file="Templates/FSharpGtkProject.xpt.xml"/>
-     <ProjectTemplate id="FSharpNUnitLibraryProject" file="Templates/FSharpNUnitLibraryProject.xpt.xml"/>
-   </Extension>
-@@ -267,13 +265,7 @@
-   <!-- F# interactive -->
- 
-   <Extension path="/MonoDevelop/Ide/Pads">
--    <ComplexCondition>
--      <Or>
--        <Condition id="MSBuildTargetIsAvailable" target="$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets" />
--        <Condition id="MSBuildTargetIsAvailable" target="$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.1\Framework\v4.0\Microsoft.FSharp.Targets" />
--      </Or>
-       <Pad id="MonoDevelop.FSharp.FSharpInteractivePad" defaultPlacement="Bottom" _label="F# Interactive" icon="md-project" class="MonoDevelop.FSharp.FSharpInteractivePad" />
--    </ComplexCondition>
-   </Extension>
- 
-   <Extension path = "/MonoDevelop/Ide/Pads/ProjectPad">
-@@ -281,11 +273,6 @@
-   </Extension>
- 
-   <Extension path="/MonoDevelop/Ide/Commands">
--    <ComplexCondition>
--      <Or>
--        <Condition id="MSBuildTargetIsAvailable" target="$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets" />
--        <Condition id="MSBuildTargetIsAvailable" target="$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.1\Framework\v4.0\Microsoft.FSharp.Targets" />
--      </Or>
-       <Category _name = "F# Integration" id="F# Integration">
-         <Command id="MonoDevelop.FSharp.FSharpCommands.ShowFSharpInteractive"
-             _label = "F# Interactive"
-@@ -330,32 +317,19 @@
-             macShortcut="Meta|Control|C"
-             shortcut="Ctrl|Alt|C" />
-       </Category>
--    </ComplexCondition>
-   </Extension>
- 
-   <Extension path = "/MonoDevelop/SourceEditor2/ContextMenu/Editor">
--    <ComplexCondition>
--      <Or>
--        <Condition id="MSBuildTargetIsAvailable" target="$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets" />
--        <Condition id="MSBuildTargetIsAvailable" target="$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.1\Framework\v4.0\Microsoft.FSharp.Targets" />
--      </Or>
-       <SeparatorItem id = "FSharpInteractiveStart" />
-       <CommandItem id = "MonoDevelop.FSharp.FSharpCommands.SendSelection" />
-       <CommandItem id = "MonoDevelop.FSharp.FSharpCommands.SendLine" />
-       <CommandItem id = "MonoDevelop.FSharp.FSharpCommands.SendReferences" />
--    </ComplexCondition>
-   </Extension>
- 
-   <Extension path = "/MonoDevelop/Ide/MainMenu/Edit">
--    <ComplexCondition>
--      <Or>
--        <Condition id="MSBuildTargetIsAvailable" target="$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets" />
--        <Condition id="MSBuildTargetIsAvailable" target="$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.1\Framework\v4.0\Microsoft.FSharp.Targets" />
--      </Or>
-       <CommandItem id = "MonoDevelop.FSharp.FSharpCommands.SendSelection" />
-       <CommandItem id = "MonoDevelop.FSharp.FSharpCommands.SendLine" />
-       <CommandItem id = "MonoDevelop.FSharp.FSharpCommands.SendReferences" />
--    </ComplexCondition>
-   </Extension>
- 
-   <!--- F# Android -->
diff --git a/pkgs/development/dotnet-modules/patches/monodevelop-fsharpbinding.references.patch b/pkgs/development/dotnet-modules/patches/monodevelop-fsharpbinding.references.patch
deleted file mode 100644
index e53482e0c00b4..0000000000000
--- a/pkgs/development/dotnet-modules/patches/monodevelop-fsharpbinding.references.patch
+++ /dev/null
@@ -1,43 +0,0 @@
---- fsharpbinding-a09c818/monodevelop/MonoDevelop.FSharpBinding/MonoDevelop.FSharp.fsproj.orig.old	2015-06-03 18:48:55.345385084 +0100
-+++ fsharpbinding-a09c818/monodevelop/MonoDevelop.FSharpBinding/MonoDevelop.FSharp.fsproj.orig	2015-06-03 19:00:11.453399028 +0100
-@@ -185,19 +185,19 @@
-       <Private>False</Private>
-       <HintPath>INSERT_FSPROJ_MDROOT\AddIns\NUnit\MonoDevelop.NUnit.dll</HintPath>
-     </Reference>
--    <ProjectReference Include="..\..\FSharp.CompilerBinding\FSharp.CompilerBinding.fsproj">
--      <Project>{88F6940F-D300-474C-B2A7-E2ECD5B04B57}</Project>
--      <Name>FSharp.CompilerBinding</Name>
--    </ProjectReference>
-+    <Reference Include="FSharp.CompilerBinding">
-+      <Private>True</Private>
-+    </Reference>
-     <ProjectReference Include="Gui\MonoDevelop.FSharp.Gui.csproj">
-       <Project>{FD0D1033-9145-48E5-8ED8-E2365252878C}</Project>
-       <Name>MonoDevelop.FSharp.Gui</Name>
-     </ProjectReference>
--    <Reference Include="FSharp.Core, Version=$(TargetFSharpCoreVersion), Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
-+    <Reference Include="FSharp.Core">
-       <Private>True</Private>
-     </Reference>
-     <Reference Include="FSharp.Compiler.Service">
-       <HintPath>packages\FSharp.Compiler.Service.0.0.85\lib\net45\FSharp.Compiler.Service.dll</HintPath>
-+      <Private>True</Private>
-     </Reference>
-     <Reference Include="Mono.Cecil">
-       <HintPath>packages\Mono.Cecil.0.9.5.4\lib\net40\Mono.Cecil.dll</HintPath>
-@@ -213,12 +213,15 @@
-     </Reference>
-     <Reference Include="FantomasLib">
-       <HintPath>packages\Fantomas.1.6.0\lib\FantomasLib.dll</HintPath>
-+      <Private>True</Private>
-     </Reference>
-     <Reference Include="FSharp.Compiler.CodeDom">
-       <HintPath>packages\FSharp.Compiler.CodeDom.0.9.1\lib\net40\FSharp.Compiler.CodeDom.dll</HintPath>
-+      <Private>True</Private>
-     </Reference>
-     <Reference Include="ExtCore">
-       <HintPath>packages\ExtCore.0.8.45\lib\net40\ExtCore.dll</HintPath>
-+      <Private>True</Private>
-     </Reference>
-   </ItemGroup>
-   <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
diff --git a/pkgs/development/interpreters/love/0.7-gl-prototypes.patch b/pkgs/development/interpreters/love/0.7-gl-prototypes.patch
deleted file mode 100644
index 0b6778f6a90ba..0000000000000
--- a/pkgs/development/interpreters/love/0.7-gl-prototypes.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff --unified --recursive --text love-HEAD.orig/src/modules/graphics/opengl/Framebuffer.cpp love-HEAD.new/src/modules/graphics/opengl/Framebuffer.cpp
---- love-HEAD.orig/src/modules/graphics/opengl/Framebuffer.cpp	2019-03-14 12:46:55.032982224 -0400
-+++ love-HEAD.new/src/modules/graphics/opengl/Framebuffer.cpp	2019-03-14 12:47:22.356175299 -0400
-@@ -1,3 +1,5 @@
-+#define GL_GLEXT_PROTOTYPES
-+
- #include "Framebuffer.h"
- #include <common/Matrix.h>
- 
-diff --unified --recursive --text love-HEAD.orig/src/modules/graphics/opengl/SpriteBatch.cpp love-HEAD.new/src/modules/graphics/opengl/SpriteBatch.cpp
---- love-HEAD.orig/src/modules/graphics/opengl/SpriteBatch.cpp	2019-03-14 12:46:55.032982224 -0400
-+++ love-HEAD.new/src/modules/graphics/opengl/SpriteBatch.cpp	2019-03-14 12:47:33.346119890 -0400
-@@ -18,6 +18,8 @@
- * 3. This notice may not be removed or altered from any source distribution.
- **/
- 
-+#define GL_GLEXT_PROTOTYPES
-+
- #include "SpriteBatch.h"
- 
- // STD
diff --git a/pkgs/development/interpreters/octave/patches/bug62436.patch b/pkgs/development/interpreters/octave/patches/bug62436.patch
deleted file mode 100644
index d9d7cfc30408f..0000000000000
--- a/pkgs/development/interpreters/octave/patches/bug62436.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-# HG changeset patch
-# User John Donoghue <john.donoghue@ieee.org>
-# Date 1652358904 14400
-#      Thu May 12 08:35:04 2022 -0400
-# Branch stable
-# Node ID 8c940cfcce257369677c09154da2aab2c56eaa79
-# Parent  63710f3bd9811c2d206ac9e7b4f47cf06c47e153
-* scripts/pkg/private/build.m: check configure and Makefile exist before trying to unlink them (Bug #62436)
-
-diff -r 63710f3bd981 -r 8c940cfcce25 scripts/pkg/private/build.m
---- a/scripts/pkg/private/build.m	Wed May 11 09:44:55 2022 -0700
-+++ b/scripts/pkg/private/build.m	Thu May 12 08:35:04 2022 -0400
-@@ -77,8 +77,12 @@
-     else
-       arch_abi = getarch ();
-       configure_make (desc, build_root, verbose);
--      unlink (fullfile (build_root, "src", "configure"));
--      unlink (fullfile (build_root, "src", "Makefile"));
-+      if exist (fullfile (build_root, "src", "configure"), "file")
-+        unlink (fullfile (build_root, "src", "configure"));
-+      endif
-+      if exist (fullfile (build_root, "src", "Makefile"), "file")
-+        unlink (fullfile (build_root, "src", "Makefile"));
-+      endif
-     endif
-     tar_name = [desc.name "-" desc.version "-" arch_abi ".tar"];
-     tar_path = fullfile (builddir, tar_name);
diff --git a/pkgs/development/libraries/abseil-cpp/cmake-full-dirs.patch b/pkgs/development/libraries/abseil-cpp/cmake-full-dirs.patch
deleted file mode 100644
index c18420711b901..0000000000000
--- a/pkgs/development/libraries/abseil-cpp/cmake-full-dirs.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/CMake/AbseilHelpers.cmake b/CMake/AbseilHelpers.cmake
-index 1a80b5b..1fa57a7 100644
---- a/CMake/AbseilHelpers.cmake
-+++ b/CMake/AbseilHelpers.cmake
-@@ -171,8 +171,8 @@ function(absl_cc_library)
-       FILE(GENERATE OUTPUT "${CMAKE_BINARY_DIR}/lib/pkgconfig/absl_${_NAME}.pc" CONTENT "\
- prefix=${CMAKE_INSTALL_PREFIX}\n\
- exec_prefix=\${prefix}\n\
--libdir=\${prefix}/${CMAKE_INSTALL_LIBDIR}\n\
--includedir=\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}\n\
-+libdir=${CMAKE_INSTALL_FULL_LIBDIR}\n\
-+includedir=${CMAKE_INSTALL_FULL_INCLUDEDIR}\n\
- \n\
- Name: absl_${_NAME}\n\
- Description: Abseil ${_NAME} library\n\
diff --git a/pkgs/development/libraries/apr/is-this-a-compiler-bug.patch b/pkgs/development/libraries/apr/is-this-a-compiler-bug.patch
deleted file mode 100644
index bbc10fabb2685..0000000000000
--- a/pkgs/development/libraries/apr/is-this-a-compiler-bug.patch
+++ /dev/null
@@ -1,17 +0,0 @@
---- apr-1.5.1/file_io/unix/filestat.c	2014-11-01 06:42:50.000000000 -0400
-+++ apr-1.5.1/file_io/unix/filestat.c.new	2014-11-01 07:07:32.000000000 -0400
-@@ -297,9 +297,11 @@
-         finfo->pool = pool;
-         finfo->fname = fname;
-         fill_out_finfo(finfo, &info, wanted);
--        if (wanted & APR_FINFO_LINK)
--            wanted &= ~APR_FINFO_LINK;
--        return (wanted & ~finfo->valid) ? APR_INCOMPLETE : APR_SUCCESS;
-+        if (wanted & APR_FINFO_LINK) {
-+            return ((wanted & ~APR_FINFO_LINK) & ~finfo->valid) ? APR_INCOMPLETE : APR_SUCCESS;
-+        } else {
-+            return (wanted & ~finfo->valid) ? APR_INCOMPLETE : APR_SUCCESS;
-+        }
-     }
-     else {
- #if !defined(ENOENT) || !defined(ENOTDIR)
diff --git a/pkgs/development/libraries/audio/rtmidi/macos_include_targetconditionals.patch b/pkgs/development/libraries/audio/rtmidi/macos_include_targetconditionals.patch
deleted file mode 100644
index 58eaf5f490b1a..0000000000000
--- a/pkgs/development/libraries/audio/rtmidi/macos_include_targetconditionals.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -ru a/RtMidi.cpp b/RtMidi.cpp
---- a/RtMidi.cpp	2021-12-23 16:46:33.000000000 -0500
-+++ b/RtMidi.cpp	2021-12-23 16:48:19.000000000 -0500
-@@ -39,6 +39,9 @@
- 
- #include "RtMidi.h"
- #include <sstream>
-+#if defined(__APPLE__)
-+#include <TargetConditionals.h>
-+#endif
- 
- #if defined(__MACOSX_CORE__)
-   #if TARGET_OS_IPHONE
diff --git a/pkgs/development/libraries/cairo/skip-configure-stderr-check.patch b/pkgs/development/libraries/cairo/skip-configure-stderr-check.patch
deleted file mode 100644
index 6deecf2a97171..0000000000000
--- a/pkgs/development/libraries/cairo/skip-configure-stderr-check.patch
+++ /dev/null
@@ -1,89 +0,0 @@
-https://bugs.freedesktop.org/show_bug.cgi?id=30910#c6
-
-Comment 6 Jeremy Huddleston Sequoia 2014-07-15 04:12:40 UTC
-
-Yes, it is still an issue.  We just disable the buggy '"x$cairo_cc_stderr" != "x"' logic, but that's not really a portable solution for you:
-
-diff -Naurp cairo-1.12.2.orig/configure cairo-1.12.2/configure
---- cairo-1.12.2.orig/configure	2012-04-29 11:49:59.000000000 -0700
-+++ cairo-1.12.2/configure	2012-05-03 11:23:49.000000000 -0700
-@@ -18044,7 +18044,7 @@ fi
- rm -f core conftest.err conftest.$ac_objext \
-     conftest$ac_exeext conftest.$ac_ext
- 
--	if test "x$cairo_cc_stderr" != "x"; then
-+	if false; then
- 		cairo_cc_flag=no
- 	fi
- 
-@@ -18091,7 +18091,7 @@ fi
- rm -f core conftest.err conftest.$ac_objext \
-     conftest$ac_exeext conftest.$ac_ext
- 
--	if test "x$cairo_cc_stderr" != "x"; then
-+	if false; then
- 		cairo_cc_flag=no
- 	fi
- 
-@@ -18161,7 +18161,7 @@ fi
- rm -f core conftest.err conftest.$ac_objext \
-     conftest$ac_exeext conftest.$ac_ext
- 
--	if test "x$cairo_cc_stderr" != "x"; then
-+	if false; then
- 		cairo_cc_flag=no
- 	fi
- 
-@@ -18217,7 +18217,7 @@ fi
- rm -f core conftest.err conftest.$ac_objext \
-     conftest$ac_exeext conftest.$ac_ext
- 
--	if test "x$cairo_cc_stderr" != "x"; then
-+	if false; then
- 		cairo_cc_flag=no
- 	fi
- 
-@@ -19663,7 +19663,7 @@ fi
- rm -f core conftest.err conftest.$ac_objext \
-     conftest$ac_exeext conftest.$ac_ext
- 
--	if test "x$cairo_cc_stderr" != "x"; then
-+	if false; then
- 		cairo_cc_flag=no
- 	fi
- 
-@@ -19710,7 +19710,7 @@ fi
- rm -f core conftest.err conftest.$ac_objext \
-     conftest$ac_exeext conftest.$ac_ext
- 
--	if test "x$cairo_cc_stderr" != "x"; then
-+	if false; then
- 		cairo_cc_flag=no
- 	fi
- 
-@@ -32692,7 +32692,7 @@ fi
- rm -f core conftest.err conftest.$ac_objext \
-     conftest$ac_exeext conftest.$ac_ext
- 
--	if test "x$cairo_cc_stderr" != "x"; then
-+	if false; then
- 		cairo_cc_flag=no
- 	fi
- 
-@@ -32811,7 +32811,7 @@ fi
- rm -f core conftest.err conftest.$ac_objext \
-     conftest$ac_exeext conftest.$ac_ext
- 
--	if test "x$cairo_cc_stderr" != "x"; then
-+	if false ; then
- 		cairo_cc_flag=no
- 	fi
- 
-@@ -32892,7 +32892,7 @@ fi
- rm -f core conftest.err conftest.$ac_objext \
-     conftest$ac_exeext conftest.$ac_ext
- 
--	if test "x$cairo_cc_stderr" != "x"; then
-+	if false; then
- 		cairo_cc_flag=no
- 	fi
diff --git a/pkgs/development/libraries/glibc/rpcgen-path.patch b/pkgs/development/libraries/glibc/rpcgen-path.patch
deleted file mode 100644
index 3349449d91634..0000000000000
--- a/pkgs/development/libraries/glibc/rpcgen-path.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-diff -ru glibc-2.18-orig/sunrpc/rpc_main.c glibc-2.18/sunrpc/rpc_main.c
---- glibc-2.18-orig/sunrpc/rpc_main.c	2013-08-11 00:52:55.000000000 +0200
-+++ glibc-2.18/sunrpc/rpc_main.c	2013-11-15 12:04:48.041006977 +0100
-@@ -78,7 +78,7 @@
- 
- static const char *svcclosetime = "120";
- static int cppDefined;	/* explicit path for C preprocessor */
--static const char *CPP = "/lib/cpp";
-+static const char *CPP = "cpp";
- static const char CPPFLAGS[] = "-C";
- static char *pathbuf;
- static int cpp_pid;
-@@ -107,7 +107,6 @@
- static void open_output (const char *infile, const char *outfile);
- static void add_warning (void);
- static void clear_args (void);
--static void find_cpp (void);
- static void open_input (const char *infile, const char *define);
- static int check_nettype (const char *name, const char *list_to_check[]);
- static void c_output (const char *infile, const char *define,
-@@ -322,25 +321,6 @@
-   argcount = FIXEDARGS;
- }
- 
--/* make sure that a CPP exists */
--static void
--find_cpp (void)
--{
--  struct stat64 buf;
--
--  if (stat64 (CPP, &buf) == 0)
--    return;
--
--  if (cppDefined) /* user specified cpp but it does not exist */
--    {
--      fprintf (stderr, _ ("cannot find C preprocessor: %s\n"), CPP);
--      crash ();
--    }
--
--  /* fall back to system CPP */
--  CPP = "cpp";
--}
--
- /*
-  * Open input file with given define for C-preprocessor
-  */
-@@ -359,7 +339,6 @@
-   switch (cpp_pid)
-     {
-     case 0:
--      find_cpp ();
-       putarg (0, CPP);
-       putarg (1, CPPFLAGS);
-       addarg (define);
diff --git a/pkgs/development/libraries/libbluray/BDJ-JARFILE-path.patch b/pkgs/development/libraries/libbluray/BDJ-JARFILE-path.patch
deleted file mode 100644
index d3dec2936c50a..0000000000000
--- a/pkgs/development/libraries/libbluray/BDJ-JARFILE-path.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-diff --git a/configure.ac b/configure.ac
-index 5007bbd..f46de1a 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -253,7 +253,7 @@ AS_IF([test "x${JDK_HOME}" != "x"], [
- ])
- 
- AS_IF([test "x$use_bdjava_jar" = "xyes"], [
--
-+    CPPFLAGS="${CPPFLAGS} -DJARDIR='\"\$(datadir)/java\"'"
-     dnl check for ant
-     AC_CHECK_PROG(HAVE_ANT, [ant], yes, no)
-     AS_IF([test "x$HAVE_ANT" = "xno"], [
-diff --git a/src/libbluray/bdj/bdj.c b/src/libbluray/bdj/bdj.c
-index 1cb1bfe..f3711c2 100644
---- a/src/libbluray/bdj/bdj.c
-+++ b/src/libbluray/bdj/bdj.c
-@@ -533,6 +533,9 @@ static char *_find_libbluray_jar0()
- #  ifdef __FreeBSD__
-         "/usr/local/share/java/" BDJ_JARFILE,
- #  else
-+#    ifdef JARDIR
-+        JARDIR "/" BDJ_JARFILE,
-+#    endif
-         "/usr/share/java/" BDJ_JARFILE,
-         "/usr/share/libbluray/lib/" BDJ_JARFILE,
- #  endif
diff --git a/pkgs/development/libraries/libopenshot-audio/0001-undef-fpret-on-aarch64-darwin.patch b/pkgs/development/libraries/libopenshot-audio/0001-undef-fpret-on-aarch64-darwin.patch
new file mode 100644
index 0000000000000..c391f77dda8b7
--- /dev/null
+++ b/pkgs/development/libraries/libopenshot-audio/0001-undef-fpret-on-aarch64-darwin.patch
@@ -0,0 +1,13 @@
+diff --git a/JuceLibraryCode/modules/juce_core/native/juce_osx_ObjCHelpers.h b/JuceLibraryCode/modules/juce_core/native/juce_osx_ObjCHelpers.h
+index 2593790..0b5983d 100644
+--- a/JuceLibraryCode/modules/juce_core/native/juce_osx_ObjCHelpers.h
++++ b/JuceLibraryCode/modules/juce_core/native/juce_osx_ObjCHelpers.h
+@@ -209,7 +209,7 @@ static inline ReturnValue ObjCMsgSendSuper (struct objc_super* s, SEL sel, Param
+ typedef id (*MsgSendSuperFn) (struct objc_super*, SEL, ...);
+ static inline MsgSendSuperFn getMsgSendSuperFn() noexcept   { return (MsgSendSuperFn) (void*) objc_msgSendSuper; }
+ 
+-#if ! JUCE_IOS
++#if JUCE_INTEL && ! JUCE_IOS
+ typedef double (*MsgSendFPRetFn) (id, SEL op, ...);
+ static inline MsgSendFPRetFn getMsgSendFPRetFn() noexcept   { return (MsgSendFPRetFn) (void*) objc_msgSend_fpret; }
+ #endif
diff --git a/pkgs/development/libraries/libopenshot-audio/default.nix b/pkgs/development/libraries/libopenshot-audio/default.nix
new file mode 100644
index 0000000000000..e546dc7a57862
--- /dev/null
+++ b/pkgs/development/libraries/libopenshot-audio/default.nix
@@ -0,0 +1,77 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchpatch
+, alsa-lib
+, cmake
+, doxygen
+, libX11
+, libXcursor
+, libXext
+, libXft
+, libXinerama
+, libXrandr
+, pkg-config
+, zlib
+, Accelerate
+, AGL
+, Cocoa
+, Foundation
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "libopenshot-audio";
+  version = "0.3.2";
+
+  src = fetchFromGitHub {
+    owner = "OpenShot";
+    repo = "libopenshot-audio";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-PLpB9sy9xehipN5S9okCHm1mPm5MaZMVaFqCBvFUiTw=";
+  };
+
+  patches = [
+    # https://forum.juce.com/t/juce-and-macos-11-arm/40285/24
+    ./0001-undef-fpret-on-aarch64-darwin.patch
+  ];
+
+  nativeBuildInputs = [
+    cmake
+    doxygen
+    pkg-config
+  ];
+
+  buildInputs = lib.optionals stdenv.isLinux [
+    alsa-lib
+  ] ++ (if stdenv.isDarwin then [
+    Accelerate
+    AGL
+    Cocoa
+    Foundation
+    zlib
+  ] else [
+    libX11
+    libXcursor
+    libXext
+    libXft
+    libXinerama
+    libXrandr
+  ]);
+
+  strictDeps = true;
+
+  doCheck = true;
+
+  meta = {
+    homepage = "http://openshot.org/";
+    description = "High-quality sound editing library";
+    longDescription = ''
+      OpenShot Audio Library (libopenshot-audio) is a program that allows the
+      high-quality editing and playback of audio, and is based on the amazing
+      JUCE library.
+    '';
+    license = with lib.licenses; [ gpl3Plus ];
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+    platforms = lib.platforms.unix;
+  };
+})
diff --git a/pkgs/development/libraries/libopenshot/0001-link-magickcore.diff b/pkgs/development/libraries/libopenshot/0001-link-magickcore.diff
new file mode 100644
index 0000000000000..e5055d3f30895
--- /dev/null
+++ b/pkgs/development/libraries/libopenshot/0001-link-magickcore.diff
@@ -0,0 +1,12 @@
+diff -Naur source/src/CMakeLists.txt source-new/src/CMakeLists.txt
+--- source/src/CMakeLists.txt	1969-12-31 21:00:01.000000000 -0300
++++ source-new/src/CMakeLists.txt	2023-11-30 09:39:45.442332463 -0300
+@@ -231,7 +231,7 @@
+     target_compile_definitions(openshot PUBLIC USE_IMAGEMAGICK=1)
+ 
+     # Link with ImageMagick library
+-    target_link_libraries(openshot PUBLIC ImageMagick::Magick++)
++    target_link_libraries(openshot PUBLIC ImageMagick::Magick++ ImageMagick::MagickCore)
+ 
+     set(HAVE_IMAGEMAGICK TRUE CACHE BOOL "Building with ImageMagick support" FORCE)
+     mark_as_advanced(HAVE_IMAGEMAGICK)
diff --git a/pkgs/development/libraries/libopenshot/default.nix b/pkgs/development/libraries/libopenshot/default.nix
new file mode 100644
index 0000000000000..4622dabb2983a
--- /dev/null
+++ b/pkgs/development/libraries/libopenshot/default.nix
@@ -0,0 +1,87 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, alsa-lib
+, cmake
+, cppzmq
+, doxygen
+, ffmpeg
+, imagemagick
+, jsoncpp
+, libopenshot-audio
+, llvmPackages
+, pkg-config
+, python3
+, qtbase
+, qtmultimedia
+, swig
+, zeromq
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "libopenshot";
+  version = "0.3.2";
+
+  src = fetchFromGitHub {
+    owner = "OpenShot";
+    repo = "libopenshot";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-axFGNq+Kg8atlaSlG8EKvxj/FwLfpDR8/e4otmnyosM=";
+  };
+
+  patches = lib.optionals stdenv.isDarwin [
+    # Darwin requires both Magick++ and MagickCore for a successful linkage
+    ./0001-link-magickcore.diff
+  ];
+
+  nativeBuildInputs = [
+    cmake
+    doxygen
+    pkg-config
+    swig
+  ];
+
+  buildInputs = [
+    cppzmq
+    ffmpeg
+    imagemagick
+    jsoncpp
+    libopenshot-audio
+    python3
+    qtbase
+    qtmultimedia
+    zeromq
+  ] ++ lib.optionals stdenv.isLinux [
+    alsa-lib
+  ] ++ lib.optionals stdenv.isDarwin [
+    llvmPackages.openmp
+  ];
+
+  strictDeps = true;
+
+  dontWrapQtApps = true;
+
+  doCheck = true;
+
+  cmakeFlags = [
+    (lib.cmakeBool "ENABLE_RUBY" false)
+    (lib.cmakeOptionType "filepath" "PYTHON_MODULE_PATH" python3.sitePackages)
+  ];
+
+  passthru = {
+    inherit libopenshot-audio;
+  };
+
+  meta = {
+    homepage = "http://openshot.org/";
+    description = "Free, open-source video editor library";
+    longDescription = ''
+      OpenShot Library (libopenshot) is an open-source project dedicated to
+      delivering high quality video editing, animation, and playback solutions
+      to the world. API currently supports C++, Python, and Ruby.
+    '';
+    license = with lib.licenses; [ gpl3Plus ];
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+    platforms = lib.platforms.unix;
+  };
+})
diff --git a/pkgs/development/libraries/libressl/fix-build-with-glibc.patch b/pkgs/development/libraries/libressl/fix-build-with-glibc.patch
deleted file mode 100644
index db482bcb35da3..0000000000000
--- a/pkgs/development/libraries/libressl/fix-build-with-glibc.patch
+++ /dev/null
@@ -1,92 +0,0 @@
-diff --git a/tests/explicit_bzero.c b/tests/explicit_bzero.c
-index 34c60baa8a..9c0e917829 100644
---- a/tests/explicit_bzero.c
-+++ b/tests/explicit_bzero.c
-@@ -1,4 +1,4 @@
--/*	$OpenBSD: explicit_bzero.c,v 1.6 2014/07/11 01:10:35 matthew Exp $	*/
-+/*	$OpenBSD: explicit_bzero.c,v 1.7 2021/03/27 11:17:58 bcook Exp $	*/
- /*
-  * Copyright (c) 2014 Google Inc.
-  *
-@@ -18,6 +18,7 @@
- #include <assert.h>
- #include <errno.h>
- #include <signal.h>
-+#include <stdlib.h>
- #include <string.h>
- #include <unistd.h>
- 
-@@ -36,19 +37,33 @@ enum {
- 	SECRETBYTES = SECRETCOUNT * sizeof(secret)
- };
- 
--static char altstack[SIGSTKSZ + SECRETBYTES];
-+/*
-+ * As of glibc 2.34, when _GNU_SOURCE is defined, SIGSTKSZ is no longer
-+ * constant on Linux. SIGSTKSZ is redefined to sysconf (_SC_SIGSTKSZ).
-+ */
-+static char *altstack;
-+#define ALTSTACK_SIZE (SIGSTKSZ + SECRETBYTES)
- 
- static void
- setup_stack(void)
- {
-+	altstack = calloc(1, ALTSTACK_SIZE);
-+	ASSERT_NE(NULL, altstack);
-+
- 	const stack_t sigstk = {
- 		.ss_sp = altstack,
--		.ss_size = sizeof(altstack),
-+		.ss_size = ALTSTACK_SIZE
- 	};
- 
- 	ASSERT_EQ(0, sigaltstack(&sigstk, NULL));
- }
- 
-+static void
-+cleanup_stack(void)
-+{
-+	free(altstack);
-+}
-+
- static void
- assert_on_stack(void)
- {
-@@ -129,7 +144,7 @@ test_without_bzero()
- 	char buf[SECRETBYTES];
- 	assert_on_stack();
- 	populate_secret(buf, sizeof(buf));
--	char *res = memmem(altstack, sizeof(altstack), buf, sizeof(buf));
-+	char *res = memmem(altstack, ALTSTACK_SIZE, buf, sizeof(buf));
- 	ASSERT_NE(NULL, res);
- 	return (res);
- }
-@@ -140,7 +155,7 @@ test_with_bzero()
- 	char buf[SECRETBYTES];
- 	assert_on_stack();
- 	populate_secret(buf, sizeof(buf));
--	char *res = memmem(altstack, sizeof(altstack), buf, sizeof(buf));
-+	char *res = memmem(altstack, ALTSTACK_SIZE, buf, sizeof(buf));
- 	ASSERT_NE(NULL, res);
- 	explicit_bzero(buf, sizeof(buf));
- 	return (res);
-@@ -183,15 +198,17 @@ main()
- 	 * on the stack.  This sanity checks that call_on_stack() and
- 	 * populate_secret() work as intended.
- 	 */
--	memset(altstack, 0, sizeof(altstack));
-+	memset(altstack, 0, ALTSTACK_SIZE);
- 	call_on_stack(do_test_without_bzero);
- 
- 	/*
- 	 * Now test with a call to explicit_bzero() and check that we
- 	 * *don't* find any instances of the secret data.
- 	 */
--	memset(altstack, 0, sizeof(altstack));
-+	memset(altstack, 0, ALTSTACK_SIZE);
- 	call_on_stack(do_test_with_bzero);
- 
-+	cleanup_stack();
-+
- 	return (0);
- }
diff --git a/pkgs/development/libraries/libwnck/fix-pc-file.patch b/pkgs/development/libraries/libwnck/fix-pc-file.patch
deleted file mode 100644
index 42017a993b518..0000000000000
--- a/pkgs/development/libraries/libwnck/fix-pc-file.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff --git a/meson.build b/meson.build
-index 28799d8..047e523 100644
---- a/meson.build
-+++ b/meson.build
-@@ -72,11 +72,15 @@
- pc_conf = configuration_data()
- pc_conf.set('prefix', get_option('prefix'))
- pc_conf.set('exec_prefix', '${prefix}')
--pc_conf.set('libdir', '${exec_prefix}/' + get_option('libdir'))
--pc_conf.set('includedir', '${prefix}/' + get_option('includedir'))
--pc_conf.set('STARTUP_NOTIFICATION_PACKAGE', STARTUP_NOTIFICATION_PACKAGE)
-+pc_conf.set('libdir', '${exec_prefix}' / get_option('libdir'))
-+pc_conf.set('includedir', '${prefix}' / get_option('includedir'))
-+if conf.has('HAVE_' + STARTUP_NOTIFICATION_PACKAGE.to_upper().underscorify())
-+  pc_conf.set('STARTUP_NOTIFICATION_PACKAGE', STARTUP_NOTIFICATION_PACKAGE)
-+endif
- pc_conf.set('X11_PACKAGE', X11_PACKAGE)
--pc_conf.set('XRES_PACKAGE', XRES_PACKAGE)
-+if conf.has('HAVE_' + XRES_PACKAGE.to_upper().underscorify())
-+  pc_conf.set('XRES_PACKAGE', XRES_PACKAGE)
-+endif
- pc_conf.set('VERSION', meson.project_version())
- 
- foreach pc: [PACKAGE_NAME, PACKAGE_NAME + '-uninstalled']
diff --git a/pkgs/development/libraries/loudmouth/glib-2.32.patch b/pkgs/development/libraries/loudmouth/glib-2.32.patch
deleted file mode 100644
index 87fc170c80dad..0000000000000
--- a/pkgs/development/libraries/loudmouth/glib-2.32.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: loudmouth-1.4.3/loudmouth/lm-error.c
-===================================================================
---- loudmouth-1.4.3.orig/loudmouth/lm-error.c
-+++ loudmouth-1.4.3/loudmouth/lm-error.c
-@@ -19,7 +19,7 @@
-  */
- 
- #include <config.h>
--#include <glib/gerror.h>
-+#include <glib.h>
- #include "lm-error.h"
- 
- /**
diff --git a/pkgs/development/libraries/mp4v2/fix-build-clang.patch b/pkgs/development/libraries/mp4v2/fix-build-clang.patch
deleted file mode 100644
index 5d99f1951f7ab..0000000000000
--- a/pkgs/development/libraries/mp4v2/fix-build-clang.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/src/mp4.cpp b/src/mp4.cpp
-index c2a7238..9bb3e38 100644
---- a/src/mp4.cpp
-+++ b/src/mp4.cpp
-@@ -870,7 +870,7 @@ MP4FileHandle MP4ReadProvider( const char* fileName, const MP4FileProvider* file
-         }
- 
-         catch (...) {
--            return MP4_INVALID_TRACK_ID;
-+            return NULL;
-         }
-     }
- 
diff --git a/pkgs/development/libraries/mtxclient/fix-compilation-with-olm-3.2.5.patch b/pkgs/development/libraries/mtxclient/fix-compilation-with-olm-3.2.5.patch
deleted file mode 100644
index 02337d56f1ff1..0000000000000
--- a/pkgs/development/libraries/mtxclient/fix-compilation-with-olm-3.2.5.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff -Naur old/lib/crypto/client.cpp c5pf6ygk9v9rdwwr3dyd24wghflp0vmx-source/lib/crypto/client.cpp
---- old/lib/crypto/client.cpp	2021-10-22 19:31:52.159836190 +0300
-+++ c5pf6ygk9v9rdwwr3dyd24wghflp0vmx-source/lib/crypto/client.cpp	2021-10-22 19:30:42.882010441 +0300
-@@ -37,15 +37,15 @@
- 
- };
- 
--OlmErrorCode
-+mtx::crypto::OlmErrorCode
- olm_exception::ec_from_string(std::string_view error)
- {
-         for (size_t i = 0; i < olmErrorStrings.size(); i++) {
-                 if (olmErrorStrings[i] == error)
--                        return static_cast<OlmErrorCode>(i);
-+			return static_cast<mtx::crypto::OlmErrorCode>(i);
-         }
- 
--        return OlmErrorCode::UNKNOWN_ERROR;
-+        return mtx::crypto::OlmErrorCode::UNKNOWN_ERROR;
- }
- 
- void
diff --git a/pkgs/development/libraries/science/math/tensorflow-lite/eigen_include_dir.patch b/pkgs/development/libraries/science/math/tensorflow-lite/eigen_include_dir.patch
deleted file mode 100644
index 6fa3c703efa99..0000000000000
--- a/pkgs/development/libraries/science/math/tensorflow-lite/eigen_include_dir.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 28103856e..a36909c0e 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -449,13 +449,6 @@ install(FILES
-   DESTINATION ${INCLUDE_INSTALL_DIR} COMPONENT Devel
-   )
- 
--if(EIGEN_BUILD_PKGCONFIG)
--    configure_file(eigen3.pc.in eigen3.pc @ONLY)
--    install(FILES ${CMAKE_CURRENT_BINARY_DIR}/eigen3.pc
--        DESTINATION ${PKGCONFIG_INSTALL_DIR}
--        )
--endif()
--
- install(DIRECTORY Eigen DESTINATION ${INCLUDE_INSTALL_DIR} COMPONENT Devel)
- 
- add_subdirectory(doc EXCLUDE_FROM_ALL)
-@@ -570,8 +563,15 @@ set ( EIGEN_VERSION_MAJOR  ${EIGEN_WORLD_VERSION} )
- set ( EIGEN_VERSION_MINOR  ${EIGEN_MAJOR_VERSION} )
- set ( EIGEN_VERSION_PATCH  ${EIGEN_MINOR_VERSION} )
- set ( EIGEN_DEFINITIONS "")
--set ( EIGEN_INCLUDE_DIR "${CMAKE_INSTALL_PREFIX}/${INCLUDE_INSTALL_DIR}" )
- set ( EIGEN_ROOT_DIR ${CMAKE_INSTALL_PREFIX} )
-+GNUInstallDirs_get_absolute_install_dir(EIGEN_INCLUDE_DIR INCLUDE_INSTALL_DIR)
-+
-+if(EIGEN_BUILD_PKGCONFIG)
-+    configure_file(eigen3.pc.in eigen3.pc @ONLY)
-+    install(FILES ${CMAKE_CURRENT_BINARY_DIR}/eigen3.pc
-+        DESTINATION ${PKGCONFIG_INSTALL_DIR}
-+        )
-+endif()
- 
- # Interface libraries require at least CMake 3.0
- if (NOT CMAKE_VERSION VERSION_LESS 3.0)
-diff --git a/eigen3.pc.in b/eigen3.pc.in
-index 3368a3aa1..d6778bf06 100644
---- a/eigen3.pc.in
-+++ b/eigen3.pc.in
-@@ -6,4 +6,4 @@ Description: A C++ template library for linear algebra: vectors, matrices, and r
- Requires:
- Version: @EIGEN_VERSION_NUMBER@
- Libs:
--Cflags: -I${prefix}/@INCLUDE_INSTALL_DIR@
-+Cflags: -I@EIGEN_INCLUDE_DIR@
diff --git a/pkgs/development/libraries/zchunk/0001-meson-fix-argp-standalone.patch b/pkgs/development/libraries/zchunk/0001-meson-fix-argp-standalone.patch
deleted file mode 100644
index cd51d17b15005..0000000000000
--- a/pkgs/development/libraries/zchunk/0001-meson-fix-argp-standalone.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff --git a/meson.build b/meson.build
-index 1c6b32d..aa7dd25 100644
---- a/meson.build
-+++ b/meson.build
-@@ -58,10 +58,10 @@ endif
- 
- # argp-standalone dependency (if required)
- if build_machine.system() == 'windows' or build_machine.system() == 'darwin' or build_machine.system() == 'freebsd' or not cc.links('#include <argp.h>\nstatic error_t parse_opt (int key, char *arg, struct argp_state *state) { argp_usage(state); return 0; }; void main() {}')
--    if fs.is_dir(join_paths([get_option('prefix'), 'include']))
--        inc += include_directories(join_paths([get_option('prefix'), 'include']))
-+    argplib = cc.find_library('argp', has_headers : ['argp.h'], required: false)
-+    if not argplib.found()
-+        argplib = dependency('argp-standalone')
-     endif
--    argplib = cc.find_library('argp', dirs : join_paths([get_option('prefix'), 'lib']))
- else
-     argplib = dependency('', required : false)
- endif
diff --git a/pkgs/development/lisp-modules-new-obsolete/patches/qtools-use-nix-libs.patch b/pkgs/development/lisp-modules-new-obsolete/patches/qtools-use-nix-libs.patch
deleted file mode 100644
index b380894b04a83..0000000000000
--- a/pkgs/development/lisp-modules-new-obsolete/patches/qtools-use-nix-libs.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-Dont use the qt+libs system for managing Qt dependencies, because Nix provides
-them already.
-Don't build the deploy.lisp helper file, because Nix also can handle deployment.
---- a/qtools.asd
-+++ b/qtools.asd
-@@ -33,10 +33,9 @@
-                (:file "generate")
-                (:file "dynamic")
-                (:file "precompile")
--               (:file "deploy")
-                (:file "fast-call")
-                (:file "documentation"))
--  :depends-on (:qt+libs
-+  :depends-on (:qt
-                :deploy
-                :cl-ppcre
-                :closer-mop
-
-Diff finished.  Sun Oct  2 14:38:06 2022
\ No newline at end of file
diff --git a/pkgs/development/lisp-modules/patches/qt-libs-dont-download.patch b/pkgs/development/lisp-modules/patches/qt-libs-dont-download.patch
deleted file mode 100644
index 4acf0a9d3dda9..0000000000000
--- a/pkgs/development/lisp-modules/patches/qt-libs-dont-download.patch
+++ /dev/null
@@ -1,36 +0,0 @@
---- a/qt-libs.asd
-+++ b/qt-libs.asd
-@@ -17,5 +17,4 @@
-   :components ((:file "qt-libs"))
-   :depends-on (:qt-lib-generator
-                :cl-ppcre
--               :cffi)
--  :perform (asdf:load-op :after (op c) (uiop:symbol-call :qt-libs :ensure-standalone-libs)))
-+               :cffi))
---- a/qt-libs.lisp
-+++ b/qt-libs.lisp
-@@ -94,16 +94,14 @@
-   standalone-dir)
-
- (defun %ensure-lib-loaded (file)
--  (let ((file (etypecase file
--                (pathname file)
--                (string (installed-library-file file))))
--        (name (intern (string-upcase (pathname-name file))))
--        #+sbcl(sb-ext:*muffled-warnings* 'style-warning))
--    (cffi::register-foreign-library
--     name `((T ,file))
--     :search-path (to-directory file))
--    (unless (cffi:foreign-library-loaded-p name)
--      (cffi:load-foreign-library name))))
-+ (let ((name (make-pathname :name (format nil "lib~a" file)
-+                             :type #+unix "so"
-+                                   #+darwin "dylib")))
-+    (or (find-if (lambda (lib)
-+                   (equal (cffi:foreign-library-pathname lib)
-+                          (namestring name)))
-+                 (cffi:list-foreign-libraries))
-+        (cffi:load-foreign-library name))))
-
- (defun ensure-lib-loaded (file)
-   (cond ((pathnamep file)
diff --git a/pkgs/development/ocaml-modules/expat/unittest.patch b/pkgs/development/ocaml-modules/expat/unittest.patch
deleted file mode 100644
index 489b745c503ae..0000000000000
--- a/pkgs/development/ocaml-modules/expat/unittest.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- old/Makefile	2005-03-13 09:00:29.000000000 -0500
-+++ new/Makefile	2010-08-26 14:20:34.515785557 -0400
-@@ -67,10 +67,10 @@
- testall: test testopt
- .PHONY: test
- test: unittest 	
--	./unittest
-+	LD_LIBRARY_PATH=. ./unittest
- .PHONY: testopt
- testopt: unittest.opt
--	./unittest.opt
-+	LD_LIBRARY_PATH=. ./unittest.opt
- unittest: all unittest.ml
- 	$(OCAMLFIND) ocamlc -o unittest -package oUnit -ccopt -L. -linkpkg \
- 	$(ARCHIVE) unittest.ml
diff --git a/pkgs/development/python-modules/dvc/dvc-daemon.patch b/pkgs/development/python-modules/dvc/dvc-daemon.patch
deleted file mode 100644
index 65ba630f3b80d..0000000000000
--- a/pkgs/development/python-modules/dvc/dvc-daemon.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff --git a/dvc/daemon.py b/dvc/daemon.py
-index 9854a0e1..fefdd613 100644
---- a/dvc/daemon.py
-+++ b/dvc/daemon.py
-@@ -103,11 +103,8 @@ def daemon(args):
-         logger.debug("skipping launching a new daemon.")
-         return
- 
--    cmd = ["daemon", "-q"] + args
--
--    env = fix_env()
--    file_path = os.path.abspath(inspect.stack()[0][1])
--    env["PYTHONPATH"] = os.path.dirname(os.path.dirname(file_path))
-+    cmd = [ "@dvc@" , "daemon", "-q"] + args
-+    env = os.environ.copy()
-     env[DVC_DAEMON] = "1"
- 
-     _spawn(cmd, env)
diff --git a/pkgs/development/python-modules/enamlx/replace-unicode-with-str.patch b/pkgs/development/python-modules/enamlx/replace-unicode-with-str.patch
deleted file mode 100644
index 52df6e9a50e68..0000000000000
--- a/pkgs/development/python-modules/enamlx/replace-unicode-with-str.patch
+++ /dev/null
@@ -1,274 +0,0 @@
-From 16df11227b8cee724624541d274e481802ea67e3 Mon Sep 17 00:00:00 2001
-From: frmdstryr <frmdstryr@protonmail.com>
-Date: Tue, 3 Nov 2020 21:41:52 -0500
-Subject: [PATCH] Replace Unicode with Str
-
----
- enamlx/widgets/abstract_item.py      |  4 ++--
- enamlx/widgets/console.py            |  4 ++--
- enamlx/widgets/graphics_view.py      |  8 ++++----
- enamlx/widgets/plot_area.py          | 14 +++++++-------
- examples/occ_viewer/advanced.enaml   | 12 ++++++------
- examples/occ_viewer/occ/part.py      |  6 +++---
- examples/plot_area/plot_area.enaml   |  2 +-
- examples/table_view/table_view.enaml |  6 +++---
- examples/tree_view/tree_view.enaml   |  6 +++---
- setup.py                             |  2 +-
- 10 files changed, 32 insertions(+), 32 deletions(-)
-
-diff --git a/enamlx/widgets/abstract_item.py b/enamlx/widgets/abstract_item.py
-index 29a3d87..67a5c6e 100644
---- a/enamlx/widgets/abstract_item.py
-+++ b/enamlx/widgets/abstract_item.py
-@@ -6,7 +6,7 @@
- Created on Aug 24, 2015
- """
- from atom.api import (
--    Int, Enum, Bool, Unicode, Typed, 
-+    Int, Enum, Bool, Str, Typed, 
-     Coerced, Event, Property, ForwardInstance, observe
- )
- from enaml.icon import Icon
-@@ -96,7 +96,7 @@ class AbstractWidgetItem(AbstractWidgetItemGroup):
-     column = d_(Int(), writable=False)
-     
-     #: Text to display within the cell
--    text = d_(Unicode())
-+    text = d_(Str())
-     
-     #: Text alignment within the cell
-     text_alignment = d_(Enum(*[(h, v)
-diff --git a/enamlx/widgets/console.py b/enamlx/widgets/console.py
-index bc61e90..2f1e981 100644
---- a/enamlx/widgets/console.py
-+++ b/enamlx/widgets/console.py
-@@ -7,7 +7,7 @@
- """
- 
- from atom.api import (
--    Instance, Coerced, Int, Enum, Unicode, Dict, Bool,
-+    Instance, Coerced, Int, Enum, Str, Dict, Bool,
-     Typed, ForwardTyped, observe
- )
- from enaml.core.api import d_
-@@ -47,7 +47,7 @@ class Console(Container):
-     proxy = Typed(ProxyConsole)
-     
-     #: Font family, leave blank for default
--    font_family = d_(Unicode())
-+    font_family = d_(Str())
-     
-     #: Font size, leave 0 for default
-     font_size = d_(Int(0))
-diff --git a/enamlx/widgets/graphics_view.py b/enamlx/widgets/graphics_view.py
-index f7e3e47..e672c63 100644
---- a/enamlx/widgets/graphics_view.py
-+++ b/enamlx/widgets/graphics_view.py
-@@ -7,7 +7,7 @@
- import sys
- from atom.api import (
-     Atom, Float, Int, Typed, Bool, Coerced, ForwardTyped, Enum, List, IntEnum,
--    Instance, Unicode, Value, Event, Property, observe, set_default
-+    Instance, Str, Value, Event, Property, observe, set_default
- )
- from enaml.colors import ColorMember
- from enaml.core.declarative import d_, d_func
-@@ -419,10 +419,10 @@ class GraphicsItem(ToolkitObject, ConstrainableMixin):
-     visible = d_(Bool(True))
-     
-     #: Tool tip
--    tool_tip = d_(Unicode())
-+    tool_tip = d_(Str())
-     
-     #: Status tip
--    status_tip = d_(Unicode())
-+    status_tip = d_(Str())
-     
-     # --------------------------------------------------------------------------
-     # Item interaction
-@@ -919,7 +919,7 @@ class GraphicsTextItem(AbstractGraphicsShapeItem):
-     proxy = Typed(ProxyGraphicsTextItem)
-     
-     #: Text
--    text = d_(Unicode())
-+    text = d_(Str())
-     
-     #: Font
-     font = d_(FontMember())
-diff --git a/enamlx/widgets/plot_area.py b/enamlx/widgets/plot_area.py
-index 5136693..383957b 100644
---- a/enamlx/widgets/plot_area.py
-+++ b/enamlx/widgets/plot_area.py
-@@ -8,7 +8,7 @@
- import sys
- from atom.atom import set_default
- from atom.api import (Callable, Int, Tuple, Instance, Enum, Float,
--                      ContainerList, Bool, FloatRange, Unicode, Dict, Typed,
-+                      ContainerList, Bool, FloatRange, Str, Dict, Typed,
-                       ForwardTyped, observe)
- from enaml.core.declarative import d_
- from enaml.widgets.api import Container
-@@ -41,10 +41,10 @@ class PlotArea(Container):
- 
- class PlotItem(Control):
-     #: Title of data series
--    title = d_(Unicode())
-+    title = d_(Str())
- 
-     #: Name
--    name = d_(Unicode())
-+    name = d_(Str())
- 
-     #: Row in plot area
-     row = d_(Int(0))
-@@ -89,10 +89,10 @@ class PlotItem(Control):
-     #: Show legend
-     show_legend = d_(Bool(False))
- 
--    label_left = d_(Unicode())
--    label_right = d_(Unicode())
--    label_top = d_(Unicode())
--    label_bottom = d_(Unicode())
-+    label_left = d_(Str())
-+    label_right = d_(Str())
-+    label_top = d_(Str())
-+    label_bottom = d_(Str())
- 
-     # H, V
-     grid = d_(Tuple(bool, default=(False, False)))
-diff --git a/examples/occ_viewer/advanced.enaml b/examples/occ_viewer/advanced.enaml
-index 872d44d..f1c48d5 100644
---- a/examples/occ_viewer/advanced.enaml
-+++ b/examples/occ_viewer/advanced.enaml
-@@ -15,7 +15,7 @@ is then used to unroll a list of these controls into the body of a form.
- 
- << autodoc-me >>
- """
--from atom.api import Atom, Bool, Enum, Event, Float, Int, Str, Unicode
-+from atom.api import Atom, Bool, Enum, Event, Float, Int, Str, Str
- 
- from enaml.core.api import DynamicTemplate
- from enaml.stdlib.fields import FloatField
-@@ -73,8 +73,8 @@ template FormControl(Attr, MemberType: Str):
-         text :: setattr(model, Attr, str(text))
- 
- 
--template FormControl(Attr, MemberType: Unicode):
--    """ A form control template specialization for Unicode members.
-+template FormControl(Attr, MemberType: Str):
-+    """ A form control template specialization for Str members.
- 
-     This control uses a Field to represent the value.
- 
-@@ -174,7 +174,7 @@ def form_spec(obtype, model):
-     
-     typemap = {int:Int,
-                float:Float,
--               unicode:Unicode,
-+               unicode:Str,
-                str:Str}
-     for name, member in obtype.members().iteritems():
-         if (not name.startswith('_') 
-@@ -263,14 +263,14 @@ class FooModel(Atom):
-     ham = Int(42)
-     first = Str('first')
-     last = Str('last')
--    owner = Unicode('owner')
-+    owner = Str('owner')
-     time = Float(42.56)
-     click = Bool()
-     clack = Bool()
- 
- 
- class BarModel(Atom):
--    name = Unicode('name')
-+    name = Str('name')
-     trigger = Event()
-     choices = Enum('first', 'second', 'third')
-     def _observe_trigger(self, change):
-diff --git a/examples/occ_viewer/occ/part.py b/examples/occ_viewer/occ/part.py
-index 1fe2b85..144354f 100644
---- a/examples/occ_viewer/occ/part.py
-+++ b/examples/occ_viewer/occ/part.py
-@@ -5,7 +5,7 @@
- '''
- 
- from atom.api import (
--    Typed, ForwardTyped, Unicode
-+    Typed, ForwardTyped, Str
- )
- from enaml.core.declarative import d_
- 
-@@ -26,10 +26,10 @@ class Part(ToolkitObject):
-     proxy = Typed(ProxyPart)
-     
-     #: Optional name of the part
--    name = d_(Unicode())
-+    name = d_(Str())
-     
-     #: Optional description of the part
--    description = d_(Unicode())
-+    description = d_(Str())
-     
-     @property
-     def shapes(self):
-diff --git a/examples/plot_area/plot_area.enaml b/examples/plot_area/plot_area.enaml
-index 2085c8f..b5cd3c4 100644
---- a/examples/plot_area/plot_area.enaml
-+++ b/examples/plot_area/plot_area.enaml
-@@ -2,7 +2,7 @@
- Demonstrating the examples from pyqtgraph
- """
- 
--from atom.api import (Atom, Unicode, Range, List, Bool)
-+from atom.api import (Atom, Str, Range, List, Bool)
- 
- from enaml.widgets.api import (
-     Window, Container, DockArea,DockItem,PushButton, CheckBox, RadioButton
-diff --git a/examples/table_view/table_view.enaml b/examples/table_view/table_view.enaml
-index 6d7a35e..6fef544 100644
---- a/examples/table_view/table_view.enaml
-+++ b/examples/table_view/table_view.enaml
-@@ -2,7 +2,7 @@ import os
- import time
- import random
- from threading import Thread
--from atom.api import (Atom, Unicode, Range, ContainerList, Bool)
-+from atom.api import (Atom, Str, Range, ContainerList, Bool)
- 
- from enamlx.widgets.table_view import (
-     TableView, TableViewRow, TableViewItem
-@@ -38,9 +38,9 @@ class Person(Atom):
-     """ A simple class representing a person object.
- 
-     """
--    last_name = Unicode()
-+    last_name = Str()
- 
--    first_name = Unicode()
-+    first_name = Str()
- 
-     age = Range(low=0)
- 
-diff --git a/examples/tree_view/tree_view.enaml b/examples/tree_view/tree_view.enaml
-index 37f991f..e88e1fd 100644
---- a/examples/tree_view/tree_view.enaml
-+++ b/examples/tree_view/tree_view.enaml
-@@ -1,5 +1,5 @@
- import os
--from atom.api import (Atom, Unicode, Range, List, Bool, ForwardInstance)
-+from atom.api import (Atom, Str, Range, List, Bool, ForwardInstance)
- 
- from enamlx.widgets.api import (
-     TreeView, TreeViewItem, TreeViewColumn, 
-@@ -33,9 +33,9 @@ class Person(Atom):
-     """ A simple class representing a person object.
- 
-     """
--    last_name = Unicode()
-+    last_name = Str()
- 
--    first_name = Unicode()
-+    first_name = Str()
-     
-     children = List(ForwardInstance(lambda:Person))
diff --git a/pkgs/development/python-modules/faulthandler/disable-env-test.patch b/pkgs/development/python-modules/faulthandler/disable-env-test.patch
deleted file mode 100644
index 5824652f6175e..0000000000000
--- a/pkgs/development/python-modules/faulthandler/disable-env-test.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/tests.py b/tests.py
-index e5a2811..16e7a0f 100644
---- a/tests.py
-+++ b/tests.py
-@@ -394,7 +394,7 @@ class FaultHandlerTests(unittest.TestCase):
-             print(faulthandler.is_enabled())
-             """,
-             env=dict(os.environ, PYTHONFAULTHANDLER='x'))
--        self.assertEqual(output, ["True"])
-+        #self.assertEqual(output, ["True"])
-         self.assertEqual(exitcode, 0)
- 
-         output, exitcode = self.get_output("""
diff --git a/pkgs/development/python-modules/flask-appbuilder/upgrade-to-flask_jwt_extended-4.patch b/pkgs/development/python-modules/flask-appbuilder/upgrade-to-flask_jwt_extended-4.patch
deleted file mode 100644
index f2bf072b7f0ae..0000000000000
--- a/pkgs/development/python-modules/flask-appbuilder/upgrade-to-flask_jwt_extended-4.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-diff --git a/flask_appbuilder/security/api.py b/flask_appbuilder/security/api.py
-index 2e2dfd612..df1bd5a25 100644
---- a/flask_appbuilder/security/api.py
-+++ b/flask_appbuilder/security/api.py
-@@ -3,7 +3,7 @@
-     create_access_token,
-     create_refresh_token,
-     get_jwt_identity,
--    jwt_refresh_token_required,
-+    jwt_required,
- )
- 
- from ..api import BaseApi, safe
-@@ -118,7 +118,7 @@ def login(self):
-         return self.response(200, **resp)
- 
-     @expose("/refresh", methods=["POST"])
--    @jwt_refresh_token_required
-+    @jwt_required(refresh=True)
-     @safe
-     def refresh(self):
-         """
-diff --git a/flask_appbuilder/security/manager.py b/flask_appbuilder/security/manager.py
-index fe7697007..3b22ab255 100644
---- a/flask_appbuilder/security/manager.py
-+++ b/flask_appbuilder/security/manager.py
-@@ -297,7 +297,7 @@ def create_jwt_manager(self, app) -> JWTManager:
-         """
-         jwt_manager = JWTManager()
-         jwt_manager.init_app(app)
--        jwt_manager.user_loader_callback_loader(self.load_user_jwt)
-+        jwt_manager.user_lookup_loader(self.load_user_jwt)
-         return jwt_manager
- 
-     def create_builtin_roles(self):
-@@ -1944,7 +1944,8 @@ def del_permission_role(self, role, perm_view):
-     def load_user(self, pk):
-         return self.get_user_by_id(int(pk))
- 
--    def load_user_jwt(self, pk):
-+    def load_user_jwt(self, _jwt_header, jwt_data):
-+        pk = jwt_data["sub"]
-         user = self.load_user(pk)
-         # Set flask g.user to JWT user, we can't do it on before request
-         g.user = user
diff --git a/pkgs/development/python-modules/pomegranate/disable-failed-on-nextworkx-2.6.patch b/pkgs/development/python-modules/pomegranate/disable-failed-on-nextworkx-2.6.patch
deleted file mode 100644
index 484ca4f9cbc8f..0000000000000
--- a/pkgs/development/python-modules/pomegranate/disable-failed-on-nextworkx-2.6.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-Test started failing after upgrading networkx 2.5.1 -> 2.6.2:
-    https://github.com/jmschrei/pomegranate/issues/939
-
-Failures look benigh.
---- a/tests/test_bayesian_network.py
-+++ b/tests/test_bayesian_network.py
-@@ -1057,7 +1057,8 @@ def test_exact_structure_learning_exclude_edges():
-         assert_not_equal(model.structure[-2], (d-1,))
-         assert_equal(model.structure[-2], (1,))
- 
--def test_exact_dp_structure_learning_exclude_edges():
-+# disabled for https://github.com/jmschrei/pomegranate/issues/939
-+def disabled_exact_dp_structure_learning_exclude_edges():
-     for X in datasets:
-         X = X.copy()
-         X[:,1] = X[:,-1]
-@@ -1139,7 +1140,8 @@ def test_constrained_parents_structure_learning_exclude_edges():
-     assert_equal(model.structure[7], (2,))
-     assert_equal(model.structure[4], (0,))
- 
--def test_constrained_slap_structure_learning_exclude_edges():
-+# disabled for https://github.com/jmschrei/pomegranate/issues/939
-+def disabled_constrained_slap_structure_learning_exclude_edges():
-     for X in datasets:
-         X = X.copy()
-         X[:,1] = X[:,-1]
diff --git a/pkgs/development/python-modules/pydash/0001-Only-build-unit-tests.patch b/pkgs/development/python-modules/pydash/0001-Only-build-unit-tests.patch
deleted file mode 100644
index 56a5ff391194c..0000000000000
--- a/pkgs/development/python-modules/pydash/0001-Only-build-unit-tests.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 2fe7a445bafedee2c43050e40697d8b0fd7f7b30 Mon Sep 17 00:00:00 2001
-From: Maximilian Bosch <maximilian@mbosch.me>
-Date: Fri, 19 Mar 2021 19:37:34 +0100
-Subject: [PATCH] Only build unit-tests
-
----
- setup.cfg | 7 -------
- 1 file changed, 7 deletions(-)
-
-diff --git a/setup.cfg b/setup.cfg
-index 2c2f49f..a5ec152 100644
---- a/setup.cfg
-+++ b/setup.cfg
-@@ -83,13 +83,6 @@ force_sort_within_sections = true
- junit_family = xunit2
- addopts =
-     --verbose
--    --doctest-modules
--    --no-cov-on-fail
--    --cov-fail-under=100
--    --cov-report=term-missing
--    --cov-report=xml:build/coverage/coverage.xml
--    --cov-report=html:build/coverage
--    --junitxml=build/testresults/junit.xml
- 
- [coverage:run]
- omit =
--- 
-2.29.3
-
diff --git a/pkgs/development/python-modules/pyhanko/0001-Updating-pytest-aiohttp-version.patch b/pkgs/development/python-modules/pyhanko/0001-Updating-pytest-aiohttp-version.patch
deleted file mode 100644
index 562dc6461ef93..0000000000000
--- a/pkgs/development/python-modules/pyhanko/0001-Updating-pytest-aiohttp-version.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 942d4fd37786941bae91b769ef6499a4b4da6843 Mon Sep 17 00:00:00 2001
-From: "P. R. d. O" <d.ol.rod@tutanota.com>
-Date: Sat, 9 Apr 2022 12:40:59 -0600
-Subject: [PATCH] Updating pytest-aiohttp version
-
----
- setup.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/setup.py b/setup.py
-index fe33d9a..694fab4 100644
---- a/setup.py
-+++ b/setup.py
-@@ -85,7 +85,7 @@ setup(
-     tests_require=[
-         'pytest>=6.1.1', 'requests-mock>=1.8.0',
-         'freezegun>=1.1.0', 'certomancer~=0.8.1',
--        'aiohttp~=3.8.0', 'pytest-aiohttp~=0.3.0',
-+        'aiohttp~=3.8.0', 'pytest-aiohttp~=1.0.3',
-         'python-pae==0.1.0'
-     ],
-     keywords="signature pdf pades digital-signature pkcs11"
--- 
-2.35.1
-
diff --git a/pkgs/development/python-modules/pymiele/default.nix b/pkgs/development/python-modules/pymiele/default.nix
new file mode 100644
index 0000000000000..1706c3de2a2ab
--- /dev/null
+++ b/pkgs/development/python-modules/pymiele/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, aiohttp
+, async-timeout
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "pymiele";
+  version = "0.1.7";
+  pyproject = true;
+
+  disabled = pythonOlder "3.9";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-nlilHcBdWpCIknhE/RRvcmuz1waNdmcPt++Vi3amvHg=";
+  };
+
+  nativeBuildInputs = [
+    aiohttp
+    async-timeout
+  ];
+
+  # No tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "pymiele"
+  ];
+
+  meta = with lib; {
+    changelog = "https://github.com/astrandb/pymiele/releases/tag/v${version}";
+    description = "Lib for Miele integration with Home Assistant";
+    homepage = "https://github.com/astrandb/pymiele";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jamiemagee ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyqt-builder/use-sip-distinfo-from-path.patch b/pkgs/development/python-modules/pyqt-builder/use-sip-distinfo-from-path.patch
deleted file mode 100644
index 43b2d7367e963..0000000000000
--- a/pkgs/development/python-modules/pyqt-builder/use-sip-distinfo-from-path.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff --git a/pyqtbuild/builder.py b/pyqtbuild/builder.py
-index 3f35a7f..58701dd 100644
---- a/pyqtbuild/builder.py
-+++ b/pyqtbuild/builder.py
-@@ -51,15 +51,6 @@ class QmakeBuilder(Builder):
-         """ Set default values for user options that haven't been set yet. """
- 
-         if tool in Option.BUILD_TOOLS:
--            # A PEP 517 frontend will set PATH so that sip-distinfo is found on
--            # it.  However for our own frontends we want to use the version
--            # corresponding to the frontend (and, anyway, the frontend may not
--            # be on PATH).
--            if tool != 'pep517':
--                self._sip_distinfo = os.path.join(
--                        os.path.abspath(os.path.dirname(sys.argv[0])),
--                        self._sip_distinfo)
--
-             # Check we have a qmake.
-             if self.qmake is None:
-                 self.qmake = self._find_exe('qmake')
diff --git a/pkgs/development/python-modules/pyqtwebengine/fix-build-with-qt-514.patch b/pkgs/development/python-modules/pyqtwebengine/fix-build-with-qt-514.patch
deleted file mode 100644
index 1ae911c14817b..0000000000000
--- a/pkgs/development/python-modules/pyqtwebengine/fix-build-with-qt-514.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-diff --git a/sip/QtWebEngineWidgets/qwebenginecertificateerror.sip b/sip/QtWebEngineWidgets/qwebenginecertificateerror.sip
-index 5fb508f..7a4654a 100644
---- a/sip/QtWebEngineWidgets/qwebenginecertificateerror.sip
-+++ b/sip/QtWebEngineWidgets/qwebenginecertificateerror.sip
-@@ -48,7 +48,7 @@ public:
- %If (QtWebEngine_5_8_0 -)
-         CertificateTransparencyRequired,
- %End
--%If (QtWebEngine_5_14_0 -)
-+%If (QtWebEngine_5_15_0 -)
-         CertificateKnownInterceptionBlocked,
- %End
-     };
-diff --git a/sip/QtWebEngineWidgets/qwebenginepage.sip b/sip/QtWebEngineWidgets/qwebenginepage.sip
-index 0dcbed2..9aa3443 100644
---- a/sip/QtWebEngineWidgets/qwebenginepage.sip
-+++ b/sip/QtWebEngineWidgets/qwebenginepage.sip
-@@ -663,10 +663,10 @@ signals:
- %End
-
- public:
--%If (QtWebEngine_5_14_0 -)
-+%If (QtWebEngine_5_15_0 -)
-     qint64 renderProcessPid() const;
- %End
--%If (QtWebEngine_5_14_0 -)
-+%If (QtWebEngine_5_15_0 -)
-     void renderProcessPidChanged(qint64 pid);
- %End
- };
-
diff --git a/pkgs/development/python-modules/reportlab/darwin-m1-compat.patch b/pkgs/development/python-modules/reportlab/darwin-m1-compat.patch
deleted file mode 100644
index 5c9d4404f97e6..0000000000000
--- a/pkgs/development/python-modules/reportlab/darwin-m1-compat.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/setup.py b/setup.py
-index 7625074..b3aa2fc 100644
---- a/setup.py
-+++ b/setup.py
-@@ -249,7 +249,7 @@ class inc_lib_dirs:
-             aDir(L, os.path.join("/usr/lib", "python%s" % sys.version[:3], "config"))
-         elif platform == "darwin":
-             machine = sysconfig_platform.split('-')[-1]
--            if machine=='arm64' or os.environ.get('ARCHFLAGS','')=='-arch arm64':
-+            if False and machine=='arm64' or os.environ.get('ARCHFLAGS','')=='-arch arm64':
-                 #print('!!!!! detected darwin arm64 build')
-                 #probably an M1
-                 target = pjoin(
diff --git a/pkgs/development/python-modules/signify/certificate-expiration-date.patch b/pkgs/development/python-modules/signify/certificate-expiration-date.patch
deleted file mode 100644
index 6554211a4bc71..0000000000000
--- a/pkgs/development/python-modules/signify/certificate-expiration-date.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff --git a/tests/test_authenticode.py b/tests/test_authenticode.py
-index 7e2c709..2f27e09 100644
---- a/tests/test_authenticode.py
-+++ b/tests/test_authenticode.py
-@@ -153,10 +153,12 @@ class AuthenticodeParserTestCase(unittest.TestCase):
-         """this certificate is revoked"""
-         with open(str(root_dir / "test_data" / "jameslth"), "rb") as f:
-             pefile = SignedPEFile(f)
--            pefile.verify()
-+            pefile.verify(verification_context_kwargs=
-+                          {'timestamp': datetime.datetime(2021, 1, 1, tzinfo=datetime.timezone.utc)})
-
-     def test_jameslth_revoked(self):
-         """this certificate is revoked"""
-+        # TODO: this certificate is now expired, so it will not show up as valid anyway
-         with open(str(root_dir / "test_data" / "jameslth"), "rb") as f:
-             pefile = SignedPEFile(f)
-             with self.assertRaises(VerificationError):
diff --git a/pkgs/development/python-modules/ufo2ft/fonttools-cu2qu.patch b/pkgs/development/python-modules/ufo2ft/fonttools-cu2qu.patch
deleted file mode 100644
index 56aba78b5b31a..0000000000000
--- a/pkgs/development/python-modules/ufo2ft/fonttools-cu2qu.patch
+++ /dev/null
@@ -1,130 +0,0 @@
-From eb63747509b2c18793b95eb12cc0141277520798 Mon Sep 17 00:00:00 2001
-From: Simon Cozens <simon@simon-cozens.org>
-Date: Thu, 11 Feb 2021 09:43:41 +0000
-Subject: [PATCH 1/2] Rename cu2qu to fontTools.cu2qu
-
----
- Lib/ufo2ft/filters/cubicToQuadratic.py | 4 ++--
- Lib/ufo2ft/preProcessor.py             | 4 ++--
- setup.py                               | 1 -
- tests/outlineCompiler_test.py          | 2 +-
- tests/preProcessor_test.py             | 2 +-
- 5 files changed, 6 insertions(+), 7 deletions(-)
-
-diff --git a/Lib/ufo2ft/filters/cubicToQuadratic.py b/Lib/ufo2ft/filters/cubicToQuadratic.py
-index 87d81b1..4b77144 100644
---- a/Lib/ufo2ft/filters/cubicToQuadratic.py
-+++ b/Lib/ufo2ft/filters/cubicToQuadratic.py
-@@ -1,7 +1,7 @@
- import logging
- 
--from cu2qu.pens import Cu2QuPointPen
--from cu2qu.ufo import CURVE_TYPE_LIB_KEY, DEFAULT_MAX_ERR
-+from fontTools.pens.cu2quPen import Cu2QuPointPen
-+from fontTools.cu2qu.ufo import CURVE_TYPE_LIB_KEY, DEFAULT_MAX_ERR
- 
- from ufo2ft.filters import BaseFilter
- from ufo2ft.fontInfoData import getAttrWithFallback
-diff --git a/Lib/ufo2ft/preProcessor.py b/Lib/ufo2ft/preProcessor.py
-index e239152..9463aea 100644
---- a/Lib/ufo2ft/preProcessor.py
-+++ b/Lib/ufo2ft/preProcessor.py
-@@ -267,7 +267,7 @@ class TTFInterpolatablePreProcessor:
-         skipExportGlyphs=None,
-         filters=None,
-     ):
--        from cu2qu.ufo import DEFAULT_MAX_ERR
-+        from fontTools.cu2qu.ufo import DEFAULT_MAX_ERR
- 
-         self.ufos = ufos
-         self.inplace = inplace
-@@ -304,7 +304,7 @@ class TTFInterpolatablePreProcessor:
-         self.postFilters = [[f for f in filters if not f.pre] for filters in filterses]
- 
-     def process(self):
--        from cu2qu.ufo import fonts_to_quadratic
-+        from fontTools.cu2qu.ufo import fonts_to_quadratic
- 
-         needs_decomposition = set()
- 
-diff --git a/setup.py b/setup.py
-index d8d9982..a165ab1 100644
---- a/setup.py
-+++ b/setup.py
-@@ -30,7 +30,6 @@ setup(
-     tests_require=["pytest>=2.8"],
-     install_requires=[
-         "fonttools[ufo]>=4.34.0",
--        "cu2qu>=1.6.7",
-         "cffsubr>=0.2.8",
-         "booleanOperations>=0.9.0",
-     ],
-diff --git a/tests/outlineCompiler_test.py b/tests/outlineCompiler_test.py
-index b31319c..ee51920 100644
---- a/tests/outlineCompiler_test.py
-+++ b/tests/outlineCompiler_test.py
-@@ -2,7 +2,7 @@ import logging
- import os
- 
- import pytest
--from cu2qu.ufo import font_to_quadratic
-+from fontTools.cu2qu.ufo import font_to_quadratic
- from fontTools.ttLib import TTFont
- from fontTools.ttLib.tables._g_l_y_f import USE_MY_METRICS
- 
-diff --git a/tests/preProcessor_test.py b/tests/preProcessor_test.py
-index 11196f8..bc32d55 100644
---- a/tests/preProcessor_test.py
-+++ b/tests/preProcessor_test.py
-@@ -2,7 +2,7 @@ import logging
- import os
- 
- import pytest
--from cu2qu.ufo import CURVE_TYPE_LIB_KEY
-+from fontTools.cu2qu.ufo import CURVE_TYPE_LIB_KEY
- from fontTools import designspaceLib
- 
- import ufo2ft
--- 
-2.36.1
-
-From 58f3ab5e5db8090aba10fefd58ad8df4b507e7c3 Mon Sep 17 00:00:00 2001
-From: Simon Cozens <simon@simon-cozens.org>
-Date: Thu, 11 Feb 2021 09:49:28 +0000
-Subject: [PATCH 2/2] Sort the imports
-
----
- Lib/ufo2ft/filters/cubicToQuadratic.py | 2 +-
- tests/preProcessor_test.py             | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/Lib/ufo2ft/filters/cubicToQuadratic.py b/Lib/ufo2ft/filters/cubicToQuadratic.py
-index 4b77144..5f28ea4 100644
---- a/Lib/ufo2ft/filters/cubicToQuadratic.py
-+++ b/Lib/ufo2ft/filters/cubicToQuadratic.py
-@@ -1,7 +1,7 @@
- import logging
- 
--from fontTools.pens.cu2quPen import Cu2QuPointPen
- from fontTools.cu2qu.ufo import CURVE_TYPE_LIB_KEY, DEFAULT_MAX_ERR
-+from fontTools.pens.cu2quPen import Cu2QuPointPen
- 
- from ufo2ft.filters import BaseFilter
- from ufo2ft.fontInfoData import getAttrWithFallback
-diff --git a/tests/preProcessor_test.py b/tests/preProcessor_test.py
-index bc32d55..41c579c 100644
---- a/tests/preProcessor_test.py
-+++ b/tests/preProcessor_test.py
-@@ -2,8 +2,8 @@ import logging
- import os
- 
- import pytest
--from fontTools.cu2qu.ufo import CURVE_TYPE_LIB_KEY
- from fontTools import designspaceLib
-+from fontTools.cu2qu.ufo import CURVE_TYPE_LIB_KEY
- 
- import ufo2ft
- from ufo2ft.constants import (
--- 
-2.36.1
-
diff --git a/pkgs/development/python-modules/xlib/fix-no-protocol-specified.patch b/pkgs/development/python-modules/xlib/fix-no-protocol-specified.patch
deleted file mode 100644
index 1f3ab927f8405..0000000000000
--- a/pkgs/development/python-modules/xlib/fix-no-protocol-specified.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/Xlib/xauth.py b/Xlib/xauth.py
-index 2ed7dd5..303bd49 100644
---- a/Xlib/xauth.py
-+++ b/Xlib/xauth.py
-@@ -120,6 +120,8 @@ class Xauthority(object):
-         matches = {}
- 
-         for efam, eaddr, enum, ename, edata in self.entries:
-+            if enum == b'' and ename not in matches:
-+                enum = num
-             if efam == family and eaddr == address and num == enum:
-                 matches[ename] = edata
- 
diff --git a/pkgs/development/tools/build-managers/bazel/bazel-remote/disable_build_file_generation.patch b/pkgs/development/tools/build-managers/bazel/bazel-remote/disable_build_file_generation.patch
deleted file mode 100644
index 67df8f559a208..0000000000000
--- a/pkgs/development/tools/build-managers/bazel/bazel-remote/disable_build_file_generation.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 3f5abd591b93ebdbc1ae82e5c29cf26024222f5f Mon Sep 17 00:00:00 2001
-From: Uri Baghin <uri@canva.com>
-Date: Thu, 30 Jan 2020 16:47:36 +1100
-Subject: [PATCH] Disable build file generation for remote apis.
-
----
- WORKSPACE | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/WORKSPACE b/WORKSPACE
-index f9ebafa..52e4e0b 100644
---- a/WORKSPACE
-+++ b/WORKSPACE
-@@ -208,6 +208,7 @@ http_archive(
- 
- go_repository(
-     name = "com_github_bazelbuild_remote_apis",
-+    build_file_generation = "off",
-     importpath = "github.com/bazelbuild/remote-apis",
-     sum = "h1:OPH+hf+ICw8WEp2CV2ncfdyWPC30Cmw8b5NKun0n5IQ=",
-     version = "v0.0.0-20191119143007-b5123b1bb285",
--- 
-2.25.0
-
diff --git a/pkgs/development/tools/misc/gdb/32-bit-BFD_VMA-format.patch b/pkgs/development/tools/misc/gdb/32-bit-BFD_VMA-format.patch
deleted file mode 100644
index 41ce4540d2ddc..0000000000000
--- a/pkgs/development/tools/misc/gdb/32-bit-BFD_VMA-format.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-Fix iWerror=format build for 32-bit systems.
-https://sourceware.org/pipermail/gdb-patches/2022-May/189288.html
---- a/sim/cris/sim-if.c
-+++ b/sim/cris/sim-if.c
-@@ -257,7 +257,8 @@ cris_load_elf_file (SIM_DESC sd, struct bfd *abfd, sim_write_fn do_write)
- 
-       if (verbose)
- 	sim_io_printf (sd,
--		       "Loading segment at 0x%" BFD_VMA_FMT "x, size 0x%lx\n",
-+		       "Loading segment at 0x%" BFD_VMA_FMT "x, "
-+		       "size 0x%" BFD_VMA_FMT "x\n",
- 		       lma, phdr[i].p_filesz);
- 
-       if (bfd_seek (abfd, phdr[i].p_offset, SEEK_SET) != 0
-@@ -265,7 +266,7 @@ cris_load_elf_file (SIM_DESC sd, struct bfd *abfd, sim_write_fn do_write)
- 	{
- 	  sim_io_eprintf (sd,
- 			  "%s: could not read segment at 0x%" BFD_VMA_FMT "x, "
--			  "size 0x%lx\n",
-+			  "size 0x%" BFD_VMA_FMT "x\n",
- 			  STATE_MY_NAME (sd), lma, phdr[i].p_filesz);
- 	  free (buf);
- 	  return FALSE;
-@@ -275,7 +276,7 @@ cris_load_elf_file (SIM_DESC sd, struct bfd *abfd, sim_write_fn do_write)
- 	{
- 	  sim_io_eprintf (sd,
- 			  "%s: could not load segment at 0x%" BFD_VMA_FMT "x, "
--			  "size 0x%lx\n",
-+			  "size 0x%" BFD_VMA_FMT "x\n",
- 			  STATE_MY_NAME (sd), lma, phdr[i].p_filesz);
- 	  free (buf);
- 	  return FALSE;
-@@ -572,7 +573,8 @@ cris_handle_interpreter (SIM_DESC sd, struct bfd *abfd)
- 	 memory area, so we go via a temporary area.  Luckily, the
- 	 interpreter is supposed to be small, less than 0x40000
- 	 bytes.  */
--      sim_do_commandf (sd, "memory region 0x%" BFD_VMA_FMT "x,0x%lx",
-+      sim_do_commandf (sd, "memory region 0x%" BFD_VMA_FMT "x,"
-+		       "0x%" BFD_VMA_FMT "x",
- 		       interp_load_addr, interpsiz);
- 
-       /* Now that memory for the interpreter is defined, load it.  */
---- a/sim/m32c/syscalls.c
-+++ b/sim/m32c/syscalls.c
-@@ -299,8 +299,8 @@ m32c_syscall (int id)
- 
- 	rv = gettimeofday (&tv, 0);
- 	if (trace)
--	  printf ("gettimeofday: %ld sec %ld usec to 0x%x\n", tv.tv_sec,
--		  tv.tv_usec, tvaddr);
-+	  printf ("gettimeofday: %lld sec %lld usec to 0x%x\n",
-+		  (long long)tv.tv_sec, (long long)tv.tv_usec, tvaddr);
- 	mem_put_si (tvaddr, tv.tv_sec);
- 	mem_put_si (tvaddr + 4, tv.tv_usec);
- 	put_reg (r0, rv);
---- a/sim/rx/syscalls.c
-+++ b/sim/rx/syscalls.c
-@@ -270,8 +270,8 @@ rx_syscall (int id)
- 
- 	rv = gettimeofday (&tv, 0);
- 	if (trace)
--	  printf ("gettimeofday: %ld sec %ld usec to 0x%x\n", tv.tv_sec,
--		  tv.tv_usec, tvaddr);
-+	  printf ("gettimeofday: %lld sec %lld usec to 0x%x\n",
-+		  (long long)tv.tv_sec, (long long)tv.tv_usec, tvaddr);
- 	mem_put_si (tvaddr, tv.tv_sec);
- 	mem_put_si (tvaddr + 4, tv.tv_usec);
- 	put_reg (1, rv);
diff --git a/pkgs/development/web/nodejs/node-npm-build-npm-package-logic-node16.patch b/pkgs/development/web/nodejs/node-npm-build-npm-package-logic-node16.patch
deleted file mode 100644
index f4d3b0e32b1c6..0000000000000
--- a/pkgs/development/web/nodejs/node-npm-build-npm-package-logic-node16.patch
+++ /dev/null
@@ -1,95 +0,0 @@
-This patch is based off of npm tag v8.19.4.
-
-This introduces fixes for 4 issues:
-
-1. When node-gyp is included as a dependency in a project, any scripts that run it will not use the copy included in Node. This is problematic because we patch node-gyp to work without xcbuild on Darwin, leading to these packages failing to build with a sandbox on Darwin.
-2. When a Git dependency contains install scripts, it has to be built just like any other package. Thus, we need to patch shebangs appropriately, just like in npmConfigHook.
-3. We get useless warnings that clog up logs when using a v1 lockfile, so we silence them.
-4. npm looks at a hidden lockfile to determine if files have binaries to link into `node_modules/.bin`. When using a v1 lockfile offline, this lockfile does not contain enough info, leading to binaries for packages such as Webpack not being available to scripts. We used to work around this by making npm ignore the hidden lockfile by creating a file, but now we just disable the code path entirely.
-
-To update:
-1. Run `git diff` from an npm checkout
-2. Run `fix-npm-patch-paths.sh`
-3. Include/update this frontmatter, please!
-
-diff --git a/deps/npm/node_modules/@npmcli/run-script/lib/set-path.js b/deps/npm/node_modules/@npmcli/run-script/lib/set-path.js
-index c59c270d9..98785192f 100644
---- a/deps/npm/node_modules/@npmcli/run-script/lib/set-path.js
-+++ b/deps/npm/node_modules/@npmcli/run-script/lib/set-path.js
-@@ -12,7 +12,10 @@ const setPATH = (projectPath, binPaths, env) => {
-     .reduce((set, p) => set.concat(p.filter(concatted => !set.includes(concatted))), [])
-     .join(delimiter)
- 
--  const pathArr = []
-+  // Ensure when using buildNpmPackage hooks that Node.js'
-+  // bundled copy of node-gyp is used, instead of any copy
-+  // pulled in as a dependency.
-+  const pathArr = process.env['NIX_NODEJS_BUILDNPMPACKAGE'] ? [nodeGypPath, PATH] : [];
-   if (binPaths) {
-     pathArr.push(...binPaths)
-   }
-@@ -26,7 +29,8 @@ const setPATH = (projectPath, binPaths, env) => {
-     pp = p
-     p = dirname(p)
-   } while (p !== pp)
--  pathArr.push(nodeGypPath, PATH)
-+  if (!process.env['NIX_NODEJS_BUILDNPMPACKAGE']) { pathArr.push(nodeGypPath, PATH) }
-+
- 
-   const pathVal = pathArr.join(delimiter)
- 
-diff --git a/deps/npm/node_modules/pacote/lib/git.js b/deps/npm/node_modules/pacote/lib/git.js
-index c4819b4fd..7efbeef05 100644
---- a/deps/npm/node_modules/pacote/lib/git.js
-+++ b/deps/npm/node_modules/pacote/lib/git.js
-@@ -186,6 +186,24 @@ class GitFetcher extends Fetcher {
-       }
-       noPrepare.push(this.resolved)
- 
-+      if (process.env['NIX_NODEJS_BUILDNPMPACKAGE']) {
-+        const spawn = require('@npmcli/promise-spawn')
-+
-+        const npmWithNixFlags = (args, cmd) => spawn('bash', ['-c', 'npm ' + args + ` $npm${cmd}Flags "$\{npm${cmd}FlagsArray[@]}" $npmFlags "$\{npmFlagsArray[@]}"`], { cwd: dir, env: { ...process.env, _PACOTE_NO_PREPARE_: noPrepare.join('\n') } }, { message: `\`npm ${args}\` failed` })
-+        const patchShebangs = () => spawn('bash', ['-c', 'source $stdenv/setup; patchShebangs node_modules'], { cwd: dir })
-+
-+        // the DirFetcher will do its own preparation to run the prepare scripts
-+        // All we have to do is put the deps in place so that it can succeed.
-+        //
-+        // We ignore this.npmConfig to maintain an environment that's as close
-+        // to the rest of the build as possible.
-+        return spawn('bash', ['-c', '$prefetchNpmDeps --fixup-lockfile package-lock.json'], { cwd: dir })
-+        .then(() => npmWithNixFlags('ci --ignore-scripts', 'Install'))
-+        .then(patchShebangs)
-+        .then(() => npmWithNixFlags('rebuild', 'Rebuild'))
-+        .then(patchShebangs)
-+      }
-+
-       // the DirFetcher will do its own preparation to run the prepare scripts
-       // All we have to do is put the deps in place so that it can succeed.
-       return npm(
-diff --git a/deps/npm/node_modules/@npmcli/arborist/lib/arborist/build-ideal-tree.js b/deps/npm/node_modules/@npmcli/arborist/lib/arborist/build-ideal-tree.js
-index e9a8720d7..b29ad0185 100644
---- a/deps/npm/node_modules/@npmcli/arborist/lib/arborist/build-ideal-tree.js
-+++ b/deps/npm/node_modules/@npmcli/arborist/lib/arborist/build-ideal-tree.js
-@@ -744,7 +744,7 @@ This is a one-time fix-up, please be patient...
-           node.package = { ...mani, _id: `${mani.name}@${mani.version}` }
-         } catch (er) {
-           const warning = `Could not fetch metadata for ${name}@${id}`
--          log.warn(heading, warning, er)
-+          if (!process.env['NIX_NODEJS_BUILDNPMPACKAGE']) { log.warn(heading, warning, er) }
-         }
-         this.finishTracker(t)
-       })
-diff --git a/deps/npm/node_modules/@npmcli/arborist/lib/arborist/load-actual.js b/deps/npm/node_modules/@npmcli/arborist/lib/arborist/load-actual.js
-index 7ab65f5b0..12f563a50 100644
---- a/deps/npm/node_modules/@npmcli/arborist/lib/arborist/load-actual.js
-+++ b/deps/npm/node_modules/@npmcli/arborist/lib/arborist/load-actual.js
-@@ -143,7 +143,7 @@ module.exports = cls => class ActualLoader extends cls {
-     this[_actualTree].assertRootOverrides()
- 
-     // if forceActual is set, don't even try the hidden lockfile
--    if (!forceActual) {
-+    if (!forceActual && !process.env['NIX_NODEJS_BUILDNPMPACKAGE']) {
-       // Note: hidden lockfile will be rejected if it's not the latest thing
-       // in the folder, or if any of the entries in the hidden lockfile are
-       // missing.