swift 12/01/15 09:55:35 Modified: handbook-alpha.xml handbook-amd64.xml handbook-arm.xml handbook-hppa.xml handbook-ia64.xml handbook-mips.xml handbook-ppc.xml handbook-ppc64.xml handbook-sparc.xml handbook-x86.xml Added: hb-portage-advanced.xml Log: Fix bug #396549 - Add section on advanced portage features
Revision Changes Path 1.141 xml/htdocs/doc/en/handbook/handbook-alpha.xml file : http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/doc/en/handbook/handbook-alpha.xml?rev=1.141&view=markup plain: http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/doc/en/handbook/handbook-alpha.xml?rev=1.141&content-type=text/plain diff : http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/doc/en/handbook/handbook-alpha.xml?r1=1.140&r2=1.141 Index: handbook-alpha.xml =================================================================== RCS file: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/handbook-alpha.xml,v retrieving revision 1.140 retrieving revision 1.141 diff -u -r1.140 -r1.141 --- handbook-alpha.xml 20 Jul 2010 02:22:04 -0000 1.140 +++ handbook-alpha.xml 15 Jan 2012 09:55:35 -0000 1.141 @@ -1,7 +1,7 @@ <?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE book SYSTEM "/dtd/book.dtd"> -<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/handbook-alpha.xml,v 1.140 2010/07/20 02:22:04 nightmorph Exp $ --> +<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/handbook-alpha.xml,v 1.141 2012/01/15 09:55:35 swift Exp $ --> <book> <title>Gentoo Linux Alpha Handbook</title> @@ -138,8 +138,8 @@ <!-- See http://creativecommons.org/licenses/by-sa/2.5 --> <license/> -<version>10.1</version> -<date>2010-07-19</date> +<version>11.0</version> +<date>2012-01-15</date> <part> <title>Installing Gentoo</title> @@ -291,6 +291,12 @@ <title>Diverting from the Official Tree</title> <include href="hb-portage-diverttree.xml"/> </chapter> + +<chapter> +<title>Advanced Portage Features</title> + <include href="hb-portage-advanced.xml" /> +</chapter> + </part> <part> 1.154 xml/htdocs/doc/en/handbook/handbook-amd64.xml file : http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/doc/en/handbook/handbook-amd64.xml?rev=1.154&view=markup plain: http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/doc/en/handbook/handbook-amd64.xml?rev=1.154&content-type=text/plain diff : http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/doc/en/handbook/handbook-amd64.xml?r1=1.153&r2=1.154 Index: handbook-amd64.xml =================================================================== RCS file: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/handbook-amd64.xml,v retrieving revision 1.153 retrieving revision 1.154 diff -u -r1.153 -r1.154 --- handbook-amd64.xml 20 Jul 2010 02:09:27 -0000 1.153 +++ handbook-amd64.xml 15 Jan 2012 09:55:35 -0000 1.154 @@ -1,7 +1,7 @@ <?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE book SYSTEM "/dtd/book.dtd"> -<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/handbook-amd64.xml,v 1.153 2010/07/20 02:09:27 nightmorph Exp $ --> +<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/handbook-amd64.xml,v 1.154 2012/01/15 09:55:35 swift Exp $ --> <book> <title>Gentoo Linux AMD64 Handbook</title> @@ -141,8 +141,8 @@ <!-- See http://creativecommons.org/licenses/by-sa/2.5 --> <license/> -<version>10.2</version> -<date>2010-07-19</date> +<version>11.0</version> +<date>2012-01-15</date> <part> <title>Installing Gentoo</title> @@ -280,6 +280,11 @@ <title>Diverting from the Official Tree</title> <include href="hb-portage-diverttree.xml"/> </chapter> + +<chapter> +<title>Advanced Portage Features</title> + <include href="hb-portage-advanced.xml" /> +</chapter> </part> <part> 1.75 xml/htdocs/doc/en/handbook/handbook-arm.xml file : http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/doc/en/handbook/handbook-arm.xml?rev=1.75&view=markup plain: http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/doc/en/handbook/handbook-arm.xml?rev=1.75&content-type=text/plain diff : http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/doc/en/handbook/handbook-arm.xml?r1=1.74&r2=1.75 Index: handbook-arm.xml =================================================================== RCS file: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/handbook-arm.xml,v retrieving revision 1.74 retrieving revision 1.75 diff -u -r1.74 -r1.75 --- handbook-arm.xml 17 May 2011 22:33:01 -0000 1.74 +++ handbook-arm.xml 15 Jan 2012 09:55:35 -0000 1.75 @@ -1,7 +1,7 @@ <?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE book SYSTEM "/dtd/book.dtd"> -<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/handbook-arm.xml,v 1.74 2011/05/17 22:33:01 nightmorph Exp $ --> +<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/handbook-arm.xml,v 1.75 2012/01/15 09:55:35 swift Exp $ --> <book> <title>Gentoo Linux ARM Handbook</title> @@ -138,8 +138,8 @@ <!-- See http://creativecommons.org/licenses/by-sa/2.5 --> <license/> -<version>11</version> -<date>2011-05-17</date> +<version>12</version> +<date>2012-01-15</date> <part> <title>Installing Gentoo</title> @@ -288,6 +288,11 @@ <title>Diverting from the Official Tree</title> <include href="hb-portage-diverttree.xml"/> </chapter> + +<chapter> +<title>Advanced Portage Features</title> + <include href="hb-portage-advanced.xml" /> +</chapter> </part> <part> 1.139 xml/htdocs/doc/en/handbook/handbook-hppa.xml file : http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/doc/en/handbook/handbook-hppa.xml?rev=1.139&view=markup plain: http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/doc/en/handbook/handbook-hppa.xml?rev=1.139&content-type=text/plain diff : http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/doc/en/handbook/handbook-hppa.xml?r1=1.138&r2=1.139 Index: handbook-hppa.xml =================================================================== RCS file: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/handbook-hppa.xml,v retrieving revision 1.138 retrieving revision 1.139 diff -u -r1.138 -r1.139 --- handbook-hppa.xml 20 Jul 2010 00:05:24 -0000 1.138 +++ handbook-hppa.xml 15 Jan 2012 09:55:35 -0000 1.139 @@ -1,6 +1,6 @@ <?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE book SYSTEM "/dtd/book.dtd"> -<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/handbook-hppa.xml,v 1.138 2010/07/20 00:05:24 nightmorph Exp $ --> +<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/handbook-hppa.xml,v 1.139 2012/01/15 09:55:35 swift Exp $ --> <book> <title>Gentoo Linux HPPA Handbook</title> @@ -137,8 +137,8 @@ <!-- See http://creativecommons.org/licenses/by-sa/2.5 --> <license/> -<version>10.0</version> -<date>2010-07-19</date> +<version>11.0</version> +<date>2012-01-15</date> <part> <title>Installing Gentoo</title> @@ -289,6 +289,11 @@ <title>Diverting from the Official Tree</title> <include href="hb-portage-diverttree.xml"/> </chapter> + +<chapter> +<title>Advanced Portage Features</title> + <include href="hb-portage-advanced.xml" /> +</chapter> </part> <part> 1.15 xml/htdocs/doc/en/handbook/handbook-ia64.xml file : http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/doc/en/handbook/handbook-ia64.xml?rev=1.15&view=markup plain: http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/doc/en/handbook/handbook-ia64.xml?rev=1.15&content-type=text/plain diff : http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/doc/en/handbook/handbook-ia64.xml?r1=1.14&r2=1.15 Index: handbook-ia64.xml =================================================================== RCS file: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/handbook-ia64.xml,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- handbook-ia64.xml 20 Jul 2010 05:14:55 -0000 1.14 +++ handbook-ia64.xml 15 Jan 2012 09:55:35 -0000 1.15 @@ -1,6 +1,6 @@ <?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE book SYSTEM "/dtd/book.dtd"> -<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/handbook-ia64.xml,v 1.14 2010/07/20 05:14:55 nightmorph Exp $ --> +<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/handbook-ia64.xml,v 1.15 2012/01/15 09:55:35 swift Exp $ --> <book> <title>Gentoo Linux/IA64 Handbook</title> @@ -145,8 +145,8 @@ <!-- See http://creativecommons.org/licenses/by-sa/2.5 --> <license/> -<version>10.0</version> -<date>2010-07-19</date> +<version>11.0</version> +<date>2012-01-15</date> <part> <title>Installing Gentoo</title> @@ -296,6 +296,11 @@ <title>Diverting from the Official Tree</title> <include href="hb-portage-diverttree.xml"/> </chapter> + +<chapter> +<title>Advanced Portage Features</title> + <include href="hb-portage-advanced.xml" /> +</chapter> </part> <part> 1.126 xml/htdocs/doc/en/handbook/handbook-mips.xml file : http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/doc/en/handbook/handbook-mips.xml?rev=1.126&view=markup plain: http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/doc/en/handbook/handbook-mips.xml?rev=1.126&content-type=text/plain diff : http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/doc/en/handbook/handbook-mips.xml?r1=1.125&r2=1.126 Index: handbook-mips.xml =================================================================== RCS file: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/handbook-mips.xml,v retrieving revision 1.125 retrieving revision 1.126 diff -u -r1.125 -r1.126 --- handbook-mips.xml 27 Jul 2010 22:54:33 -0000 1.125 +++ handbook-mips.xml 15 Jan 2012 09:55:35 -0000 1.126 @@ -1,7 +1,7 @@ <?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE book SYSTEM "/dtd/book.dtd"> -<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/handbook-mips.xml,v 1.125 2010/07/27 22:54:33 nightmorph Exp $ --> +<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/handbook-mips.xml,v 1.126 2012/01/15 09:55:35 swift Exp $ --> <book> <title>Gentoo Linux/MIPS Handbook</title> @@ -135,8 +135,8 @@ <!-- See http://creativecommons.org/licenses/by-sa/2.5 --> <license/> -<version>10.0</version> -<date>2010-07-27</date> +<version>11.0</version> +<date>2012-01-15</date> <part> <title>Installing Gentoo</title> @@ -269,6 +269,11 @@ <title>Diverting from the Official Tree</title> <include href="hb-portage-diverttree.xml"/> </chapter> + +<chapter> +<title>Advanced Portage Features</title> + <include href="hb-portage-advanced.xml" /> +</chapter> </part> <part> 1.160 xml/htdocs/doc/en/handbook/handbook-ppc.xml file : http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/doc/en/handbook/handbook-ppc.xml?rev=1.160&view=markup plain: http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/doc/en/handbook/handbook-ppc.xml?rev=1.160&content-type=text/plain diff : http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/doc/en/handbook/handbook-ppc.xml?r1=1.159&r2=1.160 Index: handbook-ppc.xml =================================================================== RCS file: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/handbook-ppc.xml,v retrieving revision 1.159 retrieving revision 1.160 diff -u -r1.159 -r1.160 --- handbook-ppc.xml 21 Jul 2010 01:28:29 -0000 1.159 +++ handbook-ppc.xml 15 Jan 2012 09:55:35 -0000 1.160 @@ -1,7 +1,7 @@ <?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE book SYSTEM "/dtd/book.dtd"> -<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/handbook-ppc.xml,v 1.159 2010/07/21 01:28:29 nightmorph Exp $ --> +<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/handbook-ppc.xml,v 1.160 2012/01/15 09:55:35 swift Exp $ --> <book> <title>Gentoo Linux PPC Handbook</title> @@ -145,8 +145,8 @@ <!-- See http://creativecommons.org/licenses/by-sa/2.5 --> <license/> -<version>10.1</version> -<date>2010-07-20</date> +<version>11.0</version> +<date>2012-01-15</date> <part> <title>Installing Gentoo</title> @@ -279,6 +279,11 @@ <title>Diverting from the Official Tree</title> <include href="hb-portage-diverttree.xml"/> </chapter> + +<chapter> +<title>Advanced Portage Features</title> + <include href="hb-portage-advanced.xml" /> +</chapter> </part> <part> 1.80 xml/htdocs/doc/en/handbook/handbook-ppc64.xml file : http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/doc/en/handbook/handbook-ppc64.xml?rev=1.80&view=markup plain: http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/doc/en/handbook/handbook-ppc64.xml?rev=1.80&content-type=text/plain diff : http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/doc/en/handbook/handbook-ppc64.xml?r1=1.79&r2=1.80 Index: handbook-ppc64.xml =================================================================== RCS file: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/handbook-ppc64.xml,v retrieving revision 1.79 retrieving revision 1.80 diff -u -r1.79 -r1.80 --- handbook-ppc64.xml 21 Jul 2010 01:55:53 -0000 1.79 +++ handbook-ppc64.xml 15 Jan 2012 09:55:35 -0000 1.80 @@ -1,7 +1,7 @@ <?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE book SYSTEM "/dtd/book.dtd"> -<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/handbook-ppc64.xml,v 1.79 2010/07/21 01:55:53 nightmorph Exp $ --> +<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/handbook-ppc64.xml,v 1.80 2012/01/15 09:55:35 swift Exp $ --> <book> <title>Gentoo Linux PPC64 Handbook</title> @@ -137,8 +137,8 @@ <!-- See http://creativecommons.org/licenses/by-sa/2.5 --> <license/> -<version>10.0</version> -<date>2010-07-20</date> +<version>11.0</version> +<date>2012-01-15</date> <part> <title>Installing Gentoo</title> @@ -272,6 +272,11 @@ <title>Diverting from the Official Tree</title> <include href="hb-portage-diverttree.xml"/> </chapter> + +<chapter> +<title>Advanced Portage Features</title> + <include href="hb-portage-advanced.xml" /> +</chapter> </part> <part> 1.142 xml/htdocs/doc/en/handbook/handbook-sparc.xml file : http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/doc/en/handbook/handbook-sparc.xml?rev=1.142&view=markup plain: http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/doc/en/handbook/handbook-sparc.xml?rev=1.142&content-type=text/plain diff : http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/doc/en/handbook/handbook-sparc.xml?r1=1.141&r2=1.142 Index: handbook-sparc.xml =================================================================== RCS file: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/handbook-sparc.xml,v retrieving revision 1.141 retrieving revision 1.142 diff -u -r1.141 -r1.142 --- handbook-sparc.xml 20 Jul 2010 08:29:37 -0000 1.141 +++ handbook-sparc.xml 15 Jan 2012 09:55:35 -0000 1.142 @@ -1,6 +1,6 @@ <?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE book SYSTEM "/dtd/book.dtd"> -<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/handbook-sparc.xml,v 1.141 2010/07/20 08:29:37 nightmorph Exp $ --> +<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/handbook-sparc.xml,v 1.142 2012/01/15 09:55:35 swift Exp $ --> <book> <title>Gentoo Linux SPARC Handbook</title> @@ -136,8 +136,8 @@ <!-- See http://creativecommons.org/licenses/by-sa/2.5 --> <license/> -<version>10.0</version> -<date>2010-07-20</date> +<version>11.0</version> +<date>2012-01-15</date> <part> <title>Installing Gentoo</title> @@ -288,6 +288,11 @@ <title>Diverting from the Official Tree</title> <include href="hb-portage-diverttree.xml"/> </chapter> + +<chapter> +<title>Advanced Portage Features</title> + <include href="hb-portage-advanced.xml" /> +</chapter> </part> <part> 1.175 xml/htdocs/doc/en/handbook/handbook-x86.xml file : http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/doc/en/handbook/handbook-x86.xml?rev=1.175&view=markup plain: http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/doc/en/handbook/handbook-x86.xml?rev=1.175&content-type=text/plain diff : http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/doc/en/handbook/handbook-x86.xml?r1=1.174&r2=1.175 Index: handbook-x86.xml =================================================================== RCS file: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/handbook-x86.xml,v retrieving revision 1.174 retrieving revision 1.175 diff -u -r1.174 -r1.175 --- handbook-x86.xml 20 Jul 2010 02:05:22 -0000 1.174 +++ handbook-x86.xml 15 Jan 2012 09:55:35 -0000 1.175 @@ -1,7 +1,7 @@ <?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE book SYSTEM "/dtd/book.dtd"> -<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/handbook-x86.xml,v 1.174 2010/07/20 02:05:22 nightmorph Exp $ --> +<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/handbook-x86.xml,v 1.175 2012/01/15 09:55:35 swift Exp $ --> <book> <title>Gentoo Linux x86 Handbook</title> @@ -141,8 +141,8 @@ <!-- See http://creativecommons.org/licenses/by-sa/2.5 --> <license/> -<version>10.2</version> -<date>2010-07-19</date> +<version>11.0</version> +<date>2012-01-15</date> <part> <title>Installing Gentoo</title> @@ -280,6 +280,11 @@ <title>Diverting from the Official Tree</title> <include href="hb-portage-diverttree.xml"/> </chapter> + +<chapter> +<title>Advanced Portage Features</title> + <include href="hb-portage-advanced.xml" /> +</chapter> </part> <part> 1.1 xml/htdocs/doc/en/handbook/hb-portage-advanced.xml file : http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/doc/en/handbook/hb-portage-advanced.xml?rev=1.1&view=markup plain: http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/doc/en/handbook/hb-portage-advanced.xml?rev=1.1&content-type=text/plain Index: hb-portage-advanced.xml =================================================================== <?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE sections SYSTEM "/dtd/book.dtd"> <!-- The content of this document is licensed under the CC-BY-SA license --> <!-- See http://creativecommons.org/licenses/by-sa/2.5 --> <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/hb-portage-advanced.xml,v 1.1 2012/01/15 09:55:35 swift Exp $ --> <sections> <abstract> As times goes by, Portage evolves and matures further and further. Additional features are continuously being put in - many of these are only of use by more advanced users. This chapter will go into more detail of these specific features. </abstract> <version>1</version> <date>2012-01-15</date> <section> <title>Introduction</title> <body> <p> For most users, the information received thus far is sufficient for all their Linux operations. But Portage is capable of much more; many of its features are for advanced users or only applicable in specific corner cases. Still, that would not be an excuse not to document them. </p> <p> Of course, with lots of flexibility comes a huge list of potential cases. It will not be possible to document them all here. Instead, we hope to focus on some generic issues which you can then bend to fit your own needs. If you have need for more specific tweaks and tips, you might find them on the <uri link="https://wiki.gentoo.org">Gentoo WiKi</uri> instead. </p> <p> Most, if not all of these additional features can be easily found by digging through the manual pages that portage provides: </p> <pre caption="Reading up on portage man pages"> $ <i>man portage</i> $ <i>man make.conf</i> </pre> <p> Finally, know that these are advanced features which, if not worked with correctly, can make debugging and troubleshooting very difficult. Make sure you mention these if you think you hit a bug and want to open a bugreport. </p> </body> </section> <section> <title>Per-Package Environment Variables</title> <subsection> <title>Using /etc/portage/env</title> <body> <p> By default, package builds will use the environment variables defined in <path>/etc/make.conf</path>, such as <c>CFLAGS</c>, <c>MAKEOPTS</c> and more. In some cases though, you might want to provide different variables for specific packages. To do so, Portage supports the use of <path>/etc/portage/env</path> and <path>/etc/portage/package.env</path>. </p> <p> The <path>/etc/portage/package.env</path> file contains the list of packages for which you want deviating variables as well as a specific identifier that tells Portage which changes you want. The identifier name you pick yourself, Portage will look for the variables in the <path>/etc/portage/env/<identifier></path> file. </p> </body> </subsection> <subsection> <title>Example: Using debugging for specific packages</title> <body> <p> As an example, we enable debugging for the <path>media-video/mplayer</path> package. </p> <p> First of all, we set the debugging variables in a file called <path>/etc/portage/env/debug-cflags</path>. The name is arbitrarily chosen, but of course reflects the reason of the deviation to make it more obvious later why a deviation was put in. </p> <pre caption="/etc/portage/env/debug-cflags content"> CFLAGS="-O2 -ggdb -pipe" FEATURES="${FEATURES} nostrip" </pre> <p> Next, we tag the <path>media-video/mplayer</path> package to use this content: </p> <pre caption="/etc/portage/package.env content"> media-video/mplayer debug-cflags </pre> </body> </subsection> </section> <section> <title>Hooking In the Emerge Process</title> <subsection> <title>Using /etc/portage/bashrc and affiliated files</title> <body> <p> When Portage works with ebuilds, it uses a bash environment in which it calls the various build functions (like src_prepare, src_configure, src_postinst, etc.). But Portage also allows you to set up a bash environment yourself. </p> <p> The advantage of using your own bash environment is that you can hook in the emerge process during each step it performs. This can be done for every emerge (through <path>/etc/portage/bashrc</path>) or by using per-package environments (through <path>/etc/portage/env</path> as discussed earlier). </p> <p> To hook in the process, the bash environment can listen to the variables <c>EBUILD_PHASE</c>, <c>CATEGORY</c> as well as the variables that are always available during ebuild development (such as <c>P</c>, <c>PF</c>, ...). Based on the values of these variables, you can then execute additional steps. </p> </body> </subsection> <subsection> <title>Example: Updating File Databases</title> <body> <p> In this example, we'll use <path>/etc/portage/bashrc</path> to call some file database applications to ensure their databases are up to date with the system. The applications used in the example are <c>aide</c> (an intrusion detection tool) and <c>updatedb</c> (to use with <c>locate</c>), but these are meant as examples. Do not consider this as a HOWTO for AIDE ;-) </p> <p> To use <path>/etc/portage/bashrc</path> for this case, we need to "hook" in the <c>postrm</c> (after removal of files) and <c>postinst</c> (after installation of files) functions, because that is when the files on the file system have been changed. </p> <pre caption="Example /etc/portage/bashrc"> if [ "${EBUILD_PHASE}" == "postinst"] || [ "${EBUILD_PHASE}" == "postrm" ]; then echo ":: Calling aide --update to update its database"; aide --update; echo ":: Calling updatedb to update its database"; updatedb; fi </pre> </body> </subsection> </section> <section> <title>Executing Tasks After --sync</title> <subsection> <title>The /etc/portage/postsync.d location</title> <body> <p> Until now we've talked about hooking into the ebuild processes. However, Portage also has another important function: updating the Portage tree. In order to run tasks after updating the Portage tree, put a script inside <path>/etc/portage/postsync.d</path> and make sure it is marked as executable. </p> </body> </subsection> <subsection> <title>Example: Running eix-update</title> <body> <p> If you didn't use <c>eix-sync</c> to update the tree, you can still have its database updated after running <c>emerge --sync</c> (or <c>emerge-webrsync</c>) by putting a symlink to <path>/usr/bin/eix</path> called <path>eix-update</path> in <path>/etc/portage/postsync.d</path>. </p> <pre caption="Running eix-update after a sync operation"> # <i>ln -s /usr/bin/eix /etc/portage/postsync.d/eix-update</i> </pre> <note> If you rather use a different name, you will need to make a script that calls <c>/usr/bin/eix-update</c> instead. The <c>eix</c> binary looks at how it has been called to find out which function it has to execute. If you put in a symlink to <c>eix</c> that isn't called <c>eix-update</c>, it will not run correctly. </note> </body> </subsection> </section> <section> <title>Overriding Profile Settings</title> <subsection> <title>The /etc/portage/profile location</title> <body> <p> By default, Gentoo uses the settings contained in the profile pointed to by <path>/etc/make.profile</path> (a symbolic link to the right profile directory). These profiles define both specific settings as well as inherit settings from other profiles (through their <path>parent</path> file). </p> <p> By using <path>/etc/portage/profile</path>, you can override profile settings such as <path>packages</path> (what packages are considered to be part of the system set), <path>virtuals</path> (default packages when pulling in a virtual) and more. </p> </body> </subsection> <subsection> <title>Example: Adding nfs-utils to the System Set</title> <body> <p> If you use NFS-based file systems for rather critical file systems, you might want to have <path>net-fs/nfs-utils</path> "protected" as a system package, causing Portage to heavily warn you if it would be deleted. </p> <p> To accomplish that, we add the package to <path>/etc/portage/profile/packages</path>, prepended with a <c>*</c>: </p> <pre caption="/etc/portage/profile/packages content"> *net-fs/nfs-utils </pre> </body> </subsection> </section> <section> <title>Applying Non-Standard Patches</title> <subsection> <title>Using epatch_user</title> <body> <p> To manage several ebuilds in a similar manner, ebuild developers use <e>eclasses</e> (sort-of shell libraries) that define commonly used functions. One of these eclasses is <path>eutils.eclass</path> which offers an interesting function called <c>epatch_user</c>. </p> <p> The <c>epatch_user</c> function applies source code patches that are found in <path>/etc/portage/patches/<category>/<package>[-<version>[-<revision>]]</path>, whatever directory is found first. Sadly, not all ebuilds automatically call this function so just putting your patch in this location might not always work. </p> <p> Luckily, with the information provided above, you can call this function by hooking into, for instance, the <c>prepare</c> phase. The function can be called as many times as you like - it will only apply the patches once. </p> </body> </subsection> <subsection> <title>Example: Applying Patches to Firefox</title> <body> <p> The <path>www-client/firefox</path> package is one of the few that already call <c>epatch_user</c> from within the ebuild, so you do not need to override anything specific. </p> <p> If you need to patch firefox (for instance because a developer asked you to to support you in a bug you reported), put the patch in <path>/etc/portage/patches/www-client/firefox</path> (probably best to use the full name, including version so that the patch does not interfere with later versions) and rebuild firefox. </p> </body> </subsection> </section> </sections>