eilin-hg
maintainer dreieck
· 0 votes
· scanned 2026-08-03 00:08:14.047287
LOW
View on AUR ↗
Why flagged
The package downloads source code from SourceForge, a non-whitelisted but plausible project host, but it is the project's own official repository via Mercurial; the downloaded content is source code being compiled, not a prebuilt executable, and the worst case of a malicious swap would be code injection during build, which is mitigated by the use of version control and transparent build process.
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-07-25) reviewed the full PKGBUILD and judged it LOW (confidence 95%): The package downloads source code from SourceForge, a non-whitelisted but plausible project host, but it is the project's own official repository via Mercurial; the downloaded content is source code being compiled, not a prebuilt executable, and the worst case of a malicious swap would be code injection during build, which is mitigated by the use of version control and transparent build process.
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:61
"${_pkgname}::hg+http://hg.code.sf.net/p/eilin/mercurial#branch=hidreport"
PKGBUILD
1 offending line(s) highlighted
1
# Maintainer: dreieck
2
# Contributor: Lukas Jirkovsky <l.jirkovsky@gmail.com>
3
_pkgname=eilin
4
pkgname="${_pkgname}-hg"
5
epoch=0
6
pkgver=date20170101_r216.a713d4319273
7
pkgrel=4
8
pkgdesc="Utility to control EIZO monitors under Linux."
9
arch=(
10
'i686'
11
'x86_64'
12
)
13
url="http://sourceforge.net/p/eilin/home/Home/"
14
license=('GPL3')
15
depends=(
16
'expat'
17
'gcc-libs'
18
'glibc'
19
'libusb'
20
# 'libusbpp' # eilin build script tries to download libusbpp sources on it's own.
21
)
22
makedepends=(
23
'cmake'
24
'git' # For clone of libusbpp which is done during the build process.
25
'mercurial'
26
'qt5-base'
27
'shadow'
28
)
29
30
optdepends=(
31
'qt5-base: For the GUI'
32
)
33
34
provides=(
35
"${_pkgname}"
36
"qeilin-hg"
37
"qeilin"
38
"${_pkgname}-doc-hg"
39
"qeilin-doc-hg"
40
"${_pkgname}-doc"
41
"qeilin-doc"
42
"libusbpp-git"
43
"testhid-git"
44
"libusbpp"
45
"testhid"
46
)
47
48
conflicts=(
49
"${_pkgname}"
50
"qeilin"
51
"${_pkgname}-doc"
52
"qeilin-doc"
53
"libusbpp"
54
"testhid"
55
)
56
57
options+=('!emptydirs') # Remove empty dirs, because some top spurious level directories of ${srcdir} would be left over in the package otherwise.
58
59
install="${_pkgname}.install"
60
source=(
61
"${_pkgname}::hg+http://hg.code.sf.net/p/eilin/mercurial#branch=hidreport"
62
"libusbpp_download_fix.patch"
63
"libusbpp.pc.in"
64
"${install}"
65
"website_main.html::http://sourceforge.net/p/eilin/home/Home/"
66
"website_installation.html::http://sourceforge.net/p/eilin/home/Installation/"
67
"website_usage.html::https://sourceforge.net/p/eilin/home/Usage/"
68
"website_new-device-support.html::https://sourceforge.net/p/eilin/home/New%20Device%20Support/"
69
)
70
sha256sums=(
71
'SKIP'
72
'75e98659e14632c1f6dc96ef8b8b9214ae4a998e0caacc3fec9cd47b8ffc568a'
73
'47167c82b3fdbbc942465d7f23d07ddf88df34411ad0c245ac61f94735a178f4'
74
'52f58d41e8e80033d13eb4433049be62073b2da3dfbf0a713f2e28b0f0bf1d6e'
75
'SKIP'
76
'SKIP'
77
'SKIP'
78
'SKIP'
79
)
80
81
prepare() {
82
cd "${srcdir}/${_pkgname}"
83
84
for _patch in "${srcdir}/libusbpp_download_fix.patch"; do
85
msg2 "Applying patch $(basename "${_patch}" ...)"
86
patch -Np1 --follow-symlinks -i "${_patch}"
87
done
88
89
msg2 "Creating mercurial commit log ..."
90
hg log -b . --style changelog > "ChangeLog-mercurial.txt"
91
}
92
93
pkgver() {
94
cd "${srcdir}/${_pkgname}"
95
96
# _ver='latest'
97
_date="$(hg log -l 1 -b . -T '{date|shortdate}' | tr -d '-')"
98
_rev="$(hg identify -n | sed -E -e 's|\+$||')"
99
_hash="$(hg identify -i | sed -E -e 's|\+$||')"
100
101
# if [ -z "${_ver}" ]; then
102
# printf "%s %s." "Error in 'pkgver()': Could not determine" "version" > /dev/stderr
103
# return 11
104
# fi
105
if [ -z "${_date}" ]; then
106
printf "%s %s." "Error in 'pkgver()': Could not determine" "latest commit date" > /dev/stderr
107
return 13
108
fi
109
if [ -z "${_rev}" ]; then
110
printf "%s %s." "Error in 'pkgver()': Could not determine" "commit count" > /dev/stderr
111
return 12
112
fi
113
if [ -z "${_hash}" ]; then
114
printf "%s %s." "Error in 'pkgver()': Could not determine" "global revision ID" > /dev/stderr
115
return 14
116
fi
117
118
printf "date%s_r%s.%s" "${_date}" "${_rev}" "${_hash}"
119
}
120
121
build() {
122
cd "${srcdir}/${_pkgname}"
123
124
msg2 "Running 'cmake' ..."
125
cmake . \
126
-DINSTALL_SETUID=OFF \
127
-DCMAKE_BUILD_TYPE=Release \
128
-DCMAKE_INSTALL_PREFIX=/usr \
129
-DCMAKE_COLOR_MAKEFILE=ON \
130
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
131
-DCMAKE_VERBOSE_MAKEFILE=ON
132
133
# '-lpthread' needs to be at the end of the linker flags (after '../libusbpp/install/lib/libusbpp.a'), otherwise qeilin compilation might fail with
134
# /sbin/ld: ../libusbpp/install/lib/libusbpp.a(context.cpp.o): undefined reference to symbol 'pthread_create@@GLIBC_2.2.5'
135
# /sbin/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.1/../../../../lib/libpthread.so: error adding symbols: DSO missing from command line
136
msg2 "Fixing 'qeilin/CMakeFiles/qeilin.dir/link.txt' ..."
137
sed -E 's|(libusbpp.a)|\1 -lpthread|' -i "qeilin/CMakeFiles/qeilin.dir/link.txt"
138
139
# 'make' does need internet connection, since it pulls in 'libusbpp' ...
140
msg2 "Running 'make' (Needs internet connection )-:) ..."
141
make
142
143
msg2 "Making 'libusbpp.so' shared object ..."
144
gcc ${CFLAGS} ${LDFLAGS} $(pkg-config --cflags --libs libusb-1.0) -shared -o "${srcdir}/${_pkgname}/libusbpp/install/lib/libusbpp.so" "${srcdir}/${_pkgname}/libusbpp/install/lib/libusbpp.a"
145
146
msg2 "Generating libusbpp-pkg-config file ..."
147
install -dm755 "${srcdir}/${_pkgname}/libusbpp/install/lib/pkgconfig"
148
sed 's|@VERSION@|'"$(hg log --cwd "${srcdir}/${_pkgname}/libusbpp/src/libusbpp_project" -l 1 -b . -T '{date|shortdate}' | tr -d '-')"'|g' "${srcdir}/libusbpp.pc.in" > "${srcdir}/${_pkgname}/libusbpp/install/lib/pkgconfig/libusbpp.pc"
149
}
150
151
package() {
152
cd "${srcdir}/${_pkgname}"
153
154
# Installation of main software.
155
# 'make install' does need internet connection, since it pulls in 'libusbpp' ...
156
msg2 "Running 'make install' (needs internet connection )-:) ..."
157
make DESTDIR="${pkgdir}/" install
158
159
# Moving libusbpp stuff to the right place.
160
msg2 "Moving libusbpp stuff to the right place ..."
161
rm "${srcdir}/${_pkgname}/libusbpp/install/lib/libusbpp.a"
162
install -dvm755 "${pkgdir}/usr"
163
cp -avl "${srcdir}/${_pkgname}/libusbpp/install"/{bin,include,lib} "${pkgdir}/usr"/
164
rm -R "${pkgdir}/${srcdir}" # This will leave over some not-needed empty directories; 'options=(!emptydirs)' to make 'makepkg' geting rid of them.
165
166
# Install the udev rule.
167
msg2 "Installing udev rule ..."
168
install -Dvm644 51-eizo.rules "${pkgdir}/usr/lib/udev/rules.d/51-eizo.rules"
169
170
# Install documentation.
171
msg2 "Inatalling documentation ..."
172
for _docfile in ChangeLog-mercurial.txt NEWS NOTES README; do
173
install -Dvm644 "${_docfile}" "${pkgdir}/usr/share/doc/${_pkgname}/${_docfile}"
174
done
175
install -dm755 "${pkgdir}/usr/share/doc/${_pkgname}/html"
176
cp -vL "${srcdir}"/website*.html "${pkgdir}/usr/share/doc/${_pkgname}/html/"
177
chmod 644 "${pkgdir}/usr/share/doc/${_pkgname}/html"/website*.html
178
179
# Install license file.
180
msg2 "Installing license file ..."
181
install -Dvm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE.txt"
182
}
183
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 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 00:14:47 | LOW | 2 |
| 2026-07-22 00:29:32 | LOW | 2 |
| 2026-07-21 00:24:15 | LOW | 2 |
| 2026-07-20 00:19:49 | LOW | 2 |
| 2026-07-19 00:17:08 | LOW | 2 |
| 2026-07-18 00:14:48 | LOW | 2 |
| 2026-07-17 00:06:16 | LOW | 2 |
| 2026-07-16 00:05:41 | LOW | 2 |
| 2026-07-15 00:09:25 | LOW | 2 |