Change:
Project description Freeze (package) Python programs into stand-alone executables. Metadata homepage URL: source URL: license: gpl2 platforms: unix, linux, darwin
I would love to see it packaged too.
So, I did some digging on previous attempts at and found some abandoned PRs: packaged in itself but got abandoned due to complexity. was in partial effort of packaging by packaging one of its dependencies. also as a dependency for another package . Perhaps someone coming to this issue looking for the package can try it themselves using these attempts as a base.
I would also love to figure out how to build pyinstaller projects as a nix derivation
I believe you're looking for ? This issue is requesting to package itself and not packaging projects using .

Discussion:
lib, buildPythonPackage, fetchPypi, <ins> setuptools </ins> }: buildPythonPackage rec {

sha256 = "sha256-G1r7uY9sTcrbLirmq5+plLu4wddfT6ltNA+UN65FRAY="; }; <ins> dependencies = [ # setuptools in dependencies is intentional # https://github.com/ronaldoussoren/altgraph/issues/21 setuptools ]; </ins> pythonImportsCheck = [ "altgraph" ]; meta = with lib; {

<ins> { lib , buildPythonPackage , fetchPypi , setuptools }: buildPythonPackage rec { pname = "pyinstaller-hooks-contrib"; version = "2024.7"; pyproject = true; src = fetchPypi { pname = "pyinstaller_hooks_contrib"; inherit version; hash = "sha256-/V833Pmb7OGE5AZCr4i+Fqm4lhPsuViovRE2Y0/J+sU="; }; build-system = [ setuptools ]; # There are tests for every hook, which means that # new updates are going to require changes to test inputs # and building tests creates a very big closure. doCheck = false; meta = { description = "Community maintained hooks for PyInstaller"; longDescription = '' A "hook" file extends PyInstaller to adapt it to the special needs and methods used by a Python package. The word "hook" is used for two kinds of files. A runtime hook helps the bootloader to launch an app, setting up the environment. A package hook (there are several types of those) tells PyInstaller what to include in the final app - such as the data files and (hidden) imports mentioned above. This repository is a collection of hooks for many packages, and allows PyInstaller to work with these packages seamlessly. ''; homepage = "https://github.com/pyinstaller/pyinstaller-hooks-contrib"; # See https://github.com/pyinstaller/pyinstaller-hooks-contrib/issues/761 changelog = "https://github.com/pyinstaller/pyinstaller-hooks-contrib/blob/master/CHANGELOG.rst"; license = with lib.licenses; [ gpl2Plus asl20 ]; maintainers = with lib.maintainers; [ h7x4 ]; }; } </ins>

<ins> { lib , buildPythonPackage , fetchPypi , setuptools , zlib , altgraph , packaging , pyinstaller-hooks-contrib , testers , pyinstaller , glibc , binutils , installShellFiles }: buildPythonPackage rec { pname = "pyinstaller"; version = "6.8.0"; pyproject = true; src = fetchPypi { inherit pname version; hash = "sha256-P0tlIPRCP+GbzC/WOrcjiFGuK9y8mPJbxdL5fMYgEuk="; }; build-system = [ setuptools ]; nativeBuildInputs = [ installShellFiles ]; buildInputs = [ zlib.dev ]; dependencies = [ altgraph packaging pyinstaller-hooks-contrib ]; makeWrapperArgs = [ "--prefix" "PATH" ":"  (lib.makeBinPath [ glibc binutils ]) ]; postInstall = '' installManPage doc/pyinstaller.1 doc/pyi-makespec.1 ''; pythonImportsCheck = [ "PyInstaller" ]; passthru.tests.version = testers.testVersion { package = pyinstaller; }; meta = { description = "A tool to bundle a python application with dependencies into a single package"; homepage = "https://pyinstaller.org/"; changelog = "https://pyinstaller.org/en/v${version}/CHANGES.html"; downloadPage = "https://pypi.org/project/pyinstaller/"; license = with lib.licenses; [ mit asl20 gpl2Plus ]; maintainers = with lib.maintainers; [ h7x4 ]; mainProgram = "pyinstaller"; }; } </ins>

pyindego = callPackage ../development/python-modules/pyindego { }; <ins> pyinstaller = callPackage ../development/python-modules/pyinstaller { }; pyinstaller-hooks-contrib = callPackage ../development/python-modules/pyinstaller-hooks-contrib { }; </ins> pyinstaller-versionfile = callPackage ../development/python-modules/pyinstaller-versionfile { }; pyisemail = callPackage ../development/python-modules/pyisemail { };