pdfstudioviewer
The package downloads a prebuilt .deb from the official vendor's download domain, which is a standard practice for distributing proprietary software; the source is not executed but unpacked and repackaged, and the final install is a legitimate application binary with no evidence of malicious intent or supply-chain risk.
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 prebuilt .deb from the official vendor's download domain, which is a standard practice for distributing proprietary software; the source is not executed but unpacked and repackaged, and the final install is a legitimate application binary with no evidence of malicious intent or supply-chain risk.
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:18
source=("${_deb}::https://download.qoppa.com/${pkgname}/PDFStudioViewer_linux64.deb")
PKGBUILD
1 offending line(s) highlighted# Maintainer: Philipp Micheel <bbx0+aur at bitdevs dot de>
# Contributor: Mark Wagie <mark dot wagie at proton dot me>
# Contributor: Qoppa Software, LLC <info at qoppa dot com>
# shellcheck shell=bash disable=SC2034,SC2154,SC2164
pkgname=pdfstudioviewer
_pkgname=pdfstudioviewer2024
pkgver=2024.0.1
pkgrel=2
pkgdesc='Review, annotate, and edit PDF Documents'
arch=('x86_64' 'aarch64')
url='https://www.qoppa.com/pdfstudioviewer'
license=('LicenseRef-Qoppa')
makedepends=('dpkg' 'desktop-file-utils' 'gendesk' 'libarchive')
_deb="${pkgname}-${pkgver}_linux64.deb"
noextract=("${_deb}")
source=("${_deb}::https://download.qoppa.com/${pkgname}/PDFStudioViewer_linux64.deb")
b2sums=('165ee30182fc17799604c942f1a5cfc02d9ab22dc5ad118a5f1f1394bb824000084847d720976e7caf3cac363c05c9ddbbfd2be2b1d00bb74d36307699037be5')
# Pin the Java version to 25 (OpenJDK). (Java versions >= 26 are not compatible.)
_jre_version=25
# Desktop File parameters; validate via `gendesk -n PKGBUILD`
_name='PDF Studio Viewer 2024'
_genericname='PDF Viewer'
_mimetypes='application/pdf'
_categories='Application;Office'
_custom='StartupWMClass=install4j-com-qoppa-pdfStudioViewer-pub-PDFStudioViewer'
_exec="${pkgname} %U"
pkgver() {
# shellcheck disable=SC2016
dpkg-deb --show --showformat='${Version}' "${_deb}" | tr - .
}
prepare() {
# Extract Debian Archive
dpkg-deb --raw-extract "${_deb}" "${pkgname}-${pkgver}"
cd "${pkgname}-${pkgver}"
# Extract License
bsdtar xf "opt/${_pkgname}/lib/pdfstudio.jar" resources/license.html
# Arch Linux customization
# shellcheck disable=SC1003,SC2016
{
# Use the newest verified compatible JRE and disable caching of tested JRE versions.
sed -i \
-e '/# INSTALL4J_JAVA_HOME_OVERRIDE=/a\' \
-e ': "${INSTALL4J_JAVA_HOME_OVERRIDE:=/usr/lib/jvm/java-'${_jre_version}'-openjdk}"\' \
-e ': "${INSTALL4J_NO_DB:=true}"' \
"opt/${_pkgname}/${_pkgname}"
# Permit the verified Java release while rejecting newer versions.
sed -i 's/"$ver_major" -gt "[0-9]*"/"$ver_major" -gt "'${_jre_version}'"/' "opt/${_pkgname}/${_pkgname}"
# Remove obsolete Java export that causes a startup warning on Java >=24.
sed -i 's| --add-exports java.base/sun.security.action=ALL-UNNAMED||g' "opt/${_pkgname}/${_pkgname}"
# Remove bundled JRE
rm -rf "opt/${_pkgname}/jre"
# Remove standalone updater
rm "opt/${_pkgname}/updater"
rm "opt/${_pkgname}/pdfstudiosu"
}
# Generate the ${pkgname}.desktop file
gendesk -n \
--pkgname "${pkgname}" \
--pkgdesc "${pkgdesc}" \
--name "${_name}" \
--genericname "${_genericname}" \
--mimetypes "${_mimetypes}" \
--categories "${_categories}" \
--custom "${_custom}" \
--exec "${_exec}"
}
package() {
cd "${pkgname}-${pkgver}"
# Runtime dependencies
depends=("java-runtime-openjdk=${_jre_version}" 'sane')
# Application /opt/${pkgname}
install -d "${pkgdir}/opt/${pkgname}"
cp -a "opt/${_pkgname}/." "${pkgdir}/opt/${pkgname}/"
# Link /usr/bin/${pkgname}
install -d "${pkgdir}/usr/bin"
ln -s "/opt/${pkgname}/${_pkgname}" "${pkgdir}/usr/bin/${pkgname}"
# Desktop Entry and Icon
desktop-file-install -m 644 --dir "${pkgdir}/usr/share/applications/" "${pkgname}.desktop"
install -Dm644 "opt/${_pkgname}/.install4j/${_pkgname}.png" "${pkgdir}/usr/share/pixmaps/${pkgname}.png"
# License
install -Dm644 resources/license.html -t "${pkgdir}/usr/share/licenses/${pkgname}"
}
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-11-01 00:21:48 | Low | 2 |
| 2026-10-31 00:07:41 | Low | 2 |
| 2026-10-30 00:29:30 | Low | 2 |
| 2026-10-29 00:13:55 | Low | 2 |
| 2026-10-28 00:06:54 | Low | 2 |
| 2026-10-27 00:23:28 | Low | 2 |
| 2026-10-26 00:12:40 | Low | 2 |
| 2026-10-25 00:20:48 | Low | 2 |
| 2026-10-24 00:14:55 | Low | 2 |
| 2026-10-23 00:02:19 | Low | 2 |
| 2026-10-22 00:13:10 | Low | 2 |
| 2026-10-21 00:12:50 | Low | 2 |
| 2026-10-20 00:10:31 | Low | 2 |
| 2026-10-19 00:03:55 | Low | 2 |
| 2026-10-18 00:06:55 | Low | 2 |
| 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 |