audibleport-bin
The package downloads a prebuilt AppImage from the project's official domain (downloads.audibleport.com), which is not on standard hosting but plausibly legitimate; it extracts and repackages it using system libraries, a common practice for compatibility, with no obfuscated or malicious behavior observed.
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 AppImage from the project's official domain (downloads.audibleport.com), which is not on standard hosting but plausibly legitimate; it extracts and repackages it using system libraries, a common practice for compatibility, with no obfuscated or malicious behavior observed.
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:38
"AudiblePort-${pkgver}-linux-x64.AppImage::https://downloads.audibleport.com/v${pkgver}/AudiblePort-linux-x64.AppImage"
PKGBUILD
1 offending line(s) highlighted# Maintainer: kukapu <susokukapu@gmail.com>
#
# Binary package for AudiblePort (Tauri desktop app).
# Downloads the official prebuilt AppImage, extracts it, and runs against
# Arch system WebKitGTK/GTK/Mesa — the Ubuntu-bundled WebKit causes a black
# window + "Could not create default EGL display: EGL_BAD_PARAMETER" on
# Arch/Omarchy (Intel and NVIDIA).
pkgname=audibleport-bin
pkgver=1.0.11
pkgrel=1
pkgdesc="Download and convert Audible audiobooks locally"
arch=('x86_64')
url="https://audibleport.com"
license=('LicenseRef-Proprietary')
depends=(
'webkit2gtk-4.1'
'gtk3'
'libsoup3'
'gstreamer'
'gst-plugins-base'
'gst-plugins-good'
'openssl'
'hicolor-icon-theme'
'zlib'
'dbus'
'org.freedesktop.secrets'
)
optdepends=(
'gst-plugins-bad: extra media codecs for the webview'
'gst-libav: extra media codecs for the webview'
)
provides=('audibleport')
conflicts=('audibleport')
options=('!strip' '!debug')
noextract=("AudiblePort-${pkgver}-linux-x64.AppImage")
source=(
"AudiblePort-${pkgver}-linux-x64.AppImage::https://downloads.audibleport.com/v${pkgver}/AudiblePort-linux-x64.AppImage"
"audibleport.desktop"
"audibleport.png"
"LICENSE"
)
sha256sums=(
'055c6e82adc9aed02e217367e2e3a1c839ab9237faf6e4907e8773ad59735a29'
'd7afd4229854d68a47e0cdadbbf4cd44a2cbef90b4104e30800557f6846cd3a0'
'f306dfb5d537724f15d2af8c2bd81d8bf666c85c45e20aea6e8fb9cda2f4881e'
'ab768f90de1bebd36122c52dce48305f9191660e017772cf7d852de9a6376594'
)
prepare() {
chmod +x "${srcdir}/AudiblePort-${pkgver}-linux-x64.AppImage"
cd "${srcdir}"
rm -rf squashfs-root
"./AudiblePort-${pkgver}-linux-x64.AppImage" --appimage-extract
# Drop Ubuntu-bundled WebKit so the app uses Arch webkit2gtk-4.1 + system Mesa.
rm -f squashfs-root/usr/lib/libwebkit2gtk-4.1.so*
rm -f squashfs-root/usr/lib/libjavascriptcoregtk-4.1.so*
rm -rf squashfs-root/usr/lib/x86_64-linux-gnu/webkit2gtk-4.1
}
package() {
install -d "${pkgdir}/opt/audibleport"
cp -a "${srcdir}/squashfs-root/." "${pkgdir}/opt/audibleport/"
# AppImage payloads may carry writable schemas/docs or unreadable helpers.
chmod -R a+rX,go-w "${pkgdir}/opt/audibleport"
# Keep the main binary and bundled resources (ffmpeg) executable.
chmod 755 "${pkgdir}/opt/audibleport/usr/bin/audibleport"
install -Dm755 /dev/stdin "${pkgdir}/usr/bin/audibleport" <<'EOF'
#!/bin/sh
APPDIR="/opt/audibleport"
BIN="${APPDIR}/usr/bin/audibleport"
if [ ! -x "$BIN" ]; then
echo "audibleport: missing $BIN" >&2
exit 1
fi
# Prefer Arch system libraries (WebKit/GTK/GLib/Mesa/GStreamer) over the
# Ubuntu copies still present in the extracted AppImage tree. Without this,
# WebKit dies with: Could not create default EGL display: EGL_BAD_PARAMETER
export LD_LIBRARY_PATH="/usr/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
# Extra safety on Wayland + DMA-BUF (Intel/NVIDIA/AMD).
export WEBKIT_DISABLE_DMABUF_RENDERER="${WEBKIT_DISABLE_DMABUF_RENDERER:-1}"
exec "$BIN" "$@"
EOF
install -Dm644 "${srcdir}/audibleport.desktop" \
"${pkgdir}/usr/share/applications/audibleport.desktop"
install -Dm644 "${srcdir}/audibleport.png" \
"${pkgdir}/usr/share/icons/hicolor/512x512/apps/audibleport.png"
install -Dm644 "${srcdir}/LICENSE" \
"${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
}
Changes since previous scan
--- PKGBUILD @ 2026-09-07 00:30+++ PKGBUILD @ 2026-09-17 00:27@@ -7,7 +7,7 @@ # Arch/Omarchy (Intel and NVIDIA). pkgname=audibleport-bin-pkgver=1.0.9+pkgver=1.0.11 pkgrel=1 pkgdesc="Download and convert Audible audiobooks locally" arch=('x86_64')@@ -23,6 +23,8 @@ 'openssl' 'hicolor-icon-theme' 'zlib'+ 'dbus'+ 'org.freedesktop.secrets' ) optdepends=( 'gst-plugins-bad: extra media codecs for the webview'@@ -39,7 +41,7 @@ "LICENSE" ) sha256sums=(- 'db0e40682f6065b0062b236729cb3b9b19db859aa000f148b982c4fd79117b1d'+ '055c6e82adc9aed02e217367e2e3a1c839ab9237faf6e4907e8773ad59735a29' 'd7afd4229854d68a47e0cdadbbf4cd44a2cbef90b4104e30800557f6846cd3a0' 'f306dfb5d537724f15d2af8c2bd81d8bf666c85c45e20aea6e8fb9cda2f4881e' 'ab768f90de1bebd36122c52dce48305f9191660e017772cf7d852de9a6376594'@@ -60,6 +62,9 @@ package() { install -d "${pkgdir}/opt/audibleport" cp -a "${srcdir}/squashfs-root/." "${pkgdir}/opt/audibleport/"++ # AppImage payloads may carry writable schemas/docs or unreadable helpers.+ chmod -R a+rX,go-w "${pkgdir}/opt/audibleport" # Keep the main binary and bundled resources (ffmpeg) executable. chmod 755 "${pkgdir}/opt/audibleport/usr/bin/audibleport"Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-09-17 00:27:14 | Low | 2 |
| 2026-09-16 00:03:17 | Low | 2 |
| 2026-09-15 00:25:31 | Low | 2 |
| 2026-09-14 00:27:57 | Low | 2 |
| 2026-09-13 00:19:54 | Low | 2 |
| 2026-09-12 00:25:17 | Low | 2 |
| 2026-09-11 00:19:22 | Low | 2 |
| 2026-09-10 00:22:44 | Low | 2 |
| 2026-09-09 00:04:09 | Low | 2 |
| 2026-09-08 00:18:08 | Low | 2 |
| 2026-09-07 13:14:41 | Medium | 1 |
| 2026-09-07 00:30:15 | Medium | 2 |
| 2026-09-06 00:17:06 | Medium | 2 |
| 2026-09-05 20:01:32 | Medium | 2 |
| 2026-09-05 14:00:22 | Medium | 2 |
| 2026-09-05 00:16:27 | Medium | 2 |
| 2026-09-04 00:03:13 | Medium | 2 |
| 2026-09-03 00:15:47 | Medium | 2 |
| 2026-09-02 00:02:31 | Medium | 2 |
| 2026-09-01 00:11:19 | Medium | 2 |