diff options
Diffstat (limited to 'installed-files.html')
-rw-r--r-- | installed-files.html | 209 |
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 — 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">"$</span><span class="si">{ED}</span><span class="s2">"</span> <span class="o">-</span><span class="n">name</span> <span class="s1">'*.la'</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"> + ©2020, Gentoo Authors. + + | + Powered by <a href="http://sphinx-doc.org/">Sphinx 2.3.1</a> + & <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 |