Project:Package Manager Specification

From Gentoo Wiki
Jump to: navigation, search
Package Manager Specification
Description The Package Manager Specification aims to document what is required of a Gentoo package manager, and what ebuilds may assume about their environment.
IRC Channel #gentoo-pms
Last elected: 2015/09/26
(and inherited members)
Parent Project Quality Assurance
Project listing

In the past, the ebuild environment has been defined by what Portage has supported. With the advent of alternative package managers, such a moving standard is no longer sufficient. The Package Manager Specification (PMS) aims to solve this by defining, independent of any package manager, what is and is not allowed in the tree, and what ebuilds may assume about their environment.

It is also required to document what each value of the EAPI ebuild variable actually means. At present PMS aims to document all Council-approved EAPIs.

A git repository with the document's sources can be found at:

  • Gitweb:
  • Git access (read-only): git://
  • Git via HTTPS (read-only):
  • Git via SSH (read/write): git+ssh://

A convenient way to be up to date with the current document is the live ebuild found in the Gentoo repository, called app-doc/pms (TeX Live needs to be installed). Additionally, the latest approved version is available as ebuild of that package; it will either build from source, or (with the binary USE flag) install a pre-built PDF file.

Generated versions of the document

Here are links to generated PDF versions of the document to make it easier for some people to read it. Approved versions of the document will be here along with those considered of interest by the PMS editors.

Versions approved by the Gentoo Council
eapi-5-approved-2012-09-20 (PDF, HTML, Cheat Sheet)
eapi-6-approved-2017-04-29 (PDF, HTML, Cheat Sheet)
Current HEAD (might not be completely up to date)
master (PDF, HTML, Cheat Sheet)

EAPI life cycle

EAPI approved Portage deprecated banned Gentoo repo comment
stable version stable date removed
0 2008-09-11 2.0.53 2005-12-26 2014-02-25 2016-01-10 first Portage version aware of EAPI
1 2007-11-08 2007-12-11 2013-04-09 2014-03-11 2017-01-14 approved for use in tree
2 2008-09-25 2009-01-08 2013-04-09 2014-03-11
3 2010-01-18 2010-03-08 2014-02-25 2016-01-10
4 2011-01-17 2011-03-17 2015-10-11
5 2012-09-20 2012-12-11
6 2015-11-13 2.2.26 2016-01-17