update script
This commit is contained in:
69
install.sh
69
install.sh
@@ -6,8 +6,10 @@ APP_DIR="$HOME/.local/share/applications"
|
||||
SERVICE_MENU_DIR="$HOME/.local/share/kio/servicemenus"
|
||||
LEGACY_SERVICE_MENU_DIR="$HOME/.local/share/kservices5/ServiceMenus"
|
||||
|
||||
# Check Python 3 and PySide6 dependency
|
||||
# Check dependencies
|
||||
echo "Checking dependencies..."
|
||||
MISSING_OPTIONAL=()
|
||||
|
||||
if ! command -v python3 &>/dev/null; then
|
||||
echo "Error: Python 3 is required but not found on your system."
|
||||
exit 1
|
||||
@@ -35,7 +37,65 @@ if ! python3 -c "import PySide6" &>/dev/null; then
|
||||
fi
|
||||
|
||||
if ! python3 -c "import PySide6" &>/dev/null; then
|
||||
echo "Warning: Could not automatically install PySide6. Please install 'PySide6' via pip or your distro package manager (e.g. python3-pyside6)."
|
||||
echo "Warning: Could not automatically install PySide6. Please install 'PySide6' via pip or package manager."
|
||||
fi
|
||||
|
||||
if ! command -v spectacle &>/dev/null; then
|
||||
MISSING_OPTIONAL+=("spectacle (KDE screenshot capture tool)")
|
||||
fi
|
||||
|
||||
if ! command -v ffmpeg &>/dev/null; then
|
||||
MISSING_OPTIONAL+=("ffmpeg (Video notification thumbnail generator)")
|
||||
fi
|
||||
|
||||
# Check Qt6 / KF6 Purpose plugin build requirements
|
||||
HAS_QT6_MOC=false
|
||||
for m in /usr/lib/qt6/moc /usr/lib/qt6/libexec/moc /usr/libexec/qt6/moc /usr/lib64/qt6/libexec/moc /usr/lib/qt6/bin/moc moc-qt6 moc; do
|
||||
if [ -x "$m" ] || command -v "$m" &>/dev/null; then
|
||||
bin_path="$m"
|
||||
[ -x "$m" ] || bin_path="$(command -v "$m")"
|
||||
ver="$("$bin_path" -v 2>&1 || true)"
|
||||
if [[ "$ver" =~ moc\ 6\. ]] || [[ "$ver" =~ Qt\ 6\. ]] || [[ "$ver" =~ 6\.[0-9]+ ]]; then
|
||||
HAS_QT6_MOC=true
|
||||
break
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
HAS_PURPOSE_HDR=false
|
||||
for h in /usr/include/KF6/Purpose /usr/include/purpose; do
|
||||
if [ -d "$h" ]; then
|
||||
HAS_PURPOSE_HDR=true
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if [ "$HAS_QT6_MOC" = false ] || [ "$HAS_PURPOSE_HDR" = false ]; then
|
||||
MISSING_OPTIONAL+=("qt6-base & kf6-purpose (KDE Gwenview Share Menu integration)")
|
||||
fi
|
||||
|
||||
if [ ${#MISSING_OPTIONAL[@]} -gt 0 ]; then
|
||||
echo ""
|
||||
echo "--------------------------------------------------------"
|
||||
echo " Notice: Optional dependencies missing:"
|
||||
for dep in "${MISSING_OPTIONAL[@]}"; do
|
||||
echo " - $dep"
|
||||
done
|
||||
echo ""
|
||||
echo " To install missing dependencies:"
|
||||
if command -v pacman &>/dev/null; then
|
||||
echo " Arch Linux: sudo pacman -S python-pyside6 spectacle ffmpeg qt6-base kf6-purpose kf6-kcoreaddons"
|
||||
elif command -v dnf &>/dev/null; then
|
||||
echo " Fedora: sudo dnf install python3-pyside6 spectacle ffmpeg qt6-qtbase-devel kf6-purpose-devel kf6-kcoreaddons-devel"
|
||||
elif command -v apt-get &>/dev/null; then
|
||||
echo " Debian/Ubuntu: sudo apt install python3-pyside6 spectacle ffmpeg qt6-base-dev libkf6purpose-dev libkf6kcoreaddons-dev"
|
||||
else
|
||||
echo " Arch Linux: sudo pacman -S python-pyside6 spectacle ffmpeg qt6-base kf6-purpose kf6-kcoreaddons"
|
||||
echo " Fedora: sudo dnf install python3-pyside6 spectacle ffmpeg qt6-qtbase-devel kf6-purpose-devel kf6-kcoreaddons-devel"
|
||||
echo " Debian/Ubuntu: sudo apt install python3-pyside6 spectacle ffmpeg qt6-base-dev libkf6purpose-dev libkf6kcoreaddons-dev"
|
||||
fi
|
||||
echo "--------------------------------------------------------"
|
||||
echo ""
|
||||
fi
|
||||
|
||||
# Create necessary directories
|
||||
@@ -139,9 +199,12 @@ if [ -f "purpose_plugin/build_plugin.sh" ]; then
|
||||
cp "purpose_plugin/f0ckmpurposeplugin.so" "$PURPOSE_USER_DIR64/f0ckmpurposeplugin.so"
|
||||
cp "purpose_plugin/f0ckmpurposeplugin.so" "$PURPOSE_USER_DIR32/f0ckmpurposeplugin.so"
|
||||
|
||||
if [ -w "/usr/lib64/qt6/plugins/kf6/purpose" ]; then
|
||||
if [ -w "/usr/lib/qt6/plugins/kf6/purpose" ]; then
|
||||
cp "purpose_plugin/f0ckmpurposeplugin.so" "/usr/lib/qt6/plugins/kf6/purpose/f0ckmpurposeplugin.so" &>/dev/null || true
|
||||
elif [ -w "/usr/lib64/qt6/plugins/kf6/purpose" ]; then
|
||||
cp "purpose_plugin/f0ckmpurposeplugin.so" "/usr/lib64/qt6/plugins/kf6/purpose/f0ckmpurposeplugin.so" &>/dev/null || true
|
||||
elif sudo -n true 2>/dev/null; then
|
||||
sudo cp "purpose_plugin/f0ckmpurposeplugin.so" "/usr/lib/qt6/plugins/kf6/purpose/f0ckmpurposeplugin.so" &>/dev/null || true
|
||||
sudo cp "purpose_plugin/f0ckmpurposeplugin.so" "/usr/lib64/qt6/plugins/kf6/purpose/f0ckmpurposeplugin.so" &>/dev/null || true
|
||||
fi
|
||||
|
||||
|
||||
Reference in New Issue
Block a user