mrstreamer-bin

LOW
maintainer 4bs3nt 0 votes scanned 2026-10-25 00:20:48.567348
View on AUR
Why flagged

The package installs a prebuilt .deb from GitHub Releases, which is a common and generally safe practice for AUR packages; the binary is from the project's official repository, and the checksums are verified, making the risk low despite the few votes and recent upload.

Triggered rules

Low Few votes, recently uploaded zero_votes_recent

Uploaded within the last 14 days with 2 or fewer community votes — little peer review so far.

Low AI review llm_review

An AI model (qwen/qwen3-235b-a22b-2507) reviewed this and agrees it is LOW (confidence 95%): The package installs a prebuilt .deb from GitHub Releases, which is a common and generally safe practice for AUR packages; the binary is from the project's official repository, and the checksums are verified, making the risk low despite the few votes and recent upload.

PKGBUILD

1# Maintainer: 4bs3nt <hi at 4bs3nt dot com>
2# Contributor: Wout Stiens <hello at mrstreamer dot app>
3# SPDX-License-Identifier: 0BSD
4# Verified stable release
5pkgname=mrstreamer-bin
6pkgver=0.0.19
7pkgrel=1
8pkgdesc='IPTV player with bundled Electron, FFmpeg and ffprobe'
9arch=('x86_64')
10url='https://mrstreamer.app'
11license=('GPL-3.0-only' 'GPL-2.0-or-later' 'LGPL-2.1-or-later' 'MIT' 'BSD-2-Clause'
12 'LicenseRef-Chromium')
13depends=('alsa-lib' 'at-spi2-core' 'cairo' 'dbus' 'expat' 'glib2' 'glibc' 'gtk3'
14 'hicolor-icon-theme'
15 'libcups' 'libgcc' 'libsecret' 'libx11' 'libxcb' 'libxcomposite' 'libxdamage'
16 'libxext' 'libxfixes' 'libxkbcommon' 'libxrandr' 'mesa' 'nspr' 'nss' 'pango'
17 'systemd-libs' 'xdg-utils')
18checkdepends=('desktop-file-utils')
19optdepends=('libnotify: desktop notifications'
20 'libpulse: PulseAudio or PipeWire audio'
21 'org.freedesktop.secrets: credential storage in the desktop keyring')
22provides=("mrstreamer=$pkgver")
23conflicts=('mrstreamer' 'mr-streamer' 'mr-streamer-bin')
24# These are tested upstream binaries. Preserve their bytes and bundled debug information.
25options=('!strip' '!debug')
26_upstream_version='0.0.19'
27_source_commit='5524bddcb030be19f7bc8b04791d6156f5a07603'
28_deb="Mr-Streamer-${_upstream_version}-linux-amd64.deb"
29source=("https://github.com/Mr-Streamer-OSS/MrStreamer/releases/download/v${_upstream_version}/${_deb}"
30 "mrstreamer-LICENSE::https://raw.githubusercontent.com/Mr-Streamer-OSS/MrStreamer/${_source_commit}/LICENSE")
31sha256sums=('6953a8dee3af9bd266659e1bf7ac488c82c71b56ae0aefd8e4e48ceb6c2a74ac'
32 '3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986')
33
34prepare() {
35 # makepkg opens the deb as an archive. Its maintainer scripts are never executed.
36 mkdir -p payload
37 bsdtar -xf data.tar.xz -C payload
38}
39
40check() {
41 test -f 'payload/opt/Mr. Streamer/resources/app.asar'
42 local tool
43 for tool in mrstreamer chrome-sandbox resources/ffmpeg/ffmpeg resources/ffmpeg/ffprobe; do
44 test -x "payload/opt/Mr. Streamer/$tool" || return 1
45 done
46 desktop-file-validate payload/usr/share/applications/mrstreamer.desktop
47}
48
49package() {
50 # Metadata must match even when makepkg --nocheck skips check().
51 bsdtar -xOf control.tar.xz ./control | grep -Fx "Version: ${_upstream_version//-/\~}"
52 bsdtar -xOf control.tar.xz ./control | grep -Fx 'Architecture: amd64'
53
54 local app="$pkgdir/opt/mrstreamer"
55 install -dm755 "$pkgdir/opt" "$pkgdir/usr/bin"
56 cp -a 'payload/opt/Mr. Streamer' "$app"
57 cp -a payload/usr/share "$pkgdir/usr/"
58 ln -s /opt/mrstreamer/mrstreamer "$pkgdir/usr/bin/mrstreamer"
59
60 local desktop="$pkgdir/usr/share/applications/mrstreamer.desktop"
61 test "$(grep -c '^Exec=' "$desktop")" -eq 1
62 grep -Fxq 'Exec="/opt/Mr. Streamer/mrstreamer" %U' "$desktop"
63 sed -i 's|^Exec="/opt/Mr\. Streamer/mrstreamer" %U$|Exec=/opt/mrstreamer/mrstreamer %U|' "$desktop"
64 grep -Fxq 'Exec=/opt/mrstreamer/mrstreamer %U' "$desktop"
65 if grep -Fq '/opt/Mr. Streamer' "$desktop"; then
66 return 1
67 fi
68
69 # fakeroot records root:root and the SUID sandbox helper in the pacman archive.
70 # Match Arch's Electron packaging; never probe host namespaces or change host policy.
71 install -m4755 'payload/opt/Mr. Streamer/chrome-sandbox' "$app/chrome-sandbox"
72
73 # Only this copy becomes package-managed. Keep direct deb/AppImage artifacts unchanged.
74 rm "$app/resources/package-type" "$app/resources/app-update.yml" \
75 "$app/resources/apparmor-profile"
76 printf '%s\n' '{"schema":1,"updates":"pacman"}' > "$app/resources/mrstreamer-installation.json"
77 chmod 644 "$app/resources/mrstreamer-installation.json"
78
79 local licenses="$pkgdir/usr/share/licenses/$pkgname"
80 install -Dm644 mrstreamer-LICENSE "$licenses/LICENSE"
81 ln -s '/opt/mrstreamer/LICENSE.electron.txt' "$licenses/LICENSE.electron.txt"
82 ln -s '/opt/mrstreamer/LICENSES.chromium.html' "$licenses/LICENSES.chromium.html"
83 local notice
84 for notice in LICENSE-FFmpeg.txt LICENSE-x264.txt LICENSE-dav1d.txt; do
85 ln -s "/opt/mrstreamer/resources/ffmpeg/$notice" "$licenses/$notice"
86 done
87 install -dm755 "$pkgdir/usr/share/doc/$pkgname"
88 printf 'Release and bundled sources: %s\nApplication source: %s\n' \
89 "https://github.com/Mr-Streamer-OSS/MrStreamer/releases/tag/v$_upstream_version" \
90 "https://github.com/Mr-Streamer-OSS/MrStreamer/tree/$_source_commit" \
91 > "$pkgdir/usr/share/doc/$pkgname/upstream.txt"
92}
93

Scan history

Scanned at (UTC)SeverityRules
2026-10-25 00:20:48 Low 2
2026-10-24 23:41:29 Low 2

Report a package

Reports go to the AURWatch maintainer (one person) and are read by hand. No login required.

0 / 4000
Your suggestion