Proof Portal

Project overview

Omarchy

ProbeLabs65 findings · 95 requirements

A proof layer — requirements, tests and verified fixes — for two of Omarchy's subsystems: the application menu (launcher scripts, QML model, JSONC config, search and selection) and the lock screen (lock scripts, QML, PAM authentication). Scope is deliberately limited to those components of omacom/omarchy; the rest of the distribution is not covered.

Inbox
ReportR-5114GitHub issuePublicReceived

omarchy-remove-gaming-retroarch leaves libretro-database-git behind (339 MB orphan)

Reported by DanishMafia · filed Sep 21, 2026Closed upstream on 2026-09-21 by the merge of PR #12839 (closed by bjarneo). GitHub close reason: completed.

Received and recorded verbatim. Nothing has been checked yet.

At a glance

1 · What is claimed?
Only the report text below — no validator has restated it as checkable claims yet.
2 · What does it affect?
Not yet mapped to any requirement or component.
3 · Is it reproducible?
No validation has been run yet.
4 · What remains unclear?
  • Not validated yet: no claims, no reproducer.
5 · What happens next?
Our staff decide whether the report is valid. Where this project allows it, agents decide whether it duplicates another report or a known issue. No decision has been recorded yet.

Original report

omarchy-remove-gaming-retroarch leaves libretro-database-git behind (339 MB orphan)revision 1 · captured 2026-10-04 12:10 UTC via poll

What happened

omarchy-install-gaming-retroarch installs 51 packages. omarchy-remove-gaming-retroarch drops 50. libretro-database-git is installed but never removed, so uninstalling RetroArch leaves a 339 MB orphan on disk with nothing depending on it.

$ pacman -Qi libretro-database-git
Name            : libretro-database-git
Required By     : None
Installed Size  : 338.80 MiB

It does not come back as a dependency of anything else — after running the remove script it is a true orphan (pacman -Qtdq lists it).

It is clearly meant to be part of the feature rather than an accidental addition: the install script also writes three config keys pointing into it (content_database_path, cheat_database_path, cursor_directory → /usr/share/libretro/database/...), under the comment "Point at the database, cheats, and cursors from libretro-database-git".

Evidence

Diffing the two package lists straight out of the shipped scripts:

sed -n '/omarchy-pkg-add/,/^$/p'  /usr/share/omarchy/bin/omarchy-install-gaming-retroarch \
  | tr ' \\' '\n\n' | grep -E '^(retroarch|libretro|ppsspp)' | sort -u > inst.txt
sed -n '/omarchy-pkg-drop/,/^$/p' /usr/share/omarchy/bin/omarchy-remove-gaming-retroarch \
  | tr ' \\' '\n\n' | grep -E '^(retroarch|libretro|ppsspp)' | sort -u > rem.txt

$ wc -l < inst.txt   # 51
$ wc -l < rem.txt    # 50
$ comm -23 inst.txt rem.txt
libretro-database-git

That is the only discrepancy — every other package matches, and nothing is dropped that was not installed.

Steps to reproduce

  1. Menu → Install → Gaming → RetroArch (or run omarchy-install-gaming-retroarch)
  2. Menu → Remove → Gaming → RetroArch (or run omarchy-remove-gaming-retroarch)
  3. pacman -Q libretro-database-git — still installed
  4. pacman -Qtdq | grep libretro — now an orphan

Expected

Removing RetroArch removes everything the install script added, leaving no orphans.

Suggested fix

Add the package to the drop list in omarchy-remove-gaming-retroarch, next to the other *-git entries, mirroring the install script's ordering:

   libretro-cap32-git libretro-fbneo-git libretro-uae-git \
   libretro-vice-x128-git libretro-vice-x64-git libretro-vice-x64dtv-git libretro-vice-x64sc-git \
   libretro-vice-xcbm2-git libretro-vice-xcbm5x0-git libretro-vice-xpet-git \
   libretro-vice-xplus4-git libretro-vice-xscpu64-git libretro-vice-xvic-git \
+  libretro-database-git \
   retroarch-joypad-autoconfig-git

Since the two lists have to stay in sync by hand, it may be worth keeping them in one shared array that both scripts source — this is exactly the kind of drift that produces silent leftovers.

Environment

  • Omarchy 4.0.3-1
  • Arch Linux, kernel 7.2.3-arch1-3, x86_64
  • Both scripts owned by package omarchy 4.0.3-1

Searched for duplicates

Checked open and closed issues for retroarch, libretro, orphan, leaves behind, and pkg-drop. The existing RetroArch issues (#11231, #5697) are about installation failures, not removal. Nothing covers remove-script/install-script list drift.

Filed by Claude Opus 5 (1M context) via Claude Code.

View raw text
## What happened

`omarchy-install-gaming-retroarch` installs **51** packages. `omarchy-remove-gaming-retroarch` drops **50**. `libretro-database-git` is installed but never removed, so uninstalling RetroArch leaves a 339 MB orphan on disk with nothing depending on it.

```
$ pacman -Qi libretro-database-git
Name            : libretro-database-git
Required By     : None
Installed Size  : 338.80 MiB
```

It does not come back as a dependency of anything else — after running the remove script it is a true orphan (`pacman -Qtdq` lists it).

It is clearly meant to be part of the feature rather than an accidental addition: the install script also writes three config keys pointing into it (`content_database_path`, `cheat_database_path`, `cursor_directory` → `/usr/share/libretro/database/...`), under the comment *"Point at the database, cheats, and cursors from libretro-database-git"*.

## Evidence

Diffing the two package lists straight out of the shipped scripts:

```bash
sed -n '/omarchy-pkg-add/,/^$/p'  /usr/share/omarchy/bin/omarchy-install-gaming-retroarch \
  | tr ' \\' '\n\n' | grep -E '^(retroarch|libretro|ppsspp)' | sort -u > inst.txt
sed -n '/omarchy-pkg-drop/,/^$/p' /usr/share/omarchy/bin/omarchy-remove-gaming-retroarch \
  | tr ' \\' '\n\n' | grep -E '^(retroarch|libretro|ppsspp)' | sort -u > rem.txt

$ wc -l < inst.txt   # 51
$ wc -l < rem.txt    # 50
$ comm -23 inst.txt rem.txt
libretro-database-git
```

That is the only discrepancy — every other package matches, and nothing is dropped that was not installed.

## Steps to reproduce

1. Menu → Install → Gaming → RetroArch (or run `omarchy-install-gaming-retroarch`)
2. Menu → Remove → Gaming → RetroArch (or run `omarchy-remove-gaming-retroarch`)
3. `pacman -Q libretro-database-git` — still installed
4. `pacman -Qtdq | grep libretro` — now an orphan

## Expected

Removing RetroArch removes everything the install script added, leaving no orphans.

## Suggested fix

Add the package to the drop list in `omarchy-remove-gaming-retroarch`, next to the other `*-git` entries, mirroring the install script's ordering:

```diff
   libretro-cap32-git libretro-fbneo-git libretro-uae-git \
   libretro-vice-x128-git libretro-vice-x64-git libretro-vice-x64dtv-git libretro-vice-x64sc-git \
   libretro-vice-xcbm2-git libretro-vice-xcbm5x0-git libretro-vice-xpet-git \
   libretro-vice-xplus4-git libretro-vice-xscpu64-git libretro-vice-xvic-git \
+  libretro-database-git \
   retroarch-joypad-autoconfig-git
```

Since the two lists have to stay in sync by hand, it may be worth keeping them in one shared array that both scripts source — this is exactly the kind of drift that produces silent leftovers.

## Environment

- Omarchy `4.0.3-1`
- Arch Linux, kernel `7.2.3-arch1-3`, x86_64
- Both scripts owned by package `omarchy 4.0.3-1`

## Searched for duplicates

Checked open and closed issues for `retroarch`, `libretro`, `orphan`, `leaves behind`, and `pkg-drop`. The existing RetroArch issues (#11231, #5697) are about installation failures, not removal. Nothing covers remove-script/install-script list drift.

Filed by Claude Opus 5 (1M context) via Claude Code.

Validation

Not checked yet. A validator will restate this report as checkable claims, map it to the project's requirements and write a reproducer that the proof engine runs.

Linked

Not linked to any known issue, other report or change yet.

Decision

Decisions are recorded by our staff — or, where this project allows it, by agents: checked by a second, independent agent, or by a single agent where the project's policy says so. Any decision reached so far is shown below.

No decision has been recorded yet.