python-fastkml-git
maintainer dreieck
· 0 votes
· scanned 2026-08-03 00:08:14.047287
LOW
View on AUR ↗
Why flagged
The package builds from a git repository on GitHub, which is the project's own source; the non-whitelisted host is a false concern as GitHub is a standard and trusted forge, and the source is not a prebuilt executable.
Triggered rules
LOW
AI review downgraded a static finding
llm_review
The static rules flagged this MEDIUM, but an AI model (qwen/qwen3-235b-a22b-2507) reviewed the full PKGBUILD and judged it LOW (confidence 95%): The package builds from a git repository on GitHub, which is the project's own source; the non-whitelisted host is a false concern as GitHub is a standard and trusted forge, and the source is not a prebuilt executable.
1 higher static finding superseded - not the current verdict (shown for transparency)
MEDIUM
source=() URL on a non-standard host
source_untrusted_domain
One or more source=() URLs point to a host outside the trusted allowlist (github.com, gitlab.com, codeberg.org, pypi.org, …).
-
PKGBUILD:58
"${_pkgname}::git+https://${_githost}/${_gituser}/${_gitname}.git"
PKGBUILD
1 offending line(s) highlighted
1
# Maintainer: dreieck (https://aur.archlinux.org/account/dreieck)
2
3
_pyname="fastkml"
4
_gitname="${_pyname}"
5
_pkgname="python-${_pyname}"
6
pkgname="${_pkgname}-git"
7
pkgver=1.4.0+118.r1728.20260722.7228bed
8
pkgrel=1
9
pkgdesc="A Python library for reading, writing and manipulating KML files."
10
groups=()
11
arch=(
12
'any'
13
)
14
_githost='github.com'
15
_gituser='cleder'
16
url="https://fastkml.readthedocs.io/"
17
license=("LGPL-2.1-or-later")
18
depends=(
19
'python>=3.9'
20
'python-arrow'
21
'python-lxml'
22
'python-pygeoif>=1.5'
23
'python-typing_extensions>=4'
24
)
25
makedepends=(
26
'git'
27
'python-build'
28
'python-installer'
29
'python-setuptools>=61.2'
30
'python-wheel'
31
32
## docs:
33
'python-sphinx'
34
'python-pyshp'
35
'python-sphinx-autodoc-typehints'
36
'python-sphinx_rtd_theme'
37
)
38
optdepends=()
39
checkdepends=(
40
'python-anyio'
41
'python-hypothesis'
42
'python-pluggy'
43
'python-pytest'
44
'python-pytest-cov'
45
'python-pytz'
46
'python-tzdata'
47
)
48
provides=(
49
"${_pkgname}=${pkgver}"
50
"${_pkgname}-docs=${pkgver}"
51
)
52
conflicts=(
53
"${_pkgname}"
54
"${_pkgname}-docs"
55
)
56
57
source=(
58
"${_pkgname}::git+https://${_githost}/${_gituser}/${_gitname}.git"
59
)
60
sha256sums=(
61
'SKIP'
62
)
63
64
prepare() {
65
cd "${srcdir}/${_pkgname}"
66
67
git log > "${srcdir}/git.log"
68
}
69
70
pkgver() {
71
cd "${srcdir}/${_pkgname}"
72
73
# _ver="$(grep -E '^[[:space:]]*version[[:space:]]*=' pyproject.toml | head -n1 | awk -F= '{print $2}' | tr -d \'\"[[:space:]])"
74
_ver="$(git describe --tags | sed -E -e 's|^[vV]||' -e 's|\-g[0-9a-f]*$||' | tr '-' '+')"
75
_rev="$(git rev-list --count HEAD)"
76
_date="$(git log -1 --date=format:"%Y%m%d" --format="%ad")"
77
_hash="$(git rev-parse --short HEAD)"
78
79
if [ -z "${_ver}" ]; then
80
error "Version could not be determined."
81
return 1
82
else
83
printf '%s' "${_ver}.r${_rev}.${_date}.${_hash}"
84
fi
85
}
86
87
build() {
88
cd "${srcdir}/${_pkgname}"
89
printf '%s\n' " --> building ..."
90
python -m build --wheel --no-isolation
91
92
printf '%s\n' " --> building documentation ..."
93
make -C docs text
94
make -C docs man
95
make -C docs html
96
make -C docs changes
97
}
98
99
check() {
100
cd "${srcdir}/${_pkgname}"
101
printf '%s\n' " --> testing ..."
102
pytest --hypothesis-profile=ci # See https://github.com/cleder/fastkml/issues/491#issuecomment-3879849104: Fewer iterations to make the overall run taking less time to not fail with an error just due to timeout.
103
104
printf '%s\n' " --> testing documentation ..."
105
make -C docs doctest
106
make -C docs coverage
107
}
108
109
package() {
110
cd "${srcdir}/${_pkgname}"
111
printf '%s\n' " --> installing ..."
112
python -m installer --destdir="$pkgdir" --compile-bytecode=2 dist/*.whl
113
114
_docfiles=(
115
"${srcdir}/git.log"
116
README.rst
117
docs/*.rst
118
docs/*.gif
119
docs/*.jpg
120
docs/*.txt
121
docs/*.kml
122
)
123
_docdirs=(
124
docs/_build/{changes,html,text}
125
)
126
_manfiles=(
127
# docs/_build/man/fastkml.1
128
docs/_build/man/*
129
)
130
_infofiles=()
131
_licensefiles=(
132
LICENSE
133
)
134
printf '%s\n' " --> installing documentation ..."
135
for _docfile in "${_docfiles[@]}"; do
136
install -D -v -m644 "${_docfile}" "${pkgdir}/usr/share/doc/${_pkgname}/$(basename "${_docfile}")"
137
done
138
for _docdir in "${_docdirs[@]}"; do
139
cp -rv "${_docdir}" "${pkgdir}/usr/share/doc/${_pkgname}/$(basename "${_docdir}")"
140
done
141
for _manfile in "${_manfiles[@]}"; do
142
_section="$(basename "${_manfile}" .gz | sed -E -e 's|^.*\.([^.]*)$|\1|')"
143
install -D -v -m644 "${_manfile}" "${pkgdir}/usr/share/man/man${_section}/$(basename "${_manfile}")"
144
done
145
for _infofile in "${_infofiles[@]}"; do
146
install -D -v -m644 "${_infofile}" "${pkgdir}/usr/share/info/$(basename "${_infofile}")"
147
done
148
printf '%s\n' " --> installing license ..."
149
for _licensefile in "${_licensefiles[@]}"; do
150
install -D -v -m644 "${_licensefile[@]}" "${pkgdir}/usr/share/licenses/${pkgname}/$(basename "${_licensefile}")"
151
ln -svr "${pkgdir}/usr/share/licenses/${pkgname}/$(basename "${_licensefile}")" "${pkgdir}/usr/share/doc/${_pkgname}/$(basename "${_licensefile}")"
152
done
153
}
154
155
Changes since previous scan
--- PKGBUILD @ 2026-06-19 23:51+++ PKGBUILD @ 2026-08-03 00:08@@ -4,7 +4,7 @@ _gitname="${_pyname}" _pkgname="python-${_pyname}" pkgname="${_pkgname}-git"-pkgver=1.4.0+49.r1659.20260119.052ae67+pkgver=1.4.0+118.r1728.20260722.7228bed pkgrel=1 pkgdesc="A Python library for reading, writing and manipulating KML files." groups=()@@ -99,7 +99,7 @@ check() { cd "${srcdir}/${_pkgname}" printf '%s\n' " --> testing ..."- pytest+ pytest --hypothesis-profile=ci # See https://github.com/cleder/fastkml/issues/491#issuecomment-3879849104: Fewer iterations to make the overall run taking less time to not fail with an error just due to timeout. printf '%s\n' " --> testing documentation ..." make -C docs doctestScan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-08-03 00:08:14 | LOW | 2 |
| 2026-08-02 00:16:08 | LOW | 2 |
| 2026-08-01 00:11:18 | LOW | 2 |
| 2026-07-31 00:14:10 | LOW | 2 |
| 2026-07-30 00:17:23 | LOW | 2 |
| 2026-07-29 00:25:53 | LOW | 2 |
| 2026-07-28 00:07:28 | LOW | 2 |
| 2026-07-27 00:24:32 | LOW | 2 |
| 2026-07-26 00:07:32 | LOW | 2 |
| 2026-07-25 00:13:44 | LOW | 2 |
| 2026-07-24 00:02:28 | LOW | 2 |
| 2026-07-23 09:22:54 | MEDIUM | 1 |
| 2026-06-19 23:51:18 | CLEAN | 2 |
| 2026-06-19 19:07:35 | MEDIUM | 2 |
| 2026-06-18 16:11:54 | MEDIUM | 1 |