kyocera-sane
maintainer dreieck
· 2 votes
· scanned 2026-08-03 00:08:14.047287
LOW
View on AUR ↗
Why flagged
The package downloads a proprietary SANE driver from Kyocera's official domain, extracts and installs it; the source is from a vendor's legitimate infrastructure, and no untrusted or obfuscated code execution occurs.
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-2507) reviewed the full PKGBUILD and judged it LOW (confidence 95%): The package downloads a proprietary SANE driver from Kyocera's official domain, extracts and installs it; the source is from a vendor's legitimate infrastructure, and no untrusted or obfuscated code execution occurs.
1 higher static finding superseded - not the current verdict (shown for transparency)
MEDIUM
Recently orphaned & re-adopted
orphaned_readopted
This package was orphaned and re-adopted within the last 30 days — a window where ownership transfers can introduce malicious changes.
PKGBUILD
1
# Maintainer: <none>
2
# Contributor: dreieck (https://aur.archlinux.org/account/dreieck)
3
# Contributor: Martin Dünkelmann <nc-duenkekl3@netcologne.de> (https://aur.archlinux.org/account/MartinX3)
4
5
## The download URL/ filename does not change with version update. Need to check filenames inside downloaded ZIP file, or front webpage, for version.
6
_upstreamlistingurl='https://www.kyoceradocumentsolutions.eu/en/support/downloads.name-L2V1L2VuL21mcC9FQ09TWVNNNDEzMklETg==.html'
7
#_upstreamsourcedownloadpath='https://www.kyoceradocumentsolutions.de/content/download-center/de/drivers/all'
8
_upstreamsourcedownloadpath='https://www.kyoceradocumentsolutions.eu/content/download-center/eu/drivers/all/'
9
_upstreamsourcefilename='SANE_Driver_zip.download.zip'
10
_get_pkgver() {
11
local _debarch
12
case "${CARCH}" in
13
'i386'|'i486'|'i586'|'i686')
14
_debarch=i386
15
;;
16
'x86_64')
17
_debarch=amd64
18
;;
19
esac
20
printf '%s\n' " >> Getting upstream software version for architecture '${CARCH}' ..." > /dev/stderr
21
_ver="$(curl -L "${_upstreamlistingurl}" 2>/dev/null| grep --binary-files=text -E "SANE Driver \([0-9\.]+\)" | head -n1 | sed -E 's|^.*SANE Driver \(([0-9.]+)\).*$|\1|')"
22
printf '%s' "${_ver}"
23
}
24
25
pkgname=kyocera-sane
26
pkgver="$(_get_pkgver)"
27
pkgrel=2
28
pkgdesc='Kyocera sane scanner support package for many Kyocera printers.'
29
arch=(
30
'i386'
31
'i486'
32
'i586'
33
'i686'
34
'x86_64'
35
)
36
url='https://www.kyocera.com/'
37
license=('LicenseRef-proprietary')
38
depends=(
39
'freeimage'
40
'gcc-libs'
41
'glibc'
42
'libtiff5'
43
'libusb'
44
'libjpeg.so'
45
'openssl-1.1'
46
'sane'
47
)
48
makedepends=('libjpeg-turbo')
49
source=(
50
"${pkgname}-${pkgver}_SANE-Driver.zip::${_upstreamsourcedownloadpath}/${_upstreamsourcefilename}"
51
'README.txt'
52
)
53
sha256sums=(
54
'3076b7ae5e48564568ab7c660da3c77d6059b3fe96056f4df2a38544b579f8ab'
55
'945f922065e8278d2ec6e0c1e8ce6851834359cd02ff85534fa3d7baccec6ffe'
56
)
57
58
prepare() {
59
cd "${srcdir}"
60
mkdir -p build
61
local _debarch
62
case "${CARCH}" in
63
'i386'|'i486'|'i586'|'i686')
64
_debarch=i386
65
;;
66
'x86_64')
67
_debarch=amd64
68
;;
69
esac
70
bsdtar xvf "${pkgname}_${pkgver}_${_debarch}.deb"
71
bsdtar xvf "${srcdir}/data.tar.xz" -C "${srcdir}/build"
72
}
73
74
build() {
75
cd "${srcdir}/build"
76
77
# From .deb postinst
78
install -dvm755 "etc/sane.d/dll.d"
79
touch "etc/sane.d/dll.d/kyocera.conf"
80
printf '%s\n' 'kyocera' >> "etc/sane.d/dll.d/kyocera.conf"
81
printf '%s\n' 'kyocera_gdi_a3' >> "etc/sane.d/dll.d/kyocera.conf"
82
printf '%s\n' 'kyocera_wc3' >> "etc/sane.d/dll.d/kyocera.conf"
83
printf '%s\n' 'kyocera_wc3_usb' >> "etc/sane.d/dll.d/kyocera.conf"
84
85
chmod 644 "etc/sane.d"/*.conf
86
chmod 644 "etc/sane.d/dll.d"/*.conf
87
88
# Move UDEV rule do documentation, since it creates overly persmissive permissions.
89
mv -v "etc/udev/rules.d/40-scanner-permissions.rules" "usr/share/doc/${pkgname}"/
90
chmod 644 "usr/share/doc/${pkgname}/40-scanner-permissions.rules"
91
rmdir -v "etc/udev/rules.d"
92
93
# Move the license into place.
94
install -Dvm644 "usr/share/doc/${pkgname}/copyright" "usr/share/licenses/${pkgname}/COPYRIGHT"
95
rm "usr/share/doc/${pkgname}/copyright"
96
97
# Clean unnecessary files.
98
case "${CARCH}" in
99
'i386'|'i486'|'i586'|'i686')
100
rm -r "usr/lib/i386-linux-gnu"
101
;;
102
'x86_64')
103
rm -r "usr/lib/x86_64-linux-gnu"
104
;;
105
esac
106
rm -r "usr/local"
107
}
108
109
package() {
110
cd "${srcdir}/build"
111
112
# Move files into place
113
cp -rv * "${pkgdir}"/
114
115
install -Dvm644 -t "${pkgdir}/usr/share/doc/${pkgname}" "${srcdir}/README.txt"
116
}
117
Changes since previous scan
--- PKGBUILD @ 2026-06-19 22:34+++ PKGBUILD @ 2026-08-03 00:08@@ -18,13 +18,13 @@ ;; esac printf '%s\n' " >> Getting upstream software version for architecture '${CARCH}' ..." > /dev/stderr- _ver="$(curl -L "${_upstreamlistingurl}" 2>/dev/null| grep -E "SANE Driver \([0-9\.]+\)" | head -n1 | sed -E 's|^.*SANE Driver \(([0-9.]+)\).*$|\1|')"+ _ver="$(curl -L "${_upstreamlistingurl}" 2>/dev/null| grep --binary-files=text -E "SANE Driver \([0-9\.]+\)" | head -n1 | sed -E 's|^.*SANE Driver \(([0-9.]+)\).*$|\1|')" printf '%s' "${_ver}" } pkgname=kyocera-sane pkgver="$(_get_pkgver)"-pkgrel=1+pkgrel=2 pkgdesc='Kyocera sane scanner support package for many Kyocera printers.' arch=( 'i386'@@ -41,11 +41,11 @@ 'glibc' 'libtiff5' 'libusb'- 'libjpeg'+ 'libjpeg.so' 'openssl-1.1' 'sane' )-makedepends=()+makedepends=('libjpeg-turbo') source=( "${pkgname}-${pkgver}_SANE-Driver.zip::${_upstreamsourcedownloadpath}/${_upstreamsourcefilename}" 'README.txt'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 21:12:02 | MEDIUM | 1 |
| 2026-06-19 22:34:54 | CLEAN | 0 |