The Funtoo Linux project has transitioned to "Hobby Mode" and this wiki is now read-only.
Difference between revisions of "EAPI 6"
Line 33: | Line 33: | ||
<tr><td>6</td><td>Yes</td></tr> | <tr><td>6</td><td>Yes</td></tr> | ||
{{TableEnd}} | {{TableEnd}} | ||
==Ebuild Functions changes== | |||
===src_prepare=== | |||
This phase function has a default now, which applies patches from the PATCHES variable with the new <code>eapply</code> command, and user-provided patches | |||
with <code>eapply_user</code>, formerly known <code>epatch_user</code>. | |||
Example of code: | |||
<pre> | |||
src_prepare() { | |||
if declare -p PATCHES | grep -q "^declare -a "; then | |||
[[ -n ${PATCHES[@]} ]] && eapply "${PATCHES[@]}" | |||
else | |||
[[ -n ${PATCHES} ]] && eapply ${PATCHES} | |||
fi | |||
eapply_user | |||
} | |||
</pre> |
Revision as of 07:04, January 24, 2016
A new EAPI=6 has been released as of 2015-11-13. A noticeable changes and explanation of new features are given below.
bash version
Bash version Ebuilds can use features of Bash version 4.2 (was 3.2 before).
The ebuild file format is in its basic form a subset of the format of a bash script. The interpreter is BASH-VERSION assumed to be GNU bash, version as listed in table below, or any later version. If possible, the package manager should set the shell’s compatibility level to the exact version specified. It must ensure that any such compatibility settings (e.g. the BASH_COMPAT variable) are not exported to external programs.
EAPI | Bash version |
---|---|
0,1,2,3,4,5 | 3.2 |
6 | 4.2 |
Bash's failglob option
The failglob
option of Bash is set in global scope, so that unintentional pattern expansion will be caught as an error.
For EAPIs listed table the failglob option of bash is set in the global scope of ebuilds. FAILGLOB
If set, failed pattern matches during filename expansion result in an error when the ebuild is being
sourced
EAPI | GNU find? | failglob in global scope? |
---|---|---|
0,1,2,3,4 | Undefined | No |
5 | Yes | No |
6 | Yes | Yes |
Locale settings
It is ensured that the behavior of case modification and collation order for ASCII characters (LC_CTYPE and LC_COLLATE) are the same as in the POSIX locale. The package manager must ensure that the LC_CTYPE and LC_COLLATE locale categories are equivalent to the POSIX locale, as far as characters in the ASCII range (U+0000 to U+007F) are concerned. Only for EAPIs listed in such a manner in table.
EAPI | Sane LC_CTYPE and LC_COLLATE? |
---|---|
0,1,2,3,4,5 | No |
6 | Yes |
Ebuild Functions changes
src_prepare
This phase function has a default now, which applies patches from the PATCHES variable with the new eapply
command, and user-provided patches
with eapply_user
, formerly known epatch_user
.
Example of code:
src_prepare() { if declare -p PATCHES | grep -q "^declare -a "; then [[ -n ${PATCHES[@]} ]] && eapply "${PATCHES[@]}" else [[ -n ${PATCHES} ]] && eapply ${PATCHES} fi eapply_user }