/[gentoo]/xml/htdocs/proj/en/glep/glep-0020.html
Gentoo

Contents of /xml/htdocs/proj/en/glep/glep-0020.html

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.4 - (hide annotations) (download) (as text)
Thu Jan 25 03:25:53 2007 UTC (7 years, 6 months ago) by antarus
Branch: MAIN
Changes since 1.3: +3 -3 lines
File MIME type: text/html
Fix headers in all current gleps

1 g2boojum 1.1 <?xml version="1.0" encoding="utf-8" ?>
2     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3     <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4     <!--
5     This HTML is auto-generated. DO NOT EDIT THIS FILE! If you are writing a new
6     PEP, see http://www.python.org/peps/pep-0001.html for instructions and links
7     to templates. DO NOT USE THIS HTML FILE AS YOUR TEMPLATE!
8     -->
9     <head>
10     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
11 g2boojum 1.3 <meta name="generator" content="Docutils 0.4: http://docutils.sourceforge.net/" />
12 g2boojum 1.1 <title>GLEP 20 -- /srv - Services Home Directory Support</title>
13 g2boojum 1.3 <style type="text/css">
14    
15     /*
16     :Author: David Goodger
17     :Contact: goodger@users.sourceforge.net
18 antarus 1.4 :date: $Date: 2006/10/10 20:25:14 $
19     :version: $Revision: 1.3 $
20 g2boojum 1.3 :copyright: This stylesheet has been placed in the public domain.
21    
22     Default cascading style sheet for the PEP HTML output of Docutils.
23     */
24    
25     .first {
26     margin-top: 0 }
27    
28     .last {
29     margin-bottom: 0 }
30    
31     .navigation {
32     width: 100% ;
33     background: #cc99ff ;
34     margin-top: 0px ;
35     margin-bottom: 0px }
36    
37     .navigation .navicon {
38     width: 150px ;
39     height: 35px }
40    
41     .navigation .textlinks {
42     padding-left: 1em ;
43     text-align: left }
44    
45     .navigation td, .navigation th {
46     padding-left: 0em ;
47     padding-right: 0em ;
48     vertical-align: middle }
49    
50     .rfc2822 {
51     margin-top: 0.5em ;
52     margin-left: 0.5em ;
53     margin-right: 0.5em ;
54     margin-bottom: 0em }
55    
56     .rfc2822 td {
57     text-align: left }
58    
59     .rfc2822 th.field-name {
60     text-align: right ;
61     font-family: sans-serif ;
62     padding-right: 0.5em ;
63     font-weight: bold ;
64     margin-bottom: 0em }
65    
66     a.toc-backref {
67     text-decoration: none ;
68     color: black }
69    
70     body {
71     margin: 0px ;
72     margin-bottom: 1em ;
73     padding: 0px }
74    
75     dd {
76     margin-bottom: 0.5em }
77    
78     div.section {
79     margin-left: 1em ;
80     margin-right: 1em ;
81     margin-bottom: 1.5em }
82    
83     div.section div.section {
84     margin-left: 0em ;
85     margin-right: 0em ;
86     margin-top: 1.5em }
87    
88     div.abstract {
89     margin: 2em 5em }
90    
91     div.abstract p.topic-title {
92     font-weight: bold ;
93     text-align: center }
94    
95     div.attention, div.caution, div.danger, div.error, div.hint,
96     div.important, div.note, div.tip, div.warning {
97     margin: 2em ;
98     border: medium outset ;
99     padding: 1em }
100    
101     div.attention p.admonition-title, div.caution p.admonition-title,
102     div.danger p.admonition-title, div.error p.admonition-title,
103     div.warning p.admonition-title {
104     color: red ;
105     font-weight: bold ;
106     font-family: sans-serif }
107    
108     div.hint p.admonition-title, div.important p.admonition-title,
109     div.note p.admonition-title, div.tip p.admonition-title {
110     font-weight: bold ;
111     font-family: sans-serif }
112    
113     div.figure {
114     margin-left: 2em }
115    
116     div.footer, div.header {
117     font-size: smaller }
118    
119     div.footer {
120     margin-left: 1em ;
121     margin-right: 1em }
122    
123     div.system-messages {
124     margin: 5em }
125    
126     div.system-messages h1 {
127     color: red }
128    
129     div.system-message {
130     border: medium outset ;
131     padding: 1em }
132    
133     div.system-message p.system-message-title {
134     color: red ;
135     font-weight: bold }
136    
137     div.topic {
138     margin: 2em }
139    
140     h1 {
141     font-family: sans-serif ;
142     font-size: large }
143    
144     h2 {
145     font-family: sans-serif ;
146     font-size: medium }
147    
148     h3 {
149     font-family: sans-serif ;
150     font-size: small }
151    
152     h4 {
153     font-family: sans-serif ;
154     font-style: italic ;
155     font-size: small }
156    
157     h5 {
158     font-family: sans-serif;
159     font-size: x-small }
160    
161     h6 {
162     font-family: sans-serif;
163     font-style: italic ;
164     font-size: x-small }
165    
166     .section hr {
167     width: 75% }
168    
169     ol.simple, ul.simple {
170     margin-bottom: 1em }
171    
172     ol.arabic {
173     list-style: decimal }
174    
175     ol.loweralpha {
176     list-style: lower-alpha }
177    
178     ol.upperalpha {
179     list-style: upper-alpha }
180    
181     ol.lowerroman {
182     list-style: lower-roman }
183    
184     ol.upperroman {
185     list-style: upper-roman }
186    
187     p.caption {
188     font-style: italic }
189    
190     p.credits {
191     font-style: italic ;
192     font-size: smaller }
193    
194     p.label {
195     white-space: nowrap }
196    
197     p.topic-title {
198     font-family: sans-serif ;
199     font-weight: bold }
200    
201     pre.line-block {
202     font-family: serif ;
203     font-size: 100% }
204    
205     pre.literal-block, pre.doctest-block {
206     margin-left: 2em ;
207     margin-right: 2em ;
208     background-color: #eeeeee }
209    
210     span.classifier {
211     font-family: sans-serif ;
212     font-style: oblique }
213    
214     span.classifier-delimiter {
215     font-family: sans-serif ;
216     font-weight: bold }
217    
218     span.interpreted {
219     font-family: sans-serif }
220    
221     span.option-argument {
222     font-style: italic }
223    
224     span.pre {
225     white-space: pre }
226    
227     span.problematic {
228     color: red }
229    
230     table {
231     margin-top: 0.5em ;
232     margin-bottom: 0.5em }
233    
234     td, th {
235     padding-left: 0.5em ;
236     padding-right: 0.5em ;
237     vertical-align: top }
238    
239     td.num {
240     text-align: right }
241    
242     th.field-name {
243     font-weight: bold ;
244     text-align: left ;
245     white-space: nowrap }
246    
247     h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt {
248     font-size: 100% }
249    
250     tt {
251     background-color: #eeeeee }
252    
253     ul.auto-toc {
254     list-style-type: none }
255    
256     </style>
257 g2boojum 1.1 </head>
258     <body bgcolor="white">
259     <table class="navigation" cellpadding="0" cellspacing="0"
260     width="100%" border="0">
261     <tr><td class="navicon" width="150" height="35">
262     <a href="http://www.gentoo.org/" title="Gentoo Linux Home Page">
263     <img src="http://www.gentoo.org/images/gentoo-new.gif" alt="[Gentoo]"
264     border="0" width="150" height="35" /></a></td>
265     <td class="textlinks" align="left">
266     [<b><a href="http://www.gentoo.org/">Gentoo Linux Home</a></b>]
267 antarus 1.4 [<b><a href="http://www.gentoo.org/proj/en/glep/">GLEP Index</a></b>]
268 g2boojum 1.3 [<b><a href="http://www.gentoo.org/proj/en/glep/glep-0020.txt">GLEP Source</a></b>]
269 g2boojum 1.1 </td></tr></table>
270 g2boojum 1.3 <table class="rfc2822 docutils field-list" frame="void" rules="none">
271 g2boojum 1.1 <col class="field-name" />
272     <col class="field-body" />
273     <tbody valign="top">
274     <tr class="field"><th class="field-name">GLEP:</th><td class="field-body">20</td>
275     </tr>
276     <tr class="field"><th class="field-name">Title:</th><td class="field-body">/srv - Services Home Directory Support</td>
277     </tr>
278 g2boojum 1.2 <tr class="field"><th class="field-name">Version:</th><td class="field-body">1.2</td>
279 g2boojum 1.1 </tr>
280 g2boojum 1.3 <tr class="field"><th class="field-name">Last-Modified:</th><td class="field-body"><a class="reference" href="http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/proj/en/glep/glep-0020.txt?cvsroot=gentoo">2004/11/11 21:35:53</a></td>
281 g2boojum 1.1 </tr>
282     <tr class="field"><th class="field-name">Author:</th><td class="field-body">Stuart Herbert &lt;stuart&#32;&#97;t&#32;gentoo.org&gt;, Rob Holland &lt;tigger&#32;&#97;t&#32;gentoo.org&gt;</td>
283     </tr>
284 g2boojum 1.2 <tr class="field"><th class="field-name">Status:</th><td class="field-body">Approved</td>
285 g2boojum 1.1 </tr>
286     <tr class="field"><th class="field-name">Type:</th><td class="field-body">Standards Track</td>
287     </tr>
288 g2boojum 1.3 <tr class="field"><th class="field-name">Content-Type:</th><td class="field-body"><a class="reference" href="glep-0002.html">text/x-rst</a></td>
289 g2boojum 1.1 </tr>
290     <tr class="field"><th class="field-name">Created:</th><td class="field-body">09-Feb-2004</td>
291     </tr>
292 g2boojum 1.2 <tr class="field"><th class="field-name">Post-History:</th><td class="field-body">21-Feb-2004, 11-Nov-2004</td>
293 g2boojum 1.1 </tr>
294     </tbody>
295     </table>
296     <hr />
297 g2boojum 1.3 <div class="contents topic">
298     <p class="topic-title first"><a id="contents" name="contents">Contents</a></p>
299 g2boojum 1.1 <ul class="simple">
300     <li><a class="reference" href="#thanks-to" id="id2" name="id2">Thanks To</a></li>
301     <li><a class="reference" href="#abstract" id="id3" name="id3">Abstract</a></li>
302     <li><a class="reference" href="#motivation" id="id4" name="id4">Motivation</a></li>
303     <li><a class="reference" href="#specification" id="id5" name="id5">Specification</a></li>
304     <li><a class="reference" href="#examples" id="id6" name="id6">Examples</a></li>
305     <li><a class="reference" href="#rationale" id="id7" name="id7">Rationale</a></li>
306     <li><a class="reference" href="#implementation" id="id8" name="id8">Implementation</a></li>
307     <li><a class="reference" href="#backwards-compatibility" id="id9" name="id9">Backwards Compatibility</a></li>
308     <li><a class="reference" href="#copyright" id="id10" name="id10">Copyright</a></li>
309     </ul>
310     </div>
311 g2boojum 1.3 <div class="section">
312     <h1><a class="toc-backref" href="#id2" id="thanks-to" name="thanks-to">Thanks To</a></h1>
313 g2boojum 1.1 <p>Thanks to Robin H. Johnson (<a class="reference" href="mailto:robbat2&#64;gentoo.org">robbat2&#64;gentoo.org</a>) for his assistance in writing
314     this GLEP.</p>
315     </div>
316 g2boojum 1.3 <div class="section">
317     <h1><a class="toc-backref" href="#id3" id="abstract" name="abstract">Abstract</a></h1>
318 g2boojum 1.1 <p>This GLEP proposes a new root-level directory - /srv - as an optional home
319     for the data (and sometimes the software too) for software that provides
320     services.</p>
321     <p>/srv will be supported via a USE flag. This gives users the choice
322     of using a dedicated service home hierarchy or not.</p>
323     <p>/srv is defined in FHS 2.3, which is part of the upcoming LSB v2.0 release
324     (<a class="reference" href="http://bugs.freestandards.org/cgi-bin/bugzilla/show_bug.cgi?id=16">http://bugs.freestandards.org/cgi-bin/bugzilla/show_bug.cgi?id=16</a>)</p>
325     </div>
326 g2boojum 1.3 <div class="section">
327     <h1><a class="toc-backref" href="#id4" id="motivation" name="motivation">Motivation</a></h1>
328 g2boojum 1.1 <p>Gentoo currently does not provide sufficiently flexible support for
329     sites which wish to consolidate the data for their service-orientated
330     software under one simple, easy to administer, location.</p>
331     <p>Adding optional support for the /srv directory structure will give
332     sites increased flexibility on how to layout their machines.</p>
333     </div>
334 g2boojum 1.3 <div class="section">
335     <h1><a class="toc-backref" href="#id5" id="specification" name="specification">Specification</a></h1>
336 g2boojum 1.1 <p>A new global USE flag - srvdir - will be added to Portage.</p>
337     <p>Ebuilds that choose to support the srvdir USE flag will configure the
338     package to install and use their data under the /srv directory.</p>
339     <p>Ebuilds that choose to support the srvdir USE flag - and which install
340     packages that need write access to the same directories that the
341     software is installed into - will configure the package to install
342     the software under the /srv directory.</p>
343     <p>All packages configured to support the srvdir USE flag will support
344     this breakdown of /srv:</p>
345     <blockquote>
346     /srv/&lt;fqdn&gt;/&lt;service&gt;/&lt;service-specific tree&gt;</blockquote>
347 g2boojum 1.3 <dl class="docutils">
348 g2boojum 1.1 <dt>where</dt>
349     <dd>&lt;fqdn&gt; is the fully-qualified domain name
350     &lt;service&gt; is the name of the service
351     &lt;service-specific tree&gt; is unique to the package</dd>
352     </dl>
353 g2boojum 1.3 <p>Ebuilds that install anything into /srv will install into /srv/localhost.
354 g2boojum 1.1 /srv/localhost - or any of the &lt;service&gt; directories underneath it - may be
355     symlinks created by the local administrator.</p>
356     </div>
357 g2boojum 1.3 <div class="section">
358     <h1><a class="toc-backref" href="#id6" id="examples" name="examples">Examples</a></h1>
359 g2boojum 1.1 <p>For example, backup packages which support the srvdir USE flag could
360     save backup data under the /srv/&lt;hostname&gt;/backups directory for each
361     host on the network that they perform backups for.</p>
362     <p>For example, web-based applications which support the srvdir USE flag
363     could install their software under the /srv/localhost/www/htdocs directory.
364     Ebuilds for web-based applications which also support the vhost USE flag
365     will allow the user to install software under other service domains
366     through the webapp-config package. See GLEP #11 and the vhost-config tool for
367     more information on how this works.</p>
368     <p>There are many other packages that could support the srvdir USE flag -
369     including Portage itself.</p>
370     <p>For packages that do not support the srvdir USE flag, there is currently no
371     recommended default location to use - although /var/localhost may prove a
372     useful alternative.</p>
373     </div>
374 g2boojum 1.3 <div class="section">
375     <h1><a class="toc-backref" href="#id7" id="rationale" name="rationale">Rationale</a></h1>
376 g2boojum 1.1 <p>Introducing optional support for the /srv directory will benefit a number of
377     groups of Gentoo users.</p>
378     <ul>
379     <li><p class="first">Users who wish to have /usr mounted read-only</p>
380     <p>/srv provides an optional alternative for packages that install writable
381     files into /usr.</p>
382     </li>
383     <li><p class="first">Users who wish to isoloate services from /home utilisation</p>
384     <p>Services stop working when real users fill /home. As many packages cannot
385     detect or robustly cope with this situation, services that write files
386     to disk normally end up corrupting those files.</p>
387     </li>
388     <li><p class="first">Users who do not wish to export /var or its sub-directories</p>
389     <p>Exporting /var - or its subdirectories - via NFS et al is something that
390     some system administrators simply do not wish to do. Providing these users
391     with the choice of installing into /srv fits with the published Gentoo
392     philosophy of allowing users as much choice as possible.</p>
393     </li>
394     <li><p class="first">Users who share resources via NFS, or who use Network-Attached Storage (NAS)</p>
395     <p>Allowing system administrators to choose to configure service-providing
396     software to use a single file hierarchy will greatly simply the management
397     and maintenance of NFS exports - and imports - in clustered environments.</p>
398     </li>
399     <li><p class="first">Service providers, who host more than one customer's services on a machine</p>
400     <p>Grouping all the storage (web, ftp, databases, IMAP, etc etc) under one
401     location greatly simplifies managing disk quotas on that host.</p>
402     <p>It is common practice for shared hosted systems to place web sites,
403     ftp sites and so on under a user's actual home directory. This practice
404     requires the user's home directory to be world-readable, which does not
405     promote strong security!</p>
406     </li>
407 g2boojum 1.3 <li><p class="first">Users who wish to store service-orientated files onto a single logical
408 g2boojum 1.1 volume to support future growth</p>
409     </li>
410     </ul>
411     <p>The Gentoo Philosophy clearly states that Gentoo Linux will be a
412     highly-configurable meta-distribution. Adding optional support for /srv is
413     very much in keeping with our Philosophy.</p>
414     </div>
415 g2boojum 1.3 <div class="section">
416     <h1><a class="toc-backref" href="#id8" id="implementation" name="implementation">Implementation</a></h1>
417 g2boojum 1.1 <p>A new USE flag - srvdir - will be added to Portage.</p>
418     <p>Ebuilds and eclasses will choose to support the srvdir USE flag or not on
419     an individual basis.</p>
420     <p>(Author's note: If this GLEP is approved, all web-based applications will
421     support the srvdir USE flag through the work being carried out under GLEP #11)</p>
422     <p>There has been some debate about whether the /srv directory should be provided
423     by the basesystem package or not. Because this support is optional, and
424     because different sites will have different storage requirements, we believe
425 g2boojum 1.3 that it should be left to the local Gentoo system administrator to manually
426 g2boojum 1.1 create the /srv directory.</p>
427     <p>If baselayout feels that it must install a /srv, then we propose that
428     baselayout installs /srv as a symlink to /var/srv. This approach will support
429     installations that mount the root filesystem read-only.</p>
430     </div>
431 g2boojum 1.3 <div class="section">
432     <h1><a class="toc-backref" href="#id9" id="backwards-compatibility" name="backwards-compatibility">Backwards Compatibility</a></h1>
433 g2boojum 1.1 <p>Users who choose not to use the new srvdir USE flag will see little to no
434     change. It is likely that some ebuilds will change their non-srvdir directory
435     layout to reduce the amount of effort required to support both options.</p>
436     </div>
437 g2boojum 1.3 <div class="section">
438     <h1><a class="toc-backref" href="#id10" id="copyright" name="copyright">Copyright</a></h1>
439 g2boojum 1.1 <p>This document is licensed under the Creative Commons - Attribution / Share
440     Alike license. (<a class="reference" href="http://creativecommons.org/licenses/by-sa/1.0">http://creativecommons.org/licenses/by-sa/1.0</a>)</p>
441     </div>
442 g2boojum 1.3
443 g2boojum 1.1 </div>
444 g2boojum 1.3 <div class="footer">
445 g2boojum 1.2 <hr class="footer" />
446 g2boojum 1.1 <a class="reference" href="glep-0020.txt">View document source</a>.
447 g2boojum 1.3 Generated on: 2006-10-10 20:23 UTC.
448 g2boojum 1.1 Generated by <a class="reference" href="http://docutils.sourceforge.net/">Docutils</a> from <a class="reference" href="http://docutils.sourceforge.net/rst.html">reStructuredText</a> source.
449 g2boojum 1.3
450 g2boojum 1.1 </div>
451     </body>
452     </html>

  ViewVC Help
Powered by ViewVC 1.1.20