LinuxCommandLibrary

copr-cli

Manage and build software using COPR repositories

TLDR

Show user logged in to copr

$ copr-cli whoami
copy

Build a local spec file on copr
$ copr-cli build [repository] [path/to/spec_file]
copy

Check status of builds
$ copr-cli list-builds [repository]
copy

Trigger a copr build of a spec-file from public (Git) repository
$ copr-cli buildscm [repository] --clone-url [https://git.example.org/repo] --spec [spec_file_name]
copy

SYNOPSIS

copr-cli [options] { build | delete | init | list | list-chroots | list-projects | status | watch } [args]

PARAMETERS

-h, --help
    Show help message and exit

--config-dir CONFIG_DIR
    Use alternative config directory

--group GROUP
    Copr group name for group-owned projects

--name NAME
    Project name (user/project format if no group)

--chroot CHROOT
    Chroot(s) to build in (comma-separated)

--spec SPEC
    Path to SRPM-generating spec file

--srcdir SRCDIR
    Directory containing sources for SRPM

--clone-urls [CLONE_URLS ...]
    Git URLs to clone into build directory

--keep-spec
    Retain spec file after SRPM creation

--nowait
    Submit build without waiting

--wait
    Wait for build completion (default for build)

--background
    Run in background daemon mode

--resume RESUME
    Resume previously interrupted command

DESCRIPTION

Copr (Cool Other Package Repo) provides a mock-like environment for building, testing, and hosting RPM packages, primarily for Fedora, RHEL, and EPEL. copr-cli is the official command-line client for interacting with Copr servers like copr.fedorainfracloud.org.

It allows users to manage projects, submit builds from spec files, SRPMs, or source directories, monitor progress, list chroots/projects/builds, delete resources, and configure credentials. Builds run in isolated chroots (e.g., fedora-39-x86_64, epel-9-aarch64) with customizable modules and results accessible via repos.

Installation is via dnf install copr-cli. Authentication requires an API token from the Copr web UI, stored in ~/.config/copr. Ideal for developers automating package workflows, CI/CD pipelines, and personal repos without Koji access.

Supports advanced features like multi-chroot builds, git clone integration, background execution, and resuming interrupted tasks. Output is human-readable with JSON options in some subcommands.

CAVEATS

Requires valid API token in config; builds limited by project quotas; network-dependent; deletes are irreversible.

SUBCOMMANDS

build: Submit SRPM/spec for building.
delete: Remove build(s).
init: Interactive config setup.
list: List user's builds.
list-chroots: Show available build environments.
list-projects: List projects.
status: Detailed build/project info.
watch: Real-time build monitoring.

HISTORY

Developed by Fedora Infrastructure Copr team since 2014; evolved from early mock wrappers; major updates for modular chroots and API v2 around 2018-2020; actively maintained for current Fedora/EPEL.

SEE ALSO

copr(7), mock(1), rpmbuild(8), dnf(8)

Copied to clipboard