spektrafilm-git
LOW
maintainer Crstian
0 votes
scanned 2026-09-16 17:23:26.193762
Why flagged
Uploaded within the last 14 days with 2 or fewer community votes — little peer review so far.
Triggered rules
Low
Few votes, recently uploaded
zero_votes_recent
Uploaded within the last 14 days with 2 or fewer community votes — little peer review so far.
PKGBUILD
1
# Maintainer: Crstian <me@crstian.me>
2
# Contributor: Andrea Volpato <https://github.com/andreavolpato>
3
#
4
# GENERATED FILE -- do not edit here.
5
# Source of truth: <upstream>/packaging/{PKGBUILD.in,wheels.lock,release.conf}
6
# Regenerate with: packaging/gen.sh
7
8
pkgname=spektrafilm-git
9
pkgver=0.3.3.r5.g3bb2c2d
10
pkgrel=1
11
pkgdesc="Spectral simulation of analog film photography (napari GUI + LUT baker) (git)"
12
arch=('x86_64')
13
url='https://github.com/andreavolpato/spektrafilm'
14
# GPL-3.0-only : spektrafilm's own code
15
# CC-BY-SA-4.0 : the spectral profiles/data and the LUTs baked from them
16
# PSF-2.0 : the bundled CPython interpreter
17
# LGPL-3.0-only : the bundled Qt 6 / PySide6 stack
18
license=('GPL-3.0-only' 'CC-BY-SA-4.0' 'PSF-2.0' 'LGPL-3.0-only')
19
# The entire Python stack -- interpreter included -- is vendored under
20
# /opt/spektrafilm, so the interpreter itself only needs glibc. What is
21
# listed below is what Qt's xcb platform plugin and the native wheels resolve
22
# from the system at runtime (see packaging/gen.sh for how this list is
23
# derived: ldd over every shipped ELF, minus what the bundle provides).
24
depends=(
25
'glibc'
26
'gcc-libs'
27
'zlib'
28
'zstd'
29
'expat'
30
'brotli'
31
'dbus'
32
'glib2'
33
'fontconfig'
34
'freetype2'
35
'harfbuzz'
36
'krb5'
37
'libglvnd'
38
'libdrm'
39
'libx11'
40
'libxcb'
41
'libxkbcommon'
42
'libxkbcommon-x11'
43
'xcb-util'
44
'xcb-util-cursor'
45
'xcb-util-image'
46
'xcb-util-keysyms'
47
'xcb-util-renderutil'
48
'xcb-util-wm'
49
'wayland'
50
'onetbb'
51
'hicolor-icon-theme'
52
)
53
makedepends=('git')
54
# Both are plugins Qt loads only if the library is there, and silently skips
55
# otherwise -- exactly how Arch's own qt6-base treats them.
56
optdepends=(
57
'gtk3: native GTK file dialogs and theming under GNOME'
58
'libcups: printing from the napari viewer'
59
)
60
provides=("spektrafilm=${pkgver}")
61
conflicts=('spektrafilm' 'spektrafilm-bin')
62
# !strip : the interpreter tarball is already stripped and the wheels are
63
# shipped exactly as their publishers signed them
64
# !debug : nothing here is compiled locally, there are no debug symbols to split
65
options=('!strip' '!debug')
66
67
_prefix='/opt/spektrafilm'
68
_pyver='3.14'
69
_pyfull='3.14.7'
70
_pybuild='20260901'
71
_srctree='spektrafilm'
72
_pytarball="cpython-${_pyfull}+${_pybuild}-${CARCH}-unknown-linux-gnu-install_only_stripped.tar.gz"
73
74
# Locked runtime environment. Upstream's pyproject pins (napari~=0.6.6,
75
# rawpy~=0.26.1, exiv2~=0.18.1, ...) are stale and do not resolve against a
76
# working CPython 3.14 set, so the versions below -- captured from an
77
# environment where both the napari GUI and the LUT baker were verified -- are
78
# authoritative, and spektrafilm itself is installed with --no-deps.
79
#
80
# Format: "<sha256> <url>". source/sha256sums/noextract are all derived from
81
# these two arrays, which makes a mismatched checksum structurally impossible.
82
_wheels=(
83
'117bac03a25ede5df5440e855b32d556049ca169ead221505badf432fed4b101 https://files.pythonhosted.org/packages/3e/30/e900b21425a860e195f32e37657aa1f7c7f2b1bfb26f03ca209b90933c06/annotated_doc-0.0.5-py3-none-any.whl'
84
'f072f4d804ea359e4eaf198b1af7a8b0943881a87f31bb764f8bf219bb9419e0 https://files.pythonhosted.org/packages/99/91/8acff4f5e50511b911bbccb72b8628a49c68ce14148cd9f6431094859a90/annotated_types-0.8.0-py3-none-any.whl'
85
'6318c220c1c7b3c033c392be2ed22c4a92488636922d7571b16379f0917ef9e8 https://files.pythonhosted.org/packages/87/4f/e284b04faa34e540429cfaf7a44de9555691afc244000316da6e0c5a1154/app_model-0.5.1-py3-none-any.whl'
86
'9da13157f5b28becde0bd374fc677dcd3c290614264eff096f167c469cd9f933 https://files.pythonhosted.org/packages/d4/2b/04b8a15f3a1c77bc79ddf5c73875327f34b4fa75982df2b76e45e402d364/asttokens-3.0.2-py3-none-any.whl'
87
'c647aa4a12dfbad9333ca4e71fe62ddc36f4e63b2d260a37a8b83d2f043ac309 https://files.pythonhosted.org/packages/64/b4/17d4b0b2a2dc85a6df63d1157e028ed19f90d4cd97c36717afef2bc2f395/attrs-26.1.0-py3-none-any.whl'
88
'ecd351a4be9d35a9eaaba244a7687143c9c7d4aea6ac964e7e7ddab20cbcf4e7 https://files.pythonhosted.org/packages/ad/9b/9fb3585dabcd73a1b2a6267f63f62649347c9e6d072c9fde365b105abb2c/build-1.6.1-py3-none-any.whl'
89
'49cf8528496ce3f99d47f1bd136b7c88237e55347a15d880f47cefc0615a83c3 https://files.pythonhosted.org/packages/57/f0/e24f3e5d5d539abeb783087b87c26cfb99c259f1126700569e000243745a/cachey-0.2.1-py3-none-any.whl'
90
'62f22742b58a1a33014a2b6b706588a8d7e2a88ae7bd1a6ebe8c992928483775 https://files.pythonhosted.org/packages/0b/a7/71ac2cff56fec219ed242bb11b8efb69fcc4bec75db06fb7bfe35de520e6/certifi-2026.7.22-py3-none-any.whl'
91
'15f024313246a4ed976c60f440bb8d257815513a681d212ff74fd46f7d715a90 https://files.pythonhosted.org/packages/e0/91/39c3af510b0aa32bbda03374259200f28430febfd1bf5e511fe765282ce5/charset_normalizer-3.5.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl'
92
'255bc9599cf7748b4b1a446ccc735421bd08a2ae529a8b88597d3de5664ee360 https://files.pythonhosted.org/packages/58/50/6c0d534c5f134586a8e1ba4e330569e32f057e33372ae556463212fb4cd3/click-8.5.0-py3-none-any.whl'
93
'9acb47f6afd73f60dc1df93bb801b472f05ff42fa6c84167d25cb206be1fbf4a https://files.pythonhosted.org/packages/88/39/799be3f2f0f38cc727ee3b4f1445fe6d5e4133064ec2e4115069418a5bb6/cloudpickle-3.1.2-py3-none-any.whl'
94
'fe2383d86e507fc11a4b5206ff31a7399031e0dce527e22ec06eeb491d45d9a7 https://files.pythonhosted.org/packages/6d/9e/ce54e33f383d7e1432be9fb39557477779ccb155c60033c491609936dacf/colour_science-0.4.7-py3-none-any.whl'
95
'c615d91d75f7f04f095b30d1c1711babd43bdc6419c1be9886a85f2f4e489417 https://files.pythonhosted.org/packages/60/97/891a0971e1e4a8c5d2b20bbe0e524dc04548d2307fee33cdeba148fd4fc7/comm-0.2.3-py3-none-any.whl'
96
'e439ab450c93455feb0218532ded3e946ec7a9b5f459069f122cfa44b89229f6 https://files.pythonhosted.org/packages/cf/8c/9677dad226e5aaac5b823d5b09d881ebc32ff1648af417597649841e516c/contourpy-1.4.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl'
97
'85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30 https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl'
98
'ccc0c83a189b0398602435189771d28dad7b5773b6089bb8dce14ae732dd782c https://files.pythonhosted.org/packages/f8/3a/4fc99e788bcfa1b3b3f21abf57da45898d807d007e7f6fd1c7300904eb70/dask-2026.8.0-py3-none-any.whl'
99
'3d6922439bf33fd38a3e2c447869ebc7b97da5cd3d329ff1ef9bc06c4903437e https://files.pythonhosted.org/packages/8c/2d/6e7ec524984a1702777868de49a4c53202bddac2a432a76a093469587750/debugpy-1.8.21-cp314-cp314-manylinux_2_34_x86_64.whl'
100
'b3fcbed555c47d8479be0796ef7e19c2670d428d72e96da63f3a40122860374b https://files.pythonhosted.org/packages/a7/5f/ed01f9a3cdffbd5a008556fc7b2a08ddb1cc6ace7effa7340604b1d16699/docstring_parser-0.18.0-py3-none-any.whl'
101
'760643d3452b4d777d295bb167ccc74c64a81df23fb5e08eff250c425a4b2017 https://files.pythonhosted.org/packages/c1/ea/53f2148663b321f21b5a606bd5f191517cf40b7072c0497d3c92c4a13b1e/executing-2.2.1-py2.py3-none-any.whl'
102
'0dc1e59e14aced4c01ab6104f5b711646d8a89a6ee9cff254cd7ffb723ca0b31 https://files.pythonhosted.org/packages/87/12/7be3c167536663fac4617810ddccd0c5eadc311c5edb40e6bf1a802c0757/exiv2-0.19.2-cp314-cp314-manylinux_2_27_x86_64.whl'
103
'd43c9fea82336af6e0115e308d9d33a185390b8346a017564611f1466dcd2e32 https://files.pythonhosted.org/packages/27/cd/c883e1a7c447479d6e13985565080e3fea88ab5a107c21684c813dba1875/flexcache-0.3-py3-none-any.whl'
104
'3738b456192dcb3e15620f324c447721023c0293f6af9955b481e91d00179846 https://files.pythonhosted.org/packages/fe/5e/3be305568fe5f34448807976dc82fc151d76c3e0e03958f34770286278c1/flexparser-0.4-py3-none-any.whl'
105
'6d815734e7fede0ad1f233f23f0f191cbe8fc64762ff041e589bc0f78e0b2397 https://files.pythonhosted.org/packages/cf/eb/2a4d78d60d978e694cfa04c98e4d8ddbf7f028fd768ddef470bb9da5d69e/fonttools-4.65.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl'
106
'289b443547e03a4f85302e3ac91376838e0d11636050166662a4f75e3087ed0b https://files.pythonhosted.org/packages/b6/36/853cad240ec63e21a37a512ee19c896b655ce1772d803a3dd80fccfe63fe/freetype_py-2.5.1-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl'
107
'b57ddbafedfaef7018c1ecab32aa200a9d7ca26b77965f64e48b70061249d279 https://files.pythonhosted.org/packages/fd/3c/6a2bf344106328fd04963664a60b9bb6496fc25df8e962fcdc1367285fb9/fsspec-2026.7.0-py3-none-any.whl'
108
'6065f90933ab1bb7e50db403b90cab653c853690c5992e69294c2de2b253fc92 https://files.pythonhosted.org/packages/b6/9d/cd4777dbcf3bef9d9627e0fe4bc43d2e294b1baeb01d0422399d5e9de319/HeapDict-1.0.1-py3-none-any.whl'
109
'0138bd10038e2ee1b13eecae9a7d49d4ec8c320b1d7eb4f860832c792e3e4567 https://files.pythonhosted.org/packages/96/36/5bddefea3d7adf22a64f9aa9701492f8a9fe6948223f5cf2602c22ec9be7/hsluv-5.0.4-py2.py3-none-any.whl'
110
'815e7be7a7806d54abb586dc943addc79e8b2ee16915059658cbeff4b1b43bf4 https://files.pythonhosted.org/packages/57/b0/0e52c878c53f245edd3a11020f20979b3f490f245af532c7cae3027754b5/idna-3.19-py3-none-any.whl'
111
'1ab2e22c8debf700f24c3ac43e8f95f3b3a8110c83b93411e97b4b0b2cd1c7e6 https://files.pythonhosted.org/packages/3e/2d/ca050652104bab2cf55e569db2a178b1b61cb041fef28307f2db383f6d9f/imageio-2.37.4-py3-none-any.whl'
112
'343e81edb27cf41ec946134a92964f408465abdf6a065c6c55fe96f53bc3c8b7 https://files.pythonhosted.org/packages/3b/06/711a4d105ad3d01d3ef351a1039bb5cc517a57dbf377d7da9a0808e34c77/in_n_out-0.2.1-py3-none-any.whl'
113
'abe5386f6ced727a70e0eb0cf1da801fa7c5fa6ff82147747d5a0406cd8c94af https://files.pythonhosted.org/packages/f6/d8/502954a4ec0efcf264f99b65b41c3c54e65a647d9f0d6f62cd02227d242c/ipykernel-6.31.0-py3-none-any.whl'
114
'6d1645743cfd1a07eb695d85aa2b5fa66721f8cbae9431d4049f7084bbf06509 https://files.pythonhosted.org/packages/2d/1e/65b59cf518c106aa755e7f7da3099027738687a862ec785060702a481320/ipython-9.17.1-py3-none-any.whl'
115
'a9462224a505ade19a605f71f8fa63c2048833ce50abc86768a0d81d876dc81c https://files.pythonhosted.org/packages/d9/33/1f075bf72b0b747cb3288d011319aaf64083cf2efef8354174e3ed4540e2/ipython_pygments_lexers-1.1.1-py3-none-any.whl'
116
'7bdd9c2634f56713299976f4cbd59cb3fa92165cc5e05ea811fb253480728b67 https://files.pythonhosted.org/packages/9a/93/242e2eab5fe682ffcb8b0084bde703a41d51e17ee0f3a31ff0d9d813620a/jedi-0.20.0-py2.py3-none-any.whl'
117
'd489f15263b8d200f8387e64b4c3a75f06629559fb73deb8fdfb525f2dab50ce https://files.pythonhosted.org/packages/69/90/f63fb5873511e014207a475e2bb4e8b2e570d655b00ac19a9a0ca0a385ee/jsonschema-4.26.0-py3-none-any.whl'
118
'98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl'
119
'5f73f24f22fa25192cfff6b23c051932a2473a797b05734aff495b392103e14e https://files.pythonhosted.org/packages/0f/88/7c548de1f6c2ade7c931a3282da73f9274fa6a1531091be682f89c85efb9/jupyter_client-8.10.0-py3-none-any.whl'
120
'ebf87fdc6073d142e114c72c9e29a9d7ca03fad818c5d300ce2adc1fb0743407 https://files.pythonhosted.org/packages/e7/e7/80988e32bf6f73919a113473a604f5a8f09094de312b9d52b79c2df7612b/jupyter_core-5.9.1-py3-none-any.whl'
121
'18a0cfb124546a4c2e6087c5f3029c7f44b37c85b142e0ced71f73a7599ac208 https://files.pythonhosted.org/packages/a1/13/08188f0cafa3a800403e4ff62b9aad4e7a17f9c4c7e080dc8f18c64794cf/kiwisolver-1.5.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl'
122
'ab0ea149e9c554d4ffeeb21105ac60bed7f3b4fd69b1d2360a4add51b170b005 https://files.pythonhosted.org/packages/8a/a1/8d812e53a5da1687abb10445275d41a8b13adb781bbf7196ddbcf8d88505/lazy_loader-0.5-py3-none-any.whl'
123
'a929ae4366d25b9cc760ea7daf84d8a066c0a778cd02783e8dcae97819ec748b https://files.pythonhosted.org/packages/13/61/9ba55b21010198949411aff5445bd882ade7197dbe205ce321d9dabe5ee1/lensfunpy-1.18.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl'
124
'4281a0171d66d2098adce4ba706b8c550b1b10718650f682d64cde16e84e4de5 https://files.pythonhosted.org/packages/3a/61/0b23849141a4c4e7091fcd158ebb45195896974bebca3e58fee7cad4b4f4/llvmlite-0.49.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl'
125
'b6c819a722f7b6bd955b80781788e4a66a55628b858d347536b7e81325a3a5e3 https://files.pythonhosted.org/packages/db/bc/83e112abc66cd466c6b83f99118035867cecd41802f8d044638aa78a106e/locket-1.0.0-py2.py3-none-any.whl'
126
'0f304d4da1a4309ad15d38cb809ef73269cea73a3195ac944f38d7c56d8e0fd5 https://files.pythonhosted.org/packages/56/bb/5ba264d3ccc13294e74c48c3ef0c2e96b8b13765562628515654012cc47e/magicgui-0.10.2-py3-none-any.whl'
127
'fa6c92a00a4a3c98b22728c64a935ae1928250ae65058a6ded814d2cc29a4cea https://files.pythonhosted.org/packages/64/69/4a5af2bc115a9a33fefe51709749de8262be3f9ba063d1753a837cdbc49c/markdown-3.10.3-py3-none-any.whl'
128
'9f7ebbcd14fe59494226453aed97c1070d83f8d24b6fc3a3bcf9a38092641c4a https://files.pythonhosted.org/packages/b3/81/4da04ced5a082363ecfa159c010d200ecbd959ae410c10c0264a38cac0f5/markdown_it_py-4.2.0-py3-none-any.whl'
129
'8c8255de28f986d935a64c9ca71c0ec2d2f41d355691f5ea684725dc91413f71 https://files.pythonhosted.org/packages/29/5e/52f56f93d5b20815ee0ae352f7a38eff25580edb180b4fa7df87cfeba68f/matplotlib-3.11.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl'
130
'3c821cf1c209f59fb2d2d64abbf5b23b67bcb2210d663f9918dd851c6da1fcf6 https://files.pythonhosted.org/packages/41/09/5b161152e2d90f7b87f781c2e1267494aef9c32498df793f73ad0a0a494a/matplotlib_inline-0.2.2-py3-none-any.whl'
131
'84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8 https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl'
132
'546eab2a65bc3e929e610daac1cdd9bd36886d98a4fe0888f5e1dfa12e15963b https://files.pythonhosted.org/packages/ed/0a/5df6986090910113519aa993da1f265bac5603a9f83ecc889ef3ecc13391/napari-0.9.1-py3-none-any.whl'
133
'565df1fa15db579552af9e9d9d3883067c00191be282ad47d80f9b0d50b4e5ad https://files.pythonhosted.org/packages/01/72/2067f28fd0ae87978f3b61e8ec30c1d085bbed03f64eb58e43949d526b3a/napari_console-0.1.4-py3-none-any.whl'
134
'de30babe6fd9477816f037207938a2da7faeddc0e9e8663cb29f3d74235b6dc5 https://files.pythonhosted.org/packages/06/bc/2509813cddd0e02736121e21bef54deeec7f0f89af2c6096d753ee1feb09/napari_plugin_engine-0.2.1-py3-none-any.whl'
135
'9eaa54fbbf9bfd5078b67b7d1edc9eccfd872dab89fd586374909fef4ed89a49 https://files.pythonhosted.org/packages/d0/ae/0eeb22806c4157a9199f65a93374e5ff5c4d2cc1411b5d25053bcd9e6b91/napari_svg-0.2.1-py3-none-any.whl'
136
'87af6efd6b5e897c81050477ef65c62e2b2f35d51703cae01aff2905b1852e1c https://files.pythonhosted.org/packages/a0/c4/c2971a3ba4c6103a3d10c4b0f24f461ddc027f0f09763220cf35ca1401b3/nest_asyncio-1.6.0-py3-none-any.whl'
137
'd47fbf302e7d9cbbb9e2555a0d267983d2aa476bac30e90dfbe5669bd57f3762 https://files.pythonhosted.org/packages/9e/c9/b2622292ea83fbb4ec318f5b9ab867d0a28ab43c5717bb85b0a5f6b3b0a4/networkx-3.6.1-py3-none-any.whl'
138
'd6db6dc37eebdd54b3c90b3eaeaa11a37f6dd0e9c8cc3f8b67c9a0e64e9e3ad0 https://files.pythonhosted.org/packages/8d/b1/5e0b586573ed6c5d4c497032d0d52780d597517e4f2ecfc13e63cfb364b3/npe2-0.9.0-py3-none-any.whl'
139
'5269245a675abdd3e2c35ec6bb2f250355effa9032514d8f2354f0d2d10854bd https://files.pythonhosted.org/packages/1b/36/e614ba2bc0f005ed0f37a6413f08fe705210297ddb9a37a475a8b9fdab61/numba-0.67.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl'
140
'b0521d0f4aebb6e06189451025fa17a913287b13c03d5fe05c017333b654ea5b https://files.pythonhosted.org/packages/45/8f/9beacf79ca7c650688ad0baa80931adb988fe6e6e5d5903c23cc3dbd70eb/numpy-2.5.3-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl'
141
'2c74200c9ef4f78f1e067d4f90dc137ae061b43235a646b3e6cce89fca6f4ff8 https://files.pythonhosted.org/packages/e6/8b/58ac4e961fc9542ca10b8783752072a8aa49162ffa55143a3c127a8a3f21/openimageio-3.1.17.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl'
142
'69bb92469f86a1565195ece4ac0323943e83477171b91d24c35afe028a90d7cd https://files.pythonhosted.org/packages/23/cd/066e86230ae37ed0be70aae89aabf03ca8d9f39c8aea0dec8029455b5540/opt_einsum-3.4.0-py3-none-any.whl'
143
'd7193f7c8e4e93f444fde0262bf90af30e16fa0ad0ad44cb553c87339b23cd1c https://files.pythonhosted.org/packages/63/34/ba1c580383c9eada3711951fef0795c80b829a078d72188184bcab9dd527/packaging-26.3-py3-none-any.whl'
144
'9e94c2c5ca43bd3ca32bf64d32308887b65e5f9bfd8023ea52755107a999f93b https://files.pythonhosted.org/packages/fa/de/ceae2adf7034e07e9910299fe412e1819c4f0dd520700a888bcb03625448/pandas-3.0.5-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl'
145
'a8926eb2a1b915486941fdbd31e86a4baf88fe8c210f25f2f35ecec5b574ca1c https://files.pythonhosted.org/packages/99/5d/8268b644392ee874ee82a635cd0df1773de230bde356c38de28e298392cc/parso-0.8.7-py2.py3-none-any.whl'
146
'978e4ac767ec4ba5b86c6eaa52e5a2a3bc748a2ca839e8cc798f1cc6ce6efb0f https://files.pythonhosted.org/packages/71/e7/40fb618334dcdf7c5a316c0e7343c5cd82d3d866edc100d98e29bc945ecd/partd-1.4.2-py3-none-any.whl'
147
'7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523 https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl'
148
'251bf95b67017e27b13d82f5b326234ca62d70f9cf4c2b9032de2358a3b12c7b https://files.pythonhosted.org/packages/5c/44/c85361f65dbe00eea8576ee467c768d25129989efb76e94f205e9ca9bb46/pillow-12.3.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl'
149
'e982b129415c09c63308f314ae44697d83e5c96f253bcc0d5b833fc3329eb6d4 https://files.pythonhosted.org/packages/6d/5c/9507ea3c732f8a259f45ddf190a741e9bf7d3fe229b5d473917ee6efbf1e/pint-0.26.1-py3-none-any.whl'
150
'52f2f181bbfde907966932cc8312d967d02976422d66d537ea16092b8e291081 https://files.pythonhosted.org/packages/f4/e1/5b7b8bbb55084d1425bcb9bc823ff519e1b2be05f6ebb0089e2eacc38413/platformdirs-4.11.8-py3-none-any.whl'
151
'f265597baa9f760d25ceb29d0beb8186c243d6607b0f60b83ecf14078dbc703b https://files.pythonhosted.org/packages/2a/2d/d4bf65e47cea8ff2c794a600c4fd1273a7902f268757c531e0ee9f18aa58/pooch-1.9.0-py3-none-any.whl'
152
'01c0891d7f9237d5e339f7d3e42cdae80b7534abb1c7c0e3352efba6231492f2 https://files.pythonhosted.org/packages/54/6f/84908cad2d6aa5144abcf7b42709fe4fdb459bc640ec7ac5786e7693dabc/prompt_toolkit-3.0.53-py3-none-any.whl'
153
'076a2d2f923fd4821644f5ba89f059523da90dc9014e85f8e45a5774ca5bc6f9 https://files.pythonhosted.org/packages/b5/70/5d8df3b09e25bce090399cf48e452d25c935ab72dad19406c77f4e828045/psutil-7.2.2-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl'
154
'bf3dfebad343b13765f43d1f9cff97de4b2d456568a9abcea405703896a7a154 https://files.pythonhosted.org/packages/12/7c/4142e20ba33f6bc799d7e80a5136fefbbfc4643089b6b9638b074346bed7/psygnal-0.16.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl'
155
'4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35 https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl'
156
'96cae060a313cfaad51bb761278bfb0e62dc0248d9315a81173752dc546cd37a https://files.pythonhosted.org/packages/6d/18/83376915176eb058cb86470eb7396388a13350b09a8f233a79303bbcbc5b/pure_eval-0.2.4-py3-none-any.whl'
157
'd3b53eee1f8a2d60c1d135610f42e789774dbe71c6d8af68af0a21d3b3ec9eb7 https://files.pythonhosted.org/packages/72/40/50dd2e8bfec81676e4619903bd452c10dc0d8efac1533e79e67cc76759b5/pyconify-0.2.1-py3-none-any.whl'
158
'346a034f080da3755d8e9cb5e00e8b07de1d39e4f6e2c87d8ab7cafa0b269a73 https://files.pythonhosted.org/packages/eb/47/c95ffc2009878c7aac0c5e08528022dcb885933252a88b5f170058014464/pydantic-2.13.5-py3-none-any.whl'
159
'54d510bac3ee52247af28ed4bb18a1e799f040ac60fd2bf5ccd4c92f1fbe786f https://files.pythonhosted.org/packages/2c/9b/59634b7ac631c63b2a37760eb6943af3e29573d6b59a4abc5e7f019d4cee/pydantic_core-2.46.5-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl'
160
'1722ea2bddae5628ace25f2aa685b69978ef533123e5638cfbddb999e0100ec1 https://files.pythonhosted.org/packages/17/c1/3226e6d7f5a4f736f38ac11a6fbb262d701889802595cdb0f53a885ac2e0/pydantic_extra_types-2.11.1-py3-none-any.whl'
161
'0ba092c291c94baceb5eff768aa0d56400a457585bc0175925a5a5510303da42 https://files.pythonhosted.org/packages/30/a4/2bffa9f8e804325a09867f0e9d30795c80ea9f8d62560bd1b6ad6220eb2f/pydantic_settings-2.15.0-py3-none-any.whl'
162
'398a342a689061bfc4bfe7271a973e093f78176a632fb4e523b3ed5b72dba4c6 https://files.pythonhosted.org/packages/d5/3b/bc991e3abf4f6ad9907658e3b282530d345027fa294b510a9eb1fce882c4/pyfftw-0.15.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl'
163
'2363c69b61c4a97c838da3b130dcd6468f4848992b21a82f2a63ec34377137d9 https://files.pythonhosted.org/packages/71/46/17f022dd3e953bf20a04a028a21ec746d942f8d2af30fa0f124fa0e6a684/pygments-2.21.0-py3-none-any.whl'
164
'794a943daced39300879e4e47bd94525280685f42dbb5a998d336cfff151d74f https://files.pythonhosted.org/packages/de/e4/1ba6f44e491c4eece978685230dde56b14d51a0365bc1b774ddaa94d14cd/pyopengl-3.1.10-py3-none-any.whl'
165
'850ba148bd908d7e2411587e247a1e4f0327839c40e2e5e6d05a007ecc69911d https://files.pythonhosted.org/packages/10/bd/c038d7cc38edc1aa5bf91ab8068b63d4308c66c4c8bb3cbba7dfbc049f9c/pyparsing-3.3.2-py3-none-any.whl'
166
'9e5c6bfa8dcc30091c74b0cf803c81fdd29d94f01992a7707bc97babb1141913 https://files.pythonhosted.org/packages/bd/24/12818598c362d7f300f18e74db45963dbcb85150324092410c8b49405e42/pyproject_hooks-1.2.0-py3-none-any.whl'
167
'aaf9f25f0f324874085fa5b26a610318db8a8e243cf85bb3e5400595191c7778 https://files.pythonhosted.org/packages/0e/1a/84a84bbc75835ee88abdcb66eb875b8e1a21834af9b833bc1893f2c1bfaf/pyside6_essentials-6.11.2-cp310-abi3-manylinux_2_34_x86_64.whl'
168
'a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427 https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl'
169
'904552145e8bfed22162c09dab1c2b9b54fefa7b23ba780f4f26ca0316b0f0d9 https://files.pythonhosted.org/packages/0d/17/c5c6b53ddc18f297992099b3d9ec16c855c0ccc83263a21fe4d1c625ec6c/python_dotenv-1.2.3-py3-none-any.whl'
170
'c458b6d084f9b935061bc36216e8a69a7e293a2f1e68bf956dcd9e6cbcd143f5 https://files.pythonhosted.org/packages/88/f9/16491d7ed2a919954993e48aa941b200f38040928474c9e85ea9e64222c3/pyyaml-6.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl'
171
'dea74fd65f1fc5f7fe167916a473ebe6ed6174e5e5d9de11ea6583661be6cf43 https://files.pythonhosted.org/packages/62/2c/d5828306f795e8d34676d266823b74e2101e0ad3760d12083de3e02abbb2/pyzmq-27.2.0-cp312-abi3-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl'
172
'e1d1f6a792123363626e643a7a4ee561217773571043992693fba7eccfa89f95 https://files.pythonhosted.org/packages/7a/60/aba9f3c3f1f48c7fbdf03bed45b576a916cd09c08242939b5294b85e37b4/qtconsole-5.7.2-py3-none-any.whl'
173
'72095afe13673e017946cc258b8d5da43314197b741ed2890e563cf384b51aa1 https://files.pythonhosted.org/packages/69/76/37c0ccd5ab968a6a438f9c623aeecc84c202ab2fabc6a8fd927580c15b5a/QtPy-2.4.3-py3-none-any.whl'
174
'12d31766d5baffc6c50778ccf2e75e0256073c0b237506e448db85686513af93 https://files.pythonhosted.org/packages/22/62/8907bf728e8eafaaa6fda6c94166923bb98b24f9ef9e21009b953fb75cbb/rawpy-0.27.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl'
175
'381329a9f99628c9069361716891d34ad94af76e461dcb0335825aecc7692231 https://files.pythonhosted.org/packages/2c/58/ca301544e1fa93ed4f80d724bf5b194f6e4b945841c5bfd555878eea9fcb/referencing-0.37.0-py3-none-any.whl'
176
'2a0d60c172f83ac6ab31e4554906c0f3b3588d37b5cb939b1c061f4907e278e0 https://files.pythonhosted.org/packages/a0/f4/c67b0b3f1b9245e8d266f0f112c500d50e5b4e83cb6f3b71b6528104182a/requests-2.34.2-py3-none-any.whl'
177
'33bd4ef74232fb73fe9279a257718407f169c09b78a87ad3d296f548e27de0bb https://files.pythonhosted.org/packages/82/3b/64d4899d73f91ba49a8c18a8ff3f0ea8f1c1d75481760df8c68ef5235bf5/rich-15.0.0-py3-none-any.whl'
178
'dc319e5a1de4b6913aac94bf6a2f9e847371e0a140a43dd4991db1a09bc2d504 https://files.pythonhosted.org/packages/d1/9c/0d1fdc2e7aba23e290d603bc494e97bd205bae262ce33c6b32a69768ed5e/rpds_py-2026.6.3-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl'
179
'c6624a76c6085218248154cc7e1500e6b488edcd9499004dd0d35040607d7505 https://files.pythonhosted.org/packages/73/c3/cec6a3cbaadfdcc02bd6ff02f3abfe09eaa7f4d4e0a525a1e3a3f4bce49c/scikit_image-0.26.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl'
180
'ac0333bdf38309aa3dcbe7e3fa7ea29e7a2c37c6ea306a757b700ded8e4596ad https://files.pythonhosted.org/packages/6b/89/2a844506d49651e9aa1af6ef95b6bd8031cb1d5a4375edec6155037e04cf/scipy-1.18.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl'
181
'7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686 https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl'
182
'7a7a0a72a9ed26c9bf77d42246b1c736486befb8f31aa2fb29957ea4cdd1c1c2 https://files.pythonhosted.org/packages/a5/9a/f41bea4316d0c1bec4800842dcb4bd8fd3e29d6a79c496bc32e1aec42583/shiboken6-6.11.2-cp310-abi3-manylinux_2_34_x86_64.whl'
183
'4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274 https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl'
184
'd5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695 https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl'
185
'ce8400ae7b577d090368aae5bdbabb06cd6bc893f6ca73485bb686835bf20943 https://files.pythonhosted.org/packages/01/b9/748c3cbcdba20ef01c055a35905cad5c771cc1df29be11b9a82da6fd8e0d/superqt-0.8.2-py3-none-any.whl'
186
'f7e48417d8e83a559349f8fe6c1e302afd57e564276124bab84111129f43925a https://files.pythonhosted.org/packages/4f/bc/699eecd5f5829e28939e8dc22aeff0a65b8d37af80a4f6543d26e1184ad2/tifffile-2026.9.9-py3-none-any.whl'
187
'188306098d013b691fcadc011abd66727d3c414c571bb01b1a174ba8c983cf90 https://files.pythonhosted.org/packages/c7/18/c86eb8e0202e32dd3df50d43d7ff9854f8e0603945ff398974c1d91ac1ef/tomli_w-1.2.0-py3-none-any.whl'
188
'15ccc861ac51c53696de0a5d6d4607f99c210739caf987b5d2054f3efed429d8 https://files.pythonhosted.org/packages/fb/12/5911ae3eeec47800503a238d971e51722ccea5feb8569b735184d5fcdbc0/toolz-1.1.0-py3-none-any.whl'
189
'0cc0876a58eee9143476f24901b1b8eb4d52443283ade2b6bca650dd1da04f84 https://files.pythonhosted.org/packages/9e/0f/38f8d16011de3b1ce2babb4c3bcefb126d2dc47d04878ae3ad5c39a00caa/tornado-6.5.9-cp39-abi3-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl'
190
'c293e525e6fef9c20e8728fd4612df02a0aa31bb5fe91ecd93e123b1b7bffa73 https://files.pythonhosted.org/packages/a7/03/921a3d3c75785aca9ebfbfcabfbc3a1be12e2ab5265deb026d55a5a3f83e/tqdm-4.70.1-py3-none-any.whl'
191
'f775618166caa0396c8e337099240f2bd3e5e917d203b2e6fbe21a58d3cb1f6b https://files.pythonhosted.org/packages/ad/66/0d785f0bc5e4315a96c989bb476d0fc07ea4f85132550c7b156ca2035d52/traitlets-5.16.1-py3-none-any.whl'
192
'b3a5fc4342d5fc8fda8fc3010b1cf117e9249aab7fae800c2eff62fd3842d97d https://files.pythonhosted.org/packages/dc/bf/205d0004930ede8f542fb58f601526fccf4ae7626075ca1e6c4de5d3d652/typer-0.27.2-py3-none-any.whl'
193
'481caa481374e813c1b176ada14e97f1f67a4539ce9cfeb3f350d78d6370c2e8 https://files.pythonhosted.org/packages/49/d3/b8441a820a491ddfc024b0b0cf0393375b75ea13866d9c66727e54c2fc80/typing_extensions-4.16.0-py3-none-any.whl'
194
'65b8397ba37ccbce054456aaccddfc91e6e3083c92824df348d96ca832f3f147 https://files.pythonhosted.org/packages/67/81/4add07e5172b7ac40d8ed5ff580409a7801a4fe26d529bdd915401dabfbe/typing_inspection-0.4.4-py3-none-any.whl'
195
'9fb4c81ebbb1ce9531cce37674bbc6f1360472bc18ca9a553ede278ef7276897 https://files.pythonhosted.org/packages/7f/3e/5db95bcf282c52709639744ca2a8b149baccf648e39c8cc87553df9eae0c/urllib3-2.7.0-py3-none-any.whl'
196
'1cfd0317334946371b0209cb38f7ad14703e6dab989628f3351a2d3217391506 https://files.pythonhosted.org/packages/b9/cb/121699a669b7e262ac45797824b53f7f84c6b6db271249661ea8e97af9c5/vispy-0.16.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl'
197
'd5b73dba6158a595ec9370350e7f2637bcac8d6c5e4fde34f30fcffb6103a5e4 https://files.pythonhosted.org/packages/c4/0e/57f6bb3024a597b2e8ec4aee710ffe62ddc95af2e2bb1ee7a7abdc22c68c/wcwidth-0.8.3-py3-none-any.whl'
198
'78af62413095d0a57077606654ce85e273deda8e2bfa28fdb04257b962d94ef2 https://files.pythonhosted.org/packages/f5/7a/518e5f3ebd18472652e5332bf37728cd6634ff81a0aa568969d05cc66099/wrapt-2.4.1-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl'
199
)
200
# Build backend only: consumed by pip's build isolation, never installed into
201
# the shipped tree.
202
_buildwheels=(
203
'51a52592b3b99e102b609654876bd65f19f999935166d1352678931132b0c670 https://files.pythonhosted.org/packages/95/9c/c510029fc6ef33a6275cd2c5d3cecd6613dfd6aa401d57c54f1c18852ccf/setuptools-84.0.0-py3-none-any.whl'
204
'3217dcc807155e45db462d7ef2431f5ddda0d7273b700d05a67b271ceb1287ab https://files.pythonhosted.org/packages/2e/29/69cfbb602cd91690c55d38ba9fe53e6a7e76a6fa647bf38f19c138d25449/wheel-0.48.0-py3-none-any.whl'
205
)
206
207
source=(
208
"${_wheels[@]#* }"
209
"${_buildwheels[@]#* }"
210
"https://github.com/astral-sh/python-build-standalone/releases/download/${_pybuild}/${_pytarball}"
211
'spektrafilm.desktop'
212
'com.spektrafilm.app.svg'
213
"git+${url}.git#branch=main"
214
)
215
sha256sums=(
216
"${_wheels[@]%% *}"
217
"${_buildwheels[@]%% *}"
218
'3959f92825141e04adf44982d3a83ee57af0877e893b0796e04c1468749d9b04'
219
'60946106b1a86afd060fa48fe8d57a7fe765dd4b12643169d06068baa83767ca'
220
'15e37d86b41637cbbb0d50e99bb2b1b9291e8eed81e7fa7c7f47c72abea8e4cc'
221
'SKIP'
222
)
223
# Wheels and the interpreter tarball are unpacked by pip and by build(),
224
# not by makepkg.
225
noextract=(
226
"${_wheels[@]##*/}"
227
"${_buildwheels[@]##*/}"
228
"${_pytarball}"
229
)
230
231
pkgver() {
232
cd "${srcdir}/${_srctree}"
233
git describe --long --tags --abbrev=7 | sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g'
234
}
235
236
build() {
237
local _stage="${srcdir}/stage"
238
local _py="${_stage}/bin/python${_pyver}"
239
local _site="${_stage}/lib/python${_pyver}/site-packages"
240
241
# The bundled interpreter is not a venv, so it would otherwise read the
242
# *maintainer's* ~/.local/lib/python${_pyver}/site-packages. pip then
243
# reports those packages as already installed and silently leaves them out
244
# of the bundle, producing a package that only works on the machine that
245
# built it. check() verifies the result, this prevents it.
246
export PYTHONNOUSERSITE=1
247
unset PYTHONPATH PYTHONHOME
248
249
rm -rf "${_stage}"
250
bsdtar -xf "${srcdir}/${_pytarball}" -C "${srcdir}"
251
mv "${srcdir}/python" "${_stage}"
252
253
# Drop tkinter and the whole Tcl/Tk runtime the standalone interpreter
254
# bundles: nothing here imports it, it is the only part that would need
255
# shared libraries we do not ship, and its libtcl/libtk carry an RPATH
256
# pointing into the upstream build container (/tools/deps/lib) -- which
257
# namcap flags as insecure, rightly.
258
rm -rf "${_stage}/lib/python${_pyver}"/{tkinter,idlelib,turtledemo} \
259
"${_stage}/lib/python${_pyver}/lib-dynload"/_tkinter*.so \
260
"${_stage}/lib"/libtcl*.so \
261
"${_stage}/lib"/{tcl9,tcl9.0,tk9.0,itcl*,thread*} \
262
"${_stage}/bin"/idle*
263
264
# 1) Runtime dependencies, offline. Deliberately *without* --no-deps: pip
265
# resolves the locked set against itself, so an incomplete or internally
266
# inconsistent lock fails the build loudly instead of shipping a broken
267
# environment. --no-index makes any gap a hard error, never a download.
268
local _rt=( "${_wheels[@]##*/}" )
269
( cd "${srcdir}" && "${_py}" -m pip install --no-index --no-compile \
270
--no-warn-script-location --disable-pip-version-check "${_rt[@]}" )
271
272
# 2) spektrafilm itself. Build isolation is left on and fed from the same
273
# offline directory (setuptools/wheel), so the backend never touches the
274
# network and never lands in the shipped tree. --no-deps: see the note
275
# above the lock.
276
"${_py}" -m pip install --no-index --find-links "${srcdir}" --no-compile \
277
--no-deps --no-warn-script-location --disable-pip-version-check \
278
"${srcdir}/${_srctree}"
279
280
# 3) Qt ships plugins and QML modules this application never loads, and some
281
# of them link the PySide6 "addons" libraries that are deliberately not
282
# part of this bundle -- they are dead links that would otherwise drag
283
# postgresql, unixodbc, firebird, WebEngine and Quick3D into the
284
# dependency list. Pruning them is what keeps `depends` honest and
285
# complete instead of long and approximate.
286
local _qt="${_site}/PySide6/Qt"
287
rm -rf \
288
"${_qt}/plugins/sqldrivers" \
289
"${_qt}/plugins/designer" \
290
"${_qt}/plugins/qmltooling" \
291
"${_qt}/plugins/qmllint" \
292
"${_qt}/plugins/egldeviceintegrations" \
293
"${_qt}/plugins/wayland-graphics-integration-server" \
294
"${_qt}/plugins/imageformats/libqpdf.so" \
295
"${_qt}/plugins/platforminputcontexts/libqtvirtualkeyboardplugin.so" \
296
"${_qt}/qml/QtQuick/VirtualKeyboard" \
297
"${_qt}/qml/QtQuick/Scene2D" \
298
"${_qt}/qml/QtQuick/Scene3D" \
299
"${_qt}/qml/QtQuick/Pdf" \
300
"${_qt}/qml/QtQml/StateMachine" \
301
"${_qt}/qml/QtWayland/Compositor"
302
303
# 4) pip is a build tool here. Shipping it would hand users a way to write
304
# into /opt/spektrafilm as root and silently diverge from the lock.
305
"${_py}" -m pip uninstall -y --disable-pip-version-check pip >/dev/null
306
rm -rf "${_site}"/pip "${_site}"/pip-*.dist-info "${_stage}/bin"/pip*
307
308
# 5) Re-anchor every recorded build path at the install prefix *before*
309
# byte-compiling: entry-point shebangs, pip's direct_url.json records and
310
# anything else that captured $srcdir.
311
grep -rIlZ -- "${_stage}" "${_stage}" \
312
| xargs -0 --no-run-if-empty sed -i "s|${_stage}|${_prefix}|g"
313
grep -rIlZ -- "file://${srcdir}" "${_stage}" \
314
| xargs -0 --no-run-if-empty sed -i "s|file://${srcdir}|file:///build|g"
315
316
# 6) Byte-compile with the install prefix baked into the cached paths.
317
# /opt is read-only for users, so this is the only chance to get .pyc
318
# files -- and correct tracebacks -- into the package; without it every
319
# launch re-compiles napari's import graph and throws the result away.
320
# PySide6/scripts ships .tmpl.py Jinja templates that are not valid
321
# Python, and a few libraries ship deliberately broken syntax fixtures.
322
"${_py}" -m compileall -q -j 0 -s "${_stage}" -p "${_prefix}" \
323
-x '/(PySide6/scripts|tests?/data|test/badsyntax)/' "${_stage}" >/dev/null
324
}
325
326
check() {
327
local _stage="${srcdir}/stage"
328
local _py="${_stage}/bin/python${_pyver}"
329
local _site="${_stage}/lib/python${_pyver}/site-packages"
330
331
export PYTHONNOUSERSITE=1
332
unset PYTHONPATH PYTHONHOME
333
334
# Every locked wheel must be installed *inside* the bundle. Without this,
335
# a package present in the build user's home silently disappears from the
336
# bundle and the failure only shows up on someone else's machine.
337
local _w _name _rest _version _missing=0
338
for _w in "${_wheels[@]##*/}"; do
339
_name=${_w%%-*}; _rest=${_w#*-}; _version=${_rest%%-*}
340
if [[ ! -d ${_site}/${_name}-${_version}.dist-info ]]; then
341
printf 'not installed into the bundle: %s %s\n' "${_name}" "${_version}" >&2
342
_missing=$((_missing + 1))
343
fi
344
done
345
(( _missing == 0 )) || return 1
346
347
# Build the real application headlessly: create_app() is exactly what the
348
# entry point calls, so this exercises Qt, the napari viewer, vispy and the
349
# spektrafilm layer stack in one go. show_viewer_window()/napari.run() are
350
# left out on purpose -- the offscreen platform has no GL context.
351
PYTHONDONTWRITEBYTECODE=1 QT_QPA_PLATFORM=offscreen "${_py}" - <<'PY'
352
import napari
353
from spektrafilm_gui.app import create_app
354
355
app = create_app()
356
layers = len(app.viewer.layers)
357
assert layers > 0, 'create_app() produced an empty viewer'
358
app.viewer.close()
359
print('smoke OK: napari', napari.__version__, '-', layers, 'layers')
360
PY
361
362
# The shebangs already point at /opt, so drive the console script
363
# through the staged interpreter explicitly.
364
PYTHONDONTWRITEBYTECODE=1 QT_QPA_PLATFORM=offscreen \
365
"${_py}" "${_stage}/bin/spektrafilm-lut" list film >/dev/null
366
}
367
368
package() {
369
install -d "${pkgdir}/opt"
370
cp -a "${srcdir}/stage" "${pkgdir}${_prefix}"
371
372
# /usr/bin entry points. On NVIDIA + Wayland, vispy's legacy-GLSL shaders
373
# fail to compile through Qt's EGL path, so route Qt to xcb/XWayland when the
374
# proprietary driver is loaded and an X display exists (upstream napari
375
# limitation; on X11, xcb is already the default, so this is a no-op).
376
install -d "${pkgdir}/usr/bin"
377
cat > "${pkgdir}/usr/bin/spektrafilm" <<'EOF'
378
#!/bin/sh
379
# env -u/PYTHONNOUSERSITE: the bundle is self-contained and must not import
380
# from ~/.local/lib/python*/site-packages or from a stray PYTHONPATH.
381
if [ "${XDG_SESSION_TYPE:-}" = wayland ] && [ -n "${DISPLAY:-}" ] \
382
&& [ -d /sys/bus/pci/drivers/nvidia ]; then
383
QT_QPA_PLATFORM="${QT_QPA_PLATFORM:-xcb}"
384
export QT_QPA_PLATFORM
385
fi
386
exec env -u PYTHONPATH -u PYTHONHOME PYTHONNOUSERSITE=1 \
387
/opt/spektrafilm/bin/spektrafilm "$@"
388
EOF
389
cat > "${pkgdir}/usr/bin/spektrafilm-lut" <<'EOF'
390
#!/bin/sh
391
exec env -u PYTHONPATH -u PYTHONHOME PYTHONNOUSERSITE=1 \
392
/opt/spektrafilm/bin/spektrafilm-lut "$@"
393
EOF
394
chmod 755 "${pkgdir}/usr/bin/spektrafilm" "${pkgdir}/usr/bin/spektrafilm-lut"
395
396
install -Dm644 "${srcdir}/spektrafilm.desktop" \
397
"${pkgdir}/usr/share/applications/spektrafilm.desktop"
398
install -Dm644 "${srcdir}/com.spektrafilm.app.svg" \
399
"${pkgdir}/usr/share/icons/hicolor/scalable/apps/com.spektrafilm.app.svg"
400
401
install -Dm644 "${srcdir}/${_srctree}/LICENSE" \
402
"${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
403
install -Dm644 "${srcdir}/${_srctree}/SPEKTRAFILM_LICENSE.txt" \
404
"${pkgdir}/usr/share/licenses/${pkgname}/SPEKTRAFILM_LICENSE.txt"
405
install -Dm644 "${pkgdir}${_prefix}/lib/python${_pyver}/LICENSE.txt" \
406
"${pkgdir}/usr/share/licenses/${pkgname}/LICENSE.cpython"
407
}
408
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-09-16 17:23:26 | Low | 1 |