seed-graph.py extrae deps de la metadata de nixpkgs sin construir nada (leerla
no viola el ADR 0004, que prohíbe *construir* con nix). `--calibrar` mide la
semilla contra la única verdad disponible: las recetas escritas a mano.
VEREDICTO (60 recetas, 686 deps):
directas recall 39%*, precisión 59% (269 de 455)
transitivas recall 84%, precisión 6% (390 de 6760)
* contra la verdad APLANADA — comparación injusta, y el modo transitivo
prueba que la información sí está; sólo falta aplanarla.
Decisión: sembrar aristas DIRECTAS, la transitividad la hace el grafo. hammer
aplana la clausura en [deps].build (cada dep = capa --overlay-src), nixpkgs
declara directas y propaga; reproducir el aplanado arrastra 4629 nodos fantasma
del bootstrap de nixpkgs.
Lo que enseñó la calibración (3 rondas, cada fix salido de un dato):
· 4 clases de discrepancia, no 1: convención hammer (make/binutils/linux-headers,
implícitas en el stdenv de nix), variante nuestra (zlib vs zlib-shared),
provisto por el lab (cargo/rustc — las recetas Rust declaran deps=[]), y recién
después ruido real. Contarlas juntas hacía parecer irreducible lo clasificable.
· desalineación aburrida y arreglable: caja (libx11/libX11), implementación
(gettext→gettext-tiny, ninja→samurai), versión pegada al pname, hooks del
stdenv. Precisión 45%→59%; "sin attr en nixpkgs" 22/40 → 6/60.
· el escritorio KDE cuelga de kdePackages., no del top-level: sin ese fallback
el perfil objetivo era insembrable.
Hallazgo de secuencia: hay 0 nodos `wanted` (targets.toml se pobló por
lift-and-shift de lo existente), así que el sembrador no tenía a quién sembrar.
De ahí `--frontera <perfil>`: siembra las recetas que YA existen y reporta lo que
nixpkgs pide y hammer no puede construir. 137 candidatos en escritorio-kde
(kdoctools ×6, milou, polkit-qt-1, libkscreen, y mesa-libgbm/libglvnd/spirv-tools
= el muro de GBM/EGL ya documentado), 51 en cli, 46 en escritorio-mirada.
Cada candidato es una HIPÓTESIS a clasificar a mano: dep opcional no habilitada,
nix-ismo por filtrar, o hueco real. Nada se promueve a receta automáticamente.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
841 lines
12 KiB
JSON
841 lines
12 KiB
JSON
{
|
|
"advertencia": "HIPÓTESIS desde metadata de nixpkgs. Cada candidato es (a) dep opcional que hammer no habilitó, (b) nix-ismo por filtrar, o (c) hueco real. Clasificar a mano; NO promover a receta automáticamente.",
|
|
"perfiles": {
|
|
"cli": {
|
|
"candidatos": {
|
|
"acl": [
|
|
"rsync"
|
|
],
|
|
"adns": [
|
|
"gnupg"
|
|
],
|
|
"audit": [
|
|
"dbus"
|
|
],
|
|
"autoconf": [
|
|
"util-linux"
|
|
],
|
|
"autoconf-archive": [
|
|
"python3"
|
|
],
|
|
"automake": [
|
|
"util-linux"
|
|
],
|
|
"bluez-headers": [
|
|
"python3"
|
|
],
|
|
"check": [
|
|
"parted"
|
|
],
|
|
"cmocka": [
|
|
"shadow"
|
|
],
|
|
"db": [
|
|
"iproute2"
|
|
],
|
|
"ed": [
|
|
"lsof"
|
|
],
|
|
"fuse": [
|
|
"e2fsprogs"
|
|
],
|
|
"gdbm": [
|
|
"python3"
|
|
],
|
|
"git-minimal": [
|
|
"starship"
|
|
],
|
|
"glibc": [
|
|
"go"
|
|
],
|
|
"gnutls": [
|
|
"gnupg"
|
|
],
|
|
"groff": [
|
|
"sudo"
|
|
],
|
|
"help2man": [
|
|
"flex"
|
|
],
|
|
"iptables": [
|
|
"iproute2"
|
|
],
|
|
"jemalloc": [
|
|
"fd"
|
|
],
|
|
"kmod": [
|
|
"pciutils"
|
|
],
|
|
"krb5": [
|
|
"curl"
|
|
],
|
|
"libapparmor": [
|
|
"dbus"
|
|
],
|
|
"libbpf": [
|
|
"iproute2"
|
|
],
|
|
"libbsd": [
|
|
"shadow"
|
|
],
|
|
"libcap-ng": [
|
|
"dbus",
|
|
"util-linux"
|
|
],
|
|
"libidn2": [
|
|
"curl",
|
|
"iputils"
|
|
],
|
|
"libmnl": [
|
|
"iproute2"
|
|
],
|
|
"libpsl": [
|
|
"curl"
|
|
],
|
|
"libunwind": [
|
|
"strace"
|
|
],
|
|
"libxcrypt": [
|
|
"perl",
|
|
"shadow",
|
|
"util-linux"
|
|
],
|
|
"lvm2": [
|
|
"parted"
|
|
],
|
|
"mpdecimal": [
|
|
"python3"
|
|
],
|
|
"nghttp2": [
|
|
"curl"
|
|
],
|
|
"nghttp3": [
|
|
"curl"
|
|
],
|
|
"ngtcp2": [
|
|
"curl"
|
|
],
|
|
"openldap": [
|
|
"gnupg"
|
|
],
|
|
"pandoc-cli": [
|
|
"eza"
|
|
],
|
|
"po4a": [
|
|
"util-linux"
|
|
],
|
|
"popt": [
|
|
"rsync"
|
|
],
|
|
"remove-references-to": [
|
|
"jq"
|
|
],
|
|
"systemd-minimal": [
|
|
"dbus"
|
|
],
|
|
"systemd-minimal-libs": [
|
|
"dhcpcd",
|
|
"htop",
|
|
"util-linux"
|
|
],
|
|
"tcb": [
|
|
"shadow"
|
|
],
|
|
"texinfo": [
|
|
"e2fsprogs",
|
|
"git",
|
|
"gnupg"
|
|
],
|
|
"tinyxxd": [
|
|
"dosfstools"
|
|
],
|
|
"tpm2-tss": [
|
|
"gnupg"
|
|
],
|
|
"uname": [
|
|
"git"
|
|
],
|
|
"xclip": [
|
|
"gitui"
|
|
],
|
|
"xmlto": [
|
|
"git"
|
|
],
|
|
"xxhash": [
|
|
"rsync"
|
|
]
|
|
},
|
|
"recetas_sembradas": 74,
|
|
"sin_attr_en_nixpkgs": [
|
|
"ca-certificates",
|
|
"libusb",
|
|
"linux-headers",
|
|
"make",
|
|
"procps-ng",
|
|
"sed"
|
|
]
|
|
},
|
|
"escritorio-kde": {
|
|
"candidatos": {
|
|
"SPIRV-LLVM-Translator": [
|
|
"mesa"
|
|
],
|
|
"acl": [
|
|
"kio"
|
|
],
|
|
"appstream-qt": [
|
|
"frameworkintegration",
|
|
"plasma-workspace"
|
|
],
|
|
"aspell": [
|
|
"sonnet"
|
|
],
|
|
"at-spi2-core": [
|
|
"qtbase"
|
|
],
|
|
"attr": [
|
|
"kfilemetadata",
|
|
"kio"
|
|
],
|
|
"audit": [
|
|
"dbus",
|
|
"linux-pam"
|
|
],
|
|
"aurorae": [
|
|
"kwin"
|
|
],
|
|
"autoconf": [
|
|
"util-linux"
|
|
],
|
|
"autoconf-archive": [
|
|
"python3"
|
|
],
|
|
"automake": [
|
|
"util-linux"
|
|
],
|
|
"avahi": [
|
|
"kdnssd"
|
|
],
|
|
"baloo": [
|
|
"plasma-workspace"
|
|
],
|
|
"bluez-headers": [
|
|
"python3"
|
|
],
|
|
"clang": [
|
|
"mesa"
|
|
],
|
|
"cups": [
|
|
"qtbase"
|
|
],
|
|
"db": [
|
|
"linux-pam"
|
|
],
|
|
"dejagnu": [
|
|
"libffi"
|
|
],
|
|
"directx-headers": [
|
|
"mesa"
|
|
],
|
|
"docbook5": [
|
|
"linux-pam"
|
|
],
|
|
"docutils": [
|
|
"libdrm"
|
|
],
|
|
"double-conversion": [
|
|
"qtbase"
|
|
],
|
|
"doxygen": [
|
|
"libqalculate",
|
|
"libxkbcommon",
|
|
"wayland"
|
|
],
|
|
"ebook-tools": [
|
|
"kfilemetadata"
|
|
],
|
|
"editorconfig-core-c": [
|
|
"ktexteditor"
|
|
],
|
|
"flatpak": [
|
|
"plasma-workspace"
|
|
],
|
|
"flite": [
|
|
"qtspeech"
|
|
],
|
|
"gdbm": [
|
|
"python3"
|
|
],
|
|
"glslang": [
|
|
"mesa"
|
|
],
|
|
"gmp-with-cxx": [
|
|
"mpfr"
|
|
],
|
|
"gpgmepp": [
|
|
"kwallet"
|
|
],
|
|
"gpsd": [
|
|
"plasma-workspace"
|
|
],
|
|
"graphviz": [
|
|
"wayland"
|
|
],
|
|
"gst-libav": [
|
|
"qtmultimedia"
|
|
],
|
|
"gst-plugins-bad": [
|
|
"qtmultimedia"
|
|
],
|
|
"gst-plugins-base": [
|
|
"libcanberra",
|
|
"qtmultimedia"
|
|
],
|
|
"gst-plugins-good": [
|
|
"qtmultimedia"
|
|
],
|
|
"gstreamer": [
|
|
"libcanberra",
|
|
"qtmultimedia"
|
|
],
|
|
"gtk+3": [
|
|
"qtbase"
|
|
],
|
|
"help2man": [
|
|
"flex"
|
|
],
|
|
"hunspell": [
|
|
"sonnet"
|
|
],
|
|
"jasper": [
|
|
"qtsvg"
|
|
],
|
|
"kdegraphics-mobipocket": [
|
|
"kfilemetadata"
|
|
],
|
|
"kdoctools": [
|
|
"kded",
|
|
"kio",
|
|
"kpackage",
|
|
"kservice",
|
|
"kwallet",
|
|
"kwin"
|
|
],
|
|
"kio-extras": [
|
|
"plasma-workspace"
|
|
],
|
|
"kuserfeedback": [
|
|
"plasma-workspace"
|
|
],
|
|
"libapparmor": [
|
|
"dbus"
|
|
],
|
|
"libappimage": [
|
|
"kfilemetadata"
|
|
],
|
|
"libb2": [
|
|
"qtbase"
|
|
],
|
|
"libcap-ng": [
|
|
"dbus",
|
|
"util-linux"
|
|
],
|
|
"libclc": [
|
|
"mesa"
|
|
],
|
|
"libdatrie": [
|
|
"qtbase"
|
|
],
|
|
"libdmtx": [
|
|
"prison"
|
|
],
|
|
"libei": [
|
|
"kwin"
|
|
],
|
|
"libglvnd": [
|
|
"libepoxy",
|
|
"mesa",
|
|
"qtbase"
|
|
],
|
|
"libimobiledevice": [
|
|
"solid"
|
|
],
|
|
"libkexiv2": [
|
|
"plasma-workspace"
|
|
],
|
|
"libmng": [
|
|
"qtsvg"
|
|
],
|
|
"libpciaccess": [
|
|
"libdrm"
|
|
],
|
|
"libpq": [
|
|
"qtbase"
|
|
],
|
|
"libproxy": [
|
|
"qtbase"
|
|
],
|
|
"libpulseaudio": [
|
|
"libcanberra",
|
|
"qtmultimedia"
|
|
],
|
|
"libqaccessibilityclient": [
|
|
"kwin"
|
|
],
|
|
"libsecret": [
|
|
"kwallet"
|
|
],
|
|
"libselinux": [
|
|
"qtbase"
|
|
],
|
|
"libsepol": [
|
|
"qtbase"
|
|
],
|
|
"libthai": [
|
|
"qtbase"
|
|
],
|
|
"libunwind": [
|
|
"mesa",
|
|
"qtmultimedia"
|
|
],
|
|
"libva-minimal": [
|
|
"mesa"
|
|
],
|
|
"libwacom": [
|
|
"libinput"
|
|
],
|
|
"libxcb-cursor": [
|
|
"qtbase"
|
|
],
|
|
"libxcb-image": [
|
|
"qtbase",
|
|
"xcb-util-cursor"
|
|
],
|
|
"libxcb-keysyms": [
|
|
"mesa",
|
|
"qtbase"
|
|
],
|
|
"libxcb-render-util": [
|
|
"qtbase",
|
|
"xcb-util-cursor"
|
|
],
|
|
"libxcb-util": [
|
|
"qtbase"
|
|
],
|
|
"libxcb-wm": [
|
|
"qtbase"
|
|
],
|
|
"libxcomposite": [
|
|
"qtbase"
|
|
],
|
|
"libxcrypt": [
|
|
"linux-pam",
|
|
"perl",
|
|
"util-linux"
|
|
],
|
|
"libxft": [
|
|
"plasma-workspace"
|
|
],
|
|
"libxrandr": [
|
|
"mesa",
|
|
"qtmultimedia",
|
|
"vulkan-loader"
|
|
],
|
|
"libxscrnsaver": [
|
|
"kidletime"
|
|
],
|
|
"libxshmfence": [
|
|
"mesa"
|
|
],
|
|
"libxxf86vm": [
|
|
"mesa"
|
|
],
|
|
"lksctp-tools": [
|
|
"qtbase"
|
|
],
|
|
"llvm": [
|
|
"mesa"
|
|
],
|
|
"lndir": [
|
|
"qtbase"
|
|
],
|
|
"lttng-ust": [
|
|
"qtbase"
|
|
],
|
|
"lua": [
|
|
"libinput"
|
|
],
|
|
"mariadb-connector-c": [
|
|
"qtbase"
|
|
],
|
|
"mariadb-connector-odbc": [
|
|
"qtbase"
|
|
],
|
|
"md4c": [
|
|
"qtbase"
|
|
],
|
|
"mesa-libgbm": [
|
|
"kwin",
|
|
"mesa",
|
|
"qtbase"
|
|
],
|
|
"milou": [
|
|
"kwin",
|
|
"plasma-workspace"
|
|
],
|
|
"mpdecimal": [
|
|
"python3"
|
|
],
|
|
"orc": [
|
|
"qtmultimedia"
|
|
],
|
|
"oxygen-icons": [
|
|
"frameworkintegration"
|
|
],
|
|
"packagekit-qt": [
|
|
"frameworkintegration",
|
|
"plasma-workspace"
|
|
],
|
|
"plasma-nano": [
|
|
"plasma-workspace"
|
|
],
|
|
"ply": [
|
|
"mesa"
|
|
],
|
|
"po4a": [
|
|
"util-linux"
|
|
],
|
|
"polkit-qt-1": [
|
|
"kauth",
|
|
"plasma-workspace"
|
|
],
|
|
"poppler-qt6": [
|
|
"kfilemetadata"
|
|
],
|
|
"psqlodbc": [
|
|
"qtbase"
|
|
],
|
|
"pycparser": [
|
|
"mesa"
|
|
],
|
|
"pyside6": [
|
|
"kcoreaddons",
|
|
"kguiaddons",
|
|
"knotifications",
|
|
"kstatusnotifieritem",
|
|
"kwidgetsaddons",
|
|
"kxmlgui"
|
|
],
|
|
"python3-3.14.6-env": [
|
|
"kcoreaddons",
|
|
"kguiaddons",
|
|
"knotifications",
|
|
"kstatusnotifieritem",
|
|
"kwidgetsaddons",
|
|
"kxmlgui",
|
|
"libinput"
|
|
],
|
|
"pyyaml": [
|
|
"mesa"
|
|
],
|
|
"qca": [
|
|
"kwallet"
|
|
],
|
|
"qqc2-breeze-style": [
|
|
"kscreenlocker",
|
|
"plasma-workspace"
|
|
],
|
|
"qtquick3d": [
|
|
"kwin",
|
|
"qtmultimedia"
|
|
],
|
|
"qtsensors": [
|
|
"kwin"
|
|
],
|
|
"qtserialport": [
|
|
"qtpositioning"
|
|
],
|
|
"qtvirtualkeyboard": [
|
|
"kwin",
|
|
"plasma-workspace"
|
|
],
|
|
"qtwebsockets": [
|
|
"qcoro"
|
|
],
|
|
"rhash": [
|
|
"cmake"
|
|
],
|
|
"rust-bindgen": [
|
|
"mesa"
|
|
],
|
|
"rust-cbindgen": [
|
|
"mesa"
|
|
],
|
|
"setxkbmap": [
|
|
"libxkbcommon"
|
|
],
|
|
"shared-mime-info": [
|
|
"kcoreaddons"
|
|
],
|
|
"shiboken6": [
|
|
"kcoreaddons",
|
|
"kguiaddons",
|
|
"knotifications",
|
|
"kstatusnotifieritem",
|
|
"kwidgetsaddons",
|
|
"kxmlgui"
|
|
],
|
|
"speech-dispatcher": [
|
|
"qtspeech"
|
|
],
|
|
"spirv-tools": [
|
|
"kdeclarative",
|
|
"mesa",
|
|
"plasma-workspace"
|
|
],
|
|
"sqlite-connector-odbc": [
|
|
"qtbase"
|
|
],
|
|
"syndication": [
|
|
"knewstuff"
|
|
],
|
|
"systemd": [
|
|
"libcanberra",
|
|
"qtbase"
|
|
],
|
|
"systemd-minimal": [
|
|
"dbus",
|
|
"mako"
|
|
],
|
|
"systemd-minimal-libs": [
|
|
"libinput",
|
|
"linux-pam",
|
|
"mesa",
|
|
"qtbase",
|
|
"util-linux"
|
|
],
|
|
"taglib": [
|
|
"kfilemetadata"
|
|
],
|
|
"unixodbc": [
|
|
"qtbase"
|
|
],
|
|
"v4l-utils": [
|
|
"libdisplay-info"
|
|
],
|
|
"valgrind": [
|
|
"libdrm",
|
|
"mesa"
|
|
],
|
|
"w3m": [
|
|
"linux-pam"
|
|
],
|
|
"wayland-scanner": [
|
|
"kscreenlocker",
|
|
"libxkbcommon",
|
|
"mako",
|
|
"mesa",
|
|
"qtbase",
|
|
"wayland",
|
|
"wayland-protocols"
|
|
],
|
|
"xkbcomp": [
|
|
"libxkbcommon"
|
|
],
|
|
"xmlto": [
|
|
"wayland"
|
|
],
|
|
"xvfb": [
|
|
"libxkbcommon"
|
|
],
|
|
"xwayland": [
|
|
"kwin"
|
|
]
|
|
},
|
|
"recetas_sembradas": 162,
|
|
"sin_attr_en_nixpkgs": [
|
|
"extra-cmake-modules",
|
|
"gettext-tiny",
|
|
"icu4c",
|
|
"kdecoration",
|
|
"layer-shell-qt",
|
|
"libkscreen",
|
|
"libksysguard",
|
|
"linux-headers",
|
|
"lm-sensors",
|
|
"make",
|
|
"markupsafe",
|
|
"packaging",
|
|
"perl-xml-parser",
|
|
"xcb-util",
|
|
"xcb-util-image",
|
|
"xcb-util-keysyms",
|
|
"xcb-util-renderutil",
|
|
"xcb-util-wm"
|
|
]
|
|
},
|
|
"escritorio-mirada": {
|
|
"candidatos": {
|
|
"SPIRV-LLVM-Translator": [
|
|
"mesa"
|
|
],
|
|
"audit": [
|
|
"linux-pam"
|
|
],
|
|
"autoconf-archive": [
|
|
"python3"
|
|
],
|
|
"bluez-headers": [
|
|
"python3"
|
|
],
|
|
"clang": [
|
|
"mesa"
|
|
],
|
|
"db": [
|
|
"linux-pam"
|
|
],
|
|
"dejagnu": [
|
|
"libffi"
|
|
],
|
|
"directx-headers": [
|
|
"mesa"
|
|
],
|
|
"docbook5": [
|
|
"linux-pam"
|
|
],
|
|
"docutils": [
|
|
"libdrm"
|
|
],
|
|
"doxygen": [
|
|
"libxkbcommon",
|
|
"wayland"
|
|
],
|
|
"gdbm": [
|
|
"python3"
|
|
],
|
|
"glslang": [
|
|
"mesa"
|
|
],
|
|
"graphviz": [
|
|
"wayland"
|
|
],
|
|
"help2man": [
|
|
"flex"
|
|
],
|
|
"libclc": [
|
|
"mesa"
|
|
],
|
|
"libglvnd": [
|
|
"mesa"
|
|
],
|
|
"libpciaccess": [
|
|
"libdrm"
|
|
],
|
|
"libunwind": [
|
|
"mesa"
|
|
],
|
|
"libva-minimal": [
|
|
"mesa"
|
|
],
|
|
"libwacom": [
|
|
"libinput"
|
|
],
|
|
"libxcb-keysyms": [
|
|
"mesa"
|
|
],
|
|
"libxcrypt": [
|
|
"linux-pam"
|
|
],
|
|
"libxrandr": [
|
|
"mesa"
|
|
],
|
|
"libxshmfence": [
|
|
"mesa"
|
|
],
|
|
"libxxf86vm": [
|
|
"mesa"
|
|
],
|
|
"llvm": [
|
|
"mesa"
|
|
],
|
|
"lua": [
|
|
"libinput"
|
|
],
|
|
"mesa-libgbm": [
|
|
"mesa"
|
|
],
|
|
"mpdecimal": [
|
|
"python3"
|
|
],
|
|
"ply": [
|
|
"mesa"
|
|
],
|
|
"pycparser": [
|
|
"mesa"
|
|
],
|
|
"python3-3.14.6-env": [
|
|
"libinput"
|
|
],
|
|
"pyyaml": [
|
|
"mesa"
|
|
],
|
|
"rust-bindgen": [
|
|
"mesa"
|
|
],
|
|
"rust-cbindgen": [
|
|
"mesa"
|
|
],
|
|
"setxkbmap": [
|
|
"libxkbcommon"
|
|
],
|
|
"spirv-tools": [
|
|
"mesa"
|
|
],
|
|
"systemd-minimal": [
|
|
"mako"
|
|
],
|
|
"systemd-minimal-libs": [
|
|
"libinput",
|
|
"linux-pam",
|
|
"mesa",
|
|
"seatd"
|
|
],
|
|
"valgrind": [
|
|
"libdrm",
|
|
"mesa"
|
|
],
|
|
"w3m": [
|
|
"linux-pam"
|
|
],
|
|
"wayland-scanner": [
|
|
"libxkbcommon",
|
|
"mako",
|
|
"mesa",
|
|
"wayland",
|
|
"wayland-protocols"
|
|
],
|
|
"xkbcomp": [
|
|
"libxkbcommon"
|
|
],
|
|
"xmlto": [
|
|
"wayland"
|
|
],
|
|
"xvfb": [
|
|
"libxkbcommon"
|
|
]
|
|
},
|
|
"recetas_sembradas": 40,
|
|
"sin_attr_en_nixpkgs": [
|
|
"make",
|
|
"markupsafe",
|
|
"mesa-swrast",
|
|
"mirada-compositor",
|
|
"mirada-ctl",
|
|
"mirada-greeter",
|
|
"packaging"
|
|
]
|
|
}
|
|
},
|
|
"schema": "hammer-seed-frontera/1"
|
|
}
|