Base: BD-J Adjustments Blu-ray scaffold

Vendored BD-J SDK, tsMuxeR + local VLC plugins, ffmpeg asset generation,
and a signed BD-J Xlet menu (org.homebrew.MyXlet) authored into a UDF 2.50 ISO.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
happy 2026-08-25 14:47:05 -04:00
commit 9c88b8f7f6
110 changed files with 19469 additions and 0 deletions

47
scripts/bootstrap-tools.sh Executable file
View file

@ -0,0 +1,47 @@
#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
MISE_BIN="${MISE_BIN:-$HOME/.local/bin/mise}"
BDJSDK_HOME="$ROOT_DIR/vendor/bdj-sdk"
TSMUXER_VERSION="2.7.0"
TSMUXER_ZIP="$ROOT_DIR/tools/downloads/tsMuxer-$TSMUXER_VERSION-linux.zip"
TSMUXER_BIN="$ROOT_DIR/tools/tsmuxer/tsMuxeR"
VLC_PLUGIN_DIR="$ROOT_DIR/tools/vlc-plugins/usr/lib/vlc/plugins"
if [[ ! -x "$MISE_BIN" ]]; then
echo "Installing mise to $MISE_BIN"
curl https://mise.run | sh
fi
"$MISE_BIN" install
JDK8_HOME="$("$MISE_BIN" where java@temurin-8.0.502+7)"
ln -sfn "$JDK8_HOME" "$BDJSDK_HOME/host/jdk8"
if [[ ! -x "$BDJSDK_HOME/host/bin/makefs" ]]; then
make -C "$BDJSDK_HOME/host/src/makefs_termux"
make -C "$BDJSDK_HOME/host/src/makefs_termux" install DESTDIR="$BDJSDK_HOME/host"
fi
if [[ ! -f "$BDJSDK_HOME/target/lib/sony-stubs.jar" ]]; then
make -C "$BDJSDK_HOME/target"
fi
if [[ ! -x "$TSMUXER_BIN" ]]; then
mkdir -p "$ROOT_DIR/tools/downloads" "$ROOT_DIR/tools/tsmuxer"
curl -L "https://github.com/justdan96/tsMuxer/releases/download/$TSMUXER_VERSION/tsMuxer-$TSMUXER_VERSION-linux.zip" -o "$TSMUXER_ZIP"
unzip -qo "$TSMUXER_ZIP" -d "$ROOT_DIR/tools/tsmuxer"
chmod +x "$TSMUXER_BIN"
fi
if [[ -x /usr/bin/pacman && ! -f "$VLC_PLUGIN_DIR/access/liblibbluray_plugin.so" ]]; then
mkdir -p "$ROOT_DIR/tools/downloads" "$ROOT_DIR/tools/vlc-plugins"
for url in $(pacman -Sp vlc-plugin-bluray vlc-plugin-mpeg2 vlc-plugin-x264 vlc-plugin-dvd 2>/dev/null); do
pkg="$ROOT_DIR/tools/downloads/$(basename "$url")"
curl -L "$url" -o "$pkg"
tar -I zstd -xf "$pkg" -C "$ROOT_DIR/tools/vlc-plugins" usr/lib/vlc/plugins
done
fi
echo "BD-J tools ready."

9
scripts/build-and-run.sh Executable file
View file

@ -0,0 +1,9 @@
#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
cd "$ROOT_DIR"
make
scripts/run-vlc.sh build/adjustments.iso

36
scripts/run-vlc.sh Executable file
View file

@ -0,0 +1,36 @@
#!/usr/bin/env bash
set -euo pipefail
ISO_PATH="${1:-build/adjustments.iso}"
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
MISE_BIN="${MISE_BIN:-$HOME/.local/bin/mise}"
if [[ ! -f "$ISO_PATH" ]]; then
echo "Missing ISO: $ISO_PATH" >&2
echo "Run: make" >&2
exit 1
fi
if [[ -x "$MISE_BIN" ]]; then
JDK8_HOME="$("$MISE_BIN" where java@temurin-8.0.502+7 2>/dev/null || true)"
else
JDK8_HOME=""
fi
if [[ -z "$JDK8_HOME" && -d "$ROOT_DIR/vendor/bdj-sdk/host/jdk8" ]]; then
JDK8_HOME="$(cd "$ROOT_DIR/vendor/bdj-sdk/host/jdk8" && pwd)"
fi
if [[ -n "$JDK8_HOME" ]]; then
export JAVA_HOME="$JDK8_HOME/jre"
export JDK_HOME="$JDK8_HOME"
export LD_LIBRARY_PATH="$JDK8_HOME/jre/lib/amd64/server:${LD_LIBRARY_PATH:-}"
fi
LOCAL_VLC_PLUGINS="$ROOT_DIR/tools/vlc-plugins/usr/lib/vlc/plugins"
if [[ -d "$LOCAL_VLC_PLUGINS" ]]; then
export VLC_PLUGIN_PATH="$LOCAL_VLC_PLUGINS:/usr/lib/vlc/plugins${VLC_PLUGIN_PATH:+:$VLC_PLUGIN_PATH}"
fi
ABS_ISO="$(cd "$(dirname "$ISO_PATH")" && pwd)/$(basename "$ISO_PATH")"
exec vlc --reset-plugins-cache "bluray://$ABS_ISO"