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
4pkgname="${_pkgname}-hg"
5epoch=0
6pkgver=date20170101_r216.a713d4319273
7pkgrel=4
8pkgdesc="Utility to control EIZO monitors under Linux."
9arch=(
10 'i686'
11 'x86_64'
12)
13url="http://sourceforge.net/p/eilin/home/Home/"
14license=('GPL3')
15depends=(
16 'expat'
17 'gcc-libs'
18 'glibc'
19 'libusb'
20 # 'libusbpp' # eilin build script tries to download libusbpp sources on it's own.
21)
22makedepends=(
23 'cmake'
24 'git' # For clone of libusbpp which is done during the build process.
25 'mercurial'
26 'qt5-base'
27 'shadow'
28)
29
30optdepends=(
31 'qt5-base: For the GUI'
32)
33
34provides=(
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
48conflicts=(
49 "${_pkgname}"
50 "qeilin"
51 "${_pkgname}-doc"
52 "qeilin-doc"
53 "libusbpp"
54 "testhid"
55)
56
57options+=('!emptydirs') # Remove empty dirs, because some top spurious level directories of ${srcdir} would be left over in the package otherwise.
58
59install="${_pkgname}.install"
60source=(
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)
70sha256sums=(
71 'SKIP'
72 '75e98659e14632c1f6dc96ef8b8b9214ae4a998e0caacc3fec9cd47b8ffc568a'
73 '47167c82b3fdbbc942465d7f23d07ddf88df34411ad0c245ac61f94735a178f4'
74 '52f58d41e8e80033d13eb4433049be62073b2da3dfbf0a713f2e28b0f0bf1d6e'
75 'SKIP'
76 'SKIP'
77 'SKIP'
78 'SKIP'
79)
80
81prepare() {
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
93pkgver() {
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
121build() {
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
151package() {
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)SeverityRules
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

Report a package

Reports go to the AURWatch maintainer (one person) and are read by hand. No login required.

0 / 4000
Your suggestion