Generated by GPT-5-mini| Copr (build system) | |
|---|---|
| Name | Copr |
| Developer | Red Hat, Fedora Project |
| Released | 2013 |
| Programming language | Python |
| Operating system | Linux |
| License | GPLv2 |
Copr (build system) is a build service for creating, compiling, and distributing RPM packages for Fedora and related distributions. It provides a hosted platform that integrates with source control, continuous integration, and package repositories to enable developers, contributors, and organizations to produce binary artifacts. The system emphasizes reproducible builds, automated dependency resolution, and user-level project management to support rapid packaging and testing.
Copr is designed as a service that accepts source inputs and produces RPM artifacts, enabling integration with Fedora Project, Red Hat, CentOS Stream, EPEL, and other Linux distributions. It targets developers working with Git, GitHub, GitLab, and Pagure repositories, and interoperates with build tools such as Koji, Mock, and RPM tooling. Administrators and contributors from organizations like Red Hat Enterprise Linux teams, community packagers, and university research groups use Copr alongside CI providers such as Travis CI, Jenkins, and GitHub Actions.
Copr's architecture comprises web frontend, API, build backends, and repository hosting. The frontend is a web UI historically maintained by contributors from the Fedora Project and integrates authentication via Fedora Account System, OAuth, and OpenID Connect providers like GitHub and GitLab. The backend uses build workers orchestrated with technologies such as systemd, Docker, and KVM for sandboxing, and delegates package compilation to tools derived from Mock and Koji components. Storage and artifact delivery leverage package repositories compatible with dnf and yum clients and mirror technologies used by CentOS and Fedora Project mirror networks.
Copr supports branch-based builds, SCM hooks, and targeted builder selection for architectures like x86_64, aarch64, and ppc64le. Users create projects and link them to SCM sources hosted on GitHub, GitLab, or Pagure; the service fetches spec files and sources, resolves dependencies with RPM metadata, and runs isolated builds similar to Mock jobs. Build outputs are published as YUM/DNF repositories consumable by users on systems such as Fedora Workstation and Fedora Server. Integration points include automated webhook triggers used by GitHub Actions, binary artifact promotion resembling Koji workflows, and changelog visibility akin to entries in Bugzilla and Pagure issue trackers.
Common use cases include packaging experimental software, delivering application updates for Fedora, staging packages for EPEL, and building third-party modules for Red Hat Enterprise Linux. Projects in academia and industry use Copr to produce nightly builds for projects hosted on GitHub or GitLab, and to provide RPMs for downstream consumers such as Scientific Linux users or openSUSE conversion pipelines. Integration scenarios often involve CI tools like CircleCI or Jenkins, artifact scanners such as SonarQube, and deployment orchestration with Ansible or SaltStack.
Copr implements per-project permissions, allowing owners and collaborators to control visibility and build rights; authentication integrates with identity providers like GitHub and GitLab. Build isolation leverages kernel-level sandboxing technologies such as namespaces and virtualization like KVM to mitigate supply-chain risks identified in incidents tracked by organizations such as US-CERT and research from Open Source Security Foundation. The platform supports signing packages with RPM keys managed by project maintainers and can be configured to restrict builds from untrusted forks—policies comparable to those enforced in Fedora Project infrastructure and curated repositories like EPEL.
Copr originated as a Fedora-hosted service to lower the barrier for producing RPMs outside of the main distribution gates maintained by Fedora Project package maintainers. Early contributors included community engineers associated with Red Hat and volunteers from the Fedora Project ecosystem. Over time, development incorporated features driven by demands from projects integrated with GitHub and GitLab, and by interoperability requirements with the Koji build system and Fedora packaging guidelines. Roadmap discussions have occurred in channels frequented by members of organizations like Fedora Council and Fedora Engineering Steering Committee.
Adoption of Copr spans individual contributors, open source projects, academic labs, and corporate engineering teams. Notable ecosystems and projects that rely on Copr workflows include members of the Fedora Project community, independent maintainers who publish testing builds, and organizations migrating from platforms such as OBS or custom CI. Community support, documentation, and contribution coordination are often managed through Fedora Project mailing lists, issue trackers on Pagure and GitHub, and discussions involving stakeholders including members of Red Hat and volunteers from regional communities.