dupeguru
LOW
maintainer fuan_k
107 votes
scanned 2026-09-17 00:27:14.276658
Why flagged
The pip install runs on requirements.txt from the project's own source, which is a normal build step for Python projects and not an external untrusted package.
Triggered rules
Low
AI review
llm_review
An AI model (qwen/qwen3-235b-a22b-07-25) reviewed this and agrees it is LOW (confidence 95%): The pip install runs on requirements.txt from the project's own source, which is a normal build step for Python projects and not an external untrusted package.
1 higher static finding superseded - not the current verdict (shown for transparency)
Medium
pip install of an external package
pip_install_external
`pip install <package>` fetches an unpinned package from PyPI at build time, outside source=() and makepkg's checksums.
-
PKGBUILD:41
python3 -m pip install -r requirements.txt
PKGBUILD
1 offending line(s) highlighted
1
# Maintainer: fuan_k <rrkay at posteo dot net>
2
# Contributor: Bijaya Dangol <dangoldbj23@gmail.com>
3
# Contributor: Virgil Dupras <hsoft@hardcoded.net>
4
pkgname=dupeguru
5
pkgver=4.3.1
6
pkgrel=3
7
pkgdesc="Find duplicate files with various contents, using perceptual diff for pictures"
8
arch=('any')
9
url="https://dupeguru.voltaicideas.net/"
10
license=('GPL3')
11
depends=('python' 'python-pip' 'python-pyqt5' 'python-polib'
12
'python-semantic-version' 'python-xxhash'
13
'python-mutagen' 'python-send2trash' 'libxkbcommon-x11')
14
makedepends=('python-distro' 'python-sphinx' 'python-setuptools')
15
source=("https://github.com/arsenetar/${pkgname}/archive/refs/tags/${pkgver}.tar.gz"
16
'0001-fix-Replace-use-of-imp-with-importlib.patch'
17
'0002-setuptools-sandbox-deprecation.patch'
18
)
19
md5sums=('996f2a9bab1541c188f823e9647f341c'
20
'd6874bc038efd92420517407665c7f69'
21
'479f7be4a4bf64b92baff59dff20b1fd'
22
)
23
provides=('dupeguru')
24
conflicts=('dupeguru-git' 'dupeguru-se' 'dupeguru-pe' 'dupeguru-me')
25
26
prepare() {
27
cd "${srcdir}/${pkgname}-${pkgver}"
28
sed -i -E 's/polib.*/polib>=1.1.0/g' requirements.txt
29
sed -i -E '125s/.*/ packages = ["hscommon", "core", "qt"]/' package.py
30
# Replace use of `imp` with `importlib`
31
patch -p1 < "${srcdir}"/0001-fix-Replace-use-of-imp-with-importlib.patch
32
# Workaround for setuptools sandbox deprecation
33
patch -p1 < "${srcdir}"/0002-setuptools-sandbox-deprecation.patch
34
}
35
36
build() {
37
cd "${pkgname}-${pkgver}"
38
# Instead of doing the full ./bootstrap.sh
39
python3 -m venv env --system-site-packages
40
source env/bin/activate
41
python3 -m pip install -r requirements.txt
42
msg "Starting build..."
43
python build.py --clean
44
}
45
46
package() {
47
cd "${pkgname}-${pkgver}"
48
49
cp -R "help" "build"
50
cp -R "locale" "build"
51
python package.py --arch-pkg
52
cd "build/${pkgname}-arch"
53
54
mkdir -p "${pkgdir}/usr/share/applications"
55
mv ${pkgname}.desktop "${pkgdir}/usr/share/applications"
56
57
mkdir -p "${pkgdir}/usr/share/${pkgname}"
58
cp -a -- * "${pkgdir}/usr/share/${pkgname}/"
59
chmod a+x "${pkgdir}/usr/share/${pkgname}/run.py"
60
61
mkdir -p "${pkgdir}/usr/share/pixmaps"
62
ln -s "/usr/share/${pkgname}/dgse_logo_128.png" "${pkgdir}/usr/share/pixmaps/${pkgname}.png"
63
mkdir -p "${pkgdir}/usr/bin"
64
ln -s ../share/${pkgname}/run.py "${pkgdir}/usr/bin/${pkgname}"
65
}
66
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-09-17 00:27:14 | Low | 2 |
| 2026-09-16 00:03:17 | Low | 2 |
| 2026-09-15 00:25:31 | Low | 2 |
| 2026-09-14 00:27:57 | Low | 2 |
| 2026-09-13 00:19:54 | Low | 2 |
| 2026-09-12 00:25:17 | Low | 2 |
| 2026-09-11 00:19:22 | Low | 2 |
| 2026-09-10 00:22:44 | Low | 2 |
| 2026-09-09 00:04:09 | Low | 2 |
| 2026-09-08 00:18:08 | Low | 2 |
| 2026-09-07 00:30:15 | Low | 2 |
| 2026-09-06 00:17:06 | Low | 2 |
| 2026-09-05 00:16:27 | Low | 2 |
| 2026-09-04 00:03:13 | Low | 2 |
| 2026-09-03 00:15:47 | Low | 2 |
| 2026-09-02 00:02:31 | Low | 2 |
| 2026-09-01 00:11:19 | Low | 2 |
| 2026-08-31 00:19:57 | Low | 2 |
| 2026-08-30 00:04:14 | Low | 2 |
| 2026-08-29 00:29:17 | Low | 2 |