# 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"] # ── EL SERVICIO QUE ESTE PAQUETE TRAE (SDD 30) ────────────────────────────────────────────────── [[service]] label = "upowerd" id = "01HQAR53D4M2NBV8KZTYXFQA24" exec = "/usr/libexec/upowerd" restart = { initial_ms = 500, max_ms = 20000 }