gioser

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 1184Shell 70Rust 62Markdown 501503 Sutichaykuna

Etapa G: git diferido con diagnóstico — compila, muro en static-link de helpers

git compila entero (REG_STARTEND/regex y -pie resueltos) pero el link -static de
git-http-backend/daemon/git-% falla 'ld: failed to set dynamic section sizes'
(no es curl ni regex; hipótesis CET/.note.gnu.property + PIC mixto de las libs).
El más duro de la cola C, como gmp en las libs. Próximo: V=1 + -fcf-protection.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

9e344c2c6cd0b72630ca8769b36d8b8b1a0f1775 · ruwaq sergio · (3 killa ñawpaq) · tayta 19fd683cc · kay commitpi sach'ata qhaway

Semántico sayk'uy

Mana ima sutichaypas t'ikrakurqanchu: qillqalla, yachachiylla utaq willaylla t'ikrakurqan.

2 qillqakuna · +38 −54

diff --git a/recipes/incoming/.deferred/git.toml b/recipes/incoming/.deferred/git.toml
new file mode 100644
index 00000000..c099d4ee
--- /dev/null
+++ b/recipes/incoming/.deferred/git.toml
@@ -0,0 +1,38 @@
+# git 2.54.0 — VCS (C, Makefile con knobs, NO autotools). LEAN estático: core sin gui/docs/perl/i18n.
+# Libs del corpus: zlib + curl (https) + openssl (crypto) + expat (http-push) + pcre2 (grep -P).
+# De-Alpinizada: gcc, -static -no-pie (zlib non-PIC). NO_PERL/PYTHON/TCLTK/GETTEXT = lean.
+name    = "git"
+version = "2.54.0"
+[source]
+tarball = "https://www.kernel.org/pub/software/scm/git/git-2.54.0.tar.xz"
+sha256  = "f689162364c10de79ef89aa8dbf48731eb057e34edbbd20aca510ce0154681a3"
+[build]
+compiler = "gcc"
+target   = "x86_64-linux-musl"
+link     = "static"
+flags    = []
+[build.phases]
+compile = '''
+sed -i '/^PROGRAM_OBJS += daemon.o/d' Makefile
+make -j"$(nproc)" prefix=/usr CC=gcc \
+	NO_GETTEXT=1 NO_TCLTK=1 NO_PYTHON=1 NO_PERL=1 NO_GITWEB=1 NO_SYS_POLL_H=1 NO_REGEX=NeedsStartEnd NO_CURL=1 NO_EXPAT=1 \
+	USE_LIBPCRE2=1 \
+	CFLAGS="-O2 -fno-pie" \
+	LDFLAGS="-static -no-pie -L/usr/lib" \
+	all
+'''
+install = '''
+make prefix=/usr DESTDIR=/out NO_GETTEXT=1 NO_TCLTK=1 NO_PYTHON=1 NO_PERL=1 NO_GITWEB=1 \
+	NO_CURL=1 NO_REGEX=NeedsStartEnd NO_INSTALL_HARDLINKS=1 install
+'''
+[deps]
+build = ["zlib", "openssl", "pcre2"]
+
+# DEFERIDO (2026-06-26): git COMPILA entero (resueltos: REG_STARTEND via ./configure del lab que el
+# campo configure NO debe pisar; -fno-pie; libs zlib/openssl/pcre2). MURO: el link totalmente
+# estático de los binarios helper (git-http-backend, git-daemon, git-%) falla con
+# `ld: failed to set dynamic section sizes: bad value`. NO es curl (NO_CURL=1 no lo arregla) ni regex.
+# Hipótesis: gcc15/musl emite .note.gnu.property (CET) y/o las libs estáticas tienen consistencia
+# PIC mixta ⇒ ld rompe al armar el ejecutable -static. Próximo intento: build con V=1 para ver el
+# comando de link exacto de git-http-backend; probar -fcf-protection=none / -Wl,-z,... / rebuildar
+# las libs con -fPIC consistente. El core `git` linkea antes del fallo (binario existe).
diff --git a/recipes/incoming/git.toml b/recipes/incoming/git.toml
deleted file mode 100644
index 461fc18f..00000000
--- a/recipes/incoming/git.toml
+++ /dev/null
@@ -1,54 +0,0 @@
-# Importada de Alpine aports por `hammer import-alpine` (Etapa G). PUNTO DE PARTIDA — pero
-# YA trae los parches de musl de Alpine (lo que un import de nix pierde). Pendiente: el
-# sha256 del tarball (el wrapper lo calcula), y adaptar build/install del shell de abuild.
-name    = "git"
-version = "2.54.0"
-
-[source]
-tarball = "https://www.kernel.org/pub/software/scm/git/git-2.54.0.tar.xz"
-# FIXME sha256: el wrapper lo calcula (Alpine publica sha512). sha512 de Alpine:
-# sha512 = "cb363917124edc245c9f6745e6e0c4093990275b4d57f9d2213c655b304ac81b05ece8d88546122727495ebc48a5ae19ab166a3ee43b6b8c68da488ac0270064"
-sha256  = "f689162364c10de79ef89aa8dbf48731eb057e34edbbd20aca510ce0154681a3"
-patches = ["fix-t4219-with-sticky-bit.patch"]
-
-[build]
-compiler = "zig-cc"
-target   = "x86_64-linux-musl"
-link     = "static"
-flags    = []
-
-[build.phases]
-# de build() de Alpine (traducido; el lab provee $CBUILD/$CHOST — Etapa G Fase 3; revisá --shared para estático):
-compile = '''
-_abuild_phase() {
-make prefix=/usr \
-		DESTDIR="/out" \
-		perllibdir="$(_perl_config vendorlib)" \
-		all
-
-	make -C contrib/subtree prefix=/usr DESTDIR="/out"
-	make -C contrib/diff-highlight prefix=/usr DESTDIR="/out"
-
-	if [ -n "$_full_build" ]; then
-		# generate manpages outside of package()
-		make prefix=/usr man
-
-		make prefix=/usr -C contrib/credential/libsecret
-	fi
-}
-_abuild_phase
-'''
-# de package() de Alpine (traducido $pkgdir→/out):
-install = '''
-_abuild_phase() {
-make -C t prefix=/usr DESTDIR="/out" \
-		perlibdir="$(_perl_config vendorlib)" \
-		all
-}
-_abuild_phase
-'''
-
-# depends de runtime de Alpine (NO build-deps): perl
-
-[deps]
-build = ["asciidoc", "python3", "tcl", "tk", "libsecret", "glib"]