lorax: Add --skip-branding cmdline argument
Also document how branding currently works. See docs/lorax.rst Resolves: rhbz#1826479
This commit is contained in:
parent
1b636636c6
commit
db8f198304
@ -54,6 +54,29 @@ Under ``./results/`` will be the release tree files: .discinfo, .treeinfo, every
|
|||||||
goes onto the boot.iso, the pxeboot directory, and the boot.iso under ``./images/``.
|
goes onto the boot.iso, the pxeboot directory, and the boot.iso under ``./images/``.
|
||||||
|
|
||||||
|
|
||||||
|
Branding
|
||||||
|
--------
|
||||||
|
|
||||||
|
By default lorax will search for the first package that provides ``system-release``
|
||||||
|
that doesn't start with ``generic-`` and will install it. It then selects a
|
||||||
|
corresponding logo package by using the first part of the system-release package and
|
||||||
|
appending ``-logos`` to it. eg. fedora-release and fedora-logos.
|
||||||
|
|
||||||
|
Custom Branding
|
||||||
|
~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
If ``--skip-branding`` is passed to lorax it will skip selecting the
|
||||||
|
``system-release``, and logos packages and leave it up to the user to pass any
|
||||||
|
branding related packages to lorax using ``--installpkgs``. When using
|
||||||
|
``skip-branding`` you must make sure that you provide all of the expected files,
|
||||||
|
otherwise Anaconda may not work as expected. See the contents of ``fedora-release``
|
||||||
|
and ``fedora-logos`` for examples of what to include.
|
||||||
|
|
||||||
|
Note that this does not prevent something else in the dependency tree from
|
||||||
|
causing these packages to be included. Using ``--excludepkgs`` may help if they
|
||||||
|
are unexpectedly included.
|
||||||
|
|
||||||
|
|
||||||
Running inside of mock
|
Running inside of mock
|
||||||
----------------------
|
----------------------
|
||||||
|
|
||||||
|
@ -186,7 +186,8 @@ class Lorax(BaseLoraxClass):
|
|||||||
add_arch_templates=None,
|
add_arch_templates=None,
|
||||||
add_arch_template_vars=None,
|
add_arch_template_vars=None,
|
||||||
verify=True,
|
verify=True,
|
||||||
user_dracut_args=None):
|
user_dracut_args=None,
|
||||||
|
skip_branding=False):
|
||||||
|
|
||||||
assert self._configured
|
assert self._configured
|
||||||
|
|
||||||
@ -266,7 +267,8 @@ class Lorax(BaseLoraxClass):
|
|||||||
installpkgs=installpkgs,
|
installpkgs=installpkgs,
|
||||||
excludepkgs=excludepkgs,
|
excludepkgs=excludepkgs,
|
||||||
add_templates=add_templates,
|
add_templates=add_templates,
|
||||||
add_template_vars=add_template_vars)
|
add_template_vars=add_template_vars,
|
||||||
|
skip_branding=skip_branding)
|
||||||
|
|
||||||
logger.info("installing runtime packages")
|
logger.info("installing runtime packages")
|
||||||
rb.install()
|
rb.install()
|
||||||
|
@ -107,6 +107,8 @@ def lorax_parser(dracut_default=""):
|
|||||||
help="Size of root filesystem in GiB. Defaults to 3.")
|
help="Size of root filesystem in GiB. Defaults to 3.")
|
||||||
optional.add_argument("--noverifyssl", action="store_true", default=False,
|
optional.add_argument("--noverifyssl", action="store_true", default=False,
|
||||||
help="Do not verify SSL certificates")
|
help="Do not verify SSL certificates")
|
||||||
|
optional.add_argument("--skip-branding", action="store_true", default=False,
|
||||||
|
help="Disable automatic branding package selection. Use --installpkgs to add custom branding.")
|
||||||
|
|
||||||
# dracut arguments
|
# dracut arguments
|
||||||
dracut_group = parser.add_argument_group("dracut arguments")
|
dracut_group = parser.add_argument_group("dracut arguments")
|
||||||
|
@ -72,7 +72,8 @@ class RuntimeBuilder(object):
|
|||||||
def __init__(self, product, arch, dbo, templatedir=None,
|
def __init__(self, product, arch, dbo, templatedir=None,
|
||||||
installpkgs=None, excludepkgs=None,
|
installpkgs=None, excludepkgs=None,
|
||||||
add_templates=None,
|
add_templates=None,
|
||||||
add_template_vars=None):
|
add_template_vars=None,
|
||||||
|
skip_branding=False):
|
||||||
root = dbo.conf.installroot
|
root = dbo.conf.installroot
|
||||||
# use a copy of product so we can modify it locally
|
# use a copy of product so we can modify it locally
|
||||||
product = product.copy()
|
product = product.copy()
|
||||||
@ -88,8 +89,18 @@ class RuntimeBuilder(object):
|
|||||||
self._excludepkgs = excludepkgs or []
|
self._excludepkgs = excludepkgs or []
|
||||||
self._runner.defaults = self.vars
|
self._runner.defaults = self.vars
|
||||||
self.dbo.reset()
|
self.dbo.reset()
|
||||||
|
self._skip_branding = skip_branding
|
||||||
|
|
||||||
def _install_branding(self):
|
def _install_branding(self):
|
||||||
|
"""Select the branding from the available 'system-release' packages
|
||||||
|
The *best* way to control this is to have a single package in the repo provide 'system-release'
|
||||||
|
When there are more than 1 package it will:
|
||||||
|
- Make a list of the available packages
|
||||||
|
- If there are one or more non-generic packages, use the first one after sorting
|
||||||
|
"""
|
||||||
|
if self._skip_branding:
|
||||||
|
return
|
||||||
|
|
||||||
release = None
|
release = None
|
||||||
q = self.dbo.sack.query()
|
q = self.dbo.sack.query()
|
||||||
a = q.available()
|
a = q.available()
|
||||||
|
@ -192,7 +192,8 @@ def main():
|
|||||||
add_arch_templates=opts.add_arch_templates,
|
add_arch_templates=opts.add_arch_templates,
|
||||||
add_arch_template_vars=parsed_add_arch_template_vars,
|
add_arch_template_vars=parsed_add_arch_template_vars,
|
||||||
remove_temp=True, verify=opts.verify,
|
remove_temp=True, verify=opts.verify,
|
||||||
user_dracut_args=opts.dracut_args)
|
user_dracut_args=opts.dracut_args,
|
||||||
|
skip_branding=opts.skip_branding)
|
||||||
|
|
||||||
# Release the lock on the tempdir
|
# Release the lock on the tempdir
|
||||||
os.close(dir_fd)
|
os.close(dir_fd)
|
||||||
|
Loading…
Reference in New Issue
Block a user