Project:Package Manager Specification
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. |
Project email | pms@gentoo.org |
Code repository | https://gitweb.gentoo.org/proj/pms.git/
|
IRC channel | #gentoo-pms (webchat) |
Lead(s) |
Last elected: 2021-05-28 |
Member(s) |
|
Subproject(s) (and inherited member(s)) |
(none) |
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: https://gitweb.gentoo.org/proj/pms.git/
- Git via HTTPS (read-only): https://anongit.gentoo.org/git/proj/pms.git
- Git via SSH (read/write): git+ssh://git@git.gentoo.org/proj/pms.git
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. Alternatively, app-doc/pms-bin will install pre-built PDF and HTML files.
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)
- eapi-7-approved-2018-04-30 (PDF, HTML, Cheat Sheet)
- eapi-8-approved-2021-06-13 (PDF, HTML, Cheat Sheet)
- Current HEAD (might not be completely up to date)
- master (PDF, HTML, Cheat Sheet)
EAPI life cycle
Council approval and use in Gentoo repository
EAPI | Council | Gentoo repository | |||||
---|---|---|---|---|---|---|---|
approved | deprecated | banned | first ebuild added | last ebuild removed | first profile added | last profile removed | |
0 | 2008-09-25 | 2014-02-25 | 2016-01-10 | (pre-EAPI-0) | 2019-12-09 | (pre-EAPI-0) | 2014-03-27 |
1 | 2008-09-25 | 2013-04-09 | 2014-03-11 | 2007-11-10 | 2017-01-14 | 2009-06-26 | 2014-03-27 |
2 | 2008-09-25 | 2013-04-09 | 2014-03-11 | 2008-09-26 | 2019-10-04 | 2009-08-17 | 2014-03-27 |
3 | 2010-01-18 | 2014-02-25 | 2016-01-10 | 2010-01-29 | 2018-05-20 | (never used in profiles) | |
4 | 2011-01-17 | 2015-10-11 | 2018-04-08 | 2011-01-25 | 2020-11-26 | (never used in profiles) | |
5 | 2012-09-20 | 2018-05-13 | 2021-08-08 | 2012-10-09 | 2022-07-18 | 2013-01-14 | |
6 | 2015-11-13 | 2021-07-11 | 2023-07-11 | 2015-11-21 | 2024-08-26 | n/a (no new features) | |
7 | 2018-04-30 | 2018-05-05 | n/a (no new features) | ||||
8 | 2021-06-13 | 2021-06-14 |
Implementation in package managers
EAPI | Portage | Paludis | Pkgcore | comment | |||||||
---|---|---|---|---|---|---|---|---|---|---|---|
unstable version | unstable date | stable version | stable date | unstable version | unstable date | unstable version | unstable date | stable version | stable date | ||
0 | 2.0.53 | 2005-12-01 | 2.0.53 | 2005-12-26 | 0.2.1 | 2006-05-03 | 0.1 | 2006-09-30 | first PM versions aware of EAPI | ||
1 | 2.1.3.12 | 2007-10-06 | 2.1.3.19 | 2007-12-11 | 0.26.0 | 2008-04-25 | 0.3.3 | 2007-12-15 | |||
2 | 2.1.6 | 2008-12-07 | 2.1.6.4 | 2009-01-08 | 0.30.1 | 2008-09-25 | 0.4.7.9 | 2008-10-06 | |||
3 | 2.1.7.17 | 2010-01-29 | 2.1.7.17 | 2010-03-08 | 0.44.1 | 2010-01-19 | 0.5.10 | 2010-02-08 | |||
4 | 2.1.9.31 | 2011-01-12 | 2.1.9.42 | 2011-03-17 | 0.62.0 | 2011-06-13 | 0.6.5 | 2011-06-22 | |||
5 | 2.1.11.19 | 2012-09-20 | 2.1.11.31 | 2012-12-11 | 0.80.0 | 2012-09-23 | 0.9 | 2015-04-02 | |||
6 | 2.2.25 | 2015-11-17 | 2.2.26 | 2016-01-17 | 2.6.0 | 2016-05-03 | 0.9.3 | 2016-05-28 | |||
7 | 2.3.32 | 2018-05-01 | 2.3.40-r1 | 2018-06-27 | 0.10.0 | 2019-08-23 | 0.10.12 | 2020-07-16 | first stable version of Pkgcore | ||
8 | 3.0.20 | 2021-06-13 | 3.0.20-r6 | 2021-07-05 | 0.12.2 | 2021-08-04 | 0.12.4 | 2021-08-21 |
Glossary
- Deprecated EAPI
- A deprecated EAPI is no longer required for the upgrade path of users' systems. Its use is discouraged, and tools like pkgcheck will warn about this[1].
- Banned EAPI
- A banned EAPI must no longer be used, neither for new ebuilds, nor for updating of existing ebuilds[2].
See also
References
- ↑ “EAPI deprecation”, Gentoo Council meeting summary 2013-04-09
- ↑ “Ban on EAPI 1 and 2 should extend to updating EAPI in existing ebuilds”, Gentoo Council meeting summary 2014-03-11