makefile: remove sudo, remove fix-build-perms target

This commit is contained in:
Levi Neely 2026-07-06 13:42:44 +02:00
parent c3155f53d8
commit f8b923ea13
1 changed files with 61 additions and 70 deletions

131
Makefile
View File

@ -7,7 +7,7 @@ LIB_DIR := build
.PHONY: all lib daemon clean run install uninstall \ .PHONY: all lib daemon clean run install uninstall \
kf5 kf5-install kf5-uninstall \ kf5 kf5-install kf5-uninstall \
krunner-install dolphin-install plasmoid-install plasmoid-uninstall \ krunner-install dolphin-install plasmoid-install plasmoid-uninstall \
tray fix-build-perms tray
all: daemon all: daemon
@ -18,19 +18,10 @@ $(LIB_DIR)/libollie.so: lib/capi.go lib/go.mod
cd lib && go build -buildmode=c-shared -o ../$(LIB_DIR)/libollie.so cd lib && go build -buildmode=c-shared -o ../$(LIB_DIR)/libollie.so
# Step 2: Build the C++ daemon against libollie.so # Step 2: Build the C++ daemon against libollie.so
daemon: lib fix-build-perms daemon: lib
cmake -B $(BUILD_DIR) -S . cmake -B $(BUILD_DIR) -S .
cmake --build $(BUILD_DIR) cmake --build $(BUILD_DIR)
# Fix build directory permissions if a previous sudo install contaminated them.
# This happens when cmake re-runs during `sudo make install` or when `sudo cp`
# somehow taints the build tree.
fix-build-perms:
@if [ -d $(BUILD_DIR) ] && find $(BUILD_DIR) -not -user $$(id -u) -print -quit 2>/dev/null | grep -q .; then \
echo "Fixing build directory permissions (root-owned files detected)..."; \
sudo chown -R $$(id -u):$$(id -g) $(BUILD_DIR); \
fi
# Step 2b: Build using KF5/Qt5 (for Plasma 5.27) # Step 2b: Build using KF5/Qt5 (for Plasma 5.27)
kf5: lib kf5: lib
@cp CMakeLists.txt CMakeLists.txt.kf6.bak && \ @cp CMakeLists.txt CMakeLists.txt.kf6.bak && \
@ -44,27 +35,27 @@ kf5: lib
install: daemon install: daemon
@echo "=== Installing ollie-kde (KF6) ===" @echo "=== Installing ollie-kde (KF6) ==="
# Daemon + tray binaries # Daemon + tray binaries
sudo install -m755 $(BUILD_DIR)/ollie-kde /usr/bin/ install -m755 $(BUILD_DIR)/ollie-kde /usr/bin/
sudo install -m755 $(BUILD_DIR)/ollie-tray /usr/bin/ install -m755 $(BUILD_DIR)/ollie-tray /usr/bin/
# Go shared library # Go shared library
sudo install -m755 $(LIB_DIR)/libollie.so /usr/lib64/ install -m755 $(LIB_DIR)/libollie.so /usr/lib64/
# KRunner plugin # KRunner plugin
sudo mkdir -p /usr/lib64/qt6/plugins/kf6/krunner mkdir -p /usr/lib64/qt6/plugins/kf6/krunner
sudo install -m755 $(BUILD_DIR)/lib/kf6/krunner/krunner_ollie.so \ install -m755 $(BUILD_DIR)/lib/kf6/krunner/krunner_ollie.so \
/usr/lib64/qt6/plugins/kf6/krunner/ /usr/lib64/qt6/plugins/kf6/krunner/
# Kate plugin # Kate plugin
sudo mkdir -p /usr/lib64/qt6/plugins/kf6/ktexteditor mkdir -p /usr/lib64/qt6/plugins/kf6/ktexteditor
sudo install -m755 $(BUILD_DIR)/lib/kf6/ktexteditor/ollie_kate.so \ install -m755 $(BUILD_DIR)/lib/kf6/ktexteditor/ollie_kate.so \
/usr/lib64/qt6/plugins/kf6/ktexteditor/ /usr/lib64/qt6/plugins/kf6/ktexteditor/
# Plasmoid QML plugin library + metadata # Plasmoid QML plugin library + metadata
sudo mkdir -p /usr/lib64/qt6/qml/org/ollie/private mkdir -p /usr/lib64/qt6/qml/org/ollie/private
sudo install -m755 $(BUILD_DIR)/org/ollie/private/ollie-plasmoid-pluginplugin.so \ install -m755 $(BUILD_DIR)/org/ollie/private/ollie-plasmoid-pluginplugin.so \
/usr/lib64/qt6/qml/org/ollie/private/libollie-plasmoid-pluginplugin.so /usr/lib64/qt6/qml/org/ollie/private/libollie-plasmoid-pluginplugin.so
sudo install -m644 $(BUILD_DIR)/org/ollie/private/ollie-plasmoid-plugin.qmltypes \ install -m644 $(BUILD_DIR)/org/ollie/private/ollie-plasmoid-plugin.qmltypes \
/usr/lib64/qt6/qml/org/ollie/private/ /usr/lib64/qt6/qml/org/ollie/private/
sudo install -m755 $(BUILD_DIR)/lib/libollie-plasmoid-plugin.so /usr/lib64/ install -m755 $(BUILD_DIR)/lib/libollie-plasmoid-plugin.so /usr/lib64/
printf 'module org.ollie.private\nplugin ollie-plasmoid-pluginplugin\ntypeinfo ollie-plasmoid-plugin.qmltypes\ndepends QtQuick\n' | \ printf 'module org.ollie.private\nplugin ollie-plasmoid-pluginplugin\ntypeinfo ollie-plasmoid-plugin.qmltypes\ndepends QtQuick\n' | \
sudo tee /usr/lib64/qt6/qml/org/ollie/private/qmldir > /dev/null tee /usr/lib64/qt6/qml/org/ollie/private/qmldir > /dev/null
# Plasmoid package (force-update by removing first) # Plasmoid package (force-update by removing first)
kpackagetool6 -t Plasma/Applet -r org.ollie.plasmoid 2>/dev/null; true kpackagetool6 -t Plasma/Applet -r org.ollie.plasmoid 2>/dev/null; true
kpackagetool6 -t Plasma/Applet -i plasmoid/ kpackagetool6 -t Plasma/Applet -i plasmoid/
@ -72,12 +63,12 @@ install: daemon
mkdir -p ~/.local/share/kio/servicemenus mkdir -p ~/.local/share/kio/servicemenus
rm -f ~/.local/share/kio/servicemenus/ollie-actions.desktop rm -f ~/.local/share/kio/servicemenus/ollie-actions.desktop
install -m755 dolphin/ollie-actions.desktop ~/.local/share/kio/servicemenus/ install -m755 dolphin/ollie-actions.desktop ~/.local/share/kio/servicemenus/
sudo install -m755 dolphin/ollie-ask /usr/local/bin/ install -m755 dolphin/ollie-ask /usr/local/bin/
sudo install -m755 dolphin/ollie-session-here /usr/local/bin/ install -m755 dolphin/ollie-session-here /usr/local/bin/
# XDG autostart # XDG autostart
sudo install -m644 org.ollie.SessionManager.desktop /etc/xdg/autostart/ install -m644 org.ollie.SessionManager.desktop /etc/xdg/autostart/
# Finalize # Finalize
sudo ldconfig ldconfig
kquitapp6 krunner 2>/dev/null; true kquitapp6 krunner 2>/dev/null; true
@echo "" @echo ""
@echo "=== Installation complete (KF6) ===" @echo "=== Installation complete (KF6) ==="
@ -86,24 +77,24 @@ install: daemon
uninstall: uninstall:
@echo "=== Uninstalling ollie-kde ===" @echo "=== Uninstalling ollie-kde ==="
pkill -u "$$(id -u)" -x ollie-kde 2>/dev/null; true pkill -u "$$(id -u)" -x ollie-kde 2>/dev/null; true
sudo rm -f /usr/bin/ollie-kde /usr/bin/ollie-tray rm -f /usr/bin/ollie-kde /usr/bin/ollie-tray
sudo rm -f /usr/lib64/libollie.so /usr/lib64/libollie-plasmoid-plugin.so rm -f /usr/lib64/libollie.so /usr/lib64/libollie-plasmoid-plugin.so
sudo rm -f /usr/lib64/qt6/plugins/kf6/krunner/krunner_ollie.so rm -f /usr/lib64/qt6/plugins/kf6/krunner/krunner_ollie.so
sudo rm -f /usr/lib64/qt6/plugins/kf6/ktexteditor/ollie_kate.so rm -f /usr/lib64/qt6/plugins/kf6/ktexteditor/ollie_kate.so
sudo rm -rf /usr/lib64/qt6/qml/org/ollie rm -rf /usr/lib64/qt6/qml/org/ollie
kpackagetool6 -t Plasma/Applet -r org.ollie.plasmoid 2>/dev/null; true kpackagetool6 -t Plasma/Applet -r org.ollie.plasmoid 2>/dev/null; true
rm -f ~/.local/share/kio/servicemenus/ollie-actions.desktop rm -f ~/.local/share/kio/servicemenus/ollie-actions.desktop
sudo rm -f /usr/local/bin/ollie-ask /usr/local/bin/ollie-session-here rm -f /usr/local/bin/ollie-ask /usr/local/bin/ollie-session-here
sudo rm -f /etc/xdg/autostart/org.ollie.SessionManager.desktop rm -f /etc/xdg/autostart/org.ollie.SessionManager.desktop
sudo ldconfig ldconfig
kquitapp6 krunner 2>/dev/null; true kquitapp6 krunner 2>/dev/null; true
@echo "=== Uninstall complete ===" @echo "=== Uninstall complete ==="
# --- Individual component installs --- # --- Individual component installs ---
krunner-install: daemon krunner-install: daemon
sudo mkdir -p /usr/lib64/qt6/plugins/kf6/krunner mkdir -p /usr/lib64/qt6/plugins/kf6/krunner
sudo install -m755 $(BUILD_DIR)/lib/kf6/krunner/krunner_ollie.so \ install -m755 $(BUILD_DIR)/lib/kf6/krunner/krunner_ollie.so \
/usr/lib64/qt6/plugins/kf6/krunner/ /usr/lib64/qt6/plugins/kf6/krunner/
kquitapp6 krunner 2>/dev/null; true kquitapp6 krunner 2>/dev/null; true
@echo "KRunner plugin installed. Restart krunner or re-login." @echo "KRunner plugin installed. Restart krunner or re-login."
@ -112,29 +103,29 @@ dolphin-install:
mkdir -p ~/.local/share/kio/servicemenus mkdir -p ~/.local/share/kio/servicemenus
rm -f ~/.local/share/kio/servicemenus/ollie-actions.desktop rm -f ~/.local/share/kio/servicemenus/ollie-actions.desktop
install -m755 dolphin/ollie-actions.desktop ~/.local/share/kio/servicemenus/ install -m755 dolphin/ollie-actions.desktop ~/.local/share/kio/servicemenus/
sudo install -m755 dolphin/ollie-ask /usr/local/bin/ install -m755 dolphin/ollie-ask /usr/local/bin/
sudo install -m755 dolphin/ollie-session-here /usr/local/bin/ install -m755 dolphin/ollie-session-here /usr/local/bin/
@echo "Dolphin menus installed. Restart Dolphin or re-open context menu." @echo "Dolphin menus installed. Restart Dolphin or re-open context menu."
plasmoid-install: daemon plasmoid-install: daemon
kpackagetool6 -t Plasma/Applet -r org.ollie.plasmoid 2>/dev/null; true kpackagetool6 -t Plasma/Applet -r org.ollie.plasmoid 2>/dev/null; true
kpackagetool6 -t Plasma/Applet -i plasmoid/ kpackagetool6 -t Plasma/Applet -i plasmoid/
sudo mkdir -p /usr/lib64/qt6/qml/org/ollie/private mkdir -p /usr/lib64/qt6/qml/org/ollie/private
sudo install -m755 $(BUILD_DIR)/org/ollie/private/ollie-plasmoid-pluginplugin.so \ install -m755 $(BUILD_DIR)/org/ollie/private/ollie-plasmoid-pluginplugin.so \
/usr/lib64/qt6/qml/org/ollie/private/libollie-plasmoid-pluginplugin.so /usr/lib64/qt6/qml/org/ollie/private/libollie-plasmoid-pluginplugin.so
sudo install -m644 $(BUILD_DIR)/org/ollie/private/ollie-plasmoid-plugin.qmltypes \ install -m644 $(BUILD_DIR)/org/ollie/private/ollie-plasmoid-plugin.qmltypes \
/usr/lib64/qt6/qml/org/ollie/private/ /usr/lib64/qt6/qml/org/ollie/private/
sudo install -m755 $(BUILD_DIR)/lib/libollie-plasmoid-plugin.so /usr/lib64/ install -m755 $(BUILD_DIR)/lib/libollie-plasmoid-plugin.so /usr/lib64/
printf 'module org.ollie.private\nplugin ollie-plasmoid-pluginplugin\ntypeinfo ollie-plasmoid-plugin.qmltypes\ndepends QtQuick\n' | \ printf 'module org.ollie.private\nplugin ollie-plasmoid-pluginplugin\ntypeinfo ollie-plasmoid-plugin.qmltypes\ndepends QtQuick\n' | \
sudo tee /usr/lib64/qt6/qml/org/ollie/private/qmldir > /dev/null tee /usr/lib64/qt6/qml/org/ollie/private/qmldir > /dev/null
sudo ldconfig ldconfig
@echo "Plasmoid installed. Restart plasmashell or add widget." @echo "Plasmoid installed. Restart plasmashell or add widget."
plasmoid-uninstall: plasmoid-uninstall:
kpackagetool6 -t Plasma/Applet -r org.ollie.plasmoid 2>/dev/null; true kpackagetool6 -t Plasma/Applet -r org.ollie.plasmoid 2>/dev/null; true
sudo rm -rf /usr/lib64/qt6/qml/org/ollie rm -rf /usr/lib64/qt6/qml/org/ollie
sudo rm -f /usr/lib64/libollie-plasmoid-plugin.so rm -f /usr/lib64/libollie-plasmoid-plugin.so
sudo ldconfig ldconfig
@echo "Plasmoid uninstalled." @echo "Plasmoid uninstalled."
# --- KF5 Install --- # --- KF5 Install ---
@ -142,23 +133,23 @@ plasmoid-uninstall:
kf5-install: kf5 kf5-install: kf5
@echo "=== Installing ollie-kde (KF5) ===" @echo "=== Installing ollie-kde (KF5) ==="
# Daemon + tray binaries # Daemon + tray binaries
sudo install -m755 $(BUILD_DIR)/ollie-kde /usr/bin/ install -m755 $(BUILD_DIR)/ollie-kde /usr/bin/
sudo install -m755 $(BUILD_DIR)/ollie-tray /usr/bin/ install -m755 $(BUILD_DIR)/ollie-tray /usr/bin/
# Go shared library # Go shared library
sudo install -m755 $(LIB_DIR)/libollie.so /usr/lib/x86_64-linux-gnu/ install -m755 $(LIB_DIR)/libollie.so /usr/lib/x86_64-linux-gnu/
# KRunner plugin # KRunner plugin
sudo mkdir -p /usr/lib/x86_64-linux-gnu/qt5/plugins/kf5/krunner mkdir -p /usr/lib/x86_64-linux-gnu/qt5/plugins/kf5/krunner
sudo install -m755 $(BUILD_DIR)/lib/krunner_ollie.so \ install -m755 $(BUILD_DIR)/lib/krunner_ollie.so \
/usr/lib/x86_64-linux-gnu/qt5/plugins/kf5/krunner/ /usr/lib/x86_64-linux-gnu/qt5/plugins/kf5/krunner/
# Kate plugin # Kate plugin
sudo mkdir -p /usr/lib/x86_64-linux-gnu/qt5/plugins/ktexteditor mkdir -p /usr/lib/x86_64-linux-gnu/qt5/plugins/ktexteditor
sudo install -m755 $(BUILD_DIR)/lib/ollie_kate.so \ install -m755 $(BUILD_DIR)/lib/ollie_kate.so \
/usr/lib/x86_64-linux-gnu/qt5/plugins/ktexteditor/ /usr/lib/x86_64-linux-gnu/qt5/plugins/ktexteditor/
# Plasmoid QML plugin # Plasmoid QML plugin
sudo mkdir -p /usr/lib/x86_64-linux-gnu/qt5/qml/org/ollie/private mkdir -p /usr/lib/x86_64-linux-gnu/qt5/qml/org/ollie/private
sudo install -m755 $(BUILD_DIR)/lib/libollieprivateplugin.so \ install -m755 $(BUILD_DIR)/lib/libollieprivateplugin.so \
/usr/lib/x86_64-linux-gnu/qt5/qml/org/ollie/private/ /usr/lib/x86_64-linux-gnu/qt5/qml/org/ollie/private/
sudo install -m644 plasmoid/plugin/qmldir \ install -m644 plasmoid/plugin/qmldir \
/usr/lib/x86_64-linux-gnu/qt5/qml/org/ollie/private/ /usr/lib/x86_64-linux-gnu/qt5/qml/org/ollie/private/
# Plasmoid package # Plasmoid package
cp -a plasmoid /tmp/ollie-plasmoid-kf5 cp -a plasmoid /tmp/ollie-plasmoid-kf5
@ -171,12 +162,12 @@ kf5-install: kf5
mkdir -p ~/.local/share/kio/servicemenus mkdir -p ~/.local/share/kio/servicemenus
rm -f ~/.local/share/kio/servicemenus/ollie-actions.desktop rm -f ~/.local/share/kio/servicemenus/ollie-actions.desktop
install -m755 dolphin/ollie-actions-kf5.desktop ~/.local/share/kio/servicemenus/ollie-actions.desktop install -m755 dolphin/ollie-actions-kf5.desktop ~/.local/share/kio/servicemenus/ollie-actions.desktop
sudo install -m755 dolphin/ollie-ask /usr/local/bin/ install -m755 dolphin/ollie-ask /usr/local/bin/
sudo install -m755 dolphin/ollie-session-here /usr/local/bin/ install -m755 dolphin/ollie-session-here /usr/local/bin/
# XDG autostart # XDG autostart
sudo install -m644 org.ollie.SessionManager.desktop /etc/xdg/autostart/ install -m644 org.ollie.SessionManager.desktop /etc/xdg/autostart/
# Finalize # Finalize
sudo ldconfig ldconfig
kquitapp5 krunner 2>/dev/null; true kquitapp5 krunner 2>/dev/null; true
@echo "" @echo ""
@echo "=== Installation complete (KF5) ===" @echo "=== Installation complete (KF5) ==="
@ -185,16 +176,16 @@ kf5-install: kf5
kf5-uninstall: kf5-uninstall:
@echo "=== Uninstalling ollie-kde (KF5) ===" @echo "=== Uninstalling ollie-kde (KF5) ==="
pkill -u "$$(id -u)" -x ollie-kde 2>/dev/null; true pkill -u "$$(id -u)" -x ollie-kde 2>/dev/null; true
sudo rm -f /usr/bin/ollie-kde /usr/bin/ollie-tray rm -f /usr/bin/ollie-kde /usr/bin/ollie-tray
sudo rm -f /usr/lib/x86_64-linux-gnu/libollie.so rm -f /usr/lib/x86_64-linux-gnu/libollie.so
sudo rm -f /usr/lib/x86_64-linux-gnu/qt5/plugins/kf5/krunner/krunner_ollie.so rm -f /usr/lib/x86_64-linux-gnu/qt5/plugins/kf5/krunner/krunner_ollie.so
sudo rm -f /usr/lib/x86_64-linux-gnu/qt5/plugins/ktexteditor/ollie_kate.so rm -f /usr/lib/x86_64-linux-gnu/qt5/plugins/ktexteditor/ollie_kate.so
sudo rm -rf /usr/lib/x86_64-linux-gnu/qt5/qml/org/ollie rm -rf /usr/lib/x86_64-linux-gnu/qt5/qml/org/ollie
kpackagetool5 -t Plasma/Applet -r org.ollie.plasmoid 2>/dev/null; true kpackagetool5 -t Plasma/Applet -r org.ollie.plasmoid 2>/dev/null; true
rm -f ~/.local/share/kio/servicemenus/ollie-actions.desktop rm -f ~/.local/share/kio/servicemenus/ollie-actions.desktop
sudo rm -f /usr/local/bin/ollie-ask /usr/local/bin/ollie-session-here rm -f /usr/local/bin/ollie-ask /usr/local/bin/ollie-session-here
sudo rm -f /etc/xdg/autostart/org.ollie.SessionManager.desktop rm -f /etc/xdg/autostart/org.ollie.SessionManager.desktop
sudo ldconfig ldconfig
kquitapp5 krunner 2>/dev/null; true kquitapp5 krunner 2>/dev/null; true
@echo "=== Uninstall complete (KF5) ===" @echo "=== Uninstall complete (KF5) ==="