mirror of
https://github.com/Ld-Hagen/fix-opera-linux-ffmpeg-widevine.git
synced 2026-07-11 23:37:27 +03:00
openSUSE fixes to install scripts
This commit is contained in:
0
install.sh
Normal file → Executable file
0
install.sh
Normal file → Executable file
@@ -104,6 +104,16 @@ for opera in ${OPERA_VERSIONS[@]}; do
|
|||||||
EXECUTABLE=$(command -v "$opera")
|
EXECUTABLE=$(command -v "$opera")
|
||||||
if [[ "$ARCH_SYSTEM" == true ]]; then
|
if [[ "$ARCH_SYSTEM" == true ]]; then
|
||||||
OPERA_DIR=$(dirname $(cat $EXECUTABLE | grep exec | cut -d ' ' -f 2))
|
OPERA_DIR=$(dirname $(cat $EXECUTABLE | grep exec | cut -d ' ' -f 2))
|
||||||
|
elif head -1 "$EXECUTABLE" | grep -q 'bash\|sh'; then
|
||||||
|
# The executable is a shell wrapper (e.g. openSUSE packages Opera as a wrapper
|
||||||
|
# script). readlink -f on a script returns the script itself, not the real binary,
|
||||||
|
# so we parse the LIBDIR variable directly from the wrapper instead.
|
||||||
|
PARSED_LIBDIR=$(grep '^LIBDIR=' "$EXECUTABLE" | head -1 | sed 's/LIBDIR=//;s/"//g' | sed "s/\\\$PROGNAME/$opera/g")
|
||||||
|
if [[ -n "$PARSED_LIBDIR" && -d "$PARSED_LIBDIR" ]]; then
|
||||||
|
OPERA_DIR="$PARSED_LIBDIR"
|
||||||
|
else
|
||||||
|
OPERA_DIR=$(dirname $(readlink -f $EXECUTABLE))
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
OPERA_DIR=$(dirname $(readlink -f $EXECUTABLE))
|
OPERA_DIR=$(dirname $(readlink -f $EXECUTABLE))
|
||||||
fi
|
fi
|
||||||
@@ -135,6 +145,23 @@ for opera in ${OPERA_VERSIONS[@]}; do
|
|||||||
cp -f "$FIX_DIR/$WIDEVINE_MANIFEST_NAME" "$OPERA_WIDEVINE_DIR"
|
cp -f "$FIX_DIR/$WIDEVINE_MANIFEST_NAME" "$OPERA_WIDEVINE_DIR"
|
||||||
chmod 0644 "$OPERA_WIDEVINE_DIR/$WIDEVINE_MANIFEST_NAME"
|
chmod 0644 "$OPERA_WIDEVINE_DIR/$WIDEVINE_MANIFEST_NAME"
|
||||||
printf "[\n {\n \"preload\": \"$OPERA_WIDEVINE_DIR\"\n }\n]\n" > "$OPERA_WIDEVINE_CONFIG"
|
printf "[\n {\n \"preload\": \"$OPERA_WIDEVINE_DIR\"\n }\n]\n" > "$OPERA_WIDEVINE_CONFIG"
|
||||||
|
|
||||||
|
# Newer Chromium-based Opera versions (110+) no longer read widevine_config.json.
|
||||||
|
# On zypper-based systems (openSUSE) Opera reads OPERA_FLAGS from /etc/default/opera,
|
||||||
|
# so we inject --widevine-cdm-path there as well to cover both loading mechanisms.
|
||||||
|
if command -v zypper &>/dev/null && [[ -f /etc/default/$opera ]]; then
|
||||||
|
OPERA_DEFAULT="/etc/default/$opera"
|
||||||
|
CDM_FLAG="--widevine-cdm-path=$OPERA_WIDEVINE_DIR"
|
||||||
|
if grep -q 'OPERA_FLAGS=' "$OPERA_DEFAULT"; then
|
||||||
|
# Append the flag if not already present
|
||||||
|
if ! grep -qF -- "$CDM_FLAG" "$OPERA_DEFAULT"; then
|
||||||
|
sed -i "s|OPERA_FLAGS=\"\(.*\)\"|OPERA_FLAGS=\"\1 $CDM_FLAG\"|" "$OPERA_DEFAULT"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "OPERA_FLAGS=\"$CDM_FLAG\"" >> "$OPERA_DEFAULT"
|
||||||
|
fi
|
||||||
|
printf "Widevine CDM path added to %s\n" "$OPERA_DEFAULT"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user