/[gentoo]/xml/htdocs/proj/en/overlays/devguide.xml
Gentoo

Contents of /xml/htdocs/proj/en/overlays/devguide.xml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.3 - (hide annotations) (download) (as text)
Mon Jul 31 06:49:28 2006 UTC (12 years, 3 months ago) by stuart
Branch: MAIN
Changes since 1.2: +1 -1 lines
File MIME type: application/xml
Added user guide to list of resources

1 stuart 1.1 <?xml version="1.0" encoding="UTF-8"?>
2     <!DOCTYPE guide SYSTEM "/dtd/guide.dtd">
3    
4     <guide link="/proj/en/overlays/devguide.xml">
5     <title>Gentoo Overlays: Developers' Guide</title>
6    
7     <author title="Author">
8     <mail link="stuart@gentoo.org">Stuart Herbert</mail>
9     </author>
10    
11     <abstract>This guide helps developers understand how to use the Gentoo
12     Overlays service.</abstract>
13    
14     <license/>
15    
16     <version>1.0</version>
17     <date>2006-07-29</date>
18    
19     <chapter>
20     <title>Introduction</title>
21    
22     <section>
23     <title>Audience</title>
24     <body>
25     <p>This document has been written for Gentoo developers and Gentoo staff members. If you are a Gentoo user, or you just want to start downloading and using overlays, please see <uri link="/proj/en/overlays/userguide.xml">the Gentoo Overlays User Guide</uri> instead.</p>
26     </body>
27     </section>
28    
29     <section>
30     <title>What is overlays.gentoo.org?</title>
31     <body>
32     <p><uri link="http://overlays.gentoo.org">overlays.gentoo.org</uri> provides social workspaces to allow Gentoo projects, developers and users to collaborate together on tomorrow's Gentoo packages. We do this by hosting overlays for Gentoo projects, and overlays for Gentoo developers.</p>
33     </body>
34     </section>
35    
36     <section>
37     <title>Who Can Use overlays.gentoo.org?</title>
38     <body>
39     <p>Any Gentoo project, or Gentoo developer, can have their own overlay hosted on overlays.gentoo.org, with the RSS feed from the changelog included on <uri link="http://overlays.gentoo.org">the overlays.gentoo.org homepage</uri>.</p>
40    
41     <p>Any Gentoo staff member or user (ie, anyone who doesn't have write access to
42     the main Portage package tree) can download and use the contents of any hosted
43     overlay. If you choose, you can also give users write access to your
44     overlay.</p>
45     </body>
46     </section>
47    
48     <section>
49     <title>What Does overlays.gentoo.org Give Me?</title>
50     <body>
51     <p>The overlays.gentoo.org service currently provides:</p>
52     <ul>
53     <li><uri link="http://trac.edgewall.com">Trac</uri> (a wiki w/ integrated subversion browser), for quickly creating and maintaining documentation about your overlay</li>
54     <li><uri link="http://subversion.tigris.org">Subversion</uri> - a centralised version control system (distributed version control systems will be supported in future)</li>
55     <li>Publishing the changelog for your overlay on <uri link="http://overlays.gentoo.org/">the o.g.o homepage</uri>, so that everyone who's interested can see what's going on</li>
56     </ul>
57    
58     <p>... all hosted on secure, backed-up Gentoo infrastructure, administered by
59     <uri link="/proj/en/infrastructure">the Gentoo Infrastructure team</uri> (hardware / base OS) and <uri link="/proj/en/overlays">the Gentoo Overlays team</uri>
60     (wiki / VCS / ACLs).</p>
61    
62     <p>Each overlay has separate authentication lists for Trac and for Subversion.
63     It's no problem at all to give someone write access to just Trac (e.g. for
64     writing documentation) without giving them write access to Subversion.</p>
65     </body>
66     </section>
67    
68     <section>
69     <title>Why Should We Use overlays.gentoo.org?</title>
70     <body>
71     <p>You don't have to. You don't have to have an overlay at all, and if you do
72     have one, you are absolutely free to host your own overlay somewhere else.
73     You don't have to host an overlay on o.g.o for it to be considered
74     "official".</p>
75    
76     <p>The advantage of using overlays.gentoo.org is that we already have everything
77     setup for you. You don't need to admin your own server, or worry about
78     software upgrades. We take care of all of that for you.</p>
79     </body>
80     </section>
81    
82     <section>
83     <title>When Should We Not Use overlays.gentoo.org?</title>
84     <body>
85     <p>The purpose of o.g.o is to help bridge the gap between developers and users.
86     Gentoo is a community-based distribution, and we believe that our users are
87     just as important a part of that community as developers are.</p>
88    
89     <p>All of the overlays hosted on o.g.o are there for all users to download and
90     use. It's for users to make their own decision about what software they
91     install on their computers - and that includes choosing to use your overlay.
92     Some users will make bad decisions, and end up breaking their computer. They
93     may even end up blaming Gentoo as a result. That's okay; these people
94     probably go around blaming everyone but themselves for their own
95     mistakes anyway, and there's probably nothing you can do to change that.
96     But that still doesn't give any of us the right to choose for them.</p>
97    
98     <p>Users are free (in fact, they are encouraged) to provide constructive
99     feedback about anything to do with Gentoo - including all of the overlays
100     hosted on o.g.o. That feedback can come via bugs.g.o, via email to your
101     project team or directly to you, via the forums, or via IRC. We're not
102     talking about genuinely abusive users; we have no time for those, and no-one
103     expects you to have any time for them either.</p>
104    
105     <warn>If you're not happy with users using your overlay, and / or if you don't want
106     users bothering you about your overlay, then don't use o.g.o to host your
107     overlay.</warn>
108    
109     <p>The other thing we need to say is that o.g.o is for hosting overlays. You
110     can't use it to be $UPSTREAM for your packages. If that's the kind of hosting
111     you need, you can use services such as <uri link="http://www.sourceforge.net/">SourceForge.net</uri>, <uri link="http://www.berlios.de">Berlios</uri>, or
112     Patrick's <uri link="http://www.gentooexperimental.org">GentooExperimental.org</uri>.</p>
113     </body>
114     </section>
115     </chapter>
116    
117     <chapter>
118     <title>Requesting An Overlay</title>
119    
120     <section>
121     <title>Introduction</title>
122     <body>
123     <p>There are two types of overlay - "project" overlays, and "developer"
124     overlays. The only difference between them is responsibility and
125     accountability.</p>
126    
127     <impo>Before requesting an overlay, please make sure that you have read our <uri link="/proj/en/overlays/policy.xml">Policy Document</uri>. It clearly sets out what's allowed and what is not, and what your responsibilities will be.</impo>
128     </body>
129     </section>
130    
131     <section>
132     <title>Project Overlays</title>
133     <body>
134     <p>"Project" overlays are overlays for official Gentoo projects. A good
135     example is <uri link="http://overlays.gentoo.org/proj/php">the PHP Overlay</uri>.</p>
136    
137     <p>An official Gentoo project is a project that has a project page on
138     www.gentoo.org, and that has an elected lead. (This definition comes from <uri link="http://www.gentoo.org/proj/en/glep/glep-0039.html">the
139     metastructure document</uri>, which is Gentoo's governing document). The project
140     lead(s) are responsible for the project overlay, including its contents, and
141     any problems it causes other Gentoo projects and developers.</p>
142    
143     <p>To request a project overlay, the project's lead just needs to pop into
144     #gentoo-overlays on IRC and ask for an overlay to be created. Or, if he/she
145     prefers, drop an email to overlays@gentoo.org. We'll take care of the rest,
146     including granting write access to all the members of your project (as listed
147     on your project page).</p>
148    
149     <p>We will:</p>
150     <ul>
151     <li>create your overlay (trac site + svn)</li>
152     <li>add your overlay's RSS feed to the o.g.o homepage</li>
153     <li>create an o.g.o account for you if you don't already have one</li>
154     <li>give you write access to your overlay's Trac wiki and Subversion
155     repository</li>
156     <li>give write access to all project members who already have an o.g.o
157     account</li>
158     <li>contact all of the other project members, and sort out their access</li>
159     </ul>
160     </body>
161     </section>
162    
163     <section>
164     <title>Developer Overlays</title>
165     <body>
166    
167     <p>"Developer" overlays are overlays owned by individual Gentoo developers. One
168     example is <uri link="http://overlays.gentoo.org/dev/tcort">tcort's overlay</uri>.</p>
169    
170     <p>If you have an @gentoo.org email address, and you've passed the ebuild quiz,
171     then you can have your own developer overlay on o.g.o.</p>
172    
173     <p>To request a developer overlay, just pop into #gentoo-overlays on IRC and ask
174     for an overlay to be created for you. Or, if you prefer, drop an email to
175     overlays@gentoo.org.</p>
176    
177     <p>We will:</p>
178     <ul>
179     <li>create your overlay (trac site + svn)</li>
180     <li>add your overlay's RSS feed to the o.g.o homepage</li>
181     <li>create an o.g.o account for you if you don't have one already</li>
182     <li>give you write access to your overlay's Trac wiki and Subversion
183     repository</li>
184     </ul>
185     </body>
186     </section>
187    
188     <section>
189     <title>A Word About Accounts</title>
190     <body>
191     <p>Because o.g.o is designed to support a blend of both Gentoo developers and
192     Gentoo users, we don't create 'real' system-level accounts on the o.g.o host.
193     All access is currently through Apache, and is managed by Apache htpasswd and
194     htgroup files.</p>
195    
196     <impo>You do *not* have SSH access to o.g.o.</impo>
197     </body>
198     </section>
199     </chapter>
200    
201     <chapter>
202     <title>Working With Your Overlay</title>
203    
204     <section>
205     <title>Introduction</title>
206     <body>
207     <p>You can access your overlay as soon as it has been created. Project and
208     developer overlays have different URLs, so that everyone can tell one from the
209     other, but otherwise they are identical in every way.</p>
210    
211     <p>There are *no* read restrictions on overlays or wikis. Everyone has full
212     read access to all overlays and wikis. If you need a 'secret' overlay of some
213     kind, then o.g.o is not for you.</p>
214     </body>
215     </section>
216    
217     <section>
218     <title>Accessing Project Overlays</title>
219     <body>
220     <p>If your project overlay is called 'foo', your Trac wiki site will be
221     here: http://overlays.gentoo.org/proj/foo/</p>
222    
223     <p>To checkout your Subversion repository, use:</p>
224     <pre caption="Checkout your project overlay">svn co http://overlays.gentoo.org/svn/proj/foo/</pre>
225    
226     <p>We maintain <uri link="http://overlays.gentoo.org/proj/">a full list of project overlays hosted on overlays.gentoo.org</uri>.</p>
227     </body>
228     </section>
229    
230     <section>
231     <title>Accessing Developer Overlays</title>
232     <body>
233     <p>If your Gentoo email address is 'foo@gentoo.org', your Trac wiki site will be
234     here: http://overlays.gentoo.org/dev/foo/</p>
235    
236     <p>To checkout your Subversion repository, use:</p>
237     <pre caption="Checkout your developer overlay">>svn co http://overlays.gentoo.org/svn/dev/foo/</pre>
238    
239     <p>We maintain <uri link="http://overlays.gentoo.org/dev/">a full list of developer overlays hosted on overlays.gentoo.org</uri>.</p>
240     </body>
241     </section>
242    
243     <section>
244     <title>Getting Started With Trac</title>
245     <body>
246     <p>Your overlay comes with <uri link="http://trac.edgewall.com">Trac</uri>. Trac is a wiki, a subversion repository browser, and a bug tracking system that's
247     very popular with open source developers.</p>
248    
249     <p>We have disabled the bug tracking system in Trac. Use <uri link="http://bugs.gentoo.org">Gentoo's bugzilla</uri> for bug tracking your overlay.</p>
250    
251     <p>Your overlay's RSS feed - the one that is shown on <uri link="http://overlays.gentoo.org">the o.g.o homepage</uri> - comes from Trac's Timeline page.</p>
252    
253     <p>We have installed several Trac plugins, which we hope will make your wiki even
254     more useful to you. If you come across any additional plugins that you'd like
255     to see installed, please let us know, and we'll take a look at them.</p>
256    
257 stuart 1.2 <ul>
258     <li><e>LayOnTrac</e> - lists the packages from the overlay.</li>
259     <li><uri link="http://muness.textdriven.com/trac/wiki/tags/Setup">TracTags</uri> - displays a tag cloud</li>
260     <li><uri link="http://trac.edgewall.org/wiki/WebAdmin">TracWebAdmin</uri> - provides web-based admin panel for Trac</li>
261     </ul>
262    
263     <p>We have installed several Trac macros, which we hope will make your wiki even more useful to you. If you come across any additional macros that you'd like to see installed, please let us know, and we'll take a look at them.</p>
264    
265     <ul>
266     <li><uri link="http://trac-hacks.org/wiki/AddCommentMacro">AddComment</uri> - allows visitors to add comments to the bottom of your pages</li>
267     <li><uri link="http://trac-hacks.org/wiki/FootNoteMacro">FootNote</uri> - adds support for adding footnotes to a page</li>
268     <li><uri link="http://trac-hacks.org/wiki/TocMacro">TOC</uri> - adds support for publishing a Table of Contents on a page</li>
269     </ul>
270    
271 stuart 1.1 </body>
272     </section>
273    
274     <section>
275     <title>Getting Started With Subversion</title>
276     <body>
277     <p>Your overlay comes with <uri link="http://subversion.tigris.org">Subversion</uri>, a modern alternative to CVS. The advantages of Subversion over CVS include real versioning of directories, full changeset support, and it's much easier to do branching if you need to. The main disadvantage of Subversion is that it is slower than CVS, and that a local Subversion checkout requires more disk space.</p>
278    
279 stuart 1.3 <p>If you have never used Subversion before, the <uri link="http://svnbook.red-bean.com/">online book</uri> is an excellent way to learn Subversion. You can buy it in dead-tree format too if you prefer.</p>
280 stuart 1.1
281 stuart 1.2 <p>Here are some basic commands to get you started.</p>
282     <pre caption="Checking out your overlay">svn co http://overlays.gentoo.org/proj/php</pre>
283     <pre caption="Seeing which files need committing">svn status</pre>
284     <pre caption="Adding files to your overlay">svn add my.ebuild</pre>
285     <pre caption="Committing your changes">svn commit -m 'My changelog entry'</pre>
286 stuart 1.1
287     </body>
288     </section>
289    
290     <section>
291     <title>Layman</title>
292     <body>
293     <p>We are telling users to use layman to download and manage your overlay.
294     layman is a utility written by <mail link="wrobel@gentoo.org">Gunnar Wrobel</mail> which makes it very easy for users to work with overlays.</p>
295    
296     <p>To get started with using layman, see <uri link="http://www.gentoo.org/news/en/gwn/20060522-newsletter.xml">Gentoo Weekly News for 22nd May</uri>, <uri link="http://gentoo-wiki.com/TIP_Overlays#layman">this article on Gentoo-Wiki.com</uri>, or the man page that comes with layman.</p>
297     </body>
298     </section>
299    
300     <section>
301     <title>Auto-Sync From Portage</title>
302     <body>
303     <p>Your packages in the Portage tree are always at risk of being changed without
304     you knowing about it in advance. Arch teams need to be able to keyword
305     packages (and fix arch-specific brokenness), the QA team fix perceived
306     standards violations, and occaisionally developers will edit packages that
307     they shouldn't.</p>
308    
309     <p>You need to make sure that the changes made in Portage aren't lost the next
310     time you copy your packages from your overlay back into Portage.</p>
311    
312     <p>The PHP team have solved this problem by automatically copying their packages
313     from Portage back into a 'portage' branch of their overlay every night. They
314     can then use Subversion (or Trac's timeline) to see what has changed every
315 stuart 1.2 day. If you'd like to have this feature added to your overlay, contact CHTEKK.</p>
316 stuart 1.1
317     </body>
318     </section>
319     </chapter>
320    
321     <chapter>
322     <title>Giving Access To Your Overlay To Others</title>
323    
324     <section>
325     <title>Introduction</title>
326     <body>
327     <p>One of the key features of o.g.o is that people who do not have write access
328     to the Gentoo Portage package tree can have write access to one or more
329     overlays. Several Gentoo projects have found that this is a great way to train
330     and evaluate potential Gentoo developers in a safe environment.</p>
331    
332     <p>At the moment, only the Overlays team can update the access control lists for
333     overlays.gentoo.org. We will provide a web-based tool for managing the access
334     control lists at a later date. But, for now, if you need a change made,
335     please drop by #gentoo-overlays on IRC for assistance.</p>
336     </body>
337     </section>
338    
339     <section>
340     <title>Project Overlays: Giving Write Access To Team Members</title>
341     <body>
342     <p>Any developer listed on a team's project page on www.g.o can have write
343     access to the team's overlay. The project lead can ask on their behalf, or
344     the developer can come and ask for access themselves.</p>
345    
346     <p>If the developer doesn't have an o.g.o account yet, he/she will need to drop
347     by #gentoo-overlays so that we can create an account for them.</p>
348     </body>
349     </section>
350    
351     <section>
352     <title>Project Overlays: Giving Write Access To Other Gentoo
353     Developers</title>
354     <body>
355    
356     <p>Any Gentoo developer *not* listed on a team's project page on www.g.o can
357     have write access to the team's overlay. The request for write access must
358     come from a member of the team. It doesn't have to come from the project
359     lead.</p>
360    
361     <p>If the developer doesn't have an o.g.o account yet, he/she will need to drop
362     by #gentoo-overlays so that we can create an account for them.</p>
363     </body>
364     </section>
365    
366     <section>
367     <title>Project Overlays: Giving Write Access To Gentoo Users</title>
368     <body>
369     <p>Any Gentoo user can have write access to the team's overlay. The request for
370     write access must come from one of the project's leads. You can request that
371     we give the user write access to Trac, to Subversion, or to both. (We will
372     assume that the request is for write access to both, unless you say
373     otherwise).</p>
374    
375     <p>We cannot accept these requests from anyone other than a project lead. If
376     your project only has the one lead, we recommend electing a second lead. If
377     your one and only lead is AWOL, consider electing a replacement :)</p>
378    
379     <p>If the user doesn't have an o.g.o account yet, he/she will need to drop by
380     #gentoo-overlays so that we can create an account for them.</p>
381     </body>
382     </section>
383    
384     <section>
385     <title>Developer Overlays: Giving Write Access To Gentoo Developers</title>
386     <body>
387     <p>Any Gentoo developer can have write access to your developer overlay. The
388     developer can ask us directly; we will not give access until we've checked
389     with you. You can also ask us to give write access to any named
390     developer.</p>
391    
392     <p>If the developer doesn't have an o.g.o account yet, he/she will need to drop
393     by #gentoo-overlays so that we can create an account for them.</p>
394     </body>
395     </section>
396    
397     <section>
398     <title>Developer Overlays: Giving Write Access To Gentoo Users</title>
399     <body>
400     <p>Any Gentoo user can have write access to your developer's overlay. The
401     request for write access must come from you. You can request that we give
402     the user write access just to Trac, just to Subversion, or to both. (We will
403     assume that the request is for write access to both unless you say
404     otherwise).</p>
405    
406     <p>We cannot accept these requests from anyone else other than you. If you find
407     yourself giving access to a lot of other people, it might be that you should
408     consider setting up a new project, and transfering your work there
409     instead.</p>
410    
411     <p>If the user doesn't have an o.g.o account yet, he/she will need to drop by
412     #gentoo-overlays so that we can create an account for them.</p>
413     </body>
414     </section>
415     </chapter>
416    
417     <chapter>
418     <title>Accessing Someone Else's Overlay</title>
419    
420     <section>
421     <title>Using An Overlay</title>
422     <body>
423     <p>Everyone has full read access to every overlay. We recommend that you
424     use</p>
425     <pre caption="Install layman">
426     emerge layman
427     echo 'source /usr/portage/local/layman/layman.conf' &gt;&gt; /etc/make.conf
428     </pre>
429    
430     <p>After that, to view the list of overlays, use</p>
431    
432     <pre caption="List overlays that layman knows about">layman -L</pre>
433    
434     <p>To install an overlay, use</p>
435     <pre caption="Install an overlay">layman -a &lt;overlay-name&gt;</pre>
436    
437     <p>You can now install packages from the overlay.</p>
438     </body>
439     </section>
440    
441     <section>
442     <title>Requesting Write Access</title>
443     <body>
444     <p>If you want write access to a project overlay, contact a member of the
445     project team, and ask them for access. If they approve your request, they
446     will arrange for you to have write access, by contacting the Overlays
447     team.</p>
448    
449     <p>If you want write access to a developer's overlay, contact the developer
450     directly, and ask them for access. If they approve your request, they will
451     arrange for you to have write access, by contacting the Overlays team.</p>
452     </body>
453     </section>
454     </chapter>
455    
456     <chapter>
457     <title>Frequently Asked Questions</title>
458    
459     <section>
460     <title>o.g.o Administration</title>
461     <body>
462    
463     <p>Q: How do I contact the o.g.o admin staff?</p>
464     <ul>
465     <li>A: You can pop into #gentoo-overlays on IRC, and talk to us there. The
466     current staff are mostly in European timezones.</li>
467     <li>A: You can send an email to overlays@gentoo.org. Someone will answer you as
468     soon as possible.</li>
469     <li>A: You can contact Stuart Herbert (the project leader) directly, via his
470     email address: stuart@gentoo.org.</li>
471     </ul>
472    
473     <p>Q: Why can't I edit the access control list directly?</p>
474     <ul>
475     <li>A: The access control list currently lives in htpasswd / htgroup files used
476     by Apache. Only o.g.o admin staff have ssh access into the o.g.o box.</li>
477     </ul>
478     </body>
479     </section>
480    
481     <section>
482     <title>Security</title>
483     <body>
484     <p>Q: Is my overlay available via https?</p>
485     <ul>
486     <li>A: No, it currently is not. We have asked infra to set this up, and are
487     waiting for them to do so.</li>
488     </ul>
489     </body>
490     </section>
491    
492     <section>
493     <title>Multiple Overlays</title>
494     <body>
495    
496     <p>Q: Can I have multiple overlays?</p>
497     <ul>
498     <li>A: Yes, in a fashion. Inside your overlay, you can create
499     sub-directories, and put separate package trees inside those sub-directories.
500     Please take a look at the PHP project overlay for an example.</li>
501     </ul>
502     </body>
503     </section>
504    
505     <section>
506     <title>Importing Existing Overlays</title>
507     <body>
508     <p>Q: I already have an overlay, and I'd like to move it to o.g.o. How do I
509     go about doing that?</p>
510     <ul>
511     <li>A: Create a tarball of your subversion repository, and put it somewhere
512     where it can be downloaded via http. We'll download it and install it onto
513     o.g.o for you.</li>
514     </ul>
515     <note>Make sure you tar up your repository, and not a checkout!</note>
516    
517     <p>Q: I have an overlay, but it doesn't use Subversion. How do I go about
518     moving it to o.g.o?</p>
519     <ul>
520     <li>A: Ask us to create a new, empty overlay for you. You can then use 'svn
521     import' to import your files into the new overlay. You'll lose your history,
522     but that can't be helped.</li>
523     <li>A: Search the Internet, and see if there is a tool to convert from your
524     existing version control software to Subversion. If there is, use that, and
525     then we can help you move it to o.g.o.</li>
526     <li>A: If your version control software is used by Trac, and it can be used
527     over HTTP, come and help us add
528     support for your version control software on o.g.o.</li>
529     </ul>
530     </body>
531     </section>
532    
533     <section>
534     <title>"Official" Overlays</title>
535     <body>
536     <p>Q: When is an overlay considered "official"?</p>
537     <ul>
538     <li>A: An "official" overlay is an overlay managed by a Gentoo project (for
539     project overlays) or a Gentoo developer (for developer overlays).</li>
540     </ul>
541    
542     <p>Q: Does an overlay have to be on o.g.o to be "official"?</p>
543     <ul>
544     <li>A: No.</li>
545     </ul>
546     </body>
547     </section>
548     </chapter>
549     </guide>

  ViewVC Help
Powered by ViewVC 1.1.20