sureclaw-ai/copr:为 codex、ollama、claude-code 等 CLI 工具打包 COPR 仓库
sureclaw-ai/copr
sureclaw-ai/copr 将 codex、opencode、ollama、claude-code、composio、gogcli、wacli 及 Node.js 等上游 CLI 工具打包为独立 COPR 项目,并通过名为 ai 的总括项目以运行时依赖方式统一启用,不重复构建 RPM。
COPR packaging
This repository packages upstream CLI tools for COPR.
Each package lives in its own subdirectory under packages/ and is built in its own canonical COPR project. An umbrella COPR named ai is maintained separately and only enables those canonical package repos via runtime dependencies, so it does not rebuild the same RPMs.
Build status
| Package | Status |
|---|---|
gogcli |
|
wacli |
|
codex |
|
opencode |
|
ollama |
|
claude-code |
|
composio |
|
nodejs-latest |
|
nodejs-lts |
Packages
gogcli: source-built from upstream git tags with vendored Go moduleswacli: source-built from upstream git tags with vendored Go modules, with CGO enabled and the upstreamsqlite_fts5build tagcodex: repackaged from upstream Linux release binaries forx86_64andaarch64, with runtime dependencies onbubblewrapandripgrepopencode: repackaged from upstream Linux release binaries forx86_64andaarch64ollama: repackaged from upstream Linux release bundles forx86_64andaarch64claude-code: repackaged from Anthropic's native release feed (the upstream Bun single-fileclaudebinary, checksum-verified against the release manifest) forx86_64andaarch64; RPM binary post-processing is disabled so the executable ships byte-for-bytecomposio: repackaged from upstream@composio/cli@*GitHub release zips forx86_64andaarch64; the whole release tree is installed under/usr/lib/composiowith a/usr/bin/composiosymlink, and RPM binary post-processing is disabled so the Bun launcher ships byte-for-bytenodejs-latest: tracks the newest stable Node.js Current release across major versions and repackages the officialx86_64andaarch64Linux distributions, includingnode,npm,npx, headers and documentationnodejs-lts: tracks the newest Node.js LTS release across major versions and packages the same complete official distributionai: umbrella COPR project that enables the canonical package COPRs together
What is included
packages/<name>/: per-package spec and.copr/Makefilepackages.json: package list used by the updater workflowpyproject.tomlanduv.lock: pinned Python tooling for the GitHub workflowscripts/make_srpm.sh: clones an upstream git tag, vendors Go modules, and emits an SRPMscripts/make_binary_release_srpm.sh: downloads release artifacts and emits an SRPMscripts/make_node_binary_srpm.sh: downloads both official Node.js Linux architectures, verifies them against the upstream SHA-256 manifest, and emits an SRPMscripts/make_npm_srpm.sh: downloads an npm package tarball and emits an SRPMscripts/make_python_srpm.sh: clones an upstream Python project tag and emits an SRPMscripts/ensure_copr.py: creates or updates the COPR project and package source definition.github/workflows/update-copr.yml: daily upstream check, rebuild on pushes tomain, plus optional manual rebuild
GitHub configuration
Add these repository variables:
COPR_OWNER: COPR owner, for exampleyournameor@your-groupCOPR_URL(optional): defaults tohttps://copr.fedorainfracloud.org
Add these repository secrets:
COPR_LOGINCOPR_USERNAMECOPR_TOKEN
The workflow runs daily at 00:15 UTC, on pushes to main, and can also be started manually. Use the manual run with force_build=true for the first bootstrap build or to rebuild the currently packaged version.
How the workflow behaves
- Checks the latest upstream
v*tag fromhttps://github.com/openclaw/gogcli.git. - Checks the latest upstream
v*tag fromhttps://github.com/openclaw/wacli.git. - Checks the latest upstream
rust-v*tag fromhttps://github.com/openai/codex.git. - Checks the latest upstream
v*tag fromhttps://github.com/anomalyco/opencode.git. - Checks the latest upstream
v*tag fromhttps://github.com/ollama/ollama.git. - Checks the latest npm
latestdist-tag for@anthropic-ai/claude-code. - Checks the official Node.js distribution index for the newest stable Current and LTS releases that publish both supported Linux architectures.
- Uses
uvto install the pinned Python toolchain and workflow dependencies fromuv.lock. - Checks all tracked upstream sources concurrently, updates any package spec whose upstream version changed, and pushes that commit back to this repository.
- Ensures each canonical package COPR project exists, enables all currently available COPR chroots for that package's configured architectures except excluded distros, and turns on
follow-fedora-branching. - Ensures every package source points at this repository and uses the
make_srpmmethod from its package subdirectory. - Ensures the umbrella COPR project
aiexists and carries runtime dependencies on the canonical package COPRs. - Starts COPR builds only for canonical package projects whose versions changed, or for all canonical package projects when the manual workflow is run with
force_build=true.
Notes
- The COPR project chroots are synced from the live
copr-cli list-chrootsoutput, filtered to chroots whose architecture appears inpackages.json, then filtered again by excluded distro IDs or distro prefixes from the globalchroot_exclude_distroslist. - All tracked packages currently target
aarch64andx86_64, excludingalma-kitten+epel-10-*,almalinux-kitten-10-*,centos-stream+epel-next-8-*,centos-stream-8,custom-*,epel-7,fedora-eln-*,mageia-*,openeuler-*,rhel-7, andrhel-8. gogcliuses vendored Go modules.wacliuses vendored Go modules and follows the upstream CGOsqlite_fts5build configuration so the local message index keeps FTS5 enabled.codexuses the upstream Linux musl release artifacts and depends on the Fedorabubblewrapandripgreppackages instead of bundlingrg.opencodeuses the upstream Linux release artifacts and packages thex86_64baseline build so one RPM works on a wider range of Fedora systems.ollamauses the upstream Linux release bundles and does not package the separate ROCm or JetPack add-on archives.claude-codeuses the upstream npm tarball and installs the upstreamclaudecommand name.composiotracks the latest stable@composio/cli@X.Y.ZGitHub release tag (thetagversion source skips the-betaprereleases that thereleases/latestendpoint and other monorepo packages would otherwise surface). The upstream release zip bundles the codex ACP helper binary for every platform; the spec keeps only the one matching the build arch (the CLI selects it byprocess.platform/process.archat runtime) and drops the rest, roughly halving the installed size. It is still a large package (a few hundred MB per arch).nodejs-latestandnodejs-ltseach own the normal/usr/bin/node,/usr/bin/npm,/usr/bin/npx, headers and bundled npm tree. They cannot be installed together or alongside distro Node.js/npm packages that own those paths.- The official Node.js Linux binaries require glibc 2.28 or newer and, from Node.js 25 onward, the
libatomicruntime. The Node packages therefore exclude openSUSE Leap in addition to the repository-wide legacy distro exclusions. claude-codeis proprietary software distributed under Anthropic's legal terms rather than an open-source license; review those terms before publishing it in a public COPR.- The umbrella
aiCOPR does not rebuild packages; it only points users at the canonical per-package repos throughcopr://...runtime dependencies.
来源:GitHub · github.com