commit 97b83a82103197915fefaa3b0daf649f14f57280 from: ale date: Fri Jul 31 01:41:56 2026 UTC flake.nix: agrega packages.default — paquete Nix real, no solo devShell Hasta ahora solo había devShells.default (venv + pip, pensado para desarrollar/debuggear). Para poder declararlo en la config de NixOS como un paquete normal (mismo patrón que usa Ale para sus otros proyectos propios, ej. inputs.psysonic.packages.${system}.default en /nixdots) hace falta un output packages.${system}.default de verdad. Se arma con python313Packages.buildPythonApplication usando las deps de nixpkgs directamente (textual, pyfiglet, matplotlib, textual-image y flatlatex ya estaban empaquetadas ahí) — solo cowsay (el paquete de Python) no está, así que se empaqueta a mano (wheel puro de PyPI, sin deps propias, build corto). Ventaja sobre el devShell: numpy/matplotlib de nixpkgs ya vienen enlazados correctamente contra libstdc++, así que este paquete NO necesita el fix de LD_LIBRARY_PATH que sí hace falta en el devShell (venv + pip instala wheels compilados que esperan rutas FHS que no existen en NixOS). Confirmado con 'nix build .#default' + prueba de imports (matplotlib, textual_image, flatlatex, cowsay, nezzontli_ctl) sin exportar nada a mano. El devShell queda intacto para seguir desarrollando/debuggeando igual que hasta ahora. commit - cb763040fa838bc539204b648b8769dfd2ba972b commit + 97b83a82103197915fefaa3b0daf649f14f57280 blob - 4164dc12c58412d437c1704a8d0317575b8e7642 blob + 449e187a803c0c71a6d490b6266c91908039b72f --- flake.nix +++ flake.nix @@ -9,8 +9,52 @@ let system = "x86_64-linux"; pkgs = import nixpkgs { inherit system; }; + + # cowsay (el paquete de Python, no el cowsay clásico de C) no está en + # nixpkgs — el resto de las deps sí (confirmado: textual, pyfiglet, + # matplotlib, textual-image, flatlatex), así que solo hace falta + # empaquetar esta. Wheel puro, sin deps propias. + cowsay-py = pkgs.python313Packages.buildPythonPackage rec { + pname = "cowsay"; + version = "6.1"; + format = "wheel"; + src = pkgs.fetchPypi { + inherit pname version format; + python = "py3"; + dist = "py3"; + sha256 = "02mk8hi8ipzvz5d4a2vh192pmc2cr45bjgikfqwxarmrq5piwjr7"; + }; + doCheck = false; + }; + + nezzontli-ctl = pkgs.python313Packages.buildPythonApplication { + pname = "nezzontli-ctl"; + version = "0.1.0"; + pyproject = true; + src = ./.; + build-system = [ pkgs.python313Packages.hatchling ]; + dependencies = with pkgs.python313Packages; [ + textual + pyfiglet + cowsay-py + textual-image + matplotlib + flatlatex + ]; + # Empaquetado así (deps de nixpkgs, no pip), numpy/matplotlib ya + # vienen enlazados correctamente por nixpkgs — a diferencia del + # devShell (venv + pip), acá no hace falta el fix de + # LD_LIBRARY_PATH para libstdc++.so.6. + doCheck = false; + pythonImportsCheck = [ "nezzontli_ctl" ]; + }; in { + packages.${system} = { + default = nezzontli-ctl; + inherit nezzontli-ctl; + }; + devShells.${system}.default = pkgs.mkShell { # Deps del proyecto (textual/pyfiglet/cowsay/matplotlib/textual-image) # van por pip/pyproject.toml, no por nixpkgs: cowsay no está