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

Parent Directory Parent Directory | Revision Log Revision Log

Revision 1.5 - (hide annotations) (download) (as text)
Sun Oct 14 17:00:15 2007 UTC (11 years, 2 months ago) by antarus
Branch: MAIN
Changes since 1.4: +4 -251 lines
File MIME type: text/html
the canary on 53 went well, changing the rest

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 antarus 1.5
5 g2boojum 1.1 <head>
6     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
7 g2boojum 1.3 <meta name="generator" content="Docutils 0.4: http://docutils.sourceforge.net/" />
8 g2boojum 1.1 <title>GLEP 20 -- /srv - Services Home Directory Support</title>
9 antarus 1.5 <link rel="stylesheet" href="tools/glep.css" type="text/css" />
10 g2boojum 1.1 </head>
11     <body bgcolor="white">
12     <table class="navigation" cellpadding="0" cellspacing="0"
13     width="100%" border="0">
14     <tr><td class="navicon" width="150" height="35">
15     <a href="http://www.gentoo.org/" title="Gentoo Linux Home Page">
16     <img src="http://www.gentoo.org/images/gentoo-new.gif" alt="[Gentoo]"
17     border="0" width="150" height="35" /></a></td>
18     <td class="textlinks" align="left">
19     [<b><a href="http://www.gentoo.org/">Gentoo Linux Home</a></b>]
20 antarus 1.5 [<b><a href="http://www.gentoo.org/proj/en/glep">GLEP Index</a></b>]
21 g2boojum 1.3 [<b><a href="http://www.gentoo.org/proj/en/glep/glep-0020.txt">GLEP Source</a></b>]
22 g2boojum 1.1 </td></tr></table>
23 g2boojum 1.3 <table class="rfc2822 docutils field-list" frame="void" rules="none">
24 g2boojum 1.1 <col class="field-name" />
25     <col class="field-body" />
26     <tbody valign="top">
27     <tr class="field"><th class="field-name">GLEP:</th><td class="field-body">20</td>
28     </tr>
29     <tr class="field"><th class="field-name">Title:</th><td class="field-body">/srv - Services Home Directory Support</td>
30     </tr>
31 g2boojum 1.2 <tr class="field"><th class="field-name">Version:</th><td class="field-body">1.2</td>
32 g2boojum 1.1 </tr>
33 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>
34 g2boojum 1.1 </tr>
35     <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>
36     </tr>
37 g2boojum 1.2 <tr class="field"><th class="field-name">Status:</th><td class="field-body">Approved</td>
38 g2boojum 1.1 </tr>
39     <tr class="field"><th class="field-name">Type:</th><td class="field-body">Standards Track</td>
40     </tr>
41 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>
42 g2boojum 1.1 </tr>
43     <tr class="field"><th class="field-name">Created:</th><td class="field-body">09-Feb-2004</td>
44     </tr>
45 g2boojum 1.2 <tr class="field"><th class="field-name">Post-History:</th><td class="field-body">21-Feb-2004, 11-Nov-2004</td>
46 g2boojum 1.1 </tr>
47     </tbody>
48     </table>
49     <hr />
50 g2boojum 1.3 <div class="contents topic">
51     <p class="topic-title first"><a id="contents" name="contents">Contents</a></p>
52 g2boojum 1.1 <ul class="simple">
53     <li><a class="reference" href="#thanks-to" id="id2" name="id2">Thanks To</a></li>
54     <li><a class="reference" href="#abstract" id="id3" name="id3">Abstract</a></li>
55     <li><a class="reference" href="#motivation" id="id4" name="id4">Motivation</a></li>
56     <li><a class="reference" href="#specification" id="id5" name="id5">Specification</a></li>
57     <li><a class="reference" href="#examples" id="id6" name="id6">Examples</a></li>
58     <li><a class="reference" href="#rationale" id="id7" name="id7">Rationale</a></li>
59     <li><a class="reference" href="#implementation" id="id8" name="id8">Implementation</a></li>
60     <li><a class="reference" href="#backwards-compatibility" id="id9" name="id9">Backwards Compatibility</a></li>
61     <li><a class="reference" href="#copyright" id="id10" name="id10">Copyright</a></li>
62     </ul>
63     </div>
64 g2boojum 1.3 <div class="section">
65     <h1><a class="toc-backref" href="#id2" id="thanks-to" name="thanks-to">Thanks To</a></h1>
66 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
67     this GLEP.</p>
68     </div>
69 g2boojum 1.3 <div class="section">
70     <h1><a class="toc-backref" href="#id3" id="abstract" name="abstract">Abstract</a></h1>
71 g2boojum 1.1 <p>This GLEP proposes a new root-level directory - /srv - as an optional home
72     for the data (and sometimes the software too) for software that provides
73     services.</p>
74     <p>/srv will be supported via a USE flag. This gives users the choice
75     of using a dedicated service home hierarchy or not.</p>
76     <p>/srv is defined in FHS 2.3, which is part of the upcoming LSB v2.0 release
77     (<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>
78     </div>
79 g2boojum 1.3 <div class="section">
80     <h1><a class="toc-backref" href="#id4" id="motivation" name="motivation">Motivation</a></h1>
81 g2boojum 1.1 <p>Gentoo currently does not provide sufficiently flexible support for
82     sites which wish to consolidate the data for their service-orientated
83     software under one simple, easy to administer, location.</p>
84     <p>Adding optional support for the /srv directory structure will give
85     sites increased flexibility on how to layout their machines.</p>
86     </div>
87 g2boojum 1.3 <div class="section">
88     <h1><a class="toc-backref" href="#id5" id="specification" name="specification">Specification</a></h1>
89 g2boojum 1.1 <p>A new global USE flag - srvdir - will be added to Portage.</p>
90     <p>Ebuilds that choose to support the srvdir USE flag will configure the
91     package to install and use their data under the /srv directory.</p>
92     <p>Ebuilds that choose to support the srvdir USE flag - and which install
93     packages that need write access to the same directories that the
94     software is installed into - will configure the package to install
95     the software under the /srv directory.</p>
96     <p>All packages configured to support the srvdir USE flag will support
97     this breakdown of /srv:</p>
98     <blockquote>
99     /srv/&lt;fqdn&gt;/&lt;service&gt;/&lt;service-specific tree&gt;</blockquote>
100 g2boojum 1.3 <dl class="docutils">
101 g2boojum 1.1 <dt>where</dt>
102     <dd>&lt;fqdn&gt; is the fully-qualified domain name
103     &lt;service&gt; is the name of the service
104     &lt;service-specific tree&gt; is unique to the package</dd>
105     </dl>
106 g2boojum 1.3 <p>Ebuilds that install anything into /srv will install into /srv/localhost.
107 g2boojum 1.1 /srv/localhost - or any of the &lt;service&gt; directories underneath it - may be
108     symlinks created by the local administrator.</p>
109     </div>
110 g2boojum 1.3 <div class="section">
111     <h1><a class="toc-backref" href="#id6" id="examples" name="examples">Examples</a></h1>
112 g2boojum 1.1 <p>For example, backup packages which support the srvdir USE flag could
113     save backup data under the /srv/&lt;hostname&gt;/backups directory for each
114     host on the network that they perform backups for.</p>
115     <p>For example, web-based applications which support the srvdir USE flag
116     could install their software under the /srv/localhost/www/htdocs directory.
117     Ebuilds for web-based applications which also support the vhost USE flag
118     will allow the user to install software under other service domains
119     through the webapp-config package. See GLEP #11 and the vhost-config tool for
120     more information on how this works.</p>
121     <p>There are many other packages that could support the srvdir USE flag -
122     including Portage itself.</p>
123     <p>For packages that do not support the srvdir USE flag, there is currently no
124     recommended default location to use - although /var/localhost may prove a
125     useful alternative.</p>
126     </div>
127 g2boojum 1.3 <div class="section">
128     <h1><a class="toc-backref" href="#id7" id="rationale" name="rationale">Rationale</a></h1>
129 g2boojum 1.1 <p>Introducing optional support for the /srv directory will benefit a number of
130     groups of Gentoo users.</p>
131     <ul>
132     <li><p class="first">Users who wish to have /usr mounted read-only</p>
133     <p>/srv provides an optional alternative for packages that install writable
134     files into /usr.</p>
135     </li>
136     <li><p class="first">Users who wish to isoloate services from /home utilisation</p>
137     <p>Services stop working when real users fill /home. As many packages cannot
138     detect or robustly cope with this situation, services that write files
139     to disk normally end up corrupting those files.</p>
140     </li>
141     <li><p class="first">Users who do not wish to export /var or its sub-directories</p>
142     <p>Exporting /var - or its subdirectories - via NFS et al is something that
143     some system administrators simply do not wish to do. Providing these users
144     with the choice of installing into /srv fits with the published Gentoo
145     philosophy of allowing users as much choice as possible.</p>
146     </li>
147     <li><p class="first">Users who share resources via NFS, or who use Network-Attached Storage (NAS)</p>
148     <p>Allowing system administrators to choose to configure service-providing
149     software to use a single file hierarchy will greatly simply the management
150     and maintenance of NFS exports - and imports - in clustered environments.</p>
151     </li>
152     <li><p class="first">Service providers, who host more than one customer's services on a machine</p>
153     <p>Grouping all the storage (web, ftp, databases, IMAP, etc etc) under one
154     location greatly simplifies managing disk quotas on that host.</p>
155     <p>It is common practice for shared hosted systems to place web sites,
156     ftp sites and so on under a user's actual home directory. This practice
157     requires the user's home directory to be world-readable, which does not
158     promote strong security!</p>
159     </li>
160 g2boojum 1.3 <li><p class="first">Users who wish to store service-orientated files onto a single logical
161 g2boojum 1.1 volume to support future growth</p>
162     </li>
163     </ul>
164     <p>The Gentoo Philosophy clearly states that Gentoo Linux will be a
165     highly-configurable meta-distribution. Adding optional support for /srv is
166     very much in keeping with our Philosophy.</p>
167     </div>
168 g2boojum 1.3 <div class="section">
169     <h1><a class="toc-backref" href="#id8" id="implementation" name="implementation">Implementation</a></h1>
170 g2boojum 1.1 <p>A new USE flag - srvdir - will be added to Portage.</p>
171     <p>Ebuilds and eclasses will choose to support the srvdir USE flag or not on
172     an individual basis.</p>
173     <p>(Author's note: If this GLEP is approved, all web-based applications will
174     support the srvdir USE flag through the work being carried out under GLEP #11)</p>
175     <p>There has been some debate about whether the /srv directory should be provided
176     by the basesystem package or not. Because this support is optional, and
177     because different sites will have different storage requirements, we believe
178 g2boojum 1.3 that it should be left to the local Gentoo system administrator to manually
179 g2boojum 1.1 create the /srv directory.</p>
180     <p>If baselayout feels that it must install a /srv, then we propose that
181     baselayout installs /srv as a symlink to /var/srv. This approach will support
182     installations that mount the root filesystem read-only.</p>
183     </div>
184 g2boojum 1.3 <div class="section">
185     <h1><a class="toc-backref" href="#id9" id="backwards-compatibility" name="backwards-compatibility">Backwards Compatibility</a></h1>
186 g2boojum 1.1 <p>Users who choose not to use the new srvdir USE flag will see little to no
187     change. It is likely that some ebuilds will change their non-srvdir directory
188     layout to reduce the amount of effort required to support both options.</p>
189     </div>
190 g2boojum 1.3 <div class="section">
191     <h1><a class="toc-backref" href="#id10" id="copyright" name="copyright">Copyright</a></h1>
192 g2boojum 1.1 <p>This document is licensed under the Creative Commons - Attribution / Share
193     Alike license. (<a class="reference" href="http://creativecommons.org/licenses/by-sa/1.0">http://creativecommons.org/licenses/by-sa/1.0</a>)</p>
194     </div>
195 g2boojum 1.3
196 g2boojum 1.1 </div>
197 g2boojum 1.3 <div class="footer">
198 g2boojum 1.2 <hr class="footer" />
199 g2boojum 1.1 <a class="reference" href="glep-0020.txt">View document source</a>.
200 antarus 1.5 Generated on: 2007-10-13 13:39 UTC.
201 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.
202 g2boojum 1.3
203 g2boojum 1.1 </div>
204     </body>
205     </html>

  ViewVC Help
Powered by ViewVC 1.1.20