Project:Package Manager Specification

From Gentoo Wiki
Jump to:navigation Jump to: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.
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:

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

  1. "EAPI deprecation", Gentoo Council meeting summary 2013年04月09日
  2. "Ban on EAPI 1 and 2 should extend to updating EAPI in existing ebuilds", Gentoo Council meeting summary 2014年03月11日