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/ |
| Hosted files | https://projects.gentoo.org/pms/ |
| IRC channel | #gentoo-pms (webchat ) |
| Bugs | Related bugs |
| 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 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, the specification 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 its 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)
- eapi-9-approved-2026年06月14日 (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日 | (never used in profiles) | |
| 7 | 2018年04月30日 | 2025年07月13日 | 2018年05月05日 | (never used in profiles) | |||
| 8 | 2021年06月13日 | 2021年06月14日 | |||||
| 9 | 2025年12月14日 | 2026年01月21日 | |||||
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日 | |||
| 9 | 3.0.76 | 2026年01月18日 | 3.0.77-r1 | 2026年02月15日 | 0.12.35 | 2026年06月21日 | 0.12.35 | 2026年07月07日 | |||
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日