lkeyholetv
The PKGBUILD downloads prebuilt binary archives (LKeyHoleTV-32bits-Ubuntu.zip and LKeyHoleTV-64bits.zip) from oiseyer.com, which is the upstream vendor's own site for KeyHoleTV (a Japanese P2P TV client). The binaries are then installed directly into /opt/LKeyHoleTV and executed. While oiseyer.com appears to be the legitimate upstream distribution host for this software (it is referenced as the official URL), it is a small personal/vendor site rather than a recognized software forge, and the package installs prebuilt closed-source binaries. The integrity check uses only MD5 (weak, collision-prone). The build() step compiles local shared libraries (ALSA plugin, DSP plugin, language module) from source within the zip, but the main lkeyholetv binary itself is a prebuilt executable from the zip. This is a genuine supply-chain concern: if oiseyer.com were compromised or the files swapped, users would execute arbitrary binaries. The risk is real but not evidence of active malice — this is a legitimate medium-severity supply-chain concern for a prebuilt binary from a small unofficial host.
Triggered rules
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:15
source_i686=("http://www.oiseyer.com/Download/Ubuntu/LKeyHoleTV-32bits-Ubuntu.zip"
llm_review
An AI model (anthropic/claude-4.6-sonnet-20260217) reviewed this and agrees it is MEDIUM (confidence 82%): The PKGBUILD downloads prebuilt binary archives (LKeyHoleTV-32bits-Ubuntu.zip and LKeyHoleTV-64bits.zip) from oiseyer.com, which is the upstream vendor's own site for KeyHoleTV (a Japanese P2P TV client). The binaries are then installed directly into /opt/LKeyHoleTV and executed. While oiseyer.com appears to be the legitimate upstream distribution host for this software (it is referenced as the official URL), it is a small personal/vendor site rather than a recognized software forge, and the package installs prebuilt closed-source binaries. The integrity check uses only MD5 (weak, collision-prone). The build() step compiles local shared libraries (ALSA plugin, DSP plugin, language module) from source within the zip, but the main lkeyholetv binary itself is a prebuilt executable from the zip. This is a genuine supply-chain concern: if oiseyer.com were compromised or the files swapped, users would execute arbitrary binaries. The risk is real but not evidence of active malice — this is a legitimate medium-severity supply-chain concern for a prebuilt binary from a small unofficial host.
PKGBUILD
1 offending line(s) highlighted# Contributor/Maintainer: ilikenwf/Matt Parnell <parwok@gmail.com>
# Contributor: liliff/Musee U <icelandisbeingcolouredbywrens@gmail.com>
# Contributor: tomoaki/Tomoaki Hashizaki <thashisaki@yahoo.com>
pkgname=lkeyholetv
pkgver=2.3
pkgrel=4
pkgdesc="A client for KeyHoleTV, an online television portal that links to Japanese television channels, radio stations, and user-made channels."
arch=('i686' 'x86_64')
url="http://www.oiseyer.com/index-e.html"
license=('custom')
depends=('alsa-lib' 'gtk2' 'cairo' 'pango' 'libx11' 'libpng')
optdepends=('sdl: SDL video support')
provides=('lkeyholetv')
install=lkeyholetv.install
source_i686=("http://www.oiseyer.com/Download/Ubuntu/LKeyHoleTV-32bits-Ubuntu.zip"
'lkeyholetv.desktop'
'lkeyholetv')
md5sums_i686=('d0ac2fa20a6c7c46ddfc2d95dfcf2a79'
'7a6d0d5ca7092918919431796787e574'
'ae00db79eb19f3f1515f873852c903d2')
source_x86_64=("http://www.oiseyer.com/Download/Linux64/LKeyHoleTV-64bits.zip"
'lkeyholetv.desktop'
'lkeyholetv')
md5sums_x86_64=('bf5b14afa33d24ed9a002fe86c109c1e'
'7a6d0d5ca7092918919431796787e574'
'ae00db79eb19f3f1515f873852c903d2')
_lang='en_US'
[ "`echo $LANG | cut -d. -f1`" = "ja_JP" ] && _lang='ja_JP'
build()
{
cd ${srcdir}/KeyHoleTV
}
package()
{
mkdir -p ${pkgdir}/{usr/{bin,share/{applications,pixmaps,licenses/${pkgname}}},opt/LKeyHoleTV} || return 1
# Audio Interface: ALSA should work
cd ${srcdir}/KeyHoleTV/ALSA
make || return 1
make install || return 1 # The install here copies a .so to .KeyHoleTV.
# Adding in DSP since it's native
cd ${srcdir}/KeyHoleTV/DSP
make || return 1
make install || return 1 # Similar to the last install
# Language: en_US by default, ja_JP if locale is ja_JP.*
cd ${srcdir}/KeyHoleTV/${_lang}
make || return 1
make install || return 1 # Similar to the last install.
# Some cleanup
#rm -v ${srcdir}/KeyHoleTV/.KeyHoleTV/KeyHoleTVAddr.dat~ || return 1 #backup file in the 64bit tarball
#rm -v ${srcdir}/KeyHoleTV/.KeyHoleTV/ESDObj.so || #esound unsupported/is in AUR
# Time to install the program itself
install -d ${srcdir}/KeyHoleTV/.KeyHoleTV ${pkgdir}/opt/LKeyHoleTV/
install ${srcdir}/KeyHoleTV/lkeyholetv ${pkgdir}/opt/LKeyHoleTV/
cp -r ${srcdir}/KeyHoleTV/.KeyHoleTV ${pkgdir}/opt/LKeyHoleTV/
install ${srcdir}/lkeyholetv ${pkgdir}/usr/bin/
install -m644 ${srcdir}/lkeyholetv.desktop ${pkgdir}/usr/share/applications/ || return 1
install -m644 ${srcdir}/KeyHoleTV/Lkeyholetv.png ${pkgdir}/usr/share/pixmaps/Lkeyholetv.png || return 1
install -m644 ${srcdir}/KeyHoleTV/License.txt ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
}
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-11-01 00:21:48 | Medium | 2 |
| 2026-10-31 00:07:41 | Medium | 2 |
| 2026-10-30 00:29:30 | Medium | 2 |
| 2026-10-29 00:13:55 | Medium | 2 |
| 2026-10-28 00:06:54 | Medium | 2 |
| 2026-10-27 00:23:28 | Medium | 2 |
| 2026-10-26 00:12:40 | Medium | 2 |
| 2026-10-25 00:20:48 | Medium | 2 |
| 2026-10-24 00:14:55 | Medium | 2 |
| 2026-10-23 00:02:19 | Medium | 2 |
| 2026-10-22 00:13:10 | Medium | 2 |
| 2026-10-21 00:12:50 | Medium | 2 |
| 2026-10-20 00:10:31 | Medium | 2 |
| 2026-10-19 00:03:55 | Medium | 2 |
| 2026-10-18 00:06:55 | Medium | 2 |
| 2026-10-17 00:21:55 | Medium | 2 |
| 2026-10-16 00:12:47 | Medium | 2 |
| 2026-10-15 00:28:05 | Medium | 2 |
| 2026-10-14 00:06:47 | Medium | 2 |
| 2026-10-13 00:23:45 | Medium | 2 |