# swaylock 1.8.0 — el bloqueo de pantalla. Junto a swayidle cierra el ciclo «me levanto de la
# máquina y queda protegida», que es requisito para usar la distro en serio, no sólo demostrarla.
#
# ── PAM SÍ SE PUEDE, Y CONVIENE MIRARLO DOS VECES ──────────────────────────────────────────────
# «PAM» figura entre las tres deudas aparcadas del frente GNOME, así que la reacción natural es
# darlo por bloqueado. Pero acá no lo está, por dos razones comprobadas:
#   · en swaylock PAM es una OPCIÓN, no un requisito:
#       libpam = cc.find_library('pam', required: get_option('pam'))
#       crypt  = cc.find_library('crypt', required: not libpam.found())
#     o sea que sin PAM cae a `crypt`, que valida contra /etc/shadow.
#   · y además **`linux-pam` SÍ está en el corpus** — lo que estaba aparcado era la integración de
#     PAM del stack GNOME, no la biblioteca.
# ⇒ Se activa PAM, que es la vía correcta para autenticar en un sistema real. La lección: una deuda
#   «aparcada» nombra un frente concreto, no una palabra; conviene verificar antes de heredar el veto.
name    = "swaylock"
version = "1.8.0"
license = "MIT"

[source]
tarball = "https://github.com/swaywm/swaylock/releases/download/v1.8.0/swaylock-1.8.0.tar.gz"
sha256  = "6a1175442380b87b2d2868c4a5366ee3592163158d02e3a7fbf3a0bfe07d8b00"

[build]
compiler    = "zig-cc"
target      = "x86_64-linux-musl"
link        = "dynamic"
zig_version = "0.13.0"

[build.phases]
configure = "meson setup output --prefix=/usr --buildtype=release --wrap-mode=nodownload -Dwerror=false -Dman-pages=disabled -Dpam=enabled -Dgdk-pixbuf=enabled -Dc_link_args=-lexpat"
compile   = "ninja -C output"
install   = "DESTDIR=/out ninja -C output install"

[deps]
build = ["meson", "samurai", "python3", "pkgconf", "wayland", "wayland-protocols", "libxkbcommon",
         "cairo", "gdk-pixbuf", "pixman", "glib", "fontconfig", "freetype", "libpng",
         "libjpeg-turbo", "libtiff", "expat", "libffi", "pcre2", "zlib", "harfbuzz", "fribidi",
         "linux-pam"]
# `xkeyboard-config` NO va acá aunque parezca: la propia receta de libxkbcommon lo dice en su
# cabecera — «en runtime usa los datos de xkeyboard-config; no es dep de build». Y además sólo
# existe en las colas de escritorio, no en el corpus. Lo apunto porque para que el teclado tenga
# distribución correcta en una imagen real hará falta incluirlo por el lado del perfil, no de aquí.
run   = ["wayland", "cairo", "libxkbcommon", "linux-pam"]
