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
7pkgname='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
12pkgver="${_pkgver}"
13pkgrel='3'
14pkgdesc='Canon UFRII LT Printer Driver for Linux (LBP112/912, LBP113/913, LBP151dw, LBP6030/LBP6040/LBP6018L, LBP6230/LBP6240, LBP7100C/LBP7110C, LBP8100)'
15arch=('x86_64')
16# Direct links to the download reference go bad on the next version. We want something that will persist for a while.
17url='https://www.canon-europe.com'
18license=('GPL2' 'MIT' 'custom')
19# parts of the code are GPL or MIT licensed, some parts have a custom license
20makedepends=('jbigkit' 'gzip' 'gtk2')
21depends=('gcc-libs' 'libxml2' 'libglade')
22optdepends=('libjpeg6-turbo: improves printing results for color i-SENSYS LBP devices'
23 'gtk2: for cnsetuputil2')
24
25
26conflicts=('cndrvcups-lb' 'cndrvcups-common-lb')
27options=('!emptydirs' '!strip' '!libtool')
28
29source=( "http://gdlp01.c-wss.com/gds/${_dl}/linux-UFRIILT-drv-v${_pkgver//\./}-uken-18.tar.gz")
30md5sums=('8bc3a4e3c372bb4d1b9af2cc012c720b')
31sha512sums=('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
48prepare() {
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
140build() {
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
150package() {
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)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