From 4022c43f6790dfc009c5559a9693c87231a59817 Mon Sep 17 00:00:00 2001 From: Nippy Date: Sun, 1 Nov 2026 18:39:32 +0100 Subject: tools fix, updater törlés MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- raveos-updater/PKGBUILD | 28 ------ raveos-updater/check.py | 83 ----------------- raveos-updater/raveos-updater | 162 ---------------------------------- raveos-updater/raveos-updater.desktop | 12 --- raveos-updater/raveos-updater.hook | 11 --- raveos-updater/raveos-updater.install | 20 ----- raveos-updater/raveos-updater.service | 6 -- raveos-updater/raveos-updater.timer | 10 --- 8 files changed, 332 deletions(-) delete mode 100644 raveos-updater/PKGBUILD delete mode 100644 raveos-updater/check.py delete mode 100644 raveos-updater/raveos-updater delete mode 100644 raveos-updater/raveos-updater.desktop delete mode 100644 raveos-updater/raveos-updater.hook delete mode 100644 raveos-updater/raveos-updater.install delete mode 100644 raveos-updater/raveos-updater.service delete mode 100644 raveos-updater/raveos-updater.timer (limited to 'raveos-updater') diff --git a/raveos-updater/PKGBUILD b/raveos-updater/PKGBUILD deleted file mode 100644 index 7c795c1..0000000 --- a/raveos-updater/PKGBUILD +++ /dev/null @@ -1,28 +0,0 @@ -# Maintainer: nippy - -pkgname=raveos-updater -pkgver=1.0.0 -pkgrel=3 -pkgdesc="RaveOS update checker background service and tray indicator" -arch=('any') -url="https://git.rp1.hu/RaveOS" -license=('GPL') -depends=('python' 'python-pyqt6' 'pacman') -install="${pkgname}.install" -source=() -sha256sums=() - -package() { - install -Dm755 "${startdir}/check.py" \ - "${pkgdir}/usr/lib/raveos-updater/check.py" - install -Dm755 "${startdir}/raveos-updater" \ - "${pkgdir}/usr/bin/raveos-updater" - install -Dm644 "${startdir}/raveos-updater.service" \ - "${pkgdir}/usr/lib/systemd/system/raveos-updater.service" - install -Dm644 "${startdir}/raveos-updater.timer" \ - "${pkgdir}/usr/lib/systemd/system/raveos-updater.timer" - install -Dm644 "${startdir}/raveos-updater.hook" \ - "${pkgdir}/usr/share/libalpm/hooks/raveos-updater.hook" - install -Dm644 "${startdir}/raveos-updater.desktop" \ - "${pkgdir}/etc/xdg/autostart/raveos-updater.desktop" -} diff --git a/raveos-updater/check.py b/raveos-updater/check.py deleted file mode 100644 index 79a0ba3..0000000 --- a/raveos-updater/check.py +++ /dev/null @@ -1,83 +0,0 @@ -#!/usr/bin/env python3 -"""RaveOS frissítés-ellenőrző. - -A raveos-core-repo szinkron adatbázisából kiolvassa a RaveOS saját -csomagjainak legfrissebb verzióját, összeveti a telepített verziókkal, -és a /var/lib/raveos-updater/status.json fájlba írja az eredményt. - -Használat: - check.py # pacman -Sy után ellenőriz (root; a systemd timer hívja) - check.py --no-sync # nem szinkronizál, a meglévő DB-t használja (pacman hook) -""" - -import json -import os -import subprocess -import sys -from datetime import datetime - -REPO = "raveos-core-repo" -STATUS_DIR = "/var/lib/raveos-updater" -STATUS_FILE = os.path.join(STATUS_DIR, "status.json") - - -def run(args): - return subprocess.run(args, capture_output=True, text=True) - - -def main(): - sync = "--no-sync" not in sys.argv[1:] - error = None - - if sync: - r = run(["pacman", "-Sy", "--noconfirm"]) - if r.returncode != 0: - error = "sync failed" - - installed = {} - repo = {} - - try: - for line in run(["pacman", "-Q"]).stdout.splitlines(): - name, _, version = line.partition(" ") - if version: - installed[name] = version - - for line in run(["pacman", "-Sl", REPO]).stdout.splitlines(): - parts = line.split() - if len(parts) >= 3: - repo[parts[1]] = parts[2] - except FileNotFoundError: - error = "pacman not found" - - updates = [] - for name, newver in sorted(repo.items()): - oldver = installed.get(name) - if oldver is None: - continue - r = run(["vercmp", newver, oldver]) - try: - newer = int(r.stdout.strip()) > 0 - except (ValueError, AttributeError): - continue - if newer: - updates.append({"name": name, "old": oldver, "new": newver}) - - status = { - "count": len(updates), - "checked": datetime.now().astimezone().isoformat(timespec="seconds"), - "updates": updates, - } - if error: - status["error"] = error - - os.makedirs(STATUS_DIR, exist_ok=True) - tmp = STATUS_FILE + ".tmp" - with open(tmp, "w", encoding="utf-8") as f: - json.dump(status, f, ensure_ascii=False, indent=2) - os.replace(tmp, STATUS_FILE) - os.chmod(STATUS_FILE, 0o644) - - -if __name__ == "__main__": - main() diff --git a/raveos-updater/raveos-updater b/raveos-updater/raveos-updater deleted file mode 100644 index ebbb8e3..0000000 --- a/raveos-updater/raveos-updater +++ /dev/null @@ -1,162 +0,0 @@ -#!/usr/bin/env python3 -"""RaveOS Update Indicator - tálca-jelző. - -Önálló (DE-független) tálca-alkalmazás. A /var/lib/raveos-updater/status.json -fájlt olvassa, amit a háttérszolgáltatás (check.py + systemd timer) állít elő. -A jobb felső tálcán egy ikon mutatja, ha van elérhető RaveOS frissítés. - -Első verzió: GNOME (Qt6 SNI tálca az AppIndicator kiegészítővel). -Később Plasma/Hyprland/COSMIC is ugyanezt a status.json-t használja. -""" - -import json -import os -import shlex -import shutil -import subprocess -import sys - -from PyQt6.QtCore import Qt, QTimer -from PyQt6.QtGui import QAction, QBrush, QColor, QFont, QIcon, QPainter, QPen, QPixmap -from PyQt6.QtWidgets import QApplication, QMenu, QSystemTrayIcon - -STATUS_FILE = "/var/lib/raveos-updater/status.json" -CHECK_CMD = "/usr/lib/raveos-updater/check.py" -APP_NAME = "RaveOS Update Indicator" - - -def read_status(): - try: - with open(STATUS_FILE, encoding="utf-8") as f: - return json.load(f) - except Exception: - return None - - -def make_icon(count): - pm = QPixmap(64, 64) - pm.fill(Qt.GlobalColor.transparent) - p = QPainter(pm) - p.setRenderHint(QPainter.RenderHint.Antialiasing) - - if count: - p.setBrush(QBrush(QColor("#23e06b"))) - p.setPen(QPen(QColor("#12833c"), 3)) - else: - p.setBrush(QBrush(QColor("#5a5a5a"))) - p.setPen(QPen(QColor("#3a3a3a"), 3)) - p.drawEllipse(6, 6, 52, 52) - - p.setPen(QColor("#ffffff")) - if count: - font = QFont() - font.setBold(True) - font.setPixelSize(30) - p.setFont(font) - p.drawText(pm.rect(), Qt.AlignmentFlag.AlignCenter, str(count) if count < 100 else "99") - else: - pen = QPen(QColor("#ffffff"), 7) - pen.setCapStyle(Qt.PenCapStyle.RoundCap) - pen.setJoinStyle(Qt.PenJoinStyle.RoundJoin) - p.setPen(pen) - p.drawLine(18, 33, 28, 43) - p.drawLine(28, 43, 47, 20) - p.end() - return QIcon(pm) - - -def spawn_terminal(cmd): - candidates = [ - ["kgx", "-e", "bash", "-c", cmd], - ["gnome-terminal", "--", "bash", "-c", cmd], - ["konsole", "-e", "bash", "-c", cmd], - ["xterm", "-e", "bash", "-c", cmd], - ] - for c in candidates: - if shutil.which(c[0]): - subprocess.Popen(c, start_new_session=True) - return True - return False - - -class Updater: - def __init__(self, app): - self.app = app - self.tray = QSystemTrayIcon() - self.tray.setToolTip(APP_NAME) - self.menu = QMenu() - self.tray.setContextMenu(self.menu) - self.refresh() - self.tray.show() - self.app.processEvents() - - self.timer = QTimer() - self.timer.timeout.connect(self.refresh) - self.timer.start(60_000) - - def refresh(self): - st = read_status() - self.menu.clear() - - if st is None: - self.tray.setIcon(make_icon(0)) - self._add("RaveOS állapot ismeretlen", enabled=False) - self._add("(az ellenőrzés még nem futott le)", enabled=False) - elif st.get("error"): - self.tray.setIcon(make_icon(0)) - self._add("RaveOS ellenőrzés sikertelen", enabled=False) - self._add(st["error"], enabled=False) - else: - count = st.get("count", 0) - self.tray.setIcon(make_icon(count)) - if count: - self._add(f"{count} RaveOS frissítés elérhető", enabled=False) - self.tray.setToolTip(f"{APP_NAME}: {count} frissítés elérhető") - self.menu.addSeparator() - for u in st.get("updates", []): - self._add(f"{u['name']} {u['old']} → {u['new']}", enabled=False) - else: - self._add("RaveOS naprakész", enabled=False) - self.tray.setToolTip(f"{APP_NAME}: naprakész") - checked = st.get("checked", "") - if checked: - self._add("Ellenőrizve: " + checked.replace("T", " ")[:16], enabled=False) - - self.menu.addSeparator() - self._add("Frissítés most", self._update_now) - self._add("Ellenőrzés most", self._check_now) - self._add("Kilépés", self.app.quit) - - def _add(self, text, callback=None, enabled=True): - act = QAction(text, self.menu) - act.setEnabled(enabled) - if callback: - act.triggered.connect(callback) - self.menu.addAction(act) - return act - - def _update_now(self): - spawn_terminal("rave upgrade; exec bash") - - def _check_now(self): - if shutil.which("pkexec"): - subprocess.Popen(["pkexec", CHECK_CMD], start_new_session=True) - else: - subprocess.Popen(["sudo", CHECK_CMD], start_new_session=True) - - -def main(): - app = QApplication(sys.argv) - app.setApplicationName(APP_NAME) - app.setQuitOnLastWindowClosed(False) - - if not QSystemTrayIcon.isSystemTrayAvailable(): - print("RaveOS Update Indicator: nincs elérhető tálca (SNI) a jelenlegi környezetben.", - file=sys.stderr) - - Updater(app) - sys.exit(app.exec()) - - -if __name__ == "__main__": - main() diff --git a/raveos-updater/raveos-updater.desktop b/raveos-updater/raveos-updater.desktop deleted file mode 100644 index 501f8c7..0000000 --- a/raveos-updater/raveos-updater.desktop +++ /dev/null @@ -1,12 +0,0 @@ -[Desktop Entry] -Type=Application -Name=RaveOS Update Indicator -Name[hu]=RaveOS Frissítésjelző -Comment=Shows when RaveOS package updates are available -Comment[hu]=Jelzi, ha elérhető RaveOS frissítés -Exec=/usr/bin/raveos-updater -Icon=raveos-updater -Terminal=false -NoDisplay=true -X-GNOME-Autostart-enabled=true -StartupNotify=false diff --git a/raveos-updater/raveos-updater.hook b/raveos-updater/raveos-updater.hook deleted file mode 100644 index ebc1583..0000000 --- a/raveos-updater/raveos-updater.hook +++ /dev/null @@ -1,11 +0,0 @@ -[Trigger] -Operation = Install -Operation = Upgrade -Operation = Remove -Type = Package -Target = * - -[Action] -Description = Refreshing RaveOS update status -When = PostTransaction -Exec = /usr/lib/raveos-updater/check.py --no-sync diff --git a/raveos-updater/raveos-updater.install b/raveos-updater/raveos-updater.install deleted file mode 100644 index f2993fd..0000000 --- a/raveos-updater/raveos-updater.install +++ /dev/null @@ -1,20 +0,0 @@ -_enable() { - if command -v systemctl >/dev/null 2>&1; then - systemctl daemon-reload >/dev/null 2>&1 || true - systemctl enable --now raveos-updater.timer >/dev/null 2>&1 || true - fi -} - -post_install() { - _enable -} - -post_upgrade() { - _enable -} - -pre_remove() { - if command -v systemctl >/dev/null 2>&1; then - systemctl disable --now raveos-updater.timer >/dev/null 2>&1 || true - fi -} diff --git a/raveos-updater/raveos-updater.service b/raveos-updater/raveos-updater.service deleted file mode 100644 index 118c71e..0000000 --- a/raveos-updater/raveos-updater.service +++ /dev/null @@ -1,6 +0,0 @@ -[Unit] -Description=RaveOS update check service - -[Service] -Type=oneshot -ExecStart=/usr/lib/raveos-updater/check.py diff --git a/raveos-updater/raveos-updater.timer b/raveos-updater/raveos-updater.timer deleted file mode 100644 index 9ab66a9..0000000 --- a/raveos-updater/raveos-updater.timer +++ /dev/null @@ -1,10 +0,0 @@ -[Unit] -Description=RaveOS update check timer - -[Timer] -OnBootSec=5min -OnUnitActiveSec=2h -Persistent=true - -[Install] -WantedBy=timers.target -- cgit v1.3