mirror of
https://github.com/Cheviiot/Nivora.git
synced 2026-08-03 15:51:12 +00:00
feat: rename Claude package
This commit is contained in:
@@ -62,7 +62,7 @@ stplr info nivora/codex
|
||||
| Приложение | Версия | Архитектуры | Установка |
|
||||
|:--|:--:|:--:|:--|
|
||||
| [Chatbox](https://chatboxai.app/ru) | `1.20.3` | `amd64`, `arm64` | `stplr install nivora/chatbox` |
|
||||
| [Claude](https://code.claude.com/docs/en/desktop-quickstart) | `1.24012.0` | `amd64`, `arm64` | `stplr install nivora/claude-desktop` |
|
||||
| [Claude](docs/packages/claude.md) | `1.24012.0` | `amd64`, `arm64` | `stplr install nivora/claude` |
|
||||
| [ClaudeAlt](docs/packages/claude-alt.md) | `1.24012.0` | `amd64`, `arm64` | `stplr install nivora/claude-alt` |
|
||||
| [Codex](docs/packages/codex.md) | `26.721.31836` | `amd64` | `stplr install nivora/codex` |
|
||||
| [GitHub Desktop](docs/packages/github-desktop.md) | `3.6.3` | `amd64`, `arm64` | `stplr install nivora/github-desktop` |
|
||||
|
||||
@@ -39,15 +39,15 @@ build_deps_altlinux=('binutils' 'python3')
|
||||
sources=(
|
||||
"https://downloads.claude.ai/claude-desktop/apt/stable/pool/main/c/claude-desktop/claude-desktop_${version}_amd64.deb?~archive=false&~name=claude-desktop.deb"
|
||||
"local:///claude-alt"
|
||||
"https://raw.githubusercontent.com/Cheviiot/Nivora/main/claude-desktop/claude-alt.png?~archive=false&~name=claude-alt.png"
|
||||
"https://raw.githubusercontent.com/Cheviiot/Nivora/main/claude-desktop/claude-alt-tray-turquoise.png?~archive=false&~name=claude-alt-tray.png"
|
||||
"https://raw.githubusercontent.com/Cheviiot/Nivora/main/claude/claude-alt.png?~archive=false&~name=claude-alt.png"
|
||||
"https://raw.githubusercontent.com/Cheviiot/Nivora/main/claude/claude-alt-tray-turquoise.png?~archive=false&~name=claude-alt-tray.png"
|
||||
"local:///patch-asar.py"
|
||||
)
|
||||
sources_arm64=(
|
||||
"https://downloads.claude.ai/claude-desktop/apt/stable/pool/main/c/claude-desktop/claude-desktop_${version}_arm64.deb?~archive=false&~name=claude-desktop.deb"
|
||||
"local:///claude-alt"
|
||||
"https://raw.githubusercontent.com/Cheviiot/Nivora/main/claude-desktop/claude-alt.png?~archive=false&~name=claude-alt.png"
|
||||
"https://raw.githubusercontent.com/Cheviiot/Nivora/main/claude-desktop/claude-alt-tray-turquoise.png?~archive=false&~name=claude-alt-tray.png"
|
||||
"https://raw.githubusercontent.com/Cheviiot/Nivora/main/claude/claude-alt.png?~archive=false&~name=claude-alt.png"
|
||||
"https://raw.githubusercontent.com/Cheviiot/Nivora/main/claude/claude-alt-tray-turquoise.png?~archive=false&~name=claude-alt-tray.png"
|
||||
"local:///patch-asar.py"
|
||||
)
|
||||
checksums=(
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
name='claude-desktop'
|
||||
name='claude'
|
||||
version=1.24012.0
|
||||
release=5
|
||||
release=1
|
||||
summary='Claude desktop application'
|
||||
summary_ru='Десктопное приложение Claude'
|
||||
group='Development/Tools'
|
||||
@@ -17,7 +17,7 @@ nonfree_msg='Claude Desktop является проприетарным прил
|
||||
nonfree_url='https://www.anthropic.com/legal/consumer-terms'
|
||||
|
||||
provides=()
|
||||
replaces=('claude-desktop')
|
||||
replaces=('claude' 'claude-desktop')
|
||||
conflicts=()
|
||||
|
||||
auto_reqprov_method="dirty"
|
||||
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 193 KiB After Width: | Height: | Size: 193 KiB |
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 3.3 KiB |
+1
-1
@@ -17,7 +17,7 @@ Stapler сам добавляет текущее `name` в generated `Provides`
|
||||
| Package ID | Основание |
|
||||
|:--|:--|
|
||||
| `clash-verge-rev` | Upstream-репозиторий и release title: Clash Verge Rev |
|
||||
| `claude-desktop` | Upstream DEB: `Package: claude-desktop`; desktop-id `com.anthropic.Claude` сохранён |
|
||||
| `claude` | Upstream DEB: `Package: claude-desktop`; desktop-id `com.anthropic.Claude` сохранён; старое имя пакета `claude-desktop` заменяется |
|
||||
| `codex` | Отображаемое имя `Codex`; команда и desktop-id `codex-app` сохранены |
|
||||
| `github-desktop` | Официальный upstream `desktop/desktop`; Linux-сборка без стороннего форка |
|
||||
| `nivora-stplr` | Собственный helper Nivora |
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
# ClaudeAlt
|
||||
|
||||
Самостоятельная вторая установка Claude, не входящая в пакет
|
||||
`claude-desktop`:
|
||||
`claude`:
|
||||
|
||||
```bash
|
||||
sudo stplr install nivora/claude-alt
|
||||
```
|
||||
|
||||
Использует собственные runtime, профиль и desktop-идентичность. Иконки Nivora
|
||||
переносятся без изменений. `claude-desktop` и `claude-alt` можно устанавливать,
|
||||
переносятся без изменений. `claude` и `claude-alt` можно устанавливать,
|
||||
обновлять и удалять независимо друг от друга.
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
# Claude Desktop
|
||||
# Claude
|
||||
|
||||
Пакет `claude-desktop` переупаковывает DEB из APT-источника Anthropic и сохраняет upstream
|
||||
Пакет `claude` переупаковывает DEB из APT-источника Anthropic и сохраняет upstream
|
||||
desktop-id `com.anthropic.Claude`.
|
||||
|
||||
```bash
|
||||
sudo stplr install nivora/claude-desktop
|
||||
sudo stplr install nivora/claude
|
||||
```
|
||||
|
||||
## Два независимых приложения
|
||||
При установке новый пакет заменяет прежнее имя `nivora/claude-desktop`.
|
||||
Исполняемая команда `/usr/bin/claude-desktop` сохраняется, чтобы не
|
||||
конфликтовать с Claude Code CLI, использующим команду `claude`.
|
||||
|
||||
- `claude-desktop` запускает основное приложение Claude.
|
||||
- `claude-alt` и `claude-code-alt` запускают отдельное приложение ClaudeAlt.
|
||||
- `claude-desktop-account2` — дополнительное имя запуска ClaudeAlt.
|
||||
- Команда `claude` не создаётся, чтобы не конфликтовать с Claude Code CLI.
|
||||
## Два независимых пакета
|
||||
|
||||
ClaudeAlt имеет отдельные executable/resources tree, Electron `productName`, Wayland `app_id`,
|
||||
`claude-alt` устанавливается отдельной командой и имеет собственные
|
||||
executable/resources tree, Electron `productName`, Wayland `app_id`,
|
||||
X11 `WM_CLASS`, desktop-файл, Chromium-профиль, Cowork VM socket, оконную и
|
||||
tray-иконки. В системном лотке используется штатный глиф Claude: оранжевый у
|
||||
основного приложения и бирюзовый у ClaudeAlt. Большие app-иконки окон при этом
|
||||
@@ -3,10 +3,10 @@ set -euo pipefail
|
||||
|
||||
repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
launcher="${repo_root}/claude-alt/claude-alt"
|
||||
icon="${repo_root}/claude-desktop/claude-alt.png"
|
||||
primary_tray_icon="${repo_root}/claude-desktop/claude-tray-orange.png"
|
||||
alternate_tray_icon="${repo_root}/claude-desktop/claude-alt-tray-turquoise.png"
|
||||
primary_recipe="${repo_root}/claude-desktop/Staplerfile"
|
||||
icon="${repo_root}/claude/claude-alt.png"
|
||||
primary_tray_icon="${repo_root}/claude/claude-tray-orange.png"
|
||||
alternate_tray_icon="${repo_root}/claude/claude-alt-tray-turquoise.png"
|
||||
primary_recipe="${repo_root}/claude/Staplerfile"
|
||||
alternate_recipe="${repo_root}/claude-alt/Staplerfile"
|
||||
temp_dir="$(mktemp -d)"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ readonly -a PACKAGES=(
|
||||
chatbox
|
||||
clash-verge-rev
|
||||
claude-alt
|
||||
claude-desktop
|
||||
claude
|
||||
codex
|
||||
fisher
|
||||
github-desktop
|
||||
@@ -219,7 +219,7 @@ latest_version() {
|
||||
balena-etcher) github_latest_release balena-io/etcher ;;
|
||||
chatbox) latest_chatbox ;;
|
||||
clash-verge-rev) github_latest_release clash-verge-rev/clash-verge-rev ;;
|
||||
claude-alt | claude-desktop) latest_claude_desktop ;;
|
||||
claude | claude-alt) latest_claude_desktop ;;
|
||||
codex) github_latest_release Boria138/codex-app-linux ;;
|
||||
fisher) github_latest_release jorgebucaran/fisher ;;
|
||||
github-desktop)
|
||||
|
||||
@@ -26,7 +26,7 @@ esac
|
||||
# package | command | persistent state marker | desktop/unit | icon
|
||||
readonly -a lifecycle_packages=(
|
||||
'clash-verge-rev|/usr/bin/clash-verge|/home/nivora-test/.local/share/io.github.clash-verge-rev.clash-verge-rev/nivora-lifecycle-state|/usr/share/applications/Clash Verge.desktop|/usr/share/icons/hicolor/128x128/apps/clash-verge.png'
|
||||
'claude-desktop|/usr/bin/claude-desktop|/home/nivora-test/.config/Claude/nivora-lifecycle-state|/usr/share/applications/com.anthropic.Claude.desktop|/usr/share/icons/hicolor/128x128/apps/claude-desktop.png'
|
||||
'claude|/usr/bin/claude-desktop|/home/nivora-test/.config/Claude/nivora-lifecycle-state|/usr/share/applications/com.anthropic.Claude.desktop|/usr/share/icons/hicolor/128x128/apps/claude-desktop.png'
|
||||
'codex|/usr/bin/codex-app|/home/nivora-test/.codex/nivora-lifecycle-state|/usr/share/applications/codex-app.desktop|/usr/share/icons/hicolor/512x512/apps/codex-app.png'
|
||||
'nivora-stplr|/usr/bin/sl|/home/nivora-test/.config/nivora-stplr/nivora-lifecycle-state|-|-'
|
||||
'opencode|/usr/bin/opencode-desktop|/home/nivora-test/.config/opencode/nivora-lifecycle-state|/usr/share/applications/opencode-desktop.desktop|/usr/share/icons/hicolor/128x128/apps/ai.opencode.desktop.png'
|
||||
|
||||
+10
-5
@@ -17,8 +17,8 @@ EXPECTED_PACKAGES = (
|
||||
"balena-etcher",
|
||||
"chatbox",
|
||||
"clash-verge-rev",
|
||||
"claude",
|
||||
"claude-alt",
|
||||
"claude-desktop",
|
||||
"codex",
|
||||
"fisher",
|
||||
"github-desktop",
|
||||
@@ -43,7 +43,7 @@ REQUIRED_ROOT_FILES = {
|
||||
Path("stapler-repo.toml"),
|
||||
Path("docs/maintenance.md"),
|
||||
Path("docs/security-model.md"),
|
||||
Path("docs/packages/claude-desktop.md"),
|
||||
Path("docs/packages/claude.md"),
|
||||
Path("docs/packages/claude-alt.md"),
|
||||
Path("docs/packages/codex.md"),
|
||||
Path("docs/packages/github-desktop.md"),
|
||||
@@ -166,8 +166,13 @@ def validate_package(package: str, errors: list[str]) -> dict[str, object]:
|
||||
|
||||
if provides != [] or conflicts != []:
|
||||
errors.append(f"{package}: provides/conflicts must not contain binary aliases")
|
||||
if replaces != [package]:
|
||||
errors.append(f"{package}: replaces must contain only its own base package name")
|
||||
expected_replaces = [package]
|
||||
if package == "claude":
|
||||
expected_replaces.append("claude-desktop")
|
||||
if replaces != expected_replaces:
|
||||
errors.append(
|
||||
f"{package}: replaces must be {expected_replaces}, got {replaces}"
|
||||
)
|
||||
|
||||
if "package()" not in text or "files()" not in text:
|
||||
errors.append(f"{package}: package() or files() is missing")
|
||||
@@ -241,7 +246,7 @@ def validate_readme(metadata: dict[str, dict[str, object]], errors: list[str]) -
|
||||
errors.append("README.md: catalog must contain exactly six categories")
|
||||
|
||||
for package, values in metadata.items():
|
||||
command = f"stplr install nivora/{package}"
|
||||
command = f"`stplr install nivora/{package}`"
|
||||
catalog_rows = [
|
||||
line for line in text.splitlines() if line.startswith("|") and command in line
|
||||
]
|
||||
|
||||
+13
-11
@@ -93,17 +93,23 @@ for package in "${packages[@]}"; do
|
||||
}
|
||||
fi
|
||||
|
||||
if [[ "$package" == 'claude-desktop' ]]; then
|
||||
if [[ "$package" == 'claude' ]]; then
|
||||
for forbidden_path in \
|
||||
/usr/bin/claude-alt \
|
||||
/usr/lib/claude-alt/claude-alt-bin \
|
||||
/usr/share/applications/com.anthropic.ClaudeAlt.desktop; do
|
||||
contains_path "$forbidden_path" && {
|
||||
echo "${package}: обнаружен компонент отдельного пакета ClaudeAlt: ${forbidden_path}" >&2
|
||||
exit 1
|
||||
}
|
||||
done
|
||||
fi
|
||||
|
||||
if [[ "$package" == 'claude-alt' ]]; then
|
||||
for required_path in \
|
||||
/usr/bin/claude-alt \
|
||||
/usr/bin/claude-desktop-account2 \
|
||||
/usr/lib/claude-desktop/resources/TrayIconLinux.png \
|
||||
/usr/lib/claude-desktop/resources/TrayIconLinux-Dark.png \
|
||||
/usr/lib/claude-alt/claude-alt-bin \
|
||||
/usr/lib/claude-alt/resources/app.asar \
|
||||
/usr/lib/claude-alt/resources/icon.png \
|
||||
/usr/lib/claude-alt/resources/TrayIconLinux.png \
|
||||
/usr/lib/claude-alt/resources/TrayIconLinux-Dark.png \
|
||||
/usr/share/applications/com.anthropic.ClaudeAlt.desktop \
|
||||
/usr/share/icons/hicolor/512x512/apps/claude-alt.png; do
|
||||
contains_path "$required_path" || {
|
||||
@@ -111,10 +117,6 @@ for package in "${packages[@]}"; do
|
||||
exit 1
|
||||
}
|
||||
done
|
||||
contains_path '/usr/share/applications/claude-desktop-account2.desktop' && {
|
||||
echo "${package}: обнаружен устаревший desktop-файл второго профиля" >&2
|
||||
exit 1
|
||||
}
|
||||
fi
|
||||
|
||||
if [[ "$package" == 'balena-etcher' ]]; then
|
||||
|
||||
Reference in New Issue
Block a user