kyocera_universal
The package downloads a driver archive from Kyocera's official domain (kyoceradocumentsolutions.us), which is plausibly the project's own source; despite the non-whitelisted host, this is a normal AUR practice for building printer drivers, and no untrusted executable code or obfuscated payloads are involved.
Triggered rules
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 driver archive from Kyocera's official domain (kyoceradocumentsolutions.us), which is plausibly the project's own source; despite the non-whitelisted host, this is a normal AUR practice for building printer drivers, and no untrusted executable code or obfuscated payloads are involved.
1 higher static finding superseded - not the current verdict (shown for transparency)
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=("https://www.kyoceradocumentsolutions.us/content/dam/download-center-americas-cf/us/drivers/drivers/${toDwnld}")
PKGBUILD
1 offending line(s) highlighted# Maintainer: Hartmut Seichter <hartmut [at] gmail [dot] com>
# Contributors:
# - Julian Eckhardt <julian [at] eckhardt [dot] fi>
# - Paulo Marcos <contato-myghi63 [at] protonmail [dot] com>
# - Dominik Wetzel <dimonok [at] web [dot] de>
# - Arne v.Irmer < archlinux [at] a-vi [dot] de >
# - and others ...
#
pkgname=kyocera_universal
pkgver=10.1.20240521
pkgrel=1
major=$(cut -d '.' -f 1 <<< $pkgver)
minor=$(cut -d '.' -f 2 <<< $pkgver)
date=$(cut -d '.' -f 3 <<< $pkgver)
pkgdesc="Kyocera Printing Package for many Kyocera printers (stripped of kdialog${major})."
arch=('x86_64' 'i686')
url="https://www.kyocera.com/"
license=('other')
depends=('cups-filters' 'dbus' 'gcc-libs' 'glibc' 'krb5' 'libcups' 'libgcrypt' 'python-reportlab' 'python-setuptools' 'python-pypdf' 'zlib')
makedepends=('unzip' 'wget')
provides=('kyocera-cups')
conflicts=('kyocera-cups')
DLAGENTS=("https::/usr/bin/wget")
toDwnld="KyoceraLinuxPackages_${date}_tar_gz.download.gz"
source=("https://www.kyoceradocumentsolutions.us/content/dam/download-center-americas-cf/us/drivers/drivers/${toDwnld}")
install=kyodialog-bin.install
sha256sums=('14235a8e4dbe9f2fdff481252e2cc64431f59a7dcf2497ef54852fb30211568f')
if [ "$arch" == "x86_64" ]; then
_arch="amd64"
else
_arch="i386"
fi
###########################
# CHOOSE YOUR REGION HERE #
###########################
# Region="EU"
Region="Global"
prepare() {
cd $srcdir
tar xzf ${toDwnld} -C .
ar xv Debian/${Region}/kyodialog_${_arch}/kyodialog_${major}.${minor}-0_${_arch}.deb
tar xzf data.tar.gz -C .
}
package() {
# Remove unnecessary stuff and move ppd files to appropriate folders
cd $srcdir
version=${major}
KYOCERA_DIR=usr/share/kyocera${version}
if [ ! -d $KYOCERA_DIR ]; then
version=${major}.${minor}
KYOCERA_DIR=usr/share/kyocera${version}
fi
rm -r usr/share/applications
ALTERNATE_PPD_DIRECTORY=usr/share/cups/model
PRIMARY_PPD_DIRECTORY=usr/share/ppd/kyocera
TEMP_PPD_DIRECTORY=${KYOCERA_DIR}/ppd${version}
mkdir -p $PRIMARY_PPD_DIRECTORY
mkdir -p $ALTERNATE_PPD_DIRECTORY
mv $TEMP_PPD_DIRECTORY/* $PRIMARY_PPD_DIRECTORY
chmod 755 usr/bin/kyoPPDWrite_X
if [ ! -h $ALTERNATE_PPD_DIRECTORY/kyocera ]; then
ln -s /$PRIMARY_PPD_DIRECTORY $ALTERNATE_PPD_DIRECTORY/kyocera
fi
rm -r ${KYOCERA_DIR}
rm usr/bin/kyodialog${version}
install -D -m644 "usr/share/doc/kyodialog/copyright" "${pkgdir}/usr/share/licenses/${pkgname}/COPYRIGHT"
rm -r ${srcdir}/usr/share/doc
cd $pkgdir
cp -r $srcdir/usr .
}
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-10-17 00:21:55 | Low | 2 |
| 2026-10-16 00:12:47 | Low | 2 |
| 2026-10-15 00:28:05 | Low | 2 |
| 2026-10-14 00:06:47 | Low | 2 |
| 2026-10-13 00:23:45 | Low | 2 |
| 2026-10-12 00:18:51 | Low | 2 |
| 2026-10-11 00:26:05 | Low | 2 |
| 2026-10-10 00:11:52 | Low | 2 |
| 2026-10-09 00:05:33 | Low | 2 |
| 2026-10-08 00:28:03 | Low | 2 |
| 2026-10-07 00:21:34 | Low | 2 |
| 2026-10-06 00:13:36 | Low | 2 |
| 2026-10-05 00:08:03 | Low | 2 |
| 2026-10-04 00:18:08 | Low | 2 |
| 2026-10-03 00:23:04 | Low | 2 |
| 2026-10-02 00:00:32 | Low | 2 |
| 2026-10-01 00:02:06 | Low | 2 |
| 2026-09-30 00:20:07 | Low | 2 |
| 2026-09-29 00:07:46 | Low | 2 |
| 2026-09-28 00:28:32 | Low | 2 |