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
# 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

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">
<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">
28.14.33
28.14.42
</div>
@ -169,6 +169,7 @@
<li><a href="pylorax/creator.html">pylorax.creator</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/dnfbase.html">pylorax.dnfbase</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/imgutils.html">pylorax.imgutils</a></li>

View File

@ -8,7 +8,7 @@
<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">
28.14.33
28.14.42
</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_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">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>
@ -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">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_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">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">
<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">
28.14.33
28.14.42
</div>

View File

@ -8,7 +8,7 @@
<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">
28.14.33
28.14.42
</div>
@ -1035,7 +1035,7 @@
<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;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;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>

View File

@ -8,7 +8,7 @@
<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">
28.14.33
28.14.42
</div>

View File

@ -8,7 +8,7 @@
<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">
28.14.33
28.14.42
</div>

View File

@ -8,7 +8,7 @@
<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">
28.14.33
28.14.42
</div>

View File

@ -8,7 +8,7 @@
<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">
28.14.33
28.14.42
</div>

View File

@ -8,7 +8,7 @@
<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">
28.14.33
28.14.42
</div>

View File

@ -8,7 +8,7 @@
<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">
28.14.33
28.14.42
</div>

View File

@ -8,7 +8,7 @@
<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">
28.14.33
28.14.42
</div>

View File

@ -8,7 +8,7 @@
<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">
28.14.33
28.14.42
</div>

View File

@ -8,7 +8,7 @@
<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">
28.14.33
28.14.42
</div>

View File

@ -8,7 +8,7 @@
<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">
28.14.33
28.14.42
</div>

View File

@ -8,7 +8,7 @@
<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">
28.14.33
28.14.42
</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">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">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="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">
<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">
28.14.33
28.14.42
</div>

View File

@ -8,7 +8,7 @@
<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">
28.14.33
28.14.42
</div>

View File

@ -8,7 +8,7 @@
<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">
28.14.33
28.14.42
</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">
<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">
28.14.33
28.14.42
</div>

View File

@ -8,7 +8,7 @@
<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">
28.14.33
28.14.42
</div>
@ -273,6 +273,7 @@
<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="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="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>

View File

@ -8,7 +8,7 @@
<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">
28.14.33
28.14.42
</div>

View File

@ -8,7 +8,7 @@
<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">
28.14.33
28.14.42
</div>

View File

@ -8,7 +8,7 @@
<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">
28.14.33
28.14.42
</div>

View File

@ -8,7 +8,7 @@
<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">
28.14.33
28.14.42
</div>

View File

@ -8,7 +8,7 @@
<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">
28.14.33
28.14.42
</div>

View File

@ -8,7 +8,7 @@
<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">
28.14.33
28.14.42
</div>

View File

@ -8,7 +8,7 @@
<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">
28.14.33
28.14.42
</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="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_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="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>
@ -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">_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">_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="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">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="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">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="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">continue</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="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="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="ow">not</span> <span class="n">pkgs</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="s2">&quot;No system-release packages found, could not get the release&quot;</span><span class="p">)</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="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>

View File

@ -8,7 +8,7 @@
<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">
28.14.33
28.14.42
</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/``.
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
----------------------

View File

@ -59,6 +59,14 @@ pylorax.discinfo module
:undoc-members:
:show-inheritance:
pylorax.dnfbase module
----------------------
.. automodule:: pylorax.dnfbase
:members:
:undoc-members:
:show-inheritance:
pylorax.dnfhelper module
------------------------

View File

@ -231,6 +231,16 @@ a.headerlink {
visibility: hidden;
}
a.brackets:before,
span.brackets > a:before{
content: "[";
}
a.brackets:after,
span.brackets > a:after {
content: "]";
}
h1:hover > a.headerlink,
h2:hover > a.headerlink,
h3:hover > a.headerlink,
@ -279,6 +289,12 @@ img.align-center, .figure.align-center, object.align-center {
margin-right: auto;
}
img.align-default, .figure.align-default {
display: block;
margin-left: auto;
margin-right: auto;
}
.align-left {
text-align: left;
}
@ -287,6 +303,10 @@ img.align-center, .figure.align-center, object.align-center {
text-align: center;
}
.align-default {
text-align: center;
}
.align-right {
text-align: right;
}
@ -358,6 +378,11 @@ table.align-center {
margin-right: auto;
}
table.align-default {
margin-left: auto;
margin-right: auto;
}
table caption span.caption-number {
font-style: italic;
}
@ -391,6 +416,16 @@ table.citation td {
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 --------------------------------------------------------------- */
div.figure {
@ -460,11 +495,57 @@ ol.upperroman {
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 {
margin-bottom: 15px;
}
dd p {
dd > p:first-child {
margin-top: 0px;
}
@ -537,6 +618,12 @@ dl.glossary dt {
font-style: oblique;
}
.classifier:before {
font-style: normal;
margin: 0.5em;
content: ":";
}
abbr, acronym {
border-bottom: dotted 1px;
cursor: help;

View File

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

View File

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

View File

@ -36,8 +36,10 @@ if (!Scorer) {
// query found in title
title: 15,
partialTitle: 7,
// query found in terms
term: 5
term: 5,
partialTerm: 2
};
}
@ -56,6 +58,14 @@ var Search = {
_queued_query : null,
_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() {
var params = $.getQueryParameters();
if (params.q) {
@ -120,7 +130,7 @@ var Search = {
this.out = $('#search-results');
this.title = $('<h2>' + _('Searching') + '</h2>').appendTo(this.out);
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);
$('#search-progress').text(_('Preparing search...'));
@ -259,11 +269,7 @@ var Search = {
displayNextItem();
});
} else if (DOCUMENTATION_OPTIONS.HAS_SOURCE) {
var suffix = DOCUMENTATION_OPTIONS.SOURCELINK_SUFFIX;
if (suffix === undefined) {
suffix = '.txt';
}
$.ajax({url: DOCUMENTATION_OPTIONS.URL_ROOT + '_sources/' + item[5] + (item[5].slice(-suffix.length) === suffix ? '' : suffix),
$.ajax({url: DOCUMENTATION_OPTIONS.URL_ROOT + item[0] + DOCUMENTATION_OPTIONS.FILE_SUFFIX,
dataType: "text",
complete: function(jqxhr, textstatus) {
var data = jqxhr.responseText;
@ -313,12 +319,13 @@ var Search = {
for (var prefix in objects) {
for (var name in objects[prefix]) {
var fullname = (prefix ? prefix + '.' : '') + name;
if (fullname.toLowerCase().indexOf(object) > -1) {
var fullnameLower = fullname.toLowerCase()
if (fullnameLower.indexOf(object) > -1) {
var score = 0;
var parts = fullname.split('.');
var parts = fullnameLower.split('.');
// check for different match types: exact matches of full name or
// "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;
// matches in last name
} else if (parts[parts.length - 1].indexOf(object) > -1) {
@ -385,6 +392,19 @@ var Search = {
{files: terms[word], score: Scorer.term},
{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
if ($u.every(_o, function(o){return o.files === undefined;})) {
@ -424,8 +444,12 @@ var Search = {
var valid = true;
// check if all requirements are matched
if (fileMap[file].length != searchterms.length)
continue;
var filteredTermCount = // as search terms with length < 3 are discarded: ignore
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
for (i = 0; i < excluded.length; i++) {
@ -456,7 +480,8 @@ var Search = {
* words. the first one is used to find the occurrence, the
* latter for highlighting it.
*/
makeSearchSummary : function(text, keywords, hlwords) {
makeSearchSummary : function(htmlText, keywords, hlwords) {
var text = Search.htmlToText(htmlText);
var textLower = text.toLowerCase();
var start = 0;
$.each(keywords, function() {

View File

@ -8,7 +8,7 @@
<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">
28.14.33
28.14.42
</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="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-l2"><a class="reference internal" href="#composer-cli-cmdline-arguments">composer-cli cmdline arguments</a><ul>
<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="#composer-cli-cmdline-arguments">composer-cli cmdline arguments</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="#monitor-the-build-status">Monitor the build status</a></li>
@ -170,149 +166,17 @@
<div class="section" id="composer-cli">
<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">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<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>
</tr>
</tbody>
</table>
<dl class="field-list simple">
<dt class="field-odd">Authors</dt>
<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>
</dd>
</dl>
<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
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>
<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>
<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 class="section" id="edit-a-blueprint">
<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">
<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">
28.14.33
28.14.42
</div>
@ -338,7 +338,7 @@
</li>
</ul></td>
<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><a href="pylorax.html#pylorax.discinfo.DiscInfo">DiscInfo (class in pylorax.discinfo)</a>
</li>
@ -352,7 +352,7 @@
</li>
<li><a href="pylorax.html#pylorax.imgutils.do_grafts">do_grafts() (in module pylorax.imgutils)</a>
</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>
</ul></td>
</tr></table>
@ -388,7 +388,7 @@
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="pylorax.html#pylorax.creator.FakeDNF">FakeDNF (class in pylorax.creator)</a>
</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><a href="pylorax.api.html#pylorax.api.recipes.find_commit_tag">find_commit_tag() (in module pylorax.api.recipes)</a>
</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>
<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><a href="pylorax.api.html#pylorax.api.compose.get_extra_pkgs">get_extra_pkgs() (in module pylorax.api.compose)</a>
</li>
<li><a href="pylorax.api.html#pylorax.api.compose.get_firewall_settings">get_firewall_settings() (in module pylorax.api.compose)</a>
</li>
<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>
</ul></td>
<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>
<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><a href="pylorax.api.html#pylorax.api.server.GitLock">GitLock (class in pylorax.api.server)</a>
</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>
</ul></td>
</tr></table>
@ -546,7 +548,7 @@
<h2 id="K">K</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<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>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
@ -574,7 +576,7 @@
</li>
<li><a href="pylorax.html#pylorax.cmdline.lmc_parser">lmc_parser() (in module pylorax.cmdline)</a>
</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><a href="pylorax.html#pylorax.ltmpl.LoraxTemplateRunner.log">log() (pylorax.ltmpl.LoraxTemplateRunner method)</a>
</li>
@ -666,9 +668,9 @@
</li>
<li><a href="pylorax.html#pylorax.imgutils.mktar">mktar() (in module pylorax.imgutils)</a>
</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><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><a href="pylorax.api.html#pylorax.api.projects.modules_info">modules_info() (in module pylorax.api.projects)</a>
</li>
@ -714,9 +716,9 @@
<h2 id="P">P</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<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><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><a href="pylorax.html#pylorax.ltmpl.LoraxTemplate.parse">parse() (pylorax.ltmpl.LoraxTemplate method)</a>
</li>
@ -799,6 +801,8 @@
<li><a href="pylorax.html#module-pylorax.decorators">pylorax.decorators (module)</a>
</li>
<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><a href="pylorax.html#module-pylorax.dnfhelper">pylorax.dnfhelper (module)</a>
</li>
@ -896,7 +900,7 @@
<li><a href="pylorax.html#pylorax.ltmpl.LoraxTemplateRunner.replace">(pylorax.ltmpl.LoraxTemplateRunner method)</a>
</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><a href="pylorax.api.html#pylorax.api.recipes.repo_file_exists">repo_file_exists() (in module pylorax.api.recipes)</a>
</li>
@ -988,7 +992,7 @@
</li>
<li><a href="pylorax.api.html#pylorax.api.v0.take_limits">take_limits() (in module pylorax.api.v0)</a>
</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><a href="pylorax.html#pylorax.ltmpl.TemplateRunner">TemplateRunner (class in pylorax.ltmpl)</a>
</li>

View File

@ -8,7 +8,7 @@
<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">
28.14.33
28.14.42
</div>
@ -175,16 +175,16 @@
<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>
<ul class="simple">
<li><a class="reference external" href="f28-branch/">Fedora 28</a></li>
<li><a class="reference external" href="lorax-composer/">RHEL7 lorax-composer</a></li>
<li><p><a class="reference external" href="f28-branch/">Fedora 28</a></p></li>
<li><p><a class="reference external" href="lorax-composer/">RHEL7 lorax-composer</a></p></li>
</ul>
</div>
<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>
<ul class="simple">
<li><a class="reference internal" href="genindex.html"><span class="std std-ref">Index</span></a></li>
<li><a class="reference internal" href="py-modindex.html"><span class="std std-ref">Module Index</span></a></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="genindex.html"><span class="std std-ref">Index</span></a></p></li>
<li><p><a class="reference internal" href="py-modindex.html"><span class="std std-ref">Module Index</span></a></p></li>
<li><p><a class="reference internal" href="search.html"><span class="std std-ref">Search Page</span></a></p></li>
</ul>
</div>

View File

@ -8,7 +8,7 @@
<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">
28.14.33
28.14.42
</div>
@ -178,21 +178,20 @@ with something more flexible.</p>
scripts to do the image building and data generation. Heres how it
currently looks:</p>
<blockquote>
<div><dl class="docutils">
<dt>-&gt; buildinstall</dt>
<dd><ul class="first simple">
<li>process command line options</li>
<li>write temporary yum.conf to point to correct repo</li>
<li>find anaconda release RPM</li>
<li>unpack RPM, pull in those versions of upd-instroot, mk-images,
maketreeinfo.py, makestamp.py, and buildinstall</li>
<div><dl>
<dt>-&gt; buildinstall</dt><dd><ul class="simple">
<li><p>process command line options</p></li>
<li><p>write temporary yum.conf to point to correct repo</p></li>
<li><p>find anaconda release RPM</p></li>
<li><p>unpack RPM, pull in those versions of upd-instroot, mk-images,
maketreeinfo.py, makestamp.py, and buildinstall</p></li>
</ul>
<p>-&gt; call upd-instroot</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 makestamp.py</p>
<ul class="last simple">
<li>clean up</li>
<ul class="simple">
<li><p>clean up</p></li>
</ul>
</dd>
</dl>

View File

@ -8,7 +8,7 @@
<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">
28.14.33
28.14.42
</div>
@ -191,14 +191,11 @@
<div class="section" id="livemedia-creator">
<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">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<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>
</tr>
</tbody>
</table>
<dl class="field-list simple">
<dt class="field-odd">Authors</dt>
<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>
</dd>
</dl>
<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
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>
<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>
<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>
<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>
@ -258,364 +256,282 @@ you have the anaconda-tui package installed.</p>
</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>--make-iso</kbd></td>
<td><p class="first">Build a live iso</p>
<p class="last">Default: False</p>
</td></tr>
<tr><td class="option-group">
<kbd>--make-disk</kbd></td>
<td><p class="first">Build a partitioned disk image</p>
<p class="last">Default: False</p>
</td></tr>
<tr><td class="option-group">
<kbd>--make-fsimage</kbd></td>
<td><p class="first">Build a filesystem image</p>
<p class="last">Default: False</p>
</td></tr>
<tr><td class="option-group" colspan="2">
<kbd>--make-appliance</kbd></td>
</tr>
<tr><td>&#160;</td><td><p class="first">Build an appliance image and XML description</p>
<p class="last">Default: False</p>
</td></tr>
<tr><td class="option-group">
<kbd>--make-ami</kbd></td>
<td><p class="first">Build an ami image</p>
<p class="last">Default: False</p>
</td></tr>
<tr><td class="option-group">
<kbd>--make-tar</kbd></td>
<td><p class="first">Build a tar of the root filesystem</p>
<p class="last">Default: False</p>
</td></tr>
<tr><td class="option-group" colspan="2">
<kbd>--make-tar-disk</kbd></td>
</tr>
<tr><td>&#160;</td><td><p class="first">Build a tar of a partitioned disk image</p>
<p class="last">Default: False</p>
</td></tr>
<tr><td class="option-group" colspan="2">
<kbd>--make-pxe-live</kbd></td>
</tr>
<tr><td>&#160;</td><td><p class="first">Build a live pxe boot squashfs image</p>
<p class="last">Default: False</p>
</td></tr>
<tr><td class="option-group" colspan="2">
<kbd>--make-ostree-live</kbd></td>
</tr>
<tr><td>&#160;</td><td><p class="first">Build a live pxe boot squashfs image of Atomic Host</p>
<p class="last">Default: False</p>
</td></tr>
<tr><td class="option-group">
<kbd>--make-oci</kbd></td>
<td><p class="first">Build an Open Container Initiative image</p>
<p class="last">Default: False</p>
</td></tr>
<tr><td class="option-group">
<kbd>--make-vagrant</kbd></td>
<td><p class="first">Build a Vagrant Box image</p>
<p class="last">Default: False</p>
</td></tr>
<tr><td class="option-group">
<kbd>--iso</kbd></td>
<td>Anaconda installation .iso path to use for qemu</td></tr>
<tr><td class="option-group">
<kbd>--iso-only</kbd></td>
<td><p class="first">Remove all iso creation artifacts except the boot.iso, combine with iso-name to rename the boot.iso</p>
<p class="last">Default: False</p>
</td></tr>
<tr><td class="option-group">
<kbd>--iso-name</kbd></td>
<td>Name of output iso file for iso-only. Default is boot.iso</td></tr>
<tr><td class="option-group">
<kbd>--ks</kbd></td>
<td>Kickstart file defining the install.</td></tr>
<tr><td class="option-group">
<kbd>--image-only</kbd></td>
<td><p class="first">Exit after creating fs/disk image.</p>
<p class="last">Default: False</p>
</td></tr>
<tr><td class="option-group">
<kbd>--no-virt</kbd></td>
<td><p class="first">Run anaconda directly on host instead of using qemu</p>
<p class="last">Default: False</p>
</td></tr>
<tr><td class="option-group">
<kbd>--proxy</kbd></td>
<td>proxy URL to use for the install</td></tr>
<tr><td class="option-group">
<kbd>--anaconda-arg</kbd></td>
<td>Additional argument to pass to anaconda (no-virt mode). Pass once for each argument</td></tr>
<tr><td class="option-group">
<kbd>--armplatform</kbd></td>
<td>the platform to use when creating images for ARM, i.e., highbank, mvebu, omap, tegra, etc.</td></tr>
<tr><td class="option-group">
<kbd>--location</kbd></td>
<td>location of iso directory tree with initrd.img and vmlinuz. Used to run qemu with a newer initrd than the iso.</td></tr>
<tr><td class="option-group">
<kbd>--logfile</kbd></td>
<td><p class="first">Name and path for primary logfile, other logs will be created in the same directory.</p>
<p class="last">Default: ./livemedia.log</p>
</td></tr>
<tr><td class="option-group" colspan="2">
<kbd>--lorax-templates</kbd></td>
</tr>
<tr><td>&#160;</td><td>Path to mako templates for lorax</td></tr>
<tr><td class="option-group">
<kbd>--tmp</kbd></td>
<td><p class="first">Top level temporary directory</p>
<p class="last">Default: /var/tmp</p>
</td></tr>
<tr><td class="option-group">
<kbd>--resultdir</kbd></td>
<td>Directory to copy the resulting images and iso into. Defaults to the temporary working directory</td></tr>
<tr><td class="option-group">
<kbd>--macboot</kbd></td>
<td><p class="first">Make the iso bootable on UEFI based Mac systems</p>
<p class="last">Default: True</p>
</td></tr>
<tr><td class="option-group">
<kbd>--nomacboot</kbd></td>
<td><p class="first">Do not create a Mac bootable iso</p>
<p class="last">Default: False</p>
</td></tr>
<tr><td class="option-group" colspan="2">
<kbd>--extra-boot-args</kbd></td>
</tr>
<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>
<dl class="option-list">
<dt><kbd>--make-iso</kbd></dt>
<dd><p>Build a live iso</p>
<p>Default: False</p>
</dd>
<dt><kbd>--make-disk</kbd></dt>
<dd><p>Build a partitioned disk image</p>
<p>Default: False</p>
</dd>
<dt><kbd>--make-fsimage</kbd></dt>
<dd><p>Build a filesystem image</p>
<p>Default: False</p>
</dd>
<dt><kbd>--make-appliance</kbd></dt>
<dd><p>Build an appliance image and XML description</p>
<p>Default: False</p>
</dd>
<dt><kbd>--make-ami</kbd></dt>
<dd><p>Build an ami image</p>
<p>Default: False</p>
</dd>
<dt><kbd>--make-tar</kbd></dt>
<dd><p>Build a tar of the root filesystem</p>
<p>Default: False</p>
</dd>
<dt><kbd>--make-tar-disk</kbd></dt>
<dd><p>Build a tar of a partitioned disk image</p>
<p>Default: False</p>
</dd>
<dt><kbd>--make-pxe-live</kbd></dt>
<dd><p>Build a live pxe boot squashfs image</p>
<p>Default: False</p>
</dd>
<dt><kbd>--make-ostree-live</kbd></dt>
<dd><p>Build a live pxe boot squashfs image of Atomic Host</p>
<p>Default: False</p>
</dd>
<dt><kbd>--make-oci</kbd></dt>
<dd><p>Build an Open Container Initiative image</p>
<p>Default: False</p>
</dd>
<dt><kbd>--make-vagrant</kbd></dt>
<dd><p>Build a Vagrant Box image</p>
<p>Default: False</p>
</dd>
<dt><kbd>--iso</kbd></dt>
<dd><p>Anaconda installation .iso path to use for qemu</p>
</dd>
<dt><kbd>--iso-only</kbd></dt>
<dd><p>Remove all iso creation artifacts except the boot.iso, combine with iso-name to rename the boot.iso</p>
<p>Default: False</p>
</dd>
<dt><kbd>--iso-name</kbd></dt>
<dd><p>Name of output iso file for iso-only. Default is boot.iso</p>
</dd>
<dt><kbd>--ks</kbd></dt>
<dd><p>Kickstart file defining the install.</p>
</dd>
<dt><kbd>--image-only</kbd></dt>
<dd><p>Exit after creating fs/disk image.</p>
<p>Default: False</p>
</dd>
<dt><kbd>--no-virt</kbd></dt>
<dd><p>Run anaconda directly on host instead of using qemu</p>
<p>Default: False</p>
</dd>
<dt><kbd>--proxy</kbd></dt>
<dd><p>proxy URL to use for the install</p>
</dd>
<dt><kbd>--anaconda-arg</kbd></dt>
<dd><p>Additional argument to pass to anaconda (no-virt mode). Pass once for each argument</p>
</dd>
<dt><kbd>--armplatform</kbd></dt>
<dd><p>the platform to use when creating images for ARM, i.e., highbank, mvebu, omap, tegra, etc.</p>
</dd>
<dt><kbd>--location</kbd></dt>
<dd><p>location of iso directory tree with initrd.img and vmlinuz. Used to run qemu with a newer initrd than the iso.</p>
</dd>
<dt><kbd>--logfile</kbd></dt>
<dd><p>Name and path for primary logfile, other logs will be created in the same directory.</p>
<p>Default: ./livemedia.log</p>
</dd>
<dt><kbd>--lorax-templates</kbd></dt>
<dd><p>Path to mako templates for lorax</p>
</dd>
<dt><kbd>--tmp</kbd></dt>
<dd><p>Top level temporary directory</p>
<p>Default: /var/tmp</p>
</dd>
<dt><kbd>--resultdir</kbd></dt>
<dd><p>Directory to copy the resulting images and iso into. Defaults to the temporary working directory</p>
</dd>
<dt><kbd>--macboot</kbd></dt>
<dd><p>Make the iso bootable on UEFI based Mac systems</p>
<p>Default: True</p>
</dd>
<dt><kbd>--nomacboot</kbd></dt>
<dd><p>Do not create a Mac bootable iso</p>
<p>Default: False</p>
</dd>
<dt><kbd>--extra-boot-args</kbd></dt>
<dd><p>Extra arguments to add to the bootloader kernel cmdline in the templates</p>
<p>Default: “”</p>
</dd>
<dt><kbd>--title</kbd></dt>
<dd><p>Substituted for &#64;TITLE&#64; in bootloader config files</p>
<p>Default: “Linux Live Media”</p>
</dd>
<dt><kbd>--project</kbd></dt>
<dd><p>substituted for &#64;PROJECT&#64; in bootloader config files</p>
<p>Default: “Linux”</p>
</dd>
<dt><kbd>--releasever</kbd></dt>
<dd><p>substituted for &#64;VERSION&#64; in bootloader config files</p>
<p>Default: “8”</p>
</dd>
<dt><kbd>--volid</kbd></dt>
<dd><p>volume id</p>
</dd>
<dt><kbd>--squashfs_args</kbd></dt>
<dd><p>additional squashfs args</p>
</dd>
<dt><kbd>--timeout</kbd></dt>
<dd><p>Cancel installer after X minutes</p>
</dd>
<dt><kbd>-V</kbd></dt>
<dd><p>show programs version number and exit</p>
</dd>
</dl>
</div>
<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>
<table class="docutils option-list" frame="void" rules="none">
<col class="option" />
<col class="description" />
<tbody valign="top">
<tr><td class="option-group">
<kbd>--disk-image</kbd></td>
<td>Path to existing disk image to use for creating final image.</td></tr>
<tr><td class="option-group">
<kbd>--keep-image</kbd></td>
<td><p class="first">Keep raw disk image after .iso creation</p>
<p class="last">Default: False</p>
</td></tr>
<tr><td class="option-group">
<kbd>--fs-image</kbd></td>
<td>Path to existing filesystem image to use for creating final image.</td></tr>
<tr><td class="option-group">
<kbd>--image-name</kbd></td>
<td>Name of output file to create. Used for tar, fs and disk image. Default is a random name.</td></tr>
<tr><td class="option-group" colspan="2">
<kbd>--tar-disk-name</kbd></td>
</tr>
<tr><td>&#160;</td><td>Name of the archive member for make-tar-disk.</td></tr>
<tr><td class="option-group">
<kbd>--fs-label</kbd></td>
<td><p class="first">Label to set on fsimage, default is Anaconda</p>
<p class="last">Default: “Anaconda”</p>
</td></tr>
<tr><td class="option-group" colspan="2">
<kbd>--image-size-align</kbd></td>
</tr>
<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 class="last">Default: 0</p>
</td></tr>
<tr><td class="option-group">
<kbd>--image-type</kbd></td>
<td>Create an image with qemu-img. See qemu-img help for supported formats.</td></tr>
<tr><td class="option-group">
<kbd>--qemu-arg</kbd></td>
<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 class="last">Default: []</p>
</td></tr>
<tr><td class="option-group">
<kbd>--qcow2</kbd></td>
<td><p class="first">Create qcow2 image instead of raw sparse image when making disk images.</p>
<p class="last">Default: False</p>
</td></tr>
<tr><td class="option-group">
<kbd>--qcow2-arg</kbd></td>
<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 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>
<dl class="option-list">
<dt><kbd>--disk-image</kbd></dt>
<dd><p>Path to existing disk image to use for creating final image.</p>
</dd>
<dt><kbd>--keep-image</kbd></dt>
<dd><p>Keep raw disk image after .iso creation</p>
<p>Default: False</p>
</dd>
<dt><kbd>--fs-image</kbd></dt>
<dd><p>Path to existing filesystem image to use for creating final image.</p>
</dd>
<dt><kbd>--image-name</kbd></dt>
<dd><p>Name of output file to create. Used for tar, fs and disk image. Default is a random name.</p>
</dd>
<dt><kbd>--tar-disk-name</kbd></dt>
<dd><p>Name of the archive member for make-tar-disk.</p>
</dd>
<dt><kbd>--fs-label</kbd></dt>
<dd><p>Label to set on fsimage, default is Anaconda</p>
<p>Default: “Anaconda”</p>
</dd>
<dt><kbd>--image-size-align</kbd></dt>
<dd><p>Create a disk image with a size that is a multiple of this value in MiB.</p>
<p>Default: 0</p>
</dd>
<dt><kbd>--image-type</kbd></dt>
<dd><p>Create an image with qemu-img. See qemu-img help for supported formats.</p>
</dd>
<dt><kbd>--qemu-arg</kbd></dt>
<dd><p>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>
</dd>
<dt><kbd>--qcow2</kbd></dt>
<dd><p>Create qcow2 image instead of raw sparse image when making disk images.</p>
<p>Default: False</p>
</dd>
<dt><kbd>--qcow2-arg</kbd></dt>
<dd><p>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>
</dd>
<dt><kbd>--compression</kbd></dt>
<dd><p>Compression binary for make-tar. xz, lzma, gzip, and bzip2 are supported. xz is the default.</p>
<p>Default: “xz”</p>
</dd>
<dt><kbd>--compress-arg</kbd></dt>
<dd><p>Arguments to pass to compression. Pass once for each argument</p>
<p>Default: []</p>
</dd>
</dl>
</div>
<div class="section" id="appliance arguments">
<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">
<col class="option" />
<col class="description" />
<tbody valign="top">
<tr><td class="option-group">
<kbd>--app-name</kbd></td>
<td>Name of appliance to pass to template</td></tr>
<tr><td class="option-group">
<kbd>--app-template</kbd></td>
<td>Path to template to use for appliance data.</td></tr>
<tr><td class="option-group">
<kbd>--app-file</kbd></td>
<td><p class="first">Appliance template results file.</p>
<p class="last">Default: “appliance.xml”</p>
</td></tr>
</tbody>
</table>
<dl class="option-list">
<dt><kbd>--app-name</kbd></dt>
<dd><p>Name of appliance to pass to template</p>
</dd>
<dt><kbd>--app-template</kbd></dt>
<dd><p>Path to template to use for appliance data.</p>
</dd>
<dt><kbd>--app-file</kbd></dt>
<dd><p>Appliance template results file.</p>
<p>Default: “appliance.xml”</p>
</dd>
</dl>
</div>
<div class="section" id="qemu arguments">
<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">
<col class="option" />
<col class="description" />
<tbody valign="top">
<tr><td class="option-group">
<kbd>--ram</kbd></td>
<td><p class="first">Memory to allocate for installer in megabytes.</p>
<p class="last">Default: 1024</p>
</td></tr>
<tr><td class="option-group">
<kbd>--vcpus</kbd></td>
<td>Passed to qemu -smp command</td></tr>
<tr><td class="option-group">
<kbd>--vnc</kbd></td>
<td>Passed to qemu -display command. eg. vnc=127.0.0.1:5, default is to choose the first unused vnc port.</td></tr>
<tr><td class="option-group">
<kbd>--arch</kbd></td>
<td>System arch to build for. Used to select qemu-system-* command. Defaults to qemu-system-&lt;arch&gt;</td></tr>
<tr><td class="option-group">
<kbd>--kernel-args</kbd></td>
<td>Additional argument to pass to the installation kernel</td></tr>
<tr><td class="option-group">
<kbd>--ovmf-path</kbd></td>
<td><p class="first">Path to OVMF firmware</p>
<p class="last">Default: “/usr/share/edk2/ovmf/”</p>
</td></tr>
<tr><td class="option-group">
<kbd>--virt-uefi</kbd></td>
<td><p class="first">Use OVMF firmware to boot the VM in UEFI mode</p>
<p class="last">Default: False</p>
</td></tr>
<tr><td class="option-group">
<kbd>--no-kvm</kbd></td>
<td><p class="first">Skip using kvm with qemu even if it is available.</p>
<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>
<dl class="option-list">
<dt><kbd>--ram</kbd></dt>
<dd><p>Memory to allocate for installer in megabytes.</p>
<p>Default: 1024</p>
</dd>
<dt><kbd>--vcpus</kbd></dt>
<dd><p>Passed to qemu -smp command</p>
</dd>
<dt><kbd>--vnc</kbd></dt>
<dd><p>Passed to qemu -display command. eg. vnc=127.0.0.1:5, default is to choose the first unused vnc port.</p>
</dd>
<dt><kbd>--arch</kbd></dt>
<dd><p>System arch to build for. Used to select qemu-system-* command. Defaults to qemu-system-&lt;arch&gt;</p>
</dd>
<dt><kbd>--kernel-args</kbd></dt>
<dd><p>Additional argument to pass to the installation kernel</p>
</dd>
<dt><kbd>--ovmf-path</kbd></dt>
<dd><p>Path to OVMF firmware</p>
<p>Default: “/usr/share/edk2/ovmf/”</p>
</dd>
<dt><kbd>--virt-uefi</kbd></dt>
<dd><p>Use OVMF firmware to boot the VM in UEFI mode</p>
<p>Default: False</p>
</dd>
<dt><kbd>--no-kvm</kbd></dt>
<dd><p>Skip using kvm with qemu even if it is available.</p>
<p>Default: False</p>
</dd>
<dt><kbd>--with-rng</kbd></dt>
<dd><p>RNG device for QEMU (none for no RNG)</p>
<p>Default: “/dev/random”</p>
</dd>
</dl>
</div>
<div class="section" id="dracut arguments">
<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">
<col class="option" />
<col class="description" />
<tbody valign="top">
<tr><td class="option-group">
<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>
<dl class="option-list">
<dt><kbd>--dracut-arg</kbd></dt>
<dd><p>Argument to pass to dracut when rebuilding the initramfs. Pass this once for each argument. NOTE: this overrides the default. (default: )</p>
</dd>
</dl>
</div>
<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>
<table class="docutils option-list" frame="void" rules="none">
<col class="option" />
<col class="description" />
<tbody valign="top">
<tr><td class="option-group" colspan="2">
<kbd>--live-rootfs-size</kbd></td>
</tr>
<tr><td>&#160;</td><td><p class="first">Size of root filesystem of live image in GiB</p>
<p class="last">Default: 0</p>
</td></tr>
<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>
<dl class="option-list">
<dt><kbd>--live-rootfs-size</kbd></dt>
<dd><p>Size of root filesystem of live image in GiB</p>
<p>Default: 0</p>
</dd>
<dt><kbd>--live-rootfs-keep-size</kbd></dt>
<dd><p>Keep the original size of root filesystem in live image</p>
<p>Default: False</p>
</dd>
</dl>
</div>
<div class="section" id="OCI arguments">
<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">
<col class="option" />
<col class="description" />
<tbody valign="top">
<tr><td class="option-group">
<kbd>--oci-config</kbd></td>
<td>config.json OCI configuration file</td></tr>
<tr><td class="option-group">
<kbd>--oci-runtime</kbd></td>
<td>runtime.json OCI configuration file</td></tr>
</tbody>
</table>
<dl class="option-list">
<dt><kbd>--oci-config</kbd></dt>
<dd><p>config.json OCI configuration file</p>
</dd>
<dt><kbd>--oci-runtime</kbd></dt>
<dd><p>runtime.json OCI configuration file</p>
</dd>
</dl>
</div>
<div class="section" id="Vagrant arguments">
<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">
<col class="option" />
<col class="description" />
<tbody valign="top">
<tr><td class="option-group" colspan="2">
<kbd>--vagrant-metadata</kbd></td>
</tr>
<tr><td>&#160;</td><td>optional metadata.json file</td></tr>
<tr><td class="option-group">
<kbd>--vagrantfile</kbd></td>
<td>optional vagrantfile</td></tr>
</tbody>
</table>
<dl class="option-list">
<dt><kbd>--vagrant-metadata</kbd></dt>
<dd><p>optional metadata.json file</p>
</dd>
<dt><kbd>--vagrantfile</kbd></dt>
<dd><p>optional vagrantfile</p>
</dd>
</dl>
</div>
</div>
<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
added by lorax.</p>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">The output from make-iso includes the artifacts used to create the boot.iso;
<p class="admonition-title">Note</p>
<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
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>
@ -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
changes. Here are the steps I used to convert the Fedora XFCE spin.</p>
<ol class="arabic">
<li><p class="first">Flatten the xfce kickstart using ksflatten</p>
</li>
<li><p class="first">Add zerombr so you dont get the disk init dialog</p>
</li>
<li><p class="first">Add clearpart all</p>
</li>
<li><p class="first">Add swap partition</p>
</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
<li><p>Flatten the xfce kickstart using ksflatten</p></li>
<li><p>Add zerombr so you dont get the disk init dialog</p></li>
<li><p>Add clearpart all</p></li>
<li><p>Add swap partition</p></li>
<li><p>bootloader target</p></li>
<li><p>Add shutdown to the kickstart</p></li>
<li><p>Add network bootproto=dhcp activate to activate the network
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>
<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></blockquote>
</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>
<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>
@ -710,39 +620,39 @@ something on the cmdline that activate the network, like sshd:</p>
</pre></div>
</div>
</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
that you create to the %wheel group so that sudo works if you wanted to.</p>
<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></blockquote>
</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>Do this only for live isos, the filesystem will be mounted read only if
there is no /etc/fstab</p>
</li>
<li><p class="first">Dont delete initramfs files from /boot in %post</p>
</li>
<li><p class="first">When creating live isos you need to have, at least, these packages in the %package section::
<li><p>Dont delete initramfs files from /boot in %post</p></li>
<li><p>When creating live isos you need to have, at least, these packages in the %package section::
dracut-config-generic
dracut-live
-dracut-config-rescue
grub-efi
memtest86+
syslinux</p>
</li>
syslinux</p></li>
</ol>
<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
packages, or you can use a caching proxy. When using a proxy you pass it to
livemedia-creator like this:</p>
<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
packages will get cached, so your kickstart url would look like:</p>
<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
as well.</p>
</div>
@ -752,29 +662,29 @@ as well.</p>
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>
<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
running under you may encounter strange bugs if you try to build newer or
older releases.</li>
<li>It may totally trash your host. So far I havent had this happen, but the
older releases.</p></li>
<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
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>
<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>
<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>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">Using no-virt to create a partitioned disk image (eg. make-disk or
<p class="admonition-title">Note</p>
<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
or UEFI). You can create BIOS partitioned disk images on UEFI by using
virt.</p>
</div>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">As of version 30.7 SELinux can be set to Enforcing. The current state is
<p class="admonition-title">Note</p>
<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
be reported as a bug.</p>
</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>
<p>The following variables are passed to the template:</p>
<blockquote>
<div><dl class="docutils">
<dt><code class="docutils literal notranslate"><span class="pre">disks</span></code></dt>
<dd><p class="first">A list of disk_info about each disk.
<div><dl>
<dt><code class="docutils literal notranslate"><span class="pre">disks</span></code></dt><dd><p>A list of disk_info about each disk.
Each entry has the following attributes:</p>
<blockquote class="last">
<blockquote>
<div><p><code class="docutils literal notranslate"><span class="pre">name</span></code>
base name of the disk image file</p>
<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>
<p>The created image can be imported into libvirt using:</p>
<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>
<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>
@ -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>
<p>Kickstarts should have a single / partition with no extra mountpoints.</p>
<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>
</div>
<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
22.15 inside of a mock chroot with make-iso and make-fsimage.</p>
<div class="admonition note">
<p class="first 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 class="admonition-title">Note</p>
<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
where <code class="docutils literal notranslate"><span class="pre">/dev/loop*</span></code> is setup for you.</p>
</div>
<p>On the host system:</p>
<ol class="arabic">
<li><p class="first">yum install -y mock</p>
</li>
<li><p class="first">Add a user to the mock group to use for running mock. eg. builder</p>
</li>
<li><p class="first">Create a new /etc/mock/ config file based on the rawhide one, or modify the
<li><p>yum install -y mock</p></li>
<li><p>Add a user to the mock group to use for running mock. eg. builder</p></li>
<li><p>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>
<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
group.</p>
<ol class="arabic" start="4">
<li><p class="first">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>
</li>
<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>
<li><p class="first">Make sure tar and dracut-network are in the %packages section and that the
<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">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">--init</span></code></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>
<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></li>
<li><p>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>
<li><p>Make sure tar and dracut-network are in the %packages section and that the
<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>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">--init</span></code></p></li>
<li><p>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>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> \
<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>
@ -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>
<p>On the host system:</p>
<ol class="arabic">
<li><p class="first">yum install -y mock</p>
</li>
<li><p class="first">Add a user to the mock group to use for running mock. eg. builder</p>
</li>
<li><p class="first">Create a new /etc/mock/ config file based on the rawhide one, or modify the
<li><p>yum install -y mock</p></li>
<li><p>Add a user to the mock group to use for running mock. eg. builder</p></li>
<li><p>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>
<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
group.</p>
<ol class="arabic" start="4">
<li><p class="first">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>
</li>
<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>
<li><p class="first">Make sure tar and dracut-network are in the %packages section and that the
<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">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">--init</span></code></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">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>
<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></li>
<li><p>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>
<li><p>Make sure tar and dracut-network are in the %packages section and that the
<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>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">--init</span></code></p></li>
<li><p>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>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>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">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>
@ -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>
<p>Create a qcow2 image using the kickstart like this:</p>
<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">
<p class="first 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 class="admonition-title">Note</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>
<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> \
@ -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>
<p>You can then import the tarfile into podman or docker like this:</p>
<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>
<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 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>
@ -1090,8 +989,8 @@ firmware files.</p>
</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>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">The virt-uefi method is currently only supported on the x86_64 architecture.</p>
<p class="admonition-title">Note</p>
<p>The virt-uefi method is currently only supported on the x86_64 architecture.</p>
</div>
</div>
<div class="section" id="debugging-problems">

View File

@ -8,7 +8,7 @@
<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">
28.14.33
28.14.42
</div>
@ -198,14 +198,11 @@
<div class="section" id="lorax-composer">
<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">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<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>
</tr>
</tbody>
</table>
<dl class="field-list simple">
<dt class="field-odd">Authors</dt>
<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>
</dd>
</dl>
<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.
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">
<h2>Important Things To Note<a class="headerlink" href="#important-things-to-note" title="Permalink to this headline"></a></h2>
<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
be reported as a bug.</li>
<li>All image types lock the root account, except for live-iso. You will need to either
be reported as a bug.</p></li>
<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
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>
</div>
<div class="section" id="installation">
@ -238,11 +235,11 @@ the system is rebooted.</p>
<div class="section" id="quickstart">
<h2>Quickstart<a class="headerlink" href="#quickstart" title="Permalink to this headline"></a></h2>
<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>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>
<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>
<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>
<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><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.</p></li>
<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>.</p></li>
</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,
<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>
<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">
<li>One of the API server threads needs to retain root privileges in order to run Anaconda.</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>One of the API server threads needs to retain root privileges in order to run Anaconda.</p></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>
<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
@ -274,7 +271,8 @@ images using <code class="docutils literal notranslate"><span class="pre">lorax-
</div>
<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>
<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>
<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>
@ -285,79 +283,61 @@ images using <code class="docutils literal notranslate"><span class="pre">lorax-
</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>BLUEPRINTS</kbd></td>
<td>Path to the blueprints</td></tr>
</tbody>
</table>
<dl class="option-list">
<dt><kbd>BLUEPRINTS</kbd></dt>
<dd><p>Path to the blueprints</p>
</dd>
</dl>
</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>--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>--user</kbd></td>
<td><p class="first">User to use for reduced permissions</p>
<p class="last">Default: “root”</p>
</td></tr>
<tr><td class="option-group">
<kbd>--group</kbd></td>
<td><p class="first">Group to set ownership of the socket to</p>
<p class="last">Default: “weldr”</p>
</td></tr>
<tr><td class="option-group">
<kbd>--log</kbd></td>
<td><p class="first">Path to logfile (/var/log/lorax-composer/composer.log)</p>
<p class="last">Default: “/var/log/lorax-composer/composer.log”</p>
</td></tr>
<tr><td class="option-group">
<kbd>--mockfiles</kbd></td>
<td><p class="first">Path to JSON files used for /api/mock/ paths (/var/tmp/bdcs-mockfiles/)</p>
<p class="last">Default: “/var/tmp/bdcs-mockfiles/”</p>
</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>-V</kbd></td>
<td><p class="first">show programs version number and exit</p>
<p class="last">Default: False</p>
</td></tr>
<tr><td class="option-group">
<kbd>-c, --config</kbd></td>
<td><p class="first">Path to lorax-composer configuration file.</p>
<p class="last">Default: “/etc/lorax/composer.conf”</p>
</td></tr>
<tr><td class="option-group">
<kbd>--releasever</kbd></td>
<td>Release version to use for $releasever in dnf repository urls</td></tr>
<tr><td class="option-group">
<kbd>--tmp</kbd></td>
<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>
<dl class="option-list">
<dt><kbd>--socket</kbd></dt>
<dd><p>Path to the socket file to listen on</p>
<p>Default: “/run/weldr/api.socket”</p>
</dd>
<dt><kbd>--user</kbd></dt>
<dd><p>User to use for reduced permissions</p>
<p>Default: “root”</p>
</dd>
<dt><kbd>--group</kbd></dt>
<dd><p>Group to set ownership of the socket to</p>
<p>Default: “weldr”</p>
</dd>
<dt><kbd>--log</kbd></dt>
<dd><p>Path to logfile (/var/log/lorax-composer/composer.log)</p>
<p>Default: “/var/log/lorax-composer/composer.log”</p>
</dd>
<dt><kbd>--mockfiles</kbd></dt>
<dd><p>Path to JSON files used for /api/mock/ paths (/var/tmp/bdcs-mockfiles/)</p>
<p>Default: “/var/tmp/bdcs-mockfiles/”</p>
</dd>
<dt><kbd>--sharedir</kbd></dt>
<dd><p>Directory containing all the templates. Overrides config file sharedir</p>
</dd>
<dt><kbd>-V</kbd></dt>
<dd><p>show programs version number and exit</p>
<p>Default: False</p>
</dd>
<dt><kbd>-c, --config</kbd></dt>
<dd><p>Path to lorax-composer configuration file.</p>
<p>Default: “/etc/lorax/composer.conf”</p>
</dd>
<dt><kbd>--releasever</kbd></dt>
<dd><p>Release version to use for $releasever in dnf repository urls</p>
</dd>
<dt><kbd>--tmp</kbd></dt>
<dd><p>Top level temporary directory</p>
<p>Default: “/var/tmp”</p>
</dd>
<dt><kbd>--proxy</kbd></dt>
<dd><p>Set proxy for DNF, overrides configuration file setting.</p>
</dd>
<dt><kbd>--no-system-repos</kbd></dt>
<dd><p>Do not copy over system repos from /etc/yum.repos.d/ at startup</p>
<p>Default: False</p>
</dd>
</dl>
</div>
</div>
<div class="section" id="how-it-works">
@ -573,13 +553,13 @@ image build metadata.</p>
</pre></div>
</div>
<ul class="simple">
<li>rpmname: Name of the rpm to create, also used as the prefix name in the tar archive</li>
<li>rpmversion: Version of the rpm, eg. “1.0.0”</li>
<li>rpmrelease: Release of the rpm, eg. “1”</li>
<li>summary: Summary string for the rpm</li>
<li>repo: URL of the get repo to clone and create the archive from</li>
<li>ref: Git reference to check out. eg. origin/branch-name, git tag, or git commit hash</li>
<li>destination: Path to install the / of the git repo at when installing the rpm</li>
<li><p>rpmname: Name of the rpm to create, also used as the prefix name in the tar archive</p></li>
<li><p>rpmversion: Version of the rpm, eg. “1.0.0”</p></li>
<li><p>rpmrelease: Release of the rpm, eg. “1”</p></li>
<li><p>summary: Summary string for the rpm</p></li>
<li><p>repo: URL of the get repo to clone and create the archive from</p></li>
<li><p>ref: Git reference to check out. eg. origin/branch-name, git tag, or git commit hash</p></li>
<li><p>destination: Path to install the / of the git repo at when installing the rpm</p></li>
</ul>
<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>
@ -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
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 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
<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
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>
<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
@ -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
needs 3 things:</p>
<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>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>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
the compose directory to the results directory.</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><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><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.</p></li>
</ul>
<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>
@ -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
types for the urls are:</p>
<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><code class="docutils literal notranslate"><span class="pre">yum-mirrorlist</span></code> is a URL for a mirrorlist.</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-baseurl</span></code> is a URL to a yum repository.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">yum-mirrorlist</span></code> is a URL for a mirrorlist.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">yum-metalink</span></code> is a URL for a metalink.</p></li>
</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
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
system repo files with a configuration file pointing to the DVD.</p>
<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>
<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>
<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>
<li><p>Stop the <code class="docutils literal notranslate"><span class="pre">lorax-composer.service</span></code> if it is running</p></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>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>
<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>
@ -698,14 +676,11 @@ system repo files with a configuration file pointing to the DVD.</p>
</pre></div>
</div>
</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>
<li><p class="first">Restart the <code class="docutils literal notranslate"><span class="pre">lorax-composer.service</span></code></p>
</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.
<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><p>Restart the <code class="docutils literal notranslate"><span class="pre">lorax-composer.service</span></code></p></li>
<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.
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>
</li>
type will not be available.</p></li>
</ul>
<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

View File

@ -8,7 +8,7 @@
<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">
28.14.33
28.14.42
</div>
@ -97,6 +97,10 @@
</ul>
</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="#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>
@ -180,14 +184,11 @@
<div class="section" id="lorax">
<h1>Lorax<a class="headerlink" href="#lorax" title="Permalink to this headline"></a></h1>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<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>
</tr>
</tbody>
</table>
<dl class="field-list simple">
<dt class="field-odd">Authors</dt>
<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>
</dd>
</dl>
<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
<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>
<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>
<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>
<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>
@ -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">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">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>
</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>OUTPUTDIR</kbd></td>
<td>Output directory</td></tr>
</tbody>
</table>
<dl class="option-list">
<dt><kbd>OUTPUTDIR</kbd></dt>
<dd><p>Output directory</p>
</dd>
</dl>
</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>-V</kbd></td>
<td>show programs version number and exit</td></tr>
</tbody>
</table>
<dl class="option-list">
<dt><kbd>-V</kbd></dt>
<dd><p>show programs version number and exit</p>
</dd>
</dl>
</div>
<div class="section" id="required arguments">
<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">
<col class="option" />
<col class="description" />
<tbody valign="top">
<tr><td class="option-group">
<kbd>-p, --product</kbd></td>
<td>product name</td></tr>
<tr><td class="option-group">
<kbd>-v, --version</kbd></td>
<td>version identifier</td></tr>
<tr><td class="option-group">
<kbd>-r, --release</kbd></td>
<td>release information</td></tr>
<tr><td class="option-group">
<kbd>-s, --source</kbd></td>
<td><p class="first">source repository (may be listed multiple times)</p>
<p class="last">Default: []</p>
</td></tr>
<tr><td class="option-group">
<kbd>--repo</kbd></td>
<td><p class="first">source dnf repository file</p>
<p class="last">Default: []</p>
</td></tr>
</tbody>
</table>
<dl class="option-list">
<dt><kbd>-p, --product</kbd></dt>
<dd><p>product name</p>
</dd>
<dt><kbd>-v, --version</kbd></dt>
<dd><p>version identifier</p>
</dd>
<dt><kbd>-r, --release</kbd></dt>
<dd><p>release information</p>
</dd>
<dt><kbd>-s, --source</kbd></dt>
<dd><p>source repository (may be listed multiple times)</p>
<p>Default: []</p>
</dd>
<dt><kbd>--repo</kbd></dt>
<dd><p>source dnf repository file</p>
<p>Default: []</p>
</dd>
</dl>
</div>
<div class="section" id="Named Arguments_repeat1">
<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">
<col class="option" />
<col class="description" />
<tbody valign="top">
<tr><td class="option-group" colspan="2">
<kbd>-m, --mirrorlist</kbd></td>
</tr>
<tr><td>&#160;</td><td><p class="first">mirrorlist repository (may be listed multiple times)</p>
<p class="last">Default: []</p>
</td></tr>
<tr><td class="option-group">
<kbd>-t, --variant</kbd></td>
<td><p class="first">variant name</p>
<p class="last">Default: “”</p>
</td></tr>
<tr><td class="option-group">
<kbd>-b, --bugurl</kbd></td>
<td><p class="first">bug reporting URL for the product</p>
<p class="last">Default: “your distribution provided bug reporting tool”</p>
</td></tr>
<tr><td class="option-group">
<kbd>--isfinal</kbd></td>
<td>Default: False</td></tr>
<tr><td class="option-group">
<kbd>-c, --config</kbd></td>
<td><p class="first">config file</p>
<p class="last">Default: “/etc/lorax/lorax.conf”</p>
</td></tr>
<tr><td class="option-group">
<kbd>--proxy</kbd></td>
<td>repo proxy url:port</td></tr>
<tr><td class="option-group" colspan="2">
<kbd>-i, --installpkgs</kbd></td>
</tr>
<tr><td>&#160;</td><td><p class="first">package glob to install before runtime-install.tmpl runs. (may be listed multiple times)</p>
<p class="last">Default: []</p>
</td></tr>
<tr><td class="option-group" colspan="2">
<kbd>-e, --excludepkgs</kbd></td>
</tr>
<tr><td>&#160;</td><td><p class="first">package glob to remove before runtime-install.tmpl runs. (may be listed multiple times)</p>
<p class="last">Default: []</p>
</td></tr>
<tr><td class="option-group">
<kbd>--buildarch</kbd></td>
<td>build architecture</td></tr>
<tr><td class="option-group">
<kbd>--volid</kbd></td>
<td>volume id</td></tr>
<tr><td class="option-group">
<kbd>--macboot</kbd></td>
<td><p class="first">Make the iso bootable on UEFI based Mac systems</p>
<p class="last">Default: True</p>
</td></tr>
<tr><td class="option-group">
<kbd>--nomacboot</kbd></td>
<td><p class="first">Do not create a Mac bootable iso</p>
<p class="last">Default: False</p>
</td></tr>
<tr><td class="option-group">
<kbd>--noupgrade</kbd></td>
<td>Default: True</td></tr>
<tr><td class="option-group">
<kbd>--logfile</kbd></td>
<td><p class="first">Path to logfile</p>
<p class="last">Default: ./lorax.log</p>
</td></tr>
<tr><td class="option-group">
<kbd>--tmp</kbd></td>
<td><p class="first">Top level temporary directory</p>
<p class="last">Default: “/var/tmp/lorax”</p>
</td></tr>
<tr><td class="option-group">
<kbd>--cachedir</kbd></td>
<td>DNF cache directory. Default is a temporary dir.</td></tr>
<tr><td class="option-group">
<kbd>--workdir</kbd></td>
<td>Work directory, overrides tmp. Default is a temporary dir under /var/tmp/lorax</td></tr>
<tr><td class="option-group">
<kbd>--force</kbd></td>
<td><p class="first">Run even when the destination directory exists</p>
<p class="last">Default: False</p>
</td></tr>
<tr><td class="option-group">
<kbd>--add-template</kbd></td>
<td><p class="first">Additional template for runtime image</p>
<p class="last">Default: []</p>
</td></tr>
<tr><td class="option-group" colspan="2">
<kbd>--add-template-var</kbd></td>
</tr>
<tr><td>&#160;</td><td><p class="first">Set variable for runtime image template</p>
<p class="last">Default: []</p>
</td></tr>
<tr><td class="option-group" colspan="2">
<kbd>--add-arch-template</kbd></td>
</tr>
<tr><td>&#160;</td><td><p class="first">Additional template for architecture-specific image</p>
<p class="last">Default: []</p>
</td></tr>
<tr><td class="option-group" colspan="2">
<kbd>--add-arch-template-var</kbd></td>
</tr>
<tr><td>&#160;</td><td><p class="first">Set variable for architecture-specific image</p>
<p class="last">Default: []</p>
</td></tr>
<tr><td class="option-group">
<kbd>--noverify</kbd></td>
<td><p class="first">Do not verify the install root</p>
<p class="last">Default: True</p>
</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>
<dl class="option-list">
<dt><kbd>-m, --mirrorlist</kbd></dt>
<dd><p>mirrorlist repository (may be listed multiple times)</p>
<p>Default: []</p>
</dd>
<dt><kbd>-t, --variant</kbd></dt>
<dd><p>variant name</p>
<p>Default: “”</p>
</dd>
<dt><kbd>-b, --bugurl</kbd></dt>
<dd><p>bug reporting URL for the product</p>
<p>Default: “your distribution provided bug reporting tool”</p>
</dd>
<dt><kbd>--isfinal</kbd></dt>
<dd><p>Default: False</p>
</dd>
<dt><kbd>-c, --config</kbd></dt>
<dd><p>config file</p>
<p>Default: “/etc/lorax/lorax.conf”</p>
</dd>
<dt><kbd>--proxy</kbd></dt>
<dd><p>repo proxy url:port</p>
</dd>
<dt><kbd>-i, --installpkgs</kbd></dt>
<dd><p>package glob to install before runtime-install.tmpl runs. (may be listed multiple times)</p>
<p>Default: []</p>
</dd>
<dt><kbd>-e, --excludepkgs</kbd></dt>
<dd><p>package glob to remove before runtime-install.tmpl runs. (may be listed multiple times)</p>
<p>Default: []</p>
</dd>
<dt><kbd>--buildarch</kbd></dt>
<dd><p>build architecture</p>
</dd>
<dt><kbd>--volid</kbd></dt>
<dd><p>volume id</p>
</dd>
<dt><kbd>--macboot</kbd></dt>
<dd><p>Make the iso bootable on UEFI based Mac systems</p>
<p>Default: True</p>
</dd>
<dt><kbd>--nomacboot</kbd></dt>
<dd><p>Do not create a Mac bootable iso</p>
<p>Default: False</p>
</dd>
<dt><kbd>--noupgrade</kbd></dt>
<dd><p>Default: True</p>
</dd>
<dt><kbd>--logfile</kbd></dt>
<dd><p>Path to logfile</p>
<p>Default: ./lorax.log</p>
</dd>
<dt><kbd>--tmp</kbd></dt>
<dd><p>Top level temporary directory</p>
<p>Default: “/var/tmp/lorax”</p>
</dd>
<dt><kbd>--cachedir</kbd></dt>
<dd><p>DNF cache directory. Default is a temporary dir.</p>
</dd>
<dt><kbd>--workdir</kbd></dt>
<dd><p>Work directory, overrides tmp. Default is a temporary dir under /var/tmp/lorax</p>
</dd>
<dt><kbd>--force</kbd></dt>
<dd><p>Run even when the destination directory exists</p>
<p>Default: False</p>
</dd>
<dt><kbd>--add-template</kbd></dt>
<dd><p>Additional template for runtime image</p>
<p>Default: []</p>
</dd>
<dt><kbd>--add-template-var</kbd></dt>
<dd><p>Set variable for runtime image template</p>
<p>Default: []</p>
</dd>
<dt><kbd>--add-arch-template</kbd></dt>
<dd><p>Additional template for architecture-specific image</p>
<p>Default: []</p>
</dd>
<dt><kbd>--add-arch-template-var</kbd></dt>
<dd><p>Set variable for architecture-specific image</p>
<p>Default: []</p>
</dd>
<dt><kbd>--noverify</kbd></dt>
<dd><p>Do not verify the install root</p>
<p>Default: True</p>
</dd>
<dt><kbd>--sharedir</kbd></dt>
<dd><p>Directory containing all the templates. Overrides config file sharedir</p>
</dd>
<dt><kbd>--enablerepo</kbd></dt>
<dd><p>Names of repos to enable</p>
<p>Default: []</p>
</dd>
<dt><kbd>--disablerepo</kbd></dt>
<dd><p>Names of repos to disable</p>
<p>Default: []</p>
</dd>
<dt><kbd>--rootfs-size</kbd></dt>
<dd><p>Size of root filesystem in GiB. Defaults to 3.</p>
<p>Default: 3</p>
</dd>
<dt><kbd>--noverifyssl</kbd></dt>
<dd><p>Do not verify SSL certificates</p>
<p>Default: False</p>
</dd>
<dt><kbd>--skip-branding</kbd></dt>
<dd><p>Disable automatic branding package selection. Use installpkgs to add custom branding.</p>
<p>Default: False</p>
</dd>
</dl>
</div>
<div class="section" id="dracut arguments">
<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">
<col class="option" />
<col class="description" />
<tbody valign="top">
<tr><td class="option-group">
<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>
<dl class="option-list">
<dt><kbd>--dracut-arg</kbd></dt>
<dd><p>Argument to pass to dracut when rebuilding the initramfs. Pass this once for each argument. NOTE: this overrides the default. (default: )</p>
</dd>
</dl>
</div>
</div>
<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
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 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">
<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
@ -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
installation. A number of template commands are used here:</p>
<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><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><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><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><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><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><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><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><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><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.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><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><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><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><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><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><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><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><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><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>
</div>
<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
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">
<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
not really used. eg. sound support.</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>
not really used. eg. sound support.</p></li>
<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
remove everything except a select few.</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>
Removes kernel modules</li>
remove everything except a select few.</p></li>
<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</p></li>
</ul>
</div>
<div class="section" id="the-squashfs-filesystem">

View File

@ -8,7 +8,7 @@
<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">
28.14.33
28.14.42
</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.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.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.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>

Binary file not shown.

View File

@ -8,7 +8,7 @@
<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">
28.14.33
28.14.42
</div>

View File

@ -8,7 +8,7 @@
<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">
28.14.33
28.14.42
</div>
@ -256,6 +256,11 @@
<td>&#160;&#160;&#160;
<a href="pylorax.html#module-pylorax.discinfo"><code class="xref">pylorax.discinfo</code></a></td><td>
<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">
<td></td>
<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,8 @@
<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>
@ -25,11 +26,11 @@
<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/searchtools.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" />
@ -59,7 +60,7 @@
<div class="version">
28.14.33
28.14.42
</div>

File diff suppressed because one or more lines are too long