Take Claude Desktop from the repository that now carries it
It was `panama app claude-desktop`: a source build, because nothing packaged it. Upstream publishes an RPM repository now, so the exception shrinks to adding that repository -- and the result upgrades with `dnf upgrade` along with everything else instead of needing a slow rebuild every time a version ships. That moves it out of setup/apps/ and into the third-party section of install-packages, beside Bun, Claude Code and RustDesk. It also means it is part of ./install for the first time. The reason it was kept out was the build: slow, wants the network throughout, and fails on an upstream that moved, which is the failure the interview exists to prevent. A dnf install is none of those, and the default dock pins com.anthropic.Claude, so a fresh machine was shipping a pin for something the install had never put there. The repository is added with upstream's own setup script rather than a .repo file written out here. A baseurl copied into this repository is a pin by another name; the script is the part upstream keeps correct. Both halves are skipped when already present, so a re-run costs nothing. The desktop entry id does not change -- it is still com.anthropic.Claude -- so the dock pin and the notification rules carry over untouched. The new package drops the nodejs dependency, which is what used to hide the missing-npm bug the launcher search contract guards; its comment said "depends" in the present tense and now says what actually happened.
This commit is contained in:
@@ -1,28 +0,0 @@
|
||||
# Claude Desktop.
|
||||
#
|
||||
# Anthropic ships macOS and Windows only. This is a community wrapper that
|
||||
# downloads the official build, bundles Electron, and packages the result as a
|
||||
# proper Fedora RPM -- so what lands on the system is still a package dnf owns
|
||||
# and can remove, which is the part of the dnf/flatpak rule that matters most.
|
||||
#
|
||||
# The exception it needs is the build itself. There is no RPM or flatpak of
|
||||
# Claude Desktop to install, so the choice is building one or not having it.
|
||||
# Nothing is pinned: the default branch is built every time, and a failure is
|
||||
# reported rather than worked around. sunhat pinned versions and every pin was
|
||||
# a 404 within a release cycle.
|
||||
|
||||
description="Claude Desktop, built into a Fedora RPM"
|
||||
repo="https://github.com/dewzor/claude-desktop-fedora.git"
|
||||
|
||||
# The upstream script installs its own build dependencies and prints the RPM it
|
||||
# produced. It needs root because of that dependency install.
|
||||
build() {
|
||||
sudo ./build-fedora.sh
|
||||
|
||||
local rpm
|
||||
rpm="$(find build -name 'claude-desktop-*.rpm' -newermt '-1 hour' 2>/dev/null | head -1)"
|
||||
[[ -n "$rpm" ]] || rpm="$(find . -name 'claude-desktop-*.rpm' 2>/dev/null | head -1)"
|
||||
[[ -n "$rpm" ]] || { printf 'the build produced no RPM\n' >&2; return 1; }
|
||||
|
||||
sudo dnf install -y "$rpm"
|
||||
}
|
||||
Reference in New Issue
Block a user