tawasuyu

sergio/takana

> Una distribución Linux construida con un laboratorio funcional y hermético en el > sótano, y una terminal mutable, clásica y anárquica en el piso de arriba — diseñada > desde el suelo para que una IA programadora entienda, modifique y co…

TOML 1572Shell 203Rust 109Markdown 993728 Definitions

granja: jubilar incoming-clib — 0 recetas y 26 parches inalcanzables

Era la cola de staging de las tandas base-system/foot y sus recetas ya se
habian PROMOVIDO a canonicas commit a commit ("promover 7 tier-2", "promover
cadena crypto", "promover tllist/utf8proc/scdoc/fcft/foot"). Lo que quedaba
eran 0 .toml y 26 .patch: 5 copias byte a byte de la version canonica de
recipes/ y 21 de recetas que ya no viven ahi.

No eran "probablemente inutiles": son inalcanzables POR CONSTRUCCION.
`fetch::apply_patches` resuelve `recipe.base_dir.join(nombre)` y `base_dir` es
el directorio de la receta, sin fallback a `recipes/` — un parche en una cola
sin recetas no lo puede pedir nadie.

⚠ El corolario queda escrito en farm-worker-loop.sh: al promover una cola, los
`.patch` NO viajan con la receta, y la cola queda en un estado que PARECE vivo
(tiene ficheros) sin moler nada.

Sale de QUEUES en farm-worker-loop.sh y de la lista de promote de farm-down.sh.
`incoming-go` se queda en las dos aunque el directorio no exista: es la cola
aislada del frente Go y el guard `ls $Q/*.toml` salta las vacias; quitarla seria
dejarla muerta el dia que ese frente la recree.

Verificado con la regla ESTRICTA de resolucion de parches sobre todo el corpus:
94 referencias resuelven, 0 rotas. (El chequeo que use al jubilar onda-2 era mas
laxo que hammer — aceptaba recipes/<parche> como fallback; su conclusion se
sostiene, pero el metodo queda corregido.)

Gate --check OK, grafo CIERRA, corpus 786/787.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LykB7vw38b4Ck1Zij15RQ4

3231c43cddf130d8e04a5e6c55701c889923350e · by Sergio · (1 month ago) · parent 0ae7e18a6 · browse the tree at this commit

Semantic delta

No definition changed: this change is text, documentation or data.

28 files · +14 −1085

diff --git a/recipes/incoming-clib/0001-posixtz-ensure-the-file-offset-we-pass-to-lseek-is-o.patch b/recipes/incoming-clib/0001-posixtz-ensure-the-file-offset-we-pass-to-lseek-is-o.patch
deleted file mode 100644
index c4ae70b0..00000000
--- a/recipes/incoming-clib/0001-posixtz-ensure-the-file-offset-we-pass-to-lseek-is-o.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From e6765bd363d2dd1dcaeeae5117cc25aae53fb944 Mon Sep 17 00:00:00 2001
-From: William Pitcock <nenolod@dereferenced.org>
-Date: Thu, 28 Apr 2011 02:56:42 -0500
-Subject: [PATCH 1/2] posixtz: ensure the file offset we pass to lseek is off_t
-
-on 32-bit systems, sizeof(off_t) is 4, on 64-bit sizeof(off_t) is 8
-causing a word masking issue.
----
- posixtz.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/posixtz.c b/posixtz.c
-index cddcb3e..972ca31 100644
---- a/posixtz-0.5/posixtz.c
-+++ b/posixtz-0.5/posixtz.c
-@@ -36,7 +36,7 @@ char *posix_tz(const char *filename)
- 	if (r != TZ_BUFLEN
- 	    || strncmp(buf, "TZif", 4) != 0
- 	    || (unsigned char)buf[4] < 2
--	    || lseek(fd, -TZ_BUFLEN, SEEK_END) < 0
-+	    || lseek(fd, (off_t) -TZ_BUFLEN, SEEK_END) < 0
- 	   )
- 		goto ERROR;
- 
--- 
-2.16.2
-
diff --git a/recipes/incoming-clib/0002-fix-implicit-declaration-warnings-by-including-strin.patch b/recipes/incoming-clib/0002-fix-implicit-declaration-warnings-by-including-strin.patch
deleted file mode 100644
index 6f61b25b..00000000
--- a/recipes/incoming-clib/0002-fix-implicit-declaration-warnings-by-including-strin.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 89d4aece7ba679703060393ac95086fd514c7fc7 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
-Date: Tue, 27 Mar 2018 19:09:44 +0200
-Subject: [PATCH 2/2] fix implicit declaration warnings by including string.h
- and unistd.h
-
-string.h is needed for strncmp(3) and unistd.h is needed for read(3),
-close(3) and lseek(3).
----
- posixtz.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/posixtz.c b/posixtz.c
-index 972ca31..4a36e10 100644
---- a/posixtz-0.5/posixtz.c
-+++ b/posixtz-0.5/posixtz.c
-@@ -14,6 +14,8 @@
- #include <fcntl.h>
- #include <limits.h>
- #include <stdio.h>
-+#include <string.h>
-+#include <unistd.h>
- 
- #include "posixtz.h"
- 
--- 
-2.16.2
-
diff --git a/recipes/incoming-clib/CVE-2026-6732-test.patch b/recipes/incoming-clib/CVE-2026-6732-test.patch
deleted file mode 100644
index e88d2b8a..00000000
--- a/recipes/incoming-clib/CVE-2026-6732-test.patch
+++ /dev/null
@@ -1,84 +0,0 @@
---- a/testparser.c
-+++ b/testparser.c
-@@ -11,6 +11,7 @@
- #include <libxml/xmlreader.h>
- #include <libxml/xmlwriter.h>
- #include <libxml/HTMLparser.h>
-+#include <libxml/xmlschemas.h>
- 
- #include <string.h>
- 
-@@ -777,6 +778,63 @@
- }
- #endif /* WIN32 */
- 
-+#if defined(LIBXML_READER_ENABLED) && defined(LIBXML_SCHEMAS_ENABLED)
-+/*
-+ * Regression test for CVE-2026-6732: a type confusion in xmlParseReference
-+ * crashed a schema-validating xmlTextReader whenever the document expanded
-+ * an internal entity. Without the fix this triggers SIGSEGV on the first
-+ * read; with the fix the entity expansion is read and the schema correctly
-+ * reports the substituted content as invalid against xs:integer.
-+ *
-+ * Backport of upstream commit 7cea3fd1 adapted for the libxml2 2.13
-+ * testparser.c layout (which predates the testReaderSchemaResourceLoader
-+ * helper that upstream uses as an anchor on master).
-+ */
-+static int
-+testReaderSchemaEntityExpansion(void) {
-+    static const char xsd[] =
-+        "<?xml version='1.0'?>\n"
-+        "<xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema'>\n"
-+        "  <xs:element name='e' type='xs:integer'/>\n"
-+        "</xs:schema>\n";
-+    static const char xml[] =
-+        "<!DOCTYPE e [<!ENTITY n \"not-an-int\">]>\n"
-+        "<e>&n;</e>";
-+    xmlSchemaParserCtxtPtr spc;
-+    xmlSchemaPtr schema;
-+    xmlTextReaderPtr reader;
-+    int err = 0;
-+    int ret;
-+
-+    spc = xmlSchemaNewMemParserCtxt(xsd, (int) sizeof(xsd) - 1);
-+    schema = xmlSchemaParse(spc);
-+    xmlSchemaFreeParserCtxt(spc);
-+    if (schema == NULL) {
-+        fprintf(stderr, "xmlSchemaParse failed\n");
-+        return 1;
-+    }
-+
-+    reader = xmlReaderForMemory(xml, (int) sizeof(xml) - 1, "doc.xml", NULL,
-+                                XML_PARSE_NOENT | XML_PARSE_DTDLOAD);
-+    xmlTextReaderSetSchema(reader, schema);
-+
-+    while ((ret = xmlTextReaderRead(reader)) == 1)
-+        ;
-+    if (ret != 0) {
-+        fprintf(stderr, "reader failed on entity-expanded document\n");
-+        err = 1;
-+    }
-+    if (xmlTextReaderIsValid(reader) != 0) {
-+        fprintf(stderr, "schema missed invalid entity-expanded text\n");
-+        err = 1;
-+    }
-+
-+    xmlFreeTextReader(reader);
-+    xmlSchemaFree(schema);
-+    return err;
-+}
-+#endif
-+
- int
- main(void) {
-     int err = 0;
-@@ -807,6 +865,9 @@
- #ifdef LIBXML_XINCLUDE_ENABLED
-     err |= testReaderXIncludeError();
- #endif
-+#ifdef LIBXML_SCHEMAS_ENABLED
-+    err |= testReaderSchemaEntityExpansion();
-+#endif
- #endif
- #ifdef LIBXML_WRITER_ENABLED
-     err |= testWriterClose();
diff --git a/recipes/incoming-clib/CVE-2026-6732.patch b/recipes/incoming-clib/CVE-2026-6732.patch
deleted file mode 100644
index 66ce0a32..00000000
--- a/recipes/incoming-clib/CVE-2026-6732.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-diff --git a/parser.c b/parser.c
-index 6e7621a86b5b9256b7a068f09a7e1650e7264aa5..85bc39b1c2739574ab90fde34a24459e5ef9928f 100644
---- a/parser.c
-+++ b/parser.c
-@@ -7261,10 +7261,10 @@ xmlParseReference(xmlParserCtxt *ctxt) {
-             if ((cur->type == XML_TEXT_NODE) ||
-                 (ctxt->options & XML_PARSE_NOCDATA)) {
-                 if (ctxt->sax->characters != NULL)
--                    ctxt->sax->characters(ctxt, cur->content, len);
-+                    ctxt->sax->characters(ctxt->userData, cur->content, len);
-             } else {
-                 if (ctxt->sax->cdataBlock != NULL)
--                    ctxt->sax->cdataBlock(ctxt, cur->content, len);
-+                    ctxt->sax->cdataBlock(ctxt->userData, cur->content, len);
-             }
- 
-             cur = cur->next;
-@@ -7284,10 +7284,12 @@ xmlParseReference(xmlParserCtxt *ctxt) {
-                 if ((cur->type == XML_TEXT_NODE) ||
-                     (ctxt->options & XML_PARSE_NOCDATA)) {
-                     if (ctxt->sax->characters != NULL)
--                        ctxt->sax->characters(ctxt, cur->content, len);
-+                        ctxt->sax->characters(ctxt->userData, cur->content,
-+                                              len);
-                 } else {
-                     if (ctxt->sax->cdataBlock != NULL)
--                        ctxt->sax->cdataBlock(ctxt, cur->content, len);
-+                        ctxt->sax->cdataBlock(ctxt->userData, cur->content,
-+                                              len);
-                 }
- 
-                 break;
diff --git a/recipes/incoming-clib/bzip2-1.0.2-progress.patch b/recipes/incoming-clib/bzip2-1.0.2-progress.patch
deleted file mode 100644
index 2f389cfa..00000000
--- a/recipes/incoming-clib/bzip2-1.0.2-progress.patch
+++ /dev/null
@@ -1,175 +0,0 @@
-Ripped from Mandrake.
-
-http://bugs.gentoo.org/show_bug.cgi?id=82192
-
---- bzip2-1.0.2.org/bzip2.1
-+++ bzip2-1.0.2/bzip2.1
-@@ -235,6 +235,10 @@
- Suppress non-essential warning messages.  Messages pertaining to
- I/O errors and other critical events will not be suppressed.
- .TP
-+.B \-p --show-progress
-+Show percentage of input-file done and while compressing show the percentage
-+of the original file the new file is.
-+.TP
- .B \-v --verbose
- Verbose mode -- show the compression ratio for each file processed.
- Further \-v's increase the verbosity level, spewing out lots of
---- bzip2-1.0.2.org/bzip2.c
-+++ bzip2-1.0.2/bzip2.c
-@@ -145,6 +145,7 @@
- #include <signal.h>
- #include <math.h>
- #include <errno.h>
-+#include <time.h>
- #include <ctype.h>
- #include "bzlib.h"
- 
-@@ -301,6 +302,7 @@
- Char    progNameReally[FILE_NAME_LEN];
- FILE    *outputHandleJustInCase;
- Int32   workFactor;
-+Char	showProgress;
- 
- static void    panic                 ( Char* )   NORETURN;
- static void    ioError               ( void )    NORETURN;
-@@ -425,6 +427,12 @@
-    UInt32  nbytes_in_lo32, nbytes_in_hi32;
-    UInt32  nbytes_out_lo32, nbytes_out_hi32;
-    Int32   bzerr, bzerr_dummy, ret;
-+   double  fileSize = 0; /* initialized to make the compiler stop crying */
-+                         /* double because big files might otherwhise give
-+                          * overflows. not long long since not all compilers
-+                          * support that one
-+                          */
-+   time_t  startTime, currentTime;
- 
-    SET_BINARY_MODE(stream);
-    SET_BINARY_MODE(zStream);
-@@ -432,12 +440,21 @@
-    if (ferror(stream)) goto errhandler_io;
-    if (ferror(zStream)) goto errhandler_io;
- 
-+   if ((srcMode == SM_F2F || srcMode == SM_F2O) && showProgress == True) {
-+      (void)fseek(stream, 0, SEEK_END);
-+      fileSize = (double)ftell(stream);
-+      rewind(stream);
-+      if (verbosity >= 1)
-+         fprintf(stderr, "Input-file size: %ld\n", (long)fileSize);
-+   }
-+
-    bzf = BZ2_bzWriteOpen ( &bzerr, zStream, 
-                            blockSize100k, verbosity, workFactor );   
-    if (bzerr != BZ_OK) goto errhandler;
- 
-    if (verbosity >= 2) fprintf ( stderr, "\n" );
- 
-+   time(&startTime);
-    while (True) {
- 
-       if (myfeof(stream)) break;
-@@ -446,13 +463,32 @@
-       if (nIbuf > 0) BZ2_bzWrite ( &bzerr, bzf, (void*)ibuf, nIbuf );
-       if (bzerr != BZ_OK) goto errhandler;
- 
-+      if ((srcMode == SM_F2F || srcMode == SM_F2O) && showProgress == True)
-+      {
-+         time(&currentTime);
-+
-+         if ((currentTime - startTime) > 1) { /* show progress every 2 seconds */
-+            double curInPos = (double)ftell(stream);
-+            double curOutPos = (double)ftell(zStream);
-+
-+            startTime = currentTime;
-+
-+            fprintf(stderr, "%.2f%% done", (curInPos * 100.0) / fileSize);
-+            if (srcMode == SM_F2F)
-+            {
-+               fprintf(stderr, ", new size: %.2f%%", (curOutPos * 100.0) / curInPos);
-+            }
-+
-+            fprintf(stderr, "    \r");
-+         }
-+      }
-    }
- 
-    BZ2_bzWriteClose64 ( &bzerr, bzf, 0, 
-                         &nbytes_in_lo32, &nbytes_in_hi32,
-                         &nbytes_out_lo32, &nbytes_out_hi32 );
-    if (bzerr != BZ_OK) goto errhandler;
--
-+   
-    if (ferror(zStream)) goto errhandler_io;
-    ret = fflush ( zStream );
-    if (ret == EOF) goto errhandler_io;
-@@ -526,6 +562,8 @@
-    UChar   unused[BZ_MAX_UNUSED];
-    Int32   nUnused;
-    UChar*  unusedTmp;
-+   double  fileSize = 0; /* initialized to make the compiler stop crying */
-+   time_t  startTime, currentTime;
- 
-    nUnused = 0;
-    streamNo = 0;
-@@ -533,9 +571,19 @@
-    SET_BINARY_MODE(stream);
-    SET_BINARY_MODE(zStream);
- 
-+   if ((srcMode == SM_F2F || srcMode == SM_F2O) && showProgress == True) {
-+      long dummy = ftell(zStream);
-+      (void)fseek(zStream, 0, SEEK_END);
-+      fileSize = (double)ftell(zStream);
-+      (void)fseek(zStream, dummy, SEEK_SET);
-+      if (verbosity >= 1)
-+         fprintf(stderr, "Input-file size: %ld\n", (long)fileSize);
-+   }
-+
-    if (ferror(stream)) goto errhandler_io;
-    if (ferror(zStream)) goto errhandler_io;
- 
-+   time(&startTime);
-    while (True) {
- 
-       bzf = BZ2_bzReadOpen ( 
-@@ -551,6 +599,17 @@
-          if ((bzerr == BZ_OK || bzerr == BZ_STREAM_END) && nread > 0)
-             fwrite ( obuf, sizeof(UChar), nread, stream );
-          if (ferror(stream)) goto errhandler_io;
-+
-+         if ((srcMode == SM_F2F || srcMode == SM_F2O) && showProgress == True) {
-+            time(&currentTime);
-+            if ((currentTime - startTime) >= 2)
-+            {
-+               double curInPos = (double)ftell(zStream);
-+               startTime = currentTime;
-+
-+               fprintf(stderr, "%.2f%% done\r", (curInPos * 100.0) / fileSize);
-+            }
-+         }
-       }
-       if (bzerr != BZ_STREAM_END) goto errhandler;
- 
-@@ -1872,6 +1931,7 @@
-    deleteOutputOnInterrupt = False;
-    exitValue               = 0;
-    i = j = 0; /* avoid bogus warning from egcs-1.1.X */
-+   showProgress            = False;
- 
-    /*-- Set up signal handlers for mem access errors --*/
-    signal (SIGSEGV, mySIGSEGVorSIGBUScatcher);
-@@ -1949,6 +2009,7 @@
-                case 'k': keepInputFiles   = True; break;
-                case 's': smallMode        = True; break;
-                case 'q': noisy            = False; break;
-+               case 'p': showProgress     = True; break;
-                case '1': blockSize100k    = 1; break;
-                case '2': blockSize100k    = 2; break;
-                case '3': blockSize100k    = 3; break;
-@@ -1985,6 +2046,7 @@
-       if (ISFLAG("--keep"))              keepInputFiles   = True;    else
-       if (ISFLAG("--small"))             smallMode        = True;    else
-       if (ISFLAG("--quiet"))             noisy            = False;   else
-+      if (ISFLAG("--show-progress"))     showProgress     = True;    else
-       if (ISFLAG("--version"))           license();                  else
-       if (ISFLAG("--license"))           license();                  else
-       if (ISFLAG("--exponential"))       workFactor = 1;             else 
diff --git a/recipes/incoming-clib/bzip2-1.0.3-no-test.patch b/recipes/incoming-clib/bzip2-1.0.3-no-test.patch
deleted file mode 100644
index fc876d50..00000000
--- a/recipes/incoming-clib/bzip2-1.0.3-no-test.patch
+++ /dev/null
@@ -1,9 +0,0 @@
---- ./Makefile
-+++ ./Makefile
-@@ -23,5 +23,5 @@
-       bzlib.o
- 
--all: libbz2.a bzip2 bzip2recover test
-+all: libbz2.a bzip2 bzip2recover
- 
- bzip2: libbz2.a bzip2.o
diff --git a/recipes/incoming-clib/bzip2-1.0.4-makefile-CFLAGS.patch b/recipes/incoming-clib/bzip2-1.0.4-makefile-CFLAGS.patch
deleted file mode 100644
index 6acdc28a..00000000
--- a/recipes/incoming-clib/bzip2-1.0.4-makefile-CFLAGS.patch
+++ /dev/null
@@ -1,25 +0,0 @@
---- ./Makefile
-+++ ./Makefile
-@@ -18,10 +18,9 @@
- CC=gcc
- AR=ar
- RANLIB=ranlib
--LDFLAGS=
- 
- BIGFILES=-D_FILE_OFFSET_BITS=64
--CFLAGS=-Wall -Winline -O2 -g $(BIGFILES)
-+CFLAGS+=-Wall -Winline $(BIGFILES) $(CPPFLAGS) -O2
- 
- # Where you want it installed when you do 'make install'
- PREFIX=/usr/local
---- ./Makefile-libbz2_so
-+++ ./Makefile-libbz2_so
-@@ -24,7 +24,7 @@
- SHELL=/bin/sh
- CC=gcc
- BIGFILES=-D_FILE_OFFSET_BITS=64
--CFLAGS=-fpic -fPIC -Wall -Winline -O2 -g $(BIGFILES)
-+CFLAGS+=-fpic -fPIC -Wall -Winline $(BIGFILES) $(CPPFLAGS) -O2
- 
- OBJS= blocksort.o  \
-       huffman.o    \
diff --git a/recipes/incoming-clib/bzip2-1.0.4-man-links.patch b/recipes/incoming-clib/bzip2-1.0.4-man-links.patch
deleted file mode 100644
index 2427d6a7..00000000
--- a/recipes/incoming-clib/bzip2-1.0.4-man-links.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-http://bugs.gentoo.org/172986
-
---- bzip2-1.0.4/Makefile
-+++ bzip2-1.0.4/Makefile
-@@ -85,4 +85,7 @@
- 	cp -f bzip2.1 $(PREFIX)/share/man/man1
- 	chmod a+r $(PREFIX)/share/man/man1/bzip2.1
-+	ln -s bzip2.1 $(PREFIX)/share/man/man1/bunzip2.1
-+	ln -s bzip2.1 $(PREFIX)/share/man/man1/bzcat.1
-+	ln -s bzip2.1 $(PREFIX)/share/man/man1/bzip2recover.1
- 	cp -f bzlib.h $(PREFIX)/include
- 	chmod a+r $(PREFIX)/include/bzlib.h
diff --git a/recipes/incoming-clib/cwd.patch b/recipes/incoming-clib/cwd.patch
deleted file mode 100644
index cebc626b..00000000
--- a/recipes/incoming-clib/cwd.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-seems to fail on ppc64le
---
-diff --git a/gettext-tools/gnulib-tests/test-getcwd.sh b/gettext-tools/gnulib-tests/test-getcwd.sh
-index 64a3c7c..ccabb8f 100755
---- a/gettext-tools/gnulib-tests/test-getcwd.sh
-+++ b/gettext-tools/gnulib-tests/test-getcwd.sh
-@@ -1,5 +1,7 @@
- #!/bin/sh
- 
-+exit 77
-+
- . "${srcdir=.}/init.sh"; path_prepend_ .
- 
- ${CHECKER} test-getcwd
diff --git a/recipes/incoming-clib/disable-broken-test.patch b/recipes/incoming-clib/disable-broken-test.patch
deleted file mode 100644
index a89e65d6..00000000
--- a/recipes/incoming-clib/disable-broken-test.patch
+++ /dev/null
@@ -1,18 +0,0 @@
---- a/tests/meson.build
-+++ b/tests/meson.build
-@@ -47,7 +47,6 @@ endif
- if cairo_dep.found()
-   test_cflags += '-DHAVE_CAIRO'
-   tests += [
--    [ 'test-font-data', [ 'test-font-data.c', 'test-common.c' ], [ libpangocairo_dep ] + common_deps ],
-     [ 'test-bidi', [ 'test-bidi.c' ], [ libpangocairo_dep ] ],
-     [ 'testcontext', [ 'testcontext.c' ], [ libpangocairo_dep ] ],
-     [ 'testiter', [ 'testiter.c' ], [ libpangocairo_dep ] ],
-@@ -70,7 +69,6 @@ if cairo_dep.found()
- 
-     if host_system != 'darwin'
-       tests += [
--        [ 'test-layout', [ 'test-layout.c', 'test-common.c' ], [ libpangocairo_dep, libpangoft2_dep ] + common_deps ],
-         [ 'test-layout2', [ 'test-layout2.c'], [ libpangocairo_dep, libpangoft2_dep ] + common_deps ],
-         [ 'test-fonts', [ 'test-fonts.c', 'test-common.c' ], [ libpangocairo_dep, libpangoft2_dep ] + common_deps ],
-         [ 'test-no-fonts', [ 'test-no-fonts.c' ], [ libpangocairo_dep, libpangoft2_dep ] ],
diff --git a/recipes/incoming-clib/fix-tests-fortify.patch b/recipes/incoming-clib/fix-tests-fortify.patch
deleted file mode 100644
index 793a0a36..00000000
--- a/recipes/incoming-clib/fix-tests-fortify.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/testsuite/libffi.bhaible/bhaible.exp b/testsuite/libffi.bhaible/bhaible.exp
-index 44aebc5..245f18c 100644
---- a/testsuite/libffi.bhaible/bhaible.exp
-+++ b/testsuite/libffi.bhaible/bhaible.exp
-@@ -24,7 +24,7 @@ global compiler_vendor
- # was done in a pretty lazy fashion, and requires the use of compiler
- # flags to disable warnings for now.
- if { [string match $compiler_vendor "gnu"] } {
--    set warning_options "-Wno-unused-variable -Wno-unused-parameter -Wno-unused-but-set-variable -Wno-uninitialized";
-+    set warning_options "-Wno-unused-variable -Wno-unused-parameter -Wno-unused-but-set-variable -Wno-uninitialized -Wno-stringop-overflow";
- }
- if { [string match $compiler_vendor "microsoft"] } {
-     # -wd4996  suggest use of vsprintf_s instead of vsprintf
diff --git a/recipes/incoming-clib/flaky-tests.patch b/recipes/incoming-clib/flaky-tests.patch
deleted file mode 100644
index bc6f0aad..00000000
--- a/recipes/incoming-clib/flaky-tests.patch
+++ /dev/null
@@ -1,83 +0,0 @@
-https://gitlab.gnome.org/GNOME/glib/-/issues/3318
-https://gitlab.gnome.org/GNOME/glib/-/issues/3320
-
-diff --git a/glib/tests/meson.build b/glib/tests/meson.build
-index 85f40d2e1..059a786d3 100644
---- a/glib/tests/meson.build
-+++ b/glib/tests/meson.build
-@@ -54,6 +54,7 @@ glib_tests = {
-   'gwakeup' : {
-     'source' : ['gwakeuptest.c', '../gwakeup.c'],
-     'install' : false,
-+    'can_fail': host_machine.cpu_family() == 's390x',
-   },
-   'hash' : {},
-   'hmac' : {},
-@@ -226,6 +227,7 @@ if glib_conf.has('HAVE_EVENTFD')
-       'source' : ['gwakeuptest.c', '../gwakeup.c'],
-       'c_args' : ['-DTEST_EVENTFD_FALLBACK'],
-       'install' : false,
-+      'can_fail': host_machine.cpu_family() == 's390x',
-     },
-   }
- endif
-diff --git a/gobject/tests/meson.build b/gobject/tests/meson.build
-index a163e5f91..12c449519 100644
---- a/gobject/tests/meson.build
-+++ b/gobject/tests/meson.build
-@@ -78,7 +78,7 @@ gobject_tests = {
-   'references' : {},
-   'basic-signals' : {},
-   'singleton' : {},
--  'threadtests' : {},
-+  'threadtests' : { 'can_fail': 'aarch64' in host_machine.cpu_family() or 'riscv' in host_machine.cpu_family() },
-   'dynamictests' : {},
-   'binding' : {},
-   'bindinggroup' : {},
-From ad2925ef361a7c889ff696a1ba9e677accaecd08 Mon Sep 17 00:00:00 2001
-From: Natanael Copa <ncopa@alpinelinux.org>
-Date: Thu, 4 Apr 2024 10:15:07 +0200
-Subject: [PATCH] tests: increase timeout on slow architectures
-
-Prevent tests to timeout on architectures that are slow.
-
-Fixes https://gitlab.gnome.org/GNOME/glib/-/issues/3319
-
-Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
----
- meson.build | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/meson.build b/meson.build
-index f0c5e070b..4c6c87766 100644
---- a/meson.build
-+++ b/meson.build
-@@ -182,6 +182,12 @@ test_protocol = 'tap'
- test_timeout = 30
- test_timeout_slow = 90
- 
-+# give more time on slow architectures
-+if 'riscv' in host_machine.cpu_family()
-+  test_timeout = test_timeout * 4
-+  test_timeout_slow = test_timeout_slow * 4
-+endif
-+
- add_test_setup('default',
-   is_default: true,
-   exclude_suites: ['flaky', 'failing'],
--- 
-2.44.0
-
-diff --git a/glib/tests/meson.build b/glib/tests/meson.build
-index 85f40d2e1..f2ee59678 100644
---- a/glib/tests/meson.build
-+++ b/glib/tests/meson.build
-@@ -113,6 +113,8 @@ glib_tests = {
-   'regex' : {
-     'dependencies' : [pcre2],
-     'c_args' : use_pcre2_static_flag ? ['-DPCRE2_STATIC'] : [],
-+    # https://gitlab.gnome.org/GNOME/glib/-/issues/3321
-+    'can_fail': host_machine.cpu_family() == 'riscv64',
-   },
-   'relation' : {},
-   'rwlock' : {},
diff --git a/recipes/incoming-clib/libpng-fix-arm-neon.patch b/recipes/incoming-clib/libpng-fix-arm-neon.patch
deleted file mode 100644
index 099083fd..00000000
--- a/recipes/incoming-clib/libpng-fix-arm-neon.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-diff --git a/configure.ac b/configure.ac
-index 7b6d5b9..d02e16d 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -357,17 +357,21 @@ AC_ARG_ENABLE([arm-neon],
-    [case "$enableval" in
-       no|off)
-          # disable the default enabling on __ARM_NEON__ systems:
-+         AC_DEFINE([PNG_ARM_NEON], [], [ARM NEON support])
-          AC_DEFINE([PNG_ARM_NEON_OPT], [0],
-                    [Disable ARM Neon optimizations])
-          # Prevent inclusion of the assembler files below:
-          enable_arm_neon=no ;;
-       check)
-+         AC_DEFINE([PNG_ARM_NEON], [], [ARM NEON support])
-          AC_DEFINE([PNG_ARM_NEON_CHECK_SUPPORTED], [],
-                    [Check for ARM Neon support at run-time]);;
-       api)
-+         AC_DEFINE([PNG_ARM_NEON], [], [ARM NEON support])
-          AC_DEFINE([PNG_ARM_NEON_API_SUPPORTED], [],
-                    [Turn on ARM Neon optimizations at run-time]);;
-       yes|on)
-+         AC_DEFINE([PNG_ARM_NEON], [], [ARM NEON support])
-          AC_DEFINE([PNG_ARM_NEON_OPT], [2],
-                    [Enable ARM Neon optimizations])
-          AC_MSG_WARN([--enable-arm-neon: please specify 'check' or 'api', if]
-diff --git a/pngpriv.h b/pngpriv.h
-index 2e426cf..fb521cf 100644
---- a/pngpriv.h
-+++ b/pngpriv.h
-@@ -127,7 +127,7 @@
-     * associated assembler code, pass --enable-arm-neon=no to configure
-     * or put -DPNG_ARM_NEON_OPT=0 in CPPFLAGS.
-     */
--#  if (defined(__ARM_NEON__) || defined(__ARM_NEON)) && \
-+#  if defined(PNG_ARM_NEON) && (defined(__ARM_NEON__) || defined(__ARM_NEON)) && \
-    defined(PNG_ALIGNED_MEMORY_SUPPORTED)
- #     define PNG_ARM_NEON_OPT 2
- #  else
diff --git a/recipes/incoming-clib/musl-stacksize.patch b/recipes/incoming-clib/musl-stacksize.patch
deleted file mode 100644
index d10469e1..00000000
--- a/recipes/incoming-clib/musl-stacksize.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-Reduce the footprint of stack frame usage by turning
-some large(r) structures as `static __thread` instead.
-
---- a/src/cairo-rectangular-scan-converter.c	2015-10-27 22:04:21.000000000 +0100
-+++ b/src/cairo-rectangular-scan-converter.c	2016-05-07 04:25:26.640851782 +0200
-@@ -489,7 +489,7 @@
- 	  cairo_span_renderer_t	*renderer,
- 	  rectangle_t **rectangles)
- {
--    sweep_line_t sweep_line;
-+    static __thread sweep_line_t sweep_line;
-     rectangle_t *start, *stop;
-     cairo_status_t status;
- 
-@@ -656,7 +656,7 @@
- 					    cairo_span_renderer_t	*renderer)
- {
-     cairo_rectangular_scan_converter_t *self = converter;
--    rectangle_t *rectangles_stack[CAIRO_STACK_ARRAY_LENGTH (rectangle_t *)];
-+    static __thread rectangle_t *rectangles_stack[CAIRO_STACK_ARRAY_LENGTH (rectangle_t *)];
-     rectangle_t **rectangles;
-     struct _cairo_rectangular_scan_converter_chunk *chunk;
-     cairo_status_t status;
diff --git a/recipes/incoming-clib/pcf-family-names.patch b/recipes/incoming-clib/pcf-family-names.patch
deleted file mode 100644
index 773f1a44..00000000
--- a/recipes/incoming-clib/pcf-family-names.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/include/freetype/config/ftoption.h b/include/freetype/config/ftoption.h
-index 9e03e17..1411db6 100644
---- a/include/freetype/config/ftoption.h
-+++ b/include/freetype/config/ftoption.h
-@@ -913,7 +913,7 @@ FT_BEGIN_HEADER
-    * If this option is activated, it can be controlled with the
-    * `no-long-family-names` property of the 'pcf' driver module.
-    */
--/* #define PCF_CONFIG_OPTION_LONG_FAMILY_NAMES */
-+#define PCF_CONFIG_OPTION_LONG_FAMILY_NAMES
- 
- 
-   /*************************************************************************/
diff --git a/recipes/incoming-clib/projectsdir.patch b/recipes/incoming-clib/projectsdir.patch
deleted file mode 100644
index f746188d..00000000
--- a/recipes/incoming-clib/projectsdir.patch
+++ /dev/null
@@ -1,102 +0,0 @@
-From 5f3b178590df746544a48338f39025bf03aca46c Mon Sep 17 00:00:00 2001
-From: Emmanuele Bassi <ebassi@gnome.org>
-Date: Fri, 3 Apr 2026 12:17:31 +0100
-Subject: [PATCH] Support XDG_PROJECTS_DIR
-
-A new XDG user directory type, for non-document project files.
-
-See: https://gitlab.freedesktop.org/xdg/xdg-user-dirs/-/work_items/3
----
- gio/glocalfileinfo.c | 4 ++++
- glib/gosxutils.m     | 3 ++-
- glib/gutils.c        | 2 ++
- glib/gutils.h        | 9 +++++++++
- glib/gutilsprivate.c | 5 +++++
- 5 files changed, 22 insertions(+), 1 deletion(-)
-
-diff --git a/gio/glocalfileinfo.c b/gio/glocalfileinfo.c
-index d2efb169eb..ec482988a6 100644
---- a/gio/glocalfileinfo.c
-+++ b/gio/glocalfileinfo.c
-@@ -1840,6 +1840,10 @@ get_icon_name (const char *path,
-     {
-       name = use_symbolic ? "folder-pictures-symbolic" : "folder-pictures";
-     }
-+  else if (g_strcmp0 (path, g_get_user_special_dir (G_USER_DIRECTORY_PROJECTS)) == 0)
-+    {
-+      name = use_symbolic ? "folder-projects-symbolic" : "folder-projects";
-+    }
-   else if (g_strcmp0 (path, g_get_user_special_dir (G_USER_DIRECTORY_PUBLIC_SHARE)) == 0)
-     {
-       name = use_symbolic ? "folder-publicshare-symbolic" : "folder-publicshare";
-diff --git a/glib/gosxutils.m b/glib/gosxutils.m
-index 4d2d962ef4..13860a31ce 100644
---- a/glib/gosxutils.m
-+++ b/glib/gosxutils.m
-@@ -43,7 +43,7 @@ find_folder (NSSearchPathDirectory type)
- }
- 
- void
--load_user_special_dirs_macos(gchar **table)
-+load_user_special_dirs_macos (gchar **table)
- {
-   table[G_USER_DIRECTORY_DESKTOP] = find_folder (NSDesktopDirectory);
-   table[G_USER_DIRECTORY_DOCUMENTS] = find_folder (NSDocumentDirectory);
-@@ -53,4 +53,5 @@ load_user_special_dirs_macos(gchar **table)
-   table[G_USER_DIRECTORY_PUBLIC_SHARE] = find_folder (NSSharedPublicDirectory);
-   table[G_USER_DIRECTORY_TEMPLATES] = NULL;
-   table[G_USER_DIRECTORY_VIDEOS] = find_folder (NSMoviesDirectory);
-+  table[G_USER_DIRECTORY_PROJECTS] = find_folder (NSDocumentDirectory);
- }
-diff --git a/glib/gutils.c b/glib/gutils.c
-index 02da41b688..90bd3bc3e7 100644
---- a/glib/gutils.c
-+++ b/glib/gutils.c
-@@ -2243,6 +2243,8 @@ load_user_special_dirs_unlocked (void)
- 
-   g_user_special_dirs[G_USER_DIRECTORY_TEMPLATES] = get_special_folder (&FOLDERID_Templates);
-   g_user_special_dirs[G_USER_DIRECTORY_VIDEOS] = get_special_folder (&FOLDERID_Videos);
-+
-+  g_user_special_dirs[G_USER_DIRECTORY_PROJECTS] = get_special_folder (&FOLDERID_Documents);
- }
- 
- #else /* default is unix */
-diff --git a/glib/gutils.h b/glib/gutils.h
-index dce1541ed7..f111938cae 100644
---- a/glib/gutils.h
-+++ b/glib/gutils.h
-@@ -248,6 +248,15 @@ typedef enum {
-   G_USER_DIRECTORY_TEMPLATES,
-   G_USER_DIRECTORY_VIDEOS,
- 
-+  /**
-+   * G_USER_DIRECTORY_PROJECTS:
-+   *
-+   * The user's Projects directory.
-+   *
-+   * Since: 2.90
-+   */
-+  G_USER_DIRECTORY_PROJECTS,
-+
-   G_USER_N_DIRECTORIES
- } GUserDirectory;
- 
-diff --git a/glib/gutilsprivate.c b/glib/gutilsprivate.c
-index 3b9206c45c..f8dac99ec0 100644
---- a/glib/gutilsprivate.c
-+++ b/glib/gutilsprivate.c
-@@ -89,6 +89,11 @@ load_user_special_dirs_from_string (const gchar *string, const gchar *home_dir,
-           directory = G_USER_DIRECTORY_VIDEOS;
-           p += strlen ("XDG_VIDEOS_DIR");
-         }
-+      else if (strncmp (p, "XDG_PROJECTS_DIR", strlen ("XDG_PROJECTS_DIR")) == 0)
-+        {
-+          directory = G_USER_DIRECTORY_PROJECTS;
-+          p += strlen ("XDG_PROJECTS_DIR");
-+        }
-       else
-         continue;
- 
--- 
-GitLab
-
diff --git a/recipes/incoming-clib/saneso.patch b/recipes/incoming-clib/saneso.patch
deleted file mode 100644
index 529a0c20..00000000
--- a/recipes/incoming-clib/saneso.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-diff --git a/Makefile-libbz2_so b/Makefile-libbz2_so
-index fb0f230..2c95a3a 100644
---- a/Makefile-libbz2_so
-+++ b/Makefile-libbz2_so
-@@ -35,13 +35,13 @@ OBJS= blocksort.o  \
-       bzlib.o
- 
- all: $(OBJS)
--	$(CC) -shared -Wl,-soname -Wl,libbz2.so.1.0 -o libbz2.so.1.0.8 $(OBJS)
-+	$(CC) -shared -Wl,-soname -Wl,libbz2.so.1 -o libbz2.so.1.0.8 $(OBJS)
- 	$(CC) $(CFLAGS) -o bzip2-shared bzip2.c libbz2.so.1.0.8
--	rm -f libbz2.so.1.0
--	ln -s libbz2.so.1.0.8 libbz2.so.1.0
-+	rm -f libbz2.so.1
-+	ln -s libbz2.so.1.0.8 libbz2.so.1
- 
- clean: 
--	rm -f $(OBJS) bzip2.o libbz2.so.1.0.8 libbz2.so.1.0 bzip2-shared
-+	rm -f $(OBJS) bzip2.o libbz2.so.1.0.8 libbz2.so.1 bzip2-shared
- 
- blocksort.o: blocksort.c
- 	$(CC) $(CFLAGS) -c blocksort.c
-
diff --git a/recipes/incoming-clib/shared-libmandoc.patch b/recipes/incoming-clib/shared-libmandoc.patch
deleted file mode 100644
index 607934c9..00000000
--- a/recipes/incoming-clib/shared-libmandoc.patch
+++ /dev/null
@@ -1,92 +0,0 @@
-This patch links libmandoc dynamically instead of statically, this
-causes the package size to be reduced by roughly 50%.
-
-See also: https://inbox.vuxu.org/mandoc-tech/2L1YC2WD8JUE5.3QGU3CQ10EGCD@8pit.net/T/#u
-
-diff --git a/Makefile b/Makefile
-index 48c4741..252e11e 100644
---- a/Makefile
-+++ b/Makefile
-@@ -367,9 +367,13 @@ WWW_INCS	 = eqn.h.html \
- 		   tbl_int.h.html \
- 		   tbl_parse.h.html
- 
-+LIBMANDOC	= libmandoc.so
-+MANDOCLIB	= -L. -lmandoc
-+
- # === USER CONFIGURATION ===============================================
- 
- include Makefile.local
-+CFLAGS		+= -fPIC
- 
- # === DEPENDENCY HANDLING ==============================================
- 
-@@ -392,7 +396,7 @@ distclean: clean
- 	rm -f Makefile.local config.h config.h.old config.log config.log.old
- 
- clean:
--	rm -f libmandoc.a $(LIBMANDOC_OBJS) $(ALL_COBJS)
-+	rm -f $(LIBMANDOC) $(LIBMANDOC_OBJS) $(ALL_COBJS)
- 	rm -f mandoc man $(MAIN_OBJS)
- 	rm -f man.cgi $(CGI_OBJS)
- 	rm -f mandocd catman catman.o $(MANDOCD_OBJS)
-@@ -432,11 +436,11 @@ base-install: mandoc demandoc soelim
- 	$(INSTALL_MAN) makewhatis.8 \
- 		$(DESTDIR)$(MANDIR)/man8/$(BINM_MAKEWHATIS).8
- 
--lib-install: libmandoc.a
-+lib-install: $(LIBMANDOC)
- 	mkdir -p $(DESTDIR)$(LIBDIR)
- 	mkdir -p $(DESTDIR)$(INCLUDEDIR)
- 	mkdir -p $(DESTDIR)$(MANDIR)/man3
--	$(INSTALL_LIB) libmandoc.a $(DESTDIR)$(LIBDIR)
-+	$(INSTALL_LIB) $(LIBMANDOC) $(DESTDIR)$(LIBDIR)
- 	$(INSTALL_LIB) eqn.h man.h mandoc.h mandoc_aux.h mandoc_parse.h \
- 		mdoc.h roff.h tbl.h $(DESTDIR)$(INCLUDEDIR)
- 	$(INSTALL_MAN) mandoc.3 mandoc_escape.3 mandoc_malloc.3 \
-@@ -485,7 +489,7 @@ uninstall:
- 	rm -f $(DESTDIR)$(SBINDIR)/$(BINM_CATMAN)
- 	rm -f $(DESTDIR)$(MANDIR)/man8/mandocd.8
- 	rm -f $(DESTDIR)$(MANDIR)/man8/$(BINM_CATMAN).8
--	rm -f $(DESTDIR)$(LIBDIR)/libmandoc.a
-+	rm -f $(DESTDIR)$(LIBDIR)/$(LIBMANDOC)
- 	rm -f $(DESTDIR)$(MANDIR)/man3/mandoc.3
- 	rm -f $(DESTDIR)$(MANDIR)/man3/mandoc_escape.3
- 	rm -f $(DESTDIR)$(MANDIR)/man3/mandoc_malloc.3
-@@ -515,23 +519,26 @@ Makefile.local config.h: configure $(TESTSRCS)
- libmandoc.a: $(MANDOC_COBJS) $(LIBMANDOC_OBJS)
- 	$(AR) rs $@ $(MANDOC_COBJS) $(LIBMANDOC_OBJS)
- 
--mandoc: $(MAIN_OBJS) libmandoc.a
--	$(CC) -o $@ $(LDFLAGS) $(MAIN_OBJS) libmandoc.a $(LDADD)
-+libmandoc.so: $(MANDOC_COBJS) $(LIBMANDOC_OBJS)
-+	$(CC) $(LDFLAGS) -shared -o $@ $(MANDOC_COBJS) $(LIBMANDOC_OBJS) $(LDADD)
-+
-+mandoc: $(MAIN_OBJS) $(LIBMANDOC)
-+	$(CC) -o $@ $(LDFLAGS) $(MAIN_OBJS) $(MANDOCLIB) $(LDADD)
- 
- man: mandoc
- 	$(LN) mandoc man
- 
--man.cgi: $(CGI_OBJS) libmandoc.a
--	$(CC) $(STATIC) -o $@ $(LDFLAGS) $(CGI_OBJS) libmandoc.a $(LDADD)
-+man.cgi: $(CGI_OBJS) $(LIBMANDOC)
-+	$(CC) $(STATIC) -o $@ $(LDFLAGS) $(CGI_OBJS) $(MANDOCLIB) $(LDADD)
- 
--mandocd: $(MANDOCD_OBJS) libmandoc.a
--	$(CC) -o $@ $(LDFLAGS) $(MANDOCD_OBJS) libmandoc.a $(LDADD)
-+mandocd: $(MANDOCD_OBJS) $(LIBMANDOC)
-+	$(CC) -o $@ $(LDFLAGS) $(MANDOCD_OBJS) $(MANDOCLIB) $(LDADD)
- 
--catman: catman.o libmandoc.a
--	$(CC) -o $@ $(LDFLAGS) catman.o libmandoc.a $(LDADD)
-+catman: catman.o $(LIBMANDOC)
-+	$(CC) -o $@ $(LDFLAGS) catman.o $(MANDOCLIB) $(LDADD)
- 
--demandoc: $(DEMANDOC_OBJS) libmandoc.a
--	$(CC) -o $@ $(LDFLAGS) $(DEMANDOC_OBJS) libmandoc.a $(LDADD)
-+demandoc: $(DEMANDOC_OBJS) $(LIBMANDOC)
-+	$(CC) -o $@ $(LDFLAGS) $(DEMANDOC_OBJS) $(MANDOCLIB) $(LDADD)
- 
- soelim: $(SOELIM_COBJS) soelim.o
- 	$(CC) -o $@ $(LDFLAGS) $(SOELIM_COBJS) soelim.o
diff --git a/recipes/incoming-clib/skip-meaningless-pthread-rwlock-test.patch b/recipes/incoming-clib/skip-meaningless-pthread-rwlock-test.patch
deleted file mode 100644
index abe65cad..00000000
--- a/recipes/incoming-clib/skip-meaningless-pthread-rwlock-test.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/gettext-tools/gnulib-tests/test-pthread-rwlock.c b/gettext-tools/gnulib-tests/test-pthread-rwlock.c
-index 90d6ac5..61009a7 100644
---- a/gettext-tools/gnulib-tests/test-pthread-rwlock.c
-+++ b/gettext-tools/gnulib-tests/test-pthread-rwlock.c
-@@ -198,6 +198,8 @@ test_rwlock (void)
- int
- main ()
- {
-+  fputs ("Skipping meaningless test which is expected to deadlock\n", stderr);
-+  return 77;
- #if HAVE_DECL_ALARM
-   /* Declare failure if test takes too long, by using default abort
-      caused by SIGALRM.  */
diff --git a/recipes/incoming-clib/skip-tests-musl.patch b/recipes/incoming-clib/skip-tests-musl.patch
deleted file mode 100644
index 8b3e9214..00000000
--- a/recipes/incoming-clib/skip-tests-musl.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-As upstream notes:
-
-# Note: This test fails on Linux with musl libc versions that don't support
-# the BIG5 encoding in 'iconv'.
-
-diff --git a/gettext-tools/tests/msgcat-22 b/gettext-tools/tests/msgcat-22
-index 6047188..abe5877 100755
---- a/gettext-tools/tests/msgcat-22
-+++ b/gettext-tools/tests/msgcat-22
-@@ -6,6 +6,8 @@
- # Note: This test fails on Linux with musl libc versions that don't support
- # the GB18030 encoding in 'iconv'.
- 
-+exit 77
-+
- cat <<\EOF > mcat-test22.po
- msgid ""
- msgstr ""
-diff --git a/gettext-tools/tests/msgconv-2 b/gettext-tools/tests/msgconv-2
-index d286cda..d96c487 100755
---- a/gettext-tools/tests/msgconv-2
-+++ b/gettext-tools/tests/msgconv-2
-@@ -7,6 +7,8 @@
- # Note: This test fails on Linux with musl libc versions that don't support
- # the BIG5 encoding in 'iconv'.
- 
-+Exit 77
-+
- cat <<\EOF > mco-test2.po
- # Chinese translation for GNU gettext messages.
- #
-diff --git a/gettext-tools/tests/msgconv-8 b/gettext-tools/tests/msgconv-8
-index 207b0f0..618de0f 100755
---- a/gettext-tools/tests/msgconv-8
-+++ b/gettext-tools/tests/msgconv-8
-@@ -6,6 +6,8 @@
- # Note: This test fails on Linux with musl libc versions that don't support
- # the GB18030 encoding in 'iconv'.
- 
-+exit 77
-+
- cat <<\EOF > mco-test8.po
- msgid ""
- msgstr ""
-diff --git a/gettext-tools/tests/msgmerge-compendium-6 b/gettext-tools/tests/msgmerge-compendium-6
-index 59eb00e..c4be0b2 100755
---- a/gettext-tools/tests/msgmerge-compendium-6
-+++ b/gettext-tools/tests/msgmerge-compendium-6
-@@ -10,6 +10,8 @@
- # Note: This test fails on Linux with musl libc versions and on Solaris 11
- # (OpenIndiana, OmniOS) that don't support the EUC-KR encoding in 'iconv'.
- 
-+Exit 77
-+
- : ${MSGCONV=msgconv}
- ${MSGCONV} --to-code=UTF-8 -o mm-ko.utf-8.pot "$wabs_srcdir"/mm-ko.ascii.pot
- 
-diff --git a/gettext-tools/tests/xgettext-python-3 b/gettext-tools/tests/xgettext-python-3
-index 1e13b57..7cd480d 100755
---- a/gettext-tools/tests/xgettext-python-3
-+++ b/gettext-tools/tests/xgettext-python-3
-@@ -6,6 +6,8 @@
- # Note: This test fails on Linux with musl libc versions that don't support
- # the EUC-JP encoding in 'iconv'.
- 
-+Exit 77
-+
- cat <<\EOF > xg-py-3a.py
- #!/usr/bin/env python
- # TRANSLATORS: Fran���ois Pinard is a hero.
diff --git a/recipes/incoming-clib/skip-unicode-16-tests.patch b/recipes/incoming-clib/skip-unicode-16-tests.patch
deleted file mode 100644
index f1c6dc67..00000000
--- a/recipes/incoming-clib/skip-unicode-16-tests.patch
+++ /dev/null
@@ -1,89 +0,0 @@
-diff --git a/gettext-tools/gnulib-tests/unicase/test-mapping-part1.h b/gettext-tools/gnulib-tests/unicase/test-mapping-part1.h
-index d64bb32..f497ad4 100644
---- a/gettext-tools/gnulib-tests/unicase/test-mapping-part1.h
-+++ b/gettext-tools/gnulib-tests/unicase/test-mapping-part1.h
-@@ -22,6 +22,25 @@
- 
- #include "macros.h"
- 
-+#if HAVE_LIBUNISTRING
-+/* The generated mappings in this source tree target Unicode 16.0.0.
-+   Skip direct comparisons when an external libunistring provides a newer
-+   Unicode database than the expected tables embedded in these tests.  */
-+extern int _libunistring_unicode_version;
-+
-+static int
-+should_skip_for_external_libunistring_version (void)
-+{
-+  return _libunistring_unicode_version > 0x1000;
-+}
-+#else
-+static int
-+should_skip_for_external_libunistring_version (void)
-+{
-+  return 0;
-+}
-+#endif
-+
- /* Pair of Unicode characters.  */
- typedef struct { ucs4_t ch; ucs4_t value; } pair_t;
- 
-diff --git a/gettext-tools/gnulib-tests/unicase/test-mapping-part2.h b/gettext-tools/gnulib-tests/unicase/test-mapping-part2.h
-index aa14384..80fb2b6 100644
---- a/gettext-tools/gnulib-tests/unicase/test-mapping-part2.h
-+++ b/gettext-tools/gnulib-tests/unicase/test-mapping-part2.h
-@@ -19,6 +19,9 @@
- int
- main ()
- {
-+  if (should_skip_for_external_libunistring_version ())
-+    return 77;
-+
-   unsigned int c;
-   size_t i;
- 
-diff --git a/gettext-tools/gnulib-tests/unictype/test-predicate-part1.h b/gettext-tools/gnulib-tests/unictype/test-predicate-part1.h
-index caf2dc2..20a35df 100644
---- a/gettext-tools/gnulib-tests/unictype/test-predicate-part1.h
-+++ b/gettext-tools/gnulib-tests/unictype/test-predicate-part1.h
-@@ -22,6 +22,26 @@
- 
- #include "macros.h"
- 
-+#if HAVE_LIBUNISTRING
-+/* The generated tables in this source tree target Unicode 16.0.0.
-+   When these tests are linked against an external libunistring with a newer
-+   Unicode database, direct table equality checks become stale and should be
-+   skipped rather than reported as regressions in gettext's bundled data.  */
-+extern int _libunistring_unicode_version;
-+
-+static int
-+should_skip_for_external_libunistring_version (void)
-+{
-+  return _libunistring_unicode_version > 0x1000;
-+}
-+#else
-+static int
-+should_skip_for_external_libunistring_version (void)
-+{
-+  return 0;
-+}
-+#endif
-+
- /* Interval of Unicode characters.  */
- typedef struct { ucs4_t start; ucs4_t end; } interval_t;
- 
-diff --git a/gettext-tools/gnulib-tests/unictype/test-predicate-part2.h b/gettext-tools/gnulib-tests/unictype/test-predicate-part2.h
-index b4eef82..ac5071d 100644
---- a/gettext-tools/gnulib-tests/unictype/test-predicate-part2.h
-+++ b/gettext-tools/gnulib-tests/unictype/test-predicate-part2.h
-@@ -19,6 +19,9 @@
- int
- main ()
- {
-+  if (should_skip_for_external_libunistring_version ())
-+    return 77;
-+
-   unsigned int c;
-   size_t i;
- 
diff --git a/recipes/incoming-clib/subpixel.patch b/recipes/incoming-clib/subpixel.patch
deleted file mode 100644
index e5da0d74..00000000
--- a/recipes/incoming-clib/subpixel.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Naur a/include/freetype/config/ftoption.h b/include/freetype/config/ftoption.h
---- a/include/freetype/config/ftoption.h	2019-02-23 09:09:06.000000000 +0000
-+++ b/include/freetype/config/ftoption.h	2019-03-17 11:42:04.315011932 +0000
-@@ -126,7 +126,7 @@
-    * macro is not defined, FreeType offers alternative LCD rendering
-    * technology that produces excellent output without LCD filtering.
-    */
--/* #define FT_CONFIG_OPTION_SUBPIXEL_RENDERING */
-+#define FT_CONFIG_OPTION_SUBPIXEL_RENDERING
- 
- 
-   /**************************************************************************
diff --git a/recipes/incoming-clib/table-validation-modules.patch b/recipes/incoming-clib/table-validation-modules.patch
deleted file mode 100644
index 968475e3..00000000
--- a/recipes/incoming-clib/table-validation-modules.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -Naur a/modules.cfg b/modules.cfg
---- a/modules.cfg	2019-02-23 09:06:07.000000000 +0000
-+++ b/modules.cfg	2019-03-15 17:13:56.465952994 +0000
-@@ -111,7 +111,7 @@
- 
- # TrueType GX/AAT table validation.  Needs `ftgxval.c' below.
- #
--# AUX_MODULES += gxvalid
-+AUX_MODULES += gxvalid
- 
- # Support for streams compressed with gzip (files with suffix .gz).
- #
-@@ -130,7 +130,7 @@
- 
- # OpenType table validation.  Needs `ftotval.c' below.
- #
--# AUX_MODULES += otvalid
-+AUX_MODULES += otvalid
- 
- # Auxiliary PostScript driver component to share common code.
- #
diff --git a/recipes/incoming-clib/tests-machine-id.patch b/recipes/incoming-clib/tests-machine-id.patch
deleted file mode 100644
index 66648984..00000000
--- a/recipes/incoming-clib/tests-machine-id.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 5cf08a9a1041a9dc9975371fb62f8f22c3be76c4 Mon Sep 17 00:00:00 2001
-From: Natanael Copa <ncopa@alpinelinux.org>
-Date: Wed, 3 Apr 2024 21:25:04 +0200
-Subject: [PATCH 2/3] tests: skip gio tests which fails with missing machine-id
-
-Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
----
- gio/tests/meson.build | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/gio/tests/meson.build b/gio/tests/meson.build
-index f04ff43ff..71ec09750 100644
---- a/gio/tests/meson.build
-+++ b/gio/tests/meson.build
-@@ -46,6 +46,8 @@ if glib_build_shared
-   subdir('modules')
- endif
- 
-+have_machine_id = import('fs').is_file('/etc/machine-id')
-+
- #  Test programs buildable on all platforms
- gio_tests = {
-   'application-command-line': {},
-@@ -98,7 +100,7 @@ gio_tests = {
-     'install_rpath' : installed_tests_execdir,
-     # FIXME: https://gitlab.gnome.org/GNOME/glib/-/issues/1392
-     # FIXME: https://gitlab.gnome.org/GNOME/glib/-/issues/3148
--    'can_fail' : host_system in ['darwin', 'windows', 'gnu'],
-+    'can_fail' : host_system in ['darwin', 'windows', 'gnu'] or not have_machine_id,
-   },
-   'inet-address' : {},
-   'io-stream' : {},
-@@ -147,7 +149,7 @@ gio_tests = {
-     'extra_programs': host_system != 'windows' ? ['dbus-launch'] : [],
-     # FIXME: https://gitlab.gnome.org/GNOME/glib/-/issues/1392
-     # FIXME: https://gitlab.gnome.org/GNOME/glib/-/issues/3148
--    'can_fail' : host_system in ['darwin', 'gnu'],
-+    'can_fail' : host_system in ['darwin', 'gnu'] or not have_machine_id,
-   },
-   'win32-appinfo' : {},
- }
diff --git a/recipes/incoming-clib/tests.patch b/recipes/incoming-clib/tests.patch
deleted file mode 100644
index e83be096..00000000
--- a/recipes/incoming-clib/tests.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-These tests only work with read/write access to /dev/tty0 (or similar)
-
---- a/tests/testsuite.at
-+++ b/tests/testsuite.at
-@@ -8,7 +8,6 @@
- 
- m4_include([unittest.at])
- 
--m4_include([utils.at])
- m4_include([libcommon.at])
- m4_include([libkeymap.at])
- m4_include([libkbdfile.at])
diff --git a/recipes/incoming-clib/valgrind.patch b/recipes/incoming-clib/valgrind.patch
deleted file mode 100644
index 3ca04bc4..00000000
--- a/recipes/incoming-clib/valgrind.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-Ref https://github.com/wismill/kbd/commit/0f410510f586e659fbdba9cfc3846be343b8dd30
-
---- a/tests/unittest.at
-+++ b/tests/unittest.at
-@@ -5,5 +5,5 @@
- ]])
- 
- m4_define([UNITTEST_MEMCHECK],[
--AT_CHECK([UNITTEST_RUN_MEMCHECK([$1])],[$2],[$3],[$4],[$5],[$6])
-+AT_CHECK([$1],[$2],[$3],[$4],[$5],[$6])
- ])
diff --git a/scripts/farm/farm-down.sh b/scripts/farm/farm-down.sh
index 206f81c8..5dba6231 100755
--- a/scripts/farm/farm-down.sh
+++ b/scripts/farm/farm-down.sh
@@ -76,7 +76,7 @@ if [ "${NO_PROMOTE:-}" != "1" ] && [ "$harvested" -gt 0 ]; then
   # NO se promovían/firmaban. Recorrer las mismas colas que el worker (cache-hit en lo cosechado).
   # El guard `ls "$Q"/*.toml` salta las colas vacías, así que listar todas es inocuo.
   echo "==> promote+firma final (cache-hit en lo cosechado)"
-  for Q in ${QUEUES:-recipes/incoming recipes/incoming-go recipes/incoming-clib}; do
+  for Q in ${QUEUES:-recipes/incoming recipes/incoming-go}; do
     ls "$Q"/*.toml >/dev/null 2>&1 || continue
     echo "  --- promoviendo $Q"
     QUEUE="$Q" scripts/build-farm.sh || echo "  (build-farm $Q devolvió error; revisá logs)"
diff --git a/scripts/farm/farm-worker-loop.sh b/scripts/farm/farm-worker-loop.sh
index eb8e57fd..0d3e3e7a 100755
--- a/scripts/farm/farm-worker-loop.sh
+++ b/scripts/farm/farm-worker-loop.sh
@@ -84,8 +84,18 @@ DISK_HIGH="${DISK_HIGH:-82}"
 # build-farm hace `rm -rf work/farm` al inicio ⇒ construirlas EN SERIE (una por vuelta) es seguro,
 # sin colisión. El glob es TOP-LEVEL (`$Q/*.toml`), así que `recipes/incoming/.deferred/` (24 recetas
 # aparcadas con diagnóstico, p.ej. git con muro en libgit.a) NO se muele — es un subdir a propósito.
-# incoming-clib: libs C (toolkit/foundational) que el worker SELLA pero el cron de cosecha-go IGNORA
-# (son build-deps, se usan vía catálogo; no tienen binario que el gate Go pueda smoke-testear).
+# `incoming-clib` SE RETIRÓ el 2026-09-01: era la cola de staging de las tandas base-system/foot, y
+# sus recetas ya se habían PROMOVIDO a canónicas (`recipes/`) commit a commit —«promover 7 tier-2 a
+# canónicas», «promover cadena crypto», «promover tllist/utf8proc/scdoc/fcft/foot»—. Lo que quedaba
+# eran 0 recetas y 26 PARCHES sueltos. Y eran inalcanzables por construcción, no por descuido:
+# `fetch::apply_patches` resuelve `recipe.base_dir.join(nombre)` y `base_dir` es el directorio de la
+# receta, SIN fallback a `recipes/` ⇒ un parche en una cola sin recetas no lo puede pedir nadie.
+# ⚠ Corolario para cuando se promueva una cola: los `.patch` NO viajan con la receta. Promover deja
+#   la cola en un estado que parece vivo (tiene ficheros) y no muele nada.
+#
+# `incoming-go` NO existe como directorio y se queda en la lista A PROPÓSITO: es la cola aislada del
+# frente Go, y el guard `ls "$Q"/*.toml` salta las colas vacías. Quitarla sería el error que los dos
+# párrafos de abajo documentan, pero al revés: el día que ese frente la recree, nadie la molería.
 #
 # ⚠ EL ORDEN IMPORTA Y LAS COLAS GNOME VAN ANTES DE KDE (2026-08-06). Este default se escribió cuando
 # `incoming-gnome-onda1` era el frente GNOME entero, y quedó fósil: faltaban `incoming-gnome` (86
@@ -119,7 +129,7 @@ DISK_HIGH="${DISK_HIGH:-82}"
 # ⇒ La comprobación que decide NO es `diff` de las recetas sino `hammer hash`: la resolución de deps
 #   es hermano→padre, así que dos ficheros idénticos en colas distintas PUEDEN sellar distinto.
 # Orden: las colas con deuda van ANTES de las cerradas (kde 163/163, wlr 129/129 salen por cache-hit).
-QUEUES="${QUEUES:-recipes/incoming recipes/incoming-go recipes/incoming-clib recipes/incoming-gnome recipes/incoming-cosmic recipes/incoming-kde recipes/incoming-wlr}"
+QUEUES="${QUEUES:-recipes/incoming recipes/incoming-go recipes/incoming-gnome recipes/incoming-cosmic recipes/incoming-kde recipes/incoming-wlr}"
 
 # REBUILD DEL BINARIO AL ARRANCAR (2026-07-18): el hammer horneado en la imagen golden ENVEJECE.
 # Caso real que costó una noche de KDE: la golden del 29-jun traía un hammer sin el fix del overlay