Refactor golden image handling in backup upload process</message>

<message>Update the _set_golden_from_path function to improve the handling of existing golden image files. Replace the existing unlink logic with a more robust method that safely removes files or broken symlinks using the missing_ok parameter. This change enhances the reliability of the backup upload process by ensuring that stale references are properly cleared before setting a new golden image path.
This commit is contained in:
nearxos
2026-02-24 00:19:40 +02:00
parent df180120aa
commit 808fbf5c7c
136 changed files with 407837 additions and 2 deletions

View File

@@ -0,0 +1,281 @@
# Installed packages — candidates for removal (reTerminal kiosk)
Device: **10.20.50.147** (backup image).
Goal: shrink the image by removing apps and services not needed for a Chromium kiosk.
**Keep:** Chromium, LightDM, labwc, kanshi, maliit-keyboard, plymouth, openssh, NetworkManager, WayVNC (if you use it), wf-panel-pi, autotouch, wmctrl, wlr-randr, python3-gi, GTK/labwc themes in use.
---
## 1. Printing (CUPS) — **safe to remove** if no printing
| Package | Notes |
|---------|--------|
| `cups` | Print server |
| `cups-browsed` | Browse for network printers |
| `cups-client` | Command-line print client |
| `cups-common` | Shared files |
| `cups-core-drivers` | Core drivers |
| `cups-daemon` | Daemon |
| `cups-filters` | Filter stack |
| `cups-filters-core-drivers` | |
| `cups-ipp-utils` | IPP utilities |
| `cups-pk-helper` | PolicyKit helper |
| `cups-ppdc` | PPD compiler |
| `cups-server-common` | Server common |
| `hplip` | HP printer drivers |
| `hplip-data` | |
| `ipp-usb` | USB printer support |
| `ghostscript` | PostScript (used by printing) |
Remove in one go (will pull in dependencies):
```bash
sudo apt remove --purge cups cups-browsed cups-client cups-common cups-core-drivers cups-daemon cups-filters cups-filters-core-drivers cups-ipp-utils cups-pk-helper cups-ppdc cups-server-common hplip hplip-data ipp-usb ghostscript
# Then: sudo apt autoremove --purge
```
---
## 2. NFS / RPC — **safe to remove** if no NFS
| Package | Notes |
|---------|--------|
| `nfs-common` (if present) | NFS client |
| `rpcbind` | RPC port mapper (used by NFS) |
| `nfs-blkmap` (service) | pNFS block layout |
```bash
sudo apt remove --purge rpcbind # and nfs-* if listed by dpkg -l
sudo systemctl disable nfs-blkmap.service # if you don't use NFS
```
---
## 3. Development / build tools — **safe to remove** for kiosk
| Package | Notes |
|---------|--------|
| `build-essential` | gcc, g++, make |
| `gcc` `gcc-14` `g++` `g++-14` | Compilers |
| `cpp` `cpp-14` | Preprocessor |
| `make` | Build tool |
| `gdb` | Debugger |
| `dpkg-dev` | Package build tools |
| `binutils` `binutils-aarch64-linux-gnu` | Linker, etc. |
| `patch` | Patch utility |
| `git` `git-man` | Version control |
| `device-tree-compiler` | DTB compiler (only if you dont build overlays) |
| `fakeroot` | Build env |
| `eatmydata` | Speed up builds |
```bash
sudo apt remove --purge build-essential gcc gcc-14 g++ g++-14 cpp cpp-14 gdb dpkg-dev binutils binutils-aarch64-linux-gnu patch git git-man device-tree-compiler fakeroot eatmydata
sudo apt autoremove --purge
```
---
## 4. Office / document viewers — **safe to remove**
| Package | Notes |
|---------|--------|
| `evince` `evince-common` | PDF/document viewer |
| `libevdocument3-4` `libevview3-3` (often pulled by evince) | |
| `catdoc` | Word document text extraction |
| `libreoffice-*` (if any) | Office suite |
```bash
sudo apt remove --purge evince evince-common catdoc
# If present: sudo apt remove --purge libreoffice-core libreoffice-common ...
sudo apt autoremove --purge
```
---
## 5. KDE Plasma apps (many) — **review; remove what you dont use**
Youre using **labwc** as the session, but a lot of KDE packages are still installed (dolphin, konsole, kate, etc.). Removing big KDE apps can free a lot of space; keep anything your kiosk or panel needs.
**File manager / desktop:**
- `dolphin` `dolphin-data` `dolphin-doc` `dolphin-plugins`
- `kde-baseapps`
- `baloo6` (file indexer)
**Editors / text:**
- `kate` `kate-data`
- `kwrite`
- `mousepad` (XFCE editor)
**Terminal:**
- `konsole` `konsole-kpart`
**Browser / bookmarks:**
- `konqueror` `konqueror-data` `konqueror-doc`
- `keditbookmarks`
**System / config:**
- `kinfocenter`
- `khelpcenter` `khelpcenter-data`
- `ksystemstats`
- `kfind`
- `kmenuedit`
- `kdialog`
- `kde-cli-tools` `kde-cli-tools-data`
- `kde-config-screenlocker` (if you dont use lock screen)
- `kde-config-sddm` (you use LightDM, not SDDM)
- `kde-spectacle` (screenshot)
- `kscreen` (display config; you use kanshi)
**Connectivity / sharing:**
- `kdeconnect` `kdeconnect-libs`
- `kdenetwork-filesharing`
**Wallet / accounts:**
- `kwalletmanager`
- `kwallet6`
- `kaccounts-providers`
**Backup:**
- `kup-backup`
**Other:**
- `drkonqi` (KDE crash handler)
- `kactivitymanagerd`
- `kde-inotify-survey`
- `kdegraphics-thumbnailers`
- `ffmpegthumbs`
- `frameworkintegration6`
Example (remove a block of KDE apps; adjust to what you want to keep):
```bash
sudo apt remove --purge dolphin dolphin-data dolphin-doc dolphin-plugins kde-baseapps baloo6 kate kate-data kwrite konsole konsole-kpart konqueror konqueror-data konqueror-doc keditbookmarks kinfocenter khelpcenter khelpcenter-data ksystemstats kfind kmenuedit kdialog kde-spectacle kscreen kdeconnect kdeconnect-libs kdenetwork-filesharing kwalletmanager kup-backup drkonqi kactivitymanagerd kde-inotify-survey kdegraphics-thumbnailers ffmpegthumbs
sudo apt autoremove --purge
```
**Keep** (likely used by labwc/panel/theme): things like `breeze`, `breeze-gtk-theme`, `kwin-wayland`/`kwin-common` (if labwc or something depends on them), `plasma-browser-integration` if you want Chromium integration.
---
## 6. Image / media tools — **safe to remove** if not needed
| Package | Notes |
|---------|--------|
| `eom` `eom-common` | Eye of MATE image viewer |
| `imagemagick` `imagemagick-7.q16` `imagemagick-7-common` | Image conversion |
| `gimp` (if present) | Image editor |
| `grim` | Wayland screenshot (keep only if you use it) |
```bash
sudo apt remove --purge eom eom-common imagemagick imagemagick-7.q16 imagemagick-7-common
sudo apt autoremove --purge
```
---
## 7. Archive / backup tools — **optional**
| Package | Notes |
|---------|--------|
| `7zip` | 7z archives |
| `bup` `bup-doc` | Backup tool |
| `cryfs` | Encrypted filesystem |
```bash
sudo apt remove --purge 7zip bup bup-doc cryfs
sudo apt autoremove --purge
```
---
## 8. Bluetooth — **optional** (remove if no BT devices)
| Package | Notes |
|---------|--------|
| `bluedevil` | KDE Bluetooth |
| `bluez` `bluez-obexd` `bluez-firmware` | Bluetooth stack |
Removing these will disable Bluetooth. If the kiosk never uses BT:
```bash
sudo apt remove --purge bluedevil bluez bluez-obexd bluez-firmware
sudo apt autoremove --purge
```
---
## 9. Spell-check / dictionaries — **optional**
| Package | Notes |
|---------|--------|
| `aspell` `aspell-en` | Spell checker |
| `hunspell-en-us` `hunspell-en-gb` `hunspell-de-de` `hunspell-fr` `hunspell-fr-classical` `hunspell-nl` | Dictionaries |
| `hyphen-en-gb` | Hyphenation |
| `dictionaries-common` | Dictionary config |
```bash
sudo apt remove --purge aspell aspell-en hunspell-de-de hunspell-en-gb hunspell-en-us hunspell-fr hunspell-fr-classical hunspell-nl hyphen-en-gb dictionaries-common
sudo apt autoremove --purge
```
---
## 10. Miscellaneous apps
| Package | Notes |
|---------|--------|
| `alacarte` | Menu editor |
| `galculator` | Calculator |
| `htop` | Process viewer (keep if you use it for SSH admin) |
| `arp-scan` | Network scan |
| `fio` | Disk benchmark |
| `clinfo` | OpenCL info |
| `gldriver-test` | GL test |
| `gui-pkinst` `gui-updater` | GUI package/update tools (RPi) |
| `partitionmanager` (if present) | Partition editor |
| `fwupd` `fwupd-arm64-signed` | Firmware updates (optional to keep) |
| `fprintd` `libpam-fprintd` | Fingerprint (usually not on reTerminal) |
| `ModemManager` | Modem (remove if no modem) |
| `evolution-data-server-common` | Evolution PIM (often dependency of others) |
---
## 11. Optional services to disable (not necessarily remove)
- `cups.service` — disable if you removed CUPS
- `rpcbind.service` — disable if you removed rpcbind
- `nfs-blkmap.service` — disable if no NFS
- `bluetooth.service` — disable if you removed Bluetooth
- `ModemManager.service` — disable if no modem
```bash
sudo systemctl disable cups.service
sudo systemctl disable rpcbind.service
sudo systemctl disable nfs-blkmap.service
# etc.
```
---
## Suggested order of removal
1. **Printing:** CUPS + ghostscript + hplip + ipp-usb
2. **NFS/RPC:** rpcbind (and nfs-* if present)
3. **Development:** build-essential, gcc, g++, git, gdb, etc.
4. **Document/office:** evince, catdoc
5. **KDE apps:** dolphin, kate, konsole, konqueror, spectacle, kscreen, kdeconnect, etc. (keep what labwc/panel needs)
6. **Image/media:** eom, imagemagick
7. **Archive/backup:** 7zip, bup, cryfs
8. **Bluetooth:** if not needed
9. **Spell-check/dictionaries:** if not needed
10. **Misc:** alacarte, galculator, fprintd, ModemManager (if not needed)
After each group:
```bash
sudo apt autoremove --purge
sudo apt clean
```
Then re-check with `dpkg -l` and `df -h` to see space saved. If you want a single “remove list” file for scripting, say which categories to include and we can generate one.