vlc-3.0.23-x86_64-1_pmagic.tgz — VLC runs as root again ======================================================= sha256 3f78763103545c17c27ca50054d1c1d47e09f00522281a3256c3fed8803fccbb size 23,322,029 bytes built 2026-09-22, in the /media/slackware15 chroot WHAT WENT WRONG The image carried Alien Bob's VLC from 2021 until the -current conversion: vlc-3.0.10-x86_64-1alien upgraded 2021-11-04 vlc-3.0.12-x86_64-1alien upgraded 2022-08-18 vlc-3.0.17.4-x86_64-1alien upgraded 2026-08-29 12:40:56 <- the swap vlc-3.0.23-x86_64-1_SBo installed that day VLC has an upstream configure flag, --enable-run-as-root, that compiles out the "VLC is not supposed to be run as root" refusal. Alien Bob's SlackBuild passes it unconditionally. The SlackBuilds.org recipe gates it behind an environment variable: runasroot=""; [ "${RUNASROOT:-no}" != "no" ] && runasroot="--enable-run-as-root" and its own README says to build with RUNASROOT=yes. The 2026-08-29 build did not set it. Our build log from that day has zero mentions of run-as-root; the pre-conversion binary has zero occurrences of the refusal string and no geteuid, and the shipping one has both. WHAT THIS PACKAGE IS The same SlackBuilds.org recipe, rebuilt with RUNASROOT=yes and TAG=_pmagic. One change to the script — "make" to "make -j8", nothing else; the diff is vlc.SlackBuild.diff and both versions are here. The upstream tarball is here too and its md5 matches the recipe's own .info. Verified: file list 1133 files, IDENTICAL to the installed package — 0 lost, 0 gained the fix 0 occurrences of the refusal string, no geteuid libraries every NEEDED resolves against the image (129 of 129), with one exception below symbol versions needs at most GLIBC_2.43 / GLIBCXX_3.4.32; the image provides 2.44 / 3.4.36 firmware writes nothing under lib/firmware size 23 MB packaged, 67 MB installed (was 22 MB / 65 MB) on the Dell installed over the running image and run AS ROOT: the stock menu entry plays an H.264 file with audio and Radeon hardware decoding, no refusal, zero errors INSTALLING IT Put the package at the root of the squashfs, dry-run the upgrade, then do it: cp /media/documents/Patrick/1PMagic_slack/claude_output/vlc-runasroot/vlc-3.0.23-x86_64-1_pmagic.tgz \ /media/documents/Patrick/1PMagic_slack/squashfs-root/vlc-3.0.23-x86_64-1_pmagic.tgz chroot /media/documents/Patrick/1PMagic_slack/squashfs-root \ /sbin/upgradepkg --dry-run /vlc-3.0.23-x86_64-1_pmagic.tgz chroot /media/documents/Patrick/1PMagic_slack/squashfs-root \ /sbin/upgradepkg /vlc-3.0.23-x86_64-1_pmagic.tgz rm -f /media/documents/Patrick/1PMagic_slack/squashfs-root/vlc-3.0.23-x86_64-1_pmagic.tgz It replaces vlc-3.0.23-x86_64-1_SBo with the same 1133 files, rebuilt with the root check compiled out. ldconfig runs inside the chroot on its own, because ROOT is empty there. THEN THE SWEEP — one file has to come out again The package carries usr/lib64/vlc/plugins/stream_out/libstream_out_chromecast_plugin.so, which needs protobuf-lite and 79 abseil libraries this image does not have. It was removed by hand at conversion time; it comes back with every vlc install, so it is now an entry in the sweep. Dry run: /media/documents/Patrick/1PMagic_slack/claude_output/remove-unusable-plugins.sh -n \ /media/documents/Patrick/1PMagic_slack/squashfs-root then without -n. The DEMUX chromecast plugin beside it has no such dependency and stays. Finally: python3 /media/slackware15/build/pkgstrip/resync.py