blob: dbd124316f0c09bbfccf0512561065b27c191140 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
# Maintainer: Sam <dev at samarthj dot com>
# Contributor: Mark Wagie <mark dot wagie at tutanota dot com>
# shellcheck disable=2034,2148,2154,2155
pkgname=pyinstaller-hooks-contrib-git
_pkgbase="${pkgname%-git}"
_pkgname="${_pkgbase#python-}"
pkgver=2023.0.r460.g7dba7f9
pkgrel=2
pkgdesc="Community maintained hooks for PyInstaller"
arch=('any')
license=('GPL2' 'Apache' 'custom:PyInstaller')
depends=(
"mpdecimal"
)
makedepends=(
"git"
"python-build"
"python-installer"
"python-wheel"
"python-setuptools"
)
optdepends=(
# libraries with referenced hooks that work with tests
"python-boto3"
"python-pygraphviz"
"python-pycparser"
"python-pytest"
"python-pyusb"
"python-pyqt5"
"python-pyqt5-webengine"
"python-uvloop"
"python-importlib-metadata"
"python-importlib_resources"
)
# checkdepends=(
# "python-pytest"
# "python-psutil"
# # Ability to retry a failed test
# "python-flaky"
# # Plugin to abort hanging tests.
# "python-pytest-timeout>=2.0.0"
# # allows specifying order without duplicates
# "python-pytest-drop-dup-tests"
# # reruns failed flaky tests
# "python-pytest-rerunfailures"
# # parallel processing for tests
# "python-pytest-xdist"
# "python-execnet>=1.5.0"
# )
url="https://github.com/pyinstaller/$_pkgname"
source=("git+$url.git")
sha512sums=('SKIP')
b2sums=('SKIP')
provides=("$_pkgbase")
conflicts=("$_pkgbase")
pkgver() {
cd "$_pkgname" || exit 1
commit=$(printf "r%s.g%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)")
ver=$(python setup.py --version)
echo "${ver//-/_}.${commit}"
}
prepare() {
local python_version=$(python -c 'import sys; print("".join(map(str, sys.version_info[:2])))')
if [[ $python_version -lt 39 ]]; then
depends+=("python-importlib-metadata")
checkdepends+=("python-importlib_resources")
fi
}
build() {
cd "$_pkgname" || exit 1
python -m build --wheel --no-isolation
}
#TODO: Move this into the pyinstaller pkg and be a universal build for 2 targets
# The both depend on each other and is now causing a cyclical dependency.
# check() {
# cd "$_pkgname" || exit 1
# # Disabling several tests that are not relevant to the release of this pkg
# # darwin, win32, slow - self explanatory
# # test_cv2_highgui - needs interactive interface
# # test_pynput - needs interactive interface
# # test_boto - known to fail for python 3
# # test_cv2 - needs full suite of libraries
# QT_QPA_PLATFORM="offscreen" \
# pytest -c pytest.ini -m "not darwin and not win32 and not slow" \
# -k "not test_cv2_highgui and not test_pynput and not test_boto and not test_cv2" \
# --maxfail=3 \
# -n=auto --maxprocesses="${PYTEST_XDIST_AUTO_NUM_WORKERS:-2}" \
# --dist=load \
# --force-flaky --no-flaky-report --reruns=3 --reruns-delay=10
# }
package() {
cd "$_pkgname" || exit 1
python -m installer --destdir="$pkgdir" dist/*.whl
install -vDm 644 "LICENSE"* -t "$pkgdir/usr/share/licenses/$pkgname/"
install -vDm 644 "README"* -t "$pkgdir/usr/share/doc/$pkgname/"
}
|