Update rhel8-branch documentation

This commit is contained in:
Brian C. Lane 2020-04-28 10:42:12 -07:00
parent 4db17b693b
commit f7485b7bb7
60 changed files with 3723 additions and 3892 deletions

View File

@ -1,4 +1,4 @@
# Sphinx build info version 1 # Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
config: 3bd21c088305773bcf2949c400b7d8c0 config: 70a7edc36d19abd5eeb8cb6028d02c14
tags: 645f666f9bcd5a90fca523b33c5a78b7 tags: 645f666f9bcd5a90fca523b33c5a78b7

Binary file not shown.

Binary file not shown.

View File

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Overview: module code &mdash; Lorax 28.14.33 documentation</title> <title>Overview: module code &mdash; Lorax 28.14.42 documentation</title>
@ -58,7 +58,7 @@
<div class="version"> <div class="version">
28.14.33 28.14.42
</div> </div>
@ -169,6 +169,7 @@
<li><a href="pylorax/creator.html">pylorax.creator</a></li> <li><a href="pylorax/creator.html">pylorax.creator</a></li>
<li><a href="pylorax/decorators.html">pylorax.decorators</a></li> <li><a href="pylorax/decorators.html">pylorax.decorators</a></li>
<li><a href="pylorax/discinfo.html">pylorax.discinfo</a></li> <li><a href="pylorax/discinfo.html">pylorax.discinfo</a></li>
<li><a href="pylorax/dnfbase.html">pylorax.dnfbase</a></li>
<li><a href="pylorax/dnfhelper.html">pylorax.dnfhelper</a></li> <li><a href="pylorax/dnfhelper.html">pylorax.dnfhelper</a></li>
<li><a href="pylorax/executils.html">pylorax.executils</a></li> <li><a href="pylorax/executils.html">pylorax.executils</a></li>
<li><a href="pylorax/imgutils.html">pylorax.imgutils</a></li> <li><a href="pylorax/imgutils.html">pylorax.imgutils</a></li>

View File

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>pylorax &mdash; Lorax 28.14.33 documentation</title> <title>pylorax &mdash; Lorax 28.14.42 documentation</title>
@ -58,7 +58,7 @@
<div class="version"> <div class="version">
28.14.33 28.14.42
</div> </div>
@ -342,7 +342,8 @@
<span class="n">add_arch_templates</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">add_arch_templates</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
<span class="n">add_arch_template_vars</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">add_arch_template_vars</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
<span class="n">verify</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">verify</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
<span class="n">user_dracut_args</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> <span class="n">user_dracut_args</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
<span class="n">skip_branding</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
<span class="k">assert</span> <span class="bp">self</span><span class="o">.</span><span class="n">_configured</span> <span class="k">assert</span> <span class="bp">self</span><span class="o">.</span><span class="n">_configured</span>
@ -422,7 +423,8 @@
<span class="n">installpkgs</span><span class="o">=</span><span class="n">installpkgs</span><span class="p">,</span> <span class="n">installpkgs</span><span class="o">=</span><span class="n">installpkgs</span><span class="p">,</span>
<span class="n">excludepkgs</span><span class="o">=</span><span class="n">excludepkgs</span><span class="p">,</span> <span class="n">excludepkgs</span><span class="o">=</span><span class="n">excludepkgs</span><span class="p">,</span>
<span class="n">add_templates</span><span class="o">=</span><span class="n">add_templates</span><span class="p">,</span> <span class="n">add_templates</span><span class="o">=</span><span class="n">add_templates</span><span class="p">,</span>
<span class="n">add_template_vars</span><span class="o">=</span><span class="n">add_template_vars</span><span class="p">)</span> <span class="n">add_template_vars</span><span class="o">=</span><span class="n">add_template_vars</span><span class="p">,</span>
<span class="n">skip_branding</span><span class="o">=</span><span class="n">skip_branding</span><span class="p">)</span>
<span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;installing runtime packages&quot;</span><span class="p">)</span> <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;installing runtime packages&quot;</span><span class="p">)</span>
<span class="n">rb</span><span class="o">.</span><span class="n">install</span><span class="p">()</span> <span class="n">rb</span><span class="o">.</span><span class="n">install</span><span class="p">()</span>

View File

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>pylorax.api.cmdline &mdash; Lorax 28.14.33 documentation</title> <title>pylorax.api.cmdline &mdash; Lorax 28.14.42 documentation</title>
@ -58,7 +58,7 @@
<div class="version"> <div class="version">
28.14.33 28.14.42
</div> </div>

View File

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>pylorax.api.compose &mdash; Lorax 28.14.33 documentation</title> <title>pylorax.api.compose &mdash; Lorax 28.14.42 documentation</title>
@ -58,7 +58,7 @@
<div class="version"> <div class="version">
28.14.33 28.14.42
</div> </div>
@ -1035,7 +1035,7 @@
<span class="n">disable_map</span> <span class="o">=</span> <span class="p">{</span> <span class="n">disable_map</span> <span class="o">=</span> <span class="p">{</span>
<span class="s2">&quot;arm&quot;</span><span class="p">:</span> <span class="p">[</span><span class="s2">&quot;alibaba&quot;</span><span class="p">,</span> <span class="s2">&quot;ami&quot;</span><span class="p">,</span> <span class="s2">&quot;google&quot;</span><span class="p">,</span> <span class="s2">&quot;hyper-v&quot;</span><span class="p">,</span> <span class="s2">&quot;vhd&quot;</span><span class="p">,</span> <span class="s2">&quot;vmdk&quot;</span><span class="p">],</span> <span class="s2">&quot;arm&quot;</span><span class="p">:</span> <span class="p">[</span><span class="s2">&quot;alibaba&quot;</span><span class="p">,</span> <span class="s2">&quot;ami&quot;</span><span class="p">,</span> <span class="s2">&quot;google&quot;</span><span class="p">,</span> <span class="s2">&quot;hyper-v&quot;</span><span class="p">,</span> <span class="s2">&quot;vhd&quot;</span><span class="p">,</span> <span class="s2">&quot;vmdk&quot;</span><span class="p">],</span>
<span class="s2">&quot;armhfp&quot;</span><span class="p">:</span> <span class="p">[</span><span class="s2">&quot;alibaba&quot;</span><span class="p">,</span> <span class="s2">&quot;ami&quot;</span><span class="p">,</span> <span class="s2">&quot;google&quot;</span><span class="p">,</span> <span class="s2">&quot;hyper-v&quot;</span><span class="p">,</span> <span class="s2">&quot;vhd&quot;</span><span class="p">,</span> <span class="s2">&quot;vmdk&quot;</span><span class="p">],</span> <span class="s2">&quot;armhfp&quot;</span><span class="p">:</span> <span class="p">[</span><span class="s2">&quot;alibaba&quot;</span><span class="p">,</span> <span class="s2">&quot;ami&quot;</span><span class="p">,</span> <span class="s2">&quot;google&quot;</span><span class="p">,</span> <span class="s2">&quot;hyper-v&quot;</span><span class="p">,</span> <span class="s2">&quot;vhd&quot;</span><span class="p">,</span> <span class="s2">&quot;vmdk&quot;</span><span class="p">],</span>
<span class="s2">&quot;aarch64&quot;</span><span class="p">:</span> <span class="p">[</span><span class="s2">&quot;alibaba&quot;</span><span class="p">,</span> <span class="s2">&quot;ami&quot;</span><span class="p">,</span> <span class="s2">&quot;google&quot;</span><span class="p">,</span> <span class="s2">&quot;hyper-v&quot;</span><span class="p">,</span> <span class="s2">&quot;vhd&quot;</span><span class="p">,</span> <span class="s2">&quot;vmdk&quot;</span><span class="p">],</span> <span class="s2">&quot;aarch64&quot;</span><span class="p">:</span> <span class="p">[</span><span class="s2">&quot;alibaba&quot;</span><span class="p">,</span> <span class="s2">&quot;google&quot;</span><span class="p">,</span> <span class="s2">&quot;hyper-v&quot;</span><span class="p">,</span> <span class="s2">&quot;vhd&quot;</span><span class="p">,</span> <span class="s2">&quot;vmdk&quot;</span><span class="p">],</span>
<span class="s2">&quot;ppc&quot;</span><span class="p">:</span> <span class="p">[</span><span class="s2">&quot;alibaba&quot;</span><span class="p">,</span> <span class="s2">&quot;ami&quot;</span><span class="p">,</span> <span class="s2">&quot;google&quot;</span><span class="p">,</span> <span class="s2">&quot;hyper-v&quot;</span><span class="p">,</span> <span class="s2">&quot;vhd&quot;</span><span class="p">,</span> <span class="s2">&quot;vmdk&quot;</span><span class="p">],</span> <span class="s2">&quot;ppc&quot;</span><span class="p">:</span> <span class="p">[</span><span class="s2">&quot;alibaba&quot;</span><span class="p">,</span> <span class="s2">&quot;ami&quot;</span><span class="p">,</span> <span class="s2">&quot;google&quot;</span><span class="p">,</span> <span class="s2">&quot;hyper-v&quot;</span><span class="p">,</span> <span class="s2">&quot;vhd&quot;</span><span class="p">,</span> <span class="s2">&quot;vmdk&quot;</span><span class="p">],</span>
<span class="s2">&quot;ppc64&quot;</span><span class="p">:</span> <span class="p">[</span><span class="s2">&quot;alibaba&quot;</span><span class="p">,</span> <span class="s2">&quot;ami&quot;</span><span class="p">,</span> <span class="s2">&quot;google&quot;</span><span class="p">,</span> <span class="s2">&quot;hyper-v&quot;</span><span class="p">,</span> <span class="s2">&quot;vhd&quot;</span><span class="p">,</span> <span class="s2">&quot;vmdk&quot;</span><span class="p">],</span> <span class="s2">&quot;ppc64&quot;</span><span class="p">:</span> <span class="p">[</span><span class="s2">&quot;alibaba&quot;</span><span class="p">,</span> <span class="s2">&quot;ami&quot;</span><span class="p">,</span> <span class="s2">&quot;google&quot;</span><span class="p">,</span> <span class="s2">&quot;hyper-v&quot;</span><span class="p">,</span> <span class="s2">&quot;vhd&quot;</span><span class="p">,</span> <span class="s2">&quot;vmdk&quot;</span><span class="p">],</span>
<span class="s2">&quot;ppc64le&quot;</span><span class="p">:</span> <span class="p">[</span><span class="s2">&quot;alibaba&quot;</span><span class="p">,</span> <span class="s2">&quot;ami&quot;</span><span class="p">,</span> <span class="s2">&quot;google&quot;</span><span class="p">,</span> <span class="s2">&quot;hyper-v&quot;</span><span class="p">,</span> <span class="s2">&quot;vhd&quot;</span><span class="p">,</span> <span class="s2">&quot;vmdk&quot;</span><span class="p">],</span> <span class="s2">&quot;ppc64le&quot;</span><span class="p">:</span> <span class="p">[</span><span class="s2">&quot;alibaba&quot;</span><span class="p">,</span> <span class="s2">&quot;ami&quot;</span><span class="p">,</span> <span class="s2">&quot;google&quot;</span><span class="p">,</span> <span class="s2">&quot;hyper-v&quot;</span><span class="p">,</span> <span class="s2">&quot;vhd&quot;</span><span class="p">,</span> <span class="s2">&quot;vmdk&quot;</span><span class="p">],</span>

View File

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>pylorax.api.config &mdash; Lorax 28.14.33 documentation</title> <title>pylorax.api.config &mdash; Lorax 28.14.42 documentation</title>
@ -58,7 +58,7 @@
<div class="version"> <div class="version">
28.14.33 28.14.42
</div> </div>

View File

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>pylorax.api.crossdomain &mdash; Lorax 28.14.33 documentation</title> <title>pylorax.api.crossdomain &mdash; Lorax 28.14.42 documentation</title>
@ -58,7 +58,7 @@
<div class="version"> <div class="version">
28.14.33 28.14.42
</div> </div>

View File

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>pylorax.api.projects &mdash; Lorax 28.14.33 documentation</title> <title>pylorax.api.projects &mdash; Lorax 28.14.42 documentation</title>
@ -58,7 +58,7 @@
<div class="version"> <div class="version">
28.14.33 28.14.42
</div> </div>

View File

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>pylorax.api.queue &mdash; Lorax 28.14.33 documentation</title> <title>pylorax.api.queue &mdash; Lorax 28.14.42 documentation</title>
@ -58,7 +58,7 @@
<div class="version"> <div class="version">
28.14.33 28.14.42
</div> </div>

View File

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>pylorax.api.recipes &mdash; Lorax 28.14.33 documentation</title> <title>pylorax.api.recipes &mdash; Lorax 28.14.42 documentation</title>
@ -58,7 +58,7 @@
<div class="version"> <div class="version">
28.14.33 28.14.42
</div> </div>

View File

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>pylorax.api.server &mdash; Lorax 28.14.33 documentation</title> <title>pylorax.api.server &mdash; Lorax 28.14.42 documentation</title>
@ -58,7 +58,7 @@
<div class="version"> <div class="version">
28.14.33 28.14.42
</div> </div>

View File

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>pylorax.api.v0 &mdash; Lorax 28.14.33 documentation</title> <title>pylorax.api.v0 &mdash; Lorax 28.14.42 documentation</title>
@ -58,7 +58,7 @@
<div class="version"> <div class="version">
28.14.33 28.14.42
</div> </div>

View File

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>pylorax.api.workspace &mdash; Lorax 28.14.33 documentation</title> <title>pylorax.api.workspace &mdash; Lorax 28.14.42 documentation</title>
@ -58,7 +58,7 @@
<div class="version"> <div class="version">
28.14.33 28.14.42
</div> </div>

View File

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>pylorax.base &mdash; Lorax 28.14.33 documentation</title> <title>pylorax.base &mdash; Lorax 28.14.42 documentation</title>
@ -58,7 +58,7 @@
<div class="version"> <div class="version">
28.14.33 28.14.42
</div> </div>

View File

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>pylorax.buildstamp &mdash; Lorax 28.14.33 documentation</title> <title>pylorax.buildstamp &mdash; Lorax 28.14.42 documentation</title>
@ -58,7 +58,7 @@
<div class="version"> <div class="version">
28.14.33 28.14.42
</div> </div>

View File

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>pylorax.cmdline &mdash; Lorax 28.14.33 documentation</title> <title>pylorax.cmdline &mdash; Lorax 28.14.42 documentation</title>
@ -58,7 +58,7 @@
<div class="version"> <div class="version">
28.14.33 28.14.42
</div> </div>
@ -265,6 +265,8 @@
<span class="n">help</span><span class="o">=</span><span class="s2">&quot;Size of root filesystem in GiB. Defaults to 3.&quot;</span><span class="p">)</span> <span class="n">help</span><span class="o">=</span><span class="s2">&quot;Size of root filesystem in GiB. Defaults to 3.&quot;</span><span class="p">)</span>
<span class="n">optional</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">&quot;--noverifyssl&quot;</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s2">&quot;store_true&quot;</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">optional</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">&quot;--noverifyssl&quot;</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s2">&quot;store_true&quot;</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="s2">&quot;Do not verify SSL certificates&quot;</span><span class="p">)</span> <span class="n">help</span><span class="o">=</span><span class="s2">&quot;Do not verify SSL certificates&quot;</span><span class="p">)</span>
<span class="n">optional</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">&quot;--skip-branding&quot;</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s2">&quot;store_true&quot;</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="s2">&quot;Disable automatic branding package selection. Use --installpkgs to add custom branding.&quot;</span><span class="p">)</span>
<span class="c1"># dracut arguments</span> <span class="c1"># dracut arguments</span>
<span class="n">dracut_group</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">add_argument_group</span><span class="p">(</span><span class="s2">&quot;dracut arguments&quot;</span><span class="p">)</span> <span class="n">dracut_group</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">add_argument_group</span><span class="p">(</span><span class="s2">&quot;dracut arguments&quot;</span><span class="p">)</span>

View File

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>pylorax.creator &mdash; Lorax 28.14.33 documentation</title> <title>pylorax.creator &mdash; Lorax 28.14.42 documentation</title>
@ -58,7 +58,7 @@
<div class="version"> <div class="version">
28.14.33 28.14.42
</div> </div>

View File

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>pylorax.decorators &mdash; Lorax 28.14.33 documentation</title> <title>pylorax.decorators &mdash; Lorax 28.14.42 documentation</title>
@ -58,7 +58,7 @@
<div class="version"> <div class="version">
28.14.33 28.14.42
</div> </div>

View File

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>pylorax.discinfo &mdash; Lorax 28.14.33 documentation</title> <title>pylorax.discinfo &mdash; Lorax 28.14.42 documentation</title>
@ -58,7 +58,7 @@
<div class="version"> <div class="version">
28.14.33 28.14.42
</div> </div>

View File

@ -0,0 +1,376 @@
<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>pylorax.dnfbase &mdash; Lorax 28.14.42 documentation</title>
<script type="text/javascript" src="../../_static/js/modernizr.min.js"></script>
<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>
<script type="text/javascript" src="../../_static/js/theme.js"></script>
<link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
<link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../../index.html" class="icon icon-home"> Lorax
</a>
<div class="version">
28.14.42
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../intro.html">Introduction to Lorax</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../intro.html#before-lorax">Before Lorax</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../lorax.html">Lorax</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../livemedia-creator.html">livemedia-creator</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../lorax-composer.html">lorax-composer</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../composer-cli.html">composer-cli</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../product-images.html">Product and Updates Images</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../modules.html">pylorax</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../../index.html">Lorax</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="../../index.html">Docs</a> &raquo;</li>
<li><a href="../index.html">Module code</a> &raquo;</li>
<li><a href="../pylorax.html">pylorax</a> &raquo;</li>
<li>pylorax.dnfbase</li>
<li class="wy-breadcrumbs-aside">
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<h1>Source code for pylorax.dnfbase</h1><div class="highlight"><pre>
<span></span><span class="c1">#</span>
<span class="c1"># Copyright (C) 2020 Red Hat, Inc.</span>
<span class="c1">#</span>
<span class="c1"># This program is free software; you can redistribute it and/or modify</span>
<span class="c1"># it under the terms of the GNU General Public License as published by</span>
<span class="c1"># the Free Software Foundation; either version 2 of the License, or</span>
<span class="c1"># (at your option) any later version.</span>
<span class="c1">#</span>
<span class="c1"># This program is distributed in the hope that it will be useful,</span>
<span class="c1"># but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<span class="c1"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span>
<span class="c1"># GNU General Public License for more details.</span>
<span class="c1">#</span>
<span class="c1"># You should have received a copy of the GNU General Public License</span>
<span class="c1"># along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span>
<span class="c1">#</span>
<span class="kn">import</span> <span class="nn">logging</span>
<span class="n">log</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="s2">&quot;lorax&quot;</span><span class="p">)</span>
<span class="kn">import</span> <span class="nn">dnf</span>
<span class="kn">import</span> <span class="nn">os</span>
<span class="kn">import</span> <span class="nn">shutil</span>
<span class="kn">from</span> <span class="nn">pylorax</span> <span class="k">import</span> <span class="n">DEFAULT_PLATFORM_ID</span>
<span class="kn">from</span> <span class="nn">pylorax.sysutils</span> <span class="k">import</span> <span class="n">flatconfig</span>
<div class="viewcode-block" id="get_dnf_base_object"><a class="viewcode-back" href="../../pylorax.html#pylorax.dnfbase.get_dnf_base_object">[docs]</a><span class="k">def</span> <span class="nf">get_dnf_base_object</span><span class="p">(</span><span class="n">installroot</span><span class="p">,</span> <span class="n">sources</span><span class="p">,</span> <span class="n">mirrorlists</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">repos</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
<span class="n">enablerepos</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">disablerepos</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
<span class="n">tempdir</span><span class="o">=</span><span class="s2">&quot;/var/tmp&quot;</span><span class="p">,</span> <span class="n">proxy</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">releasever</span><span class="o">=</span><span class="s2">&quot;8&quot;</span><span class="p">,</span>
<span class="n">cachedir</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">logdir</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">sslverify</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot; Create a dnf Base object and setup the repositories and installroot</span>
<span class="sd"> :param string installroot: Full path to the installroot</span>
<span class="sd"> :param list sources: List of source repo urls to use for the installation</span>
<span class="sd"> :param list enablerepos: List of repo names to enable</span>
<span class="sd"> :param list disablerepos: List of repo names to disable</span>
<span class="sd"> :param list mirrorlist: List of mirrors to use</span>
<span class="sd"> :param string tempdir: Path of temporary directory</span>
<span class="sd"> :param string proxy: http proxy to use when fetching packages</span>
<span class="sd"> :param string releasever: Release version to pass to dnf</span>
<span class="sd"> :param string cachedir: Directory to use for caching packages</span>
<span class="sd"> :param bool noverifyssl: Set to True to ignore the CA of ssl certs. eg. use self-signed ssl for https repos.</span>
<span class="sd"> If tempdir is not set /var/tmp is used.</span>
<span class="sd"> If cachedir is None a dnf.cache directory is created inside tmpdir</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">def</span> <span class="nf">sanitize_repo</span><span class="p">(</span><span class="n">repo</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Convert bare paths to file:/// URIs, and silently reject protocols unhandled by yum&quot;&quot;&quot;</span>
<span class="k">if</span> <span class="n">repo</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s2">&quot;/&quot;</span><span class="p">):</span>
<span class="k">return</span> <span class="s2">&quot;file://</span><span class="si">{0}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">repo</span><span class="p">)</span>
<span class="k">elif</span> <span class="nb">any</span><span class="p">(</span><span class="n">repo</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="p">(</span><span class="s1">&#39;http://&#39;</span><span class="p">,</span> <span class="s1">&#39;https://&#39;</span><span class="p">,</span> <span class="s1">&#39;ftp://&#39;</span><span class="p">,</span> <span class="s1">&#39;file://&#39;</span><span class="p">)):</span>
<span class="k">return</span> <span class="n">repo</span>
<span class="k">else</span><span class="p">:</span>
<span class="k">return</span> <span class="kc">None</span>
<span class="n">mirrorlists</span> <span class="o">=</span> <span class="n">mirrorlists</span> <span class="ow">or</span> <span class="p">[]</span>
<span class="c1"># sanitize the repositories</span>
<span class="n">sources</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">sanitize_repo</span><span class="p">(</span><span class="n">r</span><span class="p">)</span> <span class="k">for</span> <span class="n">r</span> <span class="ow">in</span> <span class="n">sources</span><span class="p">)</span>
<span class="n">mirrorlists</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">sanitize_repo</span><span class="p">(</span><span class="n">r</span><span class="p">)</span> <span class="k">for</span> <span class="n">r</span> <span class="ow">in</span> <span class="n">mirrorlists</span><span class="p">)</span>
<span class="c1"># remove invalid repositories</span>
<span class="n">sources</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">r</span> <span class="k">for</span> <span class="n">r</span> <span class="ow">in</span> <span class="n">sources</span> <span class="k">if</span> <span class="n">r</span><span class="p">)</span>
<span class="n">mirrorlists</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">r</span> <span class="k">for</span> <span class="n">r</span> <span class="ow">in</span> <span class="n">mirrorlists</span> <span class="k">if</span> <span class="n">r</span><span class="p">)</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">cachedir</span><span class="p">:</span>
<span class="n">cachedir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">tempdir</span><span class="p">,</span> <span class="s2">&quot;dnf.cache&quot;</span><span class="p">)</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isdir</span><span class="p">(</span><span class="n">cachedir</span><span class="p">):</span>
<span class="n">os</span><span class="o">.</span><span class="n">mkdir</span><span class="p">(</span><span class="n">cachedir</span><span class="p">)</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">logdir</span><span class="p">:</span>
<span class="n">logdir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">tempdir</span><span class="p">,</span> <span class="s2">&quot;dnf.logs&quot;</span><span class="p">)</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isdir</span><span class="p">(</span><span class="n">logdir</span><span class="p">):</span>
<span class="n">os</span><span class="o">.</span><span class="n">mkdir</span><span class="p">(</span><span class="n">logdir</span><span class="p">)</span>
<span class="n">dnfbase</span> <span class="o">=</span> <span class="n">dnf</span><span class="o">.</span><span class="n">Base</span><span class="p">()</span>
<span class="n">conf</span> <span class="o">=</span> <span class="n">dnfbase</span><span class="o">.</span><span class="n">conf</span>
<span class="n">conf</span><span class="o">.</span><span class="n">logdir</span> <span class="o">=</span> <span class="n">logdir</span>
<span class="n">conf</span><span class="o">.</span><span class="n">cachedir</span> <span class="o">=</span> <span class="n">cachedir</span>
<span class="n">conf</span><span class="o">.</span><span class="n">install_weak_deps</span> <span class="o">=</span> <span class="kc">False</span>
<span class="n">conf</span><span class="o">.</span><span class="n">releasever</span> <span class="o">=</span> <span class="n">releasever</span>
<span class="n">conf</span><span class="o">.</span><span class="n">installroot</span> <span class="o">=</span> <span class="n">installroot</span>
<span class="n">conf</span><span class="o">.</span><span class="n">prepend_installroot</span><span class="p">(</span><span class="s1">&#39;persistdir&#39;</span><span class="p">)</span>
<span class="n">conf</span><span class="o">.</span><span class="n">tsflags</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39;nodocs&#39;</span><span class="p">)</span>
<span class="k">if</span> <span class="n">proxy</span><span class="p">:</span>
<span class="n">conf</span><span class="o">.</span><span class="n">proxy</span> <span class="o">=</span> <span class="n">proxy</span>
<span class="k">if</span> <span class="n">sslverify</span> <span class="o">==</span> <span class="kc">False</span><span class="p">:</span>
<span class="n">conf</span><span class="o">.</span><span class="n">sslverify</span> <span class="o">=</span> <span class="kc">False</span>
<span class="c1"># DNF 3.2 needs to have module_platform_id set, otherwise depsolve won&#39;t work correctly</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="s2">&quot;/etc/os-release&quot;</span><span class="p">):</span>
<span class="n">log</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s2">&quot;/etc/os-release is missing, cannot determine platform id, falling back to </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">DEFAULT_PLATFORM_ID</span><span class="p">)</span>
<span class="n">platform_id</span> <span class="o">=</span> <span class="n">DEFAULT_PLATFORM_ID</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">os_release</span> <span class="o">=</span> <span class="n">flatconfig</span><span class="p">(</span><span class="s2">&quot;/etc/os-release&quot;</span><span class="p">)</span>
<span class="n">platform_id</span> <span class="o">=</span> <span class="n">os_release</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;PLATFORM_ID&quot;</span><span class="p">,</span> <span class="n">DEFAULT_PLATFORM_ID</span><span class="p">)</span>
<span class="n">log</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;Using </span><span class="si">%s</span><span class="s2"> for module_platform_id&quot;</span><span class="p">,</span> <span class="n">platform_id</span><span class="p">)</span>
<span class="n">conf</span><span class="o">.</span><span class="n">module_platform_id</span> <span class="o">=</span> <span class="n">platform_id</span>
<span class="c1"># Add .repo files</span>
<span class="k">if</span> <span class="n">repos</span><span class="p">:</span>
<span class="n">reposdir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">tempdir</span><span class="p">,</span> <span class="s2">&quot;dnf.repos&quot;</span><span class="p">)</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isdir</span><span class="p">(</span><span class="n">reposdir</span><span class="p">):</span>
<span class="n">os</span><span class="o">.</span><span class="n">mkdir</span><span class="p">(</span><span class="n">reposdir</span><span class="p">)</span>
<span class="k">for</span> <span class="n">r</span> <span class="ow">in</span> <span class="n">repos</span><span class="p">:</span>
<span class="n">shutil</span><span class="o">.</span><span class="n">copy2</span><span class="p">(</span><span class="n">r</span><span class="p">,</span> <span class="n">reposdir</span><span class="p">)</span>
<span class="n">conf</span><span class="o">.</span><span class="n">reposdir</span> <span class="o">=</span> <span class="p">[</span><span class="n">reposdir</span><span class="p">]</span>
<span class="n">dnfbase</span><span class="o">.</span><span class="n">read_all_repos</span><span class="p">()</span>
<span class="c1"># add the sources</span>
<span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">r</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">sources</span><span class="p">):</span>
<span class="k">if</span> <span class="s2">&quot;SRPM&quot;</span> <span class="ow">in</span> <span class="n">r</span> <span class="ow">or</span> <span class="s2">&quot;srpm&quot;</span> <span class="ow">in</span> <span class="n">r</span><span class="p">:</span>
<span class="n">log</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;Skipping source repo: </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">r</span><span class="p">)</span>
<span class="k">continue</span>
<span class="n">repo_name</span> <span class="o">=</span> <span class="s2">&quot;lorax-repo-</span><span class="si">%d</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">i</span>
<span class="n">repo</span> <span class="o">=</span> <span class="n">dnf</span><span class="o">.</span><span class="n">repo</span><span class="o">.</span><span class="n">Repo</span><span class="p">(</span><span class="n">repo_name</span><span class="p">,</span> <span class="n">conf</span><span class="p">)</span>
<span class="n">repo</span><span class="o">.</span><span class="n">baseurl</span> <span class="o">=</span> <span class="p">[</span><span class="n">r</span><span class="p">]</span>
<span class="k">if</span> <span class="n">proxy</span><span class="p">:</span>
<span class="n">repo</span><span class="o">.</span><span class="n">proxy</span> <span class="o">=</span> <span class="n">proxy</span>
<span class="n">repo</span><span class="o">.</span><span class="n">enable</span><span class="p">()</span>
<span class="n">dnfbase</span><span class="o">.</span><span class="n">repos</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">repo</span><span class="p">)</span>
<span class="n">log</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;Added &#39;</span><span class="si">%s</span><span class="s2">&#39;: </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">repo_name</span><span class="p">,</span> <span class="n">r</span><span class="p">)</span>
<span class="n">log</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;Fetching metadata...&quot;</span><span class="p">)</span>
<span class="k">try</span><span class="p">:</span>
<span class="n">repo</span><span class="o">.</span><span class="n">load</span><span class="p">()</span>
<span class="k">except</span> <span class="n">dnf</span><span class="o">.</span><span class="n">exceptions</span><span class="o">.</span><span class="n">RepoError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
<span class="n">log</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s2">&quot;Error fetching metadata for </span><span class="si">%s</span><span class="s2">: </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">repo_name</span><span class="p">,</span> <span class="n">e</span><span class="p">)</span>
<span class="k">return</span> <span class="kc">None</span>
<span class="c1"># add the mirrorlists</span>
<span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">r</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">mirrorlists</span><span class="p">):</span>
<span class="k">if</span> <span class="s2">&quot;SRPM&quot;</span> <span class="ow">in</span> <span class="n">r</span> <span class="ow">or</span> <span class="s2">&quot;srpm&quot;</span> <span class="ow">in</span> <span class="n">r</span><span class="p">:</span>
<span class="n">log</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;Skipping source repo: </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">r</span><span class="p">)</span>
<span class="k">continue</span>
<span class="n">repo_name</span> <span class="o">=</span> <span class="s2">&quot;lorax-mirrorlist-</span><span class="si">%d</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">i</span>
<span class="n">repo</span> <span class="o">=</span> <span class="n">dnf</span><span class="o">.</span><span class="n">repo</span><span class="o">.</span><span class="n">Repo</span><span class="p">(</span><span class="n">repo_name</span><span class="p">,</span> <span class="n">conf</span><span class="p">)</span>
<span class="n">repo</span><span class="o">.</span><span class="n">mirrorlist</span> <span class="o">=</span> <span class="n">r</span>
<span class="k">if</span> <span class="n">proxy</span><span class="p">:</span>
<span class="n">repo</span><span class="o">.</span><span class="n">proxy</span> <span class="o">=</span> <span class="n">proxy</span>
<span class="n">repo</span><span class="o">.</span><span class="n">enable</span><span class="p">()</span>
<span class="n">dnfbase</span><span class="o">.</span><span class="n">repos</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">repo</span><span class="p">)</span>
<span class="n">log</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;Added &#39;</span><span class="si">%s</span><span class="s2">&#39;: </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">repo_name</span><span class="p">,</span> <span class="n">r</span><span class="p">)</span>
<span class="n">log</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;Fetching metadata...&quot;</span><span class="p">)</span>
<span class="k">try</span><span class="p">:</span>
<span class="n">repo</span><span class="o">.</span><span class="n">load</span><span class="p">()</span>
<span class="k">except</span> <span class="n">dnf</span><span class="o">.</span><span class="n">exceptions</span><span class="o">.</span><span class="n">RepoError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
<span class="n">log</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s2">&quot;Error fetching metadata for </span><span class="si">%s</span><span class="s2">: </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">repo_name</span><span class="p">,</span> <span class="n">e</span><span class="p">)</span>
<span class="k">return</span> <span class="kc">None</span>
<span class="c1"># Enable repos listed on the cmdline</span>
<span class="k">for</span> <span class="n">r</span> <span class="ow">in</span> <span class="n">enablerepos</span><span class="p">:</span>
<span class="n">repolist</span> <span class="o">=</span> <span class="n">dnfbase</span><span class="o">.</span><span class="n">repos</span><span class="o">.</span><span class="n">get_matching</span><span class="p">(</span><span class="n">r</span><span class="p">)</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">repolist</span><span class="p">:</span>
<span class="n">log</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s2">&quot;</span><span class="si">%s</span><span class="s2"> is an unknown repo, not enabling it&quot;</span><span class="p">,</span> <span class="n">r</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">repolist</span><span class="o">.</span><span class="n">enable</span><span class="p">()</span>
<span class="n">log</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;Enabled repo </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">r</span><span class="p">)</span>
<span class="c1"># Disable repos listed on the cmdline</span>
<span class="k">for</span> <span class="n">r</span> <span class="ow">in</span> <span class="n">disablerepos</span><span class="p">:</span>
<span class="n">repolist</span> <span class="o">=</span> <span class="n">dnfbase</span><span class="o">.</span><span class="n">repos</span><span class="o">.</span><span class="n">get_matching</span><span class="p">(</span><span class="n">r</span><span class="p">)</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">repolist</span><span class="p">:</span>
<span class="n">log</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s2">&quot;</span><span class="si">%s</span><span class="s2"> is an unknown repo, not disabling it&quot;</span><span class="p">,</span> <span class="n">r</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">repolist</span><span class="o">.</span><span class="n">disable</span><span class="p">()</span>
<span class="n">log</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;Disabled repo </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">r</span><span class="p">)</span>
<span class="n">dnfbase</span><span class="o">.</span><span class="n">fill_sack</span><span class="p">(</span><span class="n">load_system_repo</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
<span class="n">dnfbase</span><span class="o">.</span><span class="n">read_comps</span><span class="p">()</span>
<span class="k">return</span> <span class="n">dnfbase</span></div>
</pre></div>
</div>
</div>
<footer>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright 2018-2019, Red Hat, Inc.
</p>
</div>
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>

View File

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>pylorax.dnfhelper &mdash; Lorax 28.14.33 documentation</title> <title>pylorax.dnfhelper &mdash; Lorax 28.14.42 documentation</title>
@ -58,7 +58,7 @@
<div class="version"> <div class="version">
28.14.33 28.14.42
</div> </div>

View File

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>pylorax.executils &mdash; Lorax 28.14.33 documentation</title> <title>pylorax.executils &mdash; Lorax 28.14.42 documentation</title>
@ -58,7 +58,7 @@
<div class="version"> <div class="version">
28.14.33 28.14.42
</div> </div>
@ -273,6 +273,7 @@
<span class="k">if</span> <span class="n">env_add</span><span class="p">:</span> <span class="k">if</span> <span class="n">env_add</span><span class="p">:</span>
<span class="n">env</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">env_add</span><span class="p">)</span> <span class="n">env</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">env_add</span><span class="p">)</span>
<span class="c1"># pylint: disable=subprocess-popen-preexec-fn</span>
<span class="k">return</span> <span class="n">subprocess</span><span class="o">.</span><span class="n">Popen</span><span class="p">(</span><span class="n">argv</span><span class="p">,</span> <span class="k">return</span> <span class="n">subprocess</span><span class="o">.</span><span class="n">Popen</span><span class="p">(</span><span class="n">argv</span><span class="p">,</span>
<span class="n">stdin</span><span class="o">=</span><span class="n">stdin</span><span class="p">,</span> <span class="n">stdin</span><span class="o">=</span><span class="n">stdin</span><span class="p">,</span>
<span class="n">stdout</span><span class="o">=</span><span class="n">stdout</span><span class="p">,</span> <span class="n">stdout</span><span class="o">=</span><span class="n">stdout</span><span class="p">,</span>

View File

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>pylorax.imgutils &mdash; Lorax 28.14.33 documentation</title> <title>pylorax.imgutils &mdash; Lorax 28.14.42 documentation</title>
@ -58,7 +58,7 @@
<div class="version"> <div class="version">
28.14.33 28.14.42
</div> </div>

View File

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>pylorax.installer &mdash; Lorax 28.14.33 documentation</title> <title>pylorax.installer &mdash; Lorax 28.14.42 documentation</title>
@ -58,7 +58,7 @@
<div class="version"> <div class="version">
28.14.33 28.14.42
</div> </div>

View File

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>pylorax.ltmpl &mdash; Lorax 28.14.33 documentation</title> <title>pylorax.ltmpl &mdash; Lorax 28.14.42 documentation</title>
@ -58,7 +58,7 @@
<div class="version"> <div class="version">
28.14.33 28.14.42
</div> </div>

View File

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>pylorax.monitor &mdash; Lorax 28.14.33 documentation</title> <title>pylorax.monitor &mdash; Lorax 28.14.42 documentation</title>
@ -58,7 +58,7 @@
<div class="version"> <div class="version">
28.14.33 28.14.42
</div> </div>

View File

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>pylorax.mount &mdash; Lorax 28.14.33 documentation</title> <title>pylorax.mount &mdash; Lorax 28.14.42 documentation</title>
@ -58,7 +58,7 @@
<div class="version"> <div class="version">
28.14.33 28.14.42
</div> </div>

View File

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>pylorax.sysutils &mdash; Lorax 28.14.33 documentation</title> <title>pylorax.sysutils &mdash; Lorax 28.14.42 documentation</title>
@ -58,7 +58,7 @@
<div class="version"> <div class="version">
28.14.33 28.14.42
</div> </div>

View File

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>pylorax.treebuilder &mdash; Lorax 28.14.33 documentation</title> <title>pylorax.treebuilder &mdash; Lorax 28.14.42 documentation</title>
@ -58,7 +58,7 @@
<div class="version"> <div class="version">
28.14.33 28.14.42
</div> </div>
@ -230,7 +230,8 @@
<span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">product</span><span class="p">,</span> <span class="n">arch</span><span class="p">,</span> <span class="n">dbo</span><span class="p">,</span> <span class="n">templatedir</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">product</span><span class="p">,</span> <span class="n">arch</span><span class="p">,</span> <span class="n">dbo</span><span class="p">,</span> <span class="n">templatedir</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
<span class="n">installpkgs</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">excludepkgs</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">installpkgs</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">excludepkgs</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
<span class="n">add_templates</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">add_templates</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
<span class="n">add_template_vars</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> <span class="n">add_template_vars</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
<span class="n">skip_branding</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
<span class="n">root</span> <span class="o">=</span> <span class="n">dbo</span><span class="o">.</span><span class="n">conf</span><span class="o">.</span><span class="n">installroot</span> <span class="n">root</span> <span class="o">=</span> <span class="n">dbo</span><span class="o">.</span><span class="n">conf</span><span class="o">.</span><span class="n">installroot</span>
<span class="c1"># use a copy of product so we can modify it locally</span> <span class="c1"># use a copy of product so we can modify it locally</span>
<span class="n">product</span> <span class="o">=</span> <span class="n">product</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="n">product</span> <span class="o">=</span> <span class="n">product</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
@ -246,23 +247,36 @@
<span class="bp">self</span><span class="o">.</span><span class="n">_excludepkgs</span> <span class="o">=</span> <span class="n">excludepkgs</span> <span class="ow">or</span> <span class="p">[]</span> <span class="bp">self</span><span class="o">.</span><span class="n">_excludepkgs</span> <span class="o">=</span> <span class="n">excludepkgs</span> <span class="ow">or</span> <span class="p">[]</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_runner</span><span class="o">.</span><span class="n">defaults</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">vars</span> <span class="bp">self</span><span class="o">.</span><span class="n">_runner</span><span class="o">.</span><span class="n">defaults</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">vars</span>
<span class="bp">self</span><span class="o">.</span><span class="n">dbo</span><span class="o">.</span><span class="n">reset</span><span class="p">()</span> <span class="bp">self</span><span class="o">.</span><span class="n">dbo</span><span class="o">.</span><span class="n">reset</span><span class="p">()</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_skip_branding</span> <span class="o">=</span> <span class="n">skip_branding</span>
<span class="k">def</span> <span class="nf">_install_branding</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <span class="k">def</span> <span class="nf">_install_branding</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Select the branding from the available &#39;system-release&#39; packages</span>
<span class="sd"> The *best* way to control this is to have a single package in the repo provide &#39;system-release&#39;</span>
<span class="sd"> When there are more than 1 package it will:</span>
<span class="sd"> - Make a list of the available packages</span>
<span class="sd"> - If variant is set look for a package ending with lower(variant) and use that</span>
<span class="sd"> - If there are one or more non-generic packages, use the first one after sorting</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_skip_branding</span><span class="p">:</span>
<span class="k">return</span>
<span class="n">release</span> <span class="o">=</span> <span class="kc">None</span> <span class="n">release</span> <span class="o">=</span> <span class="kc">None</span>
<span class="n">q</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dbo</span><span class="o">.</span><span class="n">sack</span><span class="o">.</span><span class="n">query</span><span class="p">()</span> <span class="n">q</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dbo</span><span class="o">.</span><span class="n">sack</span><span class="o">.</span><span class="n">query</span><span class="p">()</span>
<span class="n">a</span> <span class="o">=</span> <span class="n">q</span><span class="o">.</span><span class="n">available</span><span class="p">()</span> <span class="n">a</span> <span class="o">=</span> <span class="n">q</span><span class="o">.</span><span class="n">available</span><span class="p">()</span>
<span class="k">for</span> <span class="n">pkg</span> <span class="ow">in</span> <span class="n">a</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">provides</span><span class="o">=</span><span class="s1">&#39;system-release&#39;</span><span class="p">):</span> <span class="n">pkgs</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">([</span><span class="n">p</span><span class="o">.</span><span class="n">name</span> <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">a</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">provides</span><span class="o">=</span><span class="s1">&#39;system-release&#39;</span><span class="p">)</span>
<span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;Found release package </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">pkg</span><span class="p">)</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">p</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s2">&quot;generic&quot;</span><span class="p">)])</span>
<span class="k">if</span> <span class="n">pkg</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s1">&#39;generic&#39;</span><span class="p">):</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">pkgs</span><span class="p">:</span>
<span class="k">continue</span> <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s2">&quot;No system-release packages found, could not get the release&quot;</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">release</span> <span class="o">=</span> <span class="n">pkg</span><span class="o">.</span><span class="n">name</span>
<span class="k">break</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">release</span><span class="p">:</span>
<span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s1">&#39;could not get the release&#39;</span><span class="p">)</span>
<span class="k">return</span> <span class="k">return</span>
<span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;system-release packages: </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">pkgs</span><span class="p">)</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">vars</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">variant</span><span class="p">:</span>
<span class="n">variant</span> <span class="o">=</span> <span class="p">[</span><span class="n">p</span> <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">pkgs</span> <span class="k">if</span> <span class="n">p</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s2">&quot;-&quot;</span><span class="o">+</span><span class="bp">self</span><span class="o">.</span><span class="n">vars</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">variant</span><span class="o">.</span><span class="n">lower</span><span class="p">())]</span>
<span class="k">if</span> <span class="n">variant</span><span class="p">:</span>
<span class="n">release</span> <span class="o">=</span> <span class="n">variant</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">release</span><span class="p">:</span>
<span class="n">release</span> <span class="o">=</span> <span class="n">pkgs</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
<span class="c1"># release</span> <span class="c1"># release</span>
<span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">&#39;got release: </span><span class="si">%s</span><span class="s1">&#39;</span><span class="p">,</span> <span class="n">release</span><span class="p">)</span> <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">&#39;got release: </span><span class="si">%s</span><span class="s1">&#39;</span><span class="p">,</span> <span class="n">release</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_runner</span><span class="o">.</span><span class="n">installpkg</span><span class="p">(</span><span class="n">release</span><span class="p">)</span> <span class="bp">self</span><span class="o">.</span><span class="n">_runner</span><span class="o">.</span><span class="n">installpkg</span><span class="p">(</span><span class="n">release</span><span class="p">)</span>

View File

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>pylorax.treeinfo &mdash; Lorax 28.14.33 documentation</title> <title>pylorax.treeinfo &mdash; Lorax 28.14.42 documentation</title>
@ -58,7 +58,7 @@
<div class="version"> <div class="version">
28.14.33 28.14.42
</div> </div>

View File

@ -54,6 +54,29 @@ Under ``./results/`` will be the release tree files: .discinfo, .treeinfo, every
goes onto the boot.iso, the pxeboot directory, and the boot.iso under ``./images/``. goes onto the boot.iso, the pxeboot directory, and the boot.iso under ``./images/``.
Branding
--------
By default lorax will search for the first package that provides ``system-release``
that doesn't start with ``generic-`` and will install it. It then selects a
corresponding logo package by using the first part of the system-release package and
appending ``-logos`` to it. eg. fedora-release and fedora-logos.
Custom Branding
~~~~~~~~~~~~~~~
If ``--skip-branding`` is passed to lorax it will skip selecting the
``system-release``, and logos packages and leave it up to the user to pass any
branding related packages to lorax using ``--installpkgs``. When using
``skip-branding`` you must make sure that you provide all of the expected files,
otherwise Anaconda may not work as expected. See the contents of ``fedora-release``
and ``fedora-logos`` for examples of what to include.
Note that this does not prevent something else in the dependency tree from
causing these packages to be included. Using ``--excludepkgs`` may help if they
are unexpectedly included.
Running inside of mock Running inside of mock
---------------------- ----------------------

View File

@ -6,7 +6,7 @@ Subpackages
.. toctree:: .. toctree::
pylorax.api pylorax.api
Submodules Submodules
---------- ----------
@ -15,143 +15,151 @@ pylorax.base module
------------------- -------------------
.. automodule:: pylorax.base .. automodule:: pylorax.base
:members: :members:
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
pylorax.buildstamp module pylorax.buildstamp module
------------------------- -------------------------
.. automodule:: pylorax.buildstamp .. automodule:: pylorax.buildstamp
:members: :members:
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
pylorax.cmdline module pylorax.cmdline module
---------------------- ----------------------
.. automodule:: pylorax.cmdline .. automodule:: pylorax.cmdline
:members: :members:
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
pylorax.creator module pylorax.creator module
---------------------- ----------------------
.. automodule:: pylorax.creator .. automodule:: pylorax.creator
:members: :members:
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
pylorax.decorators module pylorax.decorators module
------------------------- -------------------------
.. automodule:: pylorax.decorators .. automodule:: pylorax.decorators
:members: :members:
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
pylorax.discinfo module pylorax.discinfo module
----------------------- -----------------------
.. automodule:: pylorax.discinfo .. automodule:: pylorax.discinfo
:members: :members:
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
pylorax.dnfbase module
----------------------
.. automodule:: pylorax.dnfbase
:members:
:undoc-members:
:show-inheritance:
pylorax.dnfhelper module pylorax.dnfhelper module
------------------------ ------------------------
.. automodule:: pylorax.dnfhelper .. automodule:: pylorax.dnfhelper
:members: :members:
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
pylorax.executils module pylorax.executils module
------------------------ ------------------------
.. automodule:: pylorax.executils .. automodule:: pylorax.executils
:members: :members:
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
pylorax.imgutils module pylorax.imgutils module
----------------------- -----------------------
.. automodule:: pylorax.imgutils .. automodule:: pylorax.imgutils
:members: :members:
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
pylorax.installer module pylorax.installer module
------------------------ ------------------------
.. automodule:: pylorax.installer .. automodule:: pylorax.installer
:members: :members:
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
pylorax.ltmpl module pylorax.ltmpl module
-------------------- --------------------
.. automodule:: pylorax.ltmpl .. automodule:: pylorax.ltmpl
:members: :members:
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
pylorax.monitor module pylorax.monitor module
---------------------- ----------------------
.. automodule:: pylorax.monitor .. automodule:: pylorax.monitor
:members: :members:
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
pylorax.mount module pylorax.mount module
-------------------- --------------------
.. automodule:: pylorax.mount .. automodule:: pylorax.mount
:members: :members:
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
pylorax.output module pylorax.output module
--------------------- ---------------------
.. automodule:: pylorax.output .. automodule:: pylorax.output
:members: :members:
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
pylorax.sysutils module pylorax.sysutils module
----------------------- -----------------------
.. automodule:: pylorax.sysutils .. automodule:: pylorax.sysutils
:members: :members:
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
pylorax.treebuilder module pylorax.treebuilder module
-------------------------- --------------------------
.. automodule:: pylorax.treebuilder .. automodule:: pylorax.treebuilder
:members: :members:
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
pylorax.treeinfo module pylorax.treeinfo module
----------------------- -----------------------
.. automodule:: pylorax.treeinfo .. automodule:: pylorax.treeinfo
:members: :members:
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
Module contents Module contents
--------------- ---------------
.. automodule:: pylorax .. automodule:: pylorax
:members: :members:
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:

View File

@ -231,6 +231,16 @@ a.headerlink {
visibility: hidden; visibility: hidden;
} }
a.brackets:before,
span.brackets > a:before{
content: "[";
}
a.brackets:after,
span.brackets > a:after {
content: "]";
}
h1:hover > a.headerlink, h1:hover > a.headerlink,
h2:hover > a.headerlink, h2:hover > a.headerlink,
h3:hover > a.headerlink, h3:hover > a.headerlink,
@ -279,6 +289,12 @@ img.align-center, .figure.align-center, object.align-center {
margin-right: auto; margin-right: auto;
} }
img.align-default, .figure.align-default {
display: block;
margin-left: auto;
margin-right: auto;
}
.align-left { .align-left {
text-align: left; text-align: left;
} }
@ -287,6 +303,10 @@ img.align-center, .figure.align-center, object.align-center {
text-align: center; text-align: center;
} }
.align-default {
text-align: center;
}
.align-right { .align-right {
text-align: right; text-align: right;
} }
@ -358,6 +378,11 @@ table.align-center {
margin-right: auto; margin-right: auto;
} }
table.align-default {
margin-left: auto;
margin-right: auto;
}
table caption span.caption-number { table caption span.caption-number {
font-style: italic; font-style: italic;
} }
@ -391,6 +416,16 @@ table.citation td {
border-bottom: none; border-bottom: none;
} }
th > p:first-child,
td > p:first-child {
margin-top: 0px;
}
th > p:last-child,
td > p:last-child {
margin-bottom: 0px;
}
/* -- figures --------------------------------------------------------------- */ /* -- figures --------------------------------------------------------------- */
div.figure { div.figure {
@ -460,11 +495,57 @@ ol.upperroman {
list-style: upper-roman; list-style: upper-roman;
} }
li > p:first-child {
margin-top: 0px;
}
li > p:last-child {
margin-bottom: 0px;
}
dl.footnote > dt,
dl.citation > dt {
float: left;
}
dl.footnote > dd,
dl.citation > dd {
margin-bottom: 0em;
}
dl.footnote > dd:after,
dl.citation > dd:after {
content: "";
clear: both;
}
dl.field-list {
display: flex;
flex-wrap: wrap;
}
dl.field-list > dt {
flex-basis: 20%;
font-weight: bold;
word-break: break-word;
}
dl.field-list > dt:after {
content: ":";
}
dl.field-list > dd {
flex-basis: 70%;
padding-left: 1em;
margin-left: 0em;
margin-bottom: 0em;
}
dl { dl {
margin-bottom: 15px; margin-bottom: 15px;
} }
dd p { dd > p:first-child {
margin-top: 0px; margin-top: 0px;
} }
@ -537,6 +618,12 @@ dl.glossary dt {
font-style: oblique; font-style: oblique;
} }
.classifier:before {
font-style: normal;
margin: 0.5em;
content: ":";
}
abbr, acronym { abbr, acronym {
border-bottom: dotted 1px; border-bottom: dotted 1px;
cursor: help; cursor: help;

View File

@ -87,14 +87,13 @@ jQuery.fn.highlightText = function(text, className) {
node.nextSibling)); node.nextSibling));
node.nodeValue = val.substr(0, pos); node.nodeValue = val.substr(0, pos);
if (isInSVG) { if (isInSVG) {
var bbox = span.getBBox();
var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect");
rect.x.baseVal.value = bbox.x; var bbox = node.parentElement.getBBox();
rect.x.baseVal.value = bbox.x;
rect.y.baseVal.value = bbox.y; rect.y.baseVal.value = bbox.y;
rect.width.baseVal.value = bbox.width; rect.width.baseVal.value = bbox.width;
rect.height.baseVal.value = bbox.height; rect.height.baseVal.value = bbox.height;
rect.setAttribute('class', className); rect.setAttribute('class', className);
var parentOfText = node.parentNode.parentNode;
addItems.push({ addItems.push({
"parent": node.parentNode, "parent": node.parentNode,
"target": rect}); "target": rect});

View File

@ -1,10 +1,10 @@
var DOCUMENTATION_OPTIONS = { var DOCUMENTATION_OPTIONS = {
URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
VERSION: '28.14.33', VERSION: '28.14.42',
LANGUAGE: 'None', LANGUAGE: 'None',
COLLAPSE_INDEX: false, COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html', FILE_SUFFIX: '.html',
HAS_SOURCE: true, HAS_SOURCE: true,
SOURCELINK_SUFFIX: '.txt', SOURCELINK_SUFFIX: '.txt',
NAVIGATION_WITH_KEYS: false, NAVIGATION_WITH_KEYS: false
}; };

View File

@ -36,8 +36,10 @@ if (!Scorer) {
// query found in title // query found in title
title: 15, title: 15,
partialTitle: 7,
// query found in terms // query found in terms
term: 5 term: 5,
partialTerm: 2
}; };
} }
@ -56,6 +58,14 @@ var Search = {
_queued_query : null, _queued_query : null,
_pulse_status : -1, _pulse_status : -1,
htmlToText : function(htmlString) {
var htmlElement = document.createElement('span');
htmlElement.innerHTML = htmlString;
$(htmlElement).find('.headerlink').remove();
docContent = $(htmlElement).find('[role=main]')[0];
return docContent.textContent || docContent.innerText;
},
init : function() { init : function() {
var params = $.getQueryParameters(); var params = $.getQueryParameters();
if (params.q) { if (params.q) {
@ -120,7 +130,7 @@ var Search = {
this.out = $('#search-results'); this.out = $('#search-results');
this.title = $('<h2>' + _('Searching') + '</h2>').appendTo(this.out); this.title = $('<h2>' + _('Searching') + '</h2>').appendTo(this.out);
this.dots = $('<span></span>').appendTo(this.title); this.dots = $('<span></span>').appendTo(this.title);
this.status = $('<p style="display: none"></p>').appendTo(this.out); this.status = $('<p class="search-summary">&nbsp;</p>').appendTo(this.out);
this.output = $('<ul class="search"/>').appendTo(this.out); this.output = $('<ul class="search"/>').appendTo(this.out);
$('#search-progress').text(_('Preparing search...')); $('#search-progress').text(_('Preparing search...'));
@ -259,11 +269,7 @@ var Search = {
displayNextItem(); displayNextItem();
}); });
} else if (DOCUMENTATION_OPTIONS.HAS_SOURCE) { } else if (DOCUMENTATION_OPTIONS.HAS_SOURCE) {
var suffix = DOCUMENTATION_OPTIONS.SOURCELINK_SUFFIX; $.ajax({url: DOCUMENTATION_OPTIONS.URL_ROOT + item[0] + DOCUMENTATION_OPTIONS.FILE_SUFFIX,
if (suffix === undefined) {
suffix = '.txt';
}
$.ajax({url: DOCUMENTATION_OPTIONS.URL_ROOT + '_sources/' + item[5] + (item[5].slice(-suffix.length) === suffix ? '' : suffix),
dataType: "text", dataType: "text",
complete: function(jqxhr, textstatus) { complete: function(jqxhr, textstatus) {
var data = jqxhr.responseText; var data = jqxhr.responseText;
@ -313,12 +319,13 @@ var Search = {
for (var prefix in objects) { for (var prefix in objects) {
for (var name in objects[prefix]) { for (var name in objects[prefix]) {
var fullname = (prefix ? prefix + '.' : '') + name; var fullname = (prefix ? prefix + '.' : '') + name;
if (fullname.toLowerCase().indexOf(object) > -1) { var fullnameLower = fullname.toLowerCase()
if (fullnameLower.indexOf(object) > -1) {
var score = 0; var score = 0;
var parts = fullname.split('.'); var parts = fullnameLower.split('.');
// check for different match types: exact matches of full name or // check for different match types: exact matches of full name or
// "last name" (i.e. last dotted part) // "last name" (i.e. last dotted part)
if (fullname == object || parts[parts.length - 1] == object) { if (fullnameLower == object || parts[parts.length - 1] == object) {
score += Scorer.objNameMatch; score += Scorer.objNameMatch;
// matches in last name // matches in last name
} else if (parts[parts.length - 1].indexOf(object) > -1) { } else if (parts[parts.length - 1].indexOf(object) > -1) {
@ -385,6 +392,19 @@ var Search = {
{files: terms[word], score: Scorer.term}, {files: terms[word], score: Scorer.term},
{files: titleterms[word], score: Scorer.title} {files: titleterms[word], score: Scorer.title}
]; ];
// add support for partial matches
if (word.length > 2) {
for (var w in terms) {
if (w.match(word) && !terms[word]) {
_o.push({files: terms[w], score: Scorer.partialTerm})
}
}
for (var w in titleterms) {
if (w.match(word) && !titleterms[word]) {
_o.push({files: titleterms[w], score: Scorer.partialTitle})
}
}
}
// no match but word was a required one // no match but word was a required one
if ($u.every(_o, function(o){return o.files === undefined;})) { if ($u.every(_o, function(o){return o.files === undefined;})) {
@ -424,8 +444,12 @@ var Search = {
var valid = true; var valid = true;
// check if all requirements are matched // check if all requirements are matched
if (fileMap[file].length != searchterms.length) var filteredTermCount = // as search terms with length < 3 are discarded: ignore
continue; searchterms.filter(function(term){return term.length > 2}).length
if (
fileMap[file].length != searchterms.length &&
fileMap[file].length != filteredTermCount
) continue;
// ensure that none of the excluded terms is in the search result // ensure that none of the excluded terms is in the search result
for (i = 0; i < excluded.length; i++) { for (i = 0; i < excluded.length; i++) {
@ -456,7 +480,8 @@ var Search = {
* words. the first one is used to find the occurrence, the * words. the first one is used to find the occurrence, the
* latter for highlighting it. * latter for highlighting it.
*/ */
makeSearchSummary : function(text, keywords, hlwords) { makeSearchSummary : function(htmlText, keywords, hlwords) {
var text = Search.htmlToText(htmlText);
var textLower = text.toLowerCase(); var textLower = text.toLowerCase();
var start = 0; var start = 0;
$.each(keywords, function() { $.each(keywords, function() {

View File

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>composer-cli &mdash; Lorax 28.14.33 documentation</title> <title>composer-cli &mdash; Lorax 28.14.42 documentation</title>
@ -60,7 +60,7 @@
<div class="version"> <div class="version">
28.14.33 28.14.42
</div> </div>
@ -91,11 +91,7 @@
<li class="toctree-l1"><a class="reference internal" href="livemedia-creator.html">livemedia-creator</a></li> <li class="toctree-l1"><a class="reference internal" href="livemedia-creator.html">livemedia-creator</a></li>
<li class="toctree-l1"><a class="reference internal" href="lorax-composer.html">lorax-composer</a></li> <li class="toctree-l1"><a class="reference internal" href="lorax-composer.html">lorax-composer</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">composer-cli</a><ul> <li class="toctree-l1 current"><a class="current reference internal" href="#">composer-cli</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#composer-cli-cmdline-arguments">composer-cli cmdline arguments</a><ul> <li class="toctree-l2"><a class="reference internal" href="#composer-cli-cmdline-arguments">composer-cli cmdline arguments</a></li>
<li class="toctree-l3"><a class="reference internal" href="#Positional Arguments">Positional Arguments</a></li>
<li class="toctree-l3"><a class="reference internal" href="#Named Arguments">Named Arguments</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#edit-a-blueprint">Edit a Blueprint</a></li> <li class="toctree-l2"><a class="reference internal" href="#edit-a-blueprint">Edit a Blueprint</a></li>
<li class="toctree-l2"><a class="reference internal" href="#build-an-image">Build an image</a></li> <li class="toctree-l2"><a class="reference internal" href="#build-an-image">Build an image</a></li>
<li class="toctree-l2"><a class="reference internal" href="#monitor-the-build-status">Monitor the build status</a></li> <li class="toctree-l2"><a class="reference internal" href="#monitor-the-build-status">Monitor the build status</a></li>
@ -170,149 +166,17 @@
<div class="section" id="composer-cli"> <div class="section" id="composer-cli">
<h1>composer-cli<a class="headerlink" href="#composer-cli" title="Permalink to this headline"></a></h1> <h1>composer-cli<a class="headerlink" href="#composer-cli" title="Permalink to this headline"></a></h1>
<table class="docutils field-list" frame="void" rules="none"> <dl class="field-list simple">
<col class="field-name" /> <dt class="field-odd">Authors</dt>
<col class="field-body" /> <dd class="field-odd"><p>Brian C. Lane &lt;<a class="reference external" href="mailto:bcl&#37;&#52;&#48;redhat&#46;com">bcl<span>&#64;</span>redhat<span>&#46;</span>com</a>&gt;</p>
<tbody valign="top"> </dd>
<tr class="field-odd field"><th class="field-name">Authors:</th><td class="field-body">Brian C. Lane &lt;<a class="reference external" href="mailto:bcl&#37;&#52;&#48;redhat&#46;com">bcl<span>&#64;</span>redhat<span>&#46;</span>com</a>&gt;</td> </dl>
</tr>
</tbody>
</table>
<p><code class="docutils literal notranslate"><span class="pre">composer-cli</span></code> is used to interact with the <code class="docutils literal notranslate"><span class="pre">lorax-composer</span></code> API server, managing blueprints, exploring available packages, and building new images.</p> <p><code class="docutils literal notranslate"><span class="pre">composer-cli</span></code> is used to interact with the <code class="docutils literal notranslate"><span class="pre">lorax-composer</span></code> API server, managing blueprints, exploring available packages, and building new images.</p>
<p>It requires <a class="reference external" href="lorax-composer.html">lorax-composer</a> to be installed on the <p>It requires <a class="reference external" href="lorax-composer.html">lorax-composer</a> to be installed on the
local system, and the user running it needs to be a member of the <code class="docutils literal notranslate"><span class="pre">weldr</span></code> local system, and the user running it needs to be a member of the <code class="docutils literal notranslate"><span class="pre">weldr</span></code>
group. They do not need to be root, but all of the <a class="reference external" href="lorax-composer.html#security">security precautions</a> apply.</p> group. They do not need to be root, but all of the <a class="reference external" href="lorax-composer.html#security">security precautions</a> apply.</p>
<div class="section" id="composer-cli-cmdline-arguments"> <div class="section" id="composer-cli-cmdline-arguments">
<h2>composer-cli cmdline arguments<a class="headerlink" href="#composer-cli-cmdline-arguments" title="Permalink to this headline"></a></h2> <h2>composer-cli cmdline arguments<a class="headerlink" href="#composer-cli-cmdline-arguments" title="Permalink to this headline"></a></h2>
<p>Lorax Composer commandline tool</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">usage</span><span class="p">:</span> <span class="n">composer</span><span class="o">-</span><span class="n">cli</span> <span class="p">[</span><span class="o">-</span><span class="n">h</span><span class="p">]</span> <span class="p">[</span><span class="o">-</span><span class="n">j</span><span class="p">]</span> <span class="p">[</span><span class="o">-</span><span class="n">s</span> <span class="n">SOCKET</span><span class="p">]</span> <span class="p">[</span><span class="o">--</span><span class="n">log</span> <span class="n">LOG</span><span class="p">]</span> <span class="p">[</span><span class="o">-</span><span class="n">a</span> <span class="n">APIVER</span><span class="p">]</span>
<span class="p">[</span><span class="o">--</span><span class="n">test</span> <span class="n">TESTMODE</span><span class="p">]</span> <span class="p">[</span><span class="o">-</span><span class="n">V</span><span class="p">]</span>
<span class="o">...</span>
</pre></div>
</div>
<div class="section" id="Positional Arguments">
<h3>Positional Arguments<a class="headerlink" href="#Positional Arguments" title="Permalink to this headline"></a></h3>
<table class="docutils option-list" frame="void" rules="none">
<col class="option" />
<col class="description" />
<tbody valign="top">
<tr><td class="option-group">
<kbd>args</kbd></td>
<td></td></tr>
</tbody>
</table>
</div>
<div class="section" id="Named Arguments">
<h3>Named Arguments<a class="headerlink" href="#Named Arguments" title="Permalink to this headline"></a></h3>
<table class="docutils option-list" frame="void" rules="none">
<col class="option" />
<col class="description" />
<tbody valign="top">
<tr><td class="option-group">
<kbd>-j, --json</kbd></td>
<td><p class="first">Output the raw JSON response instead of the normal output.</p>
<p class="last">Default: False</p>
</td></tr>
<tr><td class="option-group">
<kbd>-s, --socket</kbd></td>
<td><p class="first">Path to the socket file to listen on</p>
<p class="last">Default: “/run/weldr/api.socket”</p>
</td></tr>
<tr><td class="option-group">
<kbd>--log</kbd></td>
<td>Path to logfile (./composer-cli.log)</td></tr>
<tr><td class="option-group">
<kbd>-a, --api</kbd></td>
<td><p class="first">API Version to use</p>
<p class="last">Default: “0”</p>
</td></tr>
<tr><td class="option-group">
<kbd>--test</kbd></td>
<td><p class="first">Pass test mode to compose. 1=Mock compose with fail. 2=Mock compose with finished.</p>
<p class="last">Default: 0</p>
</td></tr>
<tr><td class="option-group">
<kbd>-V</kbd></td>
<td><p class="first">show programs version number and exit</p>
<p class="last">Default: False</p>
</td></tr>
</tbody>
</table>
</div>
<p><dl class="docutils">
<dt>compose start &lt;BLUEPRINT&gt; &lt;TYPE&gt;</dt>
<dd>Start a compose using the selected blueprint and output type.</dd>
<dt>compose types</dt>
<dd>List the supported output types.</dd>
<dt>compose status</dt>
<dd>List the status of all running and finished composes.</dd>
<dt>compose list [waiting|running|finished|failed]</dt>
<dd>List basic information about composes.</dd>
<dt>compose log &lt;UUID&gt; [&lt;SIZE&gt;]</dt>
<dd>Show the last SIZE kB of the compose log.</dd>
<dt>compose cancel &lt;UUID&gt;</dt>
<dd>Cancel a running compose and delete any intermediate results.</dd>
<dt>compose delete &lt;UUID,…&gt;</dt>
<dd>Delete the listed compose results.</dd>
<dt>compose info &lt;UUID&gt;</dt>
<dd>Show detailed information on the compose.</dd>
<dt>compose metadata &lt;UUID&gt;</dt>
<dd>Download the metadata use to create the compose to &lt;uuid&gt;-metadata.tar</dd>
<dt>compose logs &lt;UUID&gt;</dt>
<dd>Download the compose logs to &lt;uuid&gt;-logs.tar</dd>
<dt>compose results &lt;UUID&gt;</dt>
<dd>Download all of the compose results; metadata, logs, and image to &lt;uuid&gt;.tar</dd>
<dt>compose image &lt;UUID&gt;</dt>
<dd>Download the output image from the compose. Filename depends on the type.</dd>
<dt>blueprints list</dt>
<dd>List the names of the available blueprints.</dd>
<dt>blueprints show &lt;BLUEPRINT,…&gt;</dt>
<dd>Display the blueprint in TOML format.</dd>
<dt>blueprints changes &lt;BLUEPRINT,…&gt;</dt>
<dd>Display the changes for each blueprint.</dd>
<dt>blueprints diff &lt;BLUEPRINT&gt; &lt;FROM-COMMIT&gt; &lt;TO-COMMIT&gt;</dt>
<dd>Display the differences between 2 versions of a blueprint.
FROM-COMMIT can be a commit hash or NEWEST
TO-COMMIT can be a commit hash, NEWEST, or WORKSPACE</dd>
<dt>blueprints save &lt;BLUEPRINT,…&gt;</dt>
<dd>Save the blueprint to a file, &lt;BLUEPRINT&gt;.toml</dd>
<dt>blueprints delete &lt;BLUEPRINT&gt;</dt>
<dd>Delete a blueprint from the server</dd>
<dt>blueprints depsolve &lt;BLUEPRINT,…&gt;</dt>
<dd>Display the packages needed to install the blueprint.</dd>
<dt>blueprints push &lt;BLUEPRINT&gt;</dt>
<dd>Push a blueprint TOML file to the server.</dd>
<dt>blueprints freeze &lt;BLUEPRINT,…&gt;</dt>
<dd>Display the frozen blueprints modules and packages.</dd>
<dt>blueprints freeze show &lt;BLUEPRINT,…&gt;</dt>
<dd>Display the frozen blueprint in TOML format.</dd>
<dt>blueprints freeze save &lt;BLUEPRINT,…&gt;</dt>
<dd>Save the frozen blueprint to a file, &lt;blueprint-name&gt;.frozen.toml.</dd>
<dt>blueprints tag &lt;BLUEPRINT&gt;</dt>
<dd>Tag the most recent blueprint commit as a release.</dd>
<dt>blueprints undo &lt;BLUEPRINT&gt; &lt;COMMIT&gt;</dt>
<dd>Undo changes to a blueprint by reverting to the selected commit.</dd>
<dt>blueprints workspace &lt;BLUEPRINT&gt;</dt>
<dd>Push the blueprint TOML to the temporary workspace storage.</dd>
<dt>modules list</dt>
<dd>List the available modules.</dd>
<dt>projects list</dt>
<dd>List the available projects.</dd>
<dt>projects info &lt;PROJECT,…&gt;</dt>
<dd>Show details about the listed projects.</dd>
<dt>sources list</dt>
<dd>List the available sources</dd>
<dt>sources info &lt;SOURCE-NAME,…&gt;</dt>
<dd>Details about the source.</dd>
<dt>sources add &lt;SOURCE.TOML&gt;</dt>
<dd>Add a package source to the server.</dd>
<dt>sources change &lt;SOURCE.TOML&gt;</dt>
<dd>Change an existing source</dd>
<dt>sources delete &lt;SOURCE-NAME&gt;</dt>
<dd>Delete a package source.</dd>
</dl>
<p>status show Show API server status.</p>
</p>
</div> </div>
<div class="section" id="edit-a-blueprint"> <div class="section" id="edit-a-blueprint">
<h2>Edit a Blueprint<a class="headerlink" href="#edit-a-blueprint" title="Permalink to this headline"></a></h2> <h2>Edit a Blueprint<a class="headerlink" href="#edit-a-blueprint" title="Permalink to this headline"></a></h2>

View File

@ -9,7 +9,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Index &mdash; Lorax 28.14.33 documentation</title> <title>Index &mdash; Lorax 28.14.42 documentation</title>
@ -59,7 +59,7 @@
<div class="version"> <div class="version">
28.14.33 28.14.42
</div> </div>
@ -338,7 +338,7 @@
</li> </li>
</ul></td> </ul></td>
<td style="width: 33%; vertical-align: top;"><ul> <td style="width: 33%; vertical-align: top;"><ul>
<li><a href="pylorax.api.html#pylorax.api.server.GitLock.dir">dir (pylorax.api.server.GitLock attribute)</a> <li><a href="pylorax.api.html#pylorax.api.server.GitLock.dir">dir() (pylorax.api.server.GitLock property)</a>
</li> </li>
<li><a href="pylorax.html#pylorax.discinfo.DiscInfo">DiscInfo (class in pylorax.discinfo)</a> <li><a href="pylorax.html#pylorax.discinfo.DiscInfo">DiscInfo (class in pylorax.discinfo)</a>
</li> </li>
@ -352,7 +352,7 @@
</li> </li>
<li><a href="pylorax.html#pylorax.imgutils.do_grafts">do_grafts() (in module pylorax.imgutils)</a> <li><a href="pylorax.html#pylorax.imgutils.do_grafts">do_grafts() (in module pylorax.imgutils)</a>
</li> </li>
<li><a href="pylorax.html#pylorax.treebuilder.TreeBuilder.dracut_hooks_path">dracut_hooks_path (pylorax.treebuilder.TreeBuilder attribute)</a> <li><a href="pylorax.html#pylorax.treebuilder.TreeBuilder.dracut_hooks_path">dracut_hooks_path() (pylorax.treebuilder.TreeBuilder property)</a>
</li> </li>
</ul></td> </ul></td>
</tr></table> </tr></table>
@ -388,7 +388,7 @@
<td style="width: 33%; vertical-align: top;"><ul> <td style="width: 33%; vertical-align: top;"><ul>
<li><a href="pylorax.html#pylorax.creator.FakeDNF">FakeDNF (class in pylorax.creator)</a> <li><a href="pylorax.html#pylorax.creator.FakeDNF">FakeDNF (class in pylorax.creator)</a>
</li> </li>
<li><a href="pylorax.api.html#pylorax.api.recipes.Recipe.filename">filename (pylorax.api.recipes.Recipe attribute)</a> <li><a href="pylorax.api.html#pylorax.api.recipes.Recipe.filename">filename() (pylorax.api.recipes.Recipe property)</a>
</li> </li>
<li><a href="pylorax.api.html#pylorax.api.recipes.find_commit_tag">find_commit_tag() (in module pylorax.api.recipes)</a> <li><a href="pylorax.api.html#pylorax.api.recipes.find_commit_tag">find_commit_tag() (in module pylorax.api.recipes)</a>
</li> </li>
@ -437,17 +437,19 @@
<li><a href="pylorax.api.html#pylorax.api.config.ComposerConfig.get_default">get_default() (pylorax.api.config.ComposerConfig method)</a> <li><a href="pylorax.api.html#pylorax.api.config.ComposerConfig.get_default">get_default() (pylorax.api.config.ComposerConfig method)</a>
</li> </li>
<li><a href="pylorax.api.html#pylorax.api.compose.get_default_services">get_default_services() (in module pylorax.api.compose)</a> <li><a href="pylorax.api.html#pylorax.api.compose.get_default_services">get_default_services() (in module pylorax.api.compose)</a>
</li>
<li><a href="pylorax.html#pylorax.dnfbase.get_dnf_base_object">get_dnf_base_object() (in module pylorax.dnfbase)</a>
</li> </li>
<li><a href="pylorax.api.html#pylorax.api.compose.get_extra_pkgs">get_extra_pkgs() (in module pylorax.api.compose)</a> <li><a href="pylorax.api.html#pylorax.api.compose.get_extra_pkgs">get_extra_pkgs() (in module pylorax.api.compose)</a>
</li> </li>
<li><a href="pylorax.api.html#pylorax.api.compose.get_firewall_settings">get_firewall_settings() (in module pylorax.api.compose)</a> <li><a href="pylorax.api.html#pylorax.api.compose.get_firewall_settings">get_firewall_settings() (in module pylorax.api.compose)</a>
</li> </li>
<li><a href="pylorax.api.html#pylorax.api.queue.get_image_name">get_image_name() (in module pylorax.api.queue)</a> <li><a href="pylorax.api.html#pylorax.api.queue.get_image_name">get_image_name() (in module pylorax.api.queue)</a>
</li>
<li><a href="pylorax.html#pylorax.mount.IsoMountpoint.get_iso_label">get_iso_label() (pylorax.mount.IsoMountpoint method)</a>
</li> </li>
</ul></td> </ul></td>
<td style="width: 33%; vertical-align: top;"><ul> <td style="width: 33%; vertical-align: top;"><ul>
<li><a href="pylorax.html#pylorax.mount.IsoMountpoint.get_iso_label">get_iso_label() (pylorax.mount.IsoMountpoint method)</a>
</li>
<li><a href="pylorax.api.html#pylorax.api.compose.get_kernel_append">get_kernel_append() (in module pylorax.api.compose)</a> <li><a href="pylorax.api.html#pylorax.api.compose.get_kernel_append">get_kernel_append() (in module pylorax.api.compose)</a>
</li> </li>
<li><a href="pylorax.api.html#pylorax.api.compose.get_keyboard_layout">get_keyboard_layout() (in module pylorax.api.compose)</a> <li><a href="pylorax.api.html#pylorax.api.compose.get_keyboard_layout">get_keyboard_layout() (in module pylorax.api.compose)</a>
@ -470,7 +472,7 @@
</li> </li>
<li><a href="pylorax.api.html#pylorax.api.server.GitLock">GitLock (class in pylorax.api.server)</a> <li><a href="pylorax.api.html#pylorax.api.server.GitLock">GitLock (class in pylorax.api.server)</a>
</li> </li>
<li><a href="pylorax.api.html#pylorax.api.recipes.Recipe.group_names">group_names (pylorax.api.recipes.Recipe attribute)</a> <li><a href="pylorax.api.html#pylorax.api.recipes.Recipe.group_names">group_names() (pylorax.api.recipes.Recipe property)</a>
</li> </li>
</ul></td> </ul></td>
</tr></table> </tr></table>
@ -546,7 +548,7 @@
<h2 id="K">K</h2> <h2 id="K">K</h2>
<table style="width: 100%" class="indextable genindextable"><tr> <table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul> <td style="width: 33%; vertical-align: top;"><ul>
<li><a href="pylorax.html#pylorax.treebuilder.TreeBuilder.kernels">kernels (pylorax.treebuilder.TreeBuilder attribute)</a> <li><a href="pylorax.html#pylorax.treebuilder.TreeBuilder.kernels">kernels() (pylorax.treebuilder.TreeBuilder property)</a>
</li> </li>
</ul></td> </ul></td>
<td style="width: 33%; vertical-align: top;"><ul> <td style="width: 33%; vertical-align: top;"><ul>
@ -574,7 +576,7 @@
</li> </li>
<li><a href="pylorax.html#pylorax.cmdline.lmc_parser">lmc_parser() (in module pylorax.cmdline)</a> <li><a href="pylorax.html#pylorax.cmdline.lmc_parser">lmc_parser() (in module pylorax.cmdline)</a>
</li> </li>
<li><a href="pylorax.api.html#pylorax.api.server.GitLock.lock">lock (pylorax.api.server.GitLock attribute)</a> <li><a href="pylorax.api.html#pylorax.api.server.GitLock.lock">lock() (pylorax.api.server.GitLock property)</a>
</li> </li>
<li><a href="pylorax.html#pylorax.ltmpl.LoraxTemplateRunner.log">log() (pylorax.ltmpl.LoraxTemplateRunner method)</a> <li><a href="pylorax.html#pylorax.ltmpl.LoraxTemplateRunner.log">log() (pylorax.ltmpl.LoraxTemplateRunner method)</a>
</li> </li>
@ -666,9 +668,9 @@
</li> </li>
<li><a href="pylorax.html#pylorax.imgutils.mktar">mktar() (in module pylorax.imgutils)</a> <li><a href="pylorax.html#pylorax.imgutils.mktar">mktar() (in module pylorax.imgutils)</a>
</li> </li>
<li><a href="pylorax.api.html#pylorax.api.recipes.Recipe.module_names">module_names (pylorax.api.recipes.Recipe attribute)</a> <li><a href="pylorax.api.html#pylorax.api.recipes.Recipe.module_names">module_names() (pylorax.api.recipes.Recipe property)</a>
</li> </li>
<li><a href="pylorax.api.html#pylorax.api.recipes.Recipe.module_nver">module_nver (pylorax.api.recipes.Recipe attribute)</a> <li><a href="pylorax.api.html#pylorax.api.recipes.Recipe.module_nver">module_nver() (pylorax.api.recipes.Recipe property)</a>
</li> </li>
<li><a href="pylorax.api.html#pylorax.api.projects.modules_info">modules_info() (in module pylorax.api.projects)</a> <li><a href="pylorax.api.html#pylorax.api.projects.modules_info">modules_info() (in module pylorax.api.projects)</a>
</li> </li>
@ -714,9 +716,9 @@
<h2 id="P">P</h2> <h2 id="P">P</h2>
<table style="width: 100%" class="indextable genindextable"><tr> <table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul> <td style="width: 33%; vertical-align: top;"><ul>
<li><a href="pylorax.api.html#pylorax.api.recipes.Recipe.package_names">package_names (pylorax.api.recipes.Recipe attribute)</a> <li><a href="pylorax.api.html#pylorax.api.recipes.Recipe.package_names">package_names() (pylorax.api.recipes.Recipe property)</a>
</li> </li>
<li><a href="pylorax.api.html#pylorax.api.recipes.Recipe.package_nver">package_nver (pylorax.api.recipes.Recipe attribute)</a> <li><a href="pylorax.api.html#pylorax.api.recipes.Recipe.package_nver">package_nver() (pylorax.api.recipes.Recipe property)</a>
</li> </li>
<li><a href="pylorax.html#pylorax.ltmpl.LoraxTemplate.parse">parse() (pylorax.ltmpl.LoraxTemplate method)</a> <li><a href="pylorax.html#pylorax.ltmpl.LoraxTemplate.parse">parse() (pylorax.ltmpl.LoraxTemplate method)</a>
</li> </li>
@ -799,6 +801,8 @@
<li><a href="pylorax.html#module-pylorax.decorators">pylorax.decorators (module)</a> <li><a href="pylorax.html#module-pylorax.decorators">pylorax.decorators (module)</a>
</li> </li>
<li><a href="pylorax.html#module-pylorax.discinfo">pylorax.discinfo (module)</a> <li><a href="pylorax.html#module-pylorax.discinfo">pylorax.discinfo (module)</a>
</li>
<li><a href="pylorax.html#module-pylorax.dnfbase">pylorax.dnfbase (module)</a>
</li> </li>
<li><a href="pylorax.html#module-pylorax.dnfhelper">pylorax.dnfhelper (module)</a> <li><a href="pylorax.html#module-pylorax.dnfhelper">pylorax.dnfhelper (module)</a>
</li> </li>
@ -896,7 +900,7 @@
<li><a href="pylorax.html#pylorax.ltmpl.LoraxTemplateRunner.replace">(pylorax.ltmpl.LoraxTemplateRunner method)</a> <li><a href="pylorax.html#pylorax.ltmpl.LoraxTemplateRunner.replace">(pylorax.ltmpl.LoraxTemplateRunner method)</a>
</li> </li>
</ul></li> </ul></li>
<li><a href="pylorax.api.html#pylorax.api.server.GitLock.repo">repo (pylorax.api.server.GitLock attribute)</a> <li><a href="pylorax.api.html#pylorax.api.server.GitLock.repo">repo() (pylorax.api.server.GitLock property)</a>
</li> </li>
<li><a href="pylorax.api.html#pylorax.api.recipes.repo_file_exists">repo_file_exists() (in module pylorax.api.recipes)</a> <li><a href="pylorax.api.html#pylorax.api.recipes.repo_file_exists">repo_file_exists() (in module pylorax.api.recipes)</a>
</li> </li>
@ -988,7 +992,7 @@
</li> </li>
<li><a href="pylorax.api.html#pylorax.api.v0.take_limits">take_limits() (in module pylorax.api.v0)</a> <li><a href="pylorax.api.html#pylorax.api.v0.take_limits">take_limits() (in module pylorax.api.v0)</a>
</li> </li>
<li><a href="pylorax.html#pylorax.Lorax.templatedir">templatedir (pylorax.Lorax attribute)</a> <li><a href="pylorax.html#pylorax.Lorax.templatedir">templatedir() (pylorax.Lorax property)</a>
</li> </li>
<li><a href="pylorax.html#pylorax.ltmpl.TemplateRunner">TemplateRunner (class in pylorax.ltmpl)</a> <li><a href="pylorax.html#pylorax.ltmpl.TemplateRunner">TemplateRunner (class in pylorax.ltmpl)</a>
</li> </li>

View File

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Welcome to Loraxs documentation! &mdash; Lorax 28.14.33 documentation</title> <title>Welcome to Loraxs documentation! &mdash; Lorax 28.14.42 documentation</title>
@ -59,7 +59,7 @@
<div class="version"> <div class="version">
28.14.33 28.14.42
</div> </div>
@ -175,16 +175,16 @@
<div class="section" id="documentation-for-other-lorax-branches"> <div class="section" id="documentation-for-other-lorax-branches">
<h1>Documentation for other Lorax Branches<a class="headerlink" href="#documentation-for-other-lorax-branches" title="Permalink to this headline"></a></h1> <h1>Documentation for other Lorax Branches<a class="headerlink" href="#documentation-for-other-lorax-branches" title="Permalink to this headline"></a></h1>
<ul class="simple"> <ul class="simple">
<li><a class="reference external" href="f28-branch/">Fedora 28</a></li> <li><p><a class="reference external" href="f28-branch/">Fedora 28</a></p></li>
<li><a class="reference external" href="lorax-composer/">RHEL7 lorax-composer</a></li> <li><p><a class="reference external" href="lorax-composer/">RHEL7 lorax-composer</a></p></li>
</ul> </ul>
</div> </div>
<div class="section" id="indices-and-tables"> <div class="section" id="indices-and-tables">
<h1>Indices and tables<a class="headerlink" href="#indices-and-tables" title="Permalink to this headline"></a></h1> <h1>Indices and tables<a class="headerlink" href="#indices-and-tables" title="Permalink to this headline"></a></h1>
<ul class="simple"> <ul class="simple">
<li><a class="reference internal" href="genindex.html"><span class="std std-ref">Index</span></a></li> <li><p><a class="reference internal" href="genindex.html"><span class="std std-ref">Index</span></a></p></li>
<li><a class="reference internal" href="py-modindex.html"><span class="std std-ref">Module Index</span></a></li> <li><p><a class="reference internal" href="py-modindex.html"><span class="std std-ref">Module Index</span></a></p></li>
<li><a class="reference internal" href="search.html"><span class="std std-ref">Search Page</span></a></li> <li><p><a class="reference internal" href="search.html"><span class="std std-ref">Search Page</span></a></p></li>
</ul> </ul>
</div> </div>

View File

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Introduction to Lorax &mdash; Lorax 28.14.33 documentation</title> <title>Introduction to Lorax &mdash; Lorax 28.14.42 documentation</title>
@ -60,7 +60,7 @@
<div class="version"> <div class="version">
28.14.33 28.14.42
</div> </div>
@ -178,21 +178,20 @@ with something more flexible.</p>
scripts to do the image building and data generation. Heres how it scripts to do the image building and data generation. Heres how it
currently looks:</p> currently looks:</p>
<blockquote> <blockquote>
<div><dl class="docutils"> <div><dl>
<dt>-&gt; buildinstall</dt> <dt>-&gt; buildinstall</dt><dd><ul class="simple">
<dd><ul class="first simple"> <li><p>process command line options</p></li>
<li>process command line options</li> <li><p>write temporary yum.conf to point to correct repo</p></li>
<li>write temporary yum.conf to point to correct repo</li> <li><p>find anaconda release RPM</p></li>
<li>find anaconda release RPM</li> <li><p>unpack RPM, pull in those versions of upd-instroot, mk-images,
<li>unpack RPM, pull in those versions of upd-instroot, mk-images, maketreeinfo.py, makestamp.py, and buildinstall</p></li>
maketreeinfo.py, makestamp.py, and buildinstall</li>
</ul> </ul>
<p>-&gt; call upd-instroot</p> <p>-&gt; call upd-instroot</p>
<p>-&gt; call maketreeinfo.py</p> <p>-&gt; call maketreeinfo.py</p>
<p>-&gt; call mk-images (which figures out which mk-images.ARCH to call)</p> <p>-&gt; call mk-images (which figures out which mk-images.ARCH to call)</p>
<p>-&gt; call makestamp.py</p> <p>-&gt; call makestamp.py</p>
<ul class="last simple"> <ul class="simple">
<li>clean up</li> <li><p>clean up</p></li>
</ul> </ul>
</dd> </dd>
</dl> </dl>

View File

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>livemedia-creator &mdash; Lorax 28.14.33 documentation</title> <title>livemedia-creator &mdash; Lorax 28.14.42 documentation</title>
@ -60,7 +60,7 @@
<div class="version"> <div class="version">
28.14.33 28.14.42
</div> </div>
@ -191,14 +191,11 @@
<div class="section" id="livemedia-creator"> <div class="section" id="livemedia-creator">
<h1>livemedia-creator<a class="headerlink" href="#livemedia-creator" title="Permalink to this headline"></a></h1> <h1>livemedia-creator<a class="headerlink" href="#livemedia-creator" title="Permalink to this headline"></a></h1>
<table class="docutils field-list" frame="void" rules="none"> <dl class="field-list simple">
<col class="field-name" /> <dt class="field-odd">Authors</dt>
<col class="field-body" /> <dd class="field-odd"><p>Brian C. Lane &lt;<a class="reference external" href="mailto:bcl&#37;&#52;&#48;redhat&#46;com">bcl<span>&#64;</span>redhat<span>&#46;</span>com</a>&gt;</p>
<tbody valign="top"> </dd>
<tr class="field-odd field"><th class="field-name">Authors:</th><td class="field-body">Brian C. Lane &lt;<a class="reference external" href="mailto:bcl&#37;&#52;&#48;redhat&#46;com">bcl<span>&#64;</span>redhat<span>&#46;</span>com</a>&gt;</td> </dl>
</tr>
</tbody>
</table>
<p>livemedia-creator uses <a class="reference external" href="https://github.com/rhinstaller/anaconda">Anaconda</a>, <p>livemedia-creator uses <a class="reference external" href="https://github.com/rhinstaller/anaconda">Anaconda</a>,
<a class="reference external" href="https://github.com/rhinstaller/pykickstart">kickstart</a> and <a class="reference external" href="https://github.com/rhinstaller/lorax">Lorax</a> to create bootable media that use the <a class="reference external" href="https://github.com/rhinstaller/pykickstart">kickstart</a> and <a class="reference external" href="https://github.com/rhinstaller/lorax">Lorax</a> to create bootable media that use the
same install path as a normal system installation. It can be used to make live same install path as a normal system installation. It can be used to make live
@ -222,7 +219,8 @@ you have the anaconda-tui package installed.</p>
<p><code class="docutils literal notranslate"><span class="pre">image</span></code> is the disk image being created by running livemedia-creator</p> <p><code class="docutils literal notranslate"><span class="pre">image</span></code> is the disk image being created by running livemedia-creator</p>
<div class="section" id="livemedia-creator-cmdline-arguments"> <div class="section" id="livemedia-creator-cmdline-arguments">
<h2>livemedia-creator cmdline arguments<a class="headerlink" href="#livemedia-creator-cmdline-arguments" title="Permalink to this headline"></a></h2> <h2>livemedia-creator cmdline arguments<a class="headerlink" href="#livemedia-creator-cmdline-arguments" title="Permalink to this headline"></a></h2>
<p>Create Live Install Media</p> <p><p>Create Live Install Media</p>
</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">usage</span><span class="p">:</span> <span class="n">livemedia</span><span class="o">-</span><span class="n">creator</span> <span class="p">[</span><span class="o">-</span><span class="n">h</span><span class="p">]</span> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">usage</span><span class="p">:</span> <span class="n">livemedia</span><span class="o">-</span><span class="n">creator</span> <span class="p">[</span><span class="o">-</span><span class="n">h</span><span class="p">]</span>
<span class="p">(</span><span class="o">--</span><span class="n">make</span><span class="o">-</span><span class="n">iso</span> <span class="o">|</span> <span class="o">--</span><span class="n">make</span><span class="o">-</span><span class="n">disk</span> <span class="o">|</span> <span class="o">--</span><span class="n">make</span><span class="o">-</span><span class="n">fsimage</span> <span class="o">|</span> <span class="o">--</span><span class="n">make</span><span class="o">-</span><span class="n">appliance</span> <span class="o">|</span> <span class="o">--</span><span class="n">make</span><span class="o">-</span><span class="n">ami</span> <span class="o">|</span> <span class="o">--</span><span class="n">make</span><span class="o">-</span><span class="n">tar</span> <span class="o">|</span> <span class="o">--</span><span class="n">make</span><span class="o">-</span><span class="n">tar</span><span class="o">-</span><span class="n">disk</span> <span class="o">|</span> <span class="o">--</span><span class="n">make</span><span class="o">-</span><span class="n">pxe</span><span class="o">-</span><span class="n">live</span> <span class="o">|</span> <span class="o">--</span><span class="n">make</span><span class="o">-</span><span class="n">ostree</span><span class="o">-</span><span class="n">live</span> <span class="o">|</span> <span class="o">--</span><span class="n">make</span><span class="o">-</span><span class="n">oci</span> <span class="o">|</span> <span class="o">--</span><span class="n">make</span><span class="o">-</span><span class="n">vagrant</span><span class="p">)</span> <span class="p">(</span><span class="o">--</span><span class="n">make</span><span class="o">-</span><span class="n">iso</span> <span class="o">|</span> <span class="o">--</span><span class="n">make</span><span class="o">-</span><span class="n">disk</span> <span class="o">|</span> <span class="o">--</span><span class="n">make</span><span class="o">-</span><span class="n">fsimage</span> <span class="o">|</span> <span class="o">--</span><span class="n">make</span><span class="o">-</span><span class="n">appliance</span> <span class="o">|</span> <span class="o">--</span><span class="n">make</span><span class="o">-</span><span class="n">ami</span> <span class="o">|</span> <span class="o">--</span><span class="n">make</span><span class="o">-</span><span class="n">tar</span> <span class="o">|</span> <span class="o">--</span><span class="n">make</span><span class="o">-</span><span class="n">tar</span><span class="o">-</span><span class="n">disk</span> <span class="o">|</span> <span class="o">--</span><span class="n">make</span><span class="o">-</span><span class="n">pxe</span><span class="o">-</span><span class="n">live</span> <span class="o">|</span> <span class="o">--</span><span class="n">make</span><span class="o">-</span><span class="n">ostree</span><span class="o">-</span><span class="n">live</span> <span class="o">|</span> <span class="o">--</span><span class="n">make</span><span class="o">-</span><span class="n">oci</span> <span class="o">|</span> <span class="o">--</span><span class="n">make</span><span class="o">-</span><span class="n">vagrant</span><span class="p">)</span>
<span class="p">[</span><span class="o">--</span><span class="n">iso</span> <span class="n">ISO</span><span class="p">]</span> <span class="p">[</span><span class="o">--</span><span class="n">iso</span><span class="o">-</span><span class="n">only</span><span class="p">]</span> <span class="p">[</span><span class="o">--</span><span class="n">iso</span><span class="o">-</span><span class="n">name</span> <span class="n">ISO_NAME</span><span class="p">]</span> <span class="p">[</span><span class="o">--</span><span class="n">iso</span> <span class="n">ISO</span><span class="p">]</span> <span class="p">[</span><span class="o">--</span><span class="n">iso</span><span class="o">-</span><span class="n">only</span><span class="p">]</span> <span class="p">[</span><span class="o">--</span><span class="n">iso</span><span class="o">-</span><span class="n">name</span> <span class="n">ISO_NAME</span><span class="p">]</span>
@ -258,364 +256,282 @@ you have the anaconda-tui package installed.</p>
</div> </div>
<div class="section" id="Named Arguments"> <div class="section" id="Named Arguments">
<h3>Named Arguments<a class="headerlink" href="#Named Arguments" title="Permalink to this headline"></a></h3> <h3>Named Arguments<a class="headerlink" href="#Named Arguments" title="Permalink to this headline"></a></h3>
<table class="docutils option-list" frame="void" rules="none"> <dl class="option-list">
<col class="option" /> <dt><kbd>--make-iso</kbd></dt>
<col class="description" /> <dd><p>Build a live iso</p>
<tbody valign="top"> <p>Default: False</p>
<tr><td class="option-group"> </dd>
<kbd>--make-iso</kbd></td> <dt><kbd>--make-disk</kbd></dt>
<td><p class="first">Build a live iso</p> <dd><p>Build a partitioned disk image</p>
<p class="last">Default: False</p> <p>Default: False</p>
</td></tr> </dd>
<tr><td class="option-group"> <dt><kbd>--make-fsimage</kbd></dt>
<kbd>--make-disk</kbd></td> <dd><p>Build a filesystem image</p>
<td><p class="first">Build a partitioned disk image</p> <p>Default: False</p>
<p class="last">Default: False</p> </dd>
</td></tr> <dt><kbd>--make-appliance</kbd></dt>
<tr><td class="option-group"> <dd><p>Build an appliance image and XML description</p>
<kbd>--make-fsimage</kbd></td> <p>Default: False</p>
<td><p class="first">Build a filesystem image</p> </dd>
<p class="last">Default: False</p> <dt><kbd>--make-ami</kbd></dt>
</td></tr> <dd><p>Build an ami image</p>
<tr><td class="option-group" colspan="2"> <p>Default: False</p>
<kbd>--make-appliance</kbd></td> </dd>
</tr> <dt><kbd>--make-tar</kbd></dt>
<tr><td>&#160;</td><td><p class="first">Build an appliance image and XML description</p> <dd><p>Build a tar of the root filesystem</p>
<p class="last">Default: False</p> <p>Default: False</p>
</td></tr> </dd>
<tr><td class="option-group"> <dt><kbd>--make-tar-disk</kbd></dt>
<kbd>--make-ami</kbd></td> <dd><p>Build a tar of a partitioned disk image</p>
<td><p class="first">Build an ami image</p> <p>Default: False</p>
<p class="last">Default: False</p> </dd>
</td></tr> <dt><kbd>--make-pxe-live</kbd></dt>
<tr><td class="option-group"> <dd><p>Build a live pxe boot squashfs image</p>
<kbd>--make-tar</kbd></td> <p>Default: False</p>
<td><p class="first">Build a tar of the root filesystem</p> </dd>
<p class="last">Default: False</p> <dt><kbd>--make-ostree-live</kbd></dt>
</td></tr> <dd><p>Build a live pxe boot squashfs image of Atomic Host</p>
<tr><td class="option-group" colspan="2"> <p>Default: False</p>
<kbd>--make-tar-disk</kbd></td> </dd>
</tr> <dt><kbd>--make-oci</kbd></dt>
<tr><td>&#160;</td><td><p class="first">Build a tar of a partitioned disk image</p> <dd><p>Build an Open Container Initiative image</p>
<p class="last">Default: False</p> <p>Default: False</p>
</td></tr> </dd>
<tr><td class="option-group" colspan="2"> <dt><kbd>--make-vagrant</kbd></dt>
<kbd>--make-pxe-live</kbd></td> <dd><p>Build a Vagrant Box image</p>
</tr> <p>Default: False</p>
<tr><td>&#160;</td><td><p class="first">Build a live pxe boot squashfs image</p> </dd>
<p class="last">Default: False</p> <dt><kbd>--iso</kbd></dt>
</td></tr> <dd><p>Anaconda installation .iso path to use for qemu</p>
<tr><td class="option-group" colspan="2"> </dd>
<kbd>--make-ostree-live</kbd></td> <dt><kbd>--iso-only</kbd></dt>
</tr> <dd><p>Remove all iso creation artifacts except the boot.iso, combine with iso-name to rename the boot.iso</p>
<tr><td>&#160;</td><td><p class="first">Build a live pxe boot squashfs image of Atomic Host</p> <p>Default: False</p>
<p class="last">Default: False</p> </dd>
</td></tr> <dt><kbd>--iso-name</kbd></dt>
<tr><td class="option-group"> <dd><p>Name of output iso file for iso-only. Default is boot.iso</p>
<kbd>--make-oci</kbd></td> </dd>
<td><p class="first">Build an Open Container Initiative image</p> <dt><kbd>--ks</kbd></dt>
<p class="last">Default: False</p> <dd><p>Kickstart file defining the install.</p>
</td></tr> </dd>
<tr><td class="option-group"> <dt><kbd>--image-only</kbd></dt>
<kbd>--make-vagrant</kbd></td> <dd><p>Exit after creating fs/disk image.</p>
<td><p class="first">Build a Vagrant Box image</p> <p>Default: False</p>
<p class="last">Default: False</p> </dd>
</td></tr> <dt><kbd>--no-virt</kbd></dt>
<tr><td class="option-group"> <dd><p>Run anaconda directly on host instead of using qemu</p>
<kbd>--iso</kbd></td> <p>Default: False</p>
<td>Anaconda installation .iso path to use for qemu</td></tr> </dd>
<tr><td class="option-group"> <dt><kbd>--proxy</kbd></dt>
<kbd>--iso-only</kbd></td> <dd><p>proxy URL to use for the install</p>
<td><p class="first">Remove all iso creation artifacts except the boot.iso, combine with iso-name to rename the boot.iso</p> </dd>
<p class="last">Default: False</p> <dt><kbd>--anaconda-arg</kbd></dt>
</td></tr> <dd><p>Additional argument to pass to anaconda (no-virt mode). Pass once for each argument</p>
<tr><td class="option-group"> </dd>
<kbd>--iso-name</kbd></td> <dt><kbd>--armplatform</kbd></dt>
<td>Name of output iso file for iso-only. Default is boot.iso</td></tr> <dd><p>the platform to use when creating images for ARM, i.e., highbank, mvebu, omap, tegra, etc.</p>
<tr><td class="option-group"> </dd>
<kbd>--ks</kbd></td> <dt><kbd>--location</kbd></dt>
<td>Kickstart file defining the install.</td></tr> <dd><p>location of iso directory tree with initrd.img and vmlinuz. Used to run qemu with a newer initrd than the iso.</p>
<tr><td class="option-group"> </dd>
<kbd>--image-only</kbd></td> <dt><kbd>--logfile</kbd></dt>
<td><p class="first">Exit after creating fs/disk image.</p> <dd><p>Name and path for primary logfile, other logs will be created in the same directory.</p>
<p class="last">Default: False</p> <p>Default: ./livemedia.log</p>
</td></tr> </dd>
<tr><td class="option-group"> <dt><kbd>--lorax-templates</kbd></dt>
<kbd>--no-virt</kbd></td> <dd><p>Path to mako templates for lorax</p>
<td><p class="first">Run anaconda directly on host instead of using qemu</p> </dd>
<p class="last">Default: False</p> <dt><kbd>--tmp</kbd></dt>
</td></tr> <dd><p>Top level temporary directory</p>
<tr><td class="option-group"> <p>Default: /var/tmp</p>
<kbd>--proxy</kbd></td> </dd>
<td>proxy URL to use for the install</td></tr> <dt><kbd>--resultdir</kbd></dt>
<tr><td class="option-group"> <dd><p>Directory to copy the resulting images and iso into. Defaults to the temporary working directory</p>
<kbd>--anaconda-arg</kbd></td> </dd>
<td>Additional argument to pass to anaconda (no-virt mode). Pass once for each argument</td></tr> <dt><kbd>--macboot</kbd></dt>
<tr><td class="option-group"> <dd><p>Make the iso bootable on UEFI based Mac systems</p>
<kbd>--armplatform</kbd></td> <p>Default: True</p>
<td>the platform to use when creating images for ARM, i.e., highbank, mvebu, omap, tegra, etc.</td></tr> </dd>
<tr><td class="option-group"> <dt><kbd>--nomacboot</kbd></dt>
<kbd>--location</kbd></td> <dd><p>Do not create a Mac bootable iso</p>
<td>location of iso directory tree with initrd.img and vmlinuz. Used to run qemu with a newer initrd than the iso.</td></tr> <p>Default: False</p>
<tr><td class="option-group"> </dd>
<kbd>--logfile</kbd></td> <dt><kbd>--extra-boot-args</kbd></dt>
<td><p class="first">Name and path for primary logfile, other logs will be created in the same directory.</p> <dd><p>Extra arguments to add to the bootloader kernel cmdline in the templates</p>
<p class="last">Default: ./livemedia.log</p> <p>Default: “”</p>
</td></tr> </dd>
<tr><td class="option-group" colspan="2"> <dt><kbd>--title</kbd></dt>
<kbd>--lorax-templates</kbd></td> <dd><p>Substituted for &#64;TITLE&#64; in bootloader config files</p>
</tr> <p>Default: “Linux Live Media”</p>
<tr><td>&#160;</td><td>Path to mako templates for lorax</td></tr> </dd>
<tr><td class="option-group"> <dt><kbd>--project</kbd></dt>
<kbd>--tmp</kbd></td> <dd><p>substituted for &#64;PROJECT&#64; in bootloader config files</p>
<td><p class="first">Top level temporary directory</p> <p>Default: “Linux”</p>
<p class="last">Default: /var/tmp</p> </dd>
</td></tr> <dt><kbd>--releasever</kbd></dt>
<tr><td class="option-group"> <dd><p>substituted for &#64;VERSION&#64; in bootloader config files</p>
<kbd>--resultdir</kbd></td> <p>Default: “8”</p>
<td>Directory to copy the resulting images and iso into. Defaults to the temporary working directory</td></tr> </dd>
<tr><td class="option-group"> <dt><kbd>--volid</kbd></dt>
<kbd>--macboot</kbd></td> <dd><p>volume id</p>
<td><p class="first">Make the iso bootable on UEFI based Mac systems</p> </dd>
<p class="last">Default: True</p> <dt><kbd>--squashfs_args</kbd></dt>
</td></tr> <dd><p>additional squashfs args</p>
<tr><td class="option-group"> </dd>
<kbd>--nomacboot</kbd></td> <dt><kbd>--timeout</kbd></dt>
<td><p class="first">Do not create a Mac bootable iso</p> <dd><p>Cancel installer after X minutes</p>
<p class="last">Default: False</p> </dd>
</td></tr> <dt><kbd>-V</kbd></dt>
<tr><td class="option-group" colspan="2"> <dd><p>show programs version number and exit</p>
<kbd>--extra-boot-args</kbd></td> </dd>
</tr> </dl>
<tr><td>&#160;</td><td><p class="first">Extra arguments to add to the bootloader kernel cmdline in the templates</p>
<p class="last">Default: “”</p>
</td></tr>
<tr><td class="option-group">
<kbd>--title</kbd></td>
<td><p class="first">Substituted for &#64;TITLE&#64; in bootloader config files</p>
<p class="last">Default: “Linux Live Media”</p>
</td></tr>
<tr><td class="option-group">
<kbd>--project</kbd></td>
<td><p class="first">substituted for &#64;PROJECT&#64; in bootloader config files</p>
<p class="last">Default: “Linux”</p>
</td></tr>
<tr><td class="option-group">
<kbd>--releasever</kbd></td>
<td><p class="first">substituted for &#64;VERSION&#64; in bootloader config files</p>
<p class="last">Default: “8”</p>
</td></tr>
<tr><td class="option-group">
<kbd>--volid</kbd></td>
<td>volume id</td></tr>
<tr><td class="option-group" colspan="2">
<kbd>--squashfs_args</kbd></td>
</tr>
<tr><td>&#160;</td><td>additional squashfs args</td></tr>
<tr><td class="option-group">
<kbd>--timeout</kbd></td>
<td>Cancel installer after X minutes</td></tr>
<tr><td class="option-group">
<kbd>-V</kbd></td>
<td>show programs version number and exit</td></tr>
</tbody>
</table>
</div> </div>
<div class="section" id="disk/fs image arguments"> <div class="section" id="disk/fs image arguments">
<h3>disk/fs image arguments<a class="headerlink" href="#disk/fs image arguments" title="Permalink to this headline"></a></h3> <h3>disk/fs image arguments<a class="headerlink" href="#disk/fs image arguments" title="Permalink to this headline"></a></h3>
<table class="docutils option-list" frame="void" rules="none"> <dl class="option-list">
<col class="option" /> <dt><kbd>--disk-image</kbd></dt>
<col class="description" /> <dd><p>Path to existing disk image to use for creating final image.</p>
<tbody valign="top"> </dd>
<tr><td class="option-group"> <dt><kbd>--keep-image</kbd></dt>
<kbd>--disk-image</kbd></td> <dd><p>Keep raw disk image after .iso creation</p>
<td>Path to existing disk image to use for creating final image.</td></tr> <p>Default: False</p>
<tr><td class="option-group"> </dd>
<kbd>--keep-image</kbd></td> <dt><kbd>--fs-image</kbd></dt>
<td><p class="first">Keep raw disk image after .iso creation</p> <dd><p>Path to existing filesystem image to use for creating final image.</p>
<p class="last">Default: False</p> </dd>
</td></tr> <dt><kbd>--image-name</kbd></dt>
<tr><td class="option-group"> <dd><p>Name of output file to create. Used for tar, fs and disk image. Default is a random name.</p>
<kbd>--fs-image</kbd></td> </dd>
<td>Path to existing filesystem image to use for creating final image.</td></tr> <dt><kbd>--tar-disk-name</kbd></dt>
<tr><td class="option-group"> <dd><p>Name of the archive member for make-tar-disk.</p>
<kbd>--image-name</kbd></td> </dd>
<td>Name of output file to create. Used for tar, fs and disk image. Default is a random name.</td></tr> <dt><kbd>--fs-label</kbd></dt>
<tr><td class="option-group" colspan="2"> <dd><p>Label to set on fsimage, default is Anaconda</p>
<kbd>--tar-disk-name</kbd></td> <p>Default: “Anaconda”</p>
</tr> </dd>
<tr><td>&#160;</td><td>Name of the archive member for make-tar-disk.</td></tr> <dt><kbd>--image-size-align</kbd></dt>
<tr><td class="option-group"> <dd><p>Create a disk image with a size that is a multiple of this value in MiB.</p>
<kbd>--fs-label</kbd></td> <p>Default: 0</p>
<td><p class="first">Label to set on fsimage, default is Anaconda</p> </dd>
<p class="last">Default: “Anaconda”</p> <dt><kbd>--image-type</kbd></dt>
</td></tr> <dd><p>Create an image with qemu-img. See qemu-img help for supported formats.</p>
<tr><td class="option-group" colspan="2"> </dd>
<kbd>--image-size-align</kbd></td> <dt><kbd>--qemu-arg</kbd></dt>
</tr> <dd><p>Arguments to pass to qemu-img. Pass once for each argument, they will be used for ALL calls to qemu-img.</p>
<tr><td>&#160;</td><td><p class="first">Create a disk image with a size that is a multiple of this value in MiB.</p> <p>Default: []</p>
<p class="last">Default: 0</p> </dd>
</td></tr> <dt><kbd>--qcow2</kbd></dt>
<tr><td class="option-group"> <dd><p>Create qcow2 image instead of raw sparse image when making disk images.</p>
<kbd>--image-type</kbd></td> <p>Default: False</p>
<td>Create an image with qemu-img. See qemu-img help for supported formats.</td></tr> </dd>
<tr><td class="option-group"> <dt><kbd>--qcow2-arg</kbd></dt>
<kbd>--qemu-arg</kbd></td> <dd><p>Arguments to pass to qemu-img. Pass once for each argument, they will be used for ALL calls to qemu-img.</p>
<td><p class="first">Arguments to pass to qemu-img. Pass once for each argument, they will be used for ALL calls to qemu-img.</p> <p>Default: []</p>
<p class="last">Default: []</p> </dd>
</td></tr> <dt><kbd>--compression</kbd></dt>
<tr><td class="option-group"> <dd><p>Compression binary for make-tar. xz, lzma, gzip, and bzip2 are supported. xz is the default.</p>
<kbd>--qcow2</kbd></td> <p>Default: “xz”</p>
<td><p class="first">Create qcow2 image instead of raw sparse image when making disk images.</p> </dd>
<p class="last">Default: False</p> <dt><kbd>--compress-arg</kbd></dt>
</td></tr> <dd><p>Arguments to pass to compression. Pass once for each argument</p>
<tr><td class="option-group"> <p>Default: []</p>
<kbd>--qcow2-arg</kbd></td> </dd>
<td><p class="first">Arguments to pass to qemu-img. Pass once for each argument, they will be used for ALL calls to qemu-img.</p> </dl>
<p class="last">Default: []</p>
</td></tr>
<tr><td class="option-group">
<kbd>--compression</kbd></td>
<td><p class="first">Compression binary for make-tar. xz, lzma, gzip, and bzip2 are supported. xz is the default.</p>
<p class="last">Default: “xz”</p>
</td></tr>
<tr><td class="option-group">
<kbd>--compress-arg</kbd></td>
<td><p class="first">Arguments to pass to compression. Pass once for each argument</p>
<p class="last">Default: []</p>
</td></tr>
</tbody>
</table>
</div> </div>
<div class="section" id="appliance arguments"> <div class="section" id="appliance arguments">
<h3>appliance arguments<a class="headerlink" href="#appliance arguments" title="Permalink to this headline"></a></h3> <h3>appliance arguments<a class="headerlink" href="#appliance arguments" title="Permalink to this headline"></a></h3>
<table class="docutils option-list" frame="void" rules="none"> <dl class="option-list">
<col class="option" /> <dt><kbd>--app-name</kbd></dt>
<col class="description" /> <dd><p>Name of appliance to pass to template</p>
<tbody valign="top"> </dd>
<tr><td class="option-group"> <dt><kbd>--app-template</kbd></dt>
<kbd>--app-name</kbd></td> <dd><p>Path to template to use for appliance data.</p>
<td>Name of appliance to pass to template</td></tr> </dd>
<tr><td class="option-group"> <dt><kbd>--app-file</kbd></dt>
<kbd>--app-template</kbd></td> <dd><p>Appliance template results file.</p>
<td>Path to template to use for appliance data.</td></tr> <p>Default: “appliance.xml”</p>
<tr><td class="option-group"> </dd>
<kbd>--app-file</kbd></td> </dl>
<td><p class="first">Appliance template results file.</p>
<p class="last">Default: “appliance.xml”</p>
</td></tr>
</tbody>
</table>
</div> </div>
<div class="section" id="qemu arguments"> <div class="section" id="qemu arguments">
<h3>qemu arguments<a class="headerlink" href="#qemu arguments" title="Permalink to this headline"></a></h3> <h3>qemu arguments<a class="headerlink" href="#qemu arguments" title="Permalink to this headline"></a></h3>
<table class="docutils option-list" frame="void" rules="none"> <dl class="option-list">
<col class="option" /> <dt><kbd>--ram</kbd></dt>
<col class="description" /> <dd><p>Memory to allocate for installer in megabytes.</p>
<tbody valign="top"> <p>Default: 1024</p>
<tr><td class="option-group"> </dd>
<kbd>--ram</kbd></td> <dt><kbd>--vcpus</kbd></dt>
<td><p class="first">Memory to allocate for installer in megabytes.</p> <dd><p>Passed to qemu -smp command</p>
<p class="last">Default: 1024</p> </dd>
</td></tr> <dt><kbd>--vnc</kbd></dt>
<tr><td class="option-group"> <dd><p>Passed to qemu -display command. eg. vnc=127.0.0.1:5, default is to choose the first unused vnc port.</p>
<kbd>--vcpus</kbd></td> </dd>
<td>Passed to qemu -smp command</td></tr> <dt><kbd>--arch</kbd></dt>
<tr><td class="option-group"> <dd><p>System arch to build for. Used to select qemu-system-* command. Defaults to qemu-system-&lt;arch&gt;</p>
<kbd>--vnc</kbd></td> </dd>
<td>Passed to qemu -display command. eg. vnc=127.0.0.1:5, default is to choose the first unused vnc port.</td></tr> <dt><kbd>--kernel-args</kbd></dt>
<tr><td class="option-group"> <dd><p>Additional argument to pass to the installation kernel</p>
<kbd>--arch</kbd></td> </dd>
<td>System arch to build for. Used to select qemu-system-* command. Defaults to qemu-system-&lt;arch&gt;</td></tr> <dt><kbd>--ovmf-path</kbd></dt>
<tr><td class="option-group"> <dd><p>Path to OVMF firmware</p>
<kbd>--kernel-args</kbd></td> <p>Default: “/usr/share/edk2/ovmf/”</p>
<td>Additional argument to pass to the installation kernel</td></tr> </dd>
<tr><td class="option-group"> <dt><kbd>--virt-uefi</kbd></dt>
<kbd>--ovmf-path</kbd></td> <dd><p>Use OVMF firmware to boot the VM in UEFI mode</p>
<td><p class="first">Path to OVMF firmware</p> <p>Default: False</p>
<p class="last">Default: “/usr/share/edk2/ovmf/”</p> </dd>
</td></tr> <dt><kbd>--no-kvm</kbd></dt>
<tr><td class="option-group"> <dd><p>Skip using kvm with qemu even if it is available.</p>
<kbd>--virt-uefi</kbd></td> <p>Default: False</p>
<td><p class="first">Use OVMF firmware to boot the VM in UEFI mode</p> </dd>
<p class="last">Default: False</p> <dt><kbd>--with-rng</kbd></dt>
</td></tr> <dd><p>RNG device for QEMU (none for no RNG)</p>
<tr><td class="option-group"> <p>Default: “/dev/random”</p>
<kbd>--no-kvm</kbd></td> </dd>
<td><p class="first">Skip using kvm with qemu even if it is available.</p> </dl>
<p class="last">Default: False</p>
</td></tr>
<tr><td class="option-group">
<kbd>--with-rng</kbd></td>
<td><p class="first">RNG device for QEMU (none for no RNG)</p>
<p class="last">Default: “/dev/random”</p>
</td></tr>
</tbody>
</table>
</div> </div>
<div class="section" id="dracut arguments"> <div class="section" id="dracut arguments">
<h3>dracut arguments<a class="headerlink" href="#dracut arguments" title="Permalink to this headline"></a></h3> <h3>dracut arguments<a class="headerlink" href="#dracut arguments" title="Permalink to this headline"></a></h3>
<table class="docutils option-list" frame="void" rules="none"> <dl class="option-list">
<col class="option" /> <dt><kbd>--dracut-arg</kbd></dt>
<col class="description" /> <dd><p>Argument to pass to dracut when rebuilding the initramfs. Pass this once for each argument. NOTE: this overrides the default. (default: )</p>
<tbody valign="top"> </dd>
<tr><td class="option-group"> </dl>
<kbd>--dracut-arg</kbd></td>
<td>Argument to pass to dracut when rebuilding the initramfs. Pass this once for each argument. NOTE: this overrides the default. (default: )</td></tr>
</tbody>
</table>
</div> </div>
<div class="section" id="pxe to live arguments"> <div class="section" id="pxe to live arguments">
<h3>pxe to live arguments<a class="headerlink" href="#pxe to live arguments" title="Permalink to this headline"></a></h3> <h3>pxe to live arguments<a class="headerlink" href="#pxe to live arguments" title="Permalink to this headline"></a></h3>
<table class="docutils option-list" frame="void" rules="none"> <dl class="option-list">
<col class="option" /> <dt><kbd>--live-rootfs-size</kbd></dt>
<col class="description" /> <dd><p>Size of root filesystem of live image in GiB</p>
<tbody valign="top"> <p>Default: 0</p>
<tr><td class="option-group" colspan="2"> </dd>
<kbd>--live-rootfs-size</kbd></td> <dt><kbd>--live-rootfs-keep-size</kbd></dt>
</tr> <dd><p>Keep the original size of root filesystem in live image</p>
<tr><td>&#160;</td><td><p class="first">Size of root filesystem of live image in GiB</p> <p>Default: False</p>
<p class="last">Default: 0</p> </dd>
</td></tr> </dl>
<tr><td class="option-group" colspan="2">
<kbd>--live-rootfs-keep-size</kbd></td>
</tr>
<tr><td>&#160;</td><td><p class="first">Keep the original size of root filesystem in live image</p>
<p class="last">Default: False</p>
</td></tr>
</tbody>
</table>
</div> </div>
<div class="section" id="OCI arguments"> <div class="section" id="OCI arguments">
<h3>OCI arguments<a class="headerlink" href="#OCI arguments" title="Permalink to this headline"></a></h3> <h3>OCI arguments<a class="headerlink" href="#OCI arguments" title="Permalink to this headline"></a></h3>
<table class="docutils option-list" frame="void" rules="none"> <dl class="option-list">
<col class="option" /> <dt><kbd>--oci-config</kbd></dt>
<col class="description" /> <dd><p>config.json OCI configuration file</p>
<tbody valign="top"> </dd>
<tr><td class="option-group"> <dt><kbd>--oci-runtime</kbd></dt>
<kbd>--oci-config</kbd></td> <dd><p>runtime.json OCI configuration file</p>
<td>config.json OCI configuration file</td></tr> </dd>
<tr><td class="option-group"> </dl>
<kbd>--oci-runtime</kbd></td>
<td>runtime.json OCI configuration file</td></tr>
</tbody>
</table>
</div> </div>
<div class="section" id="Vagrant arguments"> <div class="section" id="Vagrant arguments">
<h3>Vagrant arguments<a class="headerlink" href="#Vagrant arguments" title="Permalink to this headline"></a></h3> <h3>Vagrant arguments<a class="headerlink" href="#Vagrant arguments" title="Permalink to this headline"></a></h3>
<table class="docutils option-list" frame="void" rules="none"> <dl class="option-list">
<col class="option" /> <dt><kbd>--vagrant-metadata</kbd></dt>
<col class="description" /> <dd><p>optional metadata.json file</p>
<tbody valign="top"> </dd>
<tr><td class="option-group" colspan="2"> <dt><kbd>--vagrantfile</kbd></dt>
<kbd>--vagrant-metadata</kbd></td> <dd><p>optional vagrantfile</p>
</tr> </dd>
<tr><td>&#160;</td><td>optional metadata.json file</td></tr> </dl>
<tr><td class="option-group">
<kbd>--vagrantfile</kbd></td>
<td>optional vagrantfile</td></tr>
</tbody>
</table>
</div> </div>
</div> </div>
<div class="section" id="quickstart"> <div class="section" id="quickstart">
@ -664,8 +580,8 @@ or the live directory below the directory specified by <code class="docutils lit
templates are written using the Mako template system with some extra commands templates are written using the Mako template system with some extra commands
added by lorax.</p> added by lorax.</p>
<div class="admonition note"> <div class="admonition note">
<p class="first admonition-title">Note</p> <p class="admonition-title">Note</p>
<p class="last">The output from make-iso includes the artifacts used to create the boot.iso; <p>The output from make-iso includes the artifacts used to create the boot.iso;
the kernel, initrd, the squashfs filesystem, etc. If you only want the the kernel, initrd, the squashfs filesystem, etc. If you only want the
boot.iso you can pass <code class="docutils literal notranslate"><span class="pre">--iso-only</span></code> and the other files will be removed. You boot.iso you can pass <code class="docutils literal notranslate"><span class="pre">--iso-only</span></code> and the other files will be removed. You
can also name the iso by using <code class="docutils literal notranslate"><span class="pre">--iso-name</span> <span class="pre">my-live.iso</span></code>.</p> can also name the iso by using <code class="docutils literal notranslate"><span class="pre">--iso-name</span> <span class="pre">my-live.iso</span></code>.</p>
@ -680,26 +596,20 @@ includes several needed packages that are not always included by dependencies.</
<p>Or you can use existing spin kickstarts to create live media with a few <p>Or you can use existing spin kickstarts to create live media with a few
changes. Here are the steps I used to convert the Fedora XFCE spin.</p> changes. Here are the steps I used to convert the Fedora XFCE spin.</p>
<ol class="arabic"> <ol class="arabic">
<li><p class="first">Flatten the xfce kickstart using ksflatten</p> <li><p>Flatten the xfce kickstart using ksflatten</p></li>
</li> <li><p>Add zerombr so you dont get the disk init dialog</p></li>
<li><p class="first">Add zerombr so you dont get the disk init dialog</p> <li><p>Add clearpart all</p></li>
</li> <li><p>Add swap partition</p></li>
<li><p class="first">Add clearpart all</p> <li><p>bootloader target</p></li>
</li> <li><p>Add shutdown to the kickstart</p></li>
<li><p class="first">Add swap partition</p> <li><p>Add network bootproto=dhcp activate to activate the network
</li>
<li><p class="first">bootloader target</p>
</li>
<li><p class="first">Add shutdown to the kickstart</p>
</li>
<li><p class="first">Add network bootproto=dhcp activate to activate the network
This works for F16 builds but for F15 and before you need to pass This works for F16 builds but for F15 and before you need to pass
something on the cmdline that activate the network, like sshd:</p> something on the cmdline that activate the network, like sshd:</p>
<blockquote> <blockquote>
<div><p><code class="docutils literal notranslate"><span class="pre">livemedia-creator</span> <span class="pre">--kernel-args=&quot;sshd&quot;</span></code></p> <div><p><code class="docutils literal notranslate"><span class="pre">livemedia-creator</span> <span class="pre">--kernel-args=&quot;sshd&quot;</span></code></p>
</div></blockquote> </div></blockquote>
</li> </li>
<li><p class="first">Add a root password:</p> <li><p>Add a root password:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">rootpw</span> <span class="n">rootme</span> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">rootpw</span> <span class="n">rootme</span>
<span class="n">network</span> <span class="o">--</span><span class="n">bootproto</span><span class="o">=</span><span class="n">dhcp</span> <span class="o">--</span><span class="n">activate</span> <span class="n">network</span> <span class="o">--</span><span class="n">bootproto</span><span class="o">=</span><span class="n">dhcp</span> <span class="o">--</span><span class="n">activate</span>
<span class="n">zerombr</span> <span class="n">zerombr</span>
@ -710,39 +620,39 @@ something on the cmdline that activate the network, like sshd:</p>
</pre></div> </pre></div>
</div> </div>
</li> </li>
<li><p class="first">In the livesys script section of the %post remove the root password. This <li><p>In the livesys script section of the %post remove the root password. This
really depends on how the spin wants to work. You could add the live user really depends on how the spin wants to work. You could add the live user
that you create to the %wheel group so that sudo works if you wanted to.</p> that you create to the %wheel group so that sudo works if you wanted to.</p>
<blockquote> <blockquote>
<div><p><code class="docutils literal notranslate"><span class="pre">passwd</span> <span class="pre">-d</span> <span class="pre">root</span> <span class="pre">&gt;</span> <span class="pre">/dev/null</span></code></p> <div><p><code class="docutils literal notranslate"><span class="pre">passwd</span> <span class="pre">-d</span> <span class="pre">root</span> <span class="pre">&gt;</span> <span class="pre">/dev/null</span></code></p>
</div></blockquote> </div></blockquote>
</li> </li>
<li><p class="first">Remove /etc/fstab in %post, dracut handles mounting the rootfs</p> <li><p>Remove /etc/fstab in %post, dracut handles mounting the rootfs</p>
<p><code class="docutils literal notranslate"><span class="pre">cat</span> <span class="pre">/dev/null</span> <span class="pre">&gt;</span> <span class="pre">/dev/fstab</span></code></p> <p><code class="docutils literal notranslate"><span class="pre">cat</span> <span class="pre">/dev/null</span> <span class="pre">&gt;</span> <span class="pre">/dev/fstab</span></code></p>
<p>Do this only for live isos, the filesystem will be mounted read only if <p>Do this only for live isos, the filesystem will be mounted read only if
there is no /etc/fstab</p> there is no /etc/fstab</p>
</li> </li>
<li><p class="first">Dont delete initramfs files from /boot in %post</p> <li><p>Dont delete initramfs files from /boot in %post</p></li>
</li> <li><p>When creating live isos you need to have, at least, these packages in the %package section::
<li><p class="first">When creating live isos you need to have, at least, these packages in the %package section::
dracut-config-generic dracut-config-generic
dracut-live dracut-live
-dracut-config-rescue -dracut-config-rescue
grub-efi grub-efi
memtest86+ memtest86+
syslinux</p> syslinux</p></li>
</li>
</ol> </ol>
<p>One drawback to using qemu is that it pulls the packages from the repo each <p>One drawback to using qemu is that it pulls the packages from the repo each
time you run it. To speed things up you either need a local mirror of the time you run it. To speed things up you either need a local mirror of the
packages, or you can use a caching proxy. When using a proxy you pass it to packages, or you can use a caching proxy. When using a proxy you pass it to
livemedia-creator like this:</p> livemedia-creator like this:</p>
<blockquote> <blockquote>
<div><code class="docutils literal notranslate"><span class="pre">--proxy=http://proxy.yourdomain.com:3128</span></code></div></blockquote> <div><p><code class="docutils literal notranslate"><span class="pre">--proxy=http://proxy.yourdomain.com:3128</span></code></p>
</div></blockquote>
<p>You also need to use a specific mirror instead of mirrormanager so that the <p>You also need to use a specific mirror instead of mirrormanager so that the
packages will get cached, so your kickstart url would look like:</p> packages will get cached, so your kickstart url would look like:</p>
<blockquote> <blockquote>
<div><code class="docutils literal notranslate"><span class="pre">url</span> <span class="pre">--url=&quot;http://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/x86_64/os/&quot;</span></code></div></blockquote> <div><p><code class="docutils literal notranslate"><span class="pre">url</span> <span class="pre">--url=&quot;http://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/x86_64/os/&quot;</span></code></p>
</div></blockquote>
<p>You can also add an update repo, but dont name it updates. Add proxy to it <p>You can also add an update repo, but dont name it updates. Add proxy to it
as well.</p> as well.</p>
</div> </div>
@ -752,29 +662,29 @@ as well.</p>
cmdline. This will use Anacondas directory install feature to handle the cmdline. This will use Anacondas directory install feature to handle the
install. There are a couple of things to keep in mind when doing this:</p> install. There are a couple of things to keep in mind when doing this:</p>
<ol class="arabic simple"> <ol class="arabic simple">
<li>It will be most reliable when building images for the same release that the <li><p>It will be most reliable when building images for the same release that the
host is running. Because Anaconda has expectations about the system it is host is running. Because Anaconda has expectations about the system it is
running under you may encounter strange bugs if you try to build newer or running under you may encounter strange bugs if you try to build newer or
older releases.</li> older releases.</p></li>
<li>It may totally trash your host. So far I havent had this happen, but the <li><p>It may totally trash your host. So far I havent had this happen, but the
possibility exists that a bug in Anaconda could result in it operating on possibility exists that a bug in Anaconda could result in it operating on
real devices. I recommend running it in a virt or on a system that you can real devices. I recommend running it in a virt or on a system that you can
afford to lose all data from.</li> afford to lose all data from.</p></li>
</ol> </ol>
<p>The logs from anaconda will be placed in an ./anaconda/ directory in either <p>The logs from anaconda will be placed in an ./anaconda/ directory in either
the current directory or in the directory used for logfile</p> the current directory or in the directory used for logfile</p>
<p>Example cmdline:</p> <p>Example cmdline:</p>
<p><code class="docutils literal notranslate"><span class="pre">sudo</span> <span class="pre">livemedia-creator</span> <span class="pre">--make-iso</span> <span class="pre">--no-virt</span> <span class="pre">--ks=./rhel-livemedia.ks</span></code></p> <p><code class="docutils literal notranslate"><span class="pre">sudo</span> <span class="pre">livemedia-creator</span> <span class="pre">--make-iso</span> <span class="pre">--no-virt</span> <span class="pre">--ks=./rhel-livemedia.ks</span></code></p>
<div class="admonition note"> <div class="admonition note">
<p class="first admonition-title">Note</p> <p class="admonition-title">Note</p>
<p class="last">Using no-virt to create a partitioned disk image (eg. make-disk or <p>Using no-virt to create a partitioned disk image (eg. make-disk or
make-vagrant) will only create disks usable on the host platform (BIOS make-vagrant) will only create disks usable on the host platform (BIOS
or UEFI). You can create BIOS partitioned disk images on UEFI by using or UEFI). You can create BIOS partitioned disk images on UEFI by using
virt.</p> virt.</p>
</div> </div>
<div class="admonition note"> <div class="admonition note">
<p class="first admonition-title">Note</p> <p class="admonition-title">Note</p>
<p class="last">As of version 30.7 SELinux can be set to Enforcing. The current state is <p>As of version 30.7 SELinux can be set to Enforcing. The current state is
logged for debugging purposes and if there are SELinux denials they should logged for debugging purposes and if there are SELinux denials they should
be reported as a bug.</p> be reported as a bug.</p>
</div> </div>
@ -803,11 +713,10 @@ passing <code class="docutils literal notranslate"><span class="pre">--app-templ
<code class="docutils literal notranslate"><span class="pre">--app-file</span> <span class="pre">&lt;file</span> <span class="pre">path&gt;</span></code></p> <code class="docutils literal notranslate"><span class="pre">--app-file</span> <span class="pre">&lt;file</span> <span class="pre">path&gt;</span></code></p>
<p>The following variables are passed to the template:</p> <p>The following variables are passed to the template:</p>
<blockquote> <blockquote>
<div><dl class="docutils"> <div><dl>
<dt><code class="docutils literal notranslate"><span class="pre">disks</span></code></dt> <dt><code class="docutils literal notranslate"><span class="pre">disks</span></code></dt><dd><p>A list of disk_info about each disk.
<dd><p class="first">A list of disk_info about each disk.
Each entry has the following attributes:</p> Each entry has the following attributes:</p>
<blockquote class="last"> <blockquote>
<div><p><code class="docutils literal notranslate"><span class="pre">name</span></code> <div><p><code class="docutils literal notranslate"><span class="pre">name</span></code>
base name of the disk image file</p> base name of the disk image file</p>
<p><code class="docutils literal notranslate"><span class="pre">format</span></code> <p><code class="docutils literal notranslate"><span class="pre">format</span></code>
@ -838,7 +747,8 @@ from <code class="docutils literal notranslate"><span class="pre">--releasever</
</div></blockquote> </div></blockquote>
<p>The created image can be imported into libvirt using:</p> <p>The created image can be imported into libvirt using:</p>
<blockquote> <blockquote>
<div><code class="docutils literal notranslate"><span class="pre">virt-image</span> <span class="pre">appliance.xml</span></code></div></blockquote> <div><p><code class="docutils literal notranslate"><span class="pre">virt-image</span> <span class="pre">appliance.xml</span></code></p>
</div></blockquote>
<p>You can also create qcow2 appliance images using <code class="docutils literal notranslate"><span class="pre">--image-type=qcow2</span></code>, for example:</p> <p>You can also create qcow2 appliance images using <code class="docutils literal notranslate"><span class="pre">--image-type=qcow2</span></code>, for example:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">livemedia</span><span class="o">-</span><span class="n">creator</span> <span class="o">--</span><span class="n">make</span><span class="o">-</span><span class="n">appliance</span> <span class="o">--</span><span class="n">iso</span><span class="o">=/</span><span class="n">path</span><span class="o">/</span><span class="n">to</span><span class="o">/</span><span class="n">boot</span><span class="o">.</span><span class="n">iso</span> <span class="o">--</span><span class="n">ks</span><span class="o">=./</span><span class="n">docs</span><span class="o">/</span><span class="n">rhel</span><span class="o">-</span><span class="n">minimal</span><span class="o">.</span><span class="n">ks</span> \ <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">livemedia</span><span class="o">-</span><span class="n">creator</span> <span class="o">--</span><span class="n">make</span><span class="o">-</span><span class="n">appliance</span> <span class="o">--</span><span class="n">iso</span><span class="o">=/</span><span class="n">path</span><span class="o">/</span><span class="n">to</span><span class="o">/</span><span class="n">boot</span><span class="o">.</span><span class="n">iso</span> <span class="o">--</span><span class="n">ks</span><span class="o">=./</span><span class="n">docs</span><span class="o">/</span><span class="n">rhel</span><span class="o">-</span><span class="n">minimal</span><span class="o">.</span><span class="n">ks</span> \
<span class="o">--</span><span class="n">image</span><span class="o">-</span><span class="nb">type</span><span class="o">=</span><span class="n">qcow2</span> <span class="o">--</span><span class="n">app</span><span class="o">-</span><span class="n">file</span><span class="o">=</span><span class="n">minimal</span><span class="o">-</span><span class="n">test</span><span class="o">.</span><span class="n">xml</span> <span class="o">--</span><span class="n">image</span><span class="o">-</span><span class="n">name</span><span class="o">=</span><span class="n">minimal</span><span class="o">-</span><span class="n">test</span><span class="o">.</span><span class="n">img</span> <span class="o">--</span><span class="n">image</span><span class="o">-</span><span class="nb">type</span><span class="o">=</span><span class="n">qcow2</span> <span class="o">--</span><span class="n">app</span><span class="o">-</span><span class="n">file</span><span class="o">=</span><span class="n">minimal</span><span class="o">-</span><span class="n">test</span><span class="o">.</span><span class="n">xml</span> <span class="o">--</span><span class="n">image</span><span class="o">-</span><span class="n">name</span><span class="o">=</span><span class="n">minimal</span><span class="o">-</span><span class="n">test</span><span class="o">.</span><span class="n">img</span>
@ -852,7 +762,8 @@ the <code class="docutils literal notranslate"><span class="pre">--make-fsimage<
no-virt modes of operation. Previously it was only available with no-virt.</p> no-virt modes of operation. Previously it was only available with no-virt.</p>
<p>Kickstarts should have a single / partition with no extra mountpoints.</p> <p>Kickstarts should have a single / partition with no extra mountpoints.</p>
<blockquote> <blockquote>
<div><code class="docutils literal notranslate"><span class="pre">livemedia-creator</span> <span class="pre">--make-fsimage</span> <span class="pre">--iso=/path/to/boot.iso</span> <span class="pre">--ks=./docs/rhel-minimal.ks</span></code></div></blockquote> <div><p><code class="docutils literal notranslate"><span class="pre">livemedia-creator</span> <span class="pre">--make-fsimage</span> <span class="pre">--iso=/path/to/boot.iso</span> <span class="pre">--ks=./docs/rhel-minimal.ks</span></code></p>
</div></blockquote>
<p>You can name the output image with <code class="docutils literal notranslate"><span class="pre">--image-name</span></code> and set a label on the filesystem with <code class="docutils literal notranslate"><span class="pre">--fs-label</span></code></p> <p>You can name the output image with <code class="docutils literal notranslate"><span class="pre">--image-name</span></code> and set a label on the filesystem with <code class="docutils literal notranslate"><span class="pre">--fs-label</span></code></p>
</div> </div>
<div class="section" id="tar-file-creation"> <div class="section" id="tar-file-creation">
@ -890,18 +801,16 @@ mock environment.</p>
<p>As of lorax version 22.2 you can use livemedia-creator and anaconda version <p>As of lorax version 22.2 you can use livemedia-creator and anaconda version
22.15 inside of a mock chroot with make-iso and make-fsimage.</p> 22.15 inside of a mock chroot with make-iso and make-fsimage.</p>
<div class="admonition note"> <div class="admonition note">
<p class="first admonition-title">Note</p> <p class="admonition-title">Note</p>
<p class="last">As of mock 1.3.4 you need to use <code class="docutils literal notranslate"><span class="pre">--old-chroot</span></code> with mock. Mock now defaults to using systemd-nspawn <p>As of mock 1.3.4 you need to use <code class="docutils literal notranslate"><span class="pre">--old-chroot</span></code> with mock. Mock now defaults to using systemd-nspawn
which cannot create the needed loop device nodes. Passing <code class="docutils literal notranslate"><span class="pre">--old-chroot</span></code> will use the old system which cannot create the needed loop device nodes. Passing <code class="docutils literal notranslate"><span class="pre">--old-chroot</span></code> will use the old system
where <code class="docutils literal notranslate"><span class="pre">/dev/loop*</span></code> is setup for you.</p> where <code class="docutils literal notranslate"><span class="pre">/dev/loop*</span></code> is setup for you.</p>
</div> </div>
<p>On the host system:</p> <p>On the host system:</p>
<ol class="arabic"> <ol class="arabic">
<li><p class="first">yum install -y mock</p> <li><p>yum install -y mock</p></li>
</li> <li><p>Add a user to the mock group to use for running mock. eg. builder</p></li>
<li><p class="first">Add a user to the mock group to use for running mock. eg. builder</p> <li><p>Create a new /etc/mock/ config file based on the rawhide one, or modify the
</li>
<li><p class="first">Create a new /etc/mock/ config file based on the rawhide one, or modify the
existing one so that the following options are setup:</p> existing one so that the following options are setup:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">config_opts</span><span class="p">[</span><span class="s1">&#39;chroot_setup_cmd&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;install @buildsys-build anaconda-tui lorax&#39;</span> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">config_opts</span><span class="p">[</span><span class="s1">&#39;chroot_setup_cmd&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;install @buildsys-build anaconda-tui lorax&#39;</span>
@ -916,22 +825,17 @@ the updates-testing repository so that you get the latest builds in your mock ch
<p>The following steps are run as the builder user who is a member of the mock <p>The following steps are run as the builder user who is a member of the mock
group.</p> group.</p>
<ol class="arabic" start="4"> <ol class="arabic" start="4">
<li><p class="first">Make a directory for results matching the bind mount above <li><p>Make a directory for results matching the bind mount above
<code class="docutils literal notranslate"><span class="pre">mkdir</span> <span class="pre">~/results/</span></code></p> <code class="docutils literal notranslate"><span class="pre">mkdir</span> <span class="pre">~/results/</span></code></p></li>
</li> <li><p>Copy the example kickstarts
<li><p class="first">Copy the example kickstarts <code class="docutils literal notranslate"><span class="pre">cp</span> <span class="pre">/usr/share/docs/lorax/*ks</span> <span class="pre">.</span></code></p></li>
<code class="docutils literal notranslate"><span class="pre">cp</span> <span class="pre">/usr/share/docs/lorax/*ks</span> <span class="pre">.</span></code></p> <li><p>Make sure tar and dracut-network are in the %packages section and that the
</li> <code class="docutils literal notranslate"><span class="pre">url</span> <span class="pre">points</span> <span class="pre">to</span> <span class="pre">the</span> <span class="pre">correct</span> <span class="pre">repo</span></code></p></li>
<li><p class="first">Make sure tar and dracut-network are in the %packages section and that the <li><p>Init the mock
<code class="docutils literal notranslate"><span class="pre">url</span> <span class="pre">points</span> <span class="pre">to</span> <span class="pre">the</span> <span class="pre">correct</span> <span class="pre">repo</span></code></p> <code class="docutils literal notranslate"><span class="pre">mock</span> <span class="pre">-r</span> <span class="pre">rhel-8-x86_64</span> <span class="pre">--old-chroot</span> <span class="pre">--init</span></code></p></li>
</li> <li><p>Copy the kickstart inside the mock
<li><p class="first">Init the mock <code class="docutils literal notranslate"><span class="pre">mock</span> <span class="pre">-r</span> <span class="pre">rhel-8-x86_64</span> <span class="pre">--old-chroot</span> <span class="pre">--copyin</span> <span class="pre">./rhel-minimal.ks</span> <span class="pre">/root/</span></code></p></li>
<code class="docutils literal notranslate"><span class="pre">mock</span> <span class="pre">-r</span> <span class="pre">rhel-8-x86_64</span> <span class="pre">--old-chroot</span> <span class="pre">--init</span></code></p> <li><p>Make a minimal iso:</p>
</li>
<li><p class="first">Copy the kickstart inside the mock
<code class="docutils literal notranslate"><span class="pre">mock</span> <span class="pre">-r</span> <span class="pre">rhel-8-x86_64</span> <span class="pre">--old-chroot</span> <span class="pre">--copyin</span> <span class="pre">./rhel-minimal.ks</span> <span class="pre">/root/</span></code></p>
</li>
<li><p class="first">Make a minimal iso:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">mock</span> <span class="o">-</span><span class="n">r</span> <span class="n">rhel</span><span class="o">-</span><span class="mi">8</span><span class="o">-</span><span class="n">x86_64</span> <span class="o">--</span><span class="n">old</span><span class="o">-</span><span class="n">chroot</span> <span class="o">--</span><span class="n">chroot</span> <span class="o">--</span> <span class="n">livemedia</span><span class="o">-</span><span class="n">creator</span> <span class="o">--</span><span class="n">no</span><span class="o">-</span><span class="n">virt</span> \ <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">mock</span> <span class="o">-</span><span class="n">r</span> <span class="n">rhel</span><span class="o">-</span><span class="mi">8</span><span class="o">-</span><span class="n">x86_64</span> <span class="o">--</span><span class="n">old</span><span class="o">-</span><span class="n">chroot</span> <span class="o">--</span><span class="n">chroot</span> <span class="o">--</span> <span class="n">livemedia</span><span class="o">-</span><span class="n">creator</span> <span class="o">--</span><span class="n">no</span><span class="o">-</span><span class="n">virt</span> \
<span class="o">--</span><span class="n">resultdir</span><span class="o">=/</span><span class="n">results</span><span class="o">/</span><span class="k">try</span><span class="o">-</span><span class="mi">1</span> <span class="o">--</span><span class="n">logfile</span><span class="o">=/</span><span class="n">results</span><span class="o">/</span><span class="n">logs</span><span class="o">/</span><span class="k">try</span><span class="o">-</span><span class="mi">1</span><span class="o">/</span><span class="k">try</span><span class="o">-</span><span class="mf">1.</span><span class="n">log</span> \ <span class="o">--</span><span class="n">resultdir</span><span class="o">=/</span><span class="n">results</span><span class="o">/</span><span class="k">try</span><span class="o">-</span><span class="mi">1</span> <span class="o">--</span><span class="n">logfile</span><span class="o">=/</span><span class="n">results</span><span class="o">/</span><span class="n">logs</span><span class="o">/</span><span class="k">try</span><span class="o">-</span><span class="mi">1</span><span class="o">/</span><span class="k">try</span><span class="o">-</span><span class="mf">1.</span><span class="n">log</span> \
<span class="o">--</span><span class="n">make</span><span class="o">-</span><span class="n">iso</span> <span class="o">--</span><span class="n">ks</span> <span class="o">/</span><span class="n">root</span><span class="o">/</span><span class="n">rhel</span><span class="o">-</span><span class="n">minimal</span><span class="o">.</span><span class="n">ks</span> <span class="o">--</span><span class="n">make</span><span class="o">-</span><span class="n">iso</span> <span class="o">--</span><span class="n">ks</span> <span class="o">/</span><span class="n">root</span><span class="o">/</span><span class="n">rhel</span><span class="o">-</span><span class="n">minimal</span><span class="o">.</span><span class="n">ks</span>
@ -951,11 +855,9 @@ This allows creation of all image types, and use of the KVM on the host if
/dev/kvm is present in the mock environment.</p> /dev/kvm is present in the mock environment.</p>
<p>On the host system:</p> <p>On the host system:</p>
<ol class="arabic"> <ol class="arabic">
<li><p class="first">yum install -y mock</p> <li><p>yum install -y mock</p></li>
</li> <li><p>Add a user to the mock group to use for running mock. eg. builder</p></li>
<li><p class="first">Add a user to the mock group to use for running mock. eg. builder</p> <li><p>Create a new /etc/mock/ config file based on the rawhide one, or modify the
</li>
<li><p class="first">Create a new /etc/mock/ config file based on the rawhide one, or modify the
existing one so that the following options are setup:</p> existing one so that the following options are setup:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">config_opts</span><span class="p">[</span><span class="s1">&#39;chroot_setup_cmd&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;install @buildsys-build lorax qemu&#39;</span> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">config_opts</span><span class="p">[</span><span class="s1">&#39;chroot_setup_cmd&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;install @buildsys-build lorax qemu&#39;</span>
@ -970,25 +872,19 @@ the updates-testing repository so that you get the latest builds in your mock ch
<p>The following steps are run as the builder user who is a member of the mock <p>The following steps are run as the builder user who is a member of the mock
group.</p> group.</p>
<ol class="arabic" start="4"> <ol class="arabic" start="4">
<li><p class="first">Make a directory for results matching the bind mount above <li><p>Make a directory for results matching the bind mount above
<code class="docutils literal notranslate"><span class="pre">mkdir</span> <span class="pre">~/results/</span></code></p> <code class="docutils literal notranslate"><span class="pre">mkdir</span> <span class="pre">~/results/</span></code></p></li>
</li> <li><p>Copy the example kickstarts
<li><p class="first">Copy the example kickstarts <code class="docutils literal notranslate"><span class="pre">cp</span> <span class="pre">/usr/share/docs/lorax/*ks</span> <span class="pre">.</span></code></p></li>
<code class="docutils literal notranslate"><span class="pre">cp</span> <span class="pre">/usr/share/docs/lorax/*ks</span> <span class="pre">.</span></code></p> <li><p>Make sure tar and dracut-network are in the %packages section and that the
</li> <code class="docutils literal notranslate"><span class="pre">url</span> <span class="pre">points</span> <span class="pre">to</span> <span class="pre">the</span> <span class="pre">correct</span> <span class="pre">repo</span></code></p></li>
<li><p class="first">Make sure tar and dracut-network are in the %packages section and that the <li><p>Init the mock
<code class="docutils literal notranslate"><span class="pre">url</span> <span class="pre">points</span> <span class="pre">to</span> <span class="pre">the</span> <span class="pre">correct</span> <span class="pre">repo</span></code></p> <code class="docutils literal notranslate"><span class="pre">mock</span> <span class="pre">-r</span> <span class="pre">rhel-8-x86_64</span> <span class="pre">--old-chroot</span> <span class="pre">--init</span></code></p></li>
</li> <li><p>Copy the kickstart inside the mock
<li><p class="first">Init the mock <code class="docutils literal notranslate"><span class="pre">mock</span> <span class="pre">-r</span> <span class="pre">rhel-8-x86_64</span> <span class="pre">--old-chroot</span> <span class="pre">--copyin</span> <span class="pre">./rhel-minimal.ks</span> <span class="pre">/root/</span></code></p></li>
<code class="docutils literal notranslate"><span class="pre">mock</span> <span class="pre">-r</span> <span class="pre">rhel-8-x86_64</span> <span class="pre">--old-chroot</span> <span class="pre">--init</span></code></p> <li><p>Copy the Anaconda boot.iso inside the mock
</li> <code class="docutils literal notranslate"><span class="pre">mock</span> <span class="pre">-r</span> <span class="pre">rhel-8-x86_64</span> <span class="pre">--old-chroot</span> <span class="pre">--copyin</span> <span class="pre">./boot.iso</span> <span class="pre">/root/</span></code></p></li>
<li><p class="first">Copy the kickstart inside the mock <li><p>Make a minimal iso:</p>
<code class="docutils literal notranslate"><span class="pre">mock</span> <span class="pre">-r</span> <span class="pre">rhel-8-x86_64</span> <span class="pre">--old-chroot</span> <span class="pre">--copyin</span> <span class="pre">./rhel-minimal.ks</span> <span class="pre">/root/</span></code></p>
</li>
<li><p class="first">Copy the Anaconda boot.iso inside the mock
<code class="docutils literal notranslate"><span class="pre">mock</span> <span class="pre">-r</span> <span class="pre">rhel-8-x86_64</span> <span class="pre">--old-chroot</span> <span class="pre">--copyin</span> <span class="pre">./boot.iso</span> <span class="pre">/root/</span></code></p>
</li>
<li><p class="first">Make a minimal iso:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">mock</span> <span class="o">-</span><span class="n">r</span> <span class="n">rhel</span><span class="o">-</span><span class="mi">8</span><span class="o">-</span><span class="n">x86_64</span> <span class="o">--</span><span class="n">old</span><span class="o">-</span><span class="n">chroot</span> <span class="o">--</span><span class="n">chroot</span> <span class="o">--</span> <span class="n">livemedia</span><span class="o">-</span><span class="n">creator</span> \ <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">mock</span> <span class="o">-</span><span class="n">r</span> <span class="n">rhel</span><span class="o">-</span><span class="mi">8</span><span class="o">-</span><span class="n">x86_64</span> <span class="o">--</span><span class="n">old</span><span class="o">-</span><span class="n">chroot</span> <span class="o">--</span><span class="n">chroot</span> <span class="o">--</span> <span class="n">livemedia</span><span class="o">-</span><span class="n">creator</span> \
<span class="o">--</span><span class="n">resultdir</span><span class="o">=/</span><span class="n">results</span><span class="o">/</span><span class="k">try</span><span class="o">-</span><span class="mi">1</span> <span class="o">--</span><span class="n">logfile</span><span class="o">=/</span><span class="n">results</span><span class="o">/</span><span class="n">logs</span><span class="o">/</span><span class="k">try</span><span class="o">-</span><span class="mi">1</span><span class="o">/</span><span class="k">try</span><span class="o">-</span><span class="mf">1.</span><span class="n">log</span> \ <span class="o">--</span><span class="n">resultdir</span><span class="o">=/</span><span class="n">results</span><span class="o">/</span><span class="k">try</span><span class="o">-</span><span class="mi">1</span> <span class="o">--</span><span class="n">logfile</span><span class="o">=/</span><span class="n">results</span><span class="o">/</span><span class="n">logs</span><span class="o">/</span><span class="k">try</span><span class="o">-</span><span class="mi">1</span><span class="o">/</span><span class="k">try</span><span class="o">-</span><span class="mf">1.</span><span class="n">log</span> \
<span class="o">--</span><span class="n">make</span><span class="o">-</span><span class="n">iso</span> <span class="o">--</span><span class="n">ks</span> <span class="o">/</span><span class="n">root</span><span class="o">/</span><span class="n">rhel</span><span class="o">-</span><span class="n">minimal</span><span class="o">.</span><span class="n">ks</span> <span class="o">--</span><span class="n">iso</span> <span class="o">/</span><span class="n">root</span><span class="o">/</span><span class="n">boot</span><span class="o">.</span><span class="n">iso</span> <span class="o">--</span><span class="n">make</span><span class="o">-</span><span class="n">iso</span> <span class="o">--</span><span class="n">ks</span> <span class="o">/</span><span class="n">root</span><span class="o">/</span><span class="n">rhel</span><span class="o">-</span><span class="n">minimal</span><span class="o">.</span><span class="n">ks</span> <span class="o">--</span><span class="n">iso</span> <span class="o">/</span><span class="n">root</span><span class="o">/</span><span class="n">boot</span><span class="o">.</span><span class="n">iso</span>
@ -1015,10 +911,11 @@ packages. OpenStack supports setting up the image using cloud-init, and
cloud-utils-growpart will grow the image to fit the instances disk size.</p> cloud-utils-growpart will grow the image to fit the instances disk size.</p>
<p>Create a qcow2 image using the kickstart like this:</p> <p>Create a qcow2 image using the kickstart like this:</p>
<blockquote> <blockquote>
<div><code class="docutils literal notranslate"><span class="pre">sudo</span> <span class="pre">livemedia-creator</span> <span class="pre">--make-disk</span> <span class="pre">--iso=/path/to/boot.iso</span> <span class="pre">--ks=/path/to/rhel-openstack.ks</span> <span class="pre">--image-type=qcow2</span></code></div></blockquote> <div><p><code class="docutils literal notranslate"><span class="pre">sudo</span> <span class="pre">livemedia-creator</span> <span class="pre">--make-disk</span> <span class="pre">--iso=/path/to/boot.iso</span> <span class="pre">--ks=/path/to/rhel-openstack.ks</span> <span class="pre">--image-type=qcow2</span></code></p>
</div></blockquote>
<div class="admonition note"> <div class="admonition note">
<p class="first admonition-title">Note</p> <p class="admonition-title">Note</p>
<p class="last">On the RHEL7 version of lmc <code class="docutils literal notranslate"><span class="pre">--image-type</span></code> isnt supported. You can only create a bare partitioned disk image.</p> <p>On the RHEL7 version of lmc <code class="docutils literal notranslate"><span class="pre">--image-type</span></code> isnt supported. You can only create a bare partitioned disk image.</p>
</div> </div>
<p>Import the resulting disk image into the OpenStack system, either via the web UI, or glance on the cmdline:</p> <p>Import the resulting disk image into the OpenStack system, either via the web UI, or glance on the cmdline:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">glance</span> <span class="n">image</span><span class="o">-</span><span class="n">create</span> <span class="o">--</span><span class="n">name</span> <span class="s2">&quot;rhel-openstack&quot;</span> <span class="o">--</span><span class="ow">is</span><span class="o">-</span><span class="n">public</span> <span class="n">true</span> <span class="o">--</span><span class="n">disk</span><span class="o">-</span><span class="nb">format</span> <span class="n">qcow2</span> \ <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">glance</span> <span class="n">image</span><span class="o">-</span><span class="n">create</span> <span class="o">--</span><span class="n">name</span> <span class="s2">&quot;rhel-openstack&quot;</span> <span class="o">--</span><span class="ow">is</span><span class="o">-</span><span class="n">public</span> <span class="n">true</span> <span class="o">--</span><span class="n">disk</span><span class="o">-</span><span class="nb">format</span> <span class="n">qcow2</span> \
@ -1033,10 +930,12 @@ cloud-utils-growpart will grow the image to fit the instances disk size.</p>
rhel-container.ks example kickstart which removes the requirement for core files and the kernel.</p> rhel-container.ks example kickstart which removes the requirement for core files and the kernel.</p>
<p>You can then import the tarfile into podman or docker like this:</p> <p>You can then import the tarfile into podman or docker like this:</p>
<blockquote> <blockquote>
<div><code class="docutils literal notranslate"><span class="pre">podman</span> <span class="pre">import</span> <span class="pre">/var/tmp/root.tar.xz</span> <span class="pre">rhel-root</span></code></div></blockquote> <div><p><code class="docutils literal notranslate"><span class="pre">podman</span> <span class="pre">import</span> <span class="pre">/var/tmp/root.tar.xz</span> <span class="pre">rhel-root</span></code></p>
</div></blockquote>
<p>And then run bash inside of it:</p> <p>And then run bash inside of it:</p>
<blockquote> <blockquote>
<div><code class="docutils literal notranslate"><span class="pre">podman</span> <span class="pre">run</span> <span class="pre">-i</span> <span class="pre">-t</span> <span class="pre">rhel-root</span> <span class="pre">/bin/bash</span></code></div></blockquote> <div><p><code class="docutils literal notranslate"><span class="pre">podman</span> <span class="pre">run</span> <span class="pre">-i</span> <span class="pre">-t</span> <span class="pre">rhel-root</span> <span class="pre">/bin/bash</span></code></p>
</div></blockquote>
</div> </div>
<div class="section" id="open-container-initiative-image-creation"> <div class="section" id="open-container-initiative-image-creation">
<h2>Open Container Initiative Image Creation<a class="headerlink" href="#open-container-initiative-image-creation" title="Permalink to this headline"></a></h2> <h2>Open Container Initiative Image Creation<a class="headerlink" href="#open-container-initiative-image-creation" title="Permalink to this headline"></a></h2>
@ -1090,8 +989,8 @@ firmware files.</p>
</div> </div>
<p>Or use <code class="docutils literal notranslate"><span class="pre">reqpart</span></code> in the kickstart and Anaconda will create the required partitions.</p> <p>Or use <code class="docutils literal notranslate"><span class="pre">reqpart</span></code> in the kickstart and Anaconda will create the required partitions.</p>
<div class="admonition note"> <div class="admonition note">
<p class="first admonition-title">Note</p> <p class="admonition-title">Note</p>
<p class="last">The virt-uefi method is currently only supported on the x86_64 architecture.</p> <p>The virt-uefi method is currently only supported on the x86_64 architecture.</p>
</div> </div>
</div> </div>
<div class="section" id="debugging-problems"> <div class="section" id="debugging-problems">

View File

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>lorax-composer &mdash; Lorax 28.14.33 documentation</title> <title>lorax-composer &mdash; Lorax 28.14.42 documentation</title>
@ -60,7 +60,7 @@
<div class="version"> <div class="version">
28.14.33 28.14.42
</div> </div>
@ -198,14 +198,11 @@
<div class="section" id="lorax-composer"> <div class="section" id="lorax-composer">
<h1>lorax-composer<a class="headerlink" href="#lorax-composer" title="Permalink to this headline"></a></h1> <h1>lorax-composer<a class="headerlink" href="#lorax-composer" title="Permalink to this headline"></a></h1>
<table class="docutils field-list" frame="void" rules="none"> <dl class="field-list simple">
<col class="field-name" /> <dt class="field-odd">Authors</dt>
<col class="field-body" /> <dd class="field-odd"><p>Brian C. Lane &lt;<a class="reference external" href="mailto:bcl&#37;&#52;&#48;redhat&#46;com">bcl<span>&#64;</span>redhat<span>&#46;</span>com</a>&gt;</p>
<tbody valign="top"> </dd>
<tr class="field-odd field"><th class="field-name">Authors:</th><td class="field-body">Brian C. Lane &lt;<a class="reference external" href="mailto:bcl&#37;&#52;&#48;redhat&#46;com">bcl<span>&#64;</span>redhat<span>&#46;</span>com</a>&gt;</td> </dl>
</tr>
</tbody>
</table>
<p><code class="docutils literal notranslate"><span class="pre">lorax-composer</span></code> is an API server that allows you to build disk images using <p><code class="docutils literal notranslate"><span class="pre">lorax-composer</span></code> is an API server that allows you to build disk images using
<a class="reference internal" href="#blueprints">Blueprints</a> to describe the package versions to be installed into the image. <a class="reference internal" href="#blueprints">Blueprints</a> to describe the package versions to be installed into the image.
It is compatible with the Weldr projects bdcs-api REST protocol. More It is compatible with the Weldr projects bdcs-api REST protocol. More
@ -216,13 +213,13 @@ installation and configuration of the images.</p>
<div class="section" id="important-things-to-note"> <div class="section" id="important-things-to-note">
<h2>Important Things To Note<a class="headerlink" href="#important-things-to-note" title="Permalink to this headline"></a></h2> <h2>Important Things To Note<a class="headerlink" href="#important-things-to-note" title="Permalink to this headline"></a></h2>
<ul class="simple"> <ul class="simple">
<li>As of version 30.7 SELinux can be set to Enforcing. The current state is <li><p>As of version 30.7 SELinux can be set to Enforcing. The current state is
logged for debugging purposes and if there are SELinux denials they should logged for debugging purposes and if there are SELinux denials they should
be reported as a bug.</li> be reported as a bug.</p></li>
<li>All image types lock the root account, except for live-iso. You will need to either <li><p>All image types lock the root account, except for live-iso. You will need to either
use one of the <a class="reference internal" href="#customizations">Customizations</a> methods for setting a ssh key/password, install a use one of the <a class="reference internal" href="#customizations">Customizations</a> methods for setting a ssh key/password, install a
package that creates a user, or use something like <cite>cloud-init</cite> to setup access at package that creates a user, or use something like <cite>cloud-init</cite> to setup access at
boot time.</li> boot time.</p></li>
</ul> </ul>
</div> </div>
<div class="section" id="installation"> <div class="section" id="installation">
@ -238,11 +235,11 @@ the system is rebooted.</p>
<div class="section" id="quickstart"> <div class="section" id="quickstart">
<h2>Quickstart<a class="headerlink" href="#quickstart" title="Permalink to this headline"></a></h2> <h2>Quickstart<a class="headerlink" href="#quickstart" title="Permalink to this headline"></a></h2>
<ol class="arabic simple"> <ol class="arabic simple">
<li>Create a <code class="docutils literal notranslate"><span class="pre">weldr</span></code> user and group by running <code class="docutils literal notranslate"><span class="pre">useradd</span> <span class="pre">weldr</span></code></li> <li><p>Create a <code class="docutils literal notranslate"><span class="pre">weldr</span></code> user and group by running <code class="docutils literal notranslate"><span class="pre">useradd</span> <span class="pre">weldr</span></code></p></li>
<li>Remove any pre-existing socket directory with <code class="docutils literal notranslate"><span class="pre">rm</span> <span class="pre">-rf</span> <span class="pre">/run/weldr/</span></code> <li><p>Remove any pre-existing socket directory with <code class="docutils literal notranslate"><span class="pre">rm</span> <span class="pre">-rf</span> <span class="pre">/run/weldr/</span></code>
A new directory with correct permissions will be created the first time the server runs.</li> A new directory with correct permissions will be created the first time the server runs.</p></li>
<li>Enable the socket activation with <code class="docutils literal notranslate"><span class="pre">systemctl</span> <span class="pre">enable</span> <span class="pre">lorax-composer.socket</span> <li><p>Enable the socket activation with <code class="docutils literal notranslate"><span class="pre">systemctl</span> <span class="pre">enable</span> <span class="pre">lorax-composer.socket</span>
<span class="pre">&amp;&amp;</span> <span class="pre">sudo</span> <span class="pre">systemctl</span> <span class="pre">start</span> <span class="pre">lorax-composer.socket</span></code>.</li> <span class="pre">&amp;&amp;</span> <span class="pre">sudo</span> <span class="pre">systemctl</span> <span class="pre">start</span> <span class="pre">lorax-composer.socket</span></code>.</p></li>
</ol> </ol>
<p>NOTE: You can also run it directly with <code class="docutils literal notranslate"><span class="pre">lorax-composer</span> <span class="pre">/path/to/blueprints</span></code>. However, <p>NOTE: You can also run it directly with <code class="docutils literal notranslate"><span class="pre">lorax-composer</span> <span class="pre">/path/to/blueprints</span></code>. However,
<code class="docutils literal notranslate"><span class="pre">lorax-composer</span></code> does not react well to being started both on the command line and via <code class="docutils literal notranslate"><span class="pre">lorax-composer</span></code> does not react well to being started both on the command line and via
@ -264,8 +261,8 @@ messages as well as extra debugging info and API requests.</p>
<h2>Security<a class="headerlink" href="#security" title="Permalink to this headline"></a></h2> <h2>Security<a class="headerlink" href="#security" title="Permalink to this headline"></a></h2>
<p>Some security related issues that you should be aware of before running <code class="docutils literal notranslate"><span class="pre">lorax-composer</span></code>:</p> <p>Some security related issues that you should be aware of before running <code class="docutils literal notranslate"><span class="pre">lorax-composer</span></code>:</p>
<ul class="simple"> <ul class="simple">
<li>One of the API server threads needs to retain root privileges in order to run Anaconda.</li> <li><p>One of the API server threads needs to retain root privileges in order to run Anaconda.</p></li>
<li>Only allow authorized users access to the <code class="docutils literal notranslate"><span class="pre">weldr</span></code> group and socket.</li> <li><p>Only allow authorized users access to the <code class="docutils literal notranslate"><span class="pre">weldr</span></code> group and socket.</p></li>
</ul> </ul>
<p>Since Anaconda kickstarts are used there is the possibility that a user could <p>Since Anaconda kickstarts are used there is the possibility that a user could
inject commands into a blueprint that would result in the kickstart executing inject commands into a blueprint that would result in the kickstart executing
@ -274,7 +271,8 @@ images using <code class="docutils literal notranslate"><span class="pre">lorax-
</div> </div>
<div class="section" id="lorax-composer-cmdline-arguments"> <div class="section" id="lorax-composer-cmdline-arguments">
<h2>lorax-composer cmdline arguments<a class="headerlink" href="#lorax-composer-cmdline-arguments" title="Permalink to this headline"></a></h2> <h2>lorax-composer cmdline arguments<a class="headerlink" href="#lorax-composer-cmdline-arguments" title="Permalink to this headline"></a></h2>
<p>Lorax Composer API Server</p> <p><p>Lorax Composer API Server</p>
</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">usage</span><span class="p">:</span> <span class="n">lorax</span><span class="o">-</span><span class="n">composer</span> <span class="p">[</span><span class="o">-</span><span class="n">h</span><span class="p">]</span> <span class="p">[</span><span class="o">--</span><span class="n">socket</span> <span class="n">SOCKET</span><span class="p">]</span> <span class="p">[</span><span class="o">--</span><span class="n">user</span> <span class="n">USER</span><span class="p">]</span> <span class="p">[</span><span class="o">--</span><span class="n">group</span> <span class="n">GROUP</span><span class="p">]</span> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">usage</span><span class="p">:</span> <span class="n">lorax</span><span class="o">-</span><span class="n">composer</span> <span class="p">[</span><span class="o">-</span><span class="n">h</span><span class="p">]</span> <span class="p">[</span><span class="o">--</span><span class="n">socket</span> <span class="n">SOCKET</span><span class="p">]</span> <span class="p">[</span><span class="o">--</span><span class="n">user</span> <span class="n">USER</span><span class="p">]</span> <span class="p">[</span><span class="o">--</span><span class="n">group</span> <span class="n">GROUP</span><span class="p">]</span>
<span class="p">[</span><span class="o">--</span><span class="n">log</span> <span class="n">LOG</span><span class="p">]</span> <span class="p">[</span><span class="o">--</span><span class="n">mockfiles</span> <span class="n">MOCKFILES</span><span class="p">]</span> <span class="p">[</span><span class="o">--</span><span class="n">log</span> <span class="n">LOG</span><span class="p">]</span> <span class="p">[</span><span class="o">--</span><span class="n">mockfiles</span> <span class="n">MOCKFILES</span><span class="p">]</span>
<span class="p">[</span><span class="o">--</span><span class="n">sharedir</span> <span class="n">SHAREDIR</span><span class="p">]</span> <span class="p">[</span><span class="o">-</span><span class="n">V</span><span class="p">]</span> <span class="p">[</span><span class="o">-</span><span class="n">c</span> <span class="n">CONFIG</span><span class="p">]</span> <span class="p">[</span><span class="o">--</span><span class="n">sharedir</span> <span class="n">SHAREDIR</span><span class="p">]</span> <span class="p">[</span><span class="o">-</span><span class="n">V</span><span class="p">]</span> <span class="p">[</span><span class="o">-</span><span class="n">c</span> <span class="n">CONFIG</span><span class="p">]</span>
@ -285,79 +283,61 @@ images using <code class="docutils literal notranslate"><span class="pre">lorax-
</div> </div>
<div class="section" id="Positional Arguments"> <div class="section" id="Positional Arguments">
<h3>Positional Arguments<a class="headerlink" href="#Positional Arguments" title="Permalink to this headline"></a></h3> <h3>Positional Arguments<a class="headerlink" href="#Positional Arguments" title="Permalink to this headline"></a></h3>
<table class="docutils option-list" frame="void" rules="none"> <dl class="option-list">
<col class="option" /> <dt><kbd>BLUEPRINTS</kbd></dt>
<col class="description" /> <dd><p>Path to the blueprints</p>
<tbody valign="top"> </dd>
<tr><td class="option-group"> </dl>
<kbd>BLUEPRINTS</kbd></td>
<td>Path to the blueprints</td></tr>
</tbody>
</table>
</div> </div>
<div class="section" id="Named Arguments"> <div class="section" id="Named Arguments">
<h3>Named Arguments<a class="headerlink" href="#Named Arguments" title="Permalink to this headline"></a></h3> <h3>Named Arguments<a class="headerlink" href="#Named Arguments" title="Permalink to this headline"></a></h3>
<table class="docutils option-list" frame="void" rules="none"> <dl class="option-list">
<col class="option" /> <dt><kbd>--socket</kbd></dt>
<col class="description" /> <dd><p>Path to the socket file to listen on</p>
<tbody valign="top"> <p>Default: “/run/weldr/api.socket”</p>
<tr><td class="option-group"> </dd>
<kbd>--socket</kbd></td> <dt><kbd>--user</kbd></dt>
<td><p class="first">Path to the socket file to listen on</p> <dd><p>User to use for reduced permissions</p>
<p class="last">Default: “/run/weldr/api.socket”</p> <p>Default: “root”</p>
</td></tr> </dd>
<tr><td class="option-group"> <dt><kbd>--group</kbd></dt>
<kbd>--user</kbd></td> <dd><p>Group to set ownership of the socket to</p>
<td><p class="first">User to use for reduced permissions</p> <p>Default: “weldr”</p>
<p class="last">Default: “root”</p> </dd>
</td></tr> <dt><kbd>--log</kbd></dt>
<tr><td class="option-group"> <dd><p>Path to logfile (/var/log/lorax-composer/composer.log)</p>
<kbd>--group</kbd></td> <p>Default: “/var/log/lorax-composer/composer.log”</p>
<td><p class="first">Group to set ownership of the socket to</p> </dd>
<p class="last">Default: “weldr”</p> <dt><kbd>--mockfiles</kbd></dt>
</td></tr> <dd><p>Path to JSON files used for /api/mock/ paths (/var/tmp/bdcs-mockfiles/)</p>
<tr><td class="option-group"> <p>Default: “/var/tmp/bdcs-mockfiles/”</p>
<kbd>--log</kbd></td> </dd>
<td><p class="first">Path to logfile (/var/log/lorax-composer/composer.log)</p> <dt><kbd>--sharedir</kbd></dt>
<p class="last">Default: “/var/log/lorax-composer/composer.log”</p> <dd><p>Directory containing all the templates. Overrides config file sharedir</p>
</td></tr> </dd>
<tr><td class="option-group"> <dt><kbd>-V</kbd></dt>
<kbd>--mockfiles</kbd></td> <dd><p>show programs version number and exit</p>
<td><p class="first">Path to JSON files used for /api/mock/ paths (/var/tmp/bdcs-mockfiles/)</p> <p>Default: False</p>
<p class="last">Default: “/var/tmp/bdcs-mockfiles/”</p> </dd>
</td></tr> <dt><kbd>-c, --config</kbd></dt>
<tr><td class="option-group"> <dd><p>Path to lorax-composer configuration file.</p>
<kbd>--sharedir</kbd></td> <p>Default: “/etc/lorax/composer.conf”</p>
<td>Directory containing all the templates. Overrides config file sharedir</td></tr> </dd>
<tr><td class="option-group"> <dt><kbd>--releasever</kbd></dt>
<kbd>-V</kbd></td> <dd><p>Release version to use for $releasever in dnf repository urls</p>
<td><p class="first">show programs version number and exit</p> </dd>
<p class="last">Default: False</p> <dt><kbd>--tmp</kbd></dt>
</td></tr> <dd><p>Top level temporary directory</p>
<tr><td class="option-group"> <p>Default: “/var/tmp”</p>
<kbd>-c, --config</kbd></td> </dd>
<td><p class="first">Path to lorax-composer configuration file.</p> <dt><kbd>--proxy</kbd></dt>
<p class="last">Default: “/etc/lorax/composer.conf”</p> <dd><p>Set proxy for DNF, overrides configuration file setting.</p>
</td></tr> </dd>
<tr><td class="option-group"> <dt><kbd>--no-system-repos</kbd></dt>
<kbd>--releasever</kbd></td> <dd><p>Do not copy over system repos from /etc/yum.repos.d/ at startup</p>
<td>Release version to use for $releasever in dnf repository urls</td></tr> <p>Default: False</p>
<tr><td class="option-group"> </dd>
<kbd>--tmp</kbd></td> </dl>
<td><p class="first">Top level temporary directory</p>
<p class="last">Default: “/var/tmp”</p>
</td></tr>
<tr><td class="option-group">
<kbd>--proxy</kbd></td>
<td>Set proxy for DNF, overrides configuration file setting.</td></tr>
<tr><td class="option-group" colspan="2">
<kbd>--no-system-repos</kbd></td>
</tr>
<tr><td>&#160;</td><td><p class="first">Do not copy over system repos from /etc/yum.repos.d/ at startup</p>
<p class="last">Default: False</p>
</td></tr>
</tbody>
</table>
</div> </div>
</div> </div>
<div class="section" id="how-it-works"> <div class="section" id="how-it-works">
@ -573,13 +553,13 @@ image build metadata.</p>
</pre></div> </pre></div>
</div> </div>
<ul class="simple"> <ul class="simple">
<li>rpmname: Name of the rpm to create, also used as the prefix name in the tar archive</li> <li><p>rpmname: Name of the rpm to create, also used as the prefix name in the tar archive</p></li>
<li>rpmversion: Version of the rpm, eg. “1.0.0”</li> <li><p>rpmversion: Version of the rpm, eg. “1.0.0”</p></li>
<li>rpmrelease: Release of the rpm, eg. “1”</li> <li><p>rpmrelease: Release of the rpm, eg. “1”</p></li>
<li>summary: Summary string for the rpm</li> <li><p>summary: Summary string for the rpm</p></li>
<li>repo: URL of the get repo to clone and create the archive from</li> <li><p>repo: URL of the get repo to clone and create the archive from</p></li>
<li>ref: Git reference to check out. eg. origin/branch-name, git tag, or git commit hash</li> <li><p>ref: Git reference to check out. eg. origin/branch-name, git tag, or git commit hash</p></li>
<li>destination: Path to install the / of the git repo at when installing the rpm</li> <li><p>destination: Path to install the / of the git repo at when installing the rpm</p></li>
</ul> </ul>
<p>An rpm will be created with the contents of the git repository referenced, with the files <p>An rpm will be created with the contents of the git repository referenced, with the files
being installed under <code class="docutils literal notranslate"><span class="pre">/opt/server/</span></code> in this case.</p> being installed under <code class="docutils literal notranslate"><span class="pre">/opt/server/</span></code> in this case.</p>
@ -597,12 +577,12 @@ these are currently available via <code class="docutils literal notranslate"><sp
lorax-composer a kickstart file needs to be added to <code class="docutils literal notranslate"><span class="pre">./share/composer/</span></code>. The lorax-composer a kickstart file needs to be added to <code class="docutils literal notranslate"><span class="pre">./share/composer/</span></code>. The
name of the kickstart is what will be used by the <code class="docutils literal notranslate"><span class="pre">/compose/types</span></code> route, and the name of the kickstart is what will be used by the <code class="docutils literal notranslate"><span class="pre">/compose/types</span></code> route, and the
<code class="docutils literal notranslate"><span class="pre">compose_type</span></code> field of the POST to start a compose. It also needs to have <code class="docutils literal notranslate"><span class="pre">compose_type</span></code> field of the POST to start a compose. It also needs to have
code added to the <a class="reference internal" href="pylorax.api.html#pylorax.api.compose.compose_args" title="pylorax.api.compose.compose_args"><code class="xref py py-func docutils literal notranslate"><span class="pre">pylorax.api.compose.compose_args()</span></code></a> function. The code added to the <code class="xref py py-func docutils literal notranslate"><span class="pre">pylorax.api.compose.compose_args()</span></code> function. The
<code class="docutils literal notranslate"><span class="pre">_MAP</span></code> entry in this function defines what lorax-composer will pass to <code class="docutils literal notranslate"><span class="pre">_MAP</span></code> entry in this function defines what lorax-composer will pass to
<a class="reference internal" href="pylorax.html#pylorax.installer.novirt_install" title="pylorax.installer.novirt_install"><code class="xref py py-func docutils literal notranslate"><span class="pre">pylorax.installer.novirt_install()</span></code></a> when it runs the compose. When the <a class="reference internal" href="pylorax.html#pylorax.installer.novirt_install" title="pylorax.installer.novirt_install"><code class="xref py py-func docutils literal notranslate"><span class="pre">pylorax.installer.novirt_install()</span></code></a> when it runs the compose. When the
compose is finished the output files need to be copied out of the build compose is finished the output files need to be copied out of the build
directory (<code class="docutils literal notranslate"><span class="pre">/var/lib/lorax/composer/results/&lt;UUID&gt;/compose/</span></code>), directory (<code class="docutils literal notranslate"><span class="pre">/var/lib/lorax/composer/results/&lt;UUID&gt;/compose/</span></code>),
<a class="reference internal" href="pylorax.api.html#pylorax.api.compose.move_compose_results" title="pylorax.api.compose.move_compose_results"><code class="xref py py-func docutils literal notranslate"><span class="pre">pylorax.api.compose.move_compose_results()</span></code></a> handles this for each type. <code class="xref py py-func docutils literal notranslate"><span class="pre">pylorax.api.compose.move_compose_results()</span></code> handles this for each type.
You should move them instead of copying to save space.</p> You should move them instead of copying to save space.</p>
<p>If the new output type does not have support in livemedia-creator it should be <p>If the new output type does not have support in livemedia-creator it should be
added there first. This will make the output available to the widest number of added there first. This will make the output available to the widest number of
@ -613,10 +593,10 @@ users.</p>
via the <code class="docutils literal notranslate"><span class="pre">--make-disk</span></code> cmdline argument. To add this to lorax-composer it via the <code class="docutils literal notranslate"><span class="pre">--make-disk</span></code> cmdline argument. To add this to lorax-composer it
needs 3 things:</p> needs 3 things:</p>
<ul class="simple"> <ul class="simple">
<li>A <code class="docutils literal notranslate"><span class="pre">partitioned-disk.ks</span></code> file in <code class="docutils literal notranslate"><span class="pre">./share/composer/</span></code></li> <li><p>A <code class="docutils literal notranslate"><span class="pre">partitioned-disk.ks</span></code> file in <code class="docutils literal notranslate"><span class="pre">./share/composer/</span></code></p></li>
<li>A new entry in the _MAP in <a class="reference internal" href="pylorax.api.html#pylorax.api.compose.compose_args" title="pylorax.api.compose.compose_args"><code class="xref py py-func docutils literal notranslate"><span class="pre">pylorax.api.compose.compose_args()</span></code></a></li> <li><p>A new entry in the _MAP in <code class="xref py py-func docutils literal notranslate"><span class="pre">pylorax.api.compose.compose_args()</span></code></p></li>
<li>Add a bit of code to <a class="reference internal" href="pylorax.api.html#pylorax.api.compose.move_compose_results" title="pylorax.api.compose.move_compose_results"><code class="xref py py-func docutils literal notranslate"><span class="pre">pylorax.api.compose.move_compose_results()</span></code></a> to move the disk image from <li><p>Add a bit of code to <code class="xref py py-func docutils literal notranslate"><span class="pre">pylorax.api.compose.move_compose_results()</span></code> to move the disk image from
the compose directory to the results directory.</li> the compose directory to the results directory.</p></li>
</ul> </ul>
<p>The <code class="docutils literal notranslate"><span class="pre">partitioned-disk.ks</span></code> is pretty similar to the example minimal kickstart <p>The <code class="docutils literal notranslate"><span class="pre">partitioned-disk.ks</span></code> is pretty similar to the example minimal kickstart
in <code class="docutils literal notranslate"><span class="pre">./docs/rhel-minimal.ks</span></code>. You should remove the <code class="docutils literal notranslate"><span class="pre">url</span></code> and <code class="docutils literal notranslate"><span class="pre">repo</span></code> in <code class="docutils literal notranslate"><span class="pre">./docs/rhel-minimal.ks</span></code>. You should remove the <code class="docutils literal notranslate"><span class="pre">url</span></code> and <code class="docutils literal notranslate"><span class="pre">repo</span></code>
@ -658,9 +638,9 @@ TOML):</p>
<p>The <code class="docutils literal notranslate"><span class="pre">proxy</span></code> and <code class="docutils literal notranslate"><span class="pre">gpgkey_urls</span></code> entries are optional. All of the others are required. The supported <p>The <code class="docutils literal notranslate"><span class="pre">proxy</span></code> and <code class="docutils literal notranslate"><span class="pre">gpgkey_urls</span></code> entries are optional. All of the others are required. The supported
types for the urls are:</p> types for the urls are:</p>
<ul class="simple"> <ul class="simple">
<li><code class="docutils literal notranslate"><span class="pre">yum-baseurl</span></code> is a URL to a yum repository.</li> <li><p><code class="docutils literal notranslate"><span class="pre">yum-baseurl</span></code> is a URL to a yum repository.</p></li>
<li><code class="docutils literal notranslate"><span class="pre">yum-mirrorlist</span></code> is a URL for a mirrorlist.</li> <li><p><code class="docutils literal notranslate"><span class="pre">yum-mirrorlist</span></code> is a URL for a mirrorlist.</p></li>
<li><code class="docutils literal notranslate"><span class="pre">yum-metalink</span></code> is a URL for a metalink.</li> <li><p><code class="docutils literal notranslate"><span class="pre">yum-metalink</span></code> is a URL for a metalink.</p></li>
</ul> </ul>
<p>If <code class="docutils literal notranslate"><span class="pre">check_ssl</span></code> is true the https certificates must be valid. If they are self-signed you can either set <p>If <code class="docutils literal notranslate"><span class="pre">check_ssl</span></code> is true the https certificates must be valid. If they are self-signed you can either set
this to false, or add your Certificate Authority to the host system.</p> this to false, or add your Certificate Authority to the host system.</p>
@ -684,11 +664,9 @@ source, not the repos from the network. <code class="docutils literal notranslat
understand <code class="docutils literal notranslate"><span class="pre">file://</span></code> URLs so you can mount an iso on the host, and replace the understand <code class="docutils literal notranslate"><span class="pre">file://</span></code> URLs so you can mount an iso on the host, and replace the
system repo files with a configuration file pointing to the DVD.</p> system repo files with a configuration file pointing to the DVD.</p>
<ul> <ul>
<li><p class="first">Stop the <code class="docutils literal notranslate"><span class="pre">lorax-composer.service</span></code> if it is running</p> <li><p>Stop the <code class="docutils literal notranslate"><span class="pre">lorax-composer.service</span></code> if it is running</p></li>
</li> <li><p>Move the repo files in <code class="docutils literal notranslate"><span class="pre">/etc/yum.repos.d/</span></code> someplace safe</p></li>
<li><p class="first">Move the repo files in <code class="docutils literal notranslate"><span class="pre">/etc/yum.repos.d/</span></code> someplace safe</p> <li><p>Create a new <code class="docutils literal notranslate"><span class="pre">iso.repo</span></code> file in <code class="docutils literal notranslate"><span class="pre">/etc/yum.repos.d/</span></code>:</p>
</li>
<li><p class="first">Create a new <code class="docutils literal notranslate"><span class="pre">iso.repo</span></code> file in <code class="docutils literal notranslate"><span class="pre">/etc/yum.repos.d/</span></code>:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">[</span><span class="n">iso</span><span class="p">]</span> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">[</span><span class="n">iso</span><span class="p">]</span>
<span class="n">name</span><span class="o">=</span><span class="n">iso</span> <span class="n">name</span><span class="o">=</span><span class="n">iso</span>
<span class="n">baseurl</span><span class="o">=</span><span class="n">file</span><span class="p">:</span><span class="o">///</span><span class="n">mnt</span><span class="o">/</span><span class="n">iso</span><span class="o">/</span> <span class="n">baseurl</span><span class="o">=</span><span class="n">file</span><span class="p">:</span><span class="o">///</span><span class="n">mnt</span><span class="o">/</span><span class="n">iso</span><span class="o">/</span>
@ -698,14 +676,11 @@ system repo files with a configuration file pointing to the DVD.</p>
</pre></div> </pre></div>
</div> </div>
</li> </li>
<li><p class="first">Remove all the cached repo files from <code class="docutils literal notranslate"><span class="pre">/var/lib/lorax/composer/repos/</span></code></p> <li><p>Remove all the cached repo files from <code class="docutils literal notranslate"><span class="pre">/var/lib/lorax/composer/repos/</span></code></p></li>
</li> <li><p>Restart the <code class="docutils literal notranslate"><span class="pre">lorax-composer.service</span></code></p></li>
<li><p class="first">Restart the <code class="docutils literal notranslate"><span class="pre">lorax-composer.service</span></code></p> <li><p>Check the output of <code class="docutils literal notranslate"><span class="pre">composer-cli</span> <span class="pre">status</span> <span class="pre">show</span></code> for any output specific depsolve errors.
</li>
<li><p class="first">Check the output of <code class="docutils literal notranslate"><span class="pre">composer-cli</span> <span class="pre">status</span> <span class="pre">show</span></code> for any output specific depsolve errors.
For example, the DVD usually does not include <code class="docutils literal notranslate"><span class="pre">grub2-efi-*-cdboot-*</span></code> so the live-iso image For example, the DVD usually does not include <code class="docutils literal notranslate"><span class="pre">grub2-efi-*-cdboot-*</span></code> so the live-iso image
type will not be available.</p> type will not be available.</p></li>
</li>
</ul> </ul>
<p>If you want to <em>add</em> the DVD source to the existing sources you can do that by <p>If you want to <em>add</em> the DVD source to the existing sources you can do that by
mounting the iso and creating a source file to point to it as described in the mounting the iso and creating a source file to point to it as described in the

View File

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Lorax &mdash; Lorax 28.14.33 documentation</title> <title>Lorax &mdash; Lorax 28.14.42 documentation</title>
@ -60,7 +60,7 @@
<div class="version"> <div class="version">
28.14.33 28.14.42
</div> </div>
@ -97,6 +97,10 @@
</ul> </ul>
</li> </li>
<li class="toctree-l2"><a class="reference internal" href="#quickstart">Quickstart</a></li> <li class="toctree-l2"><a class="reference internal" href="#quickstart">Quickstart</a></li>
<li class="toctree-l2"><a class="reference internal" href="#branding">Branding</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#custom-branding">Custom Branding</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#running-inside-of-mock">Running inside of mock</a></li> <li class="toctree-l2"><a class="reference internal" href="#running-inside-of-mock">Running inside of mock</a></li>
<li class="toctree-l2"><a class="reference internal" href="#how-it-works">How it works</a><ul> <li class="toctree-l2"><a class="reference internal" href="#how-it-works">How it works</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#runtime-install-tmpl">runtime-install.tmpl</a></li> <li class="toctree-l3"><a class="reference internal" href="#runtime-install-tmpl">runtime-install.tmpl</a></li>
@ -180,14 +184,11 @@
<div class="section" id="lorax"> <div class="section" id="lorax">
<h1>Lorax<a class="headerlink" href="#lorax" title="Permalink to this headline"></a></h1> <h1>Lorax<a class="headerlink" href="#lorax" title="Permalink to this headline"></a></h1>
<table class="docutils field-list" frame="void" rules="none"> <dl class="field-list simple">
<col class="field-name" /> <dt class="field-odd">Authors</dt>
<col class="field-body" /> <dd class="field-odd"><p>Brian C. Lane &lt;<a class="reference external" href="mailto:bcl&#37;&#52;&#48;redhat&#46;com">bcl<span>&#64;</span>redhat<span>&#46;</span>com</a>&gt;</p>
<tbody valign="top"> </dd>
<tr class="field-odd field"><th class="field-name">Authors:</th><td class="field-body">Brian C. Lane &lt;<a class="reference external" href="mailto:bcl&#37;&#52;&#48;redhat&#46;com">bcl<span>&#64;</span>redhat<span>&#46;</span>com</a>&gt;</td> </dl>
</tr>
</tbody>
</table>
<p>“I am the Lorax. I speak for the trees [and images].”</p> <p>“I am the Lorax. I speak for the trees [and images].”</p>
<p>The <a class="reference external" href="https://github.com/rhinstaller/lorax">lorax</a> tool is used to create the <p>The <a class="reference external" href="https://github.com/rhinstaller/lorax">lorax</a> tool is used to create the
<a class="reference external" href="https://github.com/rhinstaller/anaconda">Anaconda</a> installer boot.iso as <a class="reference external" href="https://github.com/rhinstaller/anaconda">Anaconda</a> installer boot.iso as
@ -199,7 +200,8 @@ rawhide version to build the boot.iso for rawhide, along with the rawhide
repositories.</p> repositories.</p>
<div class="section" id="lorax-cmdline-arguments"> <div class="section" id="lorax-cmdline-arguments">
<h2>lorax cmdline arguments<a class="headerlink" href="#lorax-cmdline-arguments" title="Permalink to this headline"></a></h2> <h2>lorax cmdline arguments<a class="headerlink" href="#lorax-cmdline-arguments" title="Permalink to this headline"></a></h2>
<p>Create the Anaconda boot.iso</p> <p><p>Create the Anaconda boot.iso</p>
</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">usage</span><span class="p">:</span> <span class="n">lorax</span> <span class="p">[</span><span class="o">-</span><span class="n">h</span><span class="p">]</span> <span class="o">-</span><span class="n">p</span> <span class="n">PRODUCT</span> <span class="o">-</span><span class="n">v</span> <span class="n">VERSION</span> <span class="o">-</span><span class="n">r</span> <span class="n">RELEASE</span> <span class="p">[</span><span class="o">-</span><span class="n">s</span> <span class="n">REPOSITORY</span><span class="p">]</span> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">usage</span><span class="p">:</span> <span class="n">lorax</span> <span class="p">[</span><span class="o">-</span><span class="n">h</span><span class="p">]</span> <span class="o">-</span><span class="n">p</span> <span class="n">PRODUCT</span> <span class="o">-</span><span class="n">v</span> <span class="n">VERSION</span> <span class="o">-</span><span class="n">r</span> <span class="n">RELEASE</span> <span class="p">[</span><span class="o">-</span><span class="n">s</span> <span class="n">REPOSITORY</span><span class="p">]</span>
<span class="p">[</span><span class="o">--</span><span class="n">repo</span> <span class="n">REPOSITORY</span><span class="p">]</span> <span class="p">[</span><span class="o">-</span><span class="n">m</span> <span class="n">REPOSITORY</span><span class="p">]</span> <span class="p">[</span><span class="o">-</span><span class="n">t</span> <span class="n">VARIANT</span><span class="p">]</span> <span class="p">[</span><span class="o">-</span><span class="n">b</span> <span class="n">URL</span><span class="p">]</span> <span class="p">[</span><span class="o">--</span><span class="n">repo</span> <span class="n">REPOSITORY</span><span class="p">]</span> <span class="p">[</span><span class="o">-</span><span class="n">m</span> <span class="n">REPOSITORY</span><span class="p">]</span> <span class="p">[</span><span class="o">-</span><span class="n">t</span> <span class="n">VARIANT</span><span class="p">]</span> <span class="p">[</span><span class="o">-</span><span class="n">b</span> <span class="n">URL</span><span class="p">]</span>
<span class="p">[</span><span class="o">--</span><span class="n">isfinal</span><span class="p">]</span> <span class="p">[</span><span class="o">-</span><span class="n">c</span> <span class="n">CONFIGFILE</span><span class="p">]</span> <span class="p">[</span><span class="o">--</span><span class="n">proxy</span> <span class="n">HOST</span><span class="p">]</span> <span class="p">[</span><span class="o">-</span><span class="n">i</span> <span class="n">PACKAGE</span><span class="p">]</span> <span class="p">[</span><span class="o">--</span><span class="n">isfinal</span><span class="p">]</span> <span class="p">[</span><span class="o">-</span><span class="n">c</span> <span class="n">CONFIGFILE</span><span class="p">]</span> <span class="p">[</span><span class="o">--</span><span class="n">proxy</span> <span class="n">HOST</span><span class="p">]</span> <span class="p">[</span><span class="o">-</span><span class="n">i</span> <span class="n">PACKAGE</span><span class="p">]</span>
@ -212,212 +214,168 @@ repositories.</p>
<span class="p">[</span><span class="o">--</span><span class="n">add</span><span class="o">-</span><span class="n">arch</span><span class="o">-</span><span class="n">template</span><span class="o">-</span><span class="n">var</span> <span class="n">ADD_ARCH_TEMPLATE_VARS</span><span class="p">]</span> <span class="p">[</span><span class="o">--</span><span class="n">noverify</span><span class="p">]</span> <span class="p">[</span><span class="o">--</span><span class="n">add</span><span class="o">-</span><span class="n">arch</span><span class="o">-</span><span class="n">template</span><span class="o">-</span><span class="n">var</span> <span class="n">ADD_ARCH_TEMPLATE_VARS</span><span class="p">]</span> <span class="p">[</span><span class="o">--</span><span class="n">noverify</span><span class="p">]</span>
<span class="p">[</span><span class="o">--</span><span class="n">sharedir</span> <span class="n">SHAREDIR</span><span class="p">]</span> <span class="p">[</span><span class="o">--</span><span class="n">enablerepo</span> <span class="p">[</span><span class="n">repo</span><span class="p">]]</span> <span class="p">[</span><span class="o">--</span><span class="n">sharedir</span> <span class="n">SHAREDIR</span><span class="p">]</span> <span class="p">[</span><span class="o">--</span><span class="n">enablerepo</span> <span class="p">[</span><span class="n">repo</span><span class="p">]]</span>
<span class="p">[</span><span class="o">--</span><span class="n">disablerepo</span> <span class="p">[</span><span class="n">repo</span><span class="p">]]</span> <span class="p">[</span><span class="o">--</span><span class="n">rootfs</span><span class="o">-</span><span class="n">size</span> <span class="n">ROOTFS_SIZE</span><span class="p">]</span> <span class="p">[</span><span class="o">--</span><span class="n">disablerepo</span> <span class="p">[</span><span class="n">repo</span><span class="p">]]</span> <span class="p">[</span><span class="o">--</span><span class="n">rootfs</span><span class="o">-</span><span class="n">size</span> <span class="n">ROOTFS_SIZE</span><span class="p">]</span>
<span class="p">[</span><span class="o">--</span><span class="n">noverifyssl</span><span class="p">]</span> <span class="p">[</span><span class="o">--</span><span class="n">dracut</span><span class="o">-</span><span class="n">arg</span> <span class="n">DRACUT_ARGS</span><span class="p">]</span> <span class="p">[</span><span class="o">-</span><span class="n">V</span><span class="p">]</span> <span class="p">[</span><span class="o">--</span><span class="n">noverifyssl</span><span class="p">]</span> <span class="p">[</span><span class="o">--</span><span class="n">skip</span><span class="o">-</span><span class="n">branding</span><span class="p">]</span> <span class="p">[</span><span class="o">--</span><span class="n">dracut</span><span class="o">-</span><span class="n">arg</span> <span class="n">DRACUT_ARGS</span><span class="p">]</span> <span class="p">[</span><span class="o">-</span><span class="n">V</span><span class="p">]</span>
<span class="n">OUTPUTDIR</span> <span class="n">OUTPUTDIR</span>
</pre></div> </pre></div>
</div> </div>
<div class="section" id="Positional Arguments"> <div class="section" id="Positional Arguments">
<h3>Positional Arguments<a class="headerlink" href="#Positional Arguments" title="Permalink to this headline"></a></h3> <h3>Positional Arguments<a class="headerlink" href="#Positional Arguments" title="Permalink to this headline"></a></h3>
<table class="docutils option-list" frame="void" rules="none"> <dl class="option-list">
<col class="option" /> <dt><kbd>OUTPUTDIR</kbd></dt>
<col class="description" /> <dd><p>Output directory</p>
<tbody valign="top"> </dd>
<tr><td class="option-group"> </dl>
<kbd>OUTPUTDIR</kbd></td>
<td>Output directory</td></tr>
</tbody>
</table>
</div> </div>
<div class="section" id="Named Arguments"> <div class="section" id="Named Arguments">
<h3>Named Arguments<a class="headerlink" href="#Named Arguments" title="Permalink to this headline"></a></h3> <h3>Named Arguments<a class="headerlink" href="#Named Arguments" title="Permalink to this headline"></a></h3>
<table class="docutils option-list" frame="void" rules="none"> <dl class="option-list">
<col class="option" /> <dt><kbd>-V</kbd></dt>
<col class="description" /> <dd><p>show programs version number and exit</p>
<tbody valign="top"> </dd>
<tr><td class="option-group"> </dl>
<kbd>-V</kbd></td>
<td>show programs version number and exit</td></tr>
</tbody>
</table>
</div> </div>
<div class="section" id="required arguments"> <div class="section" id="required arguments">
<h3>required arguments<a class="headerlink" href="#required arguments" title="Permalink to this headline"></a></h3> <h3>required arguments<a class="headerlink" href="#required arguments" title="Permalink to this headline"></a></h3>
<table class="docutils option-list" frame="void" rules="none"> <dl class="option-list">
<col class="option" /> <dt><kbd>-p, --product</kbd></dt>
<col class="description" /> <dd><p>product name</p>
<tbody valign="top"> </dd>
<tr><td class="option-group"> <dt><kbd>-v, --version</kbd></dt>
<kbd>-p, --product</kbd></td> <dd><p>version identifier</p>
<td>product name</td></tr> </dd>
<tr><td class="option-group"> <dt><kbd>-r, --release</kbd></dt>
<kbd>-v, --version</kbd></td> <dd><p>release information</p>
<td>version identifier</td></tr> </dd>
<tr><td class="option-group"> <dt><kbd>-s, --source</kbd></dt>
<kbd>-r, --release</kbd></td> <dd><p>source repository (may be listed multiple times)</p>
<td>release information</td></tr> <p>Default: []</p>
<tr><td class="option-group"> </dd>
<kbd>-s, --source</kbd></td> <dt><kbd>--repo</kbd></dt>
<td><p class="first">source repository (may be listed multiple times)</p> <dd><p>source dnf repository file</p>
<p class="last">Default: []</p> <p>Default: []</p>
</td></tr> </dd>
<tr><td class="option-group"> </dl>
<kbd>--repo</kbd></td>
<td><p class="first">source dnf repository file</p>
<p class="last">Default: []</p>
</td></tr>
</tbody>
</table>
</div> </div>
<div class="section" id="Named Arguments_repeat1"> <div class="section" id="Named Arguments_repeat1">
<h3>Named Arguments<a class="headerlink" href="#Named Arguments_repeat1" title="Permalink to this headline"></a></h3> <h3>Named Arguments<a class="headerlink" href="#Named Arguments_repeat1" title="Permalink to this headline"></a></h3>
<table class="docutils option-list" frame="void" rules="none"> <dl class="option-list">
<col class="option" /> <dt><kbd>-m, --mirrorlist</kbd></dt>
<col class="description" /> <dd><p>mirrorlist repository (may be listed multiple times)</p>
<tbody valign="top"> <p>Default: []</p>
<tr><td class="option-group" colspan="2"> </dd>
<kbd>-m, --mirrorlist</kbd></td> <dt><kbd>-t, --variant</kbd></dt>
</tr> <dd><p>variant name</p>
<tr><td>&#160;</td><td><p class="first">mirrorlist repository (may be listed multiple times)</p> <p>Default: “”</p>
<p class="last">Default: []</p> </dd>
</td></tr> <dt><kbd>-b, --bugurl</kbd></dt>
<tr><td class="option-group"> <dd><p>bug reporting URL for the product</p>
<kbd>-t, --variant</kbd></td> <p>Default: “your distribution provided bug reporting tool”</p>
<td><p class="first">variant name</p> </dd>
<p class="last">Default: “”</p> <dt><kbd>--isfinal</kbd></dt>
</td></tr> <dd><p>Default: False</p>
<tr><td class="option-group"> </dd>
<kbd>-b, --bugurl</kbd></td> <dt><kbd>-c, --config</kbd></dt>
<td><p class="first">bug reporting URL for the product</p> <dd><p>config file</p>
<p class="last">Default: “your distribution provided bug reporting tool”</p> <p>Default: “/etc/lorax/lorax.conf”</p>
</td></tr> </dd>
<tr><td class="option-group"> <dt><kbd>--proxy</kbd></dt>
<kbd>--isfinal</kbd></td> <dd><p>repo proxy url:port</p>
<td>Default: False</td></tr> </dd>
<tr><td class="option-group"> <dt><kbd>-i, --installpkgs</kbd></dt>
<kbd>-c, --config</kbd></td> <dd><p>package glob to install before runtime-install.tmpl runs. (may be listed multiple times)</p>
<td><p class="first">config file</p> <p>Default: []</p>
<p class="last">Default: “/etc/lorax/lorax.conf”</p> </dd>
</td></tr> <dt><kbd>-e, --excludepkgs</kbd></dt>
<tr><td class="option-group"> <dd><p>package glob to remove before runtime-install.tmpl runs. (may be listed multiple times)</p>
<kbd>--proxy</kbd></td> <p>Default: []</p>
<td>repo proxy url:port</td></tr> </dd>
<tr><td class="option-group" colspan="2"> <dt><kbd>--buildarch</kbd></dt>
<kbd>-i, --installpkgs</kbd></td> <dd><p>build architecture</p>
</tr> </dd>
<tr><td>&#160;</td><td><p class="first">package glob to install before runtime-install.tmpl runs. (may be listed multiple times)</p> <dt><kbd>--volid</kbd></dt>
<p class="last">Default: []</p> <dd><p>volume id</p>
</td></tr> </dd>
<tr><td class="option-group" colspan="2"> <dt><kbd>--macboot</kbd></dt>
<kbd>-e, --excludepkgs</kbd></td> <dd><p>Make the iso bootable on UEFI based Mac systems</p>
</tr> <p>Default: True</p>
<tr><td>&#160;</td><td><p class="first">package glob to remove before runtime-install.tmpl runs. (may be listed multiple times)</p> </dd>
<p class="last">Default: []</p> <dt><kbd>--nomacboot</kbd></dt>
</td></tr> <dd><p>Do not create a Mac bootable iso</p>
<tr><td class="option-group"> <p>Default: False</p>
<kbd>--buildarch</kbd></td> </dd>
<td>build architecture</td></tr> <dt><kbd>--noupgrade</kbd></dt>
<tr><td class="option-group"> <dd><p>Default: True</p>
<kbd>--volid</kbd></td> </dd>
<td>volume id</td></tr> <dt><kbd>--logfile</kbd></dt>
<tr><td class="option-group"> <dd><p>Path to logfile</p>
<kbd>--macboot</kbd></td> <p>Default: ./lorax.log</p>
<td><p class="first">Make the iso bootable on UEFI based Mac systems</p> </dd>
<p class="last">Default: True</p> <dt><kbd>--tmp</kbd></dt>
</td></tr> <dd><p>Top level temporary directory</p>
<tr><td class="option-group"> <p>Default: “/var/tmp/lorax”</p>
<kbd>--nomacboot</kbd></td> </dd>
<td><p class="first">Do not create a Mac bootable iso</p> <dt><kbd>--cachedir</kbd></dt>
<p class="last">Default: False</p> <dd><p>DNF cache directory. Default is a temporary dir.</p>
</td></tr> </dd>
<tr><td class="option-group"> <dt><kbd>--workdir</kbd></dt>
<kbd>--noupgrade</kbd></td> <dd><p>Work directory, overrides tmp. Default is a temporary dir under /var/tmp/lorax</p>
<td>Default: True</td></tr> </dd>
<tr><td class="option-group"> <dt><kbd>--force</kbd></dt>
<kbd>--logfile</kbd></td> <dd><p>Run even when the destination directory exists</p>
<td><p class="first">Path to logfile</p> <p>Default: False</p>
<p class="last">Default: ./lorax.log</p> </dd>
</td></tr> <dt><kbd>--add-template</kbd></dt>
<tr><td class="option-group"> <dd><p>Additional template for runtime image</p>
<kbd>--tmp</kbd></td> <p>Default: []</p>
<td><p class="first">Top level temporary directory</p> </dd>
<p class="last">Default: “/var/tmp/lorax”</p> <dt><kbd>--add-template-var</kbd></dt>
</td></tr> <dd><p>Set variable for runtime image template</p>
<tr><td class="option-group"> <p>Default: []</p>
<kbd>--cachedir</kbd></td> </dd>
<td>DNF cache directory. Default is a temporary dir.</td></tr> <dt><kbd>--add-arch-template</kbd></dt>
<tr><td class="option-group"> <dd><p>Additional template for architecture-specific image</p>
<kbd>--workdir</kbd></td> <p>Default: []</p>
<td>Work directory, overrides tmp. Default is a temporary dir under /var/tmp/lorax</td></tr> </dd>
<tr><td class="option-group"> <dt><kbd>--add-arch-template-var</kbd></dt>
<kbd>--force</kbd></td> <dd><p>Set variable for architecture-specific image</p>
<td><p class="first">Run even when the destination directory exists</p> <p>Default: []</p>
<p class="last">Default: False</p> </dd>
</td></tr> <dt><kbd>--noverify</kbd></dt>
<tr><td class="option-group"> <dd><p>Do not verify the install root</p>
<kbd>--add-template</kbd></td> <p>Default: True</p>
<td><p class="first">Additional template for runtime image</p> </dd>
<p class="last">Default: []</p> <dt><kbd>--sharedir</kbd></dt>
</td></tr> <dd><p>Directory containing all the templates. Overrides config file sharedir</p>
<tr><td class="option-group" colspan="2"> </dd>
<kbd>--add-template-var</kbd></td> <dt><kbd>--enablerepo</kbd></dt>
</tr> <dd><p>Names of repos to enable</p>
<tr><td>&#160;</td><td><p class="first">Set variable for runtime image template</p> <p>Default: []</p>
<p class="last">Default: []</p> </dd>
</td></tr> <dt><kbd>--disablerepo</kbd></dt>
<tr><td class="option-group" colspan="2"> <dd><p>Names of repos to disable</p>
<kbd>--add-arch-template</kbd></td> <p>Default: []</p>
</tr> </dd>
<tr><td>&#160;</td><td><p class="first">Additional template for architecture-specific image</p> <dt><kbd>--rootfs-size</kbd></dt>
<p class="last">Default: []</p> <dd><p>Size of root filesystem in GiB. Defaults to 3.</p>
</td></tr> <p>Default: 3</p>
<tr><td class="option-group" colspan="2"> </dd>
<kbd>--add-arch-template-var</kbd></td> <dt><kbd>--noverifyssl</kbd></dt>
</tr> <dd><p>Do not verify SSL certificates</p>
<tr><td>&#160;</td><td><p class="first">Set variable for architecture-specific image</p> <p>Default: False</p>
<p class="last">Default: []</p> </dd>
</td></tr> <dt><kbd>--skip-branding</kbd></dt>
<tr><td class="option-group"> <dd><p>Disable automatic branding package selection. Use installpkgs to add custom branding.</p>
<kbd>--noverify</kbd></td> <p>Default: False</p>
<td><p class="first">Do not verify the install root</p> </dd>
<p class="last">Default: True</p> </dl>
</td></tr>
<tr><td class="option-group">
<kbd>--sharedir</kbd></td>
<td>Directory containing all the templates. Overrides config file sharedir</td></tr>
<tr><td class="option-group">
<kbd>--enablerepo</kbd></td>
<td><p class="first">Names of repos to enable</p>
<p class="last">Default: []</p>
</td></tr>
<tr><td class="option-group">
<kbd>--disablerepo</kbd></td>
<td><p class="first">Names of repos to disable</p>
<p class="last">Default: []</p>
</td></tr>
<tr><td class="option-group">
<kbd>--rootfs-size</kbd></td>
<td><p class="first">Size of root filesystem in GiB. Defaults to 3.</p>
<p class="last">Default: 3</p>
</td></tr>
<tr><td class="option-group">
<kbd>--noverifyssl</kbd></td>
<td><p class="first">Do not verify SSL certificates</p>
<p class="last">Default: False</p>
</td></tr>
</tbody>
</table>
</div> </div>
<div class="section" id="dracut arguments"> <div class="section" id="dracut arguments">
<h3>dracut arguments<a class="headerlink" href="#dracut arguments" title="Permalink to this headline"></a></h3> <h3>dracut arguments<a class="headerlink" href="#dracut arguments" title="Permalink to this headline"></a></h3>
<table class="docutils option-list" frame="void" rules="none"> <dl class="option-list">
<col class="option" /> <dt><kbd>--dracut-arg</kbd></dt>
<col class="description" /> <dd><p>Argument to pass to dracut when rebuilding the initramfs. Pass this once for each argument. NOTE: this overrides the default. (default: )</p>
<tbody valign="top"> </dd>
<tr><td class="option-group"> </dl>
<kbd>--dracut-arg</kbd></td>
<td>Argument to pass to dracut when rebuilding the initramfs. Pass this once for each argument. NOTE: this overrides the default. (default: )</td></tr>
</tbody>
</table>
</div> </div>
</div> </div>
<div class="section" id="quickstart"> <div class="section" id="quickstart">
@ -437,6 +395,25 @@ override the ones in the distribution repositories.</p>
<p>Under <code class="docutils literal notranslate"><span class="pre">./results/</span></code> will be the release tree files: .discinfo, .treeinfo, everything that <p>Under <code class="docutils literal notranslate"><span class="pre">./results/</span></code> will be the release tree files: .discinfo, .treeinfo, everything that
goes onto the boot.iso, the pxeboot directory, and the boot.iso under <code class="docutils literal notranslate"><span class="pre">./images/</span></code>.</p> goes onto the boot.iso, the pxeboot directory, and the boot.iso under <code class="docutils literal notranslate"><span class="pre">./images/</span></code>.</p>
</div> </div>
<div class="section" id="branding">
<h2>Branding<a class="headerlink" href="#branding" title="Permalink to this headline"></a></h2>
<p>By default lorax will search for the first package that provides <code class="docutils literal notranslate"><span class="pre">system-release</span></code>
that doesnt start with <code class="docutils literal notranslate"><span class="pre">generic-</span></code> and will install it. It then selects a
corresponding logo package by using the first part of the system-release package and
appending <code class="docutils literal notranslate"><span class="pre">-logos</span></code> to it. eg. fedora-release and fedora-logos.</p>
<div class="section" id="custom-branding">
<h3>Custom Branding<a class="headerlink" href="#custom-branding" title="Permalink to this headline"></a></h3>
<p>If <code class="docutils literal notranslate"><span class="pre">--skip-branding</span></code> is passed to lorax it will skip selecting the
<code class="docutils literal notranslate"><span class="pre">system-release</span></code>, and logos packages and leave it up to the user to pass any
branding related packages to lorax using <code class="docutils literal notranslate"><span class="pre">--installpkgs</span></code>. When using
<code class="docutils literal notranslate"><span class="pre">skip-branding</span></code> you must make sure that you provide all of the expected files,
otherwise Anaconda may not work as expected. See the contents of <code class="docutils literal notranslate"><span class="pre">fedora-release</span></code>
and <code class="docutils literal notranslate"><span class="pre">fedora-logos</span></code> for examples of what to include.</p>
<p>Note that this does not prevent something else in the dependency tree from
causing these packages to be included. Using <code class="docutils literal notranslate"><span class="pre">--excludepkgs</span></code> may help if they
are unexpectedly included.</p>
</div>
</div>
<div class="section" id="running-inside-of-mock"> <div class="section" id="running-inside-of-mock">
<h2>Running inside of mock<a class="headerlink" href="#running-inside-of-mock" title="Permalink to this headline"></a></h2> <h2>Running inside of mock<a class="headerlink" href="#running-inside-of-mock" title="Permalink to this headline"></a></h2>
<p>If you are using lorax with mock v1.3.4 or later you will need to pass <p>If you are using lorax with mock v1.3.4 or later you will need to pass
@ -474,16 +451,16 @@ start the anaconda.target instead of a default system target, and a number of
unneeded services are disabled, some of which can interfere with the unneeded services are disabled, some of which can interfere with the
installation. A number of template commands are used here:</p> installation. A number of template commands are used here:</p>
<ul class="simple"> <ul class="simple">
<li><a class="reference internal" href="pylorax.html#pylorax.ltmpl.LoraxTemplateRunner.append" title="pylorax.ltmpl.LoraxTemplateRunner.append"><code class="xref py py-func docutils literal notranslate"><span class="pre">append</span></code></a> to add text to a file.</li> <li><p><a class="reference internal" href="pylorax.html#pylorax.ltmpl.LoraxTemplateRunner.append" title="pylorax.ltmpl.LoraxTemplateRunner.append"><code class="xref py py-func docutils literal notranslate"><span class="pre">append</span></code></a> to add text to a file.</p></li>
<li><a class="reference internal" href="pylorax.html#pylorax.ltmpl.LoraxTemplateRunner.chmod" title="pylorax.ltmpl.LoraxTemplateRunner.chmod"><code class="xref py py-func docutils literal notranslate"><span class="pre">chmod</span></code></a> changes the files mode.</li> <li><p><a class="reference internal" href="pylorax.html#pylorax.ltmpl.LoraxTemplateRunner.chmod" title="pylorax.ltmpl.LoraxTemplateRunner.chmod"><code class="xref py py-func docutils literal notranslate"><span class="pre">chmod</span></code></a> changes the files mode.</p></li>
<li><a class="reference internal" href="pylorax.html#pylorax.ltmpl.LoraxTemplateRunner.install" title="pylorax.ltmpl.LoraxTemplateRunner.install"><code class="xref py py-func docutils literal notranslate"><span class="pre">install</span></code></a> to install a file into the installroot.</li> <li><p><a class="reference internal" href="pylorax.html#pylorax.ltmpl.LoraxTemplateRunner.install" title="pylorax.ltmpl.LoraxTemplateRunner.install"><code class="xref py py-func docutils literal notranslate"><span class="pre">install</span></code></a> to install a file into the installroot.</p></li>
<li><a class="reference internal" href="pylorax.html#pylorax.ltmpl.LoraxTemplateRunner.mkdir" title="pylorax.ltmpl.LoraxTemplateRunner.mkdir"><code class="xref py py-func docutils literal notranslate"><span class="pre">mkdir</span></code></a> makes a new directory.</li> <li><p><a class="reference internal" href="pylorax.html#pylorax.ltmpl.LoraxTemplateRunner.mkdir" title="pylorax.ltmpl.LoraxTemplateRunner.mkdir"><code class="xref py py-func docutils literal notranslate"><span class="pre">mkdir</span></code></a> makes a new directory.</p></li>
<li><a class="reference internal" href="pylorax.html#pylorax.ltmpl.LoraxTemplateRunner.move" title="pylorax.ltmpl.LoraxTemplateRunner.move"><code class="xref py py-func docutils literal notranslate"><span class="pre">move</span></code></a> to move a file into the installroot</li> <li><p><a class="reference internal" href="pylorax.html#pylorax.ltmpl.LoraxTemplateRunner.move" title="pylorax.ltmpl.LoraxTemplateRunner.move"><code class="xref py py-func docutils literal notranslate"><span class="pre">move</span></code></a> to move a file into the installroot</p></li>
<li><a class="reference internal" href="pylorax.html#pylorax.ltmpl.LoraxTemplateRunner.replace" title="pylorax.ltmpl.LoraxTemplateRunner.replace"><code class="xref py py-func docutils literal notranslate"><span class="pre">replace</span></code></a> does text substitution in a file</li> <li><p><a class="reference internal" href="pylorax.html#pylorax.ltmpl.LoraxTemplateRunner.replace" title="pylorax.ltmpl.LoraxTemplateRunner.replace"><code class="xref py py-func docutils literal notranslate"><span class="pre">replace</span></code></a> does text substitution in a file</p></li>
<li><a class="reference internal" href="pylorax.html#pylorax.ltmpl.LoraxTemplateRunner.remove" title="pylorax.ltmpl.LoraxTemplateRunner.remove"><code class="xref py py-func docutils literal notranslate"><span class="pre">remove</span></code></a> deletes a file</li> <li><p><a class="reference internal" href="pylorax.html#pylorax.ltmpl.LoraxTemplateRunner.remove" title="pylorax.ltmpl.LoraxTemplateRunner.remove"><code class="xref py py-func docutils literal notranslate"><span class="pre">remove</span></code></a> deletes a file</p></li>
<li><a class="reference internal" href="pylorax.html#pylorax.ltmpl.LoraxTemplateRunner.runcmd" title="pylorax.ltmpl.LoraxTemplateRunner.runcmd"><code class="xref py py-func docutils literal notranslate"><span class="pre">runcmd</span></code></a> run arbitrary commands.</li> <li><p><a class="reference internal" href="pylorax.html#pylorax.ltmpl.LoraxTemplateRunner.runcmd" title="pylorax.ltmpl.LoraxTemplateRunner.runcmd"><code class="xref py py-func docutils literal notranslate"><span class="pre">runcmd</span></code></a> run arbitrary commands.</p></li>
<li><a class="reference internal" href="pylorax.html#pylorax.ltmpl.LoraxTemplateRunner.symlink" title="pylorax.ltmpl.LoraxTemplateRunner.symlink"><code class="xref py py-func docutils literal notranslate"><span class="pre">symlink</span></code></a> creates a symlink</li> <li><p><a class="reference internal" href="pylorax.html#pylorax.ltmpl.LoraxTemplateRunner.symlink" title="pylorax.ltmpl.LoraxTemplateRunner.symlink"><code class="xref py py-func docutils literal notranslate"><span class="pre">symlink</span></code></a> creates a symlink</p></li>
<li><a class="reference internal" href="pylorax.html#pylorax.ltmpl.LoraxTemplateRunner.systemctl" title="pylorax.ltmpl.LoraxTemplateRunner.systemctl"><code class="xref py py-func docutils literal notranslate"><span class="pre">systemctl</span></code></a> runs systemctl in the installroot</li> <li><p><a class="reference internal" href="pylorax.html#pylorax.ltmpl.LoraxTemplateRunner.systemctl" title="pylorax.ltmpl.LoraxTemplateRunner.systemctl"><code class="xref py py-func docutils literal notranslate"><span class="pre">systemctl</span></code></a> runs systemctl in the installroot</p></li>
</ul> </ul>
</div> </div>
<div class="section" id="runtime-cleanup-tmpl"> <div class="section" id="runtime-cleanup-tmpl">
@ -491,14 +468,14 @@ installation. A number of template commands are used here:</p>
<p>The <code class="docutils literal notranslate"><span class="pre">runtime-cleanup.tmpl</span></code> template is used to remove files that arent strictly needed <p>The <code class="docutils literal notranslate"><span class="pre">runtime-cleanup.tmpl</span></code> template is used to remove files that arent strictly needed
by the installation environment. In addition to the <code class="docutils literal notranslate"><span class="pre">remove</span></code> template command it uses:</p> by the installation environment. In addition to the <code class="docutils literal notranslate"><span class="pre">remove</span></code> template command it uses:</p>
<ul class="simple"> <ul class="simple">
<li><a class="reference internal" href="pylorax.html#pylorax.ltmpl.LoraxTemplateRunner.removepkg" title="pylorax.ltmpl.LoraxTemplateRunner.removepkg"><code class="xref py py-func docutils literal notranslate"><span class="pre">removepkg</span></code></a> <li><p><a class="reference internal" href="pylorax.html#pylorax.ltmpl.LoraxTemplateRunner.removepkg" title="pylorax.ltmpl.LoraxTemplateRunner.removepkg"><code class="xref py py-func docutils literal notranslate"><span class="pre">removepkg</span></code></a>
remove all of a specific packages contents. A package may be pulled in as a dependency, but remove all of a specific packages contents. A package may be pulled in as a dependency, but
not really used. eg. sound support.</li> not really used. eg. sound support.</p></li>
<li><a class="reference internal" href="pylorax.html#pylorax.ltmpl.LoraxTemplateRunner.removefrom" title="pylorax.ltmpl.LoraxTemplateRunner.removefrom"><code class="xref py py-func docutils literal notranslate"><span class="pre">removefrom</span></code></a> <li><p><a class="reference internal" href="pylorax.html#pylorax.ltmpl.LoraxTemplateRunner.removefrom" title="pylorax.ltmpl.LoraxTemplateRunner.removefrom"><code class="xref py py-func docutils literal notranslate"><span class="pre">removefrom</span></code></a>
Removes some files from a package. A file glob can be used, or the allbut option to Removes some files from a package. A file glob can be used, or the allbut option to
remove everything except a select few.</li> remove everything except a select few.</p></li>
<li><a class="reference internal" href="pylorax.html#pylorax.ltmpl.LoraxTemplateRunner.removekmod" title="pylorax.ltmpl.LoraxTemplateRunner.removekmod"><code class="xref py py-func docutils literal notranslate"><span class="pre">removekmod</span></code></a> <li><p><a class="reference internal" href="pylorax.html#pylorax.ltmpl.LoraxTemplateRunner.removekmod" title="pylorax.ltmpl.LoraxTemplateRunner.removekmod"><code class="xref py py-func docutils literal notranslate"><span class="pre">removekmod</span></code></a>
Removes kernel modules</li> Removes kernel modules</p></li>
</ul> </ul>
</div> </div>
<div class="section" id="the-squashfs-filesystem"> <div class="section" id="the-squashfs-filesystem">

View File

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>pylorax &mdash; Lorax 28.14.33 documentation</title> <title>pylorax &mdash; Lorax 28.14.42 documentation</title>
@ -60,7 +60,7 @@
<div class="version"> <div class="version">
28.14.33 28.14.42
</div> </div>
@ -191,6 +191,7 @@
<li class="toctree-l2"><a class="reference internal" href="pylorax.html#module-pylorax.creator">pylorax.creator module</a></li> <li class="toctree-l2"><a class="reference internal" href="pylorax.html#module-pylorax.creator">pylorax.creator module</a></li>
<li class="toctree-l2"><a class="reference internal" href="pylorax.html#module-pylorax.decorators">pylorax.decorators module</a></li> <li class="toctree-l2"><a class="reference internal" href="pylorax.html#module-pylorax.decorators">pylorax.decorators module</a></li>
<li class="toctree-l2"><a class="reference internal" href="pylorax.html#module-pylorax.discinfo">pylorax.discinfo module</a></li> <li class="toctree-l2"><a class="reference internal" href="pylorax.html#module-pylorax.discinfo">pylorax.discinfo module</a></li>
<li class="toctree-l2"><a class="reference internal" href="pylorax.html#module-pylorax.dnfbase">pylorax.dnfbase module</a></li>
<li class="toctree-l2"><a class="reference internal" href="pylorax.html#module-pylorax.dnfhelper">pylorax.dnfhelper module</a></li> <li class="toctree-l2"><a class="reference internal" href="pylorax.html#module-pylorax.dnfhelper">pylorax.dnfhelper module</a></li>
<li class="toctree-l2"><a class="reference internal" href="pylorax.html#module-pylorax.executils">pylorax.executils module</a></li> <li class="toctree-l2"><a class="reference internal" href="pylorax.html#module-pylorax.executils">pylorax.executils module</a></li>
<li class="toctree-l2"><a class="reference internal" href="pylorax.html#module-pylorax.imgutils">pylorax.imgutils module</a></li> <li class="toctree-l2"><a class="reference internal" href="pylorax.html#module-pylorax.imgutils">pylorax.imgutils module</a></li>

Binary file not shown.

View File

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Product and Updates Images &mdash; Lorax 28.14.33 documentation</title> <title>Product and Updates Images &mdash; Lorax 28.14.42 documentation</title>
@ -60,7 +60,7 @@
<div class="version"> <div class="version">
28.14.33 28.14.42
</div> </div>

View File

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Python Module Index &mdash; Lorax 28.14.33 documentation</title> <title>Python Module Index &mdash; Lorax 28.14.42 documentation</title>
@ -61,7 +61,7 @@
<div class="version"> <div class="version">
28.14.33 28.14.42
</div> </div>
@ -256,6 +256,11 @@
<td>&#160;&#160;&#160; <td>&#160;&#160;&#160;
<a href="pylorax.html#module-pylorax.discinfo"><code class="xref">pylorax.discinfo</code></a></td><td> <a href="pylorax.html#module-pylorax.discinfo"><code class="xref">pylorax.discinfo</code></a></td><td>
<em></em></td></tr> <em></em></td></tr>
<tr class="cg-1">
<td></td>
<td>&#160;&#160;&#160;
<a href="pylorax.html#module-pylorax.dnfbase"><code class="xref">pylorax.dnfbase</code></a></td><td>
<em></em></td></tr>
<tr class="cg-1"> <tr class="cg-1">
<td></td> <td></td>
<td>&#160;&#160;&#160; <td>&#160;&#160;&#160;

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Search &mdash; Lorax 28.14.33 documentation</title> <title>Search &mdash; Lorax 28.14.42 documentation</title>
@ -17,6 +17,7 @@
<script type="text/javascript" src="_static/js/modernizr.min.js"></script> <script type="text/javascript" src="_static/js/modernizr.min.js"></script>
@ -25,11 +26,11 @@
<script type="text/javascript" src="_static/underscore.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/doctools.js"></script>
<script type="text/javascript" src="_static/language_data.js"></script> <script type="text/javascript" src="_static/language_data.js"></script>
<script type="text/javascript" src="_static/searchtools.js"></script>
<script type="text/javascript" src="_static/js/theme.js"></script> <script type="text/javascript" src="_static/js/theme.js"></script>
<script type="text/javascript" src="_static/searchtools.js"></script>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" /> <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
@ -59,7 +60,7 @@
<div class="version"> <div class="version">
28.14.33 28.14.42
</div> </div>

File diff suppressed because one or more lines are too long