Files
hammer/recipes/incoming-gnome/upower.toml
T
sergioandClaude Opus 5 fe474dab63 licencias: 994 de 1141 (87%) — cerradas las familias Qt, freedesktop, kernel.org y PyPI
Tercera tanda curada, agrupada por la URL DE FUENTE de cada receta (que es la evidencia que
el nombre no da): los once módulos Qt sin prefijo, freedesktop (dbus, libinput, libevdev,
libdisplay-info, poppler, pulseaudio, upower, NetworkManager, ModemManager, polkit),
kernel.org (los tres kernels, linux-headers, git, iproute2, libuuid) y PyPI.

Los kernels llevan `GPL-2.0-only WITH Linux-syscall-note` explícita. No es adorno: sin esa
excepción, todo binario de espacio de usuario que hace un syscall sería obra derivada del
kernel. Es exactamente el tipo de dato que un campo de licencia existe para no perder.

Quedan 147 sin declarar: 69 de GitHub donde la propia API dice NOASSERTION (hay que abrir
el fuente), 20 de tawasuyu —que son nuestras o del otro agente, así que la licencia la
decide el usuario, no yo— y el resto repartido en GNOME, gitlab.freedesktop y sueltos.
Más 71 con SPDX ambiguo pendientes de desambiguar (`licencias.sh --revisar`).

Hashes verificados otra vez sobre 20 recetas tocadas: 20 idénticos, 0 cambiados.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-07 13:29:31 -04:00

59 lines
3.2 KiB
TOML

# upower 1.90.10 — el servicio de energía (batería, carga, suspensión por batería crítica) y su
# librería cliente `libupower-glib`, de donde sale el typelib `UPowerGlib-1.0`.
#
# POR QUÉ ENTRA: gnome-shell lo importa desde JavaScript sin condicional
# (`js/misc/dependencies.js`: `import 'gi://UPowerGlib?version=1.0'`). O sea que **es dep de RUNTIME
# del shell** aunque no aparezca en su meson.build — el indicador de batería del panel se apoya en
# esto. Se destapó arrancando la sesión, no compilando.
#
# FUENTE: el archivo de gitlab.freedesktop.org y no `upower.freedesktop.org/releases/`, que hoy sirve
# un índice generado por `tree` sin los tarballs de la serie 1.90. Es el mismo patrón que ya usan
# cairo, libdrm, libinput, pixman y modemmanager en este repo.
#
# LAS TRES PERILLAS QUE HAY QUE FIJAR A MANO, y las tres por el mismo motivo — el `auto` de upower
# significa «preguntale a un pkg-config de systemd», que acá no existe:
#
# -Dudevrulesdir / -Dudevhwdbdir: con `auto` hace `udev_dep.get_variable(pkgconfig: 'udev_dir')`
# (meson.build:97 y :103). Nuestro `udev-pc` declara la variable **`udevdir`**, no `udev_dir` —
# el nombre con guión bajo es de systemd-udev; el sin guión es el histórico de eudev, que es el que
# copiamos. En vez de tocar `udev-pc` (que arrastraría a libudev-zero y sus 51 dependientes) se
# fijan los dos directorios acá, que es lo que la opción existe para permitir.
#
# -Dsystemdsystemunitdir=no: con la cadena vacía hace `dependency('systemd')` DURA
# (meson.build:120-122). El valor `no` está contemplado por upstream y saltea la instalación de la
# unit (src/meson.build:107). Acá PID1 es arje-zero.
#
# -Dintrospection=enabled es el punto de todo esto. `-Didevice=disabled` saca libimobiledevice (el
# soporte de batería de iPhone), que no está en el corpus. `-Dpolkit=enabled` porque polkit YA está
# sellada y es lo que decide quién puede suspender.
#
# ISLA DINÁMICA: el typelib nombra `libupower-glib.so.3` y gjs la dlopea.
name = "upower"
version = "1.90.10"
license = "GPL-2.0-or-later"
[source]
tarball = "https://gitlab.freedesktop.org/upower/upower/-/archive/v1.90.10/upower-v1.90.10.tar.gz"
sha256 = "7fcd51bece2526dbee5170feb3ffd1adab5b0cd023575f1fd119d969b73f4b90"
[build]
compiler = "zig-cc"
target = "x86_64-linux-musl"
link = "dynamic"
[build.phases]
configure = '''
set -e
PKG_CONFIG_PATH=/usr/lib/pkgconfig:/usr/share/pkgconfig PYTHONPATH=/usr/lib/python3.12/site-packages meson setup output \
--prefix=/usr --buildtype=release --wrap-mode=nodownload \
-Ddefault_library=both -Dos_backend=linux -Dintrospection=enabled \
-Didevice=disabled -Dpolkit=enabled -Dman=false -Dgtk-doc=false \
-Dudevrulesdir=/usr/lib/udev/rules.d -Dudevhwdbdir=/usr/lib/udev/hwdb.d \
-Dsystemdsystemunitdir=no -Dc_args=-Wno-error=date-time
'''
compile = "PYTHONPATH=/usr/lib/python3.12/site-packages ninja -C output"
install = "PYTHONPATH=/usr/lib/python3.12/site-packages DESTDIR=/out meson install -C output --no-rebuild"
[deps]
build = ["meson", "samurai", "python3", "pkgconf", "gettext-tiny", "py3-setuptools", "gobject-introspection", "gi-foreign-girs", "glib", "glib-introspected", "libgudev", "udev-pc", "libudev-zero", "polkit", "libffi", "pcre2", "zlib-shared", "expat", "dbus-shared"]