Christian Faulhammer

und seine kleine Welt

  • Schrift vergrößern
  • Standard-Schriftgröße
  • Schriftgröße verkleinern
Home Archiv Gentoo What's in EAPI 3?

What's in EAPI 3?

E-Mail PDF

What's in?

As some people are not able to describe those changes in a neutral way, I have to repeat all new features of EAPI 3 in my own words, although I hoped to just post a referrer to that blog entries here. Most changes are not user visible but will ease developer's lifes in many ways. For all the details have a look into the Package Manager Specification. Let's start:

pkg_pretend

A user pretending to merge a package to check the pulled-in dependencies maybe needs some important information beforehand. Those can be output with the pkg_pretend function which is by default empty. Note that you should not rely on anything but the most basic functions and programs.

SLOT operator dependencies

Two new operators for SLOT dependencies are now available
  • :* – The package works with every SLOT of the dependency and does not mind if the run-time version is different from the compile-time version.
  • := – The package works with every SLOT of the dependency as long as it is still the same which it was built with.

USE dependency defaults

  Apart from the possibilities introduced in EAPI 1, USE flags can get a postfix in the dependency listing. (+) tells the package manager to assume the USE flag in the dependency to be switched on if not found at all and (-) means the opposite: Assume it turned off if not found.  

DEFINED_PHASES and PROPERTIES now mandatory

Those are important from a package manager's perspective so I won't go into detail here.

Default src_install

The src_install function is not empty anymore but has a sane default, so creation of src_install is not always needed. A variable DOCS is available whose contents is automatically installed.

Controllable compression

Files in /usr/share/doc, /usr/share/info and /usr/share/man are automatically compressed, apart from /usr/share/doc/PF/html. The docompress command adds directories to the list of compressed files, the -x switch excludes them.  

dodoc -r and doins symlink support

Recursively installing everything from a directory is now possible with the -r switch of dodoc, making some loop constructs unnecessary. Symbolic links are now correctly handled by doins.

Ban of dohard and dosed, removal of AA and KV

dohard and dosed are not allowed anymore while the variables AA and KV are not set anymore. None of the former things had any real use case in ebuilds.

Support for xz compression

The LZMA successor XZ is now officially supported.

Changes in econf arguments

--disable-dependency-tracking is now a default switch for econf.

pkg_info changes

pkg_info can now be called even for non-installed packages, providing some general information about a package so the user does not need to merge it.

Profile-controlled IUSE injection

Important for the package manager, so no details again (sorry, I have limited time in the end). Important for ebuild writers is to list all USE flags that are used in IUSE, except for some things like ARCH, USERLAND and KERNEL.

Replace version variables

REPLACING_VERSIONS contains a list of all package versions that are replaced by the current install, while REPLACED_BY_VERSION holds the version of the currently replaced package (only valid in pkg_prerm and pkg_postrm).

S to WORKDIR fallback limited

If the package manager's assumption of S was incorrect it made a fall-back to S=WORKDIR, which could lead to a successful package merge that was not usable. This only happens now if A is empty and none of the src_ functions is defined.

No RDEPEND=DEPEND anymore

The automagic definition of RDEPEND=DEPEND is gone. Period.

Automated abort of most utility functions

Some widely-used functions aborted automatically on error, others did not. Automatic abort is now the default for most functions, but you can override that behaviour by prefixing the utility call with nonfatal.

What's out?

Some changes did not make it, for example the new functions doexample and doins. Others will wait for EAPI 4 as no consensus was reached.

Note: This post has been edited to correct mistakes. 

Kommentare

avatar Ciaran McCreesh
-6
 
 
In your quest to remove all the design rationale and usage information, you've screwed the whole thing up. In particular:


  • pkg_pretend: incomplete, to the extent that it's misleading

  • slot operator dependencies: incorrect

  • Use dependency defaults: factually inaccurate and missing important details

  • Controllable compression: incorrect

  • doins symlink support: incorrect

  • xz support: at best misleading

  • pkg_info: misses the point entirely

  • IUSE: the details you didn't bother to provide are important.

  • Replacing variables: incomplete to the point that it's inaccurate

  • S to WORKDIR fallback: incorrect

  • Automatic die: incorrect



Please inform your readers that they need to go and forget anything they've read in this post and relearn it from an accurate source. Your lack of care for accuracy is blatantly irresponsible.
B
i
u
Quote
Code
List
List item
URL
Name *
URL
Code   
ChronoComments by Joomla Professional Solutions
Kommentar abschicken
Abbrechen
avatar Christian Faulhammer
0
 
 
Sorry, but if you had cared about your wording, writing this up in a short form to suit my time-frame would be unneeded.
B
i
u
Quote
Code
List
List item
URL
Name *
URL
Code   
ChronoComments by Joomla Professional Solutions
Kommentar abschicken
Abbrechen
avatar Radtoo
0
 
 
Wording or not, I think ciaranm's posts are indeed significantly more useful.

Couldn't you stll link to them? Warn or state that you disagree or what not...
B
i
u
Quote
Code
List
List item
URL
Name *
URL
Code   
ChronoComments by Joomla Professional Solutions
Kommentar abschicken
Abbrechen
B
i
u
Quote
Code
List
List item
URL
Name *
URL
Code   
ChronoComments by Joomla Professional Solutions
Kommentar abschicken