/[gentoo-x86]/Gentoo-HOWTO
Gentoo

Contents of /Gentoo-HOWTO

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.5 - (hide annotations) (download)
Sun Aug 5 20:49:18 2001 UTC (13 years, 1 month ago) by pete
Branch: MAIN
CVS Tags: HEAD
Changes since 1.4: +0 -0 lines
FILE REMOVED
removed the old out of date gentoo-howto

1 pete 1.1 Gentoo-HOWTO
2 pete 1.3
3 pete 1.1 Written by Peter Gavin <pete@gentoo.org> and other members of the
4     Gentoo Team
5    
6     ------------------------------------------------------------------------
7    
8 pete 1.4 This document is a work in progress, and is constantly being updated
9     and changed. It is by no means complete.
10    
11     ------------------------------------------------------------------------
12    
13 pete 1.1 Contents
14    
15     I. Introduction
16     II. The Portage Tree
17     A. What (Not) to Put in the Portage Tree
18     B. Categories
19     C. The files Directory
20     III. .ebuild Files
21     A. Naming .ebuild Files
22     B. Contents of an .ebuild File
23     C. Rules for Writing an .ebuild File
24     IV. Filesystem Locations
25     A. Introduction to the FHS
26     B. How to Fit Your Packages into the Filesystem
27 pete 1.4 V. The Portage Scripts and Utilities
28     A. Public Scripts
29     1. ebuild
30     2. portage-merge
31     3. portage-unmerge
32     4. portage-maintain
33     5. pkgmerge
34     6. pkgname
35     B. Private Scripts
36     1. dobin
37     2. dodeps
38     3. dodir
39     4. dodoc
40     5. doexe
41     6. dohard
42     7. doinfo
43     8. doins
44     9. dolib
45     10. dolib.a
46     11. dolib.so
47     12. doman
48     13. domo
49     14. donewins
50     15. dopython
51     16. dosbin
52     17. dosed
53     18. dosym
54     19. find-packages
55     20. find-requires
56     21. fowners
57     22. fperms
58     23. import-configsettings
59     24. import-settings
60     25. megadigest
61     26. megadownload
62     27. megatouch
63     28. newbin
64     29. newdoc
65     30. newexe
66     31. newins
67     32. newlib.a
68     33. newlib.so
69     34. newman
70     36. newsbin
71     37. pkgmerge
72     38. pmake
73     39. portage-maintain
74     40. prepall
75     41. prepalldocs
76     42. prepallinfo
77     43. prepallman
78     44. prepallstrip
79     45. prepinfo
80     46. preplib
81     47. preplib.so
82     48. prepman
83     49. prepstrip
84     50. unpack
85     51. use
86 pete 1.1
87     ------------------------------------------------------------------------
88    
89     I. Introduction
90    
91     blah, blah, blah... (I'll fill this in later)
92    
93     II. The Portage Tree
94    
95     The portage tree is a heirarchy, in which the first level is
96     the category, and the second is the name of the package.
97    
98     A. What (Not) to Put in the Portage Tree
99    
100     The portage tree should only include ebuild files, and other
101     files in the 'files' directory for each package. No binary
102     files should be placed in the portage tree. No files that can
103     be downloaded from other sources (such as patches written by
104     other people) should be put here. No patches you write
105     yourself should be compressed.
106    
107     B. Categories
108    
109     The categories are defined as follows:
110    
111     app-admin - non-critical system administration utilities
112    
113     app-arch - non-critical archival/compression utilities
114    
115     app-cdr - CD recording utilities
116    
117     app-doc - application documentation
118    
119     app-editors - non-critical text editors
120    
121     app-emulation - packages for emulating other systems/OSes
122    
123     app-misc - applications that don't fit anywhere else
124    
125     app-office - office-type (word processing, spreadsheet, etc.)
126     packages
127    
128     app-shells - non-critical shells and command interpreters
129    
130     app-text - text processing, spell checkers, and document
131     formatting packages
132    
133     dev-db - database libraries
134    
135     dev-java - java classes/packages/etc.
136    
137     dev-lang - compilers and interpreters for different languages
138    
139     dev-libs - miscellaneous developer's libraries
140    
141     dev-perl - perl modules
142    
143     dev-python - python modules
144    
145     dev-ruby - ruby modules
146    
147     dev-util - various developers utilities
148    
149     gnome-apps - applications for gnome
150    
151     gnome-base - base gnome packages
152    
153     gnome-libs - non-essential gnome libraries
154    
155     gnome-office - office packages for gnome
156    
157     kde-apps - applications for kde
158    
159     kde-base - base kde packages
160    
161     kde-i18n - kde internationalization packages
162    
163     media-gfx - graphics related programs
164    
165     media-libs - libraries for manipulating different media,
166     including accessing multimedia peripherals of your
167     computer (sound card, video card, etc.)
168    
169     media-sound - programs related to sound, including cd-audio
170     and sound encoding
171    
172     media-video - programs related to video, including video
173     codecs and players
174    
175     net-analyzer - network usage statistics monitors/analyzers
176    
177     net-dialup - network dialup clients and servers such as pppd
178    
179     net-fs - network filesystems
180    
181     net-ftp - ftp servers and clients
182    
183     net-irc - irc servers and clients
184    
185     net-libs - networking related libraries
186    
187     net-mail - mtas and muas
188    
189     net-misc - miscellaneous servers, clients, firewalls, etc.
190    
191     net-nds - NIS/NIS+ and other name services
192    
193     net-print - print servers and clients
194    
195     net-www - http/www servers and clients
196    
197     sys-apps - system-critical applications and utilities
198    
199     sys-devel - base development packages, such as gcc and make
200    
201     sys-kernel - linux kernels
202    
203     sys-libs - system-critical libraries such as glibc
204    
205     x11-base - xfree86 and xfree86 drivers for various video cards
206    
207     x11-libs - widget sets and other x11 specific libraries
208    
209     x11-terms - x11 terminal emulators
210    
211     x11-wm - x11 window managers
212    
213     C. The files Directory
214    
215     Under each package subdirectory is a 'files' directory. You
216     should place any patches, configuration files, and other
217     auxillary files your package might require in this
218     directory. Patches you create yourself just to get your
219     package to build should be called '${PF}-gentoo.diff'. You
220     should not compress these diffs, since 1) they should not be big
221     enough to require compressing, and 2) cvs does not play well
222     with binary files.
223 pete 1.3
224 pete 1.4 Please add a suffix or prefix such as ${PV}-r${PR} (or just
225     ${PV} if ${PR} is 0) to the tail of every file you put into
226     the files directory, so that the files used for each
227     individual version of your ebuild scripts are distinguishable
228     from one another, and so that the changes between different
229     revisions are visible.
230    
231     If you have many files that should go into the files
232     directory, you should create a subdirectory files/${PV}-${PR}
233     (or just files/${PV} if ${PR} is 0), and put all these files
234     in there. If you use this method, you do not need to suffix
235     the names of the files in this directory with the ebuild
236     version.
237 pete 1.3
238     III. .ebuild Files
239    
240     .ebuild files are the basis for the entire portage
241     system. They contain all the information required to build a
242     package, and every installed package requires one of these
243     files. .ebuild files are essentially just bash scripts that
244     contain a few functions and environment variable settings. The
245     ebuild command takes care of the rest of the details, such as
246     merging the package into the filesystem and recording the
247     package into the package database.
248    
249     A. Naming .ebuild Files
250    
251     .ebuild file names are in four sections.
252    
253     The first section is the package name, which should only
254     contain lowercase letters, the digits 0-9, and hyphen ('-')
255     characters.
256    
257     The second section is the version of the package, which should
258     normally be the same as the version on the main source
259     tarball. The version is normally made up of 2 or 3 numbers
260     separated by periods, such as 1.2 or 4.5.2, and may have a
261     single letter immidiately following the last digit, e.g., 1.4b
262     or 2.6h. This letter should *not* be used to signify alpha or
263     beta status for the package. There are 3 special suffixes that
264     may be used for these packages: _alpha, _beta, and _pre. Each
265     of these suffixes may be immediately followed my a number,
266     e.g., 'linux-2.4.0_pre10'.
267    
268     The third section of the package name is the revision number,
269     which is specified by -r#, where '#' is a number,
270     e.g. 'package-4.5.3-r3'. This revision number is independent of
271     the version of the source tarball, but if you need to make
272     non-trivial changes to your .ebuild file, you should copy the
273     .ebuild file to a new file with the revision number
274     incremented by 1. Initial releases normally have no revision
275     number, e.g. 'package-4.5.3'.
276    
277     The fourth section of the .ebuild file name is always the
278     .ebuild extension.
279    
280     B. Contents of an .ebuild File
281    
282 pete 1.4 1. Variable Settings
283    
284     The first part of every ebuild file is made up of a number of
285     variable settings. The variables you can set are
286    
287 pete 1.3 C. Rules for Writing an .ebuild File
288    
289     IV. Filesystem Locations
290    
291     A. Introduction to the FHS
292    
293     B. How to Fit Your Packages into the Filesystem
294 pete 1.4
295     V. The Portage Scripts and Utilities
296    
297     A. Public Scripts
298    
299     1. ebuild
300    
301     2. portage-merge
302    
303     3. portage-unmerge
304    
305     4. portage-maintain
306    
307     5. pkgmerge
308    
309     6. pkgname
310    
311     B. Private Scripts
312    
313     1. dobin
314    
315     2. dodeps
316    
317     3. dodir
318    
319     4. dodoc
320    
321     5. doexe
322    
323     6. dohard
324    
325     7. doinfo
326    
327     8. doins
328    
329     9. dolib
330    
331     10. dolib.a
332    
333     11. dolib.so
334    
335     12. doman
336    
337     13. domo
338    
339     14. donewins
340    
341     15. dopython
342    
343     16. dosbin
344    
345     17. dosed
346    
347     18. dosym
348    
349     19. find-packages
350    
351     20. find-requires
352    
353     21. fowners
354    
355     22. fperms
356    
357     23. import-configsettings
358    
359     24. import-settings
360    
361     25. megadigest
362    
363     26. megadownload
364    
365     27. megatouch
366    
367     28. newbin
368    
369     29. newdoc
370    
371     30. newexe
372    
373     31. newins
374    
375     32. newlib.a
376    
377     33. newlib.so
378    
379     34. newman
380    
381     36. newsbin
382    
383     37. pkgmerge
384    
385     38. pmake
386    
387     39. portage-maintain
388    
389     40. prepall
390    
391     41. prepalldocs
392    
393     42. prepallinfo
394    
395     43. prepallman
396    
397     44. prepallstrip
398    
399     45. prepinfo
400    
401     46. preplib
402    
403     47. preplib.so
404    
405     48. prepman
406    
407     49. prepstrip
408    
409     50. unpack
410    
411     51. use

  ViewVC Help
Powered by ViewVC 1.1.20