1.0.0 Licence

This commit is contained in:
2026-06-30 08:01:02 +02:00
parent 41887e5465
commit e754f1f7c3
35 changed files with 2046 additions and 5 deletions
+89 -1
View File
@@ -1,4 +1,5 @@
#!/usr/bin/env bash
# SPDX-License-Identifier: GPL-2.0-or-later
# =============================================================================
# Ripster Installationsskript (Git)
# Unterstützt: Debian 11/12, Ubuntu 22.04/24.04
@@ -22,6 +23,7 @@
# --no-handbrake HandBrake-Installation überspringen
# --no-nginx Nginx-Einrichtung überspringen
# --no-system-deps Abschnitt "Systemabhängigkeiten installieren" überspringen
# --accept-makemkv-eula MakeMKV-Lizenz/EULA bewusst akzeptieren
# --reinstall Vorhandene Installation aktualisieren (Daten bleiben erhalten)
# -h, --help Diese Hilfe anzeigen
# =============================================================================
@@ -56,6 +58,7 @@ SKIP_HANDBRAKE=false
HANDBRAKE_INSTALL_MODE=""
SKIP_NGINX=false
SKIP_SYSTEM_DEPS=false
ACCEPT_MAKEMKV_EULA=false
REINSTALL=false
GIT_COMMAND_TIMEOUT_SEC=180
@@ -80,6 +83,7 @@ while [[ $# -gt 0 ]]; do
--no-handbrake) SKIP_HANDBRAKE=true; shift ;;
--no-nginx) SKIP_NGINX=true; shift ;;
--no-system-deps) SKIP_SYSTEM_DEPS=true; shift ;;
--accept-makemkv-eula) ACCEPT_MAKEMKV_EULA=true; shift ;;
--reinstall) REINSTALL=true; shift ;;
-h|--help)
sed -n '/^# Verwendung/,/^# ====/p' "$0" | head -n -1 | sed 's/^# \?//'
@@ -447,6 +451,34 @@ install_node() {
ok "Node.js $(node --version) installiert"
}
confirm_makemkv_eula() {
if [[ "$ACCEPT_MAKEMKV_EULA" == true ]]; then
warn "MakeMKV-EULA wurde per --accept-makemkv-eula ausdrücklich akzeptiert."
return 0
fi
echo ""
warn "MakeMKV unterliegt eigenen Lizenz- und Registrierungsbedingungen."
warn "Ripster kann diese Bedingungen nicht automatisch fuer dich akzeptieren."
echo "Bitte pruefe die MakeMKV-Lizenzbedingungen, bevor MakeMKV gebaut und installiert wird."
echo ""
local answer=""
if [[ -t 0 ]]; then
read -r -p "MakeMKV-EULA bewusst akzeptieren und MakeMKV installieren? Tippe 'yes': " answer
elif [[ -r /dev/tty ]]; then
read -r -p "MakeMKV-EULA bewusst akzeptieren und MakeMKV installieren? Tippe 'yes': " answer </dev/tty
else
fatal "MakeMKV-Installation benoetigt ausdrueckliche Zustimmung. Nutze --accept-makemkv-eula oder --no-makemkv."
fi
if [[ "$answer" != "yes" ]]; then
fatal "MakeMKV-Installation abgebrochen. Nutze --no-makemkv zum Ueberspringen."
fi
ACCEPT_MAKEMKV_EULA=true
}
install_makemkv() {
header "MakeMKV installieren"
@@ -455,6 +487,8 @@ install_makemkv() {
return
fi
confirm_makemkv_eula
info "Installiere Build-Abhängigkeiten für MakeMKV..."
apt-get install -y \
build-essential pkg-config libc6-dev libssl-dev \
@@ -495,6 +529,7 @@ install_makemkv() {
cd "$tmp_dir"
tar xf "makemkv-bin-${makemkv_version}.tar.gz"
cd "makemkv-bin-${makemkv_version}"
# MakeMKV expects this marker during its own build after explicit user consent.
mkdir -p tmp && echo "accepted" > tmp/eula_accepted
make -j"$(nproc)"
make install
@@ -651,8 +686,59 @@ install_handbrake_standard() {
fatal "HandBrake wurde installiert, aber kein CLI-Befehl wurde gefunden."
}
verify_bundled_handbrake_binary() {
local candidate="$1"
local checksum_file="${SCRIPT_DIR}/third_party/handbrake/SHA256SUMS"
local host_arch
local binary_desc=""
if [[ ! -f "$candidate" ]]; then
fatal "Gebündelte HandBrakeCLI fehlt: $candidate"
fi
if [[ ! -x "$candidate" ]]; then
fatal "Gebündelte HandBrakeCLI ist nicht ausführbar: $candidate"
fi
host_arch="$(uname -m 2>/dev/null || echo unknown)"
if command_exists file; then
binary_desc="$(file -b "$candidate" 2>/dev/null || true)"
info "Gebündelte HandBrakeCLI: ${binary_desc:-Architektur nicht ermittelbar}"
case "$binary_desc" in
*"x86-64"*)
case "$host_arch" in
x86_64|amd64) ;;
*) fatal "Gebündelte HandBrakeCLI ist x86-64, Host-Architektur ist '$host_arch'." ;;
esac
;;
*)
warn "Architektur der gebündelten HandBrakeCLI konnte nicht eindeutig geprüft werden."
;;
esac
else
warn "Befehl 'file' nicht gefunden - Architekturprüfung für HandBrakeCLI übersprungen."
fi
if [[ -f "$checksum_file" ]] && command_exists sha256sum; then
local expected
local actual
expected=$(awk '$2 == "bin/HandBrakeCLI" || $2 == "./bin/HandBrakeCLI" { print $1; exit }' "$checksum_file")
if [[ -n "$expected" ]]; then
actual=$(sha256sum "$candidate" | awk '{ print $1 }')
if [[ "$actual" != "$expected" ]]; then
fatal "Prüfsumme der gebündelten HandBrakeCLI stimmt nicht. Erwartet $expected, erhalten $actual."
fi
ok "Prüfsumme der gebündelten HandBrakeCLI verifiziert"
else
warn "Keine passende HandBrakeCLI-Prüfsumme in $checksum_file gefunden."
fi
else
warn "HandBrakeCLI-Prüfsumme konnte nicht geprüft werden (SHA256SUMS oder sha256sum fehlt)."
fi
}
install_handbrake_gpu_bundled() {
info "Installiere gebündeltes HandBrakeCLI mit NVDEC..."
info "Installiere gebündelte GPU-fähige HandBrakeCLI..."
local bundled_source="$BUNDLED_HANDBRAKE_CLI"
local downloaded_tmp=""
@@ -670,6 +756,8 @@ install_handbrake_gpu_bundled() {
fi
fi
verify_bundled_handbrake_binary "$bundled_source"
install -m 0755 "$bundled_source" /usr/local/bin/HandBrakeCLI
hash -r 2>/dev/null || true
if [[ -n "$downloaded_tmp" ]]; then