Gentoo Logo
Gentoo Spaceship

Get Started
Gentoo Handbook

Security Announcements
Infrastructure Status

Gentoo Handbook
Featured Documentation
IBM dW/Intel article archive

Get Gentoo

Discussion Forums
IRC Channels
Mailing Lists
Report Issues
Planet (Blogs)
Online Package Database
Contact Us

Get Involved
Report Issues
Help Wanted
Help maintaining packages
Discussion Forums
IRC Channels
Mailing Lists
Become a Developer
Offer Resources
Enhancement Proposals (GLEPs)
Source Repositories
Developer's Manual

Developer List
Developer Map
Gentoo Stores

About Gentoo
Social Contract
Name and Logo Guidelines
Logos and themes

Portage 2.0.51 released
Posted on 21 October 2004 by Sven Vermeulen


The Gentoo Portage team has traveled an interesting road on the way to releasing Portage 2.0.51. Myths about the changes and new features have been told in numerous circles, so allow us to mute the discussions and provide you with a list of changes and new features.

Rebuilding on USE flag changes

Portage now supports automated emerging (and reemerging) of packages affected by a USE flag change. To use it, run emerge with the --newuse option:

Code Listing 1.1: Keeping your applications USE-aware

# emerge --newuse --update --deep world

Initial GPG verification support

Each Gentoo package has a Manifest file that contains the checksum and filesize of the files in Portage pertaining to that package (not to be mistaken with the digest-* files which does the same for the downloaded sources of that package).

Portage now supports verification of the GPG signatures included in the more recent Manifest files. This means that a hacker who's been able to tamper with the rsync mirror you used can hardly do any damage on your system if you do strict GPG checking of the Manifest files. This is of course due to the fact that the hacker cannot change the GPG signature without invalidating it.

This is all handled transparently if you have gpg in your FEATURES variable. Depending on the other features Portage will handle it with minimal trust (no additional feature), marginal trust (strict) or fully trusted (severe) which requires that the GPG keys are signed as well.

Code Listing 1.1: Enabling GPG verification in /etc/make.conf

FEATURES="gpg"                (For minimal checking, or...)
FEATURES="gpg strict"         (... For strict checking, or...)
FEATURES="gpg severe strict"  (... For severe checking)

FHS compliance

This new Portage release introduces some file relocations:

  • The virtuals file (/var/cache/edb/virtuals) is no longer used. It is now calculated transparently.
  • The world-file is now located inside /var/lib/portage instead of /var/cache/edb.
  • /etc/portage/profile/virtuals is for user configurations only.

Thanks to the relocation of the world-file and dynamic checking of the virtuals, Portage is now FHS-compliant. For instance, data within /var/cache can be removed at will - it is actually cache data now.

Successful Package Compilation Verification

New ebuilds can define certain tests to be ran after an emerge to verify if the compile process has finished successfully. This allows ebuilds to verify certain aspects of the compilation process.

Code Listing 1.1: Enabling merge tests in /etc/make.conf


Improved handling of injected packages

The use of --inject is deprecated for the time being. Injecting packages should now be done by adding the package to /etc/portage/profile/package.provided using the full name (<category>/<name>-<version>) instead.

Massive Speedups

A frequently heard complaint is that Portage is slow. Well, yes, but work is being put in this area :) Dependency calculations are already about 33% of that of 2.0.50!

Improved support for embedded systems

Through the autoconfig feature Portage will now automatically handle the building of uclibc-based systems by automatically updating the gnuconfig-provided files. This is no feature that will automatically configure applications for you!

Code Listing 1.1: Enabling uclibc-based building in /etc/make.conf


Improved Locking

Portage now uses lockfiles for many aspects of it's software management. This allows for correct parallel working (including parallel fetching and merging).


When you activate the "candy" feature you'll notice that Portage uses a brand new, cooler spinner:

Code Listing 1.1: Getting a cooler spinner


You also don't want to miss moo. And that's all we have to say about it!

Page updated 21 October 2004

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.