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 911Rust 57Shell 37Markdown 321282 Sutichaykuna

receta: bluez — la pila Bluetooth, sellada (el otro medio punto 8 de PUBLICABLE)

  bluez  b3:21bee949122f770a319b806b83d23fa2bddc958252f6de7e27fffa5a75a3315a  (28 MB, 31 ficheros)

Con esto queda cerrado el punto 8 de PUBLICABLE (docs/20): «cups y bluez».

El fallo del primer intento vale más que la receta: con [deps] build=["glib", ...] el configure
corta con «Package 'libpcre2-8', required by 'glib-2.0', not found». No falta una dep de bluez:
faltan las TRANSITIVAS del .pc de glib. Un enlace estático resuelve la cadena entera en el punto de
enlace, así que pcre2/libffi/zlib hay que materializarlas aunque bluez no las nombre — es el mismo
juego de cuatro que ya declaran cairo, appstream y adwaita-hello, y que nadie había escrito por qué.

Perillas leídas del «configure --help» del tarball pineado:
- --disable-obex: obexd pide libical, y libical existe SÓLO en incoming-gnome. Una receta del
  corpus resuelve sibling-first y después el catálogo PADRE, nunca una cola hermana ⇒ desde acá no
  se alcanza. Encenderlo exige promover libical, que es otra unidad de trabajo.
- --disable-manpages: las genera rst2man (docutils); no es receta.
- --disable-cups: el backend de impresión por Bluetooth. cups YA es receta desde hoy, o sea que
  esto se puede encender — queda anotado como lo próximo, no como olvido.

Declara [[service]] bluetoothd; el exec VERIFICADO contra el artefacto: /usr/lib/bluetooth/bluetoothd.
Y va escrito que esto no enciende el bluetooth de nadie: falta dbus vivo y que el perfil lo habilite.

0d93435fd835de95fa3abbe6bd8cf4441a41e48b · ruwaq Sergio · (1 killa ñawpaq) · tayta 3f2620f6b · kay commitpi sach'ata qhaway

Semántico sayk'uy

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

1 qillqakuna · +56 −0

diff --git a/recipes/bluez.toml b/recipes/bluez.toml
new file mode 100644
index 00000000..21c78752
--- /dev/null
+++ b/recipes/bluez.toml
@@ -0,0 +1,56 @@
+# BlueZ 5.87 — la pila Bluetooth de Linux (`bluetoothd` + `bluetoothctl`). El otro pendiente del
+# punto 8 de PUBLICABLE, junto con `cups`.
+#
+# ── QUÉ ENTRA Y QUÉ NO, Y POR QUÉ ─────────────────────────────────────────────────────────────
+# Todas las perillas salen del `configure --help` del tarball PINEADO, no de un APKBUILD ajeno:
+#
+#   --disable-obex      obexd (transferencia de ficheros) pide `libical`, y libical existe SÓLO en
+#                       `incoming-gnome`. Una receta del corpus resuelve sibling-first y después el
+#                       catálogo PADRE, **nunca una cola hermana** ⇒ desde acá no se alcanza.
+#                       Encenderlo exigiría promover libical al corpus, que es otra unidad de
+#                       trabajo. Se apaga por declaración para que el configure no la busque y la
+#                       tome del sysroot del lab (el lab NO entra en `hash_inputs`).
+#   --disable-manpages  las man pages se generan con `rst2man` (docutils, Python). No es receta.
+#   --disable-systemd   el init es arje.
+#   --disable-udev      sólo afecta a `hid2hci` y a las reglas; `bluetoothd` no lo necesita.
+#   --disable-cups      el backend de impresión por Bluetooth. `cups` YA es receta del corpus, así
+#                       que esto se puede encender — pero acopla las dos recetas y la primera
+#                       versión de cada una conviene tenerla sellada por separado. Queda anotado
+#                       como lo próximo, no como olvido.
+#   --disable-shared    el lab exporta LDFLAGS=-static: un .so no cierra el enlace.
+#
+# ⚠ ESTO NO ENCIENDE EL BLUETOOTH DE NADIE. `bluetoothd` necesita el bus de sistema (dbus) vivo y
+# el perfil que lo habilite (SDD 30), y el kernel con BT compilado. La receta es la pieza, no la
+# capacidad — la distinción que este repo ya pagó con `foot` y con las fuentes.
+name    = "bluez"
+version = "5.87"
+license = "GPL-2.0-or-later AND LGPL-2.1-or-later"
+
+[source]
+tarball = "https://www.kernel.org/pub/linux/bluetooth/bluez-5.87.tar.xz"
+sha256  = "26bdcf2cebd7310c6f598850606b037ef0c515fe6608ebc54d22c50c4c32b35f"
+
+[build]
+compiler = "zig-cc"
+target   = "x86_64-linux-musl"
+link     = "static"
+
+[build.phases]
+configure = './configure --build=$CBUILD --host=$CHOST --prefix=/usr --sysconfdir=/etc --localstatedir=/var --libexecdir=/usr/lib --disable-shared --enable-static --enable-library --enable-threads --disable-systemd --disable-obex --disable-manpages --disable-cups --disable-udev --with-dbusconfdir=/usr/share'
+compile   = 'make'
+install   = 'make DESTDIR=/out install'
+
+[[service]]
+label   = "bluetoothd"
+id      = "01HQAR53D4M2NBV8KZTYXFQA2A"
+exec    = "/usr/lib/bluetooth/bluetoothd --nodetach"
+scope   = "system"
+restart = { initial_ms = 500, max_ms = 20000 }
+
+# ⚠ `pcre2`/`libffi`/`zlib` NO son caprichos ni deps de bluez: son lo que pide el `.pc` de glib.
+# Con `glib` a secas el configure corta con «Package 'libpcre2-8', required by 'glib-2.0', not
+# found» — un enlace estático resuelve la cadena ENTERA en el punto de enlace, así que las
+# transitivas de pkg-config hay que materializarlas igual. Es el mismo juego de cuatro que declaran
+# cairo, appstream y adwaita-hello. `expat` entra por el `.pc` de dbus.
+[deps]
+build = ["glib", "dbus", "readline", "ncurses", "pkgconf", "pcre2", "libffi", "zlib", "expat"]