cnrdrvcups-sfp
maintainer Linaro
· 2 votes
· scanned 2026-08-03 00:08:14.047287
LOW
View on AUR ↗
Why flagged
The package downloads Canon's official UFRII LT printer driver source from Canon's own gdlp01.c-wss.com domain, which is plausibly Canon's official distribution infrastructure; the download host is not on the standard whitelist but is legitimate for the vendor, and the source is built locally, which is normal AUR packaging behavior for proprietary drivers.
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 Canon's official UFRII LT printer driver source from Canon's own gdlp01.c-wss.com domain, which is plausibly Canon's official distribution infrastructure; the download host is not on the standard whitelist but is legitimate for the vendor, and the source is built locally, which is normal AUR packaging behavior for proprietary drivers.
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:29
source=( "http://gdlp01.c-wss.com/gds/${_dl}/linux-UFRIILT-drv-v${_pkgver//\./}-uken-18.tar.gz")
PKGBUILD
1 offending line(s) highlighted
1
# Maintainer: Linaro <maxim.anisimov.ua@gmail.com>
2
# Contributor: Chris Severance aur.severach aATt spamgourmet dott com
3
# Contributor: Lone_Wolf <lone_wolf@klaas-de-kat.nl>
4
# Contributor: Steven She <mintcoffee@gmail.com>
5
# Contributor: vbPadre <vbPadre@gmail.com>
6
7
pkgname='cnrdrvcups-sfp'
8
9
# The download link changes with every version, try to keep changes in one place
10
_pkgver='5.00'; _dl='0/0100005950/10'
11
12
pkgver="${_pkgver}"
13
pkgrel='3'
14
pkgdesc='Canon UFRII LT Printer Driver for Linux (LBP112/912, LBP113/913, LBP151dw, LBP6030/LBP6040/LBP6018L, LBP6230/LBP6240, LBP7100C/LBP7110C, LBP8100)'
15
arch=('x86_64')
16
# Direct links to the download reference go bad on the next version. We want something that will persist for a while.
17
url='https://www.canon-europe.com'
18
license=('GPL2' 'MIT' 'custom')
19
# parts of the code are GPL or MIT licensed, some parts have a custom license
20
makedepends=('jbigkit' 'gzip' 'gtk2')
21
depends=('gcc-libs' 'libxml2' 'libglade')
22
optdepends=('libjpeg6-turbo: improves printing results for color i-SENSYS LBP devices'
23
'gtk2: for cnsetuputil2')
24
25
26
conflicts=('cndrvcups-lb' 'cndrvcups-common-lb')
27
options=('!emptydirs' '!strip' '!libtool')
28
29
source=( "http://gdlp01.c-wss.com/gds/${_dl}/linux-UFRIILT-drv-v${_pkgver//\./}-uken-18.tar.gz")
30
md5sums=('8bc3a4e3c372bb4d1b9af2cc012c720b')
31
sha512sums=('e7b964f3d4541e1ec9ba07eac17559233ab2db16d1f025ffd8a46a65297c63205b7a3cdc031d95f04d719e97eaf93fd763bdc6c27f12c5aac346bb4f204d5967')
32
33
34
# Canon provides the sourcecode in a tarball within the dowload and we need to extract the code manually
35
# In order to keep the $srcdir structure tidy we put the extracted files in "extracted-${pkgname}-${_pkgver}" aka _srcdir
36
# the code itself is spread over many folders.
37
# "cnrdrvcups-common-${_pkgver}" aka _common_dir & "cnrdrvcups-sfp-${_pkgver}" aka _driver_dir
38
# are used to keep this manageable
39
40
41
_srcdir="extracted-${pkgname}-${_pkgver}"
42
_common_dir="cnrdrvcups-common-${_pkgver}"
43
_driver_dir="cnrdrvcups-sfp-${_pkgver}"
44
45
46
47
48
prepare() {
49
50
mkdir "${_srcdir}"
51
cd "${_srcdir}"
52
bsdtar -xf "${srcdir}/linux-UFRIILT-drv-v${_pkgver//\./}-uken/Sources/${pkgname}-${pkgver}-1.tar.gz"
53
54
local _specs=(cnrdrvcups-ncap.spec)
55
56
# cngplp/autogen.sh fails to find several libraries.
57
# adding these in the right place of the soon to be generated make script is hard,
58
# so we patch it directly into that autogen.sh
59
sed -e '2a export LIBS="-lgtk-x11-2.0 -lgobject-2.0 -lglib-2.0 -lgmodule-2.0"' -i "cnrdrvcups-common-${_pkgver}/cngplp/autogen.sh"
60
sed -e '2a export LIBS="-latk-1.0 -lgobject-2.0 -lglib-2.0 -lgdk_pixbuf-2.0 -lcups"' -i "cnrdrvcups-sfp-${_pkgver}/StatusMonitor/autogen.sh"
61
62
# the autogen.sh files from canon target an old automake/autoconf version
63
# autoreconf converts them to a form compatible with archlinux autoconf/automake
64
65
pushd "${_common_dir}"
66
for i in "backend" "buftool" "cngplp" "cnjbig" "rasterfilter"
67
do
68
pushd "$i"
69
autoreconf -i
70
popd
71
done
72
popd
73
pushd "${_driver_dir}"
74
for i in "cngplp/files" "cngplp" "cpca" "StatusMonitor"
75
do
76
pushd "$i"
77
autoreconf -i
78
popd
79
done
80
popd
81
82
# allgen.sh where available is not useful for packaging on archlinux
83
# Canon provides methods to build deb & rpm packages.
84
# The debian rules are not suited for archlinux. When the .spec-file is converted to shell the resulting arch package works.
85
# Chris Severach figured out a way to automate this conversion.
86
87
# Generate make from spec %setup, %build
88
sed -n -e '/^%setup/,/^%install/ p' "${_specs[@]}" | \
89
grep -v '^%' | \
90
sed -e '# Convert spec %{VAR} to shell ${VAR}' \
91
-e 's:%{:${:g' \
92
-e '# Quote to allow _cflags to have spaces' \
93
-e 's:${_cflags}:"${_cflags}":g' \
94
-e '# Some autogen.sh commands in the spec file do not set --prefix. More than one --prefix dont cause problems so we can add it to all of them.' \
95
-e 's:^./autogen.sh:& --prefix=${_prefix}:g' \
96
-e 's:${LIBS}:${_libsarch}:g' \
97
> 'make.Arch'
98
99
# Generate make install from spec %install
100
sed -n -e '/^%install/,/^%clean/ p' "${_specs[@]}" | \
101
grep -v '^%' | \
102
sed -e '# Convert spec %{VAR} to shell ${VAR}' \
103
-e 's:%{:${:g' \
104
-e '# Quote to handle path with spaces' \
105
-e 's:${RPM_BUILD_ROOT}:"&":g' \
106
-e '# ln -f hides problems so should be avoided' \
107
-e 's:ln -sf :ln -s :g' \
108
-e 's:${LIBS}:${_libsarch}:g' \
109
> 'make.install.Arch'
110
111
}
112
113
_setvars() {
114
# variables used by the (generated) make.Arch & make.install.Arch files
115
# relative paths start at ${srcdir}/${_srcdir}
116
117
_vars=(
118
_builddir="${srcdir}/${_srcdir}"
119
common_dir="${_common_dir}"
120
driver_dir="${_driver_dir}"
121
utility_dir="cnrdrvcups-utility-${_pkgver}"
122
RPM_BUILD_DIR="${srcdir}/${_srcdir}"
123
_prefix='/usr'
124
_machine_type="MACHINETYPE="$CARCH
125
_cflags="CFLAGS=-march=x86-64 -fcommon -O2 -pipe -fno-plt"
126
_libdir='/usr/lib'
127
_bindir='/usr/bin'
128
locallibs='/usr/lib/'
129
_includedir='/usr/include'
130
b_lib_dir="${srcdir}/${_srcdir}/lib"
131
b_include_dir="${srcdir}/${_srcdir}/include"
132
_libsarch='libs64'
133
libs32='/usr/lib'
134
)
135
# -fcommon is needed to compile with gcc10 , see https://gcc.gnu.org/gcc-10/porting_to.html
136
# -O2 -pipe -fno-plt are taken from makepkg.conf default for archlinux
137
# _libsarch is architecture dependent
138
}
139
140
build() {
141
142
cd "${_srcdir}"
143
local _vars; _setvars
144
# Bash does not recognize var assigments hidden by array expansion so we use env.
145
env "${_vars[@]}" \
146
sh 'make.Arch'
147
148
}
149
150
package() {
151
cd "${_srcdir}"
152
153
local _vars; _setvars
154
env "${_vars[@]}" \
155
RPM_BUILD_ROOT="${pkgdir}" \
156
sh 'make.install.Arch'
157
158
# licensing information is spread over multiple files and folders
159
pushd "${_common_dir}"
160
install -Dpm644 "README" "${pkgdir}/usr/share/licenses/${pkgname}/${_common_dir}/README"
161
162
install -Dpm644 "backend/LICENSE.txt" "${pkgdir}/usr/share/licenses/${pkgname}/${_common_dir}/backend/LICENSE.txt"
163
install -Dpm644 "backend/LICENSE.canon.txt" "${pkgdir}/usr/share/licenses/${pkgname}/${_common_dir}/backend/LICENSE.canon.txt"
164
install -Dpm644 "backend/README" "${pkgdir}/usr/share/licenses/${pkgname}/${_common_dir}/backend/README"
165
166
install -Dpm644 "buftool/LICENSE.txt" "${pkgdir}/usr/share/licenses/${pkgname}/${_common_dir}/buftool/LICENSE.txt"
167
install -Dpm644 "buftool/README" "${pkgdir}/usr/share/licenses/${pkgname}/${_common_dir}/buftool/README"
168
169
install -Dpm644 "cngplp/LICENSE.canon.txt" "${pkgdir}/usr/share/licenses/${pkgname}/${_common_dir}/cngplpl/LICENSE.canon.txt"
170
install -Dpm644 "cngplp/README" "${pkgdir}/usr/share/licenses/${pkgname}/${_common_dir}/cngplpl/README"
171
172
install -Dpm644 "cnjbig/README" "${pkgdir}/usr/share/licenses/${pkgname}/${_common_dir}/cnjbig/README"
173
174
install -Dpm644 "rasterfilter/README" "${pkgdir}/usr/share/licenses/${pkgname}/${_common_dir}/rasterfilter/README"
175
176
popd
177
pushd "${_driver_dir}"
178
install -Dpm644 "README" "${pkgdir}/usr/share/licenses/${pkgname}/${_driver_dir}/README"
179
180
install -Dpm644 "cngplp/README" "${pkgdir}/usr/share/licenses/${pkgname}/${_driver_dir}/cngplp/README"
181
install -Dpm644 "cngplp/files/README" "${pkgdir}/usr/share/licenses/${pkgname}/${_driver_dir}/cngplp/files/README"
182
183
install -Dpm644 "cpca/README" "${pkgdir}/usr/share/licenses/${pkgname}/${_driver_dir}/cpca/README"
184
install -Dpm644 "cpca/cnpklib/LICENSE.canon.txt" "${pkgdir}/usr/share/licenses/${pkgname}/${_driver_dir}/cpca/cnpklib/LICENSE.canon.txt"
185
186
install -Dpm644 "StatusMonitor/README" "${pkgdir}/usr/share/licenses/${pkgname}/${_driver_dir}/StatusMonitor/README"
187
popd
188
189
# documentation
190
pushd "$srcdir/linux-UFRIILT-drv-v${_pkgver//\./}-uken/Documents"
191
install -Dpm644 "README-ufr2lt-5.0xUK.html" "${pkgdir}/usr/share/doc/${pkgname}/README-ufr2lt-5.0xUK.html"
192
install -Dpm644 "UsersGuide-ufr2lt-UK.html" "${pkgdir}/usr/share/doc/${pkgname}/UsersGuide-ufr2lt-UK.html"
193
install -Dpm644 "LICENSE-EN.txt" "${pkgdir}/usr/share/licenses/${pkgname}/Documents/LICENSE-EN.txt"
194
popd
195
196
}
197
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 |