/[gentoo]/xml/htdocs/doc/en/bugzilla-howto.xml
Gentoo

Diff of /xml/htdocs/doc/en/bugzilla-howto.xml

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.12 Revision 1.17
1<?xml version="1.0" encoding="UTF-8"?> 1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE guide SYSTEM "/dtd/guide.dtd"> 2<!DOCTYPE guide SYSTEM "/dtd/guide.dtd">
3<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/bugzilla-howto.xml,v 1.12 2008/02/01 19:30:40 jkt Exp $ --> 3<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/bugzilla-howto.xml,v 1.17 2010/02/28 06:14:00 nightmorph Exp $ -->
4 4
5<guide link="/doc/en/bugzilla-howto.xml"> 5<guide>
6<title>Gentoo Bug Reporting Guide</title> 6<title>Gentoo Bug Reporting Guide</title>
7 7
8<author title="Author"> 8<author title="Author">
9 <mail link="chriswhite@gentoo.org">Chris White</mail> 9 <mail link="chriswhite@gentoo.org">Chris White</mail>
10</author> 10</author>
18 18
19<!-- The content of this document is licensed under the CC-BY-SA license --> 19<!-- The content of this document is licensed under the CC-BY-SA license -->
20<!-- See http://creativecommons.org/licenses/by-sa/2.5 --> 20<!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
21<license/> 21<license/>
22 22
23<version>1.11</version> 23<version>1.15</version>
24<date>2008-01-31</date> 24<date>2010-02-27</date>
25 25
26<chapter> 26<chapter>
27<title>Introduction</title> 27<title>Introduction</title>
28<section> 28<section>
29<title>Preface</title> 29<title>Preface</title>
49segmentation faults. Whatever the cause, the fact still remains that such a bug 49segmentation faults. Whatever the cause, the fact still remains that such a bug
50must be fixed. Here is a few examples of such bugs. 50must be fixed. Here is a few examples of such bugs.
51</p> 51</p>
52 52
53<pre caption="A run time error"> 53<pre caption="A run time error">
54$ <i>./bad_code `perl -e 'print Ax100'`</i> 54$ <i>./bad_code `perl -e 'print "A"x100'`</i>
55Segmentation fault 55Segmentation fault
56</pre> 56</pre>
57 57
58<pre caption="An emerge failure"> 58<pre caption="An emerge failure">
59/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.2/include/g++-v3/backward/backward_warning.h:32:2: 59/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.2/include/g++-v3/backward/backward_warning.h:32:2:
123 123
124<p> 124<p>
125Just for reference, <e>bad_code</e> is the program we'll be debugging with 125Just for reference, <e>bad_code</e> is the program we'll be debugging with
126<c>gdb</c> later on. As you can see, the program without debugging symbols is 126<c>gdb</c> later on. As you can see, the program without debugging symbols is
1273140 bytes, while the program with them is 6374 bytes. That's close to double 1273140 bytes, while the program with them is 6374 bytes. That's close to double
128the size! Two more things can be done for debugging. The first is adding ggdb3 128the size! Two more things can be done for debugging. The first is adding
129to your CFLAGS and CXXFLAGS. This flag adds more debugging information than is 129<c>ggdb</c> to your CFLAGS and CXXFLAGS. This flag adds more debugging
130generally included. We'll see what that means later on. This is how 130information than is generally included. We'll see what that means later on. This
131<path>/etc/make.conf</path> <e>might</e> look with the newly added flags. 131is how <path>/etc/make.conf</path> <e>might</e> look with the newly added flags.
132</p> 132</p>
133 133
134<pre caption="make.conf settings"> 134<pre caption="make.conf settings">
135CFLAGS="-O1 -pipe -g -ggdb" 135CFLAGS="-O1 -pipe -ggdb"
136CXXFLAGS="${CFLAGS}" 136CXXFLAGS="${CFLAGS}"
137</pre> 137</pre>
138 138
139<p> 139<p>
140Lastly, you can also add debug to the package's USE flags. This can be done 140Lastly, you can also add debug to the package's USE flags. This can be done
175Let's say we have a program here called "bad_code". Some person claims that the 175Let's say we have a program here called "bad_code". Some person claims that the
176program crashes and provides an example. You go ahead and test it out: 176program crashes and provides an example. You go ahead and test it out:
177</p> 177</p>
178 178
179<pre caption="Breaking The Program"> 179<pre caption="Breaking The Program">
180$ <i>./bad_code `perl -e 'print Ax100'`</i> 180$ <i>./bad_code `perl -e 'print "A"x100'`</i>
181Segmentation fault 181Segmentation fault
182</pre> 182</pre>
183 183
184<p> 184<p>
185It seems this person was right. Since the program is obviously broken, we have 185It seems this person was right. Since the program is obviously broken, we have
187we run <c>gdb</c> with <c>--args</c>, then give it the full program with 187we run <c>gdb</c> with <c>--args</c>, then give it the full program with
188arguments like shown: 188arguments like shown:
189</p> 189</p>
190 190
191<pre caption="Running Our Program Through GDB"> 191<pre caption="Running Our Program Through GDB">
192$ <i>gdb --args ./bad_code `perl -e 'print Ax100'`</i> 192$ <i>gdb --args ./bad_code `perl -e 'print "A"x100'`</i>
193GNU gdb 6.3 193GNU gdb 6.3
194Copyright 2004 Free Software Foundation, Inc. 194Copyright 2004 Free Software Foundation, Inc.
195GDB is free software, covered by the GNU General Public License, and you are 195GDB is free software, covered by the GNU General Public License, and you are
196welcome to change it and/or distribute copies of it under certain conditions. 196welcome to change it and/or distribute copies of it under certain conditions.
197Type "show copying" to see the conditions. 197Type "show copying" to see the conditions.
199This GDB was configured as "i686-pc-linux-gnu"...Using host libthread_db library "/lib/libthread_db.so.1". 199This GDB was configured as "i686-pc-linux-gnu"...Using host libthread_db library "/lib/libthread_db.so.1".
200</pre> 200</pre>
201 201
202<note> 202<note>
203One can also debug with core dumps. These core files contain the same 203One can also debug with core dumps. These core files contain the same
204information that the program would produce when run with gdb. In order to debug 204information that the program would produce when run with gdb. In order to debug
205with a core file with bad_code, you would run <c>gdb ./bad_code core</c> where 205with a core file with bad_code, you would run <c>gdb ./bad_code core</c> where
206core is the name of the core file. 206core is the name of the core file.
207</note> 207</note>
208 208
209<p> 209<p>
283crucial that debug symbols are <e>not</e> stripped. Now remember a while ago we 283crucial that debug symbols are <e>not</e> stripped. Now remember a while ago we
284mentioned the -ggdb flag. Let's see what the output looks like with the flag 284mentioned the -ggdb flag. Let's see what the output looks like with the flag
285enabled: 285enabled:
286</p> 286</p>
287 287
288<pre caption="Program backtrace with -ggdb3"> 288<pre caption="Program backtrace with -ggdb">
289(gdb) <i>bt</i> 289(gdb) <i>bt</i>
290#0 0xb7e4bdc0 in strcpy () from /lib/libc.so.6 290#0 0xb7e4bdc0 in strcpy () from /lib/libc.so.6
291#1 0x0804838c in run_it (input=0x0) at bad_code.c:7 291#1 0x0804838c in run_it (input=0x0) at bad_code.c:7
292#2 0x080483ba in main (argc=1, argv=0xbfd3a434) at bad_code.c:12 292#2 0x080483ba in main (argc=1, argv=0xbfd3a434) at bad_code.c:12
293</pre> 293</pre>
325The program is running. Exit anyway? (y or n) <i>y</i> 325The program is running. Exit anyway? (y or n) <i>y</i>
326$ 326$
327</pre> 327</pre>
328 328
329<p> 329<p>
330This ends the walk-through of <c>gdb</c>. Using <c>gdb</c>, we hope that you will 330This ends the walk-through of <c>gdb</c>. Using <c>gdb</c>, we hope that you
331be able to use it to create better bug reports. However, there are other types 331will be able to use it to create better bug reports. However, there are other
332of errors that can cause a program to fail during run time. One of the other 332types of errors that can cause a program to fail during run time. One of the
333ways is through improper file access. We can find those using a nifty little 333other ways is through improper file access. We can find those using a nifty
334tool called <c>strace</c>. 334little tool called <c>strace</c>.
335</p> 335</p>
336 336
337</body> 337</body>
338</section> 338</section>
339</chapter> 339</chapter>
348Programs often use files to fetch configuration information, access hardware or 348Programs often use files to fetch configuration information, access hardware or
349write logs. Sometimes, a program attempts to reach such files incorrectly. A 349write logs. Sometimes, a program attempts to reach such files incorrectly. A
350tool called <c>strace</c> was created to help deal with this. <c>strace</c> 350tool called <c>strace</c> was created to help deal with this. <c>strace</c>
351traces system calls (hence the name) which include calls that use the memory and 351traces system calls (hence the name) which include calls that use the memory and
352files. For our example, we're going to take a program foobar2. This is an 352files. For our example, we're going to take a program foobar2. This is an
353updated version of foobar. However, during the change over to foobar2, you notice 353updated version of foobar. However, during the change over to foobar2, you
354all your configurations are missing! In foobar version 1, you had it setup to 354notice all your configurations are missing! In foobar version 1, you had it
355say "foo", but now it's using the default "bar". 355setup to say "foo", but now it's using the default "bar".
356</p> 356</p>
357 357
358<pre caption="Foobar2 With an invalid configuration"> 358<pre caption="Foobar2 With an invalid configuration">
359$ <i>./foobar2</i> 359$ <i>./foobar2</i>
360Configuration says: bar 360Configuration says: bar
437 437
438<p> 438<p>
439Let's take a look at this very simple <c>emerge</c> error: 439Let's take a look at this very simple <c>emerge</c> error:
440</p> 440</p>
441 441
442<pre caption="emerge Error"> 442<pre caption="emerge Error (long lines are manually wrapped to fit the window)">
443gcc -D__TEST__ -D__GNU__ -D__LINUX__ -L/usr/lib -I/usr/include -L/usr/lib/nspr/ -I/usr/include/fmod -c -o foobar2-7.o foobar2-7.c
444gcc -D__TEST__ -D__GNU__ -D__LINUX__ -L/usr/lib -I/usr/include -L/usr/lib/nspr/ -I/usr/include/fmod -c -o foobar2-8.o foobar2-8.c
445gcc -D__TEST__ -D__GNU__ -D__LINUX__ -L/usr/lib -I/usr/include -L/usr/lib/nspr/ -I/usr/include/fmod -c -o foobar2-9.o foobar2-9.c
446gcc -D__TEST__ -D__GNU__ -D__LINUX__ -L/usr/lib -I/usr/include -L/usr/lib/nspr/ -I/usr/include/fmod -c -o foobar2.o foobar2.c 443gcc -D__TEST__ -D__GNU__ -D__LINUX__ -L/usr/lib -I/usr/include -L/usr/lib/nspr/ -I/usr/include/fmod \
444 -c -o foobar2-7.o foobar2-7.c
445gcc -D__TEST__ -D__GNU__ -D__LINUX__ -L/usr/lib -I/usr/include -L/usr/lib/nspr/ -I/usr/include/fmod \
446 -c -o foobar2-8.o foobar2-8.c
447gcc -D__TEST__ -D__GNU__ -D__LINUX__ -L/usr/lib -I/usr/include -L/usr/lib/nspr/ -I/usr/include/fmod \
448 -c -o foobar2-9.o foobar2-9.c
449gcc -D__TEST__ -D__GNU__ -D__LINUX__ -L/usr/lib -I/usr/include -L/usr/lib/nspr/ -I/usr/include/fmod \
450 -c -o foobar2.o foobar2.c
447foobar2.c:1:17: ogg.h: No such file or directory 451foobar2.c:1:17: ogg.h: No such file or directory
448make: *** [foobar2.o] Error 1 452make: *** [foobar2.o] Error 1
449 453
450!!! ERROR: sys-apps/foobar2-1.0 failed. 454!!! ERROR: sys-apps/foobar2-1.0 failed.
451!!! Function src_compile, Line 19, Exitcode 2 455!!! Function src_compile, Line 19, Exitcode 2
452!!! Make failed! 456!!! Make failed!
453!!! If you need support, post the topmost build error, NOT this status message 457!!! If you need support, post the topmost build error, NOT this status message
454</pre> 458</pre>
455 459
456<p> 460<p>
457The program is compiling smoothly when it suddenly stops and presents an error message. This 461The program is compiling smoothly when it suddenly stops and presents an error
458particular error can be split into 3 different sections, The compile messages, the build 462message. This particular error can be split into 3 different sections, The
459error, and the emerge error message as shown below. 463compile messages, the build error, and the emerge error message as shown below.
460</p> 464</p>
461 465
462<pre caption="Parts of the error"> 466<pre caption="Parts of the error (long lines are manually wrapped to fit the window)">
463<comment>(Compilation Messages)</comment> 467<comment>(Compilation Messages)</comment>
464gcc -D__TEST__ -D__GNU__ -D__LINUX__ -L/usr/lib -I/usr/include -L/usr/lib/nspr/ -I/usr/include/fmod -c -o foobar2-7.o foobar2-7.c
465gcc -D__TEST__ -D__GNU__ -D__LINUX__ -L/usr/lib -I/usr/include -L/usr/lib/nspr/ -I/usr/include/fmod -c -o foobar2-8.o foobar2-8.c
466gcc -D__TEST__ -D__GNU__ -D__LINUX__ -L/usr/lib -I/usr/include -L/usr/lib/nspr/ -I/usr/include/fmod -c -o foobar2-9.o foobar2-9.c
467gcc -D__TEST__ -D__GNU__ -D__LINUX__ -L/usr/lib -I/usr/include -L/usr/lib/nspr/ -I/usr/include/fmod -c -o foobar2.o foobar2.c 468gcc -D__TEST__ -D__GNU__ -D__LINUX__ -L/usr/lib -I/usr/include -L/usr/lib/nspr/ -I/usr/include/fmod \
469 -c -o foobar2-7.o foobar2-7.c
470gcc -D__TEST__ -D__GNU__ -D__LINUX__ -L/usr/lib -I/usr/include -L/usr/lib/nspr/ -I/usr/include/fmod \
471 -c -o foobar2-8.o foobar2-8.c
472gcc -D__TEST__ -D__GNU__ -D__LINUX__ -L/usr/lib -I/usr/include -L/usr/lib/nspr/ -I/usr/include/fmod \
473 -c -o foobar2-9.o foobar2-9.c
474gcc -D__TEST__ -D__GNU__ -D__LINUX__ -L/usr/lib -I/usr/include -L/usr/lib/nspr/ -I/usr/include/fmod \
475 -c -o foobar2.o foobar2.c
468 476
469<comment>(Build Error)</comment> 477<comment>(Build Error)</comment>
470foobar2.c:1:17: ogg.h: No such file or directory 478foobar2.c:1:17: ogg.h: No such file or directory
471make: *** [foobar2.o] Error 1 479make: *** [foobar2.o] Error 1
472 480
480<p> 488<p>
481The compilation messages are what lead up to the error. Most often, it's good to 489The compilation messages are what lead up to the error. Most often, it's good to
482at least include 10 lines of compile information so that the developer knows 490at least include 10 lines of compile information so that the developer knows
483where the compilation was at when the error occurred. 491where the compilation was at when the error occurred.
484</p> 492</p>
493
494<p>
495Please make sure you always include error messages in English, even when your
496system language is set to something else. You can temporarily switch to English
497locale by prepending <c>LC_ALL=C</c> to the emerge command like this:
498</p>
499
500<pre caption="Temporarily switching locale to English">
501# <i>LC_ALL=C emerge sys-apps/foobar2</i>
502</pre>
503
504<note>
505This is also about the only time you should use the <c>LC_ALL</c> environmental
506variable for specifying locale settings. If you are looking for a way to switch
507your system's language, then please consult our <uri
508link="guide-localization.xml">Localization Guide</uri> instead.
509</note>
485 510
486<p> 511<p>
487Make errors are the actual error and the information the developer needs. When 512Make errors are the actual error and the information the developer needs. When
488you see "make: ***", this is often where the error has occurred. Normally, you 513you see "make: ***", this is often where the error has occurred. Normally, you
489can copy and paste 10 lines above it and the developer will be able to address 514can copy and paste 10 lines above it and the developer will be able to address
522most likely have to create it. If you do not, portage will fail to write the 547most likely have to create it. If you do not, portage will fail to write the
523logs. 548logs.
524</note> 549</note>
525 550
526<pre caption="emerge-ing With PORT_LOGDIR"> 551<pre caption="emerge-ing With PORT_LOGDIR">
527# <i>PORT_LOGDIR=/var/log/portage emerge foobar2</i> 552# <i>PORT_LOGDIR=/var/log/portage emerge cate-gory/foobar2</i>
528</pre> 553</pre>
529 554
530<p> 555<p>
531Now the emerge fails again. However, this time we have a log we can work with, 556Now the emerge fails again. However, this time we have a log we can work with,
532and attach to the bug later on. Let's take a quick look at our log directory. 557and attach to the bug later on. Let's take a quick look at our log directory.
535<pre caption="PORT_LOGDIR Contents"> 560<pre caption="PORT_LOGDIR Contents">
536# <i>ls -la /var/log/portage</i> 561# <i>ls -la /var/log/portage</i>
537total 16 562total 16
538drwxrws--- 2 root root 4096 Jun 30 10:08 . 563drwxrws--- 2 root root 4096 Jun 30 10:08 .
539drwxr-xr-x 15 root root 4096 Jun 30 10:08 .. 564drwxr-xr-x 15 root root 4096 Jun 30 10:08 ..
540-rw-r--r-- 1 root root 7390 Jun 30 10:09 2115-foobar2-1.0.log 565-rw-r--r-- 1 root root 7390 Jun 30 10:09 cate-gory:foobar2-1.0:20090110-213217.log
541</pre> 566</pre>
542 567
543<p> 568<p>
544The log files have the format [counter]-[package name]-[version].log. Counter 569The log files have the format [category]:[package name]-[version]:[date].log. A
545is a special variable that is meant to state this package as the n-th package
546you've emerged. This prevents duplicate logs from appearing. A quick look at
547the log file will show the entire emerge process. This can be attached later 570quick look at the log file will show the entire emerge process. This can be
548on as we'll see in the bug reporting section. Now that we've safely obtained 571attached later on as we'll see in the bug reporting section. Now that we've
549our information needed to report the bug we can continue to do so. However, 572safely obtained our information needed to report the bug we can continue to do
550before we get started on that, we need to make sure no one else has reported 573so. However, before we get started on that, we need to make sure no one else
551the issue. Let's take a look at searching for bugs. 574has reported the issue. Let's take a look at searching for bugs.
552</p> 575</p>
553 576
554</body> 577</body>
555</section> 578</section>
556</chapter> 579</chapter>
656Product, Component, and Version should all be set to the default. This 679Product, Component, and Version should all be set to the default. This
657prevents us from being too specific and missing all the bugs. 680prevents us from being too specific and missing all the bugs.
658</p> 681</p>
659 682
660<p> 683<p>
661Comment is the important part. Use the comment field to list what appears to be a 684Comment is the important part. Use the comment field to list what appears to be
662specific instance of the error. Basically, don't use anything like the 685a specific instance of the error. Basically, don't use anything like the
663beginning of the build error, find a line that's before it stating a true 686beginning of the build error, find a line that's before it stating a true
664error. Also, you'll want to filter out any punctuation to prevent bugzilla 687error. Also, you'll want to filter out any punctuation to prevent bugzilla
665from interpreting the results the comment the wrong way. Example from the xclass 688from interpreting the results the comment the wrong way. Example from the xclass
666emerge error: 689emerge error:
667</p> 690</p>
770</p> 793</p>
771 794
772<note> 795<note>
773We would rather see a bug whose product was not supposed to be Gentoo Linux but 796We would rather see a bug whose product was not supposed to be Gentoo Linux but
774has been filed under the same rather than seeing a bug which belongs the Gentoo 797has been filed under the same rather than seeing a bug which belongs the Gentoo
775Linux product and filed elsewhere. While neither is preferred, the former is more 798Linux product and filed elsewhere. While neither is preferred, the former is
776acceptable and understandable (except website bugs.. we might have an issue with 799more acceptable and understandable (except website bugs.. we might have an issue
777that...). 800with that...).
778</note> 801</note>
779 802
780<p> 803<p>
781Our bug goes in Gentoo Linux as it's an ebuild bug. We head over there and are 804Our bug goes in Gentoo Linux as it's an ebuild bug. We head over there and are
782presented with the multi-step bug reporting process. Let us now proceed with 805presented with the multi-step bug reporting process. Let us now proceed with
932 </li> 955 </li>
933 <li> 956 <li>
934 Minor - Your program crashes here and there with apparent workarounds. 957 Minor - Your program crashes here and there with apparent workarounds.
935 </li> 958 </li>
936 <li> 959 <li>
937 Normal - The default. If you're not sure leave it here unless it's a new 960 Normal - The default. If you're not sure leave it here unless it's a new
938 build or cosmetic change, then read below for more information. 961 build or cosmetic change, then read below for more information.
939 </li> 962 </li>
940 <li>Trivial - Things such as a mispelled word or whitespace clean up. </li> 963 <li>Trivial - Things such as a mispelled word or whitespace clean up. </li>
941 <li> 964 <li>
942 Enhancement - A request to enable a new feature in a program, or more 965 Enhancement - A request to enable a new feature in a program, or more
1180$ <i>diff -up file.c.old file.c</i> 1203$ <i>diff -up file.c.old file.c</i>
1181</pre> 1204</pre>
1182 1205
1183<p> 1206<p>
1184The documentation team will require the flag combination <b>-Nt</b> as well as 1207The documentation team will require the flag combination <b>-Nt</b> as well as
1185<b>-u</b>. This mainly has to do with tab expansion. You can create such a diff 1208<b>-u</b>. This mainly has to do with tab expansion. You can create such a diff
1186with: 1209with:
1187</p> 1210</p>
1188 1211
1189<pre caption="Documentation diffs"> 1212<pre caption="Documentation diffs">
1190$<i> cp file.xml file.xml.old</i> 1213$<i> cp file.xml file.xml.old</i>
1249 1272
1250<p> 1273<p>
1251Now shortly afterward, we find the error in the strace log and fix the bug and 1274Now shortly afterward, we find the error in the strace log and fix the bug and
1252mark it as RESOLVED FIXED and mention that there was a change in the location 1275mark it as RESOLVED FIXED and mention that there was a change in the location
1253of configuration files, and that I will update the ebuild with a warning about 1276of configuration files, and that I will update the ebuild with a warning about
1254it. The bug now becomes resolved, and you are shown the following. 1277it. The bug now becomes resolved, and you are shown the following.
1255</p> 1278</p>
1256 1279
1257<figure link="/images/docs/bugzie-reso.png" caption="Resolved Bug"/> 1280<figure link="/images/docs/bugzie-reso.png" caption="Resolved Bug"/>
1258 1281
1259<p> 1282<p>
1280 <li> 1303 <li>
1281 WORKSFORME - Developer/person assigned the bug cannot reproduce your error. 1304 WORKSFORME - Developer/person assigned the bug cannot reproduce your error.
1282 </li> 1305 </li>
1283 <li> 1306 <li>
1284 CANTFIX - Somehow the bug cannot be solved because of certain 1307 CANTFIX - Somehow the bug cannot be solved because of certain
1285 circumstances. These circumstances will be noted by the person taking the 1308 circumstances. These circumstances will be noted by the person taking the
1286 bug. 1309 bug.
1287 </li> 1310 </li>
1288 <li> 1311 <li>
1289 WONTFIX - This is usually applied to new ebuilds or feature requests. 1312 WONTFIX - This is usually applied to new ebuilds or feature requests.
1290 Basically the developer does not want to add a certain feature because it 1313 Basically the developer does not want to add a certain feature because it
1301 </li> 1324 </li>
1302</ul> 1325</ul>
1303 1326
1304<p> 1327<p>
1305Sometimes, before the bug can be resolved, a developer may request that you 1328Sometimes, before the bug can be resolved, a developer may request that you
1306test an updated ebulid. In the next chapter we'll take a look at testing 1329test an updated ebulid. In the next chapter we'll take a look at testing
1307ebuilds. 1330ebuilds.
1308</p> 1331</p>
1309 1332
1310</body> 1333</body>
1311</section> 1334</section>
1420</pre> 1443</pre>
1421 1444
1422<p> 1445<p>
1423In the first section we see that the emerge started off as it should. The second 1446In the first section we see that the emerge started off as it should. The second
1424section shows our patch being applied successfully by the "[ ok ]" status 1447section shows our patch being applied successfully by the "[ ok ]" status
1425message to the right. The last section tells us the program compiled ok. The 1448message to the right. The last section tells us the program compiled ok. The
1426patch works! Now we can go and let the developer know that their patch works 1449patch works! Now we can go and let the developer know that their patch works
1427fine, and that they can commit the fix to portage. 1450fine, and that they can commit the fix to portage.
1428</p> 1451</p>
1429 1452
1430</body> 1453</body>

Legend:
Removed from v.1.12  
changed lines
  Added in v.1.17

  ViewVC Help
Powered by ViewVC 1.1.20