Frequently Asked Questions (FAQ)

About

What is EPEL?

Extra Packages for Enterprise Linux (EPEL) is an initiative within the Fedora Project to provide high quality additional packages for CentOS Stream and Red Hat Enterprise Linux (RHEL). EPEL packages will also likely work with other distributions that target RHEL compatibility.

As part of the Fedora packaging community, EPEL packages are 100% free/libre open source software (FLOSS).

Why is the Fedora Project sponsoring EPEL?

A large number of contributors and users of Fedora and Enterprise Linux want to work within Fedora to provide these packages.

The Fedora Project is a user of EPEL packages within the Fedora infrastructure itself. The Fedora Project is in a position to know the pain of not having a desired piece of software included in the RHEL distribution, and also a unique position to do something about it. Although RHEL is derived from Fedora, only a commercially supported subset of Fedora derived packages are included in the RHEL distribution. By sponsoring the EPEL project, Fedora contributors and users gain in many ways.

Is EPEL commercially supported by Red Hat?

No. EPEL is a volunteer effort from the Fedora community. Just like Fedora itself, Red Hat hosts infrastructure for this project and Red Hat engineers are involved as maintainers and leaders but there are no commercial support contracts or service level agreements provided by Red Hat for packages in EPEL.

Which distributions and releases does EPEL provides packages for?

EPEL provides packages for CentOS Stream 10, CentOS Stream 9, Red Hat Enterprise Linux 9, and Red Hat Enterprise Linux 8. EPEL packages will also likely work with other distributions that target RHEL compatibility. Packages for earlier versions of CentOS Stream and RHEL are no longer provided because these versions are end of life.

How is EPEL different from other third party repositories for RHEL?

  • EPEL packages are in most cases built or derived from the equivalent ones in Fedora repository and maintained by the same people. It has also been improved through peer reviews, testing and feedback from end users.

  • EPEL adheres to the well documented Fedora Packaging guidelines, which RHEL has started following. This ensures good integration.

  • EPEL is purely a complementary add-on repository and does not replace packages in RHEL.

  • EPEL has a large team of contributors including Red Hat engineers and volunteer community members working together to maintain the repository.

  • EPEL only provides free and open source software unencumbered by patents or any legal issues.

Packages

Does EPEL replace packages provided within Red Hat Enterprise Linux?

No. EPEL is purely a complementary repository that provide add-on packages. EPEL packages will not conflict with any of the channels that it builds against, with limited exceptions (see conflicts in compat packages). Those specific channels are listed in the EPEL Policy.

It is permitted for EPEL to provide an alternative non-modular package to any package found only in a non-default RHEL module.

EPEL will coordinate with other channels/products to minimize any conflicts, but may replace or cause issues with other channels.

What is the policy on updates for packages in EPEL?

Refer to the EPEL package maintenance and updates policy for all the details.

How does Fedora Project ensure the quality of the packages in EPEL?

Packages are peer reviewed against extensive packaging guidelines before being imported into the repository. Only updates that fix important bugs get pushed to the stable repository directly. Other updates hit a testing repository first and get released as an EPEL scheduled update in parallel with the EL scheduled updates. Packages often are tested in Fedora, too. The Fedora Packaging Guidelines and QA team back up all these efforts, helping to avoid errors. There are also discussions for more strict QA policies. Do participate and help us.

How long are EPEL packages updated?

Ideally EPEL packages are maintained as long as the corresponding RHEL release is supported. However, EPEL is a volunteer effort, and a package maintainer can retire their EPEL branch at any time.

How can we be sure that someone will maintain the packages until end of life of the distribution the packages were built for?

The only way to be sure is to do it yourself, which is coincidentally the reason EPEL was started in the first place.

Software packages in EPEL are maintained on a voluntary basis. If you want to ensure that the packages you want remain available, get involved directly in the EPEL effort. More experienced maintainers help review your packages and you learn about packaging. If you can, get your packaging role included as part of your job description; EPEL has written a generic description that you can use as the basis for adding to a job description.

We do our best to make this a healthy project with many contributors who take care of the packages in the repository, and the repository as a whole, for all releases until RHEL closes support for the distribution version the packages were built for. That is ten years after release (currently) — a long time frame, and we know a lot can happen in ten years. Your participation is vital for the success of this project.

What if my ISV/IHV wants to maintain a package in EPEL?

Software and hardware vendors are encouraged to get involved in EPEL. For more information, read the ISV/IHV Perspective.

Why isn’t a package in EPEL 9 when it is in EPEL 8?

Packages are not automatically branched for each EPEL version. Each package must be branched by a packager for each particular release, and packagers may or may not be interested in EPEL 9 while they were interested in EPEL 8. If you are an EPEL 9 user and want to see a particular package added, it’s a good idea to ask the existing EPEL or Fedora maintainer. This lets the current maintainer know that there are real users who would benefit from the package (instead of simply guessing at the size of the user base).

To request an EPEL package for a particular EPEL branch, follow the EPEL package request steps.

Are games or similar packages not strictly meant for enterprise users allowed and wanted?

Yes. There are people that use EL distributions on their home desktop or similar scenarios because Fedora’s release and updates cycle is faster than required for them. Some of those people want to play games or use other non-enterprise oriented software. Having such packages in the repository doesn’t affect anyone that uses EL distributions for other needs.

Why don’t you simply rebuild all Fedora packages for RHEL that are not part of it?

We require maintainers to take ownership and commit to maintaining the packages in the long term. Merely rebuilding all the packages automatically has higher potential for packages being broken or orphaned.

What if the EPEL package is added to RHEL?

If the package is added to RHEL it must be retired from EPEL as it is no longer an "extra package for enterprise linux". There is some automation in place to file a ticket to give the EPEL maintainer a heads up; see the EPEL Package Retirement Process for more information.

Using EPEL

How can I install the packages from the EPEL software repository?

Follow the instructions on the getting started page.

Where is the software repository located?

EPEL packages are located at the main mirror. There are mirrors available at mirror list.

The snapshots of the EPEL repository are available in an EPEL archive. Those are useful when a package was removed from EPEL, e.g. because the package was added into a later RHEL version and you have not yet migrated to the latest RHEL version.

Can an IPv6-only host connect to main download server?

The main fedora download server is currently ipv4 only.

It is recommended that you find the closest ipv6 mirror from the mirror list.

If you must connect directly to a fedora ipv6 download server, go here.

Where can I find help or report issues?

You can find help or discuss issues on the epel-devel mailing list or IRC channel #epel on libera.chat. Report issues against EPEL via Bugzilla. More options are available to communicate with EPEL.

How do I know that a package is a EPEL package?

All EPEL packages are signed with an official EPEL gpg-key. The public key IDs can be found at https://getfedora.org/security/. The keys are included in epel-release and dnf will ask you to import it the first time you install an EPEL package.

How can I find out if a package is from EPEL?

If you want to find out if a package comes from EPEL, use a query such as this:

$ rpm -qp foo-0.1-5.el5.i386.rpm --qf '%{NAME}-%{VERSION}-%{RELEASE} %{VENDOR}\n'
foo-0.1-5.el5 Fedora Project
$ rpm -qp foo-0.1-5.el5.i386.rpm --qf '%{NAME}-%{VERSION}-%{RELEASE} %{DISTRIBUTION}\n'
foo-0.1-5.el5 Extras Packages for Enterprise Linux
$ rpm -qp foo-0.1-5.el5.i386.rpm --qf '%{NAME}-%{VERSION}-%{RELEASE} %{SIGPGP}\n'
foo-0.1-5.el5 883f030500468e3e4e119cc036217521f611025863009f5fe424c6fe4bc81a57f45722e465e71381dda2f6009f7c08e1743794b5b9a5a4cd149081092801a5d935

Or you can install and run the 'keychecker' script to list all packages signed with a particular key as well as which repo they came from.

Is EPEL "upstream" or "an official package repository" (like Fedora Extras was)?

EPEL is just one of several add-on repositories with RPM packages for RHEL. It is not an official repository. The different repositories serve different user bases or follow different ideas.

Just like RHEL itself, EPEL in reality is more a "downstream" in the sense that Fedora is upstream and EPEL, just like Red Hat, takes packages for its product that are constantly developed, tested and receive feedback in Fedora. Red Hat, through their sponsorship for the Fedora project and participation of Red Hat maintainers, continues to back EPEL, but Red Hat has not endorsed EPEL or commercially supported it.

The EPEL maintainers are well aware that EPEL can’t serve all needs, and that other repositories are likely needed, for types of software the Fedora project won’t provide, which currently includes packages for EPEL with a rolling release model or non-free and patent encumbered software.

Contributing to EPEL

Who can contribute to EPEL?

Anyone may contribute to EPEL. If you are using RHEL or compatible spin-offs, and you have the required skills for maintaining packages or are willing to learn, you are welcome to contribute.

How do I get my packages into EPEL?

You have to follow the same process as Fedora except that you request an EPEL branch such as epel8 or epel9.

How do I request a EPEL branch for an existing Fedora package?

I maintain a package in Fedora. Do I have to maintain it for EPEL?

No. You can if you want, or you can ask someone else to maintain the package in EPEL for you. In some cases, you may be approached by a current EPEL maintainer who wants to maintain your package in EPEL.

I maintain a package in Fedora and want to maintain packages in EPEL, too, but I don’t have a RHEL subscription for testing?

Please see this page for information about getting a free RHEL subscription for EPEL package maintenance.

I’m a Fedora contributor and want to maintain my packages in EPEL, too. What do I have to do and what do you expect from me?

All Fedora packagers can request EPEL branches in Git via the normal procedure. Please keep in mind that by building your packages in EPEL we expect that you are aware of the special EPEL guidelines and policies and that you will adhere to them. You should also plan to maintain the packages for the near future — ideally for several years, or for the full planned lifetime of EPEL. Remember that RHEL has a planned lifetime of 10 years.

You may want to look into formalizing your packaging role in your company or other organization. If you can do that, this generic job description may help. Aside from making sure that you are recognized for the value you give your organization, formal role recognition ensures that your organization has someone continuing to maintain the package, even if someone new is in the role.

It is the maintainer’s responsibility to ensure that their EPEL packages work on RHEL. Please see this page for information about getting a free RHEL subscription for EPEL package maintenance.

How do you make sure that packages in EPEL and in Fedora do not split?

The plan is to have one primary maintainer per package who is responsible for making certain that the package enhancements applied to one tree find their way into the other trees (for example, Fedora devel).

This maintainer decides what makes sense to apply for the package in general. New EL branches for new EL releases are normally created from the associated Fedora branch on which the EL release is based. Therefore, the EL maintainer has a genuine interest in getting enhancements merged into Fedora.

Will my packages from Fedora simply build unchanged on EPEL

Most likely they will build unchanged. However, there are specific items to consider. All your build requirements in the package must be part of RHEL or EPEL.

I need to build a package that in turn requires another one I have just added. How do I do this?

You will need to request a buildroot override in bodhi.

How can I know which packages are part of RHEL?

The easiest ways to do this are to either use the RHEL developer subscription or check the RHEL package manifests.

You can also check the package source repos in the CentOS Stream GitLab space. Note that a GitLab branch corresponds to the same major version of RHEL, e.g. the c9s branch for RHEL 9. If a branch has a dead.package file, that means it was removed during development of that RHEL version and is thus eligible for EPEL.

I want to build packages for EPEL but some of my packages dependencies are not available in EPEL — or — I’d like to see a Fedora package in EPEL that is not yet available there

RHEL 8 has binaries in the release, but is missing some corresponding -devel package. How do I build a package that needs that missing -devel package?

There is a short term and a long term solution. These two solutions should be used together.

  • Short Term: Create an epel package that only has the missing packages.

    • Be prepared to maintain this package as long as it is needed.

    • It is recommended that you name it <package>-epel

    • It is recommended that you add the epel-packagers-sig group as a co-maintainer

    • It qualifies for an exception to the package review process so you can request the repo with

      • fedpkg request-repo --exception <package>-epel

    • Once the repo is created, you must retire the rawhide branch to make it clear that this is an EPEL-only package and it shouldn’t be branched for future Fedora releases

      • fedpkg retire 'EPEL-only package'

    • If you need help building this, ask for help. We have some examples.

    • When/If the missing package(s) are added to RHEL CRB, retire your -epel package.

  • Long Term: Request the package be added to RHEL 8 and 9 CRB repository.

    • To initiate this process, please file an issue in https://issues.redhat.com and request it be added to RHEL 8 and 9. Report the bug against the RHEL project, assign it to the proper CentOS Stream versions and add the source package name in the Component field. More details on this can be found in the CentOS contributor guide.

    • Be sure to say that it is impacting an EPEL build, and which package it is impacting.

Can I bring a modular package into EPEL?

When EPEL 8 was launched, it came together with the EPEL 8 Modular repo as an effort to bring modular packages to EPEL. After years of struggle, it was decided to disable by default the EPEL 8 Modular repository on October 31st 2022, and then to archive the repository from Febraury 14th 2023 onward. Currently there is no plan to bring modularity back to EPEL.

If you want to bring a package that is distributed as modular in Fedora you will need to create a non-modular version of the package.

Miscellaneous

I want to get a package into EPEL. What do I have to do?

Get it in Fedora first. This isn’t a strict rule, but all the EPEL packages need to meet the Fedora packaging guidelines. If people want it in EPEL, they probably want it in Fedora as well.

If it is in Fedora, and you are the maintainer, branch and build it as you would any other Fedora release.

If it is in Fedora, and you are NOT the maintainer, follow the EPEL package request steps.

Is it possible to get a package only into EPEL and not Fedora?

Simply go through the review process for Fedora and specify only EL targets for the initial import. Due to technical reasons, a main branch for Rawhide will always be created. Therefore retire the package directly in Fedora Rawhide to avoid confusion. But note that maintaining packages in Fedora has many advantages for you, you should consider maintaining the package in both Fedora and EPEL if it makes for the package to be in Fedora.

What do I have to do to get a package removed from EPEL?

Please follow the Package Retirement Process.

What do I need to do if I need to get a updated package quickly into the EPEL proper?

Please do not try and push your packages directly to stable unless they are security updates or critical bug fixes. This is enforced by epel rel-eng/signers who will change your request to testing unless your update meets the criteria for pushing to stable.

Normal updates spend a weeks in testing before being pushed to stable. If enough people test those updates and give your package sufficient karma in bodhi it can be pushed to stable before that week is up.

Why doesn’t EPEL use repotags?

There were a lot of long discussions in the months of EPEL about using repotags or not. Lots of people from inside and outside of Fedora and EPEL, as well as maintainers from other repositories, participated in those discussions. No real agreement could be found as to whether the benefits outweigh the disadvantages - part of the problem was that people sometimes couldn’t agree on the benefits or disadvantages repotags have (or if there are any). The final decision in three voting sessions (one done by FESCo before EPEL had a Steering Committee and twice done by EPEL’s first Steering Committee) was to go without repotags in EPEL.

Is EPEL willing to cooperate with other third party repositories?

EPEL is always willing to discuss cooperation with other parties and repositories and encourages maintainers to do so whenever possible.

What about compatibility with other third party repositories?

Mixing different RPM repositories that were not designed to be mixed can lead to incompatibilities that often result in dependency resolution problems in dnf. Sometimes it even happens that software is not working as expected if libraries and applications come from different repositories. EPEL is designed as an add-on repository for RHEL. The best way to avoid problems is to avoid mixing EPEL with other third party repositories that have conflicting packages on the same system. Some people nevertheless do it and the dnf priorities plugin can help to avoid the worst problems.

If you encounter a problem where packages from EPEL are incompatible with another repository, or lead dnf to bail out during dependency resolution, please report a bug in Bugzilla and contact the maintainer of the other repositories. The EPEL project encourages its maintainers to solve such problems together with the maintainers from other repositories in order to find a solution that is acceptable for both sides. However, there is no guarantee such a solution can or will be found in every case, as technical solutions to solve a repository-mixing issue might have side-effects or drawbacks for one of the repositories involved.

Other questions?

You can contact the EPEL team.