Merge pull request from h7x4/pkgs-init-pyinstaller

python3Packages.pyinstaller: init at 6.8.0, with dependencies
This commit is contained in:
OTABI Tomoya 2024-07-16 22:50:42 +09:00 committed by GitHub
commit 0ee61304eb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 123 additions and 0 deletions
pkgs
development/python-modules
altgraph
pyinstaller-hooks-contrib
pyinstaller
top-level

View File

@ -2,6 +2,7 @@
lib,
buildPythonPackage,
fetchPypi,
setuptools
}:
buildPythonPackage rec {
@ -15,6 +16,12 @@ buildPythonPackage rec {
hash = "sha256-G1r7uY9sTcrbLirmq5+plLu4wddfT6ltNA+UN65FRAY=";
};
dependencies = [
# setuptools in dependencies is intentional
# https://github.com/ronaldoussoren/altgraph/issues/21
setuptools
];
pythonImportsCheck = [ "altgraph" ];
meta = with lib; {

View File

@ -0,0 +1,45 @@
{
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 ];
};
}

View File

@ -0,0 +1,67 @@
{
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";
};
}

View File

@ -10182,6 +10182,10 @@ self: super: with self; {
pyindego = callPackage ../development/python-modules/pyindego { };
pyinstaller = callPackage ../development/python-modules/pyinstaller { };
pyinstaller-hooks-contrib = callPackage ../development/python-modules/pyinstaller-hooks-contrib { };
pyinstaller-versionfile = callPackage ../development/python-modules/pyinstaller-versionfile { };
pyisemail = callPackage ../development/python-modules/pyisemail { };