1{
2 lib,
3 buildPythonPackage,
4 fetchPypi,
5 setuptools,
6}:
7
8buildPythonPackage rec {
9 pname = "pyinstaller-hooks-contrib";
10 version = "2025.9";
11
12 pyproject = true;
13
14 src = fetchPypi {
15 pname = "pyinstaller_hooks_contrib";
16 inherit version;
17 hash = "sha256-VulyvarU6a92ftR9EyNi0WIRImDL5IjJ2n/uAfIopaY=";
18 };
19
20 build-system = [ setuptools ];
21
22 # There are tests for every hook, which means that
23 # new updates are going to require changes to test inputs
24 # and building tests creates a very big closure.
25 doCheck = false;
26
27 meta = {
28 description = "Community maintained hooks for PyInstaller";
29 longDescription = ''
30 A "hook" file extends PyInstaller to adapt it to the special needs and methods used by a Python package.
31 The word "hook" is used for two kinds of files. A runtime hook helps the bootloader to launch an app,
32 setting up the environment. A package hook (there are several types of those) tells PyInstaller
33 what to include in the final app - such as the data files and (hidden) imports mentioned above.
34 This repository is a collection of hooks for many packages, and allows PyInstaller to work with these packages seamlessly.
35 '';
36 homepage = "https://github.com/pyinstaller/pyinstaller-hooks-contrib";
37 # See https://github.com/pyinstaller/pyinstaller-hooks-contrib/issues/761
38 changelog = "https://github.com/pyinstaller/pyinstaller-hooks-contrib/blob/master/CHANGELOG.rst";
39 license = with lib.licenses; [
40 gpl2Plus
41 asl20
42 ];
43 maintainers = with lib.maintainers; [ h7x4 ];
44 };
45}