/[gentoo-x86]/Gentoo-HOWTO
Gentoo

Contents of /Gentoo-HOWTO

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.5 - (show annotations) (download)
Sun Aug 5 20:49:18 2001 UTC (13 years, 4 months 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 Gentoo-HOWTO
2
3 Written by Peter Gavin <pete@gentoo.org> and other members of the
4 Gentoo Team
5
6 ------------------------------------------------------------------------
7
8 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 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 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
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
224 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
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 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 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
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