summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'installed-files.html')
-rw-r--r--installed-files.html209
1 files changed, 209 insertions, 0 deletions
diff --git a/installed-files.html b/installed-files.html
new file mode 100644
index 0000000..cd19af2
--- /dev/null
+++ b/installed-files.html
@@ -0,0 +1,209 @@
+
+<!DOCTYPE html>
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta charset="utf-8" />
+ <title>Installed files &#8212; Gentoo Policy Guide documentation</title>
+ <link rel="stylesheet" href="_static/alabaster.css" type="text/css" />
+ <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+ <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
+ <script type="text/javascript" src="_static/jquery.js"></script>
+ <script type="text/javascript" src="_static/underscore.js"></script>
+ <script type="text/javascript" src="_static/doctools.js"></script>
+ <script type="text/javascript" src="_static/language_data.js"></script>
+ <link rel="index" title="Index" href="genindex.html" />
+ <link rel="search" title="Search" href="search.html" />
+ <link rel="next" title="Keywording and stabilization" href="keywords.html" />
+ <link rel="prev" title="File system layout" href="filesystem.html" />
+
+ <link rel="stylesheet" href="_static/custom.css" type="text/css" />
+
+
+ <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
+
+ </head><body>
+
+
+ <div class="document">
+ <div class="documentwrapper">
+ <div class="bodywrapper">
+
+
+ <div class="body" role="main">
+
+ <div class="section" id="installed-files">
+<h1>Installed files<a class="headerlink" href="#installed-files" title="Permalink to this headline">¶</a></h1>
+<div class="section" id="installation-of-small-files">
+<span id="index-0"></span><h2>Installation of small files<a class="headerlink" href="#installation-of-small-files" title="Permalink to this headline">¶</a></h2>
+<dl class="field-list simple">
+<dt class="field-odd">Source</dt>
+<dd class="field-odd"><p>QA</p>
+</dd>
+<dt class="field-even">Reported</dt>
+<dd class="field-even"><p>no</p>
+</dd>
+</dl>
+<p>Ebuilds must not introduce USE flags to control installing files that
+are small in size, require no additional dependencies and not cause any
+negative consequences to the program behavior by being installed. Such
+files must be installed unconditionally. Examples include shell
+completion files, systemd service units, localization files.</p>
+<p>Users wishing to strip unnecessary files of this category should use
+INSTALL_MASK to do so.</p>
+<p><em>Rationale</em>: the goal of this policy is to avoid unnecessary rebuilds
+of packages when the cost of installing additional files is much smaller
+than the cost of rebuild. It has been specifically brought in context
+of bash completions in LibreOffice – a user who did not notice that he
+did not enable the flag should not be required to spend hours rebuilding
+such a huge package in order to install one tiny file.</p>
+<div class="admonition note">
+<p class="admonition-title">Note</p>
+<p>While technically e.g. <code class="docutils literal notranslate"><span class="pre">app-shells/bash-completion</span></code> could be
+considered a dependency of installed bash completions, it is not
+applicable here since this package needs to be installed by the user
+if he wishes to use completions in the first place, and if it is not
+installed, completion files are not used at all.</p>
+</div>
+</div>
+<div class="section" id="installation-of-static-libraries">
+<span id="index-1"></span><h2>Installation of static libraries<a class="headerlink" href="#installation-of-static-libraries" title="Permalink to this headline">¶</a></h2>
+<dl class="field-list simple">
+<dt class="field-odd">Source</dt>
+<dd class="field-odd"><p>QA</p>
+</dd>
+<dt class="field-even">Reported</dt>
+<dd class="field-even"><p>no</p>
+</dd>
+</dl>
+<p>Packages must not install static libraries unless they are explicitly
+required, either by themselves or their reverse dependencies. If both
+shared and static libraries are supported, shared libraries must be
+installed by default and <code class="docutils literal notranslate"><span class="pre">USE=static-libs</span></code> may be added for static
+libraries if they are necessary.</p>
+<p><em>Rationale</em>: static linking is strongly discouraged as it makes security
+support for packages practically impossible. It may be used whenever
+really necessary (e.g. for recovery tools) but otherwise proliferating
+it is considered harmful. There is no point in installing static
+libraries if they are never going to be used.</p>
+</div>
+<div class="section" id="installation-of-libtool-la-files">
+<span id="index-2"></span><h2>Installation of libtool (.la) files<a class="headerlink" href="#installation-of-libtool-la-files" title="Permalink to this headline">¶</a></h2>
+<dl class="field-list simple">
+<dt class="field-odd">Source</dt>
+<dd class="field-odd"><p>QA</p>
+</dd>
+<dt class="field-even">Reported</dt>
+<dd class="field-even"><p>no</p>
+</dd>
+</dl>
+<p>Packages must not install libtool .la files unless they are explicitly
+required. Generally, they might be required if:</p>
+<ol class="loweralpha simple">
+<li><p>the package is using a plugin loader that requires .la files in order
+to locate plugins and does not have .so fallback (very uncommon),</p></li>
+<li><p>the package is installing static libraries that have additional
+dependencies and no pkg-config files or other tools that provide
+the list of dependencies to build systems.</p></li>
+</ol>
+<p>It is recommended to use the following one-liner to remove .la files:</p>
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">find</span> <span class="s2">&quot;$</span><span class="si">{ED}</span><span class="s2">&quot;</span> <span class="o">-</span><span class="n">name</span> <span class="s1">&#39;*.la&#39;</span> <span class="o">-</span><span class="n">remove</span> <span class="o">||</span> <span class="n">die</span>
+</pre></div>
+</div>
+<p><em>Rationale</em>: libtool files were historically introduced as an attempt
+to supplement static library archives with dependent library list.
+However, they were only supported by libtool-based (autotools) projects
+and caused many issues, in particular due to hardcoding full paths.
+Today they are practically replaced by more portable pkg-config files,
+and while libtool keeps generating them, they are considered
+unnecessary and potentially harmful.</p>
+</div>
+</div>
+
+
+ </div>
+
+ </div>
+ </div>
+ <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
+ <div class="sphinxsidebarwrapper">
+<h1 class="logo"><a href="index.html">Gentoo Policy Guide</a></h1>
+
+
+
+
+
+
+
+
+<h3>Navigation</h3>
+<p class="caption"><span class="caption-text">Contents:</span></p>
+<ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="preface.html">Preface</a></li>
+<li class="toctree-l1"><a class="reference internal" href="motivation.html">Motivation and history</a></li>
+<li class="toctree-l1"><a class="reference internal" href="basics.html">Basic information</a></li>
+<li class="toctree-l1"><a class="reference internal" href="other-docs.html">Other policy documents</a></li>
+<li class="toctree-l1"><a class="reference internal" href="dependencies.html">Dependencies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="ebuild-format.html">Ebuild file format</a></li>
+<li class="toctree-l1"><a class="reference internal" href="filesystem.html">File system layout</a></li>
+<li class="toctree-l1 current"><a class="current reference internal" href="#">Installed files</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="#installation-of-small-files">Installation of small files</a></li>
+<li class="toctree-l2"><a class="reference internal" href="#installation-of-static-libraries">Installation of static libraries</a></li>
+<li class="toctree-l2"><a class="reference internal" href="#installation-of-libtool-la-files">Installation of libtool (.la) files</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="keywords.html">Keywording and stabilization</a></li>
+<li class="toctree-l1"><a class="reference internal" href="languages.html">Language-specific policies</a></li>
+<li class="toctree-l1"><a class="reference internal" href="other-metadata.html">Other metadata variables</a></li>
+<li class="toctree-l1"><a class="reference internal" href="use-flags.html">USE flags</a></li>
+<li class="toctree-l1"><a class="reference internal" href="user-group.html">Users and groups</a></li>
+</ul>
+
+<div class="relations">
+<h3>Related Topics</h3>
+<ul>
+ <li><a href="index.html">Documentation overview</a><ul>
+ <li>Previous: <a href="filesystem.html" title="previous chapter">File system layout</a></li>
+ <li>Next: <a href="keywords.html" title="next chapter">Keywording and stabilization</a></li>
+ </ul></li>
+</ul>
+</div>
+<div id="searchbox" style="display: none" role="search">
+ <h3 id="searchlabel">Quick search</h3>
+ <div class="searchformwrapper">
+ <form class="search" action="search.html" method="get">
+ <input type="text" name="q" aria-labelledby="searchlabel" />
+ <input type="submit" value="Go" />
+ </form>
+ </div>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+
+
+
+
+
+
+
+
+ </div>
+ </div>
+ <div class="clearer"></div>
+ </div>
+ <div class="footer">
+ &copy;2020, Gentoo Authors.
+
+ |
+ Powered by <a href="http://sphinx-doc.org/">Sphinx 2.3.1</a>
+ &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
+
+ |
+ <a href="_sources/installed-files.rst.txt"
+ rel="nofollow">Page source</a>
+ </div>
+
+
+
+
+ </body>
+</html> \ No newline at end of file