wiki:UserDocs
Last modified 6 months ago Last modified on 11/05/14 08:26:24

User Documentation

This section contains information for users of Copr. You may also be interested in Developer Documentation and downloads.



Tutorial

See screenshots tutorial for interacting with copr.fedoraproject.org

How to enable a repository

Bindings

  • For building package from git:

1) Tito (blog post and another about Tito+git annex)

2) dgroc (blog post)

Multilib

In Copr you can not build multilib packages, i.e. build i386 package in x86_64 chroot. If you need to use multilib packages you need to specify both repos on your x86_64 system. Example of rhughes/f20-gnome-3-12 projects follows:

Install the repo file for this Copr by copying it to /etc/yum.repos.d and run yum update. If you have a multilib system (i.e. are running x86_64 but have i686 packages installed for flash / steam) then you'll need to modify the .repo file to include both i386 and x86_64 sources, e.g.

$ cat rhughes-f20-gnome-3-12.repo
[rhughes-f20-gnome-3-12-i386]
name=Copr repo for f20-gnome-3-12 owned by rhughes (i386)
baseurl=http://copr-be.cloud.fedoraproject.org/results/rhughes/f20-gnome-3-12/fedora-$releasever-i386/
skip_if_unavailable=True
gpgcheck=0
cost=900
enabled=1

[rhughes-f20-gnome-3-12-x86_64]
name=Copr repo for f20-gnome-3-12 owned by rhughes (x86_64)
baseurl=http://copr-be.cloud.fedoraproject.org/results/rhughes/f20-gnome-3-12/fedora-$releasever-x86_64/
skip_if_unavailable=True
gpgcheck=0
cost=800
enabled=1

FAQ

What is the purpose of Copr?

It is build system. Available for everybody. You provide src.rpm, Copr provides yum repository. You just need a FAS account. You can use it for upstream builds, for continuous integration, or to provide yum repos for user for your project if you are not yet in Fedora.

What I can build in Copr?

You agree not to use Coprs to upload software code or other material ("Material") that:

  1. you do not have the right to upload or use, such as Material that infringes the rights of any third party under intellectual property or other applicable laws;
  1. is governed in whole or in part by a license not contained in the list of acceptable licenses for Fedora, currently located at https://fedoraproject.org/wiki/Licensing, as that list may be revised from time to time by the Fedora Project Board;
  1. is categorized as a "Forbidden Item" at https://fedoraproject.org/wiki/Forbidden_items, as that page may be revised from time to time by the Fedora Project Board;
  1. is designed to interfere with, disable, overburden, damage, impair or disrupt Coprs or Fedora Project infrastructure;
  1. violates any rules or guidelines of the Fedora Project; or
  1. violates any applicable laws and regulations.

It is your responsibility to check licenses and to be sure you can make the resulting yum repo public.

If you think that some repo may be violating license, you can raise legal flag - there is dedicated text area in each project and notifications are send to admins and we will act accordingly.

It would be nice if you state license of your packages in Description or Install instructions.

How can I enable a Copr repository?

See HowToEnableRepo

How can I package software as RPM?

There are several tutorials:

Can I build for different versions of Fedora?

Yes. Just hit "Edit" tab in your project and select several chroots, e.g. "fedora-19-x86_64" and "fedora-18-x86_64". And then you just submit one src.rpm and your package will be built for both Fedoras. You can build for EPEL as well.

Can I have more yum repositories?

Yes. Each user can have more than one project. And each project have one yum repository - to be more precise one per chroot.

Can I submit more builds at once?

Yes. Just separate them by space or new line. However we do not guarantee build order.

What happens when I try to build the same package of the same version again?

Your new package will be skipped and marked as built successfully. That is mainly because we are saving user's time and the build power by building just packages of new version. That enables user to submit the same build query as usual while changing just some of their packages. If you need to have your change built, please provide a package with bumped up version.

Can I depend on other packages, which are not in Fedora/EPEL?

Yes. They just need to be available in some yum repo. It can be either other Copr repo or thirdparty yum repo (e.g jpackage). Click on "Edit" in your project and add them into "Repos" field. Packages from your project are available in build time as well. But just from that project you are building into. Not from your others projects.

Can I give access to my repo to my team mate?

Yes. If somebody want to build into your project and you want give hime access, just point him to your Copr project page, he should then click on "Permission" tab. And request permission he want. "Builder" can just submit builds. "Admin" can approve permissions requests. You then navigate to the same "Permission" tab and either approve or reject the request.

Do you have command line client?

Yes. Just do yum install copr-cli and learn more by man copr-cli.

Do you have an API?

Yes. See link in footer of every Copr page. Or jump directly to the API page.

How long do you keep the builds?

We keep the last successful build from each package indefinitely. All other builds (old packages, failed builds) are deleted after 14 days.

How is Copr pronounced?

In American English Copr is pronounced /kä'pər/ like the metallic element spelled "copper".

Why another buildsystem?

We didn't start off to create another buildsystem. We originally just wanted to make building third party rpm repositories easier. But after talking to the koji developers and the developers who are building packages for CentOS we realized that there's a need for a maintainable, pluggable, lightweight build system.

Did you consider OBS?

Yes, we did. See Copr and integration with Koji and Copr Implemented using OBS And the mailing list discussion, as well as the conclusion.

Can I get notifications from Copr builds?

Yes, you can. Enable email/irc/android notifications at Fedora notifications service.

What Copr means?

Cool Other Package Repositories

How can I tell yum to prefer Copr packages

If for some reason you build package with the same version-release in Copr as are distributed in official repos (which is discouraged - you should bump up release) and you want to tell yum to prefer Copr packages over distribution ones, then you you should also add cost=900 to the .repo file.

Can Copr build directly from git?

No. But there are some tools which can create src.rpm from git repository and send it to Copr:

1) Tito (blog post)

2) dgroc (blog post)

How to get notification about finished build?

See this blog post.

Why Copr does not download my updated package?

Sometimes people are reporting that they updated they src.rpm file, submit the new build, but Copr is still using the old one src.rpm. This is not true and in fact is caused by two things. First: you change src.rpm file, but did not bump up release (bad boy, you should do that). As consequence the resulting files have the same URL, so your browser does not bother to fetch new log files and server those files from its cache. Thefore you are still seeing old content from previous task. You should press Ctrl+Shift+R to invalidate your cache and reload page

I have a problem. I need to talk to a human

We do not provide support per se, but try your luck here: https://fedorahosted.org/copr/wiki#Communications