/[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.3 - (show annotations) (download) (as text)
Tue Oct 10 20:25:14 2006 UTC (8 years, 2 months ago) by g2boojum
Branch: MAIN
Changes since 1.2: +278 -35 lines
File MIME type: text/html
regenerate all .html files

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 <meta name="generator" content="Docutils 0.4: http://docutils.sourceforge.net/" />
12 <title>GLEP 20 -- /srv - Services Home Directory Support</title>
13 <style type="text/css">
14
15 /*
16 :Author: David Goodger
17 :Contact: goodger@users.sourceforge.net
18 :date: $Date: 2003/06/02 17:03:08 $
19 :version: $Revision: 1.1 $
20 :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 </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 [<b><a href="http://www.gentoo.org/peps">GLEP Index</a></b>]
268 [<b><a href="http://www.gentoo.org/proj/en/glep/glep-0020.txt">GLEP Source</a></b>]
269 </td></tr></table>
270 <table class="rfc2822 docutils field-list" frame="void" rules="none">
271 <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 <tr class="field"><th class="field-name">Version:</th><td class="field-body">1.2</td>
279 </tr>
280 <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 </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 <tr class="field"><th class="field-name">Status:</th><td class="field-body">Approved</td>
285 </tr>
286 <tr class="field"><th class="field-name">Type:</th><td class="field-body">Standards Track</td>
287 </tr>
288 <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 </tr>
290 <tr class="field"><th class="field-name">Created:</th><td class="field-body">09-Feb-2004</td>
291 </tr>
292 <tr class="field"><th class="field-name">Post-History:</th><td class="field-body">21-Feb-2004, 11-Nov-2004</td>
293 </tr>
294 </tbody>
295 </table>
296 <hr />
297 <div class="contents topic">
298 <p class="topic-title first"><a id="contents" name="contents">Contents</a></p>
299 <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 <div class="section">
312 <h1><a class="toc-backref" href="#id2" id="thanks-to" name="thanks-to">Thanks To</a></h1>
313 <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 <div class="section">
317 <h1><a class="toc-backref" href="#id3" id="abstract" name="abstract">Abstract</a></h1>
318 <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 <div class="section">
327 <h1><a class="toc-backref" href="#id4" id="motivation" name="motivation">Motivation</a></h1>
328 <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 <div class="section">
335 <h1><a class="toc-backref" href="#id5" id="specification" name="specification">Specification</a></h1>
336 <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 <dl class="docutils">
348 <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 <p>Ebuilds that install anything into /srv will install into /srv/localhost.
354 /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 <div class="section">
358 <h1><a class="toc-backref" href="#id6" id="examples" name="examples">Examples</a></h1>
359 <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 <div class="section">
375 <h1><a class="toc-backref" href="#id7" id="rationale" name="rationale">Rationale</a></h1>
376 <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 <li><p class="first">Users who wish to store service-orientated files onto a single logical
408 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 <div class="section">
416 <h1><a class="toc-backref" href="#id8" id="implementation" name="implementation">Implementation</a></h1>
417 <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 that it should be left to the local Gentoo system administrator to manually
426 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 <div class="section">
432 <h1><a class="toc-backref" href="#id9" id="backwards-compatibility" name="backwards-compatibility">Backwards Compatibility</a></h1>
433 <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 <div class="section">
438 <h1><a class="toc-backref" href="#id10" id="copyright" name="copyright">Copyright</a></h1>
439 <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
443 </div>
444 <div class="footer">
445 <hr class="footer" />
446 <a class="reference" href="glep-0020.txt">View document source</a>.
447 Generated on: 2006-10-10 20:23 UTC.
448 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
450 </div>
451 </body>
452 </html>

  ViewVC Help
Powered by ViewVC 1.1.20