exifcleaner
maintainer zxp19821005
· 0 votes
· scanned 2026-08-03 00:08:14.047287
LOW
View on AUR ↗
Why flagged
The package builds from a legitimate GitHub source, uses system-wide Electron, and applies standard build steps; the only concern is a low-vote, recent AUR upload, but no malicious or high-risk behavior is present.
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.
LOW
AI review
llm_review
An AI model (qwen/qwen3-235b-a22b-2507) reviewed this and agrees it is LOW (confidence 85%): The package builds from a legitimate GitHub source, uses system-wide Electron, and applies standard build steps; the only concern is a low-vote, recent AUR upload, but no malicious or high-risk behavior is present.
PKGBUILD
1
# Maintainer: zxp19821005 <zxp19821005 at 163 dot com>
2
pkgname=exifcleaner
3
_pkgname=ExifCleaner
4
pkgver=4.0.0
5
_electronversion=35
6
_nodeversion=22
7
pkgrel=1
8
pkgdesc="Clean metadata from images, videos, PDFs, and other files.(Use system-wide electron)"
9
arch=('any')
10
url="https://exifcleaner.com/"
11
_ghurl="https://github.com/szTheory/exifcleaner"
12
license=('MIT')
13
depends=(
14
"electron${_electronversion}"
15
'perl'
16
)
17
makedepends=(
18
'npm'
19
'nvm'
20
'git'
21
'curl'
22
'yarn'
23
'jq'
24
)
25
source=(
26
"${pkgname}-${pkgver}.tar.gz::${_ghurl}/archive/refs/tags/v${pkgver}.tar.gz"
27
"${pkgname}.sh"
28
)
29
sha256sums=('73f5c337f6cfc21c4667b295270d182936f6b43a12d85b2202c4fe84c9d48c60'
30
'a774c2f54fbbeeaac3cefc0f7250796d30c86d27f0fd40b7eaf9c0fdb021623d')
31
_ensure_local_nvm() {
32
local NVM_DIR="${srcdir}/.nvm"
33
source /usr/share/nvm/init-nvm.sh || [[ $? != 1 ]]
34
nvm install "${_nodeversion}"
35
nvm use "${_nodeversion}"
36
}
37
_set_build_env() {
38
export ELECTRON_DIST="/usr/lib/electron${_electronversion}"
39
export ELECTRON_SKIP_BINARY_DOWNLOAD=1
40
export SYSTEM_ELECTRON_VERSION="$(electron${_electronversion} -v | sed 's/v//g')"
41
export HOME="${srcdir}/.electron-gyp"
42
mkdir -p "${srcdir}/.electron-gyp"
43
if [[ "$(curl -s ipinfo.io/country)" == *"CN"* ]]; then
44
{
45
export YARN_REGISTRY="https://registry.npmmirror.com"
46
export ELECTRON_MIRROR="https://registry.npmmirror.com/-/binary/electron/"
47
export ELECTRON_BUILDER_BINARIES_MIRROR="https://registry.npmmirror.com/-/binary/electron-builder-binaries/"
48
export NODEJS_ORG_MIRROR="https://npmmirror.com/mirrors/node"
49
export YARN_CACHE_FOLDER="${srcdir}/.yarn/cache"
50
export YARN_PLUGINS_FOLDER="${srcdir}/.yarn/plugins"
51
export YARN_GLOBAL_FOLDER="${srcdir}/.yarn/global"
52
export YARN_USE_HARDLINKS=true
53
# export YARN_BUILD_FROM_SOURCE=true
54
export YARN_LINK_WORKSPACE_PACKAGES=true
55
export YARN_FETCH_RETRIES=3
56
export YARN_FETCH_RETRY_TIMEOUT=10000
57
export YARN_NETWORK_CONCURRENCY=32
58
}
59
find ./ -type f -name "yarn.lock" -exec sed -i "s/registry.yarnpkg.com/registry.npmmirror.com/g" {} +
60
fi
61
}
62
_get_app_dir() {
63
find "${srcdir}" -type f -name "resources.pak" -exec dirname {} + | head -n 1
64
}
65
_get_electron_version() {
66
_elec_ver=$(find "${srcdir}" -maxdepth 5 -name "package.json" ! -path "*/node_modules/*" \
67
-exec grep -l '"electron"' {} + | xargs -I{} jq -r '(.devDependencies.electron // .dependencies.electron) // empty' {} 2>/dev/null | head -1)
68
[[ -z "${_elec_ver}" ]] && return 1
69
echo -e "The electron version is: \033[1;31m${_elec_ver%%.*}\033[0m"
70
}
71
prepare() {
72
cd "${srcdir}/${pkgname}-${pkgver}"
73
sed -i -e "
74
s/@electronversion@/${_electronversion}/g
75
s/@appname@/${pkgname}/g
76
s/@runname@/app.asar/g
77
s/@cfgdirname@/${_pkgname}/g
78
" "${srcdir}/${pkgname}.sh"
79
gendesk -q -f -n \
80
--pkgname="${pkgname}" \
81
--pkgdesc="${pkgdesc}" \
82
--categories="Graphics;Utility" \
83
--name="${_pkgname}" \
84
--exec="${pkgname} %U"
85
_set_build_env
86
_ensure_local_nvm
87
sed -i "s/\"electron\": \"[^\"]*\"/\"electron\": \"${SYSTEM_ELECTRON_VERSION}\"/g" package.json
88
find src -type f -exec sed -i "s/process.resourcesPath/\'\/usr\/lib\/${pkgname}\'/g" {} +
89
NODE_ENV=development yarn install --cache-folder "${srcdir}/.yarn_cache"
90
}
91
build() {
92
cd "${srcdir}/${pkgname}-${pkgver}"
93
_set_build_env
94
_ensure_local_nvm
95
NODE_ENV=production yarn compile
96
NODE_ENV=production yarn electron-builder --linux dir -c.electronDist="${ELECTRON_DIST}"
97
}
98
package() {
99
install -Dm755 "${srcdir}/${pkgname}.sh" "${pkgdir}/usr/bin/${pkgname}"
100
install -Dm755 -d "${pkgdir}/usr/lib/${pkgname}"
101
local _app_dir=$(_get_app_dir)
102
cp -a "${_app_dir}/resources/"* "${pkgdir}/usr/lib/${pkgname}/"
103
rm -rf "${pkgdir}/usr/lib/${pkgname}/default_app.asar"
104
install -Dm644 "${srcdir}/${pkgname}-${pkgver}/build/icon.png" "${pkgdir}/usr/share/pixmaps/${pkgname}.png"
105
install -Dm644 "${srcdir}/${pkgname}-${pkgver}/${pkgname}.desktop" -t "${pkgdir}/usr/share/applications"
106
install -Dm644 "${srcdir}/${pkgname}-${pkgver}/LICENSE" -t "${pkgdir}/usr/share/licenses/${pkgname}"
107
}
108
Scan 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 05:10:22 | LOW | 2 |