1.0.0 Licence
This commit is contained in:
+89
-1
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user