<?xml version="1.0" encoding="UTF-8"?>
<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/gentoolkit.xml,v 1.23 2006/11/02 18:41:52 nightmorph Exp $ -->
<!DOCTYPE guide SYSTEM "/dtd/guide.dtd">

<guide link="/doc/en/gentoolkit.xml">
<title>Gentoolkit</title>

<author title="Author">
  <mail link="mbutcher@aleph-null.tv">Matt Butcher</mail>
</author>
<author title="Editor">
  <!-- zhen@gentoo.org -->John P. Davis
</author>
<author title="Editor">
  <mail link="erwin@gentoo.org">Erwin</mail>
</author>
<author title="Editor">
  <mail link="fox2mike@gentoo.org">Shyam Mani</mail>
</author>
<author title="Editor">
  <mail link="neysx@gentoo.org">Xavier Neys</mail>
</author>
<author title="Editor">
  <mail link="karltk@gentoo.org">Karl Trygve</mail>
</author>
<author title="Editor">
  <mail link="yoswink@gentoo.org">José Luis Rivero</mail>
</author>

<abstract>
Gentoolkit is a suite of tools to ease the administration of a Gentoo system.
This document covers the basics of some of the tools present in Gentoolkit.
</abstract>

<!-- Licensed under GFDL -->

<version>1.9</version>
<date>2006-11-02</date>

<chapter>
<title>Introduction</title>
<section>
<title>What is Gentoolkit?</title>
<body>

<p>
Gentoo is a unique distribution and presents some complexities that simply
don't exist for other distributions. As Gentoo developers and contributors
discovered some of these complexities, they also wrote tools to help users and
administrators work around them. Many of these tools have been contributed to
the Gentoo project and are included in the package
<c>app-portage/gentoolkit</c>.
</p>

<note>
As of now, there are two versions of gentoolkit: <c>app-portage/gentoolkit</c>
and <c>app-portage/gentoolkit-dev</c>. While the former contains administration
scripts, the latter contains scripts specific to help development on Gentoo.
If you are a developer, you can have your scripts included into 
<c>gentoolkit-dev</c> by contacting the Gentoolkit maintainer. This document 
discusses gentoolkit only. 
</note>

<p>
Gentoolkit contains a whole bunch of useful tools to help manage your packages
and keep track of what is going on in your system. Most users --&nbsp;particularly
those who update systems often&nbsp;-- will benefit from having gentoolkit
installed.
</p>

</body>
</section>
<section>
<title>Installation</title>
<body>

<p>
Just as with any Gentoo package, installation is just a simple emerge.
</p>

<pre caption="Getting gentoolkit">
# <i>emerge gentoolkit</i>
</pre>

<note>
Many of the tools in gentoolkit reveal important information about your system
or require root privilege. For that reason, some of the programs may only be
executed (or only function properly) if run by a user with root permission.
</note>

</body>
</section>
<section>
<title>Finding Documentation</title>
<body>

<p>
Any documentation that a program might have (other than man pages) is stored in
<path>/usr/doc/gentoolkit-[version]/[program-name]/</path>.
</p>

</body>
</section>
</chapter>

<chapter>
<title>equery</title>
<section>
<title>Introduction</title>
<body>

<p>
<c>equery</c> is a tool that supports some features of <c>epm</c> (and the
deprecated <c>qpkg</c>) together with its own set of features that make it
really useful. <c>equery --help</c> gives you the full set of options. 
<c>equery</c> will eventually replace <c>etcat</c> in a future release of
Gentoolkit.
</p>

<note>
Not all features listed by <c>equery --help</c> have been implemented yet.
Those that have not been, are mentioned clearly. You will also see that
every command has a short option, e.g. <c>b</c> instead of <c>belongs</c>.
</note>

<note>
Be aware that equery currently changes the format of the output if it is 
sent through a pipe. The piped format is intended to be easier to parse by
tools, but has turned out to be less popular and will probably change in 
the future. If you write scripts that employ equery, you should be aware 
of this.
</note>

</body>
</section>
<section>
<title>Finding the Package That a File Came From</title>
<body>

<p>
<c>equery</c> also provides the functionality of finding the package that a 
file came from, using <c>belongs</c> command (or just <c>b</c>).
</p>

<pre caption="Finding the ebuild that installed a given file">
# <i>equery belongs /usr/bin/audacious</i>
[ Searching for file(s) /usr/bin/audacious in *... ]
media-sound/audacious-1.1.2 (/usr/bin/audacious)
</pre>

<p>
By using the <c>-f</c> option, you may search for packages with files 
matching any regular expression. The <c>-e</c> option is useful for 
terminating your search immediately when a match is found.
</p>

</body>
</section>
<section>
<title>Verifying Package Integrity</title>
<body>

<p>
Sometimes it is useful to check a package's integrity. <c>equery</c> can 
verify md5 sums as well as timestamps to indicate when a package might 
have been corrupted, replaced, or removed.
</p>

<pre caption="OK package integrity">
# <i>equery check gentoolkit</i>
[ Checking app-portage/gentoolkit-0.2.0 ]
 * 54 out of 54 files good
</pre>

<p>
Please note that if you change configuration files after installation,
these may be reported as "not good".
</p>

</body>
</section>
<section>
<title>List of all packages depending on ...</title>
<body>

<p>
<c>equery</c> is able to list all direct dependencies matching a package.
The function we should use to do this is <c>depends</c> and it's as easy as: 
</p>

<pre caption="Looking for packages depending on pygtk">
# <i>equery depends pygtk</i>
[ Searching for packages depending on pygtk... ]
app-office/dia-0.93
dev-python/gnome-python-2.0.0-r1
gnome-extra/gdesklets-core-0.26.2
media-gfx/gimp-2.0.4
x11-libs/vte-0.11.11-r1
</pre>

</body>
</section>
<section>
<title>Dependency Graphs</title>
<body>

<p>
<c>equery</c> is capable of giving us a dependency graph for a specified 
package. The dependency graph gives a listing of all the packages that have 
direct and indirect dependencies on the package in question.
</p>

<pre caption="Dependency Graph for cdrtools">
# <i>equery depgraph cdrtools</i>
Displaying dependencies for app-cdr/cdrtools-2.01_alpha37
`-- app-cdr/cdrtools-2.01_alpha37
 `-- sys-libs/glibc-2.3.4.20040808 (virtual/libc)
  `-- sys-kernel/linux-headers-2.4.22 (virtual/os-headers)
   `-- sys-apps/baselayout-1.10.4
    `-- sys-apps/sysvinit-2.85-r1
     `-- sys-apps/gawk-3.1.3-r1
      `-- sys-apps/util-linux-2.12-r4
          `-- sys-apps/sed-4.0.9
        `-- sys-libs/ncurses-5.4-r4
            `-- sys-apps/pam-login-3.14
            `-- sys-libs/pam-0.77-r1
                 `-- sys-libs/cracklib-2.7-r10
               `-- sys-apps/miscfiles-1.3-r1
              `-- app-arch/gzip-1.3.5-r1
              `-- sys-apps/portage-2.0.50-r10
</pre>

<p>
For example, while glibc is a direct dependency for cdrtools,linux-headers 
are an indirect dependency. Note that the output also includes information 
about virtual packages. In the example above, <c>cdrtools</c> is actually 
written to require virtual/libc, not sys-libs/glibc, but on the given 
system in the example sys-libs/glibc provides virtual/libc. 
</p>

</body>
</section>
<section>
<title>Listing Files Belonging to an Ebuild</title>
<body>

<p>
<c>equery</c> can list the files that belong to an installed ebuild. If I 
don't know the files that Gentoolkit has installed on the system, I will
use <c>equery</c> to show them.
</p>

<pre caption="Listing files">
#<i> equery files gentoolkit</i>
[ Searching for packages matching gentoolkit... ]
app-portage/gentoolkit-0.2.0
* Contents of app-portage/gentoolkit-0.2.0:
/usr
/usr/bin
/usr/bin/equery
/usr/bin/etcat
/usr/bin/euse
/usr/bin/glsa-check
/usr/bin/qpkg
/usr/bin/revdep-rebuild
/usr/lib
/usr/lib/gentoolkit
/usr/lib/gentoolkit/pym
/usr/lib/gentoolkit/pym/gentoolkit
/usr/lib/gentoolkit/pym/gentoolkit/__init__.py
/usr/lib/gentoolkit/pym/gentoolkit/gentoolkit.py
/usr/lib/gentoolkit/pym/gentoolkit/pprinter.py
/usr/lib/gentoolkit/pym/glsa.py
/usr/sbin
/usr/share
/usr/share/doc
/usr/share/doc/gentoolkit-0.2.0_pre10

[...]
</pre>

<p>
The command <c>files</c> of <c>equery</c> provide some options to modify 
the output. You can look them all up in the <c>equery</c> man page.
</p>

</body>
</section>
<section>
<title>Looking for packages that use a specific USE flag</title>
<body>

<p>
If you want to find which packages on your system that make use of a specific 
USE flag, <c>equery</c> has the function <c>hasuse</c>:
</p>

<pre caption="Searching packages which use mozilla USE flag">
# <i>equery hasuse mozilla</i>
[ Searching for USE flag mozilla in all categories among: ]
 * installed packages
[I--] [  ] dev-java/blackdown-jre-1.4.2.01 (1.4.2)
[I--] [  ] mail-client/evolution-2.0.2 (2.0)
</pre>

</body>
</section>
<section>
<title>Listing Packages</title>
<body>

<p>
<c>equery</c> has a power feature to list packages belonging to our system, 
portage or even an overlay. Let's try this:
</p>

<pre caption="Listing packages with equery">
# <i>equery list gentoolkit</i>
[ Searching for package 'gentoolkit' in all categories among: ]
 * installed packages
[I--] [  ] app-portage/gentoolkit-0.2.0 (0)
</pre>

<p>
The standard query will search our installed packages for the name given. 
If found, the following info will be displayed: the package location between 
the first square brackets (I for Installed packages, P for Portage, O for 
Overlay), the possibles masks between the second (~ by keyword, -  by arch or 
M hard masked), then the category and complete name and last of all, the slot 
in which the package is stored.
</p>

<p>
Another example, this time we are going to use the local options in order
to look for packages in our portage tree and overlay.
</p>

<pre caption="Using local options with equery">
# <i>equery list -p -o vim</i>
[ Searching for package 'vim' in all categories among: ]
 * installed packages
[I--] [  ] app-editors/vim-6.3-r4 (0)
 * Portage tree (/usr/portage)
[-P-] [M~] app-editors/vim-7.0_alpha20050126 (0)
[-P-] [M~] app-editors/vim-7.0_alpha20050201 (0)
[-P-] [  ] app-editors/vim-6.3-r2 (0)
[-P-] [M~] app-editors/vim-7.0_alpha20050122 (0)
[-P-] [M~] app-editors/vim-core-7.0_alpha20050126 (0)
[-P-] [  ] app-editors/vim-core-6.3-r3 (0)
[-P-] [M~] app-editors/vim-core-7.0_alpha20050122 (0)
[-P-] [M~] app-editors/vim-core-7.0_alpha20050201 (0)
[-P-] [  ] app-editors/vim-core-6.3-r4 (0)
 * overlay tree (/opt/ebuilds)
</pre>

</body>
</section>
<section>
<title>Finding Package Sizes</title>
<body>

<p>
Ever been curious to find out how much space a specific package is occupying?
Since a package could have its files over a number of directories, the usual
<c>du -hc</c> might not give you the correct figure. Not to worry, here comes
<c>equery</c> to the rescue!
</p>

<pre caption="Package Size">
# <i>equery size openoffice-bin</i>
* app-office/openoffice-bin-1.1.2
     Total Files : 2908
     Total Size  : 223353.31 KiB
</pre>

<p>
As you can see, <c>equery</c> prints the total space used in kilobytes and 
also lists the total number of files the package has.
</p>

</body>
</section>
<section>
<title>Package-wise list of USE Flags</title>
<body>

<p>
<c>equery</c> can be used to give us information about what USE flags 
are being used by a specific package. It also tells us what our current USE 
flags are for a package and also what USE flags are available for the package.
</p>

<pre caption="Set and Unset USE Flags">
# <i>equery uses ethereal</i>
[ Colour Code : set unset ]
[ Legend    : (U) Col 1 - Current USE flags        ]
[           : (I) Col 2 - Installed With USE flags ]

 U I [ Found these USE variables in : net-analyzer/ethereal-0.10.6 ]
 - - adns  : Adds support for the adns DNS client library
 + + gtk   : Adds support for x11-libs/gtk+ (The GIMP Toolkit)
 - - ipv6  : Adds support for IP version 6
 - - snmp  : Adds support for the Simple Network Management Protocol if available
 + + ssl   : Adds support for Secure Socket Layer connections
 + + gtk2  : Use gtk+-2.0.0 over gtk+-1.2 in cases where a program supports both.
 - - debug : Tells configure and the makefiles to build for debugging. Effects vary across packages,
             but generally it will at least add -g to CFLAGS. Remember to set FEATURES=nostrip too
</pre>

<p>
I have installed ethereal with only the gtk, ssl and gtk2 flags set, but the
other USE flags for ethereal are adns, ipv6, snmp and debug. For more
information on USE flags, please refer to the <uri
link="/doc/en/handbook/handbook-x86.xml?part=2&amp;chap=2">USE Flags</uri>
chapter of the <uri link="/doc/en/handbook/">Gentoo Handbook</uri>.
</p>

</body>
</section>
<section>
<title>Where's the ebuild?</title>
<body>

<p>
We can also find out which ebuild is being used for a specific package using
<c>equery</c>. This is done my using the <c>equery which</c> command which
displays the full path to the ebuild.
</p>

<pre caption="Displaying the ebuild path">
# <i>equery which cdrtools</i>
/usr/portage/app-cdr/cdrtools/cdrtools-2.01_alpha37.ebuild
</pre>

</body>
</section>
</chapter>

<chapter>
<title>euse</title>
<section>
<title>Introduction</title>
<body>

<warn>
<c>euse</c> is currently broken as it does not support cascading profiles well.
</warn>

<p>
<c>euse</c> is a tool to see, set and unset USE flags at various places. For
more information on USE flags, please refer to the <uri
link="/doc/en/handbook/handbook-x86.xml?part=2&amp;chap=2">USE Flags</uri>. 
Please see <c>euse -h</c> for complete help and all options.
</p>

</body>
</section>
<section>
<title>Viewing, Setting and Unsetting USE Flags</title>
<body>

<p>
The <c>euse -a</c> command reads the current active USE flags and displays 
them.
</p>

<note>
There are 5 &quot;columns&quot; that <c>euse</c> now uses to show whether a 
flag is set/unset and where all the flag has been set. The columns are as 
follows -- +/-, set in the Environment, set in make.Conf, set in make.Defaults, 
and set in make.Globals. The output looks like [+ECDG]. 
</note>

<pre caption="Viewing all active USE flags">
# <i> euse -a</i>
X                   [+ CD ]
aalib               [+    ]
acpi                [+ C  ]
alsa                [+ C  ]
apache2             [+ C  ]
apm                 [+  D ]
avi                 [+  D ]
berkdb              [+  D ]
bitmap-fonts        [+  D ]
bonobo              [+    ]
cdr                 [+ C  ]
crypt               [+ CD ]
cscope              [+ C  ]
cups                [+ CD ]
curl                [+    ]
emboss              [+  D ]
encode              [+  D ]
esd                 [+    ]
ethereal            [+ C  ]
fam                 [+    ]
fbcon               [+ C  ]
font-server         [+  D ]
foomaticdb          [+  D ]
fortran             [+  D ]
gd                  [+ C  ]
gdbm                [+  D ]
gif                 [+ CD ]
gimpprint           [+ C  ]
gnome               [+ CD ]
gphoto2             [+    ]
gpm                 [+ CD ]
gstreamer           [+ C  ]
gtk                 [+  D ]
gtk2                [+ CD ]
gtkhtml             [+ C  ]
guile               [+    ]
imagemagick         [+    ]
imlib               [+ CD ]
imlib2              [+    ]
innodb              [+    ]
ipv6                [+  D ]
javascript          [+ C  ]
jpeg                [+ CD ]
kde                 [+  D ]
ldap                [+    ]
libg++              [+ CD ]
libwww              [+ CD ]
mad                 [+ CD ]
mbox                [+ C  ]
md5sum              [+ C  ]
mikmod              [+ CD ]
mmx                 [+ C  ]
motif               [+ CD ]
mozilla             [+ C  ]
mp3                 [+    ]
mpeg                [+ CD ]
mpeg4               [+ C  ]
mysql               [+ C  ]
ncurses             [+ CD ]
nls                 [+  D ]
nvidia              [+ C  ]
odbc                [+    ]
offensive           [+    ]
oggvorbis           [+ CD ]
opengl              [+ CD ]
oss                 [+  D ]
pam                 [+ CD ]
pdflib              [+ CD ]
perl                [+ CD ]
png                 [+ CD ]
python              [+ CD ]
qt                  [+  D ]
quicktime           [+ CD ]
readline            [+ CD ]
ruby                [+    ]
sdl                 [+ CD ]
slang               [+  D ]
spell               [+ CD ]
sse                 [+ C  ]
ssl                 [+ CD ]
svga                [+ CD ]
tcltk               [+ C  ]
tcpd                [+  D ]
tiff                [+ C  ]
truetype            [+ CD ]
truetype-fonts      [+  D ]
type1-fonts         [+  D ]
usb                 [+ C  ]
vanilla             [+ C  ]
x86                 [+ C  ]
xml                 [+    ]
xml2                [+  D ]
xosd                [+ C  ]
xv                  [+ CD ]
xvid                [+ C  ]
zlib                [+ CD ]
</pre>

<p>
Similarly you can use the <c>euse -a -g</c> command to only view active global 
USE flags. The <c>euse -a -l</c> command does the same for active local USE 
flags.<c>-g</c> &amp; <c>-l</c> are suboptions to <c>euse</c> and need an 
option before them (like <c>-a</c>) to function correctly.
</p>

<pre caption="Viewing active local USE flags">
# <i>euse -a -l</i>
bitmap-fonts        [+  D ]
font-server         [+  D ]
fortran             [+  D ]
gimpprint           [+ C  ]
imlib2              [+    ]
md5sum              [+ C  ]
mpeg4               [+ C  ]
nvidia              [+ C  ]
offensive           [+    ]
truetype            [+ CD ]
truetype-fonts      [+  D ]
type1-fonts         [+  D ]
</pre>

<p>
We can also use <c>euse</c> to set or unset use flags. The commands used for 
this are <c>euse -E flagname</c> (enable a flag) and <c>euse -D flagname</c> 
(disable a flag).
</p>

<warn>
Do not use the <c>euse -E</c> or <c>euse -D</c> commands by themselves (without 
a flag). It will set/unset ALL USE flags in <c>/etc/make.conf</c>. Although a 
backup is kept at <path>/etc/make.conf.euse_backup</path>, please be careful 
while using <c>euse -E</c> or <c>euse -D</c>.
</warn>

<pre caption="Setting and Unsetting USE flags">
<comment>(Enabling a USE Flag)</comment>
# <i> euse -E 3dfx</i>
/etc/make.conf was modified, a backup copy has been placed at /etc/make.conf.euse_backup

<comment>(/etc/make.conf after the command)</comment>
USE="alsa acpi apache2 -arts cups cdr crypt cscope -doc ethereal fbcon gd \
     gif gimpprint gnome gpm gstreamer gtk2 gtkhtml imlib imlib2 \
     innodb -java javascript jpeg libg++ libwww mad mbox md5sum \
     mikmod mmx motif mozilla mpeg mpeg4 mysql ncurses nvidia \
     oggvorbis odbc offensive opengl pam pdflib perl png python \
     quicktime readline sdl spell sse ssl svga tcltk tiff truetype usb \
     vanilla X xml2 xosd xv xvid x86 zlib 3dfx"

<comment>(Disabling the USE Flag)</comment>
# <i> euse -D 3dfx</i>
/etc/make.conf was modified, a backup copy has been placed at /etc/make.conf.euse_backup

<comment>(/etc/make.conf after the command)</comment>
USE="alsa acpi apache2 -arts cups cdr crypt cscope -doc ethereal fbcon gd \
     gif gimpprint gnome gpm gstreamer gtk2 gtkhtml imlib imlib2 \
     innodb -java javascript jpeg libg++ libwww mad mbox md5sum \
     mikmod mmx motif mozilla mpeg mpeg4 mysql ncurses nvidia \
     oggvorbis odbc offensive opengl pam pdflib perl png python \
     quicktime readline sdl spell sse ssl svga tcltk tiff truetype usb \
     vanilla X xml2 xosd xv xvid x86 zlib -3dfx"
</pre>

<note>
<c>euse</c> does not physically remove the flag from make.conf. It just adds a
- (minus) before the flag to unset it. You may have to manually clean up your
make.conf to avoid unwanted variables.
</note>

</body>
</section>
</chapter>

<chapter>
<title>Other tools</title>
<section>
<title>revdep-rebuild</title>
<body>

<p>
This tool is Gentoo's Reverse Dependency rebuilder.  It will scan your installed
ebuilds to find packages that have become broken as a result of an upgrade of a
package they depend on. It can emerge those packages for you but it can also
happen that a given package does not work anymore with the currently installed
dependencies, in which case you should upgrade the broken package to a more
recent version. revdep-rebuild will pass flags to emerge which lets you use the
<c>--pretend</c> flag to see what is going to be emerged again before you go any
further.
</p>

<pre caption="Running revdep-rebuild in pretend mode">
# <i>revdep-rebuild -p</i>

Checking reverse dependencies...
Packages containing binaries and libraries broken by any package update,
will be recompiled.

Collecting system binaries and libraries... done.
  (/root/.revdep-rebuild.1_files)

Collecting complete LD_LIBRARY_PATH... done.
  (/root/.revdep-rebuild.2_ldpath)

Checking dynamic linking consistency...
  broken /usr/lib/ao/plugins-2/libarts.so (requires libartsc.so.0)
  broken /usr/lib/kde3/libkpresenterpart.so (requires libartskde.so.1 libqtmcop.so.1
         libsoundserver_idl.so.1 libkmedia2_idl.so.1 libartsflow.so.1 libartsflow_idl.so.1 libmcop.so.1)
  broken /usr/lib/ruby/site_ruby/1.8/i686-linux/fox.so (requires libFOX-1.0.so.0)
  broken /usr/lib/xine/plugins/1.0.0/xineplug_ao_out_arts.so (requires libartsc.so.0)
  broken /usr/lib/perl5/vendor_perl/5.8.0/i686-linux/auto/SDL_perl/SDL_perl.so (requires libSDL_gfx.so.0)
  broken /usr/lib/libloudmouth-1.so.0.0.0 (requires libgnutls.so.10)
  broken /usr/bin/k3b (requires libartskde.so.1 libqtmcop.so.1 libsoundserver_idl.so.1 libkmedia2_idl.so.1
         libartsflow.so.1 libartsflow_idl.so.1 libmcop.so.1)
  broken /usr/bin/lua (requires libhistory.so.4)
  broken /usr/bin/lyx (requires libAiksaurus-1.0.so.0)
  broken /usr/bin/luac (requires libhistory.so.4)
  broken /usr/bin/avidemux2 (requires libartsc.so.0)
  broken /usr/bin/pptout (requires libxml++-0.1.so.11)
  broken /usr/bin/xml2ps (requires libxml++-0.1.so.11)
 done.
  (/root/.revdep-rebuild.3_rebuild)

Assigning files to ebuilds... done.
  (/root/.revdep-rebuild.4_ebuilds)

Evaluating package order... done.
  (/root/.revdep-rebuild.5_order)

All prepared. Starting rebuild...
emerge --oneshot --nodeps -p =app-cdr/k3b-0.11.14 =app-office/koffice-1.3.2 =app-office/lyx-1.3.4 \
       =app-office/passepartout-0.2 =dev-lang/lua-5.0.2 =dev-ruby/fxruby-1.0.29 =media-libs/libao-0.8.5 \
       =media-libs/xine-lib-1_rc5-r3 =media-video/avidemux-2.0.26 =net-libs/loudmouth-0.16 

These are the packages that I would merge, in order:

Calculating dependencies ...done!
[ebuild   R   ] app-cdr/k3b-0.11.14  
[ebuild   R   ] app-office/koffice-1.3.2  
[ebuild   R   ] app-office/lyx-1.3.4  
[ebuild   R   ] app-office/passepartout-0.2  
[ebuild   R   ] dev-lang/lua-5.0.2  
[ebuild   R   ] dev-ruby/fxruby-1.0.29  
[ebuild   R   ] media-libs/libao-0.8.5  
[ebuild   R   ] media-libs/xine-lib-1_rc5-r3  
[ebuild   R   ] media-video/avidemux-2.0.26  
[ebuild   R   ] net-libs/loudmouth-0.16  

Now you can remove -p (or --pretend) from arguments and re-run revdep-rebuild.
</pre>

<p>
If you need to rebuild some packages, you may run <c>revdep-rebuild</c> without
the <c>-p</c> flag and the listed packages will be emerged again.
</p>

</body>
</section>

<section>
<title>glsa-check</title>
<body>

<p>
<c>glsa-check</c> is mainly a test tool that keeps track of the various GLSA's
(Gentoo Linux Security Advisory) and will eventually be integrated into
<c>emerge</c> and <c>equery</c>. For more information, please visit the <uri
link="/proj/en/portage/glsa-integration.xml">Portage GLSA Integration
Page</uri>.
</p>

</body>
</section>
</chapter>

</guide>
