Gentoo Logo
Gentoo Logo Side

[ << ] [ < ] [ Home ] [ > ] [ >> ]


5. Ebuild Maintenance HOWTO

Content:

5.a. Introduction

This guide aims to explain common everyday ebuild maintenance routines, as well as other rarer maintenance routines which developers may not be familiar with.

5.b. Stabilizing ebuilds

When adding a new ebuild, you should only include KEYWORDS for architectures on which you have actually tested the ebuild, confirming that it works as it should and that USE flags are properly honoured in the resulting package which would be installed. If possible, you should give the actual library or application thorough testing as well, since you would be responsible for any breakages for your architecture(s). Minimal testing such as checking that the application starts up without any errors should always be performed.

If you are adding a user-submitted ebuild, do not assume that the submitter has done testing on various architectures: often, KEYWORDS are cloned across packages or generated from documentation in the source packages, which does not signify that the package does indeed work on those architectures.

Ebuilds should only be stabilized, i.e. placed from "~arch" into "arch" when the maintainer, or an architecture maintainer deems the ebuild to be stable. You should never stabilize packages on architectures for which you cannot test and instead you should file a bug to the relevant architecture team, such as sparc@gentoo.org asking them to stabilize the ebuild. Alternatively, you may be able to find Gentoo developers on IRC who could help you with your request.

It is best to not use arch-maintainers@gentoo.org, adding architecture teams onto a bug's CC list individually instead. That way teams can remove themselves from the list when they are done, giving a clear indication of which teams still have to stabilize a package.

5.c. Upgrading ebuilds

New ebuilds should rarely go in with "arch" keywords and even if they do not, the package must be tested on any architectures listed in the KEYWORDS variable of the new ebuild.

Exceptions to the no "arch" rule are major bug fixes, or security fixes. If the previous version of the ebuild contains KEYWORDS which you cannot test for, you should downgrade them: turn any "arch" keyword to "~arch". If you think that your package may not work at all even on "~arch" then it is best to leave the keyword out and request testing from the relevant team: if you are to do this, you must file a bug to the team in question.

If a new version introduces new dependencies which are not available on some architectures, then you should file a bug or ask on IRC before you upgrade the package. If you really need to get the ebuild added in a hurry, for example, for a security fix, then you should drop any KEYWORDS which are causing problems and CC the relevant architectures on the bug - you should file a new bug to the architecture in question regarding this if no bug is already available.

If there are no new dependencies, do not remove keywords if your commit fails with repoman - please try a full cvs update and if you still have problems, then commit with repoman -I and file a bug to the broken architecture, noting it in your CVS commit message.

Warning: When committing, make sure that you reference any bugs in the ChangeLog as well as the CVS message. Failing to do so is considered to be in very poor taste and may result in disciplinary action.

5.d. Moving ebuilds

Moving ebuilds is a two-step process:

Firstly, you need to move the ebuild in CVS. To do this, you should copy the ebuild to its new location and commit that as you would with a new ebuild.

After this, you should change any ebuilds which DEPEND on the old ebuild to depend on the new one. Only after this, you should remove each of the files with cvs remove in the old location and commit the changes there.

Note: CVS cannot destroy directories: it will simply not re-create them if they are blank, providing you use CVS with the -P flag.

Alternatively; you can use epkgmove which will do this for you:

Code Listing .1

epkgmove net-old/package net-new/package

Once moved, you should add an entry to the latest file in profiles/updates/ in the Portage tree in the following format:

Code Listing .2

move net-misc/fwbuilder net-firewall/fwbuilder

This example would transparently move net-misc/fwbuilder to net-firewall/fwbuilder if users have it installed. This way, users would now automatically receive updates for net-firewall/fwbuilder when they are available.

5.e. Removing ebuilds

When removing an ebuild make sure that no dependencies in Portage are broken due to the removal - additionally, your CVS commit message should explain clearly why the ebuild is being removed from CVS.

If you need to remove ebuilds, make sure you do not accidentally remove the newest/only stable ebuild for any architecture. If you would like to get a newer version marked stable, then please file a bug or ask on IRC.

You should also not cause an unnecessary downgrade for any "~arch" when removing ebuilds - instead, it is best to get the newest version marked "~arch" first and then remove redundant versions of the ebuild.


[ << ] [ < ] [ Home ] [ > ] [ >> ]



The contents of this document are licensed under the Creative Commons - Attribution / Share Alike license.
Print
line
Updated­ HPuember 09, 2004
line
Donny Davies
Ebuild HOWTO - Author

Peter Gavin
Author

Karl Trygve Kalleberg
Author

Mike Frysinger
Author

Daniel Robbins
Author/Editor

John P. Davis
Author/Editor

Jorge Paulo
Editor

Sven Vermeulen
Editor

Zack Gilburd
Editor

Benny Chuang
Editor

Erwin
Editor

Dan Armak
Eclass HOWTO - Author

Alastair Tse
Common Ebuild Mistakes - Author

Paul De Vrieze
Metadata Document - Author

Owen Stampflee
Ebuild Policy - Original Author

Seemant Kulleen
Editor

Jon Portnoy
Editor

Carl Anderson
Editor

Ciaran McCreesh
Contributor

Nicholas D. Wolfwood
Contributor

Marius Mauch
Contributor

Tim Yamin
Author/Editor

Gentoo Developer Relations Team
Editors

line
Summary:  This section describes how developers would perform common tasks when maintaining ebuilds in the Portage tree.
line
$99/mo dedicated servers

No BS Dedicated Gentoo Linux Servers from vr.org.

line
Tek Alchemy

Tek Alchemy offers dedicated servers and other hosting solutions running Gentoo Linux.

line
php|architect

php|architect is the monthly magazine for PHP professionals, available worldwide in print and electronic format. A percentage of all the sales will be donated back into the Gentoo project.

line
SevenL.net

Seven L Networks provides customizable Dedicated Servers for your customized Gentoo install. Colocation and other hosting services are also provided.

line
The Gentoo Linux Store
line
Copyright 2001-2004 Gentoo Foundation, Inc. Questions, Comments, Corrections? Email www@gentoo.org.