Compare commits

..

137 Commits

Author SHA1 Message Date
Brian C. Lane
3958d2aa8b Automatic commit of package [lorax] release [36.9-1].
Created by command:

/usr/bin/tito tag
2022-02-28 14:33:58 -08:00
Vendula Poncova
fa47a11197 Don't move the restart-anaconda file
The file will be no longer provided by Anaconda.
2022-02-23 09:53:21 -08:00
Brian C. Lane
4d10a0ea0c Automatic commit of package [lorax] release [36.8-1].
Created by command:

/usr/bin/tito tag
2022-02-16 11:58:51 -08:00
Brian C. Lane
4e956ff173 runtime-cleanup: Remove ncurses package
Remove the ncurses package -- on ppc64le and s390x it was pulled in and
the library check would fail because the library files have been
removed.
2022-02-16 11:22:26 -08:00
Brian C. Lane
58e6ca5d7b Automatic commit of package [lorax] release [36.7-1].
Created by command:

/usr/bin/tito tag
2022-02-14 14:56:59 -08:00
Brian C. Lane
9536415907 postinstall: Restore reproducible build timestamps on /usr/share/fonts 2022-02-14 11:27:13 -08:00
Brian C. Lane
c9e90ec0b2 tests: Fix the image minimizer test dnf usage
If the host dnf repos contain $releasever then using --installroot will
fail because it tries to use a rpmdb in the installroot, which starts
out empty. Passing --releasever=/ will use the releasever from the host.
2022-02-14 10:07:37 -08:00
Adam Williamson
105e6891f6 runtime-cleanup: drop kernel drivers/iio
This is "industrial input/output". I'm *pretty* sure we don't
need to support industrial magnetometers and humidity sensors
during installation.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2022-02-14 08:40:41 -08:00
Adam Williamson
4581039da8 runtime-cleanup: drop gallium-pipe drivers from mesa-dri-drivers
per airlied, these are mainly intended for compute (OpenCL), they
may also be used by vaapi/vdpau (video playback acceleration),
but they're definitely not used for regular graphics.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2022-02-14 08:40:41 -08:00
Adam Williamson
ddbb68f61e runtime-cleanup: drop yelp's local MathJax library copy
It's not needed for displaying the anaconda help. It doesn't have
any math in it.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2022-02-14 08:40:37 -08:00
Adam Williamson
57675826cd runtime-cleanup: drop eapol_test from wpa_supplicant
This appears to be intended for testing and should not be needed
for setting up wifi connections in the installer.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2022-02-14 08:40:06 -08:00
Adam Williamson
80ee534afc runtime-cleanup: drop /usr/bin/cyrusbdb2current
Never going to be used in the installer environment, and it's over
1M.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2022-02-14 08:40:06 -08:00
Adam Williamson
2cb1c84600 runtime-cleanup: drop systemd-analyze
It's over 1M and not really essential. We might occasionally
want to use it to analyze boot of an installer image, but we
could just spin an image that includes it when we want to do
this.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2022-02-14 08:40:06 -08:00
Adam Williamson
918cf2c29d runtime-cleanup: drop mtools and glibc-gconv-extra
AFAICS, this dep chain (syslinux->mtools->glibc-gconv-extra) is
the only reason glibc-gconv-extra is in the installer env. It's
quite large (8M). syslinux's dep on mtools seems to be due to
(one of) its installer(s) using mtools, but I don't think we
ever run that from the installer env; we only pull syslinux into
it to set up bootloader stuff for the installer image itself,
which happens in x86.tmpl and doesn't involve actually running
a syslinux installer, just copying files around.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2022-02-14 08:40:06 -08:00
Adam Williamson
7d45b51ad8 runtime-cleanup: drop guile22's ccache
As best I can tell, guile22 is only in the installer env because
we include gdb and gdb depends on the libraries from it. gdb's
dep is for guile scripting support, AIUI. I don't think any kind
of libreport or manual gdb debugging we'd do in the installer env
would need that support, and even if it does, the ccache does
seem to be a cache - docs say if the files are not present,
they'll be generated on the fly from the .scm format sources in
/usr/share/guile/2.2. So I think it should be safe to ditch this
cache, which is large (it takes up ~38M uncompressed).

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2022-02-14 08:40:06 -08:00
Adam Williamson
94ef6ed036 runtime-cleanup: fix warnings from old or changed packages
This addresses most "no files matched!" and "no files to remove!"
errors in current F36/Rawhide. They mostly relate to packages
that are no longer pulled in at all, or whose layout has changed.
The entries for audit haven't been fixed for the /usr merge years
ago. In linux-firmware, all files have been xz-compressed at some
point, so the entries were not matching any more. The usbdux/
subdir contains only sources for the actual firmwares that are a
level above, and we don't include those in the package any more;
the actual firmwares are useless in the installer env, so this
removes them. util-linux was split into util-linux and
util-linux-core, so we have to add an entry for util-linux-core
and move the relevant excludes to that entry.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2022-02-10 17:26:57 -08:00
Adam Williamson
d39a5f625e runtime-cleanup: drop Italic from google-noto-sans-vf-fonts
Prior to bc46724, we dropped several variants of DejaVu to save
space, including DejaVuSans-Oblique.ttf, to which I think this
is the equivalent. I believe the idea is that it's not worth
half a megabyte just to get tuned rendering of italics in the
installer environment (where they're rarely used anyway); AIUI
in the absence of a specific oblique/italic font face, freetype
will produce one by slanting the regular face.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2022-02-10 17:26:08 -08:00
Adam Williamson
ea0c6c3b3a runtime-install: drop some unnecessary font packages
The dropped google-noto packages contain fonts of scripts for
languages that the installer is not translated into. Most are
obvious, but for the record, "lao" is for the script and
language also called Lao; "thaana" is for the script Thaana,
used for the language Maldivian.

sil-abyssinica-fonts was an older set of Ethiopic fonts used for
e.g. Amharic; we now prefer google-noto-sans-ethiopic-vf-fonts,
the installer environment does not need both.

Similarly, sil-scheherazade-fonts covers a similar range to
google-noto-sans-arabic-vf-fonts and paktype-naskh-basic-fonts,
which are now preferred.

xorg-x11-fonts-misc contains bitmap fonts for some non-Latin
scripts. I'm fairly sure nothing in the installer environment
should need bitmap fonts any more.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2022-02-10 17:26:08 -08:00
Brian C. Lane
03da17fb37 Automatic commit of package [lorax] release [36.6-1].
Created by command:

/usr/bin/tito tag
2022-02-04 08:41:25 -08:00
Brian C. Lane
d7a845c2d4 mkksiso: Fix check for unsupported arch error
An unsupported arch isn't an error, just skip running MdCdbootImg on
non-s390x systems.
2022-02-04 08:40:19 -08:00
Brian C. Lane
774e44060a Automatic commit of package [lorax] release [36.5-1].
Created by command:

/usr/bin/tito tag
2022-02-03 16:06:10 -08:00
Brian C. Lane
55eee7d22d mkksiso: Improve debug message about unsupported arch 2022-02-03 15:44:44 -08:00
Brian C. Lane
e1092c0ee9 mkksiso: Fix the order of the ppc mkisofs command 2022-02-03 15:43:53 -08:00
Brian C. Lane
eb4866c73d mkksiso: mkfsiso argument order matters
Fix the order on ppc64le so that the iso will boot properly.
2022-02-03 15:43:53 -08:00
Brian C. Lane
6b2c4d1a88 mkksiso: Add kickstart to s390x cdboot.prm
And regenerate the cdboot.img
2022-02-03 15:43:22 -08:00
Adam Williamson
3c66730d7e cleanup: handle RPM database move to /usr
In F36, the RPM database is being moved from /var/lib/rpm to
/usr/lib/sysimage/rpm:

https://fedoraproject.org/wiki/Changes/RelocateRPMToUsr
https://bugzilla.redhat.com/show_bug.cgi?id=2042099

So we need to empty that location in runtime-cleanup. Seems fine
to just list both locations, for a while at least.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2022-02-03 15:41:39 -08:00
Akira TAGOH
8c61a4c5b3 Install the variable font of the Cantarell font
https://bugzilla.redhat.com/show_bug.cgi?id=2045012
2022-01-27 11:29:10 -08:00
Akira TAGOH
bc46724b1d Update the template for f36 Change proposal:
https://fedoraproject.org/wiki/Changes/DefaultToNotoFonts
2022-01-21 09:59:30 -08:00
Parag Nemade
2dde5eb55f Update Malayalam font to its new renamed package name rit-meera-new-fonts
Signed-off-by: Parag Nemade <pnemade@fedoraproject.org>
2022-01-21 09:03:29 -08:00
Brian C. Lane
000667fbf5 Enable sftp when using inst.sshd
scp in openssh 8.7 will change to use sftp protocol. See
https://github.com/openssh/openssh-portable/pull/194 for details.

This enables the sshd internal-sftp implementation so that newer scp
versions will continue to work as expected. Note that the sshd service
is only running during the installation if inst.sshd is passed on the
kernel cmdline.

Resolves: rhbz#2040770
2022-01-18 09:34:45 -08:00
Brian C. Lane
152b503042 Add inst.rngd cmdline option
rngd should no long be needed, recent kernels have enough entropy out of
the box. This leaves it in the boot.iso but only enables it if inst.rngd
is passed on the kernel cmdline.

Resolves: rhbz#2028720
2022-01-12 10:31:25 -08:00
Brian C. Lane
debfb498e3 docs: Update docs for image-minimizer 2021-12-21 13:23:33 -08:00
Brian C. Lane
cc90406a58 tests: Add tests for image-minimizer 2021-12-21 13:18:23 -08:00
Brian C. Lane
ab9068c2d0 image-minimizer: Check for missing root directory 2021-12-21 13:17:37 -08:00
Brian C. Lane
f8af828a80 image-minimizer: Fix utf8 error and add docs
rpm returns a header that is a string, no need to call decode() on it.

Also added documentation and a manpage for image-minimizer
2021-12-20 16:33:19 -08:00
Brian C. Lane
d692ce3662 Automatic commit of package [lorax] release [36.4-1].
Created by command:

/usr/bin/tito tag
2021-12-14 13:36:40 -08:00
Adam Williamson
22c3e76d6c cleanup: remove binaries from lilv
Since we're leaving pipewire-libs in, it'll still pull in liblilv
from 0.3.41 onwards. Currently liblilv is in the same package as
some binaries which we don't need, and one actually requires the
removed libsndfile, so we need to trim it.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2021-12-13 13:57:31 -08:00
Adam Williamson
4a678d6670 runtime-cleanup: remove pipewire-related packages
We aim to remove all sound support from the installer root, but
this was never updated for Pipewire. This just started causing
compose failures because of a dep chain from pipewire to lilv.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2021-12-13 11:39:58 -08:00
Brian C. Lane
b9a3f8a788 New lorax documentation - 36.3 2021-12-10 16:02:04 -08:00
Brian C. Lane
7c6e3e6800 Automatic commit of package [lorax] release [36.3-1].
Created by command:

/usr/bin/tito tag
2021-12-09 09:57:16 -08:00
Brian C. Lane
a01f62def7 mkksiso: Check the length of the filenames
With -joliet-long it allows longer filenames, but silently drops the
ones longer than 253 characters. Check for this and raise an error.

Related: rhbz#2028048
2021-12-09 09:33:24 -08:00
Brian C. Lane
506c9a18ff mkksiso: Check the iso's arch against the host's
mkksiso cannot be run on an iso from another arch, some of the files and
tools are arch specific. Catch this problem and tell the user that the
iso doesn't match the host's architecture.

Related: rhbz#2028048
2021-12-09 09:33:24 -08:00
Brian C. Lane
f4e0adc090 mkksiso: Add missing implantisomd5 tool requirements
Related: rhbz#2028048
2021-12-07 11:19:48 -08:00
Brian C. Lane
8532b683a4 mkksiso: Raise error if no volume id is found
It is possible the source iso doesn't have an id, or there is an errorr
reading it. Raise an error when this happens to make it more clear what
the problem is.

Related: rhbz#2028048
2021-12-07 10:52:02 -08:00
Brian C. Lane
710e65fa6f mount: Add s390x support to IsoMountopoint
kernel and initrd are under images/ on the iso.

Resolves: rhbz#2028089
2021-12-07 10:33:11 -08:00
Brian C. Lane
223f1755ec mkksiso: Skip mkefiboot for non-UEFI isos
Resolves: rhbz#2028097
2021-12-06 16:13:27 -08:00
Brian C. Lane
b3876337c3 mkksiso: Add -joliet-long
DVD's or user content may use filenames > 64 characters. This increases
the limit to 103.

Resolves: rhbz#2028044
2021-12-06 15:48:37 -08:00
Brian C. Lane
ec0eafacd9 mkksiso: Return 1 on errors
Resolves: rhbz#2028048
2021-12-06 14:57:41 -08:00
Brian C. Lane
6160d340c4 Fix monitor problem with split UTF8 characters
Sometimes, depending on the buffering, or length of data being received,
the end of the data could be the 1st byte or so of a UTF8 character.
This would cause a crash when trying to decode the raw data buffer.

This switches it to only decode once a full line has been found.
It also adds tests for the LogMonitor class.
2021-11-17 15:37:59 -08:00
Brian C. Lane
74128fcd59 Automatic commit of package [lorax] release [36.2-1].
Created by command:

/usr/bin/tito tag
2021-11-10 15:44:04 -08:00
Brian C. Lane
e144c69535 Remove memtest86+ from example kickstarts 2021-11-10 08:52:58 -08:00
Brian C. Lane
f2ae286739 fedora-livemedia: Update example kickstart 2021-11-10 08:51:36 -08:00
Brian C. Lane
c4aba2e47f mount: Switch to using pycdio instead of pycdlib
Also add a root only test for IsoMountpoint.
2021-11-09 12:02:54 -08:00
Brian C. Lane
87f9f77e24 Move default releasever into pylorax DEFAULT_RELEASEVER
This makes it easier to update in one place, and hopefully not forget
for new releases.

Also update default platform id to f36.
2021-11-08 14:41:26 -08:00
Brian C. Lane
5d9830e88d runtime-postinstall: Drop raidstart/stop stub code
Anaconda hasn't included these since Fedora 10. Stop trying to install
them.
2021-11-08 14:41:26 -08:00
Brian C. Lane
7a1de81b09 runtime-install: Fix grub2 epoch, it is 1 not 0 2021-11-05 16:07:59 -07:00
Adam Williamson
5286e4d917 Update runtime-install/cleanup for Marvell Prestera fw split
Marvell Prestera firmware has been split into its own subpackage,
so instead of stripping the files from linux-firmware, exclude
the package from the globed install command.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2021-11-01 09:12:10 -07:00
Brian C. Lane
1e66ac669c Automatic commit of package [lorax] release [36.1-1].
Created by command:

/usr/bin/tito tag
2021-10-28 14:27:46 -07:00
Brian C. Lane
c811ba98d4 dnfbase: Handle defaults better 2021-10-28 14:19:50 -07:00
Brian C. Lane
1adbeef14c ltmpl: Add version compare support to installpkg
This adds support for enforcing version requirements on installed
packages. See the documentation in ltmpl.installpkg for details.
2021-10-28 14:19:50 -07:00
Brian C. Lane
96fca67621 Automatic commit of package [lorax] release [36.0-1].
Created by command:

/usr/bin/tito tag --keep-version
2021-10-11 15:42:24 -07:00
Brian C. Lane
a9451842eb New lorax documentation - 36.0 2021-10-11 15:40:42 -07:00
Brian C. Lane
6451060bda docs: Remove logging command from examples
Fixes #1171
2021-10-11 14:31:08 -07:00
Adam Williamson
69c15c9bbe runtime-install: exclude liquidio and netronome firmwares
As Peter Robinson explains here:
https://bugzilla.redhat.com/show_bug.cgi?id=2011615#c3
these are not useful, as the devices they're for do not support
netinst-style deployment.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2021-10-07 15:15:56 -07:00
Adam Williamson
fbb7c5aeef runtime-cleanup: drop Marvell Prestera firmware files
These add up to 26MB and they are for high-end switches, unlikely
targets for network installs.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2021-10-07 15:15:56 -07:00
Adam Williamson
6fc2648121 runtime-cleanup: drop some Qualcomm smartphone firmwares
These firmwares are for Qualcomm smartphone chipsets (SM845 and
SM8250). Don't think they're any use in network install images.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2021-10-07 15:15:56 -07:00
Brian C. Lane
f783ff77d4 Fix pylint warnings about string formatting
and one about unused exception value.
2021-09-27 09:08:37 -07:00
Brian C. Lane
49ff2c7d5c tests: Ignore new pylint warnings
Newer versions of pylint complain about u'' not being needed and using
open without setting encoding. These are valid warnings, but do not
effect the operation of lorax so they have been added to the
FalsePositive list in runpylint.py
2021-09-27 09:06:48 -07:00
Brian C. Lane
a3810024ac Add fstrim to disk and filesystem image creation
Tests show that it may reduce disk usage a bit vs. just doing the
fallocate --dig-holes.
2021-09-24 15:11:44 -07:00
Brian C. Lane
bd9197c76e Automatic commit of package [lorax] release [35.7-1].
Created by command:

/usr/bin/tito tag
2021-09-07 15:16:53 -07:00
Brian C. Lane
1843f8b0e0 templates: Remove memtest86+
It no longer works and there is currently no good replacement.

See https://pagure.io/fedora-comps/pull-request/676
2021-09-07 11:22:30 -07:00
Brian C. Lane
d3bd740254 Automatic commit of package [lorax] release [35.6-1].
Created by command:

/usr/bin/tito tag
2021-07-08 16:12:55 -07:00
Brian C. Lane
fa2e465d51 Install unicode.pf2 from new directory
grub2-2.06-3 changes where the unicode.pf2 font file is stored.
This changes the efi.tmpl to install it from the new location, which
means that it depends on grub2-2.06-3, but there is no way to express
this in the runtime-install.tmpl so if you see a failure like:

2021-07-08 16:10:05,586:   OSError: nothing matching /var/tmp/lorax/lorax.t80f74er/installroot/boot/grub2/fonts/unicode.pf2 in /

it means the new version of grub2 wasn't in the repos you used when
running lorax.

Fixes #1165
2021-07-08 16:10:10 -07:00
Brian C. Lane
de2c88883a Makefile: Use sudo to fix ownership of docs
rootless podman leaves the files owned by the container UID, this
requires sudo to chown them back to the user.
2021-07-06 15:36:59 -07:00
Brian C. Lane
0b2ce51d96 Makefile: Make sure container is built before docs 2021-06-30 13:14:14 -07:00
Brian C. Lane
3f04cf9b59 Makefile: Add local-srpm target to create a .src.rpm from HEAD 2021-06-29 15:45:59 -07:00
Brian C. Lane
5dfa95d769 mkksiso: cmdline should default to empty string 2021-06-24 16:14:19 -07:00
Brian C. Lane
3801c802c5 runtime-install: Remove gfs2-utils
It is not needed on the installer media. Also remove references from
runtime-cleanup.tmpl

Related: rhbz#1975378
2021-06-23 09:15:26 -07:00
Jiri Kucera
35cb8f71a7 mount.py: Fix docstring 2021-06-15 15:50:38 -07:00
Brian C. Lane
fab286e785 Automatic commit of package [lorax] release [35.5-1].
Created by command:

/usr/bin/tito tag
2021-06-11 10:19:38 -07:00
Brian C. Lane
ea72ace122 pylorax: Fix mksparse ftruncate size handling
Make sure that os.ftruncate() is called with an int() size. Before python
3.10 it used to handle this internally, but in 3.9 it was deprecated and
in 3.10 it now raises an error:

    TypeError: 'float' object cannot be interpreted as an integer

This makes sure that the size is truncated to an int(). The value is in
bytes, so truncation does not lose anything.
2021-06-11 09:28:16 -07:00
Brian C. Lane
0748dbe28c Automatic commit of package [lorax] release [35.4-1].
Created by command:

/usr/bin/tito tag
2021-06-10 10:57:46 -07:00
Brian C. Lane
5c0c1a0b84 livemedia-creator: Check for mkfs.hfsplus
mkfs.hfsplus may not be installed so instead of crashing near the end of
the install check for it and print a useful error message.

Resolves: rhbz#1969743
2021-06-10 10:47:45 -07:00
Zbigniew Jędrzejewski-Szmek
2342f53aff Drop retired icfg
Rawhide compose failed because icfg was retired yesterday:
64ef393a10
https://pagure.io/releng/failed-composes/issue/2557
2021-06-09 09:04:00 -07:00
Brian C. Lane
ff5c5dfe66 Automatic commit of package [lorax] release [35.3-1].
Created by command:

/usr/bin/tito tag
2021-05-25 09:25:53 -07:00
Brian C. Lane
322a810403 Add a context manager for dracut
dracut needs a reasonable chroot environment in order to run correctly.
This adds the DracutChroot context manager that sets up and tears down
mounts inside the root directory tree.

Switch to using it in creator.rebuild_initrds_for_live() and
TreeBuilder.rebuild_initrds()
2021-05-25 09:00:18 -07:00
Brian C. Lane
7ce07c5a7c Remove unneeded aajohan-comfortaa-fonts
Anaconda no longer needs this font, may as well drop it.
Fixes #1145
2021-05-24 15:06:19 -07:00
Brian C. Lane
19ed6ed871 Automatic commit of package [lorax] release [35.2-1].
Created by command:

/usr/bin/tito tag
2021-05-05 14:24:54 -07:00
Brian C. Lane
065e0a7f8d runtime-cleanup: Use branding package name instead of product.name
Related: rhbz#1956205
2021-05-05 11:16:31 -07:00
Brian C. Lane
9cb34c5520 treebuilder: Add branding package to template variables
The branding package name doesn't always match the product name.  This
saves the branding package names as discovered in the enabled repos and
exposes it to the templates as branding.release and branding.logos --
which could potentially be None so the template needs to take that into
account.

Related: rhbz#1956205
2021-05-05 11:16:31 -07:00
Brian C. Lane
79a1fd9c46 livemedia-creator: Use inst.ks on cmdline for virt 2021-05-04 15:17:55 -07:00
Brian C. Lane
cc7430fbbd docs: Remove composer-cli.1 2021-04-26 16:24:12 -07:00
Brian C. Lane
d8e35d73c1 Automatic commit of package [lorax] release [35.1-1].
Created by command:

/usr/bin/tito tag
2021-04-26 16:04:12 -07:00
Brian C. Lane
9164f4509d New lorax documentation - 35.1 2021-04-26 15:59:35 -07:00
Brian C. Lane
99ba2fe12c Makefile: Use podman as a user for testing and docs 2021-04-26 15:59:35 -07:00
Brian C. Lane
b75b692607 composer-cli: Remove all traces of composer-cli
weldr-client has replaced composer-cli so remove all of the code and
tests, adjust various things so they don't expect it to be available,
and rename some things like test/composertest.py to reflect its
exclusive use by lorax.
2021-04-26 15:59:35 -07:00
Brian C. Lane
823e54dabf livemedia-creator: Add rhgb to live iso cmdline (#1943312)
These were apparently lost in the transition to livemedia-creator.
livecd-creator added them in it's code, and lmc based its live config
files on the the boot.iso configs which do not include it (on purpose).
2021-04-26 15:48:41 -07:00
Brian C. Lane
2762cf95da tests: Fix pocketlint use of removed pylint messages
pylint has removed python2 only messages so running
pocketlint is causing tracebacks in every file.

This removes the problem messages from the disabledOptions property
until pocketlint can be fixed upstream.
2021-04-20 08:35:34 -07:00
Vladimir Slavik
e9fa729b2e Disable X11 forwarding from installation environment.
See also https://github.com/rhinstaller/anaconda/pull/3235
2021-04-14 16:10:47 -07:00
Vladimir Slavik
8602e653ff Remove display-related packages
They are now dependencies of various Anaconda subpackages.
2021-04-14 16:10:47 -07:00
Kevin Fenzi
18fd73ae82 Drop trying to install reiserfs-utils
reiserfs-utils was retired in Fedora, so we don't want to try and
install it anymore.

Signed-off-by: Kevin Fenzi <kevin@scrye.com>
2021-04-07 15:09:22 -07:00
Martin Pitt
4b6aa1add1 test: Fix URL to bots testmap
It was moved in https://github.com/cockpit-project/bots/commit/7a3c71968d568
2021-03-24 08:28:25 -07:00
Parag Nemade
1ffe2125d0 Change khmeros-base-fonts to khmer-os-system-fonts.
This font got renamed last year.

Signed-off-by: Parag Nemade <pnemade@fedoraproject.org>
2021-03-22 09:08:01 -07:00
Vladimír Slávik
a8e37cdbed Fix output path in docs 2021-03-22 09:06:40 -07:00
Adam Williamson
856d7d70f3 runtime-cleanup: don't wipe /usr/bin/report-cli (#1937550)
We need it for reporting things!

Signed-off-by: Adam Williamson <awilliam@redhat.com>
(cherry picked from commit a2fa698bc2)
2021-03-11 08:08:08 -08:00
Peter Hutterer
563db6608d xorg-x11-font-utils is now four packages, remove all of them
Fedora has split xorg-x11-font-utils, with bdftopcf, mkfontscale and
fonttosfnt being split out into separate packages. Remove all of those too.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2021-03-09 09:19:18 -08:00
Kevin Fenzi
55371c9968 xorg-x11-server-utils was split up in Fedora 34, so adjust templates
In f34 and beyond, the old xorg-x11-server-utils package was split up
into seperate packages for each util. This was to allow them to rev at
their own pace instead of requiring all of them to rebuild at once.
See https://bugzilla.redhat.com/show_bug.cgi?id=1932754
and
https://fedoraproject.org/wiki/Changes/XorgUtilityDeaggregation

We need to adjust lorax (in f34+) to not try and remove the
xorg-x11-server-utils package (as it no longer exists) and also to
install the 2 utils that we need from it for installs.

Signed-off-by: Kevin Fenzi <kevin@scrye.com>
2021-03-08 13:59:33 -08:00
Brian C. Lane
561339c6dc Automatic commit of package [lorax] release [35.0-1].
Created by command:

/usr/bin/tito tag --keep-version
2021-03-03 16:41:28 -08:00
Brian C. Lane
5cf7943305 New lorax documentation - 35.0 2021-03-03 16:40:00 -08:00
Brian C. Lane
6d7a1df8fa Makefile: Add test-in-podman and docs-in-podman build targets 2021-03-03 16:39:59 -08:00
Brian C. Lane
07a1d8e88a isolinux.cfg: Rename the 'vesa' menu entry to 'basic'
It never used vesa directly, it passes nomodeset, so make it less
confusing. Also simplify the menu text so that it fits on the screen
for distributions with long names.
2021-03-03 16:25:53 -08:00
Brian C. Lane
730621808c composer-cli: Add support for start-ostree --url URL
Some ostree builds, like edge, require passing a url to it along with
the ref and parent arguments. This adds an optional --url argument to
the 'composer-cli compose start-ostree' command.

Resolves: rhbz#1929381
2021-03-03 16:24:07 -08:00
Brian C. Lane
02c185c9c0 Automatic commit of package [lorax] release [34.9-1].
Created by command:

/usr/bin/tito tag
2021-02-15 09:07:23 -08:00
Adam Williamson
202f90e541 Use inst.rescue to trigger rescue mode
anaconda in F34 and Rawhide recently stopped accepting params
without the inst. prefix, so 'rescue' does nothing except print
a warning now. We need to use `inst.rescue`. This has worked for
quite a long time so will be OK at least on all Fedoras and RHEL
8, not sure about RHEL 7.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2021-02-15 09:02:03 -08:00
Brian C. Lane
5e4b058bae Automatic commit of package [lorax] release [34.8-1].
Created by command:

/usr/bin/tito tag
2021-02-08 10:41:19 -08:00
Vladimir Slavik
6803bae6d4 Use image dependencies metapackage
The difference between the anaconda-install-{env,img}-deps packages is how
they treat dependencies. The -env package leaves some dependencies as weak to
allow less featureful builds. The -img package hard-requires everything
Anaconda could potentially use and ensures everything works.

For boot.iso, the latter is preferable. Its usage moves some things from the
templates to that package.
2021-02-08 10:40:01 -08:00
Brian C. Lane
0dc1edb564 tests: Include the fedora-updates repo when testing boot.iso building 2021-01-28 13:48:59 -08:00
Brian C. Lane
83ddffd377 Automatic commit of package [lorax] release [34.7-1].
Created by command:

/usr/bin/tito tag
2021-01-20 11:25:58 -08:00
David Ward
9defb143da live/x86.tmpl: Copy livecd-iso-to-disk script, if installed
A post-installation script in fedora-live-base.ks actually modifies
Lorax (not idempotently) with the change in this commit while it is
running. This modification belongs directly in Lorax instead.

Note a subtle distinction in behavior that has been preserved here.
Lorax will copy the livecd-iso-to-disk script from the installroot
(if present). Running livecd-creator will copy it from the existing
root filesystem instead.
2021-01-19 10:00:52 -08:00
David Ward
7df94aed4d templates: Copy license files from the correct path
Since Fedora 30, license files are missing from the ISO filesystem
of live or installer images (including official builds). The source
path to these files changed when they were moved into a subpackage
named fedora-release-common (or generic-release-common).

Also, copy the license files from the installroot, rather than the
existing root filesystem.
2021-01-19 10:00:52 -08:00
Martin Pitt
04ce221a65 test: Fix vm.install for non-LVM cloud images
Some of our images, like centos-8-stream, are already built from the
official cloud images instead of virt-install with LVM. More images are
going to do that soon [1][2], so fix vm.install to only do the LVM grow
steps if the image actually uses LVM.

Also adjust the comment, as commit 6ddaa5e0dd fixed this for
RHEL images.

[1] https://github.com/cockpit-project/bots/pull/1518
[2] https://github.com/cockpit-project/bots/pull/1527
2021-01-08 17:12:08 +01:00
Brian C. Lane
f6924f8f1f Automatic commit of package [lorax] release [34.6-1].
Created by command:

/usr/bin/tito tag
2020-12-16 14:11:44 -08:00
Brian C. Lane
b0318efead Remove LD_PRELOAD libgomp.so.1 from lmc --no-virt
The libgomp bug rhbz#1722181 has been closed since August.
2020-12-15 15:01:24 -08:00
Brian C. Lane
a33efe7c51 Add POSTIN scriptlet error to the log monitor list
This will cause livemedia-creator to terminate anaconda and exit when an
install hits an error that often causes anaconda to get stuck and not
exit.

Resolves: rhbz#1900596
2020-12-15 15:01:24 -08:00
Brian C. Lane
6400515880 Improve lmc no-virt error handling
When monitoring log output in livemedia-creator --no-virt it could get
stuck if the output from anaconda stops for some reason.

This changes execReadlines so that it will only read output when it is
available, will monitor the process state, and continue to call the
callback function.

It also adds a final timeout on proc.communicate() so that if Anaconda
becomes stuck and won't exit livemedia-creator will eventually exit.

When the no-virt callback terminates anaconda on an error it now sends a
TERM signal to all of the unshare process' children because just sending
it to unshare doesn't cause anaconda to exit.
2020-12-15 15:01:24 -08:00
Brian C. Lane
07600b2418 lorax.spec: Drop GConf2 requirement
This hasn't been needed since commit bb3d8edd06

Resolves: rhbz#1904955
2020-12-08 11:09:50 -08:00
Brian C. Lane
a4e87a07e0 Automatic commit of package [lorax] release [34.5-1].
Created by command:

/usr/bin/tito tag
2020-11-30 14:31:35 -08:00
Simon Pichugin
bd37cd5b87 Don't remove libldap_r libraries during runtime-cleanup.tmpl 2020-11-30 14:26:34 -08:00
Vojtech Trefny
78eec89cda Do not use '--loglevel' option when running Anaconda
This option has been removed, see https://github.com/rhinstaller/anaconda/pull/2864
2020-11-18 11:18:06 -08:00
Brian C. Lane
5ae6dce983 Makefile: quiet rsync use in testing 2020-11-18 10:59:14 -08:00
Brian C. Lane
c0ec02b3ed Switch to using GitHub Actions instead of Travis CI
Travis CI has made some recent changes that result in slower results.
This switches to using GitHub's new actions workflow instead.
2020-11-18 10:59:14 -08:00
Brian C. Lane
0e9262ba20 Automatic commit of package [lorax] release [34.4-1].
Created by command:

/usr/bin/tito tag
2020-11-02 14:35:01 -08:00
Brian C. Lane
cd77f6d4d5 Update the default release version to 34 2020-11-02 13:13:36 -08:00
Brian C. Lane
b07151c6ee Remove mdmonitor service from boot.iso
There's no reason for it to run, it can't notify anyone. But disabling
the service, or masking it, doesn't work so remove the service files
from the rootfs.

Resolves: rhbz#1888730
2020-11-02 11:48:40 -08:00
Brian C. Lane
ee2496d672 Switch to using upstream mk-s390image for s390 cdboot.img creation
mk-s390-cdboot has stopped working because the kernel outgrew the
hard-coded offset it used when creating cdboot.img. IBM now has a script
in s390utils that can do the same thing so use the upstream script
instead.

This drops mk-s390-cdboot script, switches the s390 templates to use
mk-s390image from s390utils.

It adds @ROOT@ to cdboot.prm, and sets inst.stage2 so that the installer
image will be found when booting the iso.

Resolves: rhbz#1891778
2020-11-02 11:46:02 -08:00
Brian C. Lane
51a4a93f90 sshd_config: Apply suggested changes
Some of the options have been removed, others are now the default.
MOTD still needs to be printed, the boot environment doesn't include the
pam motd module.

Resolves: rhbz#1872892
2020-10-30 08:32:24 -07:00
Brian C. Lane
6a8901fb09 lorax.spec: Add BuildRequires on systemd-rpm-macros for tmpfilesdir macro 2020-10-07 11:41:59 -07:00
134 changed files with 5324 additions and 5231 deletions

View File

@ -8,7 +8,6 @@ on:
push: push:
branches: branches:
- master - master
- rhel9-branch
- rhel8-branch - rhel8-branch
- rhel7-branch - rhel7-branch
- f31-branch - f31-branch
@ -22,7 +21,7 @@ jobs:
- name: "Clone Repository" - name: "Clone Repository"
uses: actions/checkout@v2 uses: actions/checkout@v2
- name: Run lorax tests in podman - name: Run lorax tests in podman
run: make test-in-docker && cp .test-results/.coverage .coverage run: sudo make test-in-podman && cp .test-results/.coverage .coverage
- name: Coveralls - name: Coveralls
uses: AndreMiras/coveralls-python-action@develop uses: AndreMiras/coveralls-python-action@develop
with: with:

View File

@ -1,4 +1,4 @@
FROM registry.fedoraproject.org/fedora:34 FROM registry.fedoraproject.org/fedora:rawhide
COPY test-packages . COPY test-packages .
RUN dnf -y install $(cat test-packages) && touch /.in-container RUN dnf -y install $(cat test-packages) && touch /.in-container
RUN useradd weldr RUN useradd weldr

View File

@ -3,6 +3,7 @@ DESTDIR ?= /
PREFIX ?= /usr PREFIX ?= /usr
mandir ?= $(PREFIX)/share/man mandir ?= $(PREFIX)/share/man
DOCKER ?= podman DOCKER ?= podman
PODMAN ?= $(DOCKER)
DOCS_VERSION ?= next DOCS_VERSION ?= next
RUN_TESTS ?= ci RUN_TESTS ?= ci
@ -46,7 +47,7 @@ check:
test: test:
@echo "*** Running tests ***" @echo "*** Running tests ***"
PYTHONPATH=$(PYTHONPATH):./src/ $(PYTHON) -X dev -m pytest -v --cov-branch \ PYTHONPATH=$(PYTHONPATH):./src/ $(PYTHON) -X dev -m pytest -v --cov-branch \
--cov=pylorax ./tests/pylorax/ --cov=pylorax ./tests/pylorax/ ./tests/image-minimizer/
coverage3 report -m coverage3 report -m
[ -f "/usr/bin/coveralls" ] && [ -n "$(COVERALLS_REPO_TOKEN)" ] && coveralls || echo [ -f "/usr/bin/coveralls" ] && [ -n "$(COVERALLS_REPO_TOKEN)" ] && coveralls || echo
@ -78,7 +79,7 @@ docs:
# This is needed to reset the ownership of the new docs files after they are created in a container # This is needed to reset the ownership of the new docs files after they are created in a container
set-docs-owner: set-docs-owner:
chown -R $(LOCAL_UID):$(LOCAL_GID) docs/ sudo chown -R $(LOCAL_UID):$(LOCAL_GID) docs/
archive: archive:
@git archive --format=tar --prefix=$(PKGNAME)-$(VERSION)/ $(TAG) > $(PKGNAME)-$(VERSION).tar @git archive --format=tar --prefix=$(PKGNAME)-$(VERSION)/ $(TAG) > $(PKGNAME)-$(VERSION).tar
@ -103,25 +104,39 @@ local:
@rm -rf /var/tmp/$(PKGNAME)-$(VERSION) @rm -rf /var/tmp/$(PKGNAME)-$(VERSION)
@echo "The archive is in $(PKGNAME)-$(VERSION).tar.gz" @echo "The archive is in $(PKGNAME)-$(VERSION).tar.gz"
local-srpm: local $(PKGNAME).spec
rpmbuild -bs \
--define "_sourcedir $(CURDIR)" \
--define "_srcrpmdir $(CURDIR)" \
lorax.spec
test-in-copy: test-in-copy:
rsync -a --exclude=.git /lorax-ro/ /lorax/ rsync -a --exclude=.git /lorax-ro/ /lorax/
make -C /lorax/ $(RUN_TESTS) make -C /lorax/ $(RUN_TESTS)
cp /lorax/.coverage /test-results/ cp /lorax/.coverage /test-results/
test-in-docker: test-in-docker: test-in-podman
sudo $(DOCKER) build -t welder/lorax-tests:$(IMAGE_RELEASE) -f Dockerfile.test .
test-in-podman:
$(DOCKER) build -t welder/lorax-tests:$(IMAGE_RELEASE) -f Dockerfile.test .
@mkdir -p `pwd`/.test-results @mkdir -p `pwd`/.test-results
sudo $(DOCKER) run --rm -it -v `pwd`/.test-results/:/test-results \ $(DOCKER) run --rm -it -v `pwd`/.test-results/:/test-results \
-v `pwd`:/lorax-ro:ro --security-opt label=disable \ -v `pwd`:/lorax-ro:ro --security-opt label=disable \
--env RUN_TESTS="$(RUN_TESTS)" \ --env RUN_TESTS="$(RUN_TESTS)" \
welder/lorax-tests:$(IMAGE_RELEASE) make test-in-copy welder/lorax-tests:$(IMAGE_RELEASE) make test-in-copy
# rootless podman leaves them owned by the container UID
$(MAKE) set-docs-owner
docs-in-docker: docs-in-docker: docs-in-podman
sudo $(DOCKER) run -it --rm -v `pwd`:/lorax-ro:ro \
docs-in-podman:
$(DOCKER) build -t welder/lorax-tests:$(IMAGE_RELEASE) -f Dockerfile.test .
$(DOCKER) run -it --rm -v `pwd`:/lorax-ro:ro \
-v `pwd`/docs/:/lorax-ro/docs/ \ -v `pwd`/docs/:/lorax-ro/docs/ \
--env LORAX_VERSION=$(DOCS_VERSION) \ --env LORAX_VERSION=$(DOCS_VERSION) \
--env LOCAL_UID=`id -u` --env LOCAL_GID=`id -g` \ --env LOCAL_UID=`id -u` --env LOCAL_GID=`id -g` \
--security-opt label=disable welder/lorax-tests:$(IMAGE_RELEASE) make docs set-docs-owner --security-opt label=disable welder/lorax-tests:$(IMAGE_RELEASE) make docs
ci: check test ci: check test
@ -166,4 +181,4 @@ bots:
ci_after_success: ci_after_success:
# nothing to do here, but Jenkins expects this to be present, otherwise fails # nothing to do here, but Jenkins expects this to be present, otherwise fails
.PHONY: docs check test srpm vm vm-reset .PHONY: docs check test srpm vm vm-reset docs-in-docker docs-in-podman test-in-docker test-in-podman

View File

@ -8,7 +8,7 @@ SPHINXAPIDOC = sphinx-apidoc-3
PAPER = PAPER =
BUILDDIR = . BUILDDIR = .
SOURCEDIR = ../src SOURCEDIR = ../src
MODULE_NAMES = pylorax.rst pylorax.api.rst modules.rst MODULE_NAMES = pylorax.rst pylorax.api.rst modules.rst composer.rst composer.cli.rst
# User-friendly check for sphinx-build # User-friendly check for sphinx-build
ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1)

View File

@ -266,6 +266,7 @@ man_pages = [
('lorax', 'lorax', u'Lorax Documentation', [u'Weldr Team'], 1), ('lorax', 'lorax', u'Lorax Documentation', [u'Weldr Team'], 1),
('livemedia-creator', 'livemedia-creator', u'Live Media Creator Documentation', [u'Weldr Team'], 1), ('livemedia-creator', 'livemedia-creator', u'Live Media Creator Documentation', [u'Weldr Team'], 1),
('mkksiso', 'mkksiso', u'Make Kickstart ISO Utility Documentation', [u'Weldr Team'], 1), ('mkksiso', 'mkksiso', u'Make Kickstart ISO Utility Documentation', [u'Weldr Team'], 1),
('image-minimizer', 'image-minimizer', u'Utility script to remove files and packages', [u'Weldr Team'], 1),
] ]
# If true, show URL addresses after external links. # If true, show URL addresses after external links.

View File

@ -0,0 +1,28 @@
# Fedora Atomic PXE Live creation kickstart
# Suitable for use with livemedia-creator --no-virt
# Settings for unattended installation:
lang en_US.UTF-8
keyboard us
timezone America/New_York
clearpart --all --initlabel
rootpw --plaintext atomic
part / --fstype="ext4" --size=6000
shutdown
ostreesetup --nogpg --osname=fedora-atomic --remote=fedora-atomic --url=https://dl.fedoraproject.org/pub/fedora/linux/atomic/24/ --ref=fedora-atomic/rawhide/x86_64/docker-host
services --disabled=cloud-init,cloud-init-local,cloud-final,cloud-config,docker-storage-setup
# We copy content of separate /boot partition to root part when building live squashfs image,
# and we don't want systemd to try to mount it when pxe booting
%post
cat /dev/null > /etc/fstab
%end
%post --erroronfail
rm -f /etc/ostree/remotes.d/fedora-atomic.conf
ostree remote add --set=gpg-verify=false fedora-atomic 'https://dl.fedoraproject.org/pub/fedora/linux/atomic/24/'
%end

View File

@ -0,0 +1,24 @@
# Settings for unattended installation:
lang en_US.UTF-8
keyboard us
timezone America/New_York
clearpart --all --initlabel
rootpw --plaintext atomic
# We are only able to install atomic with separate /boot partition currently
part / --fstype="ext4" --size=6000
part /boot --size=500 --fstype="ext4"
shutdown
# Using ostree repo included in installation iso. Respective ostreesetup command is included here.
# The included kickstart file with the command is created during installation iso compose.
%include /usr/share/anaconda/interactive-defaults.ks
services --disabled=cloud-init,cloud-init-local,cloud-final,cloud-config,docker-storage-setup
# We copy content of separate /boot partition to root part when building live squashfs image,
# and we don't want systemd to try to mount it when pxe booting
%post
cat /dev/null > /etc/fstab
%end

View File

@ -1,8 +1,7 @@
# Minimal tar Image # Minimal Disk Image
# Use network installation # Use network installation
url --url="http://URL-TO-BASEOS" url --url="http://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/"
repo --name=appstream --baseurl="http://URL-TO-APPSTREAM/"
# Root password # Root password
rootpw --plaintext replace-this-pw rootpw --plaintext replace-this-pw
@ -14,8 +13,6 @@ keyboard --xlayouts=us --vckeymap=us
lang en_US.UTF-8 lang en_US.UTF-8
# SELinux configuration # SELinux configuration
selinux --enforcing selinux --enforcing
# Installation logging level
logging --level=info
# Shutdown after installation # Shutdown after installation
shutdown shutdown
# System timezone # System timezone

View File

@ -10,8 +10,7 @@ timezone US/Eastern
lang en_US.UTF-8 lang en_US.UTF-8
# Firewall configuration # Firewall configuration
firewall --enabled --service=mdns firewall --enabled --service=mdns
url --url="http://URL-TO-BASEOS" url --url="http://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/"
repo --name=appstream --baseurl="http://URL-TO-APPSTREAM/"
# Network information # Network information
network --bootproto=dhcp --device=link --activate network --bootproto=dhcp --device=link --activate
@ -19,7 +18,7 @@ network --bootproto=dhcp --device=link --activate
selinux --enforcing selinux --enforcing
# System services # System services
services --disabled="network,sshd" --enabled="NetworkManager,ModemManager" services --disabled="sshd" --enabled="NetworkManager,ModemManager"
# livemedia-creator modifications. # livemedia-creator modifications.
shutdown shutdown
@ -30,7 +29,7 @@ clearpart --all --initlabel
rootpw rootme rootpw rootme
# Disk partitioning information # Disk partitioning information
reqpart reqpart
part / --size=8000 part / --size=6656
%post %post
# FIXME: it'd be better to get this installed from a package # FIXME: it'd be better to get this installed from a package
@ -64,21 +63,14 @@ livedir="LiveOS"
for arg in \`cat /proc/cmdline\` ; do for arg in \`cat /proc/cmdline\` ; do
if [ "\${arg##rd.live.dir=}" != "\${arg}" ]; then if [ "\${arg##rd.live.dir=}" != "\${arg}" ]; then
livedir=\${arg##rd.live.dir=} livedir=\${arg##rd.live.dir=}
return continue
fi fi
if [ "\${arg##live_dir=}" != "\${arg}" ]; then if [ "\${arg##live_dir=}" != "\${arg}" ]; then
livedir=\${arg##live_dir=} livedir=\${arg##live_dir=}
return
fi fi
done done
# enable swaps unless requested otherwise # enable swapfile unless requested otherwise
swaps=\`blkid -t TYPE=swap -o device\`
if ! strstr "\`cat /proc/cmdline\`" noswap && [ -n "\$swaps" ] ; then
for s in \$swaps ; do
action "Enabling swap partition \$s" swapon \$s
done
fi
if ! strstr "\`cat /proc/cmdline\`" noswap && [ -f /run/initramfs/live/\${livedir}/swap.img ] ; then if ! strstr "\`cat /proc/cmdline\`" noswap && [ -f /run/initramfs/live/\${livedir}/swap.img ] ; then
action "Enabling swap file" swapon /run/initramfs/live/\${livedir}/swap.img action "Enabling swap file" swapon /run/initramfs/live/\${livedir}/swap.img
fi fi
@ -123,7 +115,6 @@ findPersistentHome() {
for arg in \`cat /proc/cmdline\` ; do for arg in \`cat /proc/cmdline\` ; do
if [ "\${arg##persistenthome=}" != "\${arg}" ]; then if [ "\${arg##persistenthome=}" != "\${arg}" ]; then
homedev=\${arg##persistenthome=} homedev=\${arg##persistenthome=}
return
fi fi
done done
} }
@ -143,7 +134,7 @@ if [ -n "\$configdone" ]; then
exit 0 exit 0
fi fi
# add fedora user with no passwd # add liveuser user with no passwd
action "Adding live user" useradd \$USERADDARGS -c "Live System User" liveuser action "Adding live user" useradd \$USERADDARGS -c "Live System User" liveuser
passwd -d liveuser > /dev/null passwd -d liveuser > /dev/null
usermod -aG wheel liveuser > /dev/null usermod -aG wheel liveuser > /dev/null
@ -151,6 +142,12 @@ usermod -aG wheel liveuser > /dev/null
# Remove root password lock # Remove root password lock
passwd -d root > /dev/null passwd -d root > /dev/null
# turn off firstboot for livecd boots
systemctl --no-reload disable firstboot-text.service 2> /dev/null || :
systemctl --no-reload disable firstboot-graphical.service 2> /dev/null || :
systemctl stop firstboot-text.service 2> /dev/null || :
systemctl stop firstboot-graphical.service 2> /dev/null || :
# don't use prelink on a running live image # don't use prelink on a running live image
sed -i 's/PRELINKING=yes/PRELINKING=no/' /etc/sysconfig/prelink &>/dev/null || : sed -i 's/PRELINKING=yes/PRELINKING=no/' /etc/sysconfig/prelink &>/dev/null || :
@ -181,9 +178,7 @@ sed -i 's/rtcsync//' /etc/chrony.conf
touch /.liveimg-configured touch /.liveimg-configured
# add static hostname to work around xauth bug # add static hostname to work around xauth bug
# https://bugzilla.redhat.com/show_bug.cgi?id=679486 hostnamectl set-hostname "localhost-live"
echo "localhost" > /etc/hostname
EOF EOF
# bah, hal starts way too late # bah, hal starts way too late
@ -266,7 +261,7 @@ releasever=$(rpm -q --qf '%{version}\n' --whatprovides system-release)
basearch=$(uname -i) basearch=$(uname -i)
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
echo "Packages within this LiveCD" echo "Packages within this LiveCD"
rpm -qa rpm -qa --qf '%{size}\t%{name}-%{version}-%{release}.%{arch}\n' |sort -rn
# Note that running rpm recreates the rpm db files which aren't needed or wanted # Note that running rpm recreates the rpm db files which aren't needed or wanted
rm -f /var/lib/rpm/__db* rm -f /var/lib/rpm/__db*
@ -276,18 +271,23 @@ rm -f /var/lib/rpm/__db*
# make sure there aren't core files lying around # make sure there aren't core files lying around
rm -f /core* rm -f /core*
# remove random seed, the newly installed instance should make it's own
rm -f /var/lib/systemd/random-seed
# convince readahead not to collect # convince readahead not to collect
# FIXME: for systemd # FIXME: for systemd
echo 'File created by kickstart. See systemd-update-done.service(8).' \ echo 'File created by kickstart. See systemd-update-done.service(8).' \
| tee /etc/.updated >/var/.updated | tee /etc/.updated >/var/.updated
# Remove random-seed
rm /var/lib/systemd/random-seed
# Remove the rescue kernel and image to save space # Remove the rescue kernel and image to save space
# Installation will recreate these on the target # Installation will recreate these on the target
rm -f /boot/*-rescue* rm -f /boot/*-rescue*
# Remove machine-id on pre generated images
rm -f /etc/machine-id
touch /etc/machine-id
%end %end
%post %post
@ -313,6 +313,18 @@ FOE
mkdir ~liveuser/.config mkdir ~liveuser/.config
touch ~liveuser/.config/gnome-initial-setup-done touch ~liveuser/.config/gnome-initial-setup-done
# suppress anaconda spokes redundant with gnome-initial-setup
cat >> /etc/sysconfig/anaconda << FOE
[NetworkSpoke]
visited=1
[PasswordSpoke]
visited=1
[UserSpoke]
visited=1
FOE
# make the installer show up # make the installer show up
if [ -f /usr/share/applications/liveinst.desktop ]; then if [ -f /usr/share/applications/liveinst.desktop ]; then
# Show harddisk install in shell dash # Show harddisk install in shell dash
@ -322,7 +334,7 @@ if [ -f /usr/share/applications/liveinst.desktop ]; then
cat >> /usr/share/glib-2.0/schemas/org.gnome.shell.gschema.override << FOE cat >> /usr/share/glib-2.0/schemas/org.gnome.shell.gschema.override << FOE
[org.gnome.shell] [org.gnome.shell]
favorite-apps=['firefox.desktop', 'evolution.desktop', 'rhythmbox.desktop', 'shotwell.desktop', 'org.gnome.Nautilus.desktop', 'anaconda.desktop'] favorite-apps=['firefox.desktop', 'org.gnome.Calendar.desktop', 'rhythmbox.desktop', 'org.gnome.Photos.desktop', 'org.gnome.Nautilus.desktop', 'anaconda.desktop']
FOE FOE
# Make the welcome screen show up # Make the welcome screen show up
@ -332,6 +344,11 @@ FOE
cp /usr/share/anaconda/gnome/fedora-welcome.desktop ~liveuser/.config/autostart/ cp /usr/share/anaconda/gnome/fedora-welcome.desktop ~liveuser/.config/autostart/
fi fi
# Disable GNOME welcome tour so it doesn't overlap with Fedora welcome screen
cat >> /usr/share/glib-2.0/schemas/org.gnome.shell.gschema.override << FOE
welcome-dialog-last-shown-version='4294967295'
FOE
# Copy Anaconda branding in place # Copy Anaconda branding in place
if [ -d /usr/share/lorax/product/usr/share/anaconda ]; then if [ -d /usr/share/lorax/product/usr/share/anaconda ]; then
cp -a /usr/share/lorax/product/* / cp -a /usr/share/lorax/product/* /
@ -363,32 +380,36 @@ EOF
%packages %packages
@^workstation-product-environment @^workstation-product-environment
@anaconda-tools
aajohan-comfortaa-fonts
anaconda
anaconda-install-env-deps
anaconda-live
dracut-config-generic dracut-config-generic
dracut-live dracut-live
system-logos glibc-all-langpacks
kernel kernel
# Make sure that DNF doesn't pull in debug kernel to satisfy kmod() requires # Make sure that DNF doesn't pull in debug kernel to satisfy kmod() requires
kernel-modules kernel-modules
kernel-modules-extra kernel-modules-extra
memtest86+
syslinux syslinux
-@dial-up -@dial-up
-@input-methods -@input-methods
-@standard -@standard
-gfs2-utils
-gnome-boxes
# This package is needed to boot the iso on UEFI # This package is needed to boot the iso on UEFI
shim shim
shim-ia32
grub2 grub2
grub2-efi grub2-efi
grub2-efi-*-cdboot grub2-efi-*-cdboot
grub2-efi-ia32
efibootmgr efibootmgr
# no longer in @core since 2018-10, but needed for livesys script # no longer in @core since 2018-10, but needed for livesys script
initscripts initscripts
chkconfig chkconfig
# Required for rd.live.check
isomd5sum
%end %end

View File

@ -4,8 +4,7 @@ sshpw --username=root --plaintext randOmStrinGhERE
# Firewall configuration # Firewall configuration
firewall --enabled firewall --enabled
# Use network installation # Use network installation
url --url="http://URL-TO-BASEOS" url --url="http://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/"
repo --name=appstream --baseurl="http://URL-TO-APPSTREAM/"
# Network information # Network information
network --bootproto=dhcp --device=link --activate network --bootproto=dhcp --device=link --activate
@ -17,8 +16,6 @@ keyboard --xlayouts=us --vckeymap=us
lang en_US.UTF-8 lang en_US.UTF-8
# SELinux configuration # SELinux configuration
selinux --enforcing selinux --enforcing
# Installation logging level
logging --level=info
# Shutdown after installation # Shutdown after installation
shutdown shutdown
# System timezone # System timezone
@ -47,7 +44,6 @@ kernel
kernel-modules kernel-modules
kernel-modules-extra kernel-modules-extra
memtest86+
grub2-efi grub2-efi
grub2 grub2
shim shim

View File

@ -4,8 +4,7 @@ sshpw --username=root --plaintext randOmStrinGhERE
# Firewall configuration # Firewall configuration
firewall --enabled firewall --enabled
# Use network installation # Use network installation
url --url="http://URL-TO-BASEOS" url --url="http://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/"
repo --name=appstream --baseurl="http://URL-TO-APPSTREAM/"
# Network information # Network information
network --bootproto=dhcp --device=link --activate network --bootproto=dhcp --device=link --activate
@ -17,8 +16,6 @@ keyboard --xlayouts=us --vckeymap=us
lang en_US.UTF-8 lang en_US.UTF-8
# SELinux configuration # SELinux configuration
selinux --enforcing selinux --enforcing
# Installation logging level
logging --level=info
# Shutdown after installation # Shutdown after installation
shutdown shutdown
# System timezone # System timezone
@ -46,7 +43,6 @@ kernel
kernel-modules kernel-modules
kernel-modules-extra kernel-modules-extra
memtest86+
grub2-efi grub2-efi
grub2 grub2
shim shim

View File

@ -1,10 +1,9 @@
# Minimal OpenStack Disk Image # Minimal Disk Image
# #
# Firewall configuration # Firewall configuration
firewall --enabled firewall --enabled
# Use network installation # Use network installation
url --url="http://URL-TO-BASEOS" url --url="http://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/"
repo --name=appstream --baseurl="http://URL-TO-APPSTREAM/"
# Root password # Root password
rootpw --plaintext replace-this-pw rootpw --plaintext replace-this-pw
@ -16,8 +15,6 @@ keyboard --xlayouts=us --vckeymap=us
lang en_US.UTF-8 lang en_US.UTF-8
# SELinux configuration # SELinux configuration
selinux --enforcing selinux --enforcing
# Installation logging level
logging --level=info
# Shutdown after installation # Shutdown after installation
shutdown shutdown
# System timezone # System timezone
@ -43,7 +40,6 @@ kernel
kernel-modules kernel-modules
kernel-modules-extra kernel-modules-extra
memtest86+
grub2-efi grub2-efi
grub2 grub2
shim shim

View File

@ -4,8 +4,7 @@
# Firewall configuration # Firewall configuration
firewall --enabled firewall --enabled
# Use network installation # Use network installation
url --url="http://URL-TO-BASEOS" url --url="http://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/"
repo --name=appstream --baseurl="http://URL-TO-APPSTREAM/"
# Network information # Network information
network --bootproto=dhcp --activate network --bootproto=dhcp --activate
@ -22,8 +21,6 @@ keyboard --xlayouts=us --vckeymap=us
lang en_US.UTF-8 lang en_US.UTF-8
# SELinux configuration # SELinux configuration
selinux --enforcing selinux --enforcing
# Installation logging level
logging --level=info
# Shutdown after installation # Shutdown after installation
shutdown shutdown
# System timezone # System timezone
@ -55,7 +52,6 @@ kernel
kernel-modules kernel-modules
kernel-modules-extra kernel-modules-extra
memtest86+
grub2-efi grub2-efi
grub2 grub2
shim shim

View File

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

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,69 +1,31 @@
<!DOCTYPE html> <!DOCTYPE html>
<html class="writer-html5" lang="en" > <html class="writer-html5" lang="en" >
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Overview: module code &mdash; Lorax 36.5 documentation</title>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
<title>Overview: module code &mdash; Lorax 34.9.0 documentation</title> <script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script>
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script src="../_static/jquery.js"></script> <script src="../_static/jquery.js"></script>
<script src="../_static/underscore.js"></script> <script src="../_static/underscore.js"></script>
<script src="../_static/doctools.js"></script> <script src="../_static/doctools.js"></script>
<script src="../_static/js/theme.js"></script>
<script type="text/javascript" src="../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../genindex.html" /> <link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" /> <link rel="search" title="Search" href="../search.html" />
</head> </head>
<body class="wy-body-for-nav"> <body class="wy-body-for-nav">
<div class="wy-grid-for-nav"> <div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side"> <nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll"> <div class="wy-side-scroll">
<div class="wy-side-nav-search" > <div class="wy-side-nav-search" >
<a href="../index.html" class="icon icon-home"> Lorax <a href="../index.html" class="icon icon-home"> Lorax
</a> </a>
<div class="version"> <div class="version">
34.9.0 36.5
</div> </div>
<div role="search"> <div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get"> <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" /> <input type="text" name="q" placeholder="Search docs" />
@ -71,18 +33,7 @@
<input type="hidden" name="area" value="default" /> <input type="hidden" name="area" value="default" />
</form> </form>
</div> </div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul> <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">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="../intro.html#before-lorax">Before Lorax</a></li>
@ -90,70 +41,33 @@
<li class="toctree-l1"><a class="reference internal" href="../livemedia-creator.html">livemedia-creator</a></li> <li class="toctree-l1"><a class="reference internal" href="../livemedia-creator.html">livemedia-creator</a></li>
<li class="toctree-l1"><a class="reference internal" href="../mkksiso.html">mkksiso</a></li> <li class="toctree-l1"><a class="reference internal" href="../mkksiso.html">mkksiso</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="../product-images.html">Product and Updates Images</a></li>
<li class="toctree-l1"><a class="reference internal" href="../image-minimizer.html">image-minimizer</a></li>
<li class="toctree-l1"><a class="reference internal" href="../modules.html">src</a></li> <li class="toctree-l1"><a class="reference internal" href="../modules.html">src</a></li>
</ul> </ul>
</div> </div>
</div> </div>
</nav> </nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i> <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../index.html">Lorax</a> <a href="../index.html">Lorax</a>
</nav> </nav>
<div class="wy-nav-content"> <div class="wy-nav-content">
<div class="rst-content"> <div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs"> <ul class="wy-breadcrumbs">
<li><a href="../index.html" class="icon icon-home"></a> &raquo;</li> <li><a href="../index.html" class="icon icon-home"></a> &raquo;</li>
<li>Overview: module code</li> <li>Overview: module code</li>
<li class="wy-breadcrumbs-aside"> <li class="wy-breadcrumbs-aside">
</li> </li>
</ul> </ul>
<hr/> <hr/>
</div> </div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody"> <div itemprop="articleBody">
<h1>All modules for which code is available</h1> <h1>All modules for which code is available</h1>
<ul><li><a href="pylorax.html">pylorax</a></li> <ul><li><a href="pylorax.html">pylorax</a></li>
<ul><li><a href="pylorax/base.html">pylorax.base</a></li> <ul><li><a href="pylorax/base.html">pylorax.base</a></li>
@ -176,46 +90,30 @@
</ul></ul> </ul></ul>
</div> </div>
</div> </div>
<footer> <footer>
<hr/> <hr/>
<div role="contentinfo"> <div role="contentinfo">
<p> <p>&#169; Copyright 2018, Red Hat, Inc..</p>
&#169; Copyright 2018, Red Hat, Inc..
</p>
</div> </div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer> </footer>
</div> </div>
</div> </div>
</section> </section>
</div> </div>
<script>
<script type="text/javascript">
jQuery(function () { jQuery(function () {
SphinxRtdTheme.Navigation.enable(true); SphinxRtdTheme.Navigation.enable(true);
}); });
</script> </script>
</body> </body>
</html> </html>

View File

@ -1,69 +1,31 @@
<!DOCTYPE html> <!DOCTYPE html>
<html class="writer-html5" lang="en" > <html class="writer-html5" lang="en" >
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>pylorax &mdash; Lorax 36.4 documentation</title>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
<title>pylorax &mdash; Lorax 34.10 documentation</title> <script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script>
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script src="../_static/jquery.js"></script> <script src="../_static/jquery.js"></script>
<script src="../_static/underscore.js"></script> <script src="../_static/underscore.js"></script>
<script src="../_static/doctools.js"></script> <script src="../_static/doctools.js"></script>
<script src="../_static/js/theme.js"></script>
<script type="text/javascript" src="../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../genindex.html" /> <link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" /> <link rel="search" title="Search" href="../search.html" />
</head> </head>
<body class="wy-body-for-nav"> <body class="wy-body-for-nav">
<div class="wy-grid-for-nav"> <div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side"> <nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll"> <div class="wy-side-scroll">
<div class="wy-side-nav-search" > <div class="wy-side-nav-search" >
<a href="../index.html" class="icon icon-home"> Lorax <a href="../index.html" class="icon icon-home"> Lorax
</a> </a>
<div class="version"> <div class="version">
34.10 36.4
</div> </div>
<div role="search"> <div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get"> <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" /> <input type="text" name="q" placeholder="Search docs" />
@ -71,18 +33,7 @@
<input type="hidden" name="area" value="default" /> <input type="hidden" name="area" value="default" />
</form> </form>
</div> </div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul> <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">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="../intro.html#before-lorax">Before Lorax</a></li>
@ -93,69 +44,30 @@
<li class="toctree-l1"><a class="reference internal" href="../modules.html">src</a></li> <li class="toctree-l1"><a class="reference internal" href="../modules.html">src</a></li>
</ul> </ul>
</div> </div>
</div> </div>
</nav> </nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i> <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../index.html">Lorax</a> <a href="../index.html">Lorax</a>
</nav> </nav>
<div class="wy-nav-content"> <div class="wy-nav-content">
<div class="rst-content"> <div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs"> <ul class="wy-breadcrumbs">
<li><a href="../index.html" class="icon icon-home"></a> &raquo;</li> <li><a href="../index.html" class="icon icon-home"></a> &raquo;</li>
<li><a href="index.html">Module code</a> &raquo;</li> <li><a href="index.html">Module code</a> &raquo;</li>
<li>pylorax</li> <li>pylorax</li>
<li class="wy-breadcrumbs-aside"> <li class="wy-breadcrumbs-aside">
</li> </li>
</ul> </ul>
<hr/> <hr/>
</div> </div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody"> <div itemprop="articleBody">
<h1>Source code for pylorax</h1><div class="highlight"><pre> <h1>Source code for pylorax</h1><div class="highlight"><pre>
<span></span><span class="c1">#</span> <span></span><span class="c1">#</span>
<span class="c1"># __init__.py</span> <span class="c1"># __init__.py</span>
@ -220,7 +132,8 @@
<span class="n">DRACUT_DEFAULT</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;--xz&quot;</span><span class="p">,</span> <span class="s2">&quot;--install&quot;</span><span class="p">,</span> <span class="s2">&quot;/.buildstamp&quot;</span><span class="p">,</span> <span class="s2">&quot;--no-early-microcode&quot;</span><span class="p">,</span> <span class="s2">&quot;--add&quot;</span><span class="p">,</span> <span class="s2">&quot;fips&quot;</span><span class="p">]</span> <span class="n">DRACUT_DEFAULT</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;--xz&quot;</span><span class="p">,</span> <span class="s2">&quot;--install&quot;</span><span class="p">,</span> <span class="s2">&quot;/.buildstamp&quot;</span><span class="p">,</span> <span class="s2">&quot;--no-early-microcode&quot;</span><span class="p">,</span> <span class="s2">&quot;--add&quot;</span><span class="p">,</span> <span class="s2">&quot;fips&quot;</span><span class="p">]</span>
<span class="c1"># Used for DNF conf.module_platform_id</span> <span class="c1"># Used for DNF conf.module_platform_id</span>
<span class="n">DEFAULT_PLATFORM_ID</span> <span class="o">=</span> <span class="s2">&quot;platform:f34&quot;</span> <span class="n">DEFAULT_PLATFORM_ID</span> <span class="o">=</span> <span class="s2">&quot;platform:f36&quot;</span>
<span class="n">DEFAULT_RELEASEVER</span> <span class="o">=</span> <span class="s2">&quot;36&quot;</span>
<div class="viewcode-block" id="ArchData"><a class="viewcode-back" href="../pylorax.html#pylorax.ArchData">[docs]</a><span class="k">class</span> <span class="nc">ArchData</span><span class="p">(</span><span class="n">DataHolder</span><span class="p">):</span> <div class="viewcode-block" id="ArchData"><a class="viewcode-back" href="../pylorax.html#pylorax.ArchData">[docs]</a><span class="k">class</span> <span class="nc">ArchData</span><span class="p">(</span><span class="n">DataHolder</span><span class="p">):</span>
<span class="n">lib64_arches</span> <span class="o">=</span> <span class="p">(</span><span class="s2">&quot;x86_64&quot;</span><span class="p">,</span> <span class="s2">&quot;ppc64le&quot;</span><span class="p">,</span> <span class="s2">&quot;s390x&quot;</span><span class="p">,</span> <span class="s2">&quot;ia64&quot;</span><span class="p">,</span> <span class="s2">&quot;aarch64&quot;</span><span class="p">)</span> <span class="n">lib64_arches</span> <span class="o">=</span> <span class="p">(</span><span class="s2">&quot;x86_64&quot;</span><span class="p">,</span> <span class="s2">&quot;ppc64le&quot;</span><span class="p">,</span> <span class="s2">&quot;s390x&quot;</span><span class="p">,</span> <span class="s2">&quot;ia64&quot;</span><span class="p">,</span> <span class="s2">&quot;aarch64&quot;</span><span class="p">)</span>
@ -618,46 +531,30 @@
</pre></div> </pre></div>
</div> </div>
</div> </div>
<footer> <footer>
<hr/> <hr/>
<div role="contentinfo"> <div role="contentinfo">
<p> <p>&#169; Copyright 2018, Red Hat, Inc..</p>
&#169; Copyright 2018, Red Hat, Inc..
</p>
</div> </div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer> </footer>
</div> </div>
</div> </div>
</section> </section>
</div> </div>
<script>
<script type="text/javascript">
jQuery(function () { jQuery(function () {
SphinxRtdTheme.Navigation.enable(true); SphinxRtdTheme.Navigation.enable(true);
}); });
</script> </script>
</body> </body>
</html> </html>

View File

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

View File

@ -1,69 +1,31 @@
<!DOCTYPE html> <!DOCTYPE html>
<html class="writer-html5" lang="en" > <html class="writer-html5" lang="en" >
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>pylorax.buildstamp &mdash; Lorax 36.0 documentation</title>
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
<title>pylorax.buildstamp &mdash; Lorax 34.10 documentation</title> <script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script>
<link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
<script src="../../_static/jquery.js"></script> <script src="../../_static/jquery.js"></script>
<script src="../../_static/underscore.js"></script> <script src="../../_static/underscore.js"></script>
<script src="../../_static/doctools.js"></script> <script src="../../_static/doctools.js"></script>
<script src="../../_static/js/theme.js"></script>
<script type="text/javascript" src="../../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../../genindex.html" /> <link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" /> <link rel="search" title="Search" href="../../search.html" />
</head> </head>
<body class="wy-body-for-nav"> <body class="wy-body-for-nav">
<div class="wy-grid-for-nav"> <div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side"> <nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll"> <div class="wy-side-scroll">
<div class="wy-side-nav-search" > <div class="wy-side-nav-search" >
<a href="../../index.html" class="icon icon-home"> Lorax <a href="../../index.html" class="icon icon-home"> Lorax
</a> </a>
<div class="version"> <div class="version">
34.10 36.0
</div> </div>
<div role="search"> <div role="search">
<form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" /> <input type="text" name="q" placeholder="Search docs" />
@ -71,18 +33,7 @@
<input type="hidden" name="area" value="default" /> <input type="hidden" name="area" value="default" />
</form> </form>
</div> </div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul> <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">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="../../intro.html#before-lorax">Before Lorax</a></li>
@ -93,71 +44,31 @@
<li class="toctree-l1"><a class="reference internal" href="../../modules.html">src</a></li> <li class="toctree-l1"><a class="reference internal" href="../../modules.html">src</a></li>
</ul> </ul>
</div> </div>
</div> </div>
</nav> </nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i> <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../../index.html">Lorax</a> <a href="../../index.html">Lorax</a>
</nav> </nav>
<div class="wy-nav-content"> <div class="wy-nav-content">
<div class="rst-content"> <div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs"> <ul class="wy-breadcrumbs">
<li><a href="../../index.html" class="icon icon-home"></a> &raquo;</li> <li><a href="../../index.html" class="icon icon-home"></a> &raquo;</li>
<li><a href="../index.html">Module code</a> &raquo;</li> <li><a href="../index.html">Module code</a> &raquo;</li>
<li><a href="../pylorax.html">pylorax</a> &raquo;</li> <li><a href="../pylorax.html">pylorax</a> &raquo;</li>
<li>pylorax.buildstamp</li> <li>pylorax.buildstamp</li>
<li class="wy-breadcrumbs-aside"> <li class="wy-breadcrumbs-aside">
</li> </li>
</ul> </ul>
<hr/> <hr/>
</div> </div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody"> <div itemprop="articleBody">
<h1>Source code for pylorax.buildstamp</h1><div class="highlight"><pre> <h1>Source code for pylorax.buildstamp</h1><div class="highlight"><pre>
<span></span><span class="c1">#</span> <span></span><span class="c1">#</span>
<span class="c1"># buildstamp.py</span> <span class="c1"># buildstamp.py</span>
@ -228,46 +139,30 @@
</pre></div> </pre></div>
</div> </div>
</div> </div>
<footer> <footer>
<hr/> <hr/>
<div role="contentinfo"> <div role="contentinfo">
<p> <p>&#169; Copyright 2018, Red Hat, Inc..</p>
&#169; Copyright 2018, Red Hat, Inc..
</p>
</div> </div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer> </footer>
</div> </div>
</div> </div>
</section> </section>
</div> </div>
<script>
<script type="text/javascript">
jQuery(function () { jQuery(function () {
SphinxRtdTheme.Navigation.enable(true); SphinxRtdTheme.Navigation.enable(true);
}); });
</script> </script>
</body> </body>
</html> </html>

View File

@ -1,69 +1,31 @@
<!DOCTYPE html> <!DOCTYPE html>
<html class="writer-html5" lang="en" > <html class="writer-html5" lang="en" >
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>pylorax.cmdline &mdash; Lorax 36.4 documentation</title>
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
<title>pylorax.cmdline &mdash; Lorax 34.10 documentation</title> <script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script>
<link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
<script src="../../_static/jquery.js"></script> <script src="../../_static/jquery.js"></script>
<script src="../../_static/underscore.js"></script> <script src="../../_static/underscore.js"></script>
<script src="../../_static/doctools.js"></script> <script src="../../_static/doctools.js"></script>
<script src="../../_static/js/theme.js"></script>
<script type="text/javascript" src="../../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../../genindex.html" /> <link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" /> <link rel="search" title="Search" href="../../search.html" />
</head> </head>
<body class="wy-body-for-nav"> <body class="wy-body-for-nav">
<div class="wy-grid-for-nav"> <div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side"> <nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll"> <div class="wy-side-scroll">
<div class="wy-side-nav-search" > <div class="wy-side-nav-search" >
<a href="../../index.html" class="icon icon-home"> Lorax <a href="../../index.html" class="icon icon-home"> Lorax
</a> </a>
<div class="version"> <div class="version">
34.10 36.4
</div> </div>
<div role="search"> <div role="search">
<form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" /> <input type="text" name="q" placeholder="Search docs" />
@ -71,18 +33,7 @@
<input type="hidden" name="area" value="default" /> <input type="hidden" name="area" value="default" />
</form> </form>
</div> </div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul> <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">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="../../intro.html#before-lorax">Before Lorax</a></li>
@ -93,71 +44,31 @@
<li class="toctree-l1"><a class="reference internal" href="../../modules.html">src</a></li> <li class="toctree-l1"><a class="reference internal" href="../../modules.html">src</a></li>
</ul> </ul>
</div> </div>
</div> </div>
</nav> </nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i> <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../../index.html">Lorax</a> <a href="../../index.html">Lorax</a>
</nav> </nav>
<div class="wy-nav-content"> <div class="wy-nav-content">
<div class="rst-content"> <div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs"> <ul class="wy-breadcrumbs">
<li><a href="../../index.html" class="icon icon-home"></a> &raquo;</li> <li><a href="../../index.html" class="icon icon-home"></a> &raquo;</li>
<li><a href="../index.html">Module code</a> &raquo;</li> <li><a href="../index.html">Module code</a> &raquo;</li>
<li><a href="../pylorax.html">pylorax</a> &raquo;</li> <li><a href="../pylorax.html">pylorax</a> &raquo;</li>
<li>pylorax.cmdline</li> <li>pylorax.cmdline</li>
<li class="wy-breadcrumbs-aside"> <li class="wy-breadcrumbs-aside">
</li> </li>
</ul> </ul>
<hr/> <hr/>
</div> </div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody"> <div itemprop="articleBody">
<h1>Source code for pylorax.cmdline</h1><div class="highlight"><pre> <h1>Source code for pylorax.cmdline</h1><div class="highlight"><pre>
<span></span><span class="c1">#</span> <span></span><span class="c1">#</span>
<span class="c1"># cmdline.py</span> <span class="c1"># cmdline.py</span>
@ -183,7 +94,7 @@
<span class="kn">import</span> <span class="nn">sys</span> <span class="kn">import</span> <span class="nn">sys</span>
<span class="kn">import</span> <span class="nn">argparse</span> <span class="kn">import</span> <span class="nn">argparse</span>
<span class="kn">from</span> <span class="nn">pylorax</span> <span class="kn">import</span> <span class="n">vernum</span> <span class="kn">from</span> <span class="nn">pylorax</span> <span class="kn">import</span> <span class="n">DEFAULT_RELEASEVER</span><span class="p">,</span> <span class="n">vernum</span>
<span class="n">version</span> <span class="o">=</span> <span class="s2">&quot;</span><span class="si">{0}</span><span class="s2">-</span><span class="si">{1}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">0</span><span class="p">]),</span> <span class="n">vernum</span><span class="p">)</span> <span class="n">version</span> <span class="o">=</span> <span class="s2">&quot;</span><span class="si">{0}</span><span class="s2">-</span><span class="si">{1}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">0</span><span class="p">]),</span> <span class="n">vernum</span><span class="p">)</span>
@ -467,7 +378,7 @@
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">&quot;--project&quot;</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="s2">&quot;Linux&quot;</span><span class="p">,</span> <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">&quot;--project&quot;</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="s2">&quot;Linux&quot;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="s2">&quot;substituted for @PROJECT@ in bootloader config files&quot;</span><span class="p">)</span> <span class="n">help</span><span class="o">=</span><span class="s2">&quot;substituted for @PROJECT@ in bootloader config files&quot;</span><span class="p">)</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">&quot;--releasever&quot;</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="s2">&quot;34&quot;</span><span class="p">,</span> <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">&quot;--releasever&quot;</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="n">DEFAULT_RELEASEVER</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="s2">&quot;substituted for @VERSION@ in bootloader config files&quot;</span><span class="p">)</span> <span class="n">help</span><span class="o">=</span><span class="s2">&quot;substituted for @VERSION@ in bootloader config files&quot;</span><span class="p">)</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">&quot;--volid&quot;</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">help</span><span class="o">=</span><span class="s2">&quot;volume id&quot;</span><span class="p">)</span> <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">&quot;--volid&quot;</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">help</span><span class="o">=</span><span class="s2">&quot;volume id&quot;</span><span class="p">)</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">&quot;--squashfs-only&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">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">&quot;--squashfs-only&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>
@ -483,46 +394,30 @@
</pre></div> </pre></div>
</div> </div>
</div> </div>
<footer> <footer>
<hr/> <hr/>
<div role="contentinfo"> <div role="contentinfo">
<p> <p>&#169; Copyright 2018, Red Hat, Inc..</p>
&#169; Copyright 2018, Red Hat, Inc..
</p>
</div> </div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer> </footer>
</div> </div>
</div> </div>
</section> </section>
</div> </div>
<script>
<script type="text/javascript">
jQuery(function () { jQuery(function () {
SphinxRtdTheme.Navigation.enable(true); SphinxRtdTheme.Navigation.enable(true);
}); });
</script> </script>
</body> </body>
</html> </html>

View File

@ -1,69 +1,31 @@
<!DOCTYPE html> <!DOCTYPE html>
<html class="writer-html5" lang="en" > <html class="writer-html5" lang="en" >
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>pylorax.creator &mdash; Lorax 36.4 documentation</title>
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
<title>pylorax.creator &mdash; Lorax 34.10 documentation</title> <script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script>
<link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
<script src="../../_static/jquery.js"></script> <script src="../../_static/jquery.js"></script>
<script src="../../_static/underscore.js"></script> <script src="../../_static/underscore.js"></script>
<script src="../../_static/doctools.js"></script> <script src="../../_static/doctools.js"></script>
<script src="../../_static/js/theme.js"></script>
<script type="text/javascript" src="../../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../../genindex.html" /> <link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" /> <link rel="search" title="Search" href="../../search.html" />
</head> </head>
<body class="wy-body-for-nav"> <body class="wy-body-for-nav">
<div class="wy-grid-for-nav"> <div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side"> <nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll"> <div class="wy-side-scroll">
<div class="wy-side-nav-search" > <div class="wy-side-nav-search" >
<a href="../../index.html" class="icon icon-home"> Lorax <a href="../../index.html" class="icon icon-home"> Lorax
</a> </a>
<div class="version"> <div class="version">
34.10 36.4
</div> </div>
<div role="search"> <div role="search">
<form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" /> <input type="text" name="q" placeholder="Search docs" />
@ -71,18 +33,7 @@
<input type="hidden" name="area" value="default" /> <input type="hidden" name="area" value="default" />
</form> </form>
</div> </div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul> <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">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="../../intro.html#before-lorax">Before Lorax</a></li>
@ -93,71 +44,31 @@
<li class="toctree-l1"><a class="reference internal" href="../../modules.html">src</a></li> <li class="toctree-l1"><a class="reference internal" href="../../modules.html">src</a></li>
</ul> </ul>
</div> </div>
</div> </div>
</nav> </nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i> <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../../index.html">Lorax</a> <a href="../../index.html">Lorax</a>
</nav> </nav>
<div class="wy-nav-content"> <div class="wy-nav-content">
<div class="rst-content"> <div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs"> <ul class="wy-breadcrumbs">
<li><a href="../../index.html" class="icon icon-home"></a> &raquo;</li> <li><a href="../../index.html" class="icon icon-home"></a> &raquo;</li>
<li><a href="../index.html">Module code</a> &raquo;</li> <li><a href="../index.html">Module code</a> &raquo;</li>
<li><a href="../pylorax.html">pylorax</a> &raquo;</li> <li><a href="../pylorax.html">pylorax</a> &raquo;</li>
<li>pylorax.creator</li> <li>pylorax.creator</li>
<li class="wy-breadcrumbs-aside"> <li class="wy-breadcrumbs-aside">
</li> </li>
</ul> </ul>
<hr/> <hr/>
</div> </div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody"> <div itemprop="articleBody">
<h1>Source code for pylorax.creator</h1><div class="highlight"><pre> <h1>Source code for pylorax.creator</h1><div class="highlight"><pre>
<span></span><span class="c1">#</span> <span></span><span class="c1">#</span>
<span class="c1"># Copyright (C) 2011-2018 Red Hat, Inc.</span> <span class="c1"># Copyright (C) 2011-2018 Red Hat, Inc.</span>
@ -195,10 +106,10 @@
<span class="kn">from</span> <span class="nn">pykickstart.version</span> <span class="kn">import</span> <span class="n">makeVersion</span> <span class="kn">from</span> <span class="nn">pykickstart.version</span> <span class="kn">import</span> <span class="n">makeVersion</span>
<span class="c1"># Use the Lorax treebuilder branch for iso creation</span> <span class="c1"># Use the Lorax treebuilder branch for iso creation</span>
<span class="kn">from</span> <span class="nn">pylorax</span> <span class="kn">import</span> <span class="n">ArchData</span> <span class="kn">from</span> <span class="nn">pylorax</span> <span class="kn">import</span> <span class="n">DEFAULT_RELEASEVER</span><span class="p">,</span> <span class="n">ArchData</span>
<span class="kn">from</span> <span class="nn">pylorax.base</span> <span class="kn">import</span> <span class="n">DataHolder</span> <span class="kn">from</span> <span class="nn">pylorax.base</span> <span class="kn">import</span> <span class="n">DataHolder</span>
<span class="kn">from</span> <span class="nn">pylorax.executils</span> <span class="kn">import</span> <span class="n">execWithRedirect</span><span class="p">,</span> <span class="n">runcmd</span> <span class="kn">from</span> <span class="nn">pylorax.executils</span> <span class="kn">import</span> <span class="n">execWithRedirect</span>
<span class="kn">from</span> <span class="nn">pylorax.imgutils</span> <span class="kn">import</span> <span class="n">PartitionMount</span> <span class="kn">from</span> <span class="nn">pylorax.imgutils</span> <span class="kn">import</span> <span class="n">DracutChroot</span><span class="p">,</span> <span class="n">PartitionMount</span>
<span class="kn">from</span> <span class="nn">pylorax.imgutils</span> <span class="kn">import</span> <span class="n">mount</span><span class="p">,</span> <span class="n">umount</span><span class="p">,</span> <span class="n">Mount</span> <span class="kn">from</span> <span class="nn">pylorax.imgutils</span> <span class="kn">import</span> <span class="n">mount</span><span class="p">,</span> <span class="n">umount</span><span class="p">,</span> <span class="n">Mount</span>
<span class="kn">from</span> <span class="nn">pylorax.imgutils</span> <span class="kn">import</span> <span class="n">mksquashfs</span><span class="p">,</span> <span class="n">mkrootfsimg</span> <span class="kn">from</span> <span class="nn">pylorax.imgutils</span> <span class="kn">import</span> <span class="n">mksquashfs</span><span class="p">,</span> <span class="n">mkrootfsimg</span>
<span class="kn">from</span> <span class="nn">pylorax.imgutils</span> <span class="kn">import</span> <span class="n">copytree</span> <span class="kn">from</span> <span class="nn">pylorax.imgutils</span> <span class="kn">import</span> <span class="n">copytree</span>
@ -310,7 +221,7 @@
<div class="viewcode-block" id="make_appliance"><a class="viewcode-back" href="../../pylorax.html#pylorax.creator.make_appliance">[docs]</a><span class="k">def</span> <span class="nf">make_appliance</span><span class="p">(</span><span class="n">disk_img</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">template</span><span class="p">,</span> <span class="n">outfile</span><span class="p">,</span> <span class="n">networks</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">ram</span><span class="o">=</span><span class="mi">1024</span><span class="p">,</span> <div class="viewcode-block" id="make_appliance"><a class="viewcode-back" href="../../pylorax.html#pylorax.creator.make_appliance">[docs]</a><span class="k">def</span> <span class="nf">make_appliance</span><span class="p">(</span><span class="n">disk_img</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">template</span><span class="p">,</span> <span class="n">outfile</span><span class="p">,</span> <span class="n">networks</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">ram</span><span class="o">=</span><span class="mi">1024</span><span class="p">,</span>
<span class="n">vcpus</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">arch</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">title</span><span class="o">=</span><span class="s2">&quot;Linux&quot;</span><span class="p">,</span> <span class="n">project</span><span class="o">=</span><span class="s2">&quot;Linux&quot;</span><span class="p">,</span> <span class="n">vcpus</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">arch</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">title</span><span class="o">=</span><span class="s2">&quot;Linux&quot;</span><span class="p">,</span> <span class="n">project</span><span class="o">=</span><span class="s2">&quot;Linux&quot;</span><span class="p">,</span>
<span class="n">releasever</span><span class="o">=</span><span class="s2">&quot;34&quot;</span><span class="p">):</span> <span class="n">releasever</span><span class="o">=</span><span class="n">DEFAULT_RELEASEVER</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span> <span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Generate an appliance description file</span> <span class="sd"> Generate an appliance description file</span>
@ -324,7 +235,7 @@
<span class="sd"> :param str arch: CPU architecture. Default is &#39;x86_64&#39;</span> <span class="sd"> :param str arch: CPU architecture. Default is &#39;x86_64&#39;</span>
<span class="sd"> :param str title: Title, passed to template. Default is &#39;Linux&#39;</span> <span class="sd"> :param str title: Title, passed to template. Default is &#39;Linux&#39;</span>
<span class="sd"> :param str project: Project, passed to template. Default is &#39;Linux&#39;</span> <span class="sd"> :param str project: Project, passed to template. Default is &#39;Linux&#39;</span>
<span class="sd"> :param str releasever: Release version, passed to template. Default is 34</span> <span class="sd"> :param str releasever: Release version, passed to template.</span>
<span class="sd"> &quot;&quot;&quot;</span> <span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="ow">not</span> <span class="p">(</span><span class="n">disk_img</span> <span class="ow">and</span> <span class="n">template</span> <span class="ow">and</span> <span class="n">outfile</span><span class="p">):</span> <span class="k">if</span> <span class="ow">not</span> <span class="p">(</span><span class="n">disk_img</span> <span class="ow">and</span> <span class="n">template</span> <span class="ow">and</span> <span class="n">outfile</span><span class="p">):</span>
<span class="k">return</span> <span class="kc">None</span> <span class="k">return</span> <span class="kc">None</span>
@ -379,7 +290,7 @@
<span class="n">product</span> <span class="o">=</span> <span class="n">DataHolder</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="n">opts</span><span class="o">.</span><span class="n">project</span><span class="p">,</span> <span class="n">version</span><span class="o">=</span><span class="n">opts</span><span class="o">.</span><span class="n">releasever</span><span class="p">,</span> <span class="n">release</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="n">product</span> <span class="o">=</span> <span class="n">DataHolder</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="n">opts</span><span class="o">.</span><span class="n">project</span><span class="p">,</span> <span class="n">version</span><span class="o">=</span><span class="n">opts</span><span class="o">.</span><span class="n">releasever</span><span class="p">,</span> <span class="n">release</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">,</span>
<span class="n">variant</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="n">bugurl</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="n">isfinal</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> <span class="n">variant</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="n">bugurl</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="n">isfinal</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
<span class="n">rb</span> <span class="o">=</span> <span class="n">RuntimeBuilder</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">fake_dbo</span><span class="p">)</span> <span class="n">rb</span> <span class="o">=</span> <span class="n">RuntimeBuilder</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">fake_dbo</span><span class="p">,</span> <span class="n">skip_branding</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
<span class="n">compression</span><span class="p">,</span> <span class="n">compressargs</span> <span class="o">=</span> <span class="n">squashfs_args</span><span class="p">(</span><span class="n">opts</span><span class="p">)</span> <span class="n">compression</span><span class="p">,</span> <span class="n">compressargs</span> <span class="o">=</span> <span class="n">squashfs_args</span><span class="p">(</span><span class="n">opts</span><span class="p">)</span>
<span class="k">if</span> <span class="n">opts</span><span class="o">.</span><span class="n">squashfs_only</span><span class="p">:</span> <span class="k">if</span> <span class="n">opts</span><span class="o">.</span><span class="n">squashfs_only</span><span class="p">:</span>
@ -404,7 +315,7 @@
<span class="c1"># cmdline dracut args override the defaults, but need to be parsed</span> <span class="c1"># cmdline dracut args override the defaults, but need to be parsed</span>
<span class="n">log</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;dracut args = </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">dracut_args</span><span class="p">(</span><span class="n">opts</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;dracut args = </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">dracut_args</span><span class="p">(</span><span class="n">opts</span><span class="p">))</span>
<span class="n">dracut</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;dracut&quot;</span><span class="p">,</span> <span class="s2">&quot;--nomdadmconf&quot;</span><span class="p">,</span> <span class="s2">&quot;--nolvmconf&quot;</span><span class="p">]</span> <span class="o">+</span> <span class="n">dracut_args</span><span class="p">(</span><span class="n">opts</span><span class="p">)</span> <span class="n">args</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;--nomdadmconf&quot;</span><span class="p">,</span> <span class="s2">&quot;--nolvmconf&quot;</span><span class="p">]</span> <span class="o">+</span> <span class="n">dracut_args</span><span class="p">(</span><span class="n">opts</span><span class="p">)</span>
<span class="n">kdir</span> <span class="o">=</span> <span class="s2">&quot;boot&quot;</span> <span class="n">kdir</span> <span class="o">=</span> <span class="s2">&quot;boot&quot;</span>
<span class="k">if</span> <span class="n">opts</span><span class="o">.</span><span class="n">ostree</span><span class="p">:</span> <span class="k">if</span> <span class="n">opts</span><span class="o">.</span><span class="n">ostree</span><span class="p">:</span>
@ -433,25 +344,18 @@
<span class="c1"># Write the new initramfs directly to the results directory</span> <span class="c1"># Write the new initramfs directly to the results directory</span>
<span class="n">os</span><span class="o">.</span><span class="n">mkdir</span><span class="p">(</span><span class="n">joinpaths</span><span class="p">(</span><span class="n">sys_root_dir</span><span class="p">,</span> <span class="s2">&quot;results&quot;</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">joinpaths</span><span class="p">(</span><span class="n">sys_root_dir</span><span class="p">,</span> <span class="s2">&quot;results&quot;</span><span class="p">))</span>
<span class="n">mount</span><span class="p">(</span><span class="n">results_dir</span><span class="p">,</span> <span class="n">opts</span><span class="o">=</span><span class="s2">&quot;bind&quot;</span><span class="p">,</span> <span class="n">mnt</span><span class="o">=</span><span class="n">joinpaths</span><span class="p">(</span><span class="n">sys_root_dir</span><span class="p">,</span> <span class="s2">&quot;results&quot;</span><span class="p">))</span> <span class="k">with</span> <span class="n">DracutChroot</span><span class="p">(</span><span class="n">sys_root_dir</span><span class="p">,</span> <span class="n">bind</span><span class="o">=</span><span class="p">[(</span><span class="n">results_dir</span><span class="p">,</span> <span class="s2">&quot;/results&quot;</span><span class="p">)])</span> <span class="k">as</span> <span class="n">dracut</span><span class="p">:</span>
<span class="c1"># Dracut runs out of space inside the minimal rootfs image</span> <span class="k">for</span> <span class="n">kernel</span> <span class="ow">in</span> <span class="n">kernels</span><span class="p">:</span>
<span class="n">mount</span><span class="p">(</span><span class="s2">&quot;/var/tmp&quot;</span><span class="p">,</span> <span class="n">opts</span><span class="o">=</span><span class="s2">&quot;bind&quot;</span><span class="p">,</span> <span class="n">mnt</span><span class="o">=</span><span class="n">joinpaths</span><span class="p">(</span><span class="n">sys_root_dir</span><span class="p">,</span> <span class="s2">&quot;var/tmp&quot;</span><span class="p">))</span> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">kernel</span><span class="p">,</span> <span class="s2">&quot;initrd&quot;</span><span class="p">):</span>
<span class="k">for</span> <span class="n">kernel</span> <span class="ow">in</span> <span class="n">kernels</span><span class="p">:</span> <span class="n">outfile</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">basename</span><span class="p">(</span><span class="n">kernel</span><span class="o">.</span><span class="n">initrd</span><span class="o">.</span><span class="n">path</span><span class="p">)</span>
<span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">kernel</span><span class="p">,</span> <span class="s2">&quot;initrd&quot;</span><span class="p">):</span> <span class="k">else</span><span class="p">:</span>
<span class="n">outfile</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">basename</span><span class="p">(</span><span class="n">kernel</span><span class="o">.</span><span class="n">initrd</span><span class="o">.</span><span class="n">path</span><span class="p">)</span> <span class="c1"># Construct an initrd from the kernel name</span>
<span class="k">else</span><span class="p">:</span> <span class="n">outfile</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">basename</span><span class="p">(</span><span class="n">kernel</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s2">&quot;vmlinuz-&quot;</span><span class="p">,</span> <span class="s2">&quot;initrd-&quot;</span><span class="p">)</span> <span class="o">+</span> <span class="s2">&quot;.img&quot;</span><span class="p">)</span>
<span class="c1"># Construct an initrd from the kernel name</span> <span class="n">log</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;rebuilding </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">outfile</span><span class="p">)</span>
<span class="n">outfile</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">basename</span><span class="p">(</span><span class="n">kernel</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s2">&quot;vmlinuz-&quot;</span><span class="p">,</span> <span class="s2">&quot;initrd-&quot;</span><span class="p">)</span> <span class="o">+</span> <span class="s2">&quot;.img&quot;</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;rebuilding </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">outfile</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;dracut warnings about /proc are safe to ignore&quot;</span><span class="p">)</span>
<span class="n">kver</span> <span class="o">=</span> <span class="n">kernel</span><span class="o">.</span><span class="n">version</span> <span class="n">kver</span> <span class="o">=</span> <span class="n">kernel</span><span class="o">.</span><span class="n">version</span>
<span class="n">cmd</span> <span class="o">=</span> <span class="n">dracut</span> <span class="o">+</span> <span class="p">[</span><span class="s2">&quot;/results/&quot;</span><span class="o">+</span><span class="n">outfile</span><span class="p">,</span> <span class="n">kver</span><span class="p">]</span> <span class="n">dracut</span><span class="o">.</span><span class="n">Run</span><span class="p">(</span><span class="n">args</span> <span class="o">+</span> <span class="p">[</span><span class="s2">&quot;/results/&quot;</span><span class="o">+</span><span class="n">outfile</span><span class="p">,</span> <span class="n">kver</span><span class="p">])</span>
<span class="n">runcmd</span><span class="p">(</span><span class="n">cmd</span><span class="p">,</span> <span class="n">root</span><span class="o">=</span><span class="n">sys_root_dir</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">joinpaths</span><span class="p">(</span><span class="n">sys_root_dir</span><span class="p">,</span> <span class="n">kernel</span><span class="o">.</span><span class="n">path</span><span class="p">),</span> <span class="n">results_dir</span><span class="p">)</span></div>
<span class="n">shutil</span><span class="o">.</span><span class="n">copy2</span><span class="p">(</span><span class="n">joinpaths</span><span class="p">(</span><span class="n">sys_root_dir</span><span class="p">,</span> <span class="n">kernel</span><span class="o">.</span><span class="n">path</span><span class="p">),</span> <span class="n">results_dir</span><span class="p">)</span>
<span class="n">umount</span><span class="p">(</span><span class="n">joinpaths</span><span class="p">(</span><span class="n">sys_root_dir</span><span class="p">,</span> <span class="s2">&quot;var/tmp&quot;</span><span class="p">),</span> <span class="n">delete</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
<span class="n">umount</span><span class="p">(</span><span class="n">joinpaths</span><span class="p">(</span><span class="n">sys_root_dir</span><span class="p">,</span> <span class="s2">&quot;results&quot;</span><span class="p">),</span> <span class="n">delete</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span></div>
<div class="viewcode-block" id="create_pxe_config"><a class="viewcode-back" href="../../pylorax.html#pylorax.creator.create_pxe_config">[docs]</a><span class="k">def</span> <span class="nf">create_pxe_config</span><span class="p">(</span><span class="n">template</span><span class="p">,</span> <span class="n">images_dir</span><span class="p">,</span> <span class="n">live_image_name</span><span class="p">,</span> <span class="n">add_args</span> <span class="o">=</span> <span class="kc">None</span><span class="p">):</span> <div class="viewcode-block" id="create_pxe_config"><a class="viewcode-back" href="../../pylorax.html#pylorax.creator.create_pxe_config">[docs]</a><span class="k">def</span> <span class="nf">create_pxe_config</span><span class="p">(</span><span class="n">template</span><span class="p">,</span> <span class="n">images_dir</span><span class="p">,</span> <span class="n">live_image_name</span><span class="p">,</span> <span class="n">add_args</span> <span class="o">=</span> <span class="kc">None</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span> <span class="sd">&quot;&quot;&quot;</span>
@ -918,46 +822,30 @@
</pre></div> </pre></div>
</div> </div>
</div> </div>
<footer> <footer>
<hr/> <hr/>
<div role="contentinfo"> <div role="contentinfo">
<p> <p>&#169; Copyright 2018, Red Hat, Inc..</p>
&#169; Copyright 2018, Red Hat, Inc..
</p>
</div> </div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer> </footer>
</div> </div>
</div> </div>
</section> </section>
</div> </div>
<script>
<script type="text/javascript">
jQuery(function () { jQuery(function () {
SphinxRtdTheme.Navigation.enable(true); SphinxRtdTheme.Navigation.enable(true);
}); });
</script> </script>
</body> </body>
</html> </html>

View File

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

View File

@ -1,69 +1,31 @@
<!DOCTYPE html> <!DOCTYPE html>
<html class="writer-html5" lang="en" > <html class="writer-html5" lang="en" >
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>pylorax.discinfo &mdash; Lorax 36.0 documentation</title>
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
<title>pylorax.discinfo &mdash; Lorax 34.10 documentation</title> <script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script>
<link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
<script src="../../_static/jquery.js"></script> <script src="../../_static/jquery.js"></script>
<script src="../../_static/underscore.js"></script> <script src="../../_static/underscore.js"></script>
<script src="../../_static/doctools.js"></script> <script src="../../_static/doctools.js"></script>
<script src="../../_static/js/theme.js"></script>
<script type="text/javascript" src="../../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../../genindex.html" /> <link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" /> <link rel="search" title="Search" href="../../search.html" />
</head> </head>
<body class="wy-body-for-nav"> <body class="wy-body-for-nav">
<div class="wy-grid-for-nav"> <div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side"> <nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll"> <div class="wy-side-scroll">
<div class="wy-side-nav-search" > <div class="wy-side-nav-search" >
<a href="../../index.html" class="icon icon-home"> Lorax <a href="../../index.html" class="icon icon-home"> Lorax
</a> </a>
<div class="version"> <div class="version">
34.10 36.0
</div> </div>
<div role="search"> <div role="search">
<form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" /> <input type="text" name="q" placeholder="Search docs" />
@ -71,18 +33,7 @@
<input type="hidden" name="area" value="default" /> <input type="hidden" name="area" value="default" />
</form> </form>
</div> </div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul> <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">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="../../intro.html#before-lorax">Before Lorax</a></li>
@ -93,71 +44,31 @@
<li class="toctree-l1"><a class="reference internal" href="../../modules.html">src</a></li> <li class="toctree-l1"><a class="reference internal" href="../../modules.html">src</a></li>
</ul> </ul>
</div> </div>
</div> </div>
</nav> </nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i> <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../../index.html">Lorax</a> <a href="../../index.html">Lorax</a>
</nav> </nav>
<div class="wy-nav-content"> <div class="wy-nav-content">
<div class="rst-content"> <div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs"> <ul class="wy-breadcrumbs">
<li><a href="../../index.html" class="icon icon-home"></a> &raquo;</li> <li><a href="../../index.html" class="icon icon-home"></a> &raquo;</li>
<li><a href="../index.html">Module code</a> &raquo;</li> <li><a href="../index.html">Module code</a> &raquo;</li>
<li><a href="../pylorax.html">pylorax</a> &raquo;</li> <li><a href="../pylorax.html">pylorax</a> &raquo;</li>
<li>pylorax.discinfo</li> <li>pylorax.discinfo</li>
<li class="wy-breadcrumbs-aside"> <li class="wy-breadcrumbs-aside">
</li> </li>
</ul> </ul>
<hr/> <hr/>
</div> </div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody"> <div itemprop="articleBody">
<h1>Source code for pylorax.discinfo</h1><div class="highlight"><pre> <h1>Source code for pylorax.discinfo</h1><div class="highlight"><pre>
<span></span><span class="c1">#</span> <span></span><span class="c1">#</span>
<span class="c1"># discinfo.py</span> <span class="c1"># discinfo.py</span>
@ -207,46 +118,30 @@
</pre></div> </pre></div>
</div> </div>
</div> </div>
<footer> <footer>
<hr/> <hr/>
<div role="contentinfo"> <div role="contentinfo">
<p> <p>&#169; Copyright 2018, Red Hat, Inc..</p>
&#169; Copyright 2018, Red Hat, Inc..
</p>
</div> </div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer> </footer>
</div> </div>
</div> </div>
</section> </section>
</div> </div>
<script>
<script type="text/javascript">
jQuery(function () { jQuery(function () {
SphinxRtdTheme.Navigation.enable(true); SphinxRtdTheme.Navigation.enable(true);
}); });
</script> </script>
</body> </body>
</html> </html>

View File

@ -1,69 +1,31 @@
<!DOCTYPE html> <!DOCTYPE html>
<html class="writer-html5" lang="en" > <html class="writer-html5" lang="en" >
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>pylorax.dnfbase &mdash; Lorax 36.4 documentation</title>
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
<title>pylorax.dnfbase &mdash; Lorax 34.10 documentation</title> <script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script>
<link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
<script src="../../_static/jquery.js"></script> <script src="../../_static/jquery.js"></script>
<script src="../../_static/underscore.js"></script> <script src="../../_static/underscore.js"></script>
<script src="../../_static/doctools.js"></script> <script src="../../_static/doctools.js"></script>
<script src="../../_static/js/theme.js"></script>
<script type="text/javascript" src="../../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../../genindex.html" /> <link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" /> <link rel="search" title="Search" href="../../search.html" />
</head> </head>
<body class="wy-body-for-nav"> <body class="wy-body-for-nav">
<div class="wy-grid-for-nav"> <div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side"> <nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll"> <div class="wy-side-scroll">
<div class="wy-side-nav-search" > <div class="wy-side-nav-search" >
<a href="../../index.html" class="icon icon-home"> Lorax <a href="../../index.html" class="icon icon-home"> Lorax
</a> </a>
<div class="version"> <div class="version">
34.10 36.4
</div> </div>
<div role="search"> <div role="search">
<form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" /> <input type="text" name="q" placeholder="Search docs" />
@ -71,18 +33,7 @@
<input type="hidden" name="area" value="default" /> <input type="hidden" name="area" value="default" />
</form> </form>
</div> </div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul> <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">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="../../intro.html#before-lorax">Before Lorax</a></li>
@ -93,71 +44,31 @@
<li class="toctree-l1"><a class="reference internal" href="../../modules.html">src</a></li> <li class="toctree-l1"><a class="reference internal" href="../../modules.html">src</a></li>
</ul> </ul>
</div> </div>
</div> </div>
</nav> </nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i> <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../../index.html">Lorax</a> <a href="../../index.html">Lorax</a>
</nav> </nav>
<div class="wy-nav-content"> <div class="wy-nav-content">
<div class="rst-content"> <div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs"> <ul class="wy-breadcrumbs">
<li><a href="../../index.html" class="icon icon-home"></a> &raquo;</li> <li><a href="../../index.html" class="icon icon-home"></a> &raquo;</li>
<li><a href="../index.html">Module code</a> &raquo;</li> <li><a href="../index.html">Module code</a> &raquo;</li>
<li><a href="../pylorax.html">pylorax</a> &raquo;</li> <li><a href="../pylorax.html">pylorax</a> &raquo;</li>
<li>pylorax.dnfbase</li> <li>pylorax.dnfbase</li>
<li class="wy-breadcrumbs-aside"> <li class="wy-breadcrumbs-aside">
</li> </li>
</ul> </ul>
<hr/> <hr/>
</div> </div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody"> <div itemprop="articleBody">
<h1>Source code for pylorax.dnfbase</h1><div class="highlight"><pre> <h1>Source code for pylorax.dnfbase</h1><div class="highlight"><pre>
<span></span><span class="c1"># Copyright (C) 2018 Red Hat, Inc.</span> <span></span><span class="c1"># Copyright (C) 2018 Red Hat, Inc.</span>
<span class="c1">#</span> <span class="c1">#</span>
@ -181,12 +92,12 @@
<span class="kn">import</span> <span class="nn">os</span> <span class="kn">import</span> <span class="nn">os</span>
<span class="kn">import</span> <span class="nn">shutil</span> <span class="kn">import</span> <span class="nn">shutil</span>
<span class="kn">from</span> <span class="nn">pylorax</span> <span class="kn">import</span> <span class="n">DEFAULT_PLATFORM_ID</span> <span class="kn">from</span> <span class="nn">pylorax</span> <span class="kn">import</span> <span class="n">DEFAULT_PLATFORM_ID</span><span class="p">,</span> <span class="n">DEFAULT_RELEASEVER</span>
<span class="kn">from</span> <span class="nn">pylorax.sysutils</span> <span class="kn">import</span> <span class="n">flatconfig</span> <span class="kn">from</span> <span class="nn">pylorax.sysutils</span> <span class="kn">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> <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">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;34&quot;</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="n">DEFAULT_RELEASEVER</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="n">dnfplugins</span><span class="o">=</span><span class="kc">None</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="n">dnfplugins</span><span class="o">=</span><span class="kc">None</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">&quot;&quot;&quot; Create a dnf Base object and setup the repositories and installroot</span>
@ -214,6 +125,8 @@
<span class="k">return</span> <span class="kc">None</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="n">mirrorlists</span> <span class="o">=</span> <span class="n">mirrorlists</span> <span class="ow">or</span> <span class="p">[]</span>
<span class="n">enablerepos</span> <span class="o">=</span> <span class="n">enablerepos</span> <span class="ow">or</span> <span class="p">[]</span>
<span class="n">disablerepos</span> <span class="o">=</span> <span class="n">disablerepos</span> <span class="ow">or</span> <span class="p">[]</span>
<span class="c1"># sanitize the repositories</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">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>
@ -349,46 +262,30 @@
</pre></div> </pre></div>
</div> </div>
</div> </div>
<footer> <footer>
<hr/> <hr/>
<div role="contentinfo"> <div role="contentinfo">
<p> <p>&#169; Copyright 2018, Red Hat, Inc..</p>
&#169; Copyright 2018, Red Hat, Inc..
</p>
</div> </div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer> </footer>
</div> </div>
</div> </div>
</section> </section>
</div> </div>
<script>
<script type="text/javascript">
jQuery(function () { jQuery(function () {
SphinxRtdTheme.Navigation.enable(true); SphinxRtdTheme.Navigation.enable(true);
}); });
</script> </script>
</body> </body>
</html> </html>

View File

@ -1,69 +1,31 @@
<!DOCTYPE html> <!DOCTYPE html>
<html class="writer-html5" lang="en" > <html class="writer-html5" lang="en" >
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>pylorax.dnfhelper &mdash; Lorax 36.0 documentation</title>
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
<title>pylorax.dnfhelper &mdash; Lorax 34.10 documentation</title> <script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script>
<link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
<script src="../../_static/jquery.js"></script> <script src="../../_static/jquery.js"></script>
<script src="../../_static/underscore.js"></script> <script src="../../_static/underscore.js"></script>
<script src="../../_static/doctools.js"></script> <script src="../../_static/doctools.js"></script>
<script src="../../_static/js/theme.js"></script>
<script type="text/javascript" src="../../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../../genindex.html" /> <link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" /> <link rel="search" title="Search" href="../../search.html" />
</head> </head>
<body class="wy-body-for-nav"> <body class="wy-body-for-nav">
<div class="wy-grid-for-nav"> <div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side"> <nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll"> <div class="wy-side-scroll">
<div class="wy-side-nav-search" > <div class="wy-side-nav-search" >
<a href="../../index.html" class="icon icon-home"> Lorax <a href="../../index.html" class="icon icon-home"> Lorax
</a> </a>
<div class="version"> <div class="version">
34.10 36.0
</div> </div>
<div role="search"> <div role="search">
<form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" /> <input type="text" name="q" placeholder="Search docs" />
@ -71,18 +33,7 @@
<input type="hidden" name="area" value="default" /> <input type="hidden" name="area" value="default" />
</form> </form>
</div> </div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul> <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">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="../../intro.html#before-lorax">Before Lorax</a></li>
@ -93,71 +44,31 @@
<li class="toctree-l1"><a class="reference internal" href="../../modules.html">src</a></li> <li class="toctree-l1"><a class="reference internal" href="../../modules.html">src</a></li>
</ul> </ul>
</div> </div>
</div> </div>
</nav> </nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i> <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../../index.html">Lorax</a> <a href="../../index.html">Lorax</a>
</nav> </nav>
<div class="wy-nav-content"> <div class="wy-nav-content">
<div class="rst-content"> <div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs"> <ul class="wy-breadcrumbs">
<li><a href="../../index.html" class="icon icon-home"></a> &raquo;</li> <li><a href="../../index.html" class="icon icon-home"></a> &raquo;</li>
<li><a href="../index.html">Module code</a> &raquo;</li> <li><a href="../index.html">Module code</a> &raquo;</li>
<li><a href="../pylorax.html">pylorax</a> &raquo;</li> <li><a href="../pylorax.html">pylorax</a> &raquo;</li>
<li>pylorax.dnfhelper</li> <li>pylorax.dnfhelper</li>
<li class="wy-breadcrumbs-aside"> <li class="wy-breadcrumbs-aside">
</li> </li>
</ul> </ul>
<hr/> <hr/>
</div> </div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody"> <div itemprop="articleBody">
<h1>Source code for pylorax.dnfhelper</h1><div class="highlight"><pre> <h1>Source code for pylorax.dnfhelper</h1><div class="highlight"><pre>
<span></span><span class="c1">#</span> <span></span><span class="c1">#</span>
<span class="c1"># dnfhelper.py</span> <span class="c1"># dnfhelper.py</span>
@ -272,46 +183,30 @@
</pre></div> </pre></div>
</div> </div>
</div> </div>
<footer> <footer>
<hr/> <hr/>
<div role="contentinfo"> <div role="contentinfo">
<p> <p>&#169; Copyright 2018, Red Hat, Inc..</p>
&#169; Copyright 2018, Red Hat, Inc..
</p>
</div> </div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer> </footer>
</div> </div>
</div> </div>
</section> </section>
</div> </div>
<script>
<script type="text/javascript">
jQuery(function () { jQuery(function () {
SphinxRtdTheme.Navigation.enable(true); SphinxRtdTheme.Navigation.enable(true);
}); });
</script> </script>
</body> </body>
</html> </html>

View File

@ -1,69 +1,31 @@
<!DOCTYPE html> <!DOCTYPE html>
<html class="writer-html5" lang="en" > <html class="writer-html5" lang="en" >
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>pylorax.executils &mdash; Lorax 36.0 documentation</title>
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
<title>pylorax.executils &mdash; Lorax 34.10 documentation</title> <script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script>
<link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
<script src="../../_static/jquery.js"></script> <script src="../../_static/jquery.js"></script>
<script src="../../_static/underscore.js"></script> <script src="../../_static/underscore.js"></script>
<script src="../../_static/doctools.js"></script> <script src="../../_static/doctools.js"></script>
<script src="../../_static/js/theme.js"></script>
<script type="text/javascript" src="../../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../../genindex.html" /> <link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" /> <link rel="search" title="Search" href="../../search.html" />
</head> </head>
<body class="wy-body-for-nav"> <body class="wy-body-for-nav">
<div class="wy-grid-for-nav"> <div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side"> <nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll"> <div class="wy-side-scroll">
<div class="wy-side-nav-search" > <div class="wy-side-nav-search" >
<a href="../../index.html" class="icon icon-home"> Lorax <a href="../../index.html" class="icon icon-home"> Lorax
</a> </a>
<div class="version"> <div class="version">
34.10 36.0
</div> </div>
<div role="search"> <div role="search">
<form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" /> <input type="text" name="q" placeholder="Search docs" />
@ -71,18 +33,7 @@
<input type="hidden" name="area" value="default" /> <input type="hidden" name="area" value="default" />
</form> </form>
</div> </div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul> <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">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="../../intro.html#before-lorax">Before Lorax</a></li>
@ -93,71 +44,31 @@
<li class="toctree-l1"><a class="reference internal" href="../../modules.html">src</a></li> <li class="toctree-l1"><a class="reference internal" href="../../modules.html">src</a></li>
</ul> </ul>
</div> </div>
</div> </div>
</nav> </nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i> <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../../index.html">Lorax</a> <a href="../../index.html">Lorax</a>
</nav> </nav>
<div class="wy-nav-content"> <div class="wy-nav-content">
<div class="rst-content"> <div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs"> <ul class="wy-breadcrumbs">
<li><a href="../../index.html" class="icon icon-home"></a> &raquo;</li> <li><a href="../../index.html" class="icon icon-home"></a> &raquo;</li>
<li><a href="../index.html">Module code</a> &raquo;</li> <li><a href="../index.html">Module code</a> &raquo;</li>
<li><a href="../pylorax.html">pylorax</a> &raquo;</li> <li><a href="../pylorax.html">pylorax</a> &raquo;</li>
<li>pylorax.executils</li> <li>pylorax.executils</li>
<li class="wy-breadcrumbs-aside"> <li class="wy-breadcrumbs-aside">
</li> </li>
</ul> </ul>
<hr/> <hr/>
</div> </div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody"> <div itemprop="articleBody">
<h1>Source code for pylorax.executils</h1><div class="highlight"><pre> <h1>Source code for pylorax.executils</h1><div class="highlight"><pre>
<span></span><span class="c1">#</span> <span></span><span class="c1">#</span>
<span class="c1"># executil.py - subprocess execution utility functions</span> <span class="c1"># executil.py - subprocess execution utility functions</span>
@ -535,46 +446,30 @@
</pre></div> </pre></div>
</div> </div>
</div> </div>
<footer> <footer>
<hr/> <hr/>
<div role="contentinfo"> <div role="contentinfo">
<p> <p>&#169; Copyright 2018, Red Hat, Inc..</p>
&#169; Copyright 2018, Red Hat, Inc..
</p>
</div> </div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer> </footer>
</div> </div>
</div> </div>
</section> </section>
</div> </div>
<script>
<script type="text/javascript">
jQuery(function () { jQuery(function () {
SphinxRtdTheme.Navigation.enable(true); SphinxRtdTheme.Navigation.enable(true);
}); });
</script> </script>
</body> </body>
</html> </html>

View File

@ -1,69 +1,31 @@
<!DOCTYPE html> <!DOCTYPE html>
<html class="writer-html5" lang="en" > <html class="writer-html5" lang="en" >
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>pylorax.imgutils &mdash; Lorax 36.4 documentation</title>
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
<title>pylorax.imgutils &mdash; Lorax 34.10 documentation</title> <script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script>
<link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
<script src="../../_static/jquery.js"></script> <script src="../../_static/jquery.js"></script>
<script src="../../_static/underscore.js"></script> <script src="../../_static/underscore.js"></script>
<script src="../../_static/doctools.js"></script> <script src="../../_static/doctools.js"></script>
<script src="../../_static/js/theme.js"></script>
<script type="text/javascript" src="../../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../../genindex.html" /> <link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" /> <link rel="search" title="Search" href="../../search.html" />
</head> </head>
<body class="wy-body-for-nav"> <body class="wy-body-for-nav">
<div class="wy-grid-for-nav"> <div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side"> <nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll"> <div class="wy-side-scroll">
<div class="wy-side-nav-search" > <div class="wy-side-nav-search" >
<a href="../../index.html" class="icon icon-home"> Lorax <a href="../../index.html" class="icon icon-home"> Lorax
</a> </a>
<div class="version"> <div class="version">
34.10 36.4
</div> </div>
<div role="search"> <div role="search">
<form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" /> <input type="text" name="q" placeholder="Search docs" />
@ -71,18 +33,7 @@
<input type="hidden" name="area" value="default" /> <input type="hidden" name="area" value="default" />
</form> </form>
</div> </div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul> <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">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="../../intro.html#before-lorax">Before Lorax</a></li>
@ -93,71 +44,31 @@
<li class="toctree-l1"><a class="reference internal" href="../../modules.html">src</a></li> <li class="toctree-l1"><a class="reference internal" href="../../modules.html">src</a></li>
</ul> </ul>
</div> </div>
</div> </div>
</nav> </nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i> <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../../index.html">Lorax</a> <a href="../../index.html">Lorax</a>
</nav> </nav>
<div class="wy-nav-content"> <div class="wy-nav-content">
<div class="rst-content"> <div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs"> <ul class="wy-breadcrumbs">
<li><a href="../../index.html" class="icon icon-home"></a> &raquo;</li> <li><a href="../../index.html" class="icon icon-home"></a> &raquo;</li>
<li><a href="../index.html">Module code</a> &raquo;</li> <li><a href="../index.html">Module code</a> &raquo;</li>
<li><a href="../pylorax.html">pylorax</a> &raquo;</li> <li><a href="../pylorax.html">pylorax</a> &raquo;</li>
<li>pylorax.imgutils</li> <li>pylorax.imgutils</li>
<li class="wy-breadcrumbs-aside"> <li class="wy-breadcrumbs-aside">
</li> </li>
</ul> </ul>
<hr/> <hr/>
</div> </div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody"> <div itemprop="articleBody">
<h1>Source code for pylorax.imgutils</h1><div class="highlight"><pre> <h1>Source code for pylorax.imgutils</h1><div class="highlight"><pre>
<span></span><span class="c1"># imgutils.py - utility functions/classes for building disk images</span> <span></span><span class="c1"># imgutils.py - utility functions/classes for building disk images</span>
<span class="c1">#</span> <span class="c1">#</span>
@ -302,7 +213,7 @@
<div class="viewcode-block" id="mksparse"><a class="viewcode-back" href="../../pylorax.html#pylorax.imgutils.mksparse">[docs]</a><span class="k">def</span> <span class="nf">mksparse</span><span class="p">(</span><span class="n">outfile</span><span class="p">,</span> <span class="n">size</span><span class="p">):</span> <div class="viewcode-block" id="mksparse"><a class="viewcode-back" href="../../pylorax.html#pylorax.imgutils.mksparse">[docs]</a><span class="k">def</span> <span class="nf">mksparse</span><span class="p">(</span><span class="n">outfile</span><span class="p">,</span> <span class="n">size</span><span class="p">):</span>
<span class="sd">&#39;&#39;&#39;use os.ftruncate to create a sparse file of the given size.&#39;&#39;&#39;</span> <span class="sd">&#39;&#39;&#39;use os.ftruncate to create a sparse file of the given size.&#39;&#39;&#39;</span>
<span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">outfile</span><span class="p">,</span> <span class="s2">&quot;w&quot;</span><span class="p">)</span> <span class="k">as</span> <span class="n">fobj</span><span class="p">:</span> <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">outfile</span><span class="p">,</span> <span class="s2">&quot;w&quot;</span><span class="p">)</span> <span class="k">as</span> <span class="n">fobj</span><span class="p">:</span>
<span class="n">os</span><span class="o">.</span><span class="n">ftruncate</span><span class="p">(</span><span class="n">fobj</span><span class="o">.</span><span class="n">fileno</span><span class="p">(),</span> <span class="n">size</span><span class="p">)</span></div> <span class="n">os</span><span class="o">.</span><span class="n">ftruncate</span><span class="p">(</span><span class="n">fobj</span><span class="o">.</span><span class="n">fileno</span><span class="p">(),</span> <span class="nb">int</span><span class="p">(</span><span class="n">size</span><span class="p">))</span></div>
<div class="viewcode-block" id="mkqcow2"><a class="viewcode-back" href="../../pylorax.html#pylorax.imgutils.mkqcow2">[docs]</a><span class="k">def</span> <span class="nf">mkqcow2</span><span class="p">(</span><span class="n">outfile</span><span class="p">,</span> <span class="n">size</span><span class="p">,</span> <span class="n">options</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> <div class="viewcode-block" id="mkqcow2"><a class="viewcode-back" href="../../pylorax.html#pylorax.imgutils.mkqcow2">[docs]</a><span class="k">def</span> <span class="nf">mkqcow2</span><span class="p">(</span><span class="n">outfile</span><span class="p">,</span> <span class="n">size</span><span class="p">,</span> <span class="n">options</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
<span class="sd">&#39;&#39;&#39;use qemu-img to create a file of the given size.</span> <span class="sd">&#39;&#39;&#39;use qemu-img to create a file of the given size.</span>
@ -634,6 +545,42 @@
<span class="n">execWithRedirect</span><span class="p">(</span><span class="s2">&quot;kpartx&quot;</span><span class="p">,</span> <span class="p">[</span><span class="s2">&quot;-d&quot;</span><span class="p">,</span> <span class="s2">&quot;-s&quot;</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">disk_img</span><span class="p">])</span></div> <span class="n">execWithRedirect</span><span class="p">(</span><span class="s2">&quot;kpartx&quot;</span><span class="p">,</span> <span class="p">[</span><span class="s2">&quot;-d&quot;</span><span class="p">,</span> <span class="s2">&quot;-s&quot;</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">disk_img</span><span class="p">])</span></div>
<div class="viewcode-block" id="DracutChroot"><a class="viewcode-back" href="../../pylorax.html#pylorax.imgutils.DracutChroot">[docs]</a><span class="k">class</span> <span class="nc">DracutChroot</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Setup the chroot for running dracut inside it, cleanup when done</span>
<span class="sd"> This mount /proc, /dev, and /var/tmp plus optional bind mounted directories</span>
<span class="sd"> as a list of (source, destination) tuples where destination is relative to the chroot.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">root</span><span class="p">,</span> <span class="n">bind</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">root</span> <span class="o">=</span> <span class="n">root</span>
<span class="bp">self</span><span class="o">.</span><span class="n">bind</span> <span class="o">=</span> <span class="p">[(</span><span class="s2">&quot;/var/tmp&quot;</span><span class="p">,</span> <span class="s2">&quot;/var/tmp&quot;</span><span class="p">)]</span> <span class="o">+</span> <span class="p">(</span><span class="n">bind</span> <span class="k">if</span> <span class="n">bind</span> <span class="k">else</span> <span class="p">[])</span>
<span class="k">def</span> <span class="fm">__enter__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="k">for</span> <span class="n">d</span> <span class="ow">in</span> <span class="p">[</span><span class="n">d</span> <span class="k">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">d</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">bind</span><span class="p">]</span> <span class="o">+</span> <span class="p">[</span><span class="s2">&quot;/proc&quot;</span><span class="p">,</span> <span class="s2">&quot;/dev&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">exists</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">root</span> <span class="o">+</span> <span class="n">d</span><span class="p">):</span>
<span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s2">&quot;Making missing dracut chroot directory: </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">d</span><span class="p">)</span>
<span class="n">os</span><span class="o">.</span><span class="n">makedirs</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">root</span> <span class="o">+</span> <span class="n">d</span><span class="p">)</span>
<span class="n">runcmd</span><span class="p">([</span><span class="s2">&quot;mount&quot;</span><span class="p">,</span> <span class="s2">&quot;-t&quot;</span><span class="p">,</span> <span class="s2">&quot;proc&quot;</span><span class="p">,</span> <span class="s2">&quot;-o&quot;</span><span class="p">,</span> <span class="s2">&quot;nosuid,noexec,nodev&quot;</span><span class="p">,</span> <span class="s2">&quot;proc&quot;</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">root</span> <span class="o">+</span> <span class="s2">&quot;/proc&quot;</span> <span class="p">])</span>
<span class="n">runcmd</span><span class="p">([</span><span class="s2">&quot;mount&quot;</span><span class="p">,</span> <span class="s2">&quot;-t&quot;</span><span class="p">,</span> <span class="s2">&quot;devtmpfs&quot;</span><span class="p">,</span> <span class="s2">&quot;-o&quot;</span><span class="p">,</span> <span class="s2">&quot;mode=0755,noexec,nosuid,strictatime&quot;</span><span class="p">,</span> <span class="s2">&quot;devtmpfs&quot;</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">root</span> <span class="o">+</span> <span class="s2">&quot;/dev&quot;</span> <span class="p">])</span>
<span class="k">for</span> <span class="n">s</span><span class="p">,</span> <span class="n">d</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">bind</span><span class="p">:</span>
<span class="n">runcmd</span><span class="p">([</span><span class="s2">&quot;mount&quot;</span><span class="p">,</span> <span class="s2">&quot;-o&quot;</span><span class="p">,</span> <span class="s2">&quot;bind&quot;</span><span class="p">,</span> <span class="n">s</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">root</span> <span class="o">+</span> <span class="n">d</span><span class="p">])</span>
<span class="k">return</span> <span class="bp">self</span>
<span class="k">def</span> <span class="fm">__exit__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">exc_type</span><span class="p">,</span> <span class="n">exc_value</span><span class="p">,</span> <span class="n">tracebk</span><span class="p">):</span>
<span class="n">runcmd</span><span class="p">([</span><span class="s2">&quot;umount&quot;</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">root</span> <span class="o">+</span> <span class="s2">&quot;/proc&quot;</span> <span class="p">])</span>
<span class="n">runcmd</span><span class="p">([</span><span class="s2">&quot;umount&quot;</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">root</span> <span class="o">+</span> <span class="s2">&quot;/dev&quot;</span> <span class="p">])</span>
<span class="c1"># cleanup bind mounts</span>
<span class="k">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">d</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">bind</span><span class="p">:</span>
<span class="n">runcmd</span><span class="p">([</span><span class="s2">&quot;umount&quot;</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">root</span> <span class="o">+</span> <span class="n">d</span> <span class="p">])</span>
<div class="viewcode-block" id="DracutChroot.Run"><a class="viewcode-back" href="../../pylorax.html#pylorax.imgutils.DracutChroot.Run">[docs]</a> <span class="k">def</span> <span class="nf">Run</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">args</span><span class="p">):</span>
<span class="n">runcmd</span><span class="p">([</span><span class="s2">&quot;dracut&quot;</span><span class="p">]</span> <span class="o">+</span> <span class="n">args</span><span class="p">,</span> <span class="n">root</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">root</span><span class="p">)</span></div></div>
<span class="c1">######## Functions for making filesystem images ##########################</span> <span class="c1">######## Functions for making filesystem images ##########################</span>
<div class="viewcode-block" id="mkfsimage"><a class="viewcode-back" href="../../pylorax.html#pylorax.imgutils.mkfsimage">[docs]</a><span class="k">def</span> <span class="nf">mkfsimage</span><span class="p">(</span><span class="n">fstype</span><span class="p">,</span> <span class="n">rootdir</span><span class="p">,</span> <span class="n">outfile</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">mkfsargs</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">mountargs</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="n">graft</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> <div class="viewcode-block" id="mkfsimage"><a class="viewcode-back" href="../../pylorax.html#pylorax.imgutils.mkfsimage">[docs]</a><span class="k">def</span> <span class="nf">mkfsimage</span><span class="p">(</span><span class="n">fstype</span><span class="p">,</span> <span class="n">rootdir</span><span class="p">,</span> <span class="n">outfile</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">mkfsargs</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">mountargs</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="n">graft</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
@ -727,46 +674,30 @@
</pre></div> </pre></div>
</div> </div>
</div> </div>
<footer> <footer>
<hr/> <hr/>
<div role="contentinfo"> <div role="contentinfo">
<p> <p>&#169; Copyright 2018, Red Hat, Inc..</p>
&#169; Copyright 2018, Red Hat, Inc..
</p>
</div> </div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer> </footer>
</div> </div>
</div> </div>
</section> </section>
</div> </div>
<script>
<script type="text/javascript">
jQuery(function () { jQuery(function () {
SphinxRtdTheme.Navigation.enable(true); SphinxRtdTheme.Navigation.enable(true);
}); });
</script> </script>
</body> </body>
</html> </html>

View File

@ -1,69 +1,31 @@
<!DOCTYPE html> <!DOCTYPE html>
<html class="writer-html5" lang="en" > <html class="writer-html5" lang="en" >
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>pylorax.installer &mdash; Lorax 36.4 documentation</title>
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
<title>pylorax.installer &mdash; Lorax 34.10 documentation</title> <script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script>
<link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
<script src="../../_static/jquery.js"></script> <script src="../../_static/jquery.js"></script>
<script src="../../_static/underscore.js"></script> <script src="../../_static/underscore.js"></script>
<script src="../../_static/doctools.js"></script> <script src="../../_static/doctools.js"></script>
<script src="../../_static/js/theme.js"></script>
<script type="text/javascript" src="../../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../../genindex.html" /> <link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" /> <link rel="search" title="Search" href="../../search.html" />
</head> </head>
<body class="wy-body-for-nav"> <body class="wy-body-for-nav">
<div class="wy-grid-for-nav"> <div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side"> <nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll"> <div class="wy-side-scroll">
<div class="wy-side-nav-search" > <div class="wy-side-nav-search" >
<a href="../../index.html" class="icon icon-home"> Lorax <a href="../../index.html" class="icon icon-home"> Lorax
</a> </a>
<div class="version"> <div class="version">
34.10 36.4
</div> </div>
<div role="search"> <div role="search">
<form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" /> <input type="text" name="q" placeholder="Search docs" />
@ -71,18 +33,7 @@
<input type="hidden" name="area" value="default" /> <input type="hidden" name="area" value="default" />
</form> </form>
</div> </div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul> <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">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="../../intro.html#before-lorax">Before Lorax</a></li>
@ -93,71 +44,31 @@
<li class="toctree-l1"><a class="reference internal" href="../../modules.html">src</a></li> <li class="toctree-l1"><a class="reference internal" href="../../modules.html">src</a></li>
</ul> </ul>
</div> </div>
</div> </div>
</nav> </nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i> <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../../index.html">Lorax</a> <a href="../../index.html">Lorax</a>
</nav> </nav>
<div class="wy-nav-content"> <div class="wy-nav-content">
<div class="rst-content"> <div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs"> <ul class="wy-breadcrumbs">
<li><a href="../../index.html" class="icon icon-home"></a> &raquo;</li> <li><a href="../../index.html" class="icon icon-home"></a> &raquo;</li>
<li><a href="../index.html">Module code</a> &raquo;</li> <li><a href="../index.html">Module code</a> &raquo;</li>
<li><a href="../pylorax.html">pylorax</a> &raquo;</li> <li><a href="../pylorax.html">pylorax</a> &raquo;</li>
<li>pylorax.installer</li> <li>pylorax.installer</li>
<li class="wy-breadcrumbs-aside"> <li class="wy-breadcrumbs-aside">
</li> </li>
</ul> </ul>
<hr/> <hr/>
</div> </div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody"> <div itemprop="articleBody">
<h1>Source code for pylorax.installer</h1><div class="highlight"><pre> <h1>Source code for pylorax.installer</h1><div class="highlight"><pre>
<span></span><span class="c1">#</span> <span></span><span class="c1">#</span>
<span class="c1"># Copyright (C) 2011-2018 Red Hat, Inc.</span> <span class="c1"># Copyright (C) 2011-2018 Red Hat, Inc.</span>
@ -369,7 +280,7 @@
<span class="c1"># Setup the cmdline args</span> <span class="c1"># Setup the cmdline args</span>
<span class="c1"># ======================</span> <span class="c1"># ======================</span>
<span class="n">cmdline_args</span> <span class="o">=</span> <span class="s2">&quot;ks=file:/</span><span class="si">%s</span><span class="s2">&quot;</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">basename</span><span class="p">(</span><span class="n">ks_paths</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> <span class="n">cmdline_args</span> <span class="o">=</span> <span class="s2">&quot;inst.ks=file:/</span><span class="si">%s</span><span class="s2">&quot;</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">basename</span><span class="p">(</span><span class="n">ks_paths</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
<span class="n">cmdline_args</span> <span class="o">+=</span> <span class="s2">&quot; inst.stage2=hd:LABEL=</span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">udev_escape</span><span class="p">(</span><span class="n">iso</span><span class="o">.</span><span class="n">label</span><span class="p">)</span> <span class="n">cmdline_args</span> <span class="o">+=</span> <span class="s2">&quot; inst.stage2=hd:LABEL=</span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">udev_escape</span><span class="p">(</span><span class="n">iso</span><span class="o">.</span><span class="n">label</span><span class="p">)</span>
<span class="k">if</span> <span class="n">opts</span><span class="o">.</span><span class="n">proxy</span><span class="p">:</span> <span class="k">if</span> <span class="n">opts</span><span class="o">.</span><span class="n">proxy</span><span class="p">:</span>
<span class="n">cmdline_args</span> <span class="o">+=</span> <span class="s2">&quot; inst.proxy=</span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">opts</span><span class="o">.</span><span class="n">proxy</span> <span class="n">cmdline_args</span> <span class="o">+=</span> <span class="s2">&quot; inst.proxy=</span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">opts</span><span class="o">.</span><span class="n">proxy</span>
@ -577,12 +488,17 @@
<span class="n">setfiles_args</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;-e&quot;</span><span class="p">,</span> <span class="s2">&quot;/proc&quot;</span><span class="p">,</span> <span class="s2">&quot;-e&quot;</span><span class="p">,</span> <span class="s2">&quot;/sys&quot;</span><span class="p">,</span> <span class="n">setfiles_args</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;-e&quot;</span><span class="p">,</span> <span class="s2">&quot;/proc&quot;</span><span class="p">,</span> <span class="s2">&quot;-e&quot;</span><span class="p">,</span> <span class="s2">&quot;/sys&quot;</span><span class="p">,</span>
<span class="s2">&quot;/etc/selinux/targeted/contexts/files/file_contexts&quot;</span><span class="p">,</span> <span class="s2">&quot;/&quot;</span><span class="p">]</span> <span class="s2">&quot;/etc/selinux/targeted/contexts/files/file_contexts&quot;</span><span class="p">,</span> <span class="s2">&quot;/&quot;</span><span class="p">]</span>
<span class="n">execWithRedirect</span><span class="p">(</span><span class="s2">&quot;sync&quot;</span><span class="p">,</span> <span class="p">[</span><span class="s2">&quot;-f&quot;</span><span class="p">,</span> <span class="n">dirinstall_path</span><span class="p">])</span>
<span class="k">if</span> <span class="s2">&quot;--dirinstall&quot;</span> <span class="ow">in</span> <span class="n">args</span><span class="p">:</span> <span class="k">if</span> <span class="s2">&quot;--dirinstall&quot;</span> <span class="ow">in</span> <span class="n">args</span><span class="p">:</span>
<span class="c1"># setfiles may not be available, warn instead of fail</span> <span class="c1"># setfiles may not be available, warn instead of fail</span>
<span class="k">try</span><span class="p">:</span> <span class="k">try</span><span class="p">:</span>
<span class="n">execWithRedirect</span><span class="p">(</span><span class="s2">&quot;setfiles&quot;</span><span class="p">,</span> <span class="n">setfiles_args</span><span class="p">,</span> <span class="n">root</span><span class="o">=</span><span class="n">dirinstall_path</span><span class="p">)</span> <span class="n">execWithRedirect</span><span class="p">(</span><span class="s2">&quot;setfiles&quot;</span><span class="p">,</span> <span class="n">setfiles_args</span><span class="p">,</span> <span class="n">root</span><span class="o">=</span><span class="n">dirinstall_path</span><span class="p">)</span>
<span class="k">except</span> <span class="p">(</span><span class="n">subprocess</span><span class="o">.</span><span class="n">CalledProcessError</span><span class="p">,</span> <span class="ne">OSError</span><span class="p">)</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span> <span class="k">except</span> <span class="p">(</span><span class="n">subprocess</span><span class="o">.</span><span class="n">CalledProcessError</span><span class="p">,</span> <span class="ne">OSError</span><span class="p">)</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">warning</span><span class="p">(</span><span class="s2">&quot;Running setfiles on install tree failed: </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</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;Running setfiles on install tree failed: </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">))</span>
<span class="k">if</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="n">disk_img</span><span class="p">):</span>
<span class="n">execWithRedirect</span><span class="p">(</span><span class="s2">&quot;du&quot;</span><span class="p">,</span> <span class="p">[</span><span class="s2">&quot;-B&quot;</span><span class="p">,</span> <span class="s2">&quot;1&quot;</span><span class="p">,</span> <span class="n">disk_img</span><span class="p">])</span>
<span class="n">execWithRedirect</span><span class="p">(</span><span class="s2">&quot;fstrim&quot;</span><span class="p">,</span> <span class="p">[</span><span class="s2">&quot;-v&quot;</span><span class="p">,</span> <span class="n">dirinstall_path</span><span class="p">])</span>
<span class="k">else</span><span class="p">:</span> <span class="k">else</span><span class="p">:</span>
<span class="k">with</span> <span class="n">PartitionMount</span><span class="p">(</span><span class="n">disk_img</span><span class="p">)</span> <span class="k">as</span> <span class="n">img_mount</span><span class="p">:</span> <span class="k">with</span> <span class="n">PartitionMount</span><span class="p">(</span><span class="n">disk_img</span><span class="p">)</span> <span class="k">as</span> <span class="n">img_mount</span><span class="p">:</span>
<span class="k">if</span> <span class="n">img_mount</span> <span class="ow">and</span> <span class="n">img_mount</span><span class="o">.</span><span class="n">mount_dir</span><span class="p">:</span> <span class="k">if</span> <span class="n">img_mount</span> <span class="ow">and</span> <span class="n">img_mount</span><span class="o">.</span><span class="n">mount_dir</span><span class="p">:</span>
@ -593,7 +509,10 @@
<span class="c1"># For image installs, run fstrim to discard unused blocks. This way</span> <span class="c1"># For image installs, run fstrim to discard unused blocks. This way</span>
<span class="c1"># unused blocks do not need to be allocated for sparse image types</span> <span class="c1"># unused blocks do not need to be allocated for sparse image types</span>
<span class="n">execWithRedirect</span><span class="p">(</span><span class="s2">&quot;fstrim&quot;</span><span class="p">,</span> <span class="p">[</span><span class="n">img_mount</span><span class="o">.</span><span class="n">mount_dir</span><span class="p">])</span> <span class="n">execWithRedirect</span><span class="p">(</span><span class="s2">&quot;du&quot;</span><span class="p">,</span> <span class="p">[</span><span class="s2">&quot;-B&quot;</span><span class="p">,</span> <span class="s2">&quot;1&quot;</span><span class="p">,</span> <span class="n">disk_img</span><span class="p">])</span>
<span class="n">execWithRedirect</span><span class="p">(</span><span class="s2">&quot;fstrim&quot;</span><span class="p">,</span> <span class="p">[</span><span class="s2">&quot;-v&quot;</span><span class="p">,</span> <span class="n">img_mount</span><span class="o">.</span><span class="n">mount_dir</span><span class="p">])</span>
<span class="k">if</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="n">disk_img</span><span class="p">):</span>
<span class="n">execWithRedirect</span><span class="p">(</span><span class="s2">&quot;du&quot;</span><span class="p">,</span> <span class="p">[</span><span class="s2">&quot;-B&quot;</span><span class="p">,</span> <span class="s2">&quot;1&quot;</span><span class="p">,</span> <span class="n">disk_img</span><span class="p">])</span>
<span class="k">except</span> <span class="p">(</span><span class="n">subprocess</span><span class="o">.</span><span class="n">CalledProcessError</span><span class="p">,</span> <span class="ne">OSError</span><span class="p">)</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span> <span class="k">except</span> <span class="p">(</span><span class="n">subprocess</span><span class="o">.</span><span class="n">CalledProcessError</span><span class="p">,</span> <span class="ne">OSError</span><span class="p">)</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;Running anaconda failed: </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</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;Running anaconda failed: </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">e</span><span class="p">)</span>
@ -685,8 +604,10 @@
<span class="k">if</span> <span class="n">rc</span><span class="p">:</span> <span class="k">if</span> <span class="n">rc</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">InstallError</span><span class="p">(</span><span class="s2">&quot;novirt_install mktar failed: rc=</span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">rc</span><span class="p">)</span> <span class="k">raise</span> <span class="n">InstallError</span><span class="p">(</span><span class="s2">&quot;novirt_install mktar failed: rc=</span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">rc</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span> <span class="k">else</span><span class="p">:</span>
<span class="c1"># For raw disk images, use fallocate to deallocate unused space</span> <span class="c1"># Examine the image for sections that can be made sparse</span>
<span class="n">execWithRedirect</span><span class="p">(</span><span class="s2">&quot;fallocate&quot;</span><span class="p">,</span> <span class="p">[</span><span class="s2">&quot;--dig-holes&quot;</span><span class="p">,</span> <span class="n">disk_img</span><span class="p">],</span> <span class="n">raise_err</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="n">execWithRedirect</span><span class="p">(</span><span class="s2">&quot;du&quot;</span><span class="p">,</span> <span class="p">[</span><span class="s2">&quot;-B&quot;</span><span class="p">,</span> <span class="s2">&quot;1&quot;</span><span class="p">,</span> <span class="n">disk_img</span><span class="p">])</span>
<span class="n">execWithRedirect</span><span class="p">(</span><span class="s2">&quot;fallocate&quot;</span><span class="p">,</span> <span class="p">[</span><span class="s2">&quot;--dig-holes&quot;</span><span class="p">,</span> <span class="s2">&quot;-v&quot;</span><span class="p">,</span> <span class="n">disk_img</span><span class="p">],</span> <span class="n">raise_err</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
<span class="n">execWithRedirect</span><span class="p">(</span><span class="s2">&quot;du&quot;</span><span class="p">,</span> <span class="p">[</span><span class="s2">&quot;-B&quot;</span><span class="p">,</span> <span class="s2">&quot;1&quot;</span><span class="p">,</span> <span class="n">disk_img</span><span class="p">])</span>
<span class="c1"># For make_tar_disk, wrap the result in a tar file, and remove the original disk image.</span> <span class="c1"># For make_tar_disk, wrap the result in a tar file, and remove the original disk image.</span>
<span class="k">if</span> <span class="n">opts</span><span class="o">.</span><span class="n">make_tar_disk</span><span class="p">:</span> <span class="k">if</span> <span class="n">opts</span><span class="o">.</span><span class="n">make_tar_disk</span><span class="p">:</span>
@ -843,46 +764,30 @@
</pre></div> </pre></div>
</div> </div>
</div> </div>
<footer> <footer>
<hr/> <hr/>
<div role="contentinfo"> <div role="contentinfo">
<p> <p>&#169; Copyright 2018, Red Hat, Inc..</p>
&#169; Copyright 2018, Red Hat, Inc..
</p>
</div> </div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer> </footer>
</div> </div>
</div> </div>
</section> </section>
</div> </div>
<script>
<script type="text/javascript">
jQuery(function () { jQuery(function () {
SphinxRtdTheme.Navigation.enable(true); SphinxRtdTheme.Navigation.enable(true);
}); });
</script> </script>
</body> </body>
</html> </html>

View File

@ -1,69 +1,31 @@
<!DOCTYPE html> <!DOCTYPE html>
<html class="writer-html5" lang="en" > <html class="writer-html5" lang="en" >
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>pylorax.ltmpl &mdash; Lorax 36.4 documentation</title>
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
<title>pylorax.ltmpl &mdash; Lorax 34.10 documentation</title> <script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script>
<link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
<script src="../../_static/jquery.js"></script> <script src="../../_static/jquery.js"></script>
<script src="../../_static/underscore.js"></script> <script src="../../_static/underscore.js"></script>
<script src="../../_static/doctools.js"></script> <script src="../../_static/doctools.js"></script>
<script src="../../_static/js/theme.js"></script>
<script type="text/javascript" src="../../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../../genindex.html" /> <link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" /> <link rel="search" title="Search" href="../../search.html" />
</head> </head>
<body class="wy-body-for-nav"> <body class="wy-body-for-nav">
<div class="wy-grid-for-nav"> <div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side"> <nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll"> <div class="wy-side-scroll">
<div class="wy-side-nav-search" > <div class="wy-side-nav-search" >
<a href="../../index.html" class="icon icon-home"> Lorax <a href="../../index.html" class="icon icon-home"> Lorax
</a> </a>
<div class="version"> <div class="version">
34.10 36.4
</div> </div>
<div role="search"> <div role="search">
<form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" /> <input type="text" name="q" placeholder="Search docs" />
@ -71,18 +33,7 @@
<input type="hidden" name="area" value="default" /> <input type="hidden" name="area" value="default" />
</form> </form>
</div> </div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul> <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">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="../../intro.html#before-lorax">Before Lorax</a></li>
@ -93,71 +44,31 @@
<li class="toctree-l1"><a class="reference internal" href="../../modules.html">src</a></li> <li class="toctree-l1"><a class="reference internal" href="../../modules.html">src</a></li>
</ul> </ul>
</div> </div>
</div> </div>
</nav> </nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i> <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../../index.html">Lorax</a> <a href="../../index.html">Lorax</a>
</nav> </nav>
<div class="wy-nav-content"> <div class="wy-nav-content">
<div class="rst-content"> <div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs"> <ul class="wy-breadcrumbs">
<li><a href="../../index.html" class="icon icon-home"></a> &raquo;</li> <li><a href="../../index.html" class="icon icon-home"></a> &raquo;</li>
<li><a href="../index.html">Module code</a> &raquo;</li> <li><a href="../index.html">Module code</a> &raquo;</li>
<li><a href="../pylorax.html">pylorax</a> &raquo;</li> <li><a href="../pylorax.html">pylorax</a> &raquo;</li>
<li>pylorax.ltmpl</li> <li>pylorax.ltmpl</li>
<li class="wy-breadcrumbs-aside"> <li class="wy-breadcrumbs-aside">
</li> </li>
</ul> </ul>
<hr/> <hr/>
</div> </div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody"> <div itemprop="articleBody">
<h1>Source code for pylorax.ltmpl</h1><div class="highlight"><pre> <h1>Source code for pylorax.ltmpl</h1><div class="highlight"><pre>
<span></span><span class="c1">#</span> <span></span><span class="c1">#</span>
<span class="c1"># ltmpl.py</span> <span class="c1"># ltmpl.py</span>
@ -346,8 +257,149 @@
<span class="k">raise</span></div> <span class="k">raise</span></div>
<div class="viewcode-block" id="InstallpkgMixin"><a class="viewcode-back" href="../../pylorax.html#pylorax.ltmpl.InstallpkgMixin">[docs]</a><span class="k">class</span> <span class="nc">InstallpkgMixin</span><span class="p">:</span>
<span class="sd">&quot;&quot;&quot;Helper class used with *Runner classes&quot;&quot;&quot;</span>
<span class="k">def</span> <span class="nf">_pkgver</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">pkg_spec</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Helper to parse package version compare operators</span>
<span class="sd"> Returns a list of matching package objects or an empty list</span>
<span class="sd"> Examples:</span>
<span class="sd"> &quot;bash&gt;4.01&quot;</span>
<span class="sd"> &quot;tmux&gt;=3.1.4-5&quot;</span>
<span class="sd"> &quot;grub2&lt;2.06&quot;</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="c1"># Always return the highest of the filtered results</span>
<span class="k">if</span> <span class="ow">not</span> <span class="nb">any</span><span class="p">(</span><span class="n">g</span> <span class="k">for</span> <span class="n">g</span> <span class="ow">in</span> <span class="p">[</span><span class="s1">&#39;=&#39;</span><span class="p">,</span> <span class="s1">&#39;&lt;&#39;</span><span class="p">,</span> <span class="s1">&#39;&gt;&#39;</span><span class="p">,</span> <span class="s1">&#39;!&#39;</span><span class="p">]</span> <span class="k">if</span> <span class="n">g</span> <span class="ow">in</span> <span class="n">pkg_spec</span><span class="p">):</span>
<span class="n">query</span> <span class="o">=</span> <span class="n">dnf</span><span class="o">.</span><span class="n">subject</span><span class="o">.</span><span class="n">Subject</span><span class="p">(</span><span class="n">pkg_spec</span><span class="p">)</span><span class="o">.</span><span class="n">get_best_query</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dbo</span><span class="o">.</span><span class="n">sack</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">pcv</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="sa">r</span><span class="s1">&#39;([!&lt;&gt;=]+)&#39;</span><span class="p">,</span> <span class="n">pkg_spec</span><span class="p">)</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">pcv</span><span class="p">[</span><span class="mi">0</span><span class="p">]:</span>
<span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="s2">&quot;Missing package name&quot;</span><span class="p">)</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">pcv</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]:</span>
<span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="s2">&quot;Missing version&quot;</span><span class="p">)</span>
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">pcv</span><span class="p">)</span> <span class="o">!=</span> <span class="mi">3</span><span class="p">:</span>
<span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="s2">&quot;Too many comparisons&quot;</span><span class="p">)</span>
<span class="n">query</span> <span class="o">=</span> <span class="n">dnf</span><span class="o">.</span><span class="n">subject</span><span class="o">.</span><span class="n">Subject</span><span class="p">(</span><span class="n">pcv</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span><span class="o">.</span><span class="n">get_best_query</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dbo</span><span class="o">.</span><span class="n">sack</span><span class="p">)</span>
<span class="c1"># Parse the comparison operators</span>
<span class="k">if</span> <span class="n">pcv</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">==</span> <span class="s2">&quot;=&quot;</span> <span class="ow">or</span> <span class="n">pcv</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">==</span> <span class="s2">&quot;==&quot;</span><span class="p">:</span>
<span class="n">query</span><span class="o">.</span><span class="n">filterm</span><span class="p">(</span><span class="n">evr__eq</span> <span class="o">=</span> <span class="n">pcv</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span>
<span class="k">elif</span> <span class="n">pcv</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">==</span> <span class="s2">&quot;!=&quot;</span> <span class="ow">or</span> <span class="n">pcv</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">==</span> <span class="s2">&quot;&lt;&gt;&quot;</span><span class="p">:</span>
<span class="n">query</span><span class="o">.</span><span class="n">filterm</span><span class="p">(</span><span class="n">evr__neq</span> <span class="o">=</span> <span class="n">pcv</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span>
<span class="k">elif</span> <span class="n">pcv</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">==</span> <span class="s2">&quot;&gt;&quot;</span><span class="p">:</span>
<span class="n">query</span><span class="o">.</span><span class="n">filterm</span><span class="p">(</span><span class="n">evr__gt</span> <span class="o">=</span> <span class="n">pcv</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span>
<span class="k">elif</span> <span class="n">pcv</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">==</span> <span class="s2">&quot;&gt;=&quot;</span> <span class="ow">or</span> <span class="n">pcv</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">==</span> <span class="s2">&quot;=&gt;&quot;</span><span class="p">:</span>
<span class="n">query</span><span class="o">.</span><span class="n">filterm</span><span class="p">(</span><span class="n">evr__gte</span> <span class="o">=</span> <span class="n">pcv</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span>
<span class="k">elif</span> <span class="n">pcv</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">==</span> <span class="s2">&quot;&lt;&quot;</span><span class="p">:</span>
<span class="n">query</span><span class="o">.</span><span class="n">filterm</span><span class="p">(</span><span class="n">evr__lt</span> <span class="o">=</span> <span class="n">pcv</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span>
<span class="k">elif</span> <span class="n">pcv</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">==</span> <span class="s2">&quot;&lt;=&quot;</span> <span class="ow">or</span> <span class="n">pcv</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">==</span> <span class="s2">&quot;=&lt;&quot;</span><span class="p">:</span>
<span class="n">query</span><span class="o">.</span><span class="n">filterm</span><span class="p">(</span><span class="n">evr__lte</span> <span class="o">=</span> <span class="n">pcv</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span>
<span class="c1"># MUST be added last. Otherwise it will only return the latest, not the latest of the</span>
<span class="c1"># filtered results.</span>
<span class="n">query</span><span class="o">.</span><span class="n">filterm</span><span class="p">(</span><span class="n">latest</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
<span class="k">return</span> <span class="p">[</span><span class="n">pkg</span> <span class="k">for</span> <span class="n">pkg</span> <span class="ow">in</span> <span class="n">query</span><span class="o">.</span><span class="n">apply</span><span class="p">()]</span>
<div class="viewcode-block" id="InstallpkgMixin.installpkg"><a class="viewcode-back" href="../../pylorax.html#pylorax.ltmpl.InstallpkgMixin.installpkg">[docs]</a> <span class="k">def</span> <span class="nf">installpkg</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">pkgs</span><span class="p">):</span>
<span class="sd">&#39;&#39;&#39;</span>
<span class="sd"> installpkg [--required|--optional] [--except PKGGLOB [--except PKGGLOB ...]] PKGGLOB [PKGGLOB ...]</span>
<span class="sd"> Request installation of all packages matching the given globs.</span>
<span class="sd"> Note that this is just a *request* - nothing is *actually* installed</span>
<span class="sd"> until the &#39;run_pkg_transaction&#39; command is given.</span>
<span class="sd"> The non-except PKGGLOB can contain a version comparison. This should</span>
<span class="sd"> not be used as a substitute for package dependencies, it should be</span>
<span class="sd"> used to enforce installation of tools required by the templates. eg.</span>
<span class="sd"> grub2 changed the font location in 2.06-2 so the current templates</span>
<span class="sd"> require grub2 to be 2.06-2 or later.</span>
<span class="sd"> installpkg tmux&gt;=2.8 bash=5.0.0-1</span>
<span class="sd"> It supports the =,!=,&gt;,&gt;=,&lt;,&lt;= operators. == is an alias for =, and</span>
<span class="sd"> &lt;&gt; is an alias for !=</span>
<span class="sd"> There should be no spaces between the package name, the compare</span>
<span class="sd"> operator, and the version.</span>
<span class="sd"> NOTE: When testing for equality you must include the version AND</span>
<span class="sd"> release, otherwise it won&#39;t match anything.</span>
<span class="sd"> --required is now the default. If the PKGGLOB can be missing pass --optional</span>
<span class="sd"> &#39;&#39;&#39;</span>
<span class="k">if</span> <span class="n">pkgs</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="s1">&#39;--optional&#39;</span><span class="p">:</span>
<span class="n">pkgs</span> <span class="o">=</span> <span class="n">pkgs</span><span class="p">[</span><span class="mi">1</span><span class="p">:]</span>
<span class="n">required</span> <span class="o">=</span> <span class="kc">False</span>
<span class="k">elif</span> <span class="n">pkgs</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="s1">&#39;--required&#39;</span><span class="p">:</span>
<span class="n">pkgs</span> <span class="o">=</span> <span class="n">pkgs</span><span class="p">[</span><span class="mi">1</span><span class="p">:]</span>
<span class="n">required</span> <span class="o">=</span> <span class="kc">True</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">required</span> <span class="o">=</span> <span class="kc">True</span>
<span class="n">excludes</span> <span class="o">=</span> <span class="p">[]</span>
<span class="k">while</span> <span class="s1">&#39;--except&#39;</span> <span class="ow">in</span> <span class="n">pkgs</span><span class="p">:</span>
<span class="n">idx</span> <span class="o">=</span> <span class="n">pkgs</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="s1">&#39;--except&#39;</span><span class="p">)</span>
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">pkgs</span><span class="p">)</span> <span class="o">==</span> <span class="n">idx</span><span class="o">+</span><span class="mi">1</span><span class="p">:</span>
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;installpkg needs an argument after --except&quot;</span><span class="p">)</span>
<span class="c1"># TODO: Check for bare version compare operators</span>
<span class="n">excludes</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">pkgs</span><span class="p">[</span><span class="n">idx</span><span class="o">+</span><span class="mi">1</span><span class="p">])</span>
<span class="n">pkgs</span> <span class="o">=</span> <span class="n">pkgs</span><span class="p">[:</span><span class="n">idx</span><span class="p">]</span> <span class="o">+</span> <span class="n">pkgs</span><span class="p">[</span><span class="n">idx</span><span class="o">+</span><span class="mi">2</span><span class="p">:]</span>
<span class="n">errors</span> <span class="o">=</span> <span class="kc">False</span>
<span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">pkgs</span><span class="p">:</span>
<span class="c1"># Did a version compare operatore end up in the list?</span>
<span class="k">if</span> <span class="n">p</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="ow">in</span> <span class="p">[</span><span class="s1">&#39;=&#39;</span><span class="p">,</span> <span class="s1">&#39;&lt;&#39;</span><span class="p">,</span> <span class="s1">&#39;&gt;&#39;</span><span class="p">,</span> <span class="s1">&#39;!&#39;</span><span class="p">]:</span>
<span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="s2">&quot;Version compare operators cannot be surrounded by spaces&quot;</span><span class="p">)</span>
<span class="k">try</span><span class="p">:</span>
<span class="c1"># Start by using Subject to generate a package query, which will</span>
<span class="c1"># give us a query object similar to what dbo.install would select,</span>
<span class="c1"># minus the handling for multilib. This query may contain</span>
<span class="c1"># multiple arches. Pull the package names out of that, filter any</span>
<span class="c1"># that match the excludes patterns, and pass those names back to</span>
<span class="c1"># dbo.install to do the actual, arch and version and multilib</span>
<span class="c1"># aware, package selction.</span>
<span class="c1"># dnf queries don&#39;t have a concept of negative globs which is why</span>
<span class="c1"># the filtering is done the hard way.</span>
<span class="c1"># Get the latest package, or package matching the selected version</span>
<span class="n">pkgnames</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_pkgver</span><span class="p">(</span><span class="n">p</span><span class="p">)</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">pkgnames</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">dnf</span><span class="o">.</span><span class="n">exceptions</span><span class="o">.</span><span class="n">PackageNotFoundError</span><span class="p">(</span><span class="s2">&quot;no package matched&quot;</span><span class="p">,</span> <span class="n">p</span><span class="p">)</span>
<span class="c1"># Apply excludes to the name only</span>
<span class="k">for</span> <span class="n">exclude</span> <span class="ow">in</span> <span class="n">excludes</span><span class="p">:</span>
<span class="n">pkgnames</span> <span class="o">=</span> <span class="p">[</span><span class="n">pkg</span> <span class="k">for</span> <span class="n">pkg</span> <span class="ow">in</span> <span class="n">pkgnames</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">fnmatch</span><span class="o">.</span><span class="n">fnmatch</span><span class="p">(</span><span class="n">pkg</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="n">exclude</span><span class="p">)]</span>
<span class="c1"># Convert to a sorted NVR list for installation</span>
<span class="n">pkgnvrs</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">([</span><span class="s2">&quot;</span><span class="si">{}</span><span class="s2">-</span><span class="si">{}</span><span class="s2">-</span><span class="si">{}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">pkg</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="n">pkg</span><span class="o">.</span><span class="n">version</span><span class="p">,</span> <span class="n">pkg</span><span class="o">.</span><span class="n">release</span><span class="p">)</span> <span class="k">for</span> <span class="n">pkg</span> <span class="ow">in</span> <span class="n">pkgnames</span><span class="p">])</span>
<span class="c1"># If the request is a glob, expand it in the log</span>
<span class="k">if</span> <span class="nb">any</span><span class="p">(</span><span class="n">g</span> <span class="k">for</span> <span class="n">g</span> <span class="ow">in</span> <span class="p">[</span><span class="s1">&#39;*&#39;</span><span class="p">,</span><span class="s1">&#39;?&#39;</span><span class="p">,</span><span class="s1">&#39;.&#39;</span><span class="p">]</span> <span class="k">if</span> <span class="n">g</span> <span class="ow">in</span> <span class="n">p</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;installpkg: </span><span class="si">%s</span><span class="s2"> expands to </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">p</span><span class="p">,</span> <span class="s2">&quot;,&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">pkgnvrs</span><span class="p">))</span>
<span class="k">for</span> <span class="n">pkgnvr</span> <span class="ow">in</span> <span class="n">pkgnvrs</span><span class="p">:</span>
<span class="k">try</span><span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">dbo</span><span class="o">.</span><span class="n">install</span><span class="p">(</span><span class="n">pkgnvr</span><span class="p">)</span>
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span> <span class="c1"># pylint: disable=broad-except</span>
<span class="k">if</span> <span class="n">required</span><span class="p">:</span>
<span class="k">raise</span>
<span class="c1"># Not required, log it and continue processing pkgs</span>
<span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s2">&quot;installpkg </span><span class="si">%s</span><span class="s2"> failed: </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">pkgnvr</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">))</span>
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span> <span class="c1"># pylint: disable=broad-except</span>
<span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s2">&quot;installpkg </span><span class="si">%s</span><span class="s2"> failed: </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">p</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">))</span>
<span class="n">errors</span> <span class="o">=</span> <span class="kc">True</span>
<span class="k">if</span> <span class="n">errors</span> <span class="ow">and</span> <span class="n">required</span><span class="p">:</span>
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;Required installpkg failed.&quot;</span><span class="p">)</span></div></div>
<span class="c1"># TODO: operate inside an actual chroot for safety? Not that RPM bothers..</span> <span class="c1"># TODO: operate inside an actual chroot for safety? Not that RPM bothers..</span>
<div class="viewcode-block" id="LoraxTemplateRunner"><a class="viewcode-back" href="../../pylorax.html#pylorax.ltmpl.LoraxTemplateRunner">[docs]</a><span class="k">class</span> <span class="nc">LoraxTemplateRunner</span><span class="p">(</span><span class="n">TemplateRunner</span><span class="p">):</span> <div class="viewcode-block" id="LoraxTemplateRunner"><a class="viewcode-back" href="../../pylorax.html#pylorax.ltmpl.LoraxTemplateRunner">[docs]</a><span class="k">class</span> <span class="nc">LoraxTemplateRunner</span><span class="p">(</span><span class="n">TemplateRunner</span><span class="p">,</span> <span class="n">InstallpkgMixin</span><span class="p">):</span>
<span class="sd">&#39;&#39;&#39;</span> <span class="sd">&#39;&#39;&#39;</span>
<span class="sd"> This class parses and executes Lorax templates. Sample usage:</span> <span class="sd"> This class parses and executes Lorax templates. Sample usage:</span>
@ -692,77 +744,6 @@
<span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s1">&#39;command returned failure (</span><span class="si">%d</span><span class="s1">)&#39;</span><span class="p">,</span> <span class="n">e</span><span class="o">.</span><span class="n">returncode</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;command returned failure (</span><span class="si">%d</span><span class="s1">)&#39;</span><span class="p">,</span> <span class="n">e</span><span class="o">.</span><span class="n">returncode</span><span class="p">)</span>
<span class="k">raise</span></div> <span class="k">raise</span></div>
<div class="viewcode-block" id="LoraxTemplateRunner.installpkg"><a class="viewcode-back" href="../../pylorax.html#pylorax.ltmpl.LoraxTemplateRunner.installpkg">[docs]</a> <span class="k">def</span> <span class="nf">installpkg</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">pkgs</span><span class="p">):</span>
<span class="sd">&#39;&#39;&#39;</span>
<span class="sd"> installpkg [--required|--optional] [--except PKGGLOB [--except PKGGLOB ...]] PKGGLOB [PKGGLOB ...]</span>
<span class="sd"> Request installation of all packages matching the given globs.</span>
<span class="sd"> Note that this is just a *request* - nothing is *actually* installed</span>
<span class="sd"> until the &#39;run_pkg_transaction&#39; command is given.</span>
<span class="sd"> --required is now the default. If the PKGGLOB can be missing pass --optional</span>
<span class="sd"> &#39;&#39;&#39;</span>
<span class="k">if</span> <span class="n">pkgs</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="s1">&#39;--optional&#39;</span><span class="p">:</span>
<span class="n">pkgs</span> <span class="o">=</span> <span class="n">pkgs</span><span class="p">[</span><span class="mi">1</span><span class="p">:]</span>
<span class="n">required</span> <span class="o">=</span> <span class="kc">False</span>
<span class="k">elif</span> <span class="n">pkgs</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="s1">&#39;--required&#39;</span><span class="p">:</span>
<span class="n">pkgs</span> <span class="o">=</span> <span class="n">pkgs</span><span class="p">[</span><span class="mi">1</span><span class="p">:]</span>
<span class="n">required</span> <span class="o">=</span> <span class="kc">True</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">required</span> <span class="o">=</span> <span class="kc">True</span>
<span class="n">excludes</span> <span class="o">=</span> <span class="p">[]</span>
<span class="k">while</span> <span class="s1">&#39;--except&#39;</span> <span class="ow">in</span> <span class="n">pkgs</span><span class="p">:</span>
<span class="n">idx</span> <span class="o">=</span> <span class="n">pkgs</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="s1">&#39;--except&#39;</span><span class="p">)</span>
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">pkgs</span><span class="p">)</span> <span class="o">==</span> <span class="n">idx</span><span class="o">+</span><span class="mi">1</span><span class="p">:</span>
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;installpkg needs an argument after --except&quot;</span><span class="p">)</span>
<span class="n">excludes</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">pkgs</span><span class="p">[</span><span class="n">idx</span><span class="o">+</span><span class="mi">1</span><span class="p">])</span>
<span class="n">pkgs</span> <span class="o">=</span> <span class="n">pkgs</span><span class="p">[:</span><span class="n">idx</span><span class="p">]</span> <span class="o">+</span> <span class="n">pkgs</span><span class="p">[</span><span class="n">idx</span><span class="o">+</span><span class="mi">2</span><span class="p">:]</span>
<span class="n">errors</span> <span class="o">=</span> <span class="kc">False</span>
<span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">pkgs</span><span class="p">:</span>
<span class="k">try</span><span class="p">:</span>
<span class="c1"># Start by using Subject to generate a package query, which will</span>
<span class="c1"># give us a query object similar to what dbo.install would select,</span>
<span class="c1"># minus the handling for multilib. This query may contain</span>
<span class="c1"># multiple arches. Pull the package names out of that, filter any</span>
<span class="c1"># that match the excludes patterns, and pass those names back to</span>
<span class="c1"># dbo.install to do the actual, arch and version and multilib</span>
<span class="c1"># aware, package selction.</span>
<span class="c1"># dnf queries don&#39;t have a concept of negative globs which is why</span>
<span class="c1"># the filtering is done the hard way.</span>
<span class="n">pkgnames</span> <span class="o">=</span> <span class="p">[</span><span class="n">pkg</span> <span class="k">for</span> <span class="n">pkg</span> <span class="ow">in</span> <span class="n">dnf</span><span class="o">.</span><span class="n">subject</span><span class="o">.</span><span class="n">Subject</span><span class="p">(</span><span class="n">p</span><span class="p">)</span><span class="o">.</span><span class="n">get_best_query</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dbo</span><span class="o">.</span><span class="n">sack</span><span class="p">)</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">latest</span><span class="o">=</span><span class="kc">True</span><span class="p">)]</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">pkgnames</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">dnf</span><span class="o">.</span><span class="n">exceptions</span><span class="o">.</span><span class="n">PackageNotFoundError</span><span class="p">(</span><span class="s2">&quot;no package matched&quot;</span><span class="p">,</span> <span class="n">p</span><span class="p">)</span>
<span class="c1"># Apply excludes to the name only</span>
<span class="k">for</span> <span class="n">exclude</span> <span class="ow">in</span> <span class="n">excludes</span><span class="p">:</span>
<span class="n">pkgnames</span> <span class="o">=</span> <span class="p">[</span><span class="n">pkg</span> <span class="k">for</span> <span class="n">pkg</span> <span class="ow">in</span> <span class="n">pkgnames</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">fnmatch</span><span class="o">.</span><span class="n">fnmatch</span><span class="p">(</span><span class="n">pkg</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="n">exclude</span><span class="p">)]</span>
<span class="c1"># Convert to a sorted NVR list for installation</span>
<span class="n">pkgnvrs</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">([</span><span class="s2">&quot;</span><span class="si">{}</span><span class="s2">-</span><span class="si">{}</span><span class="s2">-</span><span class="si">{}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">pkg</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="n">pkg</span><span class="o">.</span><span class="n">version</span><span class="p">,</span> <span class="n">pkg</span><span class="o">.</span><span class="n">release</span><span class="p">)</span> <span class="k">for</span> <span class="n">pkg</span> <span class="ow">in</span> <span class="n">pkgnames</span><span class="p">])</span>
<span class="c1"># If the request is a glob, expand it in the log</span>
<span class="k">if</span> <span class="nb">any</span><span class="p">(</span><span class="n">g</span> <span class="k">for</span> <span class="n">g</span> <span class="ow">in</span> <span class="p">[</span><span class="s1">&#39;*&#39;</span><span class="p">,</span><span class="s1">&#39;?&#39;</span><span class="p">,</span><span class="s1">&#39;.&#39;</span><span class="p">]</span> <span class="k">if</span> <span class="n">g</span> <span class="ow">in</span> <span class="n">p</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;installpkg: </span><span class="si">%s</span><span class="s2"> expands to </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">p</span><span class="p">,</span> <span class="s2">&quot;,&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">pkgnvrs</span><span class="p">))</span>
<span class="k">for</span> <span class="n">pkgnvr</span> <span class="ow">in</span> <span class="n">pkgnvrs</span><span class="p">:</span>
<span class="k">try</span><span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">dbo</span><span class="o">.</span><span class="n">install</span><span class="p">(</span><span class="n">pkgnvr</span><span class="p">)</span>
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span> <span class="c1"># pylint: disable=broad-except</span>
<span class="k">if</span> <span class="n">required</span><span class="p">:</span>
<span class="k">raise</span>
<span class="c1"># Not required, log it and continue processing pkgs</span>
<span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s2">&quot;installpkg </span><span class="si">%s</span><span class="s2"> failed: </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">pkgnvr</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">))</span>
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span> <span class="c1"># pylint: disable=broad-except</span>
<span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s2">&quot;installpkg </span><span class="si">%s</span><span class="s2"> failed: </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">p</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">))</span>
<span class="n">errors</span> <span class="o">=</span> <span class="kc">True</span>
<span class="k">if</span> <span class="n">errors</span> <span class="ow">and</span> <span class="n">required</span><span class="p">:</span>
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;Required installpkg failed.&quot;</span><span class="p">)</span></div>
<div class="viewcode-block" id="LoraxTemplateRunner.removepkg"><a class="viewcode-back" href="../../pylorax.html#pylorax.ltmpl.LoraxTemplateRunner.removepkg">[docs]</a> <span class="k">def</span> <span class="nf">removepkg</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">pkgs</span><span class="p">):</span> <div class="viewcode-block" id="LoraxTemplateRunner.removepkg"><a class="viewcode-back" href="../../pylorax.html#pylorax.ltmpl.LoraxTemplateRunner.removepkg">[docs]</a> <span class="k">def</span> <span class="nf">removepkg</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">pkgs</span><span class="p">):</span>
<span class="sd">&#39;&#39;&#39;</span> <span class="sd">&#39;&#39;&#39;</span>
<span class="sd"> removepkg PKGGLOB [PKGGLOB...]</span> <span class="sd"> removepkg PKGGLOB [PKGGLOB...]</span>
@ -961,7 +942,7 @@
<span class="k">except</span> <span class="n">CalledProcessError</span><span class="p">:</span> <span class="k">except</span> <span class="n">CalledProcessError</span><span class="p">:</span>
<span class="k">pass</span></div></div> <span class="k">pass</span></div></div>
<div class="viewcode-block" id="LiveTemplateRunner"><a class="viewcode-back" href="../../pylorax.html#pylorax.ltmpl.LiveTemplateRunner">[docs]</a><span class="k">class</span> <span class="nc">LiveTemplateRunner</span><span class="p">(</span><span class="n">TemplateRunner</span><span class="p">):</span> <div class="viewcode-block" id="LiveTemplateRunner"><a class="viewcode-back" href="../../pylorax.html#pylorax.ltmpl.LiveTemplateRunner">[docs]</a><span class="k">class</span> <span class="nc">LiveTemplateRunner</span><span class="p">(</span><span class="n">TemplateRunner</span><span class="p">,</span> <span class="n">InstallpkgMixin</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span> <span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> This class parses and executes a limited Lorax template. Sample usage:</span> <span class="sd"> This class parses and executes a limited Lorax template. Sample usage:</span>
@ -977,115 +958,34 @@
<span class="bp">self</span><span class="o">.</span><span class="n">pkgs</span> <span class="o">=</span> <span class="p">[]</span> <span class="bp">self</span><span class="o">.</span><span class="n">pkgs</span> <span class="o">=</span> <span class="p">[]</span>
<span class="bp">self</span><span class="o">.</span><span class="n">pkgnames</span> <span class="o">=</span> <span class="p">[]</span> <span class="bp">self</span><span class="o">.</span><span class="n">pkgnames</span> <span class="o">=</span> <span class="p">[]</span>
<span class="nb">super</span><span class="p">(</span><span class="n">LiveTemplateRunner</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">fatalerrors</span><span class="p">,</span> <span class="n">templatedir</span><span class="p">,</span> <span class="n">defaults</span><span class="p">)</span> <span class="nb">super</span><span class="p">(</span><span class="n">LiveTemplateRunner</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">fatalerrors</span><span class="p">,</span> <span class="n">templatedir</span><span class="p">,</span> <span class="n">defaults</span><span class="p">)</span></div>
<div class="viewcode-block" id="LiveTemplateRunner.installpkg"><a class="viewcode-back" href="../../pylorax.html#pylorax.ltmpl.LiveTemplateRunner.installpkg">[docs]</a> <span class="k">def</span> <span class="nf">installpkg</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">pkgs</span><span class="p">):</span>
<span class="sd">&#39;&#39;&#39;</span>
<span class="sd"> installpkg [--required|--optional] [--except PKGGLOB [--except PKGGLOB ...]] PKGGLOB [PKGGLOB ...]</span>
<span class="sd"> Request installation of all packages matching the given globs.</span>
<span class="sd"> Note that this is just a *request* - nothing is *actually* installed</span>
<span class="sd"> until the &#39;run_pkg_transaction&#39; command is given.</span>
<span class="sd"> --required is now the default. If the PKGGLOB can be missing pass --optional</span>
<span class="sd"> &#39;&#39;&#39;</span>
<span class="k">if</span> <span class="n">pkgs</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="s1">&#39;--optional&#39;</span><span class="p">:</span>
<span class="n">pkgs</span> <span class="o">=</span> <span class="n">pkgs</span><span class="p">[</span><span class="mi">1</span><span class="p">:]</span>
<span class="n">required</span> <span class="o">=</span> <span class="kc">False</span>
<span class="k">elif</span> <span class="n">pkgs</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="s1">&#39;--required&#39;</span><span class="p">:</span>
<span class="n">pkgs</span> <span class="o">=</span> <span class="n">pkgs</span><span class="p">[</span><span class="mi">1</span><span class="p">:]</span>
<span class="n">required</span> <span class="o">=</span> <span class="kc">True</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">required</span> <span class="o">=</span> <span class="kc">True</span>
<span class="n">excludes</span> <span class="o">=</span> <span class="p">[]</span>
<span class="k">while</span> <span class="s1">&#39;--except&#39;</span> <span class="ow">in</span> <span class="n">pkgs</span><span class="p">:</span>
<span class="n">idx</span> <span class="o">=</span> <span class="n">pkgs</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="s1">&#39;--except&#39;</span><span class="p">)</span>
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">pkgs</span><span class="p">)</span> <span class="o">==</span> <span class="n">idx</span><span class="o">+</span><span class="mi">1</span><span class="p">:</span>
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;installpkg needs an argument after --except&quot;</span><span class="p">)</span>
<span class="n">excludes</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">pkgs</span><span class="p">[</span><span class="n">idx</span><span class="o">+</span><span class="mi">1</span><span class="p">])</span>
<span class="n">pkgs</span> <span class="o">=</span> <span class="n">pkgs</span><span class="p">[:</span><span class="n">idx</span><span class="p">]</span> <span class="o">+</span> <span class="n">pkgs</span><span class="p">[</span><span class="n">idx</span><span class="o">+</span><span class="mi">2</span><span class="p">:]</span>
<span class="n">errors</span> <span class="o">=</span> <span class="kc">False</span>
<span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">pkgs</span><span class="p">:</span>
<span class="k">try</span><span class="p">:</span>
<span class="c1"># Start by using Subject to generate a package query, which will</span>
<span class="c1"># give us a query object similar to what dbo.install would select,</span>
<span class="c1"># minus the handling for multilib. This query may contain</span>
<span class="c1"># multiple arches. Pull the package names out of that, filter any</span>
<span class="c1"># that match the excludes patterns, and pass those names back to</span>
<span class="c1"># dbo.install to do the actual, arch and version and multilib</span>
<span class="c1"># aware, package selction.</span>
<span class="c1"># dnf queries don&#39;t have a concept of negative globs which is why</span>
<span class="c1"># the filtering is done the hard way.</span>
<span class="n">pkgnames</span> <span class="o">=</span> <span class="p">[</span><span class="n">pkg</span> <span class="k">for</span> <span class="n">pkg</span> <span class="ow">in</span> <span class="n">dnf</span><span class="o">.</span><span class="n">subject</span><span class="o">.</span><span class="n">Subject</span><span class="p">(</span><span class="n">p</span><span class="p">)</span><span class="o">.</span><span class="n">get_best_query</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dbo</span><span class="o">.</span><span class="n">sack</span><span class="p">)</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">latest</span><span class="o">=</span><span class="kc">True</span><span class="p">)]</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">pkgnames</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">dnf</span><span class="o">.</span><span class="n">exceptions</span><span class="o">.</span><span class="n">PackageNotFoundError</span><span class="p">(</span><span class="s2">&quot;no package matched&quot;</span><span class="p">,</span> <span class="n">p</span><span class="p">)</span>
<span class="c1"># Apply excludes to the name only</span>
<span class="k">for</span> <span class="n">exclude</span> <span class="ow">in</span> <span class="n">excludes</span><span class="p">:</span>
<span class="n">pkgnames</span> <span class="o">=</span> <span class="p">[</span><span class="n">pkg</span> <span class="k">for</span> <span class="n">pkg</span> <span class="ow">in</span> <span class="n">pkgnames</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">fnmatch</span><span class="o">.</span><span class="n">fnmatch</span><span class="p">(</span><span class="n">pkg</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="n">exclude</span><span class="p">)]</span>
<span class="c1"># Convert to a sorted NVR list for installation</span>
<span class="n">pkgnvrs</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">([</span><span class="s2">&quot;</span><span class="si">{}</span><span class="s2">-</span><span class="si">{}</span><span class="s2">-</span><span class="si">{}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">pkg</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="n">pkg</span><span class="o">.</span><span class="n">version</span><span class="p">,</span> <span class="n">pkg</span><span class="o">.</span><span class="n">release</span><span class="p">)</span> <span class="k">for</span> <span class="n">pkg</span> <span class="ow">in</span> <span class="n">pkgnames</span><span class="p">])</span>
<span class="c1"># If the request is a glob, expand it in the log</span>
<span class="k">if</span> <span class="nb">any</span><span class="p">(</span><span class="n">g</span> <span class="k">for</span> <span class="n">g</span> <span class="ow">in</span> <span class="p">[</span><span class="s1">&#39;*&#39;</span><span class="p">,</span><span class="s1">&#39;?&#39;</span><span class="p">,</span><span class="s1">&#39;.&#39;</span><span class="p">]</span> <span class="k">if</span> <span class="n">g</span> <span class="ow">in</span> <span class="n">p</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;installpkg: </span><span class="si">%s</span><span class="s2"> expands to </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">p</span><span class="p">,</span> <span class="s2">&quot;,&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">pkgnvrs</span><span class="p">))</span>
<span class="bp">self</span><span class="o">.</span><span class="n">pkgs</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">pkgnvrs</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">pkgnames</span><span class="o">.</span><span class="n">extend</span><span class="p">([</span><span class="n">pkg</span><span class="o">.</span><span class="n">name</span> <span class="k">for</span> <span class="n">pkg</span> <span class="ow">in</span> <span class="n">pkgnames</span><span class="p">])</span>
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span> <span class="c1"># pylint: disable=broad-except</span>
<span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s2">&quot;installpkg </span><span class="si">%s</span><span class="s2"> failed: </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">p</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">))</span>
<span class="n">errors</span> <span class="o">=</span> <span class="kc">True</span>
<span class="k">if</span> <span class="n">errors</span> <span class="ow">and</span> <span class="n">required</span><span class="p">:</span>
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;Required installpkg failed.&quot;</span><span class="p">)</span></div></div>
</pre></div> </pre></div>
</div> </div>
</div> </div>
<footer> <footer>
<hr/> <hr/>
<div role="contentinfo"> <div role="contentinfo">
<p> <p>&#169; Copyright 2018, Red Hat, Inc..</p>
&#169; Copyright 2018, Red Hat, Inc..
</p>
</div> </div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer> </footer>
</div> </div>
</div> </div>
</section> </section>
</div> </div>
<script>
<script type="text/javascript">
jQuery(function () { jQuery(function () {
SphinxRtdTheme.Navigation.enable(true); SphinxRtdTheme.Navigation.enable(true);
}); });
</script> </script>
</body> </body>
</html> </html>

View File

@ -1,69 +1,31 @@
<!DOCTYPE html> <!DOCTYPE html>
<html class="writer-html5" lang="en" > <html class="writer-html5" lang="en" >
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>pylorax.monitor &mdash; Lorax 36.4 documentation</title>
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
<title>pylorax.monitor &mdash; Lorax 34.10 documentation</title> <script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script>
<link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
<script src="../../_static/jquery.js"></script> <script src="../../_static/jquery.js"></script>
<script src="../../_static/underscore.js"></script> <script src="../../_static/underscore.js"></script>
<script src="../../_static/doctools.js"></script> <script src="../../_static/doctools.js"></script>
<script src="../../_static/js/theme.js"></script>
<script type="text/javascript" src="../../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../../genindex.html" /> <link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" /> <link rel="search" title="Search" href="../../search.html" />
</head> </head>
<body class="wy-body-for-nav"> <body class="wy-body-for-nav">
<div class="wy-grid-for-nav"> <div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side"> <nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll"> <div class="wy-side-scroll">
<div class="wy-side-nav-search" > <div class="wy-side-nav-search" >
<a href="../../index.html" class="icon icon-home"> Lorax <a href="../../index.html" class="icon icon-home"> Lorax
</a> </a>
<div class="version"> <div class="version">
34.10 36.4
</div> </div>
<div role="search"> <div role="search">
<form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" /> <input type="text" name="q" placeholder="Search docs" />
@ -71,18 +33,7 @@
<input type="hidden" name="area" value="default" /> <input type="hidden" name="area" value="default" />
</form> </form>
</div> </div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul> <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">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="../../intro.html#before-lorax">Before Lorax</a></li>
@ -93,71 +44,31 @@
<li class="toctree-l1"><a class="reference internal" href="../../modules.html">src</a></li> <li class="toctree-l1"><a class="reference internal" href="../../modules.html">src</a></li>
</ul> </ul>
</div> </div>
</div> </div>
</nav> </nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i> <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../../index.html">Lorax</a> <a href="../../index.html">Lorax</a>
</nav> </nav>
<div class="wy-nav-content"> <div class="wy-nav-content">
<div class="rst-content"> <div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs"> <ul class="wy-breadcrumbs">
<li><a href="../../index.html" class="icon icon-home"></a> &raquo;</li> <li><a href="../../index.html" class="icon icon-home"></a> &raquo;</li>
<li><a href="../index.html">Module code</a> &raquo;</li> <li><a href="../index.html">Module code</a> &raquo;</li>
<li><a href="../pylorax.html">pylorax</a> &raquo;</li> <li><a href="../pylorax.html">pylorax</a> &raquo;</li>
<li>pylorax.monitor</li> <li>pylorax.monitor</li>
<li class="wy-breadcrumbs-aside"> <li class="wy-breadcrumbs-aside">
</li> </li>
</ul> </ul>
<hr/> <hr/>
</div> </div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody"> <div itemprop="articleBody">
<h1>Source code for pylorax.monitor</h1><div class="highlight"><pre> <h1>Source code for pylorax.monitor</h1><div class="highlight"><pre>
<span></span><span class="c1"># monitor.py</span> <span></span><span class="c1"># monitor.py</span>
<span class="c1">#</span> <span class="c1">#</span>
@ -235,30 +146,25 @@
<span class="sd"> Loops until self.server.kill is True</span> <span class="sd"> Loops until self.server.kill is True</span>
<span class="sd"> &quot;&quot;&quot;</span> <span class="sd"> &quot;&quot;&quot;</span>
<span class="n">log</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;Processing logs from </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">client_address</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;Processing logs from </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">client_address</span><span class="p">)</span>
<span class="n">line</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span> <span class="n">data</span> <span class="o">=</span> <span class="sa">b</span><span class="s2">&quot;&quot;</span>
<span class="k">while</span> <span class="kc">True</span><span class="p">:</span> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">server</span><span class="o">.</span><span class="n">kill</span><span class="p">:</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">server</span><span class="o">.</span><span class="n">kill</span><span class="p">:</span>
<span class="k">break</span> <span class="k">break</span>
<span class="k">try</span><span class="p">:</span> <span class="k">try</span><span class="p">:</span>
<span class="n">data</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">request</span><span class="o">.</span><span class="n">recv</span><span class="p">(</span><span class="mi">4096</span><span class="p">),</span> <span class="s2">&quot;utf8&quot;</span><span class="p">)</span> <span class="n">data</span> <span class="o">+=</span> <span class="bp">self</span><span class="o">.</span><span class="n">request</span><span class="o">.</span><span class="n">recv</span><span class="p">(</span><span class="mi">4096</span><span class="p">)</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">fp</span><span class="p">:</span> <span class="k">for</span> <span class="n">line</span> <span class="ow">in</span> <span class="n">data</span><span class="o">.</span><span class="n">splitlines</span><span class="p">(</span><span class="n">keepends</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">fp</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">data</span><span class="p">)</span> <span class="k">if</span> <span class="n">line</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="sa">b</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">fp</span><span class="o">.</span><span class="n">flush</span><span class="p">()</span> <span class="c1"># Ignore invalid UTF8 inside lines</span>
<span class="bp">self</span><span class="o">.</span><span class="n">iserror</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">line</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">],</span> <span class="s2">&quot;utf8&quot;</span><span class="p">,</span> <span class="s2">&quot;ignore&quot;</span><span class="p">))</span>
<span class="c1"># check the data for errors and set error flag</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">fp</span><span class="p">:</span>
<span class="c1"># need to assemble it into lines so we can test for the error</span> <span class="bp">self</span><span class="o">.</span><span class="n">fp</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">line</span><span class="p">,</span> <span class="s2">&quot;utf8&quot;</span><span class="p">,</span> <span class="s2">&quot;ignore&quot;</span><span class="p">))</span>
<span class="c1"># string.</span> <span class="bp">self</span><span class="o">.</span><span class="n">fp</span><span class="o">.</span><span class="n">flush</span><span class="p">()</span>
<span class="k">while</span> <span class="n">data</span><span class="p">:</span> <span class="n">data</span> <span class="o">=</span> <span class="sa">b</span><span class="s2">&quot;&quot;</span>
<span class="n">more</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
<span class="n">line</span> <span class="o">+=</span> <span class="n">more</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">more</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">1</span><span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">iserror</span><span class="p">(</span><span class="n">line</span><span class="p">)</span>
<span class="n">line</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span>
<span class="n">data</span> <span class="o">=</span> <span class="n">more</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
<span class="k">else</span><span class="p">:</span> <span class="k">else</span><span class="p">:</span>
<span class="n">data</span> <span class="o">=</span> <span class="kc">None</span> <span class="c1"># Not the end of the line, keep for later</span>
<span class="n">data</span> <span class="o">=</span> <span class="n">line</span>
<span class="k">break</span>
<span class="k">except</span> <span class="n">socket</span><span class="o">.</span><span class="n">timeout</span><span class="p">:</span> <span class="k">except</span> <span class="n">socket</span><span class="o">.</span><span class="n">timeout</span><span class="p">:</span>
<span class="k">pass</span> <span class="k">pass</span>
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span> <span class="c1"># pylint: disable=broad-except</span> <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span> <span class="c1"># pylint: disable=broad-except</span>
@ -267,7 +173,6 @@
<div class="viewcode-block" id="LogRequestHandler.finish"><a class="viewcode-back" href="../../pylorax.html#pylorax.monitor.LogRequestHandler.finish">[docs]</a> <span class="k">def</span> <span class="nf">finish</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <div class="viewcode-block" id="LogRequestHandler.finish"><a class="viewcode-back" href="../../pylorax.html#pylorax.monitor.LogRequestHandler.finish">[docs]</a> <span class="k">def</span> <span class="nf">finish</span><span class="p">(</span><span class="bp">self</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;Shutting down log processing&quot;</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;Shutting down log processing&quot;</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">request</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">fp</span><span class="p">:</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">fp</span><span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">fp</span><span class="o">.</span><span class="n">close</span><span class="p">()</span></div> <span class="bp">self</span><span class="o">.</span><span class="n">fp</span><span class="o">.</span><span class="n">close</span><span class="p">()</span></div>
@ -362,50 +267,35 @@
<div class="viewcode-block" id="LogMonitor.shutdown"><a class="viewcode-back" href="../../pylorax.html#pylorax.monitor.LogMonitor.shutdown">[docs]</a> <span class="k">def</span> <span class="nf">shutdown</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <div class="viewcode-block" id="LogMonitor.shutdown"><a class="viewcode-back" href="../../pylorax.html#pylorax.monitor.LogMonitor.shutdown">[docs]</a> <span class="k">def</span> <span class="nf">shutdown</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Force shutdown of the monitoring thread&quot;&quot;&quot;</span> <span class="sd">&quot;&quot;&quot;Force shutdown of the monitoring thread&quot;&quot;&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">server</span><span class="o">.</span><span class="n">kill</span> <span class="o">=</span> <span class="kc">True</span> <span class="bp">self</span><span class="o">.</span><span class="n">server</span><span class="o">.</span><span class="n">kill</span> <span class="o">=</span> <span class="kc">True</span>
<span class="bp">self</span><span class="o">.</span><span class="n">server_thread</span><span class="o">.</span><span class="n">join</span><span class="p">()</span></div></div> <span class="bp">self</span><span class="o">.</span><span class="n">server_thread</span><span class="o">.</span><span class="n">join</span><span class="p">()</span>
<span class="bp">self</span><span class="o">.</span><span class="n">server</span><span class="o">.</span><span class="n">server_close</span><span class="p">()</span></div></div>
</pre></div> </pre></div>
</div> </div>
</div> </div>
<footer> <footer>
<hr/> <hr/>
<div role="contentinfo"> <div role="contentinfo">
<p> <p>&#169; Copyright 2018, Red Hat, Inc..</p>
&#169; Copyright 2018, Red Hat, Inc..
</p>
</div> </div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer> </footer>
</div> </div>
</div> </div>
</section> </section>
</div> </div>
<script>
<script type="text/javascript">
jQuery(function () { jQuery(function () {
SphinxRtdTheme.Navigation.enable(true); SphinxRtdTheme.Navigation.enable(true);
}); });
</script> </script>
</body> </body>
</html> </html>

View File

@ -1,69 +1,31 @@
<!DOCTYPE html> <!DOCTYPE html>
<html class="writer-html5" lang="en" > <html class="writer-html5" lang="en" >
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>pylorax.mount &mdash; Lorax 36.4 documentation</title>
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
<title>pylorax.mount &mdash; Lorax 34.10 documentation</title> <script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script>
<link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
<script src="../../_static/jquery.js"></script> <script src="../../_static/jquery.js"></script>
<script src="../../_static/underscore.js"></script> <script src="../../_static/underscore.js"></script>
<script src="../../_static/doctools.js"></script> <script src="../../_static/doctools.js"></script>
<script src="../../_static/js/theme.js"></script>
<script type="text/javascript" src="../../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../../genindex.html" /> <link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" /> <link rel="search" title="Search" href="../../search.html" />
</head> </head>
<body class="wy-body-for-nav"> <body class="wy-body-for-nav">
<div class="wy-grid-for-nav"> <div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side"> <nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll"> <div class="wy-side-scroll">
<div class="wy-side-nav-search" > <div class="wy-side-nav-search" >
<a href="../../index.html" class="icon icon-home"> Lorax <a href="../../index.html" class="icon icon-home"> Lorax
</a> </a>
<div class="version"> <div class="version">
34.10 36.4
</div> </div>
<div role="search"> <div role="search">
<form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" /> <input type="text" name="q" placeholder="Search docs" />
@ -71,18 +33,7 @@
<input type="hidden" name="area" value="default" /> <input type="hidden" name="area" value="default" />
</form> </form>
</div> </div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul> <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">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="../../intro.html#before-lorax">Before Lorax</a></li>
@ -93,71 +44,31 @@
<li class="toctree-l1"><a class="reference internal" href="../../modules.html">src</a></li> <li class="toctree-l1"><a class="reference internal" href="../../modules.html">src</a></li>
</ul> </ul>
</div> </div>
</div> </div>
</nav> </nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i> <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../../index.html">Lorax</a> <a href="../../index.html">Lorax</a>
</nav> </nav>
<div class="wy-nav-content"> <div class="wy-nav-content">
<div class="rst-content"> <div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs"> <ul class="wy-breadcrumbs">
<li><a href="../../index.html" class="icon icon-home"></a> &raquo;</li> <li><a href="../../index.html" class="icon icon-home"></a> &raquo;</li>
<li><a href="../index.html">Module code</a> &raquo;</li> <li><a href="../index.html">Module code</a> &raquo;</li>
<li><a href="../pylorax.html">pylorax</a> &raquo;</li> <li><a href="../pylorax.html">pylorax</a> &raquo;</li>
<li>pylorax.mount</li> <li>pylorax.mount</li>
<li class="wy-breadcrumbs-aside"> <li class="wy-breadcrumbs-aside">
</li> </li>
</ul> </ul>
<hr/> <hr/>
</div> </div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody"> <div itemprop="articleBody">
<h1>Source code for pylorax.mount</h1><div class="highlight"><pre> <h1>Source code for pylorax.mount</h1><div class="highlight"><pre>
<span></span><span class="c1"># mount.py</span> <span></span><span class="c1"># mount.py</span>
<span class="c1">#</span> <span class="c1">#</span>
@ -182,8 +93,7 @@
<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;livemedia-creator&quot;</span><span class="p">)</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;livemedia-creator&quot;</span><span class="p">)</span>
<span class="kn">import</span> <span class="nn">os</span> <span class="kn">import</span> <span class="nn">os</span>
<span class="kn">import</span> <span class="nn">pycdlib</span> <span class="kn">import</span> <span class="nn">iso9660</span>
<span class="kn">from</span> <span class="nn">pycdlib.pycdlibexception</span> <span class="kn">import</span> <span class="n">PyCdlibException</span>
<span class="kn">from</span> <span class="nn">pylorax.imgutils</span> <span class="kn">import</span> <span class="n">mount</span><span class="p">,</span> <span class="n">umount</span> <span class="kn">from</span> <span class="nn">pylorax.imgutils</span> <span class="kn">import</span> <span class="n">mount</span><span class="p">,</span> <span class="n">umount</span>
@ -221,7 +131,8 @@
<span class="n">kernel_list</span> <span class="o">=</span> <span class="p">[(</span><span class="s2">&quot;/isolinux/vmlinuz&quot;</span><span class="p">,</span> <span class="s2">&quot;/isolinux/initrd.img&quot;</span><span class="p">),</span> <span class="n">kernel_list</span> <span class="o">=</span> <span class="p">[(</span><span class="s2">&quot;/isolinux/vmlinuz&quot;</span><span class="p">,</span> <span class="s2">&quot;/isolinux/initrd.img&quot;</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;/ppc/ppc64/vmlinuz&quot;</span><span class="p">,</span> <span class="s2">&quot;/ppc/ppc64/initrd.img&quot;</span><span class="p">),</span> <span class="p">(</span><span class="s2">&quot;/ppc/ppc64/vmlinuz&quot;</span><span class="p">,</span> <span class="s2">&quot;/ppc/ppc64/initrd.img&quot;</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;/images/pxeboot/vmlinuz&quot;</span><span class="p">,</span> <span class="s2">&quot;/images/pxeboot/initrd.img&quot;</span><span class="p">)]</span> <span class="p">(</span><span class="s2">&quot;/images/pxeboot/vmlinuz&quot;</span><span class="p">,</span> <span class="s2">&quot;/images/pxeboot/initrd.img&quot;</span><span class="p">),</span>
<span class="p">(</span><span class="s2">&quot;/images/kernel.img&quot;</span><span class="p">,</span> <span class="s2">&quot;/images/initrd.img&quot;</span><span class="p">)]</span>
<span class="k">if</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="bp">self</span><span class="o">.</span><span class="n">mount_dir</span><span class="o">+</span><span class="s2">&quot;/repodata&quot;</span><span class="p">):</span> <span class="k">if</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="bp">self</span><span class="o">.</span><span class="n">mount_dir</span><span class="o">+</span><span class="s2">&quot;/repodata&quot;</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">repo</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">mount_dir</span> <span class="bp">self</span><span class="o">.</span><span class="n">repo</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">mount_dir</span>
@ -253,59 +164,48 @@
<div class="viewcode-block" id="IsoMountpoint.get_iso_label"><a class="viewcode-back" href="../../pylorax.html#pylorax.mount.IsoMountpoint.get_iso_label">[docs]</a> <span class="k">def</span> <span class="nf">get_iso_label</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <div class="viewcode-block" id="IsoMountpoint.get_iso_label"><a class="viewcode-back" href="../../pylorax.html#pylorax.mount.IsoMountpoint.get_iso_label">[docs]</a> <span class="k">def</span> <span class="nf">get_iso_label</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span> <span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Get the iso&#39;s label using isoinfo</span> <span class="sd"> Get the iso&#39;s label using pycdio</span>
<span class="sd"> Sets self.label if one is found</span> <span class="sd"> Sets self.label if one is found</span>
<span class="sd"> &quot;&quot;&quot;</span> <span class="sd"> &quot;&quot;&quot;</span>
<span class="k">try</span><span class="p">:</span> <span class="k">try</span><span class="p">:</span>
<span class="n">iso</span> <span class="o">=</span> <span class="n">pycdlib</span><span class="o">.</span><span class="n">PyCdlib</span><span class="p">()</span> <span class="n">iso</span> <span class="o">=</span> <span class="n">iso9660</span><span class="o">.</span><span class="n">ISO9660</span><span class="o">.</span><span class="n">IFS</span><span class="p">(</span><span class="n">source</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">iso_path</span><span class="p">)</span>
<span class="n">iso</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">iso_path</span><span class="p">)</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">iso</span><span class="o">.</span><span class="n">is_open</span><span class="p">():</span>
<span class="bp">self</span><span class="o">.</span><span class="n">label</span> <span class="o">=</span> <span class="n">iso</span><span class="o">.</span><span class="n">pvd</span><span class="o">.</span><span class="n">volume_identifier</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="s2">&quot;UTF-8&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="s2">&quot;error opening file&quot;</span><span class="p">)</span>
<span class="k">except</span> <span class="n">PyCdlibException</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">label</span> <span class="o">=</span> <span class="n">iso</span><span class="o">.</span><span class="n">get_volume_id</span><span class="p">()</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">label</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">label</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span>
<span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="s2">&quot;error reading volume id&quot;</span><span class="p">)</span>
<span class="k">except</span> <span class="ne">RuntimeError</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;Problem reading label from </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="bp">self</span><span class="o">.</span><span class="n">iso_path</span><span class="p">,</span> <span class="n">e</span><span class="p">)</span></div></div> <span class="n">log</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s2">&quot;Problem reading label from </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="bp">self</span><span class="o">.</span><span class="n">iso_path</span><span class="p">,</span> <span class="n">e</span><span class="p">)</span></div></div>
</pre></div> </pre></div>
</div> </div>
</div> </div>
<footer> <footer>
<hr/> <hr/>
<div role="contentinfo"> <div role="contentinfo">
<p> <p>&#169; Copyright 2018, Red Hat, Inc..</p>
&#169; Copyright 2018, Red Hat, Inc..
</p>
</div> </div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer> </footer>
</div> </div>
</div> </div>
</section> </section>
</div> </div>
<script>
<script type="text/javascript">
jQuery(function () { jQuery(function () {
SphinxRtdTheme.Navigation.enable(true); SphinxRtdTheme.Navigation.enable(true);
}); });
</script> </script>
</body> </body>
</html> </html>

View File

@ -1,69 +1,31 @@
<!DOCTYPE html> <!DOCTYPE html>
<html class="writer-html5" lang="en" > <html class="writer-html5" lang="en" >
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>pylorax.sysutils &mdash; Lorax 36.0 documentation</title>
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
<title>pylorax.sysutils &mdash; Lorax 34.10 documentation</title> <script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script>
<link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
<script src="../../_static/jquery.js"></script> <script src="../../_static/jquery.js"></script>
<script src="../../_static/underscore.js"></script> <script src="../../_static/underscore.js"></script>
<script src="../../_static/doctools.js"></script> <script src="../../_static/doctools.js"></script>
<script src="../../_static/js/theme.js"></script>
<script type="text/javascript" src="../../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../../genindex.html" /> <link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" /> <link rel="search" title="Search" href="../../search.html" />
</head> </head>
<body class="wy-body-for-nav"> <body class="wy-body-for-nav">
<div class="wy-grid-for-nav"> <div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side"> <nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll"> <div class="wy-side-scroll">
<div class="wy-side-nav-search" > <div class="wy-side-nav-search" >
<a href="../../index.html" class="icon icon-home"> Lorax <a href="../../index.html" class="icon icon-home"> Lorax
</a> </a>
<div class="version"> <div class="version">
34.10 36.0
</div> </div>
<div role="search"> <div role="search">
<form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" /> <input type="text" name="q" placeholder="Search docs" />
@ -71,18 +33,7 @@
<input type="hidden" name="area" value="default" /> <input type="hidden" name="area" value="default" />
</form> </form>
</div> </div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul> <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">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="../../intro.html#before-lorax">Before Lorax</a></li>
@ -93,71 +44,31 @@
<li class="toctree-l1"><a class="reference internal" href="../../modules.html">src</a></li> <li class="toctree-l1"><a class="reference internal" href="../../modules.html">src</a></li>
</ul> </ul>
</div> </div>
</div> </div>
</nav> </nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i> <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../../index.html">Lorax</a> <a href="../../index.html">Lorax</a>
</nav> </nav>
<div class="wy-nav-content"> <div class="wy-nav-content">
<div class="rst-content"> <div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs"> <ul class="wy-breadcrumbs">
<li><a href="../../index.html" class="icon icon-home"></a> &raquo;</li> <li><a href="../../index.html" class="icon icon-home"></a> &raquo;</li>
<li><a href="../index.html">Module code</a> &raquo;</li> <li><a href="../index.html">Module code</a> &raquo;</li>
<li><a href="../pylorax.html">pylorax</a> &raquo;</li> <li><a href="../pylorax.html">pylorax</a> &raquo;</li>
<li>pylorax.sysutils</li> <li>pylorax.sysutils</li>
<li class="wy-breadcrumbs-aside"> <li class="wy-breadcrumbs-aside">
</li> </li>
</ul> </ul>
<hr/> <hr/>
</div> </div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody"> <div itemprop="articleBody">
<h1>Source code for pylorax.sysutils</h1><div class="highlight"><pre> <h1>Source code for pylorax.sysutils</h1><div class="highlight"><pre>
<span></span><span class="c1">#</span> <span></span><span class="c1">#</span>
<span class="c1"># sysutils.py</span> <span class="c1"># sysutils.py</span>
@ -322,46 +233,30 @@
</pre></div> </pre></div>
</div> </div>
</div> </div>
<footer> <footer>
<hr/> <hr/>
<div role="contentinfo"> <div role="contentinfo">
<p> <p>&#169; Copyright 2018, Red Hat, Inc..</p>
&#169; Copyright 2018, Red Hat, Inc..
</p>
</div> </div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer> </footer>
</div> </div>
</div> </div>
</section> </section>
</div> </div>
<script>
<script type="text/javascript">
jQuery(function () { jQuery(function () {
SphinxRtdTheme.Navigation.enable(true); SphinxRtdTheme.Navigation.enable(true);
}); });
</script> </script>
</body> </body>
</html> </html>

View File

@ -1,69 +1,31 @@
<!DOCTYPE html> <!DOCTYPE html>
<html class="writer-html5" lang="en" > <html class="writer-html5" lang="en" >
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>pylorax.treebuilder &mdash; Lorax 36.0 documentation</title>
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
<title>pylorax.treebuilder &mdash; Lorax 34.10 documentation</title> <script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script>
<link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
<script src="../../_static/jquery.js"></script> <script src="../../_static/jquery.js"></script>
<script src="../../_static/underscore.js"></script> <script src="../../_static/underscore.js"></script>
<script src="../../_static/doctools.js"></script> <script src="../../_static/doctools.js"></script>
<script src="../../_static/js/theme.js"></script>
<script type="text/javascript" src="../../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../../genindex.html" /> <link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" /> <link rel="search" title="Search" href="../../search.html" />
</head> </head>
<body class="wy-body-for-nav"> <body class="wy-body-for-nav">
<div class="wy-grid-for-nav"> <div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side"> <nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll"> <div class="wy-side-scroll">
<div class="wy-side-nav-search" > <div class="wy-side-nav-search" >
<a href="../../index.html" class="icon icon-home"> Lorax <a href="../../index.html" class="icon icon-home"> Lorax
</a> </a>
<div class="version"> <div class="version">
34.10 36.0
</div> </div>
<div role="search"> <div role="search">
<form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" /> <input type="text" name="q" placeholder="Search docs" />
@ -71,18 +33,7 @@
<input type="hidden" name="area" value="default" /> <input type="hidden" name="area" value="default" />
</form> </form>
</div> </div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul> <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">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="../../intro.html#before-lorax">Before Lorax</a></li>
@ -93,71 +44,31 @@
<li class="toctree-l1"><a class="reference internal" href="../../modules.html">src</a></li> <li class="toctree-l1"><a class="reference internal" href="../../modules.html">src</a></li>
</ul> </ul>
</div> </div>
</div> </div>
</nav> </nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i> <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../../index.html">Lorax</a> <a href="../../index.html">Lorax</a>
</nav> </nav>
<div class="wy-nav-content"> <div class="wy-nav-content">
<div class="rst-content"> <div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs"> <ul class="wy-breadcrumbs">
<li><a href="../../index.html" class="icon icon-home"></a> &raquo;</li> <li><a href="../../index.html" class="icon icon-home"></a> &raquo;</li>
<li><a href="../index.html">Module code</a> &raquo;</li> <li><a href="../index.html">Module code</a> &raquo;</li>
<li><a href="../pylorax.html">pylorax</a> &raquo;</li> <li><a href="../pylorax.html">pylorax</a> &raquo;</li>
<li>pylorax.treebuilder</li> <li>pylorax.treebuilder</li>
<li class="wy-breadcrumbs-aside"> <li class="wy-breadcrumbs-aside">
</li> </li>
</ul> </ul>
<hr/> <hr/>
</div> </div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody"> <div itemprop="articleBody">
<h1>Source code for pylorax.treebuilder</h1><div class="highlight"><pre> <h1>Source code for pylorax.treebuilder</h1><div class="highlight"><pre>
<span></span><span class="c1"># treebuilder.py - handle arch-specific tree building stuff using templates</span> <span></span><span class="c1"># treebuilder.py - handle arch-specific tree building stuff using templates</span>
<span class="c1">#</span> <span class="c1">#</span>
@ -192,6 +103,7 @@
<span class="kn">from</span> <span class="nn">pylorax.base</span> <span class="kn">import</span> <span class="n">DataHolder</span> <span class="kn">from</span> <span class="nn">pylorax.base</span> <span class="kn">import</span> <span class="n">DataHolder</span>
<span class="kn">from</span> <span class="nn">pylorax.ltmpl</span> <span class="kn">import</span> <span class="n">LoraxTemplateRunner</span> <span class="kn">from</span> <span class="nn">pylorax.ltmpl</span> <span class="kn">import</span> <span class="n">LoraxTemplateRunner</span>
<span class="kn">import</span> <span class="nn">pylorax.imgutils</span> <span class="k">as</span> <span class="nn">imgutils</span> <span class="kn">import</span> <span class="nn">pylorax.imgutils</span> <span class="k">as</span> <span class="nn">imgutils</span>
<span class="kn">from</span> <span class="nn">pylorax.imgutils</span> <span class="kn">import</span> <span class="n">DracutChroot</span>
<span class="kn">from</span> <span class="nn">pylorax.executils</span> <span class="kn">import</span> <span class="n">runcmd</span><span class="p">,</span> <span class="n">runcmd_output</span><span class="p">,</span> <span class="n">execWithCapture</span> <span class="kn">from</span> <span class="nn">pylorax.executils</span> <span class="kn">import</span> <span class="n">runcmd</span><span class="p">,</span> <span class="n">runcmd_output</span><span class="p">,</span> <span class="n">execWithCapture</span>
<span class="n">templatemap</span> <span class="o">=</span> <span class="p">{</span> <span class="n">templatemap</span> <span class="o">=</span> <span class="p">{</span>
@ -235,11 +147,6 @@
<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">skip_branding</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
<span class="n">root</span> <span class="o">=</span> <span class="n">dbo</span><span class="o">.</span><span class="n">conf</span><span class="o">.</span><span class="n">installroot</span> <span class="n">root</span> <span class="o">=</span> <span class="n">dbo</span><span class="o">.</span><span class="n">conf</span><span class="o">.</span><span class="n">installroot</span>
<span class="c1"># use a copy of product so we can modify it locally</span>
<span class="n">product</span> <span class="o">=</span> <span class="n">product</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
<span class="n">product</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">product</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span>
<span class="bp">self</span><span class="o">.</span><span class="n">vars</span> <span class="o">=</span> <span class="n">DataHolder</span><span class="p">(</span><span class="n">arch</span><span class="o">=</span><span class="n">arch</span><span class="p">,</span> <span class="n">product</span><span class="o">=</span><span class="n">product</span><span class="p">,</span> <span class="n">dbo</span><span class="o">=</span><span class="n">dbo</span><span class="p">,</span> <span class="n">root</span><span class="o">=</span><span class="n">root</span><span class="p">,</span>
<span class="n">basearch</span><span class="o">=</span><span class="n">arch</span><span class="o">.</span><span class="n">basearch</span><span class="p">,</span> <span class="n">libdir</span><span class="o">=</span><span class="n">arch</span><span class="o">.</span><span class="n">libdir</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">dbo</span> <span class="o">=</span> <span class="n">dbo</span> <span class="bp">self</span><span class="o">.</span><span class="n">dbo</span> <span class="o">=</span> <span class="n">dbo</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_runner</span> <span class="o">=</span> <span class="n">LoraxTemplateRunner</span><span class="p">(</span><span class="n">inroot</span><span class="o">=</span><span class="n">root</span><span class="p">,</span> <span class="n">outroot</span><span class="o">=</span><span class="n">root</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">LoraxTemplateRunner</span><span class="p">(</span><span class="n">inroot</span><span class="o">=</span><span class="n">root</span><span class="p">,</span> <span class="n">outroot</span><span class="o">=</span><span class="n">root</span><span class="p">,</span>
<span class="n">dbo</span><span class="o">=</span><span class="n">dbo</span><span class="p">,</span> <span class="n">templatedir</span><span class="o">=</span><span class="n">templatedir</span><span class="p">)</span> <span class="n">dbo</span><span class="o">=</span><span class="n">dbo</span><span class="p">,</span> <span class="n">templatedir</span><span class="o">=</span><span class="n">templatedir</span><span class="p">)</span>
@ -247,20 +154,29 @@
<span class="bp">self</span><span class="o">.</span><span class="n">add_template_vars</span> <span class="o">=</span> <span class="n">add_template_vars</span> <span class="ow">or</span> <span class="p">{}</span> <span class="bp">self</span><span class="o">.</span><span class="n">add_template_vars</span> <span class="o">=</span> <span class="n">add_template_vars</span> <span class="ow">or</span> <span class="p">{}</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_installpkgs</span> <span class="o">=</span> <span class="n">installpkgs</span> <span class="ow">or</span> <span class="p">[]</span> <span class="bp">self</span><span class="o">.</span><span class="n">_installpkgs</span> <span class="o">=</span> <span class="n">installpkgs</span> <span class="ow">or</span> <span class="p">[]</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_excludepkgs</span> <span class="o">=</span> <span class="n">excludepkgs</span> <span class="ow">or</span> <span class="p">[]</span> <span class="bp">self</span><span class="o">.</span><span class="n">_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">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="c1"># use a copy of product so we can modify it locally</span>
<span class="n">product</span> <span class="o">=</span> <span class="n">product</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
<span class="n">product</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">product</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_branding</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_branding</span><span class="p">(</span><span class="n">skip_branding</span><span class="p">,</span> <span class="n">product</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">vars</span> <span class="o">=</span> <span class="n">DataHolder</span><span class="p">(</span><span class="n">arch</span><span class="o">=</span><span class="n">arch</span><span class="p">,</span> <span class="n">product</span><span class="o">=</span><span class="n">product</span><span class="p">,</span> <span class="n">dbo</span><span class="o">=</span><span class="n">dbo</span><span class="p">,</span> <span class="n">root</span><span class="o">=</span><span class="n">root</span><span class="p">,</span>
<span class="n">basearch</span><span class="o">=</span><span class="n">arch</span><span class="o">.</span><span class="n">basearch</span><span class="p">,</span> <span class="n">libdir</span><span class="o">=</span><span class="n">arch</span><span class="o">.</span><span class="n">libdir</span><span class="p">,</span>
<span class="n">branding</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_branding</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>
<div class="viewcode-block" id="RuntimeBuilder.get_branding"><a class="viewcode-back" href="../../pylorax.html#pylorax.treebuilder.RuntimeBuilder.get_branding">[docs]</a> <span class="k">def</span> <span class="nf">get_branding</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">skip</span><span class="p">,</span> <span class="n">product</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">&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"> 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"> When there are more than 1 package it will:</span>
<span class="sd"> - Make a list of the available packages</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 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"> - If there are one or more non-generic packages, use the first one after sorting</span>
<span class="sd"> Returns the package names of the system-release and release logos package</span>
<span class="sd"> &quot;&quot;&quot;</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">if</span> <span class="n">skip</span><span class="p">:</span>
<span class="k">return</span> <span class="k">return</span> <span class="n">DataHolder</span><span class="p">(</span><span class="n">release</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">logos</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span>
<span class="n">release</span> <span class="o">=</span> <span class="kc">None</span> <span class="n">release</span> <span class="o">=</span> <span class="kc">None</span>
<span class="n">q</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dbo</span><span class="o">.</span><span class="n">sack</span><span class="o">.</span><span class="n">query</span><span class="p">()</span> <span class="n">q</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dbo</span><span class="o">.</span><span class="n">sack</span><span class="o">.</span><span class="n">query</span><span class="p">()</span>
@ -269,11 +185,11 @@
<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">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="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="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="k">return</span> <span class="n">DataHolder</span><span class="p">(</span><span class="n">release</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">logos</span><span class="o">=</span><span class="kc">None</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;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="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="k">if</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="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="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="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="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="k">if</span> <span class="ow">not</span> <span class="n">release</span><span class="p">:</span>
@ -281,20 +197,25 @@
<span class="c1"># release</span> <span class="c1"># release</span>
<span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">&#39;got release: </span><span class="si">%s</span><span class="s1">&#39;</span><span class="p">,</span> <span class="n">release</span><span class="p">)</span> <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">&#39;got release: </span><span class="si">%s</span><span class="s1">&#39;</span><span class="p">,</span> <span class="n">release</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_runner</span><span class="o">.</span><span class="n">installpkg</span><span class="p">(</span><span class="n">release</span><span class="p">)</span>
<span class="c1"># logos</span> <span class="c1"># logos uses the basename from release (fedora, redhat, centos, ...)</span>
<span class="n">release</span><span class="p">,</span> <span class="n">_suffix</span> <span class="o">=</span> <span class="n">release</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;-&#39;</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span> <span class="n">logos</span><span class="p">,</span> <span class="n">_suffix</span> <span class="o">=</span> <span class="n">release</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;-&#39;</span><span class="p">,</span> <span class="mi">1</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="s1">&#39;</span><span class="si">%s</span><span class="s1">-logos&#39;</span> <span class="o">%</span> <span class="n">release</span><span class="p">)</span> <span class="k">return</span> <span class="n">DataHolder</span><span class="p">(</span><span class="n">release</span><span class="o">=</span><span class="n">release</span><span class="p">,</span> <span class="n">logos</span><span class="o">=</span><span class="n">logos</span><span class="o">+</span><span class="s2">&quot;-logos&quot;</span><span class="p">)</span></div>
<div class="viewcode-block" id="RuntimeBuilder.install"><a class="viewcode-back" href="../../pylorax.html#pylorax.treebuilder.RuntimeBuilder.install">[docs]</a> <span class="k">def</span> <span class="nf">install</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <div class="viewcode-block" id="RuntimeBuilder.install"><a class="viewcode-back" href="../../pylorax.html#pylorax.treebuilder.RuntimeBuilder.install">[docs]</a> <span class="k">def</span> <span class="nf">install</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="sd">&#39;&#39;&#39;Install packages and do initial setup with runtime-install.tmpl&#39;&#39;&#39;</span> <span class="sd">&#39;&#39;&#39;Install packages and do initial setup with runtime-install.tmpl&#39;&#39;&#39;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_install_branding</span><span class="p">()</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_branding</span><span class="o">.</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="bp">self</span><span class="o">.</span><span class="n">_branding</span><span class="o">.</span><span class="n">release</span><span class="p">)</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_branding</span><span class="o">.</span><span class="n">logos</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="bp">self</span><span class="o">.</span><span class="n">_branding</span><span class="o">.</span><span class="n">logos</span><span class="p">)</span>
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_installpkgs</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_installpkgs</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</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="o">*</span><span class="bp">self</span><span class="o">.</span><span class="n">_installpkgs</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="o">*</span><span class="bp">self</span><span class="o">.</span><span class="n">_installpkgs</span><span class="p">)</span>
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_excludepkgs</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_excludepkgs</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</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">removepkg</span><span class="p">(</span><span class="o">*</span><span class="bp">self</span><span class="o">.</span><span class="n">_excludepkgs</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">removepkg</span><span class="p">(</span><span class="o">*</span><span class="bp">self</span><span class="o">.</span><span class="n">_excludepkgs</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">run</span><span class="p">(</span><span class="s2">&quot;runtime-install.tmpl&quot;</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">run</span><span class="p">(</span><span class="s2">&quot;runtime-install.tmpl&quot;</span><span class="p">)</span>
<span class="k">for</span> <span class="n">tmpl</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">add_templates</span><span class="p">:</span> <span class="k">for</span> <span class="n">tmpl</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">add_templates</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">run</span><span class="p">(</span><span class="n">tmpl</span><span class="p">,</span> <span class="o">**</span><span class="bp">self</span><span class="o">.</span><span class="n">add_template_vars</span><span class="p">)</span></div> <span class="bp">self</span><span class="o">.</span><span class="n">_runner</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">tmpl</span><span class="p">,</span> <span class="o">**</span><span class="bp">self</span><span class="o">.</span><span class="n">add_template_vars</span><span class="p">)</span></div>
@ -462,32 +383,31 @@
<span class="sd"> name of the kernel.</span> <span class="sd"> name of the kernel.</span>
<span class="sd"> &#39;&#39;&#39;</span> <span class="sd"> &#39;&#39;&#39;</span>
<span class="n">add_args</span> <span class="o">=</span> <span class="n">add_args</span> <span class="ow">or</span> <span class="p">[]</span> <span class="n">add_args</span> <span class="o">=</span> <span class="n">add_args</span> <span class="ow">or</span> <span class="p">[]</span>
<span class="n">dracut</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;dracut&quot;</span><span class="p">,</span> <span class="s2">&quot;--nomdadmconf&quot;</span><span class="p">,</span> <span class="s2">&quot;--nolvmconf&quot;</span><span class="p">]</span> <span class="o">+</span> <span class="n">add_args</span> <span class="n">args</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;--nomdadmconf&quot;</span><span class="p">,</span> <span class="s2">&quot;--nolvmconf&quot;</span><span class="p">]</span> <span class="o">+</span> <span class="n">add_args</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">backup</span><span class="p">:</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">backup</span><span class="p">:</span>
<span class="n">dracut</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">&quot;--force&quot;</span><span class="p">)</span> <span class="n">args</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">&quot;--force&quot;</span><span class="p">)</span>
<span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">kernels</span><span class="p">:</span> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">kernels</span><span class="p">:</span>
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;No kernels found, cannot rebuild_initrds&quot;</span><span class="p">)</span> <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;No kernels found, cannot rebuild_initrds&quot;</span><span class="p">)</span>
<span class="k">for</span> <span class="n">kernel</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">kernels</span><span class="p">:</span> <span class="k">with</span> <span class="n">DracutChroot</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">vars</span><span class="o">.</span><span class="n">inroot</span><span class="p">)</span> <span class="k">as</span> <span class="n">dracut</span><span class="p">:</span>
<span class="k">if</span> <span class="n">prefix</span><span class="p">:</span> <span class="k">for</span> <span class="n">kernel</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">kernels</span><span class="p">:</span>
<span class="n">idir</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">dirname</span><span class="p">(</span><span class="n">kernel</span><span class="o">.</span><span class="n">path</span><span class="p">)</span> <span class="k">if</span> <span class="n">prefix</span><span class="p">:</span>
<span class="n">outfile</span> <span class="o">=</span> <span class="n">joinpaths</span><span class="p">(</span><span class="n">idir</span><span class="p">,</span> <span class="n">prefix</span><span class="o">+</span><span class="s1">&#39;-&#39;</span><span class="o">+</span><span class="n">kernel</span><span class="o">.</span><span class="n">version</span><span class="o">+</span><span class="s1">&#39;.img&#39;</span><span class="p">)</span> <span class="n">idir</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">dirname</span><span class="p">(</span><span class="n">kernel</span><span class="o">.</span><span class="n">path</span><span class="p">)</span>
<span class="k">elif</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">kernel</span><span class="p">,</span> <span class="s2">&quot;initrd&quot;</span><span class="p">):</span> <span class="n">outfile</span> <span class="o">=</span> <span class="n">joinpaths</span><span class="p">(</span><span class="n">idir</span><span class="p">,</span> <span class="n">prefix</span><span class="o">+</span><span class="s1">&#39;-&#39;</span><span class="o">+</span><span class="n">kernel</span><span class="o">.</span><span class="n">version</span><span class="o">+</span><span class="s1">&#39;.img&#39;</span><span class="p">)</span>
<span class="c1"># If there is an existing initrd, use that</span> <span class="k">elif</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">kernel</span><span class="p">,</span> <span class="s2">&quot;initrd&quot;</span><span class="p">):</span>
<span class="n">outfile</span> <span class="o">=</span> <span class="n">kernel</span><span class="o">.</span><span class="n">initrd</span><span class="o">.</span><span class="n">path</span> <span class="c1"># If there is an existing initrd, use that</span>
<span class="k">else</span><span class="p">:</span> <span class="n">outfile</span> <span class="o">=</span> <span class="n">kernel</span><span class="o">.</span><span class="n">initrd</span><span class="o">.</span><span class="n">path</span>
<span class="c1"># Construct an initrd from the kernel name</span> <span class="k">else</span><span class="p">:</span>
<span class="n">outfile</span> <span class="o">=</span> <span class="n">kernel</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s2">&quot;vmlinuz-&quot;</span><span class="p">,</span> <span class="s2">&quot;initrd-&quot;</span><span class="p">)</span> <span class="o">+</span> <span class="s2">&quot;.img&quot;</span> <span class="c1"># Construct an initrd from the kernel name</span>
<span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;rebuilding </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">outfile</span><span class="p">)</span> <span class="n">outfile</span> <span class="o">=</span> <span class="n">kernel</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s2">&quot;vmlinuz-&quot;</span><span class="p">,</span> <span class="s2">&quot;initrd-&quot;</span><span class="p">)</span> <span class="o">+</span> <span class="s2">&quot;.img&quot;</span>
<span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;dracut warnings about /proc are safe to ignore&quot;</span><span class="p">)</span> <span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;rebuilding </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">outfile</span><span class="p">)</span>
<span class="k">if</span> <span class="n">backup</span><span class="p">:</span> <span class="k">if</span> <span class="n">backup</span><span class="p">:</span>
<span class="n">initrd</span> <span class="o">=</span> <span class="n">joinpaths</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">vars</span><span class="o">.</span><span class="n">inroot</span><span class="p">,</span> <span class="n">outfile</span><span class="p">)</span> <span class="n">initrd</span> <span class="o">=</span> <span class="n">joinpaths</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">vars</span><span class="o">.</span><span class="n">inroot</span><span class="p">,</span> <span class="n">outfile</span><span class="p">)</span>
<span class="k">if</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="n">initrd</span><span class="p">):</span> <span class="k">if</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="n">initrd</span><span class="p">):</span>
<span class="n">os</span><span class="o">.</span><span class="n">rename</span><span class="p">(</span><span class="n">initrd</span><span class="p">,</span> <span class="n">initrd</span> <span class="o">+</span> <span class="n">backup</span><span class="p">)</span> <span class="n">os</span><span class="o">.</span><span class="n">rename</span><span class="p">(</span><span class="n">initrd</span><span class="p">,</span> <span class="n">initrd</span> <span class="o">+</span> <span class="n">backup</span><span class="p">)</span>
<span class="n">cmd</span> <span class="o">=</span> <span class="n">dracut</span> <span class="o">+</span> <span class="p">[</span><span class="n">outfile</span><span class="p">,</span> <span class="n">kernel</span><span class="o">.</span><span class="n">version</span><span class="p">]</span> <span class="n">dracut</span><span class="o">.</span><span class="n">Run</span><span class="p">(</span><span class="n">args</span> <span class="o">+</span> <span class="p">[</span><span class="n">outfile</span><span class="p">,</span> <span class="n">kernel</span><span class="o">.</span><span class="n">version</span><span class="p">])</span></div>
<span class="n">runcmd</span><span class="p">(</span><span class="n">cmd</span><span class="p">,</span> <span class="n">root</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">inroot</span><span class="p">)</span></div>
<div class="viewcode-block" id="TreeBuilder.build"><a class="viewcode-back" href="../../pylorax.html#pylorax.treebuilder.TreeBuilder.build">[docs]</a> <span class="k">def</span> <span class="nf">build</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <div class="viewcode-block" id="TreeBuilder.build"><a class="viewcode-back" href="../../pylorax.html#pylorax.treebuilder.TreeBuilder.build">[docs]</a> <span class="k">def</span> <span class="nf">build</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="n">templatefile</span> <span class="o">=</span> <span class="n">templatemap</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">vars</span><span class="o">.</span><span class="n">arch</span><span class="o">.</span><span class="n">basearch</span><span class="p">]</span> <span class="n">templatefile</span> <span class="o">=</span> <span class="n">templatemap</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">vars</span><span class="o">.</span><span class="n">arch</span><span class="o">.</span><span class="n">basearch</span><span class="p">]</span>
@ -585,46 +505,30 @@
</pre></div> </pre></div>
</div> </div>
</div> </div>
<footer> <footer>
<hr/> <hr/>
<div role="contentinfo"> <div role="contentinfo">
<p> <p>&#169; Copyright 2018, Red Hat, Inc..</p>
&#169; Copyright 2018, Red Hat, Inc..
</p>
</div> </div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer> </footer>
</div> </div>
</div> </div>
</section> </section>
</div> </div>
<script>
<script type="text/javascript">
jQuery(function () { jQuery(function () {
SphinxRtdTheme.Navigation.enable(true); SphinxRtdTheme.Navigation.enable(true);
}); });
</script> </script>
</body> </body>
</html> </html>

View File

@ -1,69 +1,31 @@
<!DOCTYPE html> <!DOCTYPE html>
<html class="writer-html5" lang="en" > <html class="writer-html5" lang="en" >
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>pylorax.treeinfo &mdash; Lorax 36.0 documentation</title>
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
<title>pylorax.treeinfo &mdash; Lorax 34.10 documentation</title> <script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script>
<link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
<script src="../../_static/jquery.js"></script> <script src="../../_static/jquery.js"></script>
<script src="../../_static/underscore.js"></script> <script src="../../_static/underscore.js"></script>
<script src="../../_static/doctools.js"></script> <script src="../../_static/doctools.js"></script>
<script src="../../_static/js/theme.js"></script>
<script type="text/javascript" src="../../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../../genindex.html" /> <link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" /> <link rel="search" title="Search" href="../../search.html" />
</head> </head>
<body class="wy-body-for-nav"> <body class="wy-body-for-nav">
<div class="wy-grid-for-nav"> <div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side"> <nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll"> <div class="wy-side-scroll">
<div class="wy-side-nav-search" > <div class="wy-side-nav-search" >
<a href="../../index.html" class="icon icon-home"> Lorax <a href="../../index.html" class="icon icon-home"> Lorax
</a> </a>
<div class="version"> <div class="version">
34.10 36.0
</div> </div>
<div role="search"> <div role="search">
<form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" /> <input type="text" name="q" placeholder="Search docs" />
@ -71,18 +33,7 @@
<input type="hidden" name="area" value="default" /> <input type="hidden" name="area" value="default" />
</form> </form>
</div> </div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul> <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">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="../../intro.html#before-lorax">Before Lorax</a></li>
@ -93,71 +44,31 @@
<li class="toctree-l1"><a class="reference internal" href="../../modules.html">src</a></li> <li class="toctree-l1"><a class="reference internal" href="../../modules.html">src</a></li>
</ul> </ul>
</div> </div>
</div> </div>
</nav> </nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i> <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../../index.html">Lorax</a> <a href="../../index.html">Lorax</a>
</nav> </nav>
<div class="wy-nav-content"> <div class="wy-nav-content">
<div class="rst-content"> <div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs"> <ul class="wy-breadcrumbs">
<li><a href="../../index.html" class="icon icon-home"></a> &raquo;</li> <li><a href="../../index.html" class="icon icon-home"></a> &raquo;</li>
<li><a href="../index.html">Module code</a> &raquo;</li> <li><a href="../index.html">Module code</a> &raquo;</li>
<li><a href="../pylorax.html">pylorax</a> &raquo;</li> <li><a href="../pylorax.html">pylorax</a> &raquo;</li>
<li>pylorax.treeinfo</li> <li>pylorax.treeinfo</li>
<li class="wy-breadcrumbs-aside"> <li class="wy-breadcrumbs-aside">
</li> </li>
</ul> </ul>
<hr/> <hr/>
</div> </div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody"> <div itemprop="articleBody">
<h1>Source code for pylorax.treeinfo</h1><div class="highlight"><pre> <h1>Source code for pylorax.treeinfo</h1><div class="highlight"><pre>
<span></span><span class="c1">#</span> <span></span><span class="c1">#</span>
<span class="c1"># treeinfo.py</span> <span class="c1"># treeinfo.py</span>
@ -225,46 +136,30 @@
</pre></div> </pre></div>
</div> </div>
</div> </div>
<footer> <footer>
<hr/> <hr/>
<div role="contentinfo"> <div role="contentinfo">
<p> <p>&#169; Copyright 2018, Red Hat, Inc..</p>
&#169; Copyright 2018, Red Hat, Inc..
</p>
</div> </div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer> </footer>
</div> </div>
</div> </div>
</section> </section>
</div> </div>
<script>
<script type="text/javascript">
jQuery(function () { jQuery(function () {
SphinxRtdTheme.Navigation.enable(true); SphinxRtdTheme.Navigation.enable(true);
}); });
</script> </script>
</body> </body>
</html> </html>

View File

@ -0,0 +1,99 @@
image-minimizer
===============
:Authors:
Brian C. Lane <bcl@redhat.com>
`image-minimizer` is a script used as an interpreter for kickstart `%post`
sections. It is used to remove rpm packages and individual files from the
system that Anaconda has just installed.
It processes a list of commands that tell it which files or rpms to remove, and
which to keep.
image-minimizer cmdline arguments
---------------------------------
`usage: image-minimizer [-h] [-i STRING] [--dryrun] [-v] STRING`
Optional arguments
^^^^^^^^^^^^^^^^^^
-h, --help show this help message and exit
-i STRING, --installroot STRING
Root path to prepend to all file patterns and
installation root for RPM operations. Defaults to
INSTALL_ROOT or /mnt/sysimage/
--dryrun If set, no filesystem changes are made.
-v, --verbose Display every action as it is performed.
Positional arguments
^^^^^^^^^^^^^^^^^^^^
:STRING: Filename to process
NOTES
-----
You cannot pass any arguments to `image-minimizer` when using it from the
kickstart `%post`.
When using this from a kickstart the image-minimizer package needs to be available.
It is not included on the standard boot.iso, so you will need to include `lorax` in
the `%package` section. You can use `image-minimizer` to remove lorax from the install.
If you are using this with `livemedia-creator` it can be installed on the host
system so that `lorax` isn't needed in the `%package` list, and it doesn't need
to be removed.
commands
--------
Commands are listed one per line, followed by a space, and then by the
package, file, or glob. The globs used are Unix style pathname patterns using
`*`, `?`, and `[]` character ranges. globbing is implemented using the python
glob module.
* drop <PATTERN>
This will remove files from the installation.
* keep <PATTERN>
This will keep files, and should follow any `drop` commands including globs.
* droprpm <PATTERN>
Remove matching rpm packages. Dependencies are not remove, just individual
packages matching the glob.
* keeprpm <PATTERN>
Do not remove matching rpm packages, it should follow any `droprpm` commands
that include globs.
example
-------
Example Anaconda `%post` usage::
%post --interpreter=image-minimizer --nochroot
drop /lib/modules/*/kernel/fs
keep /lib/modules/*/kernel/fs/ext*
keep /lib/modules/*/kernel/fs/mbcache*
keep /lib/modules/*/kernel/fs/squashfs
droprpm make
droprpm mtools
droprpm mysql-libs
droprpm perl
droprpm perl-Pod-*
droprpm syslinux
keeprpm perl-Pod-Simple
# Not needed after image-minimizer is done
droprpm lorax
%end

View File

@ -16,15 +16,15 @@ Contents:
livemedia-creator livemedia-creator
mkksiso mkksiso
product-images product-images
image-minimizer
modules modules
Documentation for other Lorax Branches Documentation for other Lorax Branches
====================================== ======================================
* `Fedora 35 <f35-branch/>`_
* `Fedora 34 <f34-branch/>`_
* `Fedora 33 <f33-branch/>`_ * `Fedora 33 <f33-branch/>`_
* `Fedora 32 <f32-branch/>`_
* `Fedora 31 <f31-branch/>`_
* `Fedora 30 <f30-branch/>`_
* `RHEL8 lorax-composer <rhel8-branch/>`_ * `RHEL8 lorax-composer <rhel8-branch/>`_
* `RHEL7 lorax-composer <lorax-composer/>`_ * `RHEL7 lorax-composer <lorax-composer/>`_

View File

@ -171,7 +171,6 @@ changes. Here are the steps I used to convert the Fedora XFCE spin.
dracut-live dracut-live
-dracut-config-rescue -dracut-config-rescue
grub2-efi grub2-efi
memtest86+
syslinux syslinux
User created repositories User created repositories

View File

@ -51,7 +51,7 @@ You can add your own repos with ``-s`` and packages with higher NVRs will
override the ones in the distribution repositories. override the ones in the distribution repositories.
Under ``./results/`` will be the release tree files: .discinfo, .treeinfo, everything that Under ``./results/`` will be the release tree files: .discinfo, .treeinfo, everything that
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 ``./results/images/``.
Branding Branding

View File

@ -10,7 +10,9 @@ the iso is booted. If the original iso was created with EFI and Mac support the
kickstart boot.iso will include this support as well. kickstart boot.iso will include this support as well.
``mkksiso`` needs to be run as root, it depends on mounting the original iso ``mkksiso`` needs to be run as root, it depends on mounting the original iso
and you need to be root to be able to do that. and you need to be root to be able to do that. The host system architecture
needs to match that of the iso. ``mkksiso`` will raise an error if it finds a
.discinfo on the iso with a mismatched arch.
mkksiso cmdline arguments mkksiso cmdline arguments

View File

@ -130,7 +130,7 @@ ul.search li a {
font-weight: bold; font-weight: bold;
} }
ul.search li div.context { ul.search li p.context {
color: #888; color: #888;
margin: 2px 0 0 30px; margin: 2px 0 0 30px;
text-align: left; text-align: left;
@ -277,25 +277,25 @@ p.rubric {
font-weight: bold; font-weight: bold;
} }
img.align-left, .figure.align-left, object.align-left { img.align-left, figure.align-left, .figure.align-left, object.align-left {
clear: left; clear: left;
float: left; float: left;
margin-right: 1em; margin-right: 1em;
} }
img.align-right, .figure.align-right, object.align-right { img.align-right, figure.align-right, .figure.align-right, object.align-right {
clear: right; clear: right;
float: right; float: right;
margin-left: 1em; margin-left: 1em;
} }
img.align-center, .figure.align-center, object.align-center { img.align-center, figure.align-center, .figure.align-center, object.align-center {
display: block; display: block;
margin-left: auto; margin-left: auto;
margin-right: auto; margin-right: auto;
} }
img.align-default, .figure.align-default { img.align-default, figure.align-default, .figure.align-default {
display: block; display: block;
margin-left: auto; margin-left: auto;
margin-right: auto; margin-right: auto;
@ -319,7 +319,8 @@ img.align-default, .figure.align-default {
/* -- sidebars -------------------------------------------------------------- */ /* -- sidebars -------------------------------------------------------------- */
div.sidebar { div.sidebar,
aside.sidebar {
margin: 0 0 0.5em 1em; margin: 0 0 0.5em 1em;
border: 1px solid #ddb; border: 1px solid #ddb;
padding: 7px; padding: 7px;
@ -377,12 +378,14 @@ div.body p.centered {
/* -- content of sidebars/topics/admonitions -------------------------------- */ /* -- content of sidebars/topics/admonitions -------------------------------- */
div.sidebar > :last-child, div.sidebar > :last-child,
aside.sidebar > :last-child,
div.topic > :last-child, div.topic > :last-child,
div.admonition > :last-child { div.admonition > :last-child {
margin-bottom: 0; margin-bottom: 0;
} }
div.sidebar::after, div.sidebar::after,
aside.sidebar::after,
div.topic::after, div.topic::after,
div.admonition::after, div.admonition::after,
blockquote::after { blockquote::after {
@ -455,20 +458,22 @@ td > :last-child {
/* -- figures --------------------------------------------------------------- */ /* -- figures --------------------------------------------------------------- */
div.figure { div.figure, figure {
margin: 0.5em; margin: 0.5em;
padding: 0.5em; padding: 0.5em;
} }
div.figure p.caption { div.figure p.caption, figcaption {
padding: 0.3em; padding: 0.3em;
} }
div.figure p.caption span.caption-number { div.figure p.caption span.caption-number,
figcaption span.caption-number {
font-style: italic; font-style: italic;
} }
div.figure p.caption span.caption-text { div.figure p.caption span.caption-text,
figcaption span.caption-text {
} }
/* -- field list styles ----------------------------------------------------- */ /* -- field list styles ----------------------------------------------------- */
@ -503,6 +508,63 @@ table.hlist td {
vertical-align: top; vertical-align: top;
} }
/* -- object description styles --------------------------------------------- */
.sig {
font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace;
}
.sig-name, code.descname {
background-color: transparent;
font-weight: bold;
}
.sig-name {
font-size: 1.1em;
}
code.descname {
font-size: 1.2em;
}
.sig-prename, code.descclassname {
background-color: transparent;
}
.optional {
font-size: 1.3em;
}
.sig-paren {
font-size: larger;
}
.sig-param.n {
font-style: italic;
}
/* C++ specific styling */
.sig-inline.c-texpr,
.sig-inline.cpp-texpr {
font-family: unset;
}
.sig.c .k, .sig.c .kt,
.sig.cpp .k, .sig.cpp .kt {
color: #0033B3;
}
.sig.c .m,
.sig.cpp .m {
color: #1750EB;
}
.sig.c .s, .sig.c .sc,
.sig.cpp .s, .sig.cpp .sc {
color: #067D17;
}
/* -- other body styles ----------------------------------------------------- */ /* -- other body styles ----------------------------------------------------- */
@ -629,14 +691,6 @@ dl.glossary dt {
font-size: 1.1em; font-size: 1.1em;
} }
.optional {
font-size: 1.3em;
}
.sig-paren {
font-size: larger;
}
.versionmodified { .versionmodified {
font-style: italic; font-style: italic;
} }
@ -765,8 +819,12 @@ div.code-block-caption code {
table.highlighttable td.linenos, table.highlighttable td.linenos,
span.linenos, span.linenos,
div.doctest > div.highlight span.gp { /* gp: Generic.Prompt */ div.highlight span.gp { /* gp: Generic.Prompt */
user-select: none; user-select: none;
-webkit-user-select: text; /* Safari fallback only */
-webkit-user-select: none; /* Chrome/Safari */
-moz-user-select: none; /* Firefox */
-ms-user-select: none; /* IE10+ */
} }
div.code-block-caption span.caption-number { div.code-block-caption span.caption-number {
@ -781,16 +839,6 @@ div.literal-block-wrapper {
margin: 1em 0; margin: 1em 0;
} }
code.descname {
background-color: transparent;
font-weight: bold;
font-size: 1.2em;
}
code.descclassname {
background-color: transparent;
}
code.xref, a code { code.xref, a code {
background-color: transparent; background-color: transparent;
font-weight: bold; font-weight: bold;

View File

@ -1 +1 @@
.fa:before{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-style:normal;font-weight:400;src:local("fontawesome/FontAwesome") format("truetype")}.fa:before{font-family:FontAwesome;font-style:normal;font-weight:400;line-height:1}.fa:before,a .fa{text-decoration:inherit}.fa:before,a .fa,li .fa{display:inline-block}li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-.8em}ul.fas li .fa{width:.8em}ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before,.icon-book:before{content:"\f02d"}.fa-caret-down:before,.icon-caret-down:before{content:"\f0d7"}.fa-caret-up:before,.icon-caret-up:before{content:"\f0d8"}.fa-caret-left:before,.icon-caret-left:before{content:"\f0d9"}.fa-caret-right:before,.icon-caret-right:before{content:"\f0da"}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60}.rst-versions .rst-current-version:after{clear:both;content:"";display:block}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}} .fa:before{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-style:normal;font-weight:400;src:local("fontawesome/FontAwesome") format("truetype")}.fa:before{font-family:FontAwesome;font-style:normal;font-weight:400;line-height:1}.fa:before,a .fa{text-decoration:inherit}.fa:before,a .fa,li .fa{display:inline-block}li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-.8em}ul.fas li .fa{width:.8em}ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before,.icon-book:before{content:"\f02d"}.fa-caret-down:before,.icon-caret-down:before{content:"\f0d7"}.fa-caret-up:before,.icon-caret-up:before{content:"\f0d8"}.fa-caret-left:before,.icon-caret-left:before{content:"\f0d9"}.fa-caret-right:before,.icon-caret-right:before{content:"\f0da"}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60}.rst-versions .rst-current-version:after{clear:both;content:"";display:block}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}}

File diff suppressed because one or more lines are too long

View File

@ -301,12 +301,14 @@ var Documentation = {
window.location.href = prevHref; window.location.href = prevHref;
return false; return false;
} }
break;
case 39: // right case 39: // right
var nextHref = $('link[rel="next"]').prop('href'); var nextHref = $('link[rel="next"]').prop('href');
if (nextHref) { if (nextHref) {
window.location.href = nextHref; window.location.href = nextHref;
return false; return false;
} }
break;
} }
} }
}); });

View File

@ -1,6 +1,6 @@
var DOCUMENTATION_OPTIONS = { var DOCUMENTATION_OPTIONS = {
URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
VERSION: '34.9.0', VERSION: '36.5',
LANGUAGE: 'None', LANGUAGE: 'None',
COLLAPSE_INDEX: false, COLLAPSE_INDEX: false,
BUILDER: 'html', BUILDER: 'html',

File diff suppressed because one or more lines are too long

View File

@ -282,7 +282,10 @@ var Search = {
complete: function(jqxhr, textstatus) { complete: function(jqxhr, textstatus) {
var data = jqxhr.responseText; var data = jqxhr.responseText;
if (data !== '' && data !== undefined) { if (data !== '' && data !== undefined) {
listItem.append(Search.makeSearchSummary(data, searchterms, hlterms)); var summary = Search.makeSearchSummary(data, searchterms, hlterms);
if (summary) {
listItem.append(summary);
}
} }
Search.output.append(listItem); Search.output.append(listItem);
setTimeout(function() { setTimeout(function() {
@ -498,6 +501,9 @@ var Search = {
*/ */
makeSearchSummary : function(htmlText, keywords, hlwords) { makeSearchSummary : function(htmlText, keywords, hlwords) {
var text = Search.htmlToText(htmlText); var text = Search.htmlToText(htmlText);
if (text == "") {
return null;
}
var textLower = text.toLowerCase(); var textLower = text.toLowerCase();
var start = 0; var start = 0;
$.each(keywords, function() { $.each(keywords, function() {
@ -509,7 +515,7 @@ var Search = {
var excerpt = ((start > 0) ? '...' : '') + var excerpt = ((start > 0) ? '...' : '') +
$.trim(text.substr(start, 240)) + $.trim(text.substr(start, 240)) +
((start + 240 - text.length) ? '...' : ''); ((start + 240 - text.length) ? '...' : '');
var rv = $('<div class="context"></div>').text(excerpt); var rv = $('<p class="context"></p>').text(excerpt);
$.each(hlwords, function() { $.each(hlwords, function() {
rv = rv.highlightText(this, 'highlighted'); rv = rv.highlightText(this, 'highlighted');
}); });

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -1,69 +1,31 @@
<!DOCTYPE html> <!DOCTYPE html>
<html class="writer-html5" lang="en" > <html class="writer-html5" lang="en" >
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Index &mdash; Lorax 36.5 documentation</title>
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<title>Index &mdash; Lorax 34.9.0 documentation</title> <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script> <script src="_static/jquery.js"></script>
<script src="_static/underscore.js"></script> <script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></script> <script src="_static/doctools.js"></script>
<script src="_static/js/theme.js"></script>
<script type="text/javascript" src="_static/js/theme.js"></script>
<link rel="index" title="Index" href="#" /> <link rel="index" title="Index" href="#" />
<link rel="search" title="Search" href="search.html" /> <link rel="search" title="Search" href="search.html" />
</head> </head>
<body class="wy-body-for-nav"> <body class="wy-body-for-nav">
<div class="wy-grid-for-nav"> <div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side"> <nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll"> <div class="wy-side-scroll">
<div class="wy-side-nav-search" > <div class="wy-side-nav-search" >
<a href="index.html" class="icon icon-home"> Lorax <a href="index.html" class="icon icon-home"> Lorax
</a> </a>
<div class="version"> <div class="version">
34.9.0 36.5
</div> </div>
<div role="search"> <div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get"> <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" /> <input type="text" name="q" placeholder="Search docs" />
@ -71,18 +33,7 @@
<input type="hidden" name="area" value="default" /> <input type="hidden" name="area" value="default" />
</form> </form>
</div> </div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul> <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">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="intro.html#before-lorax">Before Lorax</a></li>
@ -90,72 +41,33 @@
<li class="toctree-l1"><a class="reference internal" href="livemedia-creator.html">livemedia-creator</a></li> <li class="toctree-l1"><a class="reference internal" href="livemedia-creator.html">livemedia-creator</a></li>
<li class="toctree-l1"><a class="reference internal" href="mkksiso.html">mkksiso</a></li> <li class="toctree-l1"><a class="reference internal" href="mkksiso.html">mkksiso</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="product-images.html">Product and Updates Images</a></li>
<li class="toctree-l1"><a class="reference internal" href="image-minimizer.html">image-minimizer</a></li>
<li class="toctree-l1"><a class="reference internal" href="modules.html">src</a></li> <li class="toctree-l1"><a class="reference internal" href="modules.html">src</a></li>
</ul> </ul>
</div> </div>
</div> </div>
</nav> </nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i> <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="index.html">Lorax</a> <a href="index.html">Lorax</a>
</nav> </nav>
<div class="wy-nav-content"> <div class="wy-nav-content">
<div class="rst-content"> <div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs"> <ul class="wy-breadcrumbs">
<li><a href="index.html" class="icon icon-home"></a> &raquo;</li> <li><a href="index.html" class="icon icon-home"></a> &raquo;</li>
<li>Index</li> <li>Index</li>
<li class="wy-breadcrumbs-aside"> <li class="wy-breadcrumbs-aside">
</li> </li>
</ul> </ul>
<hr/> <hr/>
</div> </div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody"> <div itemprop="articleBody">
<h1 id="index">Index</h1> <h1 id="index">Index</h1>
@ -277,17 +189,19 @@
</li> </li>
<li><a href="pylorax.html#pylorax.imgutils.dm_attach">dm_attach() (in module pylorax.imgutils)</a> <li><a href="pylorax.html#pylorax.imgutils.dm_attach">dm_attach() (in module pylorax.imgutils)</a>
</li> </li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="pylorax.html#pylorax.imgutils.dm_detach">dm_detach() (in module pylorax.imgutils)</a> <li><a href="pylorax.html#pylorax.imgutils.dm_detach">dm_detach() (in module pylorax.imgutils)</a>
</li> </li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="pylorax.html#pylorax.imgutils.DMDev">DMDev (class in pylorax.imgutils)</a> <li><a href="pylorax.html#pylorax.imgutils.DMDev">DMDev (class in pylorax.imgutils)</a>
</li> </li>
<li><a href="pylorax.html#pylorax.imgutils.do_grafts">do_grafts() (in module pylorax.imgutils)</a> <li><a href="pylorax.html#pylorax.imgutils.do_grafts">do_grafts() (in module pylorax.imgutils)</a>
</li> </li>
<li><a href="pylorax.html#pylorax.creator.dracut_args">dracut_args() (in module pylorax.creator)</a> <li><a href="pylorax.html#pylorax.creator.dracut_args">dracut_args() (in module pylorax.creator)</a>
</li> </li>
<li><a href="pylorax.html#pylorax.treebuilder.TreeBuilder.dracut_hooks_path">dracut_hooks_path() (pylorax.treebuilder.TreeBuilder property)</a> <li><a href="pylorax.html#pylorax.treebuilder.TreeBuilder.dracut_hooks_path">dracut_hooks_path (pylorax.treebuilder.TreeBuilder property)</a>
</li>
<li><a href="pylorax.html#pylorax.imgutils.DracutChroot">DracutChroot (class in pylorax.imgutils)</a>
</li> </li>
</ul></td> </ul></td>
</tr></table> </tr></table>
@ -344,6 +258,8 @@
<li><a href="pylorax.html#pylorax.treebuilder.generate_module_info">generate_module_info() (in module pylorax.treebuilder)</a> <li><a href="pylorax.html#pylorax.treebuilder.generate_module_info">generate_module_info() (in module pylorax.treebuilder)</a>
</li> </li>
<li><a href="pylorax.html#pylorax.creator.get_arch">get_arch() (in module pylorax.creator)</a> <li><a href="pylorax.html#pylorax.creator.get_arch">get_arch() (in module pylorax.creator)</a>
</li>
<li><a href="pylorax.html#pylorax.treebuilder.RuntimeBuilder.get_branding">get_branding() (pylorax.treebuilder.RuntimeBuilder method)</a>
</li> </li>
</ul></td> </ul></td>
<td style="width: 33%; vertical-align: top;"><ul> <td style="width: 33%; vertical-align: top;"><ul>
@ -395,12 +311,10 @@
</li> </li>
<li><a href="pylorax.html#pylorax.ltmpl.LoraxTemplateRunner.installkernel">installkernel() (pylorax.ltmpl.LoraxTemplateRunner method)</a> <li><a href="pylorax.html#pylorax.ltmpl.LoraxTemplateRunner.installkernel">installkernel() (pylorax.ltmpl.LoraxTemplateRunner method)</a>
</li> </li>
<li><a href="pylorax.html#pylorax.ltmpl.LiveTemplateRunner.installpkg">installpkg() (pylorax.ltmpl.LiveTemplateRunner method)</a> <li><a href="pylorax.html#pylorax.ltmpl.InstallpkgMixin.installpkg">installpkg() (pylorax.ltmpl.InstallpkgMixin method)</a>
</li>
<ul> <li><a href="pylorax.html#pylorax.ltmpl.InstallpkgMixin">InstallpkgMixin (class in pylorax.ltmpl)</a>
<li><a href="pylorax.html#pylorax.ltmpl.LoraxTemplateRunner.installpkg">(pylorax.ltmpl.LoraxTemplateRunner method)</a>
</li> </li>
</ul></li>
<li><a href="pylorax.html#pylorax.ltmpl.LoraxTemplateRunner.installupgradeinitrd">installupgradeinitrd() (pylorax.ltmpl.LoraxTemplateRunner method)</a> <li><a href="pylorax.html#pylorax.ltmpl.LoraxTemplateRunner.installupgradeinitrd">installupgradeinitrd() (pylorax.ltmpl.LoraxTemplateRunner method)</a>
</li> </li>
<li><a href="pylorax.html#pylorax.creator.is_image_mounted">is_image_mounted() (in module pylorax.creator)</a> <li><a href="pylorax.html#pylorax.creator.is_image_mounted">is_image_mounted() (in module pylorax.creator)</a>
@ -423,7 +337,7 @@
<h2 id="K">K</h2> <h2 id="K">K</h2>
<table style="width: 100%" class="indextable genindextable"><tr> <table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul> <td style="width: 33%; vertical-align: top;"><ul>
<li><a href="pylorax.html#pylorax.treebuilder.TreeBuilder.kernels">kernels() (pylorax.treebuilder.TreeBuilder property)</a> <li><a href="pylorax.html#pylorax.treebuilder.TreeBuilder.kernels">kernels (pylorax.treebuilder.TreeBuilder property)</a>
</li> </li>
</ul></td> </ul></td>
<td style="width: 33%; vertical-align: top;"><ul> <td style="width: 33%; vertical-align: top;"><ul>
@ -800,6 +714,8 @@
<li><a href="pylorax.html#pylorax.ltmpl.rglob">rglob() (in module pylorax.ltmpl)</a> <li><a href="pylorax.html#pylorax.ltmpl.rglob">rglob() (in module pylorax.ltmpl)</a>
</li> </li>
<li><a href="pylorax.html#pylorax.imgutils.round_to_blocks">round_to_blocks() (in module pylorax.imgutils)</a> <li><a href="pylorax.html#pylorax.imgutils.round_to_blocks">round_to_blocks() (in module pylorax.imgutils)</a>
</li>
<li><a href="pylorax.html#pylorax.imgutils.DracutChroot.Run">Run() (pylorax.imgutils.DracutChroot method)</a>
</li> </li>
<li><a href="pylorax.html#pylorax.Lorax.run">run() (pylorax.Lorax method)</a> <li><a href="pylorax.html#pylorax.Lorax.run">run() (pylorax.Lorax method)</a>
@ -861,7 +777,7 @@
<h2 id="T">T</h2> <h2 id="T">T</h2>
<table style="width: 100%" class="indextable genindextable"><tr> <table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul> <td style="width: 33%; vertical-align: top;"><ul>
<li><a href="pylorax.html#pylorax.Lorax.templatedir">templatedir() (pylorax.Lorax property)</a> <li><a href="pylorax.html#pylorax.Lorax.templatedir">templatedir (pylorax.Lorax property)</a>
</li> </li>
<li><a href="pylorax.html#pylorax.ltmpl.TemplateRunner">TemplateRunner (class in pylorax.ltmpl)</a> <li><a href="pylorax.html#pylorax.ltmpl.TemplateRunner">TemplateRunner (class in pylorax.ltmpl)</a>
</li> </li>
@ -933,46 +849,30 @@
</div> </div>
</div> </div>
<footer> <footer>
<hr/> <hr/>
<div role="contentinfo"> <div role="contentinfo">
<p> <p>&#169; Copyright 2018, Red Hat, Inc..</p>
&#169; Copyright 2018, Red Hat, Inc..
</p>
</div> </div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer> </footer>
</div> </div>
</div> </div>
</section> </section>
</div> </div>
<script>
<script type="text/javascript">
jQuery(function () { jQuery(function () {
SphinxRtdTheme.Navigation.enable(true); SphinxRtdTheme.Navigation.enable(true);
}); });
</script> </script>
</body> </body>
</html> </html>

View File

@ -0,0 +1,222 @@
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>image-minimizer &mdash; Lorax 36.5 documentation</title>
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script>
<script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></script>
<script src="_static/js/theme.js"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="src" href="modules.html" />
<link rel="prev" title="Product and Updates Images" href="product-images.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">
36.5
</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="Navigation menu">
<ul class="current">
<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="mkksiso.html">mkksiso</a></li>
<li class="toctree-l1"><a class="reference internal" href="product-images.html">Product and Updates Images</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">image-minimizer</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#image-minimizer-cmdline-arguments">image-minimizer cmdline arguments</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#optional-arguments">Optional arguments</a></li>
<li class="toctree-l3"><a class="reference internal" href="#positional-arguments">Positional arguments</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#notes">NOTES</a></li>
<li class="toctree-l2"><a class="reference internal" href="#commands">commands</a></li>
<li class="toctree-l2"><a class="reference internal" href="#example">example</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="modules.html">src</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<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="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html" class="icon icon-home"></a> &raquo;</li>
<li>image-minimizer</li>
<li class="wy-breadcrumbs-aside">
<a href="_sources/image-minimizer.rst.txt" rel="nofollow"> View page source</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="image-minimizer">
<h1>image-minimizer<a class="headerlink" href="#image-minimizer" title="Permalink to this headline"></a></h1>
<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><cite>image-minimizer</cite> is a script used as an interpreter for kickstart <cite>%post</cite>
sections. It is used to remove rpm packages and individual files from the
system that Anaconda has just installed.</p>
<p>It processes a list of commands that tell it which files or rpms to remove, and
which to keep.</p>
<section id="image-minimizer-cmdline-arguments">
<h2>image-minimizer cmdline arguments<a class="headerlink" href="#image-minimizer-cmdline-arguments" title="Permalink to this headline"></a></h2>
<blockquote>
<div><p><cite>usage: image-minimizer [-h] [-i STRING] [--dryrun] [-v] STRING</cite></p>
</div></blockquote>
<section id="optional-arguments">
<h3>Optional arguments<a class="headerlink" href="#optional-arguments" title="Permalink to this headline"></a></h3>
<blockquote>
<div><dl class="option-list">
<dt><kbd><span class="option">-h</span>, <span class="option">--help</span></kbd></dt>
<dd><p>show this help message and exit</p>
</dd>
<dt><kbd><span class="option">-i <var>STRING</var></span>, <span class="option">--installroot <var>STRING</var></span></kbd></dt>
<dd><p>Root path to prepend to all file patterns and
installation root for RPM operations. Defaults to
INSTALL_ROOT or /mnt/sysimage/</p>
</dd>
<dt><kbd><span class="option">--dryrun</span></kbd></dt>
<dd><p>If set, no filesystem changes are made.</p>
</dd>
<dt><kbd><span class="option">-v</span>, <span class="option">--verbose</span></kbd></dt>
<dd><p>Display every action as it is performed.</p>
</dd>
</dl>
</div></blockquote>
</section>
<section id="positional-arguments">
<h3>Positional arguments<a class="headerlink" href="#positional-arguments" title="Permalink to this headline"></a></h3>
<blockquote>
<div><dl class="field-list simple">
<dt class="field-odd">STRING</dt>
<dd class="field-odd"><p>Filename to process</p>
</dd>
</dl>
</div></blockquote>
</section>
</section>
<section id="notes">
<h2>NOTES<a class="headerlink" href="#notes" title="Permalink to this headline"></a></h2>
<p>You cannot pass any arguments to <cite>image-minimizer</cite> when using it from the
kickstart <cite>%post</cite>.</p>
<p>When using this from a kickstart the image-minimizer package needs to be available.
It is not included on the standard boot.iso, so you will need to include <cite>lorax</cite> in
the <cite>%package</cite> section. You can use <cite>image-minimizer</cite> to remove lorax from the install.</p>
<p>If you are using this with <cite>livemedia-creator</cite> it can be installed on the host
system so that <cite>lorax</cite> isn't needed in the <cite>%package</cite> list, and it doesn't need
to be removed.</p>
</section>
<section id="commands">
<h2>commands<a class="headerlink" href="#commands" title="Permalink to this headline"></a></h2>
<p>Commands are listed one per line, followed by a space, and then by the
package, file, or glob. The globs used are Unix style pathname patterns using
<cite>*</cite>, <cite>?</cite>, and <cite>[]</cite> character ranges. globbing is implemented using the python
glob module.</p>
<ul class="simple">
<li><p>drop &lt;PATTERN&gt;
This will remove files from the installation.</p></li>
<li><p>keep &lt;PATTERN&gt;
This will keep files, and should follow any <cite>drop</cite> commands including globs.</p></li>
<li><p>droprpm &lt;PATTERN&gt;
Remove matching rpm packages. Dependencies are not remove, just individual
packages matching the glob.</p></li>
<li><p>keeprpm &lt;PATTERN&gt;
Do not remove matching rpm packages, it should follow any <cite>droprpm</cite> commands
that include globs.</p></li>
</ul>
</section>
<section id="example">
<h2>example<a class="headerlink" href="#example" title="Permalink to this headline"></a></h2>
<p>Example Anaconda <cite>%post</cite> usage:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">%</span><span class="n">post</span> <span class="o">--</span><span class="n">interpreter</span><span class="o">=</span><span class="n">image</span><span class="o">-</span><span class="n">minimizer</span> <span class="o">--</span><span class="n">nochroot</span>
<span class="n">drop</span> <span class="o">/</span><span class="n">lib</span><span class="o">/</span><span class="n">modules</span><span class="o">/*/</span><span class="n">kernel</span><span class="o">/</span><span class="n">fs</span>
<span class="n">keep</span> <span class="o">/</span><span class="n">lib</span><span class="o">/</span><span class="n">modules</span><span class="o">/*/</span><span class="n">kernel</span><span class="o">/</span><span class="n">fs</span><span class="o">/</span><span class="n">ext</span><span class="o">*</span>
<span class="n">keep</span> <span class="o">/</span><span class="n">lib</span><span class="o">/</span><span class="n">modules</span><span class="o">/*/</span><span class="n">kernel</span><span class="o">/</span><span class="n">fs</span><span class="o">/</span><span class="n">mbcache</span><span class="o">*</span>
<span class="n">keep</span> <span class="o">/</span><span class="n">lib</span><span class="o">/</span><span class="n">modules</span><span class="o">/*/</span><span class="n">kernel</span><span class="o">/</span><span class="n">fs</span><span class="o">/</span><span class="n">squashfs</span>
<span class="n">droprpm</span> <span class="n">make</span>
<span class="n">droprpm</span> <span class="n">mtools</span>
<span class="n">droprpm</span> <span class="n">mysql</span><span class="o">-</span><span class="n">libs</span>
<span class="n">droprpm</span> <span class="n">perl</span>
<span class="n">droprpm</span> <span class="n">perl</span><span class="o">-</span><span class="n">Pod</span><span class="o">-*</span>
<span class="n">droprpm</span> <span class="n">syslinux</span>
<span class="n">keeprpm</span> <span class="n">perl</span><span class="o">-</span><span class="n">Pod</span><span class="o">-</span><span class="n">Simple</span>
<span class="c1"># Not needed after image-minimizer is done</span>
<span class="n">droprpm</span> <span class="n">lorax</span>
<span class="o">%</span><span class="n">end</span>
</pre></div>
</div>
</section>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="product-images.html" class="btn btn-neutral float-left" title="Product and Updates Images" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="modules.html" class="btn btn-neutral float-right" title="src" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2018, Red Hat, Inc..</p>
</div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>

View File

@ -1,70 +1,33 @@
<!DOCTYPE html> <!DOCTYPE html>
<html class="writer-html5" lang="en" > <html class="writer-html5" lang="en" >
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Welcome to Lorax&#39;s documentation! &mdash; Lorax 36.5 documentation</title>
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<title>Welcome to Lorax&#39;s documentation! &mdash; Lorax 34.9.0 documentation</title> <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script> <script src="_static/jquery.js"></script>
<script src="_static/underscore.js"></script> <script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></script> <script src="_static/doctools.js"></script>
<script src="_static/js/theme.js"></script>
<script type="text/javascript" src="_static/js/theme.js"></script>
<link rel="index" title="Index" href="genindex.html" /> <link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" /> <link rel="search" title="Search" href="search.html" />
<link rel="next" title="Introduction to Lorax" href="intro.html" /> <link rel="next" title="Introduction to Lorax" href="intro.html" />
</head> </head>
<body class="wy-body-for-nav"> <body class="wy-body-for-nav">
<div class="wy-grid-for-nav"> <div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side"> <nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll"> <div class="wy-side-scroll">
<div class="wy-side-nav-search" > <div class="wy-side-nav-search" >
<a href="#" class="icon icon-home"> Lorax <a href="#" class="icon icon-home"> Lorax
</a> </a>
<div class="version"> <div class="version">
34.9.0 36.5
</div> </div>
<div role="search"> <div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get"> <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" /> <input type="text" name="q" placeholder="Search docs" />
@ -72,18 +35,7 @@
<input type="hidden" name="area" value="default" /> <input type="hidden" name="area" value="default" />
</form> </form>
</div> </div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul> <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">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="intro.html#before-lorax">Before Lorax</a></li>
@ -91,75 +43,35 @@
<li class="toctree-l1"><a class="reference internal" href="livemedia-creator.html">livemedia-creator</a></li> <li class="toctree-l1"><a class="reference internal" href="livemedia-creator.html">livemedia-creator</a></li>
<li class="toctree-l1"><a class="reference internal" href="mkksiso.html">mkksiso</a></li> <li class="toctree-l1"><a class="reference internal" href="mkksiso.html">mkksiso</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="product-images.html">Product and Updates Images</a></li>
<li class="toctree-l1"><a class="reference internal" href="image-minimizer.html">image-minimizer</a></li>
<li class="toctree-l1"><a class="reference internal" href="modules.html">src</a></li> <li class="toctree-l1"><a class="reference internal" href="modules.html">src</a></li>
</ul> </ul>
</div> </div>
</div> </div>
</nav> </nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i> <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="#">Lorax</a> <a href="#">Lorax</a>
</nav> </nav>
<div class="wy-nav-content"> <div class="wy-nav-content">
<div class="rst-content"> <div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs"> <ul class="wy-breadcrumbs">
<li><a href="#" class="icon icon-home"></a> &raquo;</li> <li><a href="#" class="icon icon-home"></a> &raquo;</li>
<li>Welcome to Lorax's documentation!</li> <li>Welcome to Lorax's documentation!</li>
<li class="wy-breadcrumbs-aside"> <li class="wy-breadcrumbs-aside">
<a href="_sources/index.rst.txt" rel="nofollow"> View page source</a> <a href="_sources/index.rst.txt" rel="nofollow"> View page source</a>
</li> </li>
</ul> </ul>
<hr/> <hr/>
</div> </div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody"> <div itemprop="articleBody">
<div class="section" id="welcome-to-lorax-s-documentation"> <section id="welcome-to-lorax-s-documentation">
<h1>Welcome to Lorax's documentation!<a class="headerlink" href="#welcome-to-lorax-s-documentation" title="Permalink to this headline"></a></h1> <h1>Welcome to Lorax's documentation!<a class="headerlink" href="#welcome-to-lorax-s-documentation" title="Permalink to this headline"></a></h1>
<p>Contents:</p> <p>Contents:</p>
<div class="toctree-wrapper compound"> <div class="toctree-wrapper compound">
@ -170,75 +82,58 @@
<li class="toctree-l1"><a class="reference internal" href="livemedia-creator.html">livemedia-creator</a></li> <li class="toctree-l1"><a class="reference internal" href="livemedia-creator.html">livemedia-creator</a></li>
<li class="toctree-l1"><a class="reference internal" href="mkksiso.html">mkksiso</a></li> <li class="toctree-l1"><a class="reference internal" href="mkksiso.html">mkksiso</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="product-images.html">Product and Updates Images</a></li>
<li class="toctree-l1"><a class="reference internal" href="image-minimizer.html">image-minimizer</a></li>
<li class="toctree-l1"><a class="reference internal" href="modules.html">src</a></li> <li class="toctree-l1"><a class="reference internal" href="modules.html">src</a></li>
</ul> </ul>
</div> </div>
</div> </section>
<div class="section" id="documentation-for-other-lorax-branches"> <section id="documentation-for-other-lorax-branches">
<h1>Documentation for other Lorax Branches<a class="headerlink" href="#documentation-for-other-lorax-branches" title="Permalink to this headline"></a></h1> <h1>Documentation for other Lorax Branches<a class="headerlink" href="#documentation-for-other-lorax-branches" title="Permalink to this headline"></a></h1>
<ul class="simple"> <ul class="simple">
<li><p><a class="reference external" href="f35-branch/">Fedora 35</a></p></li>
<li><p><a class="reference external" href="f34-branch/">Fedora 34</a></p></li>
<li><p><a class="reference external" href="f33-branch/">Fedora 33</a></p></li> <li><p><a class="reference external" href="f33-branch/">Fedora 33</a></p></li>
<li><p><a class="reference external" href="f32-branch/">Fedora 32</a></p></li>
<li><p><a class="reference external" href="f31-branch/">Fedora 31</a></p></li>
<li><p><a class="reference external" href="f30-branch/">Fedora 30</a></p></li>
<li><p><a class="reference external" href="rhel8-branch/">RHEL8 lorax-composer</a></p></li> <li><p><a class="reference external" href="rhel8-branch/">RHEL8 lorax-composer</a></p></li>
<li><p><a class="reference external" href="lorax-composer/">RHEL7 lorax-composer</a></p></li> <li><p><a class="reference external" href="lorax-composer/">RHEL7 lorax-composer</a></p></li>
</ul> </ul>
</div> </section>
<div class="section" id="indices-and-tables"> <section id="indices-and-tables">
<h1>Indices and tables<a class="headerlink" href="#indices-and-tables" title="Permalink to this headline"></a></h1> <h1>Indices and tables<a class="headerlink" href="#indices-and-tables" title="Permalink to this headline"></a></h1>
<ul class="simple"> <ul class="simple">
<li><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="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="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> <li><p><a class="reference internal" href="search.html"><span class="std std-ref">Search Page</span></a></p></li>
</ul> </ul>
</div> </section>
</div> </div>
</div> </div>
<footer> <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="intro.html" class="btn btn-neutral float-right" title="Introduction to Lorax" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> <a href="intro.html" class="btn btn-neutral float-right" title="Introduction to Lorax" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div> </div>
<hr/> <hr/>
<div role="contentinfo"> <div role="contentinfo">
<p> <p>&#169; Copyright 2018, Red Hat, Inc..</p>
&#169; Copyright 2018, Red Hat, Inc..
</p>
</div> </div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer> </footer>
</div> </div>
</div> </div>
</section> </section>
</div> </div>
<script>
<script type="text/javascript">
jQuery(function () { jQuery(function () {
SphinxRtdTheme.Navigation.enable(true); SphinxRtdTheme.Navigation.enable(true);
}); });
</script> </script>
</body> </body>
</html> </html>

View File

@ -1,71 +1,34 @@
<!DOCTYPE html> <!DOCTYPE html>
<html class="writer-html5" lang="en" > <html class="writer-html5" lang="en" >
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Introduction to Lorax &mdash; Lorax 36.5 documentation</title>
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<title>Introduction to Lorax &mdash; Lorax 34.9.0 documentation</title> <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script> <script src="_static/jquery.js"></script>
<script src="_static/underscore.js"></script> <script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></script> <script src="_static/doctools.js"></script>
<script src="_static/js/theme.js"></script>
<script type="text/javascript" src="_static/js/theme.js"></script>
<link rel="index" title="Index" href="genindex.html" /> <link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" /> <link rel="search" title="Search" href="search.html" />
<link rel="next" title="Lorax" href="lorax.html" /> <link rel="next" title="Lorax" href="lorax.html" />
<link rel="prev" title="Welcome to Lorax&#39;s documentation!" href="index.html" /> <link rel="prev" title="Welcome to Lorax&#39;s documentation!" href="index.html" />
</head> </head>
<body class="wy-body-for-nav"> <body class="wy-body-for-nav">
<div class="wy-grid-for-nav"> <div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side"> <nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll"> <div class="wy-side-scroll">
<div class="wy-side-nav-search" > <div class="wy-side-nav-search" >
<a href="index.html" class="icon icon-home"> Lorax <a href="index.html" class="icon icon-home"> Lorax
</a> </a>
<div class="version"> <div class="version">
34.9.0 36.5
</div> </div>
<div role="search"> <div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get"> <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" /> <input type="text" name="q" placeholder="Search docs" />
@ -73,18 +36,7 @@
<input type="hidden" name="area" value="default" /> <input type="hidden" name="area" value="default" />
</form> </form>
</div> </div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul class="current"> <ul class="current">
<li class="toctree-l1 current"><a class="current reference internal" href="#">Introduction to Lorax</a></li> <li class="toctree-l1 current"><a class="current reference internal" href="#">Introduction to Lorax</a></li>
<li class="toctree-l1"><a class="reference internal" href="#before-lorax">Before Lorax</a></li> <li class="toctree-l1"><a class="reference internal" href="#before-lorax">Before Lorax</a></li>
@ -92,75 +44,35 @@
<li class="toctree-l1"><a class="reference internal" href="livemedia-creator.html">livemedia-creator</a></li> <li class="toctree-l1"><a class="reference internal" href="livemedia-creator.html">livemedia-creator</a></li>
<li class="toctree-l1"><a class="reference internal" href="mkksiso.html">mkksiso</a></li> <li class="toctree-l1"><a class="reference internal" href="mkksiso.html">mkksiso</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="product-images.html">Product and Updates Images</a></li>
<li class="toctree-l1"><a class="reference internal" href="image-minimizer.html">image-minimizer</a></li>
<li class="toctree-l1"><a class="reference internal" href="modules.html">src</a></li> <li class="toctree-l1"><a class="reference internal" href="modules.html">src</a></li>
</ul> </ul>
</div> </div>
</div> </div>
</nav> </nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i> <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="index.html">Lorax</a> <a href="index.html">Lorax</a>
</nav> </nav>
<div class="wy-nav-content"> <div class="wy-nav-content">
<div class="rst-content"> <div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs"> <ul class="wy-breadcrumbs">
<li><a href="index.html" class="icon icon-home"></a> &raquo;</li> <li><a href="index.html" class="icon icon-home"></a> &raquo;</li>
<li>Introduction to Lorax</li> <li>Introduction to Lorax</li>
<li class="wy-breadcrumbs-aside"> <li class="wy-breadcrumbs-aside">
<a href="_sources/intro.rst.txt" rel="nofollow"> View page source</a> <a href="_sources/intro.rst.txt" rel="nofollow"> View page source</a>
</li> </li>
</ul> </ul>
<hr/> <hr/>
</div> </div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody"> <div itemprop="articleBody">
<div class="section" id="introduction-to-lorax"> <section id="introduction-to-lorax">
<h1>Introduction to Lorax<a class="headerlink" href="#introduction-to-lorax" title="Permalink to this headline"></a></h1> <h1>Introduction to Lorax<a class="headerlink" href="#introduction-to-lorax" title="Permalink to this headline"></a></h1>
<p>I am the Lorax. I speak for the trees [and images].</p> <p>I am the Lorax. I speak for the trees [and images].</p>
<p>Lorax is used to build the Anaconda Installer boot.iso, it consists of a <p>Lorax is used to build the Anaconda Installer boot.iso, it consists of a
@ -168,8 +80,8 @@ library, pylorax, a set of templates, and the lorax script. Its operation
is driven by a customized set of Mako templates that lists the packages is driven by a customized set of Mako templates that lists the packages
to be installed, steps to execute to remove unneeded files, and creation to be installed, steps to execute to remove unneeded files, and creation
of the iso for all of the supported architectures.</p> of the iso for all of the supported architectures.</p>
</div> </section>
<div class="section" id="before-lorax"> <section id="before-lorax">
<h1>Before Lorax<a class="headerlink" href="#before-lorax" title="Permalink to this headline"></a></h1> <h1>Before Lorax<a class="headerlink" href="#before-lorax" title="Permalink to this headline"></a></h1>
<p>Tree building tools such as pungi and revisor rely on 'buildinstall' in <p>Tree building tools such as pungi and revisor rely on 'buildinstall' in
anaconda/scripts/ to produce the boot images and other such control files anaconda/scripts/ to produce the boot images and other such control files
@ -209,54 +121,37 @@ it's not completely clear from reading the scripts.</p>
<p>Create a new central driver with all information living in Python modules. <p>Create a new central driver with all information living in Python modules.
Configuration files will provide the knowledge previously contained in the Configuration files will provide the knowledge previously contained in the
upd-instroot and mk-images* scripts.</p> upd-instroot and mk-images* scripts.</p>
</div> </section>
</div> </div>
</div> </div>
<footer> <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="lorax.html" class="btn btn-neutral float-right" title="Lorax" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
<a href="index.html" class="btn btn-neutral float-left" title="Welcome to Lorax&#39;s documentation!" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> <a href="index.html" class="btn btn-neutral float-left" title="Welcome to Lorax&#39;s documentation!" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="lorax.html" class="btn btn-neutral float-right" title="Lorax" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div> </div>
<hr/> <hr/>
<div role="contentinfo"> <div role="contentinfo">
<p> <p>&#169; Copyright 2018, Red Hat, Inc..</p>
&#169; Copyright 2018, Red Hat, Inc..
</p>
</div> </div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer> </footer>
</div> </div>
</div> </div>
</section> </section>
</div> </div>
<script>
<script type="text/javascript">
jQuery(function () { jQuery(function () {
SphinxRtdTheme.Navigation.enable(true); SphinxRtdTheme.Navigation.enable(true);
}); });
</script> </script>
</body> </body>
</html> </html>

View File

@ -1,71 +1,34 @@
<!DOCTYPE html> <!DOCTYPE html>
<html class="writer-html5" lang="en" > <html class="writer-html5" lang="en" >
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>livemedia-creator &mdash; Lorax 36.5 documentation</title>
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<title>livemedia-creator &mdash; Lorax 34.9.0 documentation</title> <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script> <script src="_static/jquery.js"></script>
<script src="_static/underscore.js"></script> <script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></script> <script src="_static/doctools.js"></script>
<script src="_static/js/theme.js"></script>
<script type="text/javascript" src="_static/js/theme.js"></script>
<link rel="index" title="Index" href="genindex.html" /> <link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" /> <link rel="search" title="Search" href="search.html" />
<link rel="next" title="mkksiso" href="mkksiso.html" /> <link rel="next" title="mkksiso" href="mkksiso.html" />
<link rel="prev" title="Lorax" href="lorax.html" /> <link rel="prev" title="Lorax" href="lorax.html" />
</head> </head>
<body class="wy-body-for-nav"> <body class="wy-body-for-nav">
<div class="wy-grid-for-nav"> <div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side"> <nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll"> <div class="wy-side-scroll">
<div class="wy-side-nav-search" > <div class="wy-side-nav-search" >
<a href="index.html" class="icon icon-home"> Lorax <a href="index.html" class="icon icon-home"> Lorax
</a> </a>
<div class="version"> <div class="version">
34.9.0 36.5
</div> </div>
<div role="search"> <div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get"> <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" /> <input type="text" name="q" placeholder="Search docs" />
@ -73,25 +36,14 @@
<input type="hidden" name="area" value="default" /> <input type="hidden" name="area" value="default" />
</form> </form>
</div> </div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul class="current"> <ul class="current">
<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">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="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="lorax.html">Lorax</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">livemedia-creator</a><ul> <li class="toctree-l1 current"><a class="current reference internal" href="#">livemedia-creator</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#livemedia-creator-cmdline-arguments">livemedia-creator cmdline arguments</a><ul> <li class="toctree-l2"><a class="reference internal" href="#livemedia-creator-cmdline-arguments">livemedia-creator cmdline arguments</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#Named Arguments">Named Arguments</a></li> <li class="toctree-l3"><a class="reference internal" href="#options">options</a></li>
<li class="toctree-l3"><a class="reference internal" href="#disk/fs image arguments">disk/fs image arguments</a></li> <li class="toctree-l3"><a class="reference internal" href="#disk/fs image arguments">disk/fs image arguments</a></li>
<li class="toctree-l3"><a class="reference internal" href="#appliance arguments">appliance arguments</a></li> <li class="toctree-l3"><a class="reference internal" href="#appliance arguments">appliance arguments</a></li>
<li class="toctree-l3"><a class="reference internal" href="#qemu arguments">qemu arguments</a></li> <li class="toctree-l3"><a class="reference internal" href="#qemu arguments">qemu arguments</a></li>
@ -128,75 +80,35 @@
</li> </li>
<li class="toctree-l1"><a class="reference internal" href="mkksiso.html">mkksiso</a></li> <li class="toctree-l1"><a class="reference internal" href="mkksiso.html">mkksiso</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="product-images.html">Product and Updates Images</a></li>
<li class="toctree-l1"><a class="reference internal" href="image-minimizer.html">image-minimizer</a></li>
<li class="toctree-l1"><a class="reference internal" href="modules.html">src</a></li> <li class="toctree-l1"><a class="reference internal" href="modules.html">src</a></li>
</ul> </ul>
</div> </div>
</div> </div>
</nav> </nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i> <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="index.html">Lorax</a> <a href="index.html">Lorax</a>
</nav> </nav>
<div class="wy-nav-content"> <div class="wy-nav-content">
<div class="rst-content"> <div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs"> <ul class="wy-breadcrumbs">
<li><a href="index.html" class="icon icon-home"></a> &raquo;</li> <li><a href="index.html" class="icon icon-home"></a> &raquo;</li>
<li>livemedia-creator</li> <li>livemedia-creator</li>
<li class="wy-breadcrumbs-aside"> <li class="wy-breadcrumbs-aside">
<a href="_sources/livemedia-creator.rst.txt" rel="nofollow"> View page source</a> <a href="_sources/livemedia-creator.rst.txt" rel="nofollow"> View page source</a>
</li> </li>
</ul> </ul>
<hr/> <hr/>
</div> </div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody"> <div itemprop="articleBody">
<div class="section" id="livemedia-creator"> <section id="livemedia-creator">
<h1>livemedia-creator<a class="headerlink" href="#livemedia-creator" title="Permalink to this headline"></a></h1> <h1>livemedia-creator<a class="headerlink" href="#livemedia-creator" title="Permalink to this headline"></a></h1>
<dl class="field-list simple"> <dl class="field-list simple">
<dt class="field-odd">Authors</dt> <dt class="field-odd">Authors</dt>
@ -224,7 +136,7 @@ you have the anaconda-tui package installed.</p>
<p><code class="docutils literal notranslate"><span class="pre">lmc</span></code> is an abbreviation for livemedia-creator.</p> <p><code class="docutils literal notranslate"><span class="pre">lmc</span></code> is an abbreviation for livemedia-creator.</p>
<p><code class="docutils literal notranslate"><span class="pre">builder</span></code> is the system where livemedia-creator is being run</p> <p><code class="docutils literal notranslate"><span class="pre">builder</span></code> is the system where livemedia-creator is being run</p>
<p><code class="docutils literal notranslate"><span class="pre">image</span></code> is the disk image being created by running livemedia-creator</p> <p><code class="docutils literal notranslate"><span class="pre">image</span></code> is the disk image being created by running livemedia-creator</p>
<div class="section" id="livemedia-creator-cmdline-arguments"> <section id="livemedia-creator-cmdline-arguments">
<h2>livemedia-creator cmdline arguments<a class="headerlink" href="#livemedia-creator-cmdline-arguments" title="Permalink to this headline"></a></h2> <h2>livemedia-creator cmdline arguments<a class="headerlink" href="#livemedia-creator-cmdline-arguments" title="Permalink to this headline"></a></h2>
<p><p>Create Live Install Media</p> <p><p>Create Live Install Media</p>
</p> </p>
@ -252,8 +164,8 @@ you have the anaconda-tui package installed.</p>
<span class="p">[</span><span class="o">--</span><span class="n">squashfs</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">timeout</span> <span class="n">TIMEOUT</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">squashfs</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">timeout</span> <span class="n">TIMEOUT</span><span class="p">]</span> <span class="p">[</span><span class="o">-</span><span class="n">V</span><span class="p">]</span>
</pre></div> </pre></div>
</div> </div>
<div class="section" id="Named Arguments"> <section id="options">
<h3>Named Arguments<a class="headerlink" href="#Named Arguments" title="Permalink to this headline"></a></h3> <h3>options<a class="headerlink" href="#options" title="Permalink to this headline"></a></h3>
<dl class="option-list"> <dl class="option-list">
<dt><kbd>--make-iso</kbd></dt> <dt><kbd>--make-iso</kbd></dt>
<dd><p>Build a live iso</p> <dd><p>Build a live iso</p>
@ -364,7 +276,7 @@ you have the anaconda-tui package installed.</p>
</dd> </dd>
<dt><kbd>--releasever</kbd></dt> <dt><kbd>--releasever</kbd></dt>
<dd><p>substituted for &#64;VERSION&#64; in bootloader config files</p> <dd><p>substituted for &#64;VERSION&#64; in bootloader config files</p>
<p>Default: &quot;34&quot;</p> <p>Default: &quot;36&quot;</p>
</dd> </dd>
<dt><kbd>--volid</kbd></dt> <dt><kbd>--volid</kbd></dt>
<dd><p>volume id</p> <dd><p>volume id</p>
@ -380,8 +292,8 @@ you have the anaconda-tui package installed.</p>
<dd><p>show program's version number and exit</p> <dd><p>show program's version number and exit</p>
</dd> </dd>
</dl> </dl>
</div> </section>
<div class="section" id="disk/fs image arguments"> <section id="disk/fs image arguments">
<h3>disk/fs image arguments<a class="headerlink" href="#disk/fs image arguments" title="Permalink to this headline"></a></h3> <h3>disk/fs image arguments<a class="headerlink" href="#disk/fs image arguments" title="Permalink to this headline"></a></h3>
<dl class="option-list"> <dl class="option-list">
<dt><kbd>--disk-image</kbd></dt> <dt><kbd>--disk-image</kbd></dt>
@ -432,8 +344,8 @@ you have the anaconda-tui package installed.</p>
<p>Default: []</p> <p>Default: []</p>
</dd> </dd>
</dl> </dl>
</div> </section>
<div class="section" id="appliance arguments"> <section id="appliance arguments">
<h3>appliance arguments<a class="headerlink" href="#appliance arguments" title="Permalink to this headline"></a></h3> <h3>appliance arguments<a class="headerlink" href="#appliance arguments" title="Permalink to this headline"></a></h3>
<dl class="option-list"> <dl class="option-list">
<dt><kbd>--app-name</kbd></dt> <dt><kbd>--app-name</kbd></dt>
@ -447,8 +359,8 @@ you have the anaconda-tui package installed.</p>
<p>Default: &quot;appliance.xml&quot;</p> <p>Default: &quot;appliance.xml&quot;</p>
</dd> </dd>
</dl> </dl>
</div> </section>
<div class="section" id="qemu arguments"> <section id="qemu arguments">
<h3>qemu arguments<a class="headerlink" href="#qemu arguments" title="Permalink to this headline"></a></h3> <h3>qemu arguments<a class="headerlink" href="#qemu arguments" title="Permalink to this headline"></a></h3>
<dl class="option-list"> <dl class="option-list">
<dt><kbd>--ram</kbd></dt> <dt><kbd>--ram</kbd></dt>
@ -484,8 +396,8 @@ you have the anaconda-tui package installed.</p>
<p>Default: &quot;/dev/random&quot;</p> <p>Default: &quot;/dev/random&quot;</p>
</dd> </dd>
</dl> </dl>
</div> </section>
<div class="section" id="dracut arguments: (default: )"> <section id="dracut arguments: (default: )">
<h3>dracut arguments: (default: )<a class="headerlink" href="#dracut arguments: (default: )" title="Permalink to this headline"></a></h3> <h3>dracut arguments: (default: )<a class="headerlink" href="#dracut arguments: (default: )" title="Permalink to this headline"></a></h3>
<dl class="option-list"> <dl class="option-list">
<dt><kbd>--dracut-conf</kbd></dt> <dt><kbd>--dracut-conf</kbd></dt>
@ -495,8 +407,8 @@ you have the anaconda-tui package installed.</p>
<dd><p>Argument to pass to dracut when rebuilding the initramfs. Pass this once for each argument. NOTE: this overrides the defaults.</p> <dd><p>Argument to pass to dracut when rebuilding the initramfs. Pass this once for each argument. NOTE: this overrides the defaults.</p>
</dd> </dd>
</dl> </dl>
</div> </section>
<div class="section" id="pxe to live arguments"> <section id="pxe to live arguments">
<h3>pxe to live arguments<a class="headerlink" href="#pxe to live arguments" title="Permalink to this headline"></a></h3> <h3>pxe to live arguments<a class="headerlink" href="#pxe to live arguments" title="Permalink to this headline"></a></h3>
<dl class="option-list"> <dl class="option-list">
<dt><kbd>--live-rootfs-size</kbd></dt> <dt><kbd>--live-rootfs-size</kbd></dt>
@ -508,8 +420,8 @@ you have the anaconda-tui package installed.</p>
<p>Default: False</p> <p>Default: False</p>
</dd> </dd>
</dl> </dl>
</div> </section>
<div class="section" id="OCI arguments"> <section id="OCI arguments">
<h3>OCI arguments<a class="headerlink" href="#OCI arguments" title="Permalink to this headline"></a></h3> <h3>OCI arguments<a class="headerlink" href="#OCI arguments" title="Permalink to this headline"></a></h3>
<dl class="option-list"> <dl class="option-list">
<dt><kbd>--oci-config</kbd></dt> <dt><kbd>--oci-config</kbd></dt>
@ -519,8 +431,8 @@ you have the anaconda-tui package installed.</p>
<dd><p>runtime.json OCI configuration file</p> <dd><p>runtime.json OCI configuration file</p>
</dd> </dd>
</dl> </dl>
</div> </section>
<div class="section" id="Vagrant arguments"> <section id="Vagrant arguments">
<h3>Vagrant arguments<a class="headerlink" href="#Vagrant arguments" title="Permalink to this headline"></a></h3> <h3>Vagrant arguments<a class="headerlink" href="#Vagrant arguments" title="Permalink to this headline"></a></h3>
<dl class="option-list"> <dl class="option-list">
<dt><kbd>--vagrant-metadata</kbd></dt> <dt><kbd>--vagrant-metadata</kbd></dt>
@ -530,9 +442,9 @@ you have the anaconda-tui package installed.</p>
<dd><p>optional vagrantfile</p> <dd><p>optional vagrantfile</p>
</dd> </dd>
</dl> </dl>
</div> </section>
</div> </section>
<div class="section" id="quickstart"> <section id="quickstart">
<h2>Quickstart<a class="headerlink" href="#quickstart" title="Permalink to this headline"></a></h2> <h2>Quickstart<a class="headerlink" href="#quickstart" title="Permalink to this headline"></a></h2>
<p>Run this to create a bootable live iso:</p> <p>Run this to create a bootable live iso:</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">iso</span> \ <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">livemedia</span><span class="o">-</span><span class="n">creator</span> <span class="o">--</span><span class="n">make</span><span class="o">-</span><span class="n">iso</span> \
@ -549,8 +461,8 @@ you have the anaconda-tui package installed.</p>
chosen, or you can use a specific port by passing it. eg. <code class="docutils literal notranslate"><span class="pre">--vnc</span> <span class="pre">vnc:127.0.0.1:5</span></code></p> chosen, or you can use a specific port by passing it. eg. <code class="docutils literal notranslate"><span class="pre">--vnc</span> <span class="pre">vnc:127.0.0.1:5</span></code></p>
<p>This is usually a good idea when testing changes to the kickstart. lmc tries <p>This is usually a good idea when testing changes to the kickstart. lmc tries
to monitor the logs for fatal errors, but may not catch everything.</p> to monitor the logs for fatal errors, but may not catch everything.</p>
</div> </section>
<div class="section" id="how-iso-creation-works"> <section id="how-iso-creation-works">
<h2>How ISO creation works<a class="headerlink" href="#how-iso-creation-works" title="Permalink to this headline"></a></h2> <h2>How ISO creation works<a class="headerlink" href="#how-iso-creation-works" title="Permalink to this headline"></a></h2>
<p>There are 2 stages, the install stage which produces a disk or filesystem image <p>There are 2 stages, the install stage which produces a disk or filesystem image
as its output, and the boot media creation which uses the image as its input. as its output, and the boot media creation which uses the image as its input.
@ -584,8 +496,8 @@ the kernel, initrd, the squashfs filesystem, etc. If you only want the
boot.iso you can pass <code class="docutils literal notranslate"><span class="pre">--iso-only</span></code> and the other files will be removed. You boot.iso you can pass <code class="docutils literal notranslate"><span class="pre">--iso-only</span></code> and the other files will be removed. You
can also name the iso by using <code class="docutils literal notranslate"><span class="pre">--iso-name</span> <span class="pre">my-live.iso</span></code>.</p> can also name the iso by using <code class="docutils literal notranslate"><span class="pre">--iso-name</span> <span class="pre">my-live.iso</span></code>.</p>
</div> </div>
</div> </section>
<div class="section" id="kickstarts"> <section id="kickstarts">
<h2>Kickstarts<a class="headerlink" href="#kickstarts" title="Permalink to this headline"></a></h2> <h2>Kickstarts<a class="headerlink" href="#kickstarts" title="Permalink to this headline"></a></h2>
<p>The docs/ directory includes several example kickstarts, one to create a live <p>The docs/ directory includes several example kickstarts, one to create a live
desktop iso using GNOME, and another to create a minimal disk image. When desktop iso using GNOME, and another to create a minimal disk image. When
@ -636,16 +548,15 @@ dracut-config-generic
dracut-live dracut-live
-dracut-config-rescue -dracut-config-rescue
grub2-efi grub2-efi
memtest86+
syslinux</p></li> syslinux</p></li>
</ol> </ol>
<div class="section" id="user-created-repositories"> <section id="user-created-repositories">
<h3>User created repositories<a class="headerlink" href="#user-created-repositories" title="Permalink to this headline"></a></h3> <h3>User created repositories<a class="headerlink" href="#user-created-repositories" title="Permalink to this headline"></a></h3>
<p>If you are using your own repositories and installing groups (eg. &#64;core) make <p>If you are using your own repositories and installing groups (eg. &#64;core) make
sure you create the repodata with groups like this <code class="docutils literal notranslate"><span class="pre">createrepo</span> <span class="pre">-g</span> sure you create the repodata with groups like this <code class="docutils literal notranslate"><span class="pre">createrepo</span> <span class="pre">-g</span>
<span class="pre">/path/to/groups.xml</span> <span class="pre">/path/to/rpms</span></code></p> <span class="pre">/path/to/groups.xml</span> <span class="pre">/path/to/rpms</span></code></p>
</div> </section>
<div class="section" id="using-a-proxy-with-repos"> <section id="using-a-proxy-with-repos">
<h3>Using a Proxy with repos<a class="headerlink" href="#using-a-proxy-with-repos" title="Permalink to this headline"></a></h3> <h3>Using a Proxy with repos<a class="headerlink" href="#using-a-proxy-with-repos" title="Permalink to this headline"></a></h3>
<p>One drawback to using qemu is that it pulls the packages from the repo each <p>One drawback to using qemu is that it pulls the packages from the repo each
time you run it. To speed things up you either need a local mirror of the time you run it. To speed things up you either need a local mirror of the
@ -668,9 +579,9 @@ named <code class="docutils literal notranslate"><span class="pre">updates</span
<span class="n">repo</span> <span class="o">--</span><span class="n">name</span><span class="o">=</span><span class="s2">&quot;repo2&quot;</span> <span class="o">--</span><span class="n">baseurl</span><span class="o">=</span><span class="n">SECOND</span><span class="o">-</span><span class="n">REPO_URL</span> <span class="o">--</span><span class="n">proxy</span><span class="o">=</span><span class="n">PROXY</span><span class="o">-</span><span class="n">URL</span> <span class="n">repo</span> <span class="o">--</span><span class="n">name</span><span class="o">=</span><span class="s2">&quot;repo2&quot;</span> <span class="o">--</span><span class="n">baseurl</span><span class="o">=</span><span class="n">SECOND</span><span class="o">-</span><span class="n">REPO_URL</span> <span class="o">--</span><span class="n">proxy</span><span class="o">=</span><span class="n">PROXY</span><span class="o">-</span><span class="n">URL</span>
</pre></div> </pre></div>
</div> </div>
</div> </section>
</div> </section>
<div class="section" id="anaconda-image-install-no-virt"> <section id="anaconda-image-install-no-virt">
<h2>Anaconda image install (no-virt)<a class="headerlink" href="#anaconda-image-install-no-virt" title="Permalink to this headline"></a></h2> <h2>Anaconda image install (no-virt)<a class="headerlink" href="#anaconda-image-install-no-virt" title="Permalink to this headline"></a></h2>
<p>You can create images without using qemu by passing <code class="docutils literal notranslate"><span class="pre">--no-virt</span></code> on the <p>You can create images without using qemu by passing <code class="docutils literal notranslate"><span class="pre">--no-virt</span></code> on the
cmdline. This will use Anaconda's directory install feature to handle the cmdline. This will use Anaconda's directory install feature to handle the
@ -702,8 +613,8 @@ virt.</p>
logged for debugging purposes and if there are SELinux denials they should logged for debugging purposes and if there are SELinux denials they should
be reported as a bug.</p> be reported as a bug.</p>
</div> </div>
</div> </section>
<div class="section" id="ami-images"> <section id="ami-images">
<h2>AMI Images<a class="headerlink" href="#ami-images" title="Permalink to this headline"></a></h2> <h2>AMI Images<a class="headerlink" href="#ami-images" title="Permalink to this headline"></a></h2>
<p>Amazon EC2 images can be created by using the --make-ami switch and an appropriate <p>Amazon EC2 images can be created by using the --make-ami switch and an appropriate
kickstart file. All of the work to customize the image is handled by the kickstart. kickstart file. All of the work to customize the image is handled by the kickstart.
@ -713,8 +624,8 @@ that it would work with livemedia-creator.</p>
<p><code class="docutils literal notranslate"><span class="pre">sudo</span> <span class="pre">livemedia-creator</span> <span class="pre">--make-ami</span> <span class="pre">--iso=/path/to/boot.iso</span> <span class="pre">--ks=./docs/fedora-livemedia-ec2.ks</span></code></p> <p><code class="docutils literal notranslate"><span class="pre">sudo</span> <span class="pre">livemedia-creator</span> <span class="pre">--make-ami</span> <span class="pre">--iso=/path/to/boot.iso</span> <span class="pre">--ks=./docs/fedora-livemedia-ec2.ks</span></code></p>
<p>This will produce an ami-root.img file in the working directory.</p> <p>This will produce an ami-root.img file in the working directory.</p>
<p>At this time I have not tested the image with EC2. Feedback would be welcome.</p> <p>At this time I have not tested the image with EC2. Feedback would be welcome.</p>
</div> </section>
<div class="section" id="appliance-creation"> <section id="appliance-creation">
<h2>Appliance Creation<a class="headerlink" href="#appliance-creation" title="Permalink to this headline"></a></h2> <h2>Appliance Creation<a class="headerlink" href="#appliance-creation" title="Permalink to this headline"></a></h2>
<p>livemedia-creator can now replace appliance-tools by using the --make-appliance <p>livemedia-creator can now replace appliance-tools by using the --make-appliance
switch. This will create the partitioned disk image and an XML file that can be switch. This will create the partitioned disk image and an XML file that can be
@ -766,8 +677,8 @@ from <code class="docutils literal notranslate"><span class="pre">--releasever</
<span class="o">--</span><span class="n">image</span><span class="o">-</span><span class="nb">type</span><span class="o">=</span><span class="n">qcow2</span> <span class="o">--</span><span class="n">app</span><span class="o">-</span><span class="n">file</span><span class="o">=</span><span class="n">minimal</span><span class="o">-</span><span class="n">test</span><span class="o">.</span><span class="n">xml</span> <span class="o">--</span><span class="n">image</span><span class="o">-</span><span class="n">name</span><span class="o">=</span><span class="n">minimal</span><span class="o">-</span><span class="n">test</span><span class="o">.</span><span class="n">img</span> <span class="o">--</span><span class="n">image</span><span class="o">-</span><span class="nb">type</span><span class="o">=</span><span class="n">qcow2</span> <span class="o">--</span><span class="n">app</span><span class="o">-</span><span class="n">file</span><span class="o">=</span><span class="n">minimal</span><span class="o">-</span><span class="n">test</span><span class="o">.</span><span class="n">xml</span> <span class="o">--</span><span class="n">image</span><span class="o">-</span><span class="n">name</span><span class="o">=</span><span class="n">minimal</span><span class="o">-</span><span class="n">test</span><span class="o">.</span><span class="n">img</span>
</pre></div> </pre></div>
</div> </div>
</div> </section>
<div class="section" id="filesystem-image-creation"> <section id="filesystem-image-creation">
<h2>Filesystem Image Creation<a class="headerlink" href="#filesystem-image-creation" title="Permalink to this headline"></a></h2> <h2>Filesystem Image Creation<a class="headerlink" href="#filesystem-image-creation" title="Permalink to this headline"></a></h2>
<p>livemedia-creator can be used to create un-partitined filesystem images using <p>livemedia-creator can be used to create un-partitined filesystem images using
the <code class="docutils literal notranslate"><span class="pre">--make-fsimage</span></code> option. As of version 21.8 this works with both qemu and the <code class="docutils literal notranslate"><span class="pre">--make-fsimage</span></code> option. As of version 21.8 this works with both qemu and
@ -777,8 +688,8 @@ no-virt modes of operation. Previously it was only available with no-virt.</p>
<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/fedora-minimal.ks</span></code></p> <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/fedora-minimal.ks</span></code></p>
</div></blockquote> </div></blockquote>
<p>You can name the output image with <code class="docutils literal notranslate"><span class="pre">--image-name</span></code> and set a label on the filesystem with <code class="docutils literal notranslate"><span class="pre">--fs-label</span></code></p> <p>You can name the output image with <code class="docutils literal notranslate"><span class="pre">--image-name</span></code> and set a label on the filesystem with <code class="docutils literal notranslate"><span class="pre">--fs-label</span></code></p>
</div> </section>
<div class="section" id="tar-file-creation"> <section id="tar-file-creation">
<h2>TAR File Creation<a class="headerlink" href="#tar-file-creation" title="Permalink to this headline"></a></h2> <h2>TAR File Creation<a class="headerlink" href="#tar-file-creation" title="Permalink to this headline"></a></h2>
<p>The <code class="docutils literal notranslate"><span class="pre">--make-tar</span></code> command can be used to create a tar of the root filesystem. By <p>The <code class="docutils literal notranslate"><span class="pre">--make-tar</span></code> command can be used to create a tar of the root filesystem. By
default it is compressed using xz, but this can be changed using the default it is compressed using xz, but this can be changed using the
@ -790,15 +701,15 @@ no-virt install methods.</p>
<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">fedora</span><span class="o">-</span><span class="n">root</span><span class="o">.</span><span class="n">tar</span><span class="o">.</span><span class="n">xz</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">fedora</span><span class="o">-</span><span class="n">root</span><span class="o">.</span><span class="n">tar</span><span class="o">.</span><span class="n">xz</span>
</pre></div> </pre></div>
</div> </div>
</div> </section>
<div class="section" id="live-image-for-pxe-boot"> <section id="live-image-for-pxe-boot">
<h2>Live Image for PXE Boot<a class="headerlink" href="#live-image-for-pxe-boot" title="Permalink to this headline"></a></h2> <h2>Live Image for PXE Boot<a class="headerlink" href="#live-image-for-pxe-boot" title="Permalink to this headline"></a></h2>
<p>The <code class="docutils literal notranslate"><span class="pre">--make-pxe-live</span></code> command will produce squashfs image containing live root <p>The <code class="docutils literal notranslate"><span class="pre">--make-pxe-live</span></code> command will produce squashfs image containing live root
filesystem that can be used for pxe boot. Directory with results will contain filesystem that can be used for pxe boot. Directory with results will contain
the live image, kernel image, initrd image and template of pxe configuration the live image, kernel image, initrd image and template of pxe configuration
for the images.</p> for the images.</p>
</div> </section>
<div class="section" id="atomic-live-image-for-pxe-boot"> <section id="atomic-live-image-for-pxe-boot">
<h2>Atomic Live Image for PXE Boot<a class="headerlink" href="#atomic-live-image-for-pxe-boot" title="Permalink to this headline"></a></h2> <h2>Atomic Live Image for PXE Boot<a class="headerlink" href="#atomic-live-image-for-pxe-boot" title="Permalink to this headline"></a></h2>
<p>The <code class="docutils literal notranslate"><span class="pre">--make-ostree-live</span></code> command will produce the same result as <code class="docutils literal notranslate"><span class="pre">--make-pxe-live</span></code> <p>The <code class="docutils literal notranslate"><span class="pre">--make-ostree-live</span></code> command will produce the same result as <code class="docutils literal notranslate"><span class="pre">--make-pxe-live</span></code>
for installations of Atomic Host. Example kickstart for such an installation for installations of Atomic Host. Example kickstart for such an installation
@ -807,8 +718,8 @@ in docs/rhel-atomic-pxe-live.ks.</p>
<p>The PXE images can also be created with <code class="docutils literal notranslate"><span class="pre">--no-virt</span></code> by using the example <p>The PXE images can also be created with <code class="docutils literal notranslate"><span class="pre">--no-virt</span></code> by using the example
kickstart in docs/fedora-atomic-pxe-live-novirt.ks. This also works inside the kickstart in docs/fedora-atomic-pxe-live-novirt.ks. This also works inside the
mock environment.</p> mock environment.</p>
</div> </section>
<div class="section" id="using-mock-and-no-virt-to-create-images"> <section id="using-mock-and-no-virt-to-create-images">
<h2>Using Mock and --no-virt to Create Images<a class="headerlink" href="#using-mock-and-no-virt-to-create-images" title="Permalink to this headline"></a></h2> <h2>Using Mock and --no-virt to Create Images<a class="headerlink" href="#using-mock-and-no-virt-to-create-images" title="Permalink to this headline"></a></h2>
<p>As of lorax version 22.2 you can use livemedia-creator and anaconda version <p>As of lorax version 22.2 you can use livemedia-creator and anaconda version
22.15 inside of a mock chroot with --make-iso and --make-fsimage.</p> 22.15 inside of a mock chroot with --make-iso and --make-fsimage.</p>
@ -864,8 +775,8 @@ group.</p>
including anaconda logs and livemedia-creator logs. The new iso will be including anaconda logs and livemedia-creator logs. The new iso will be
located at ~/results/try-1/images/boot.iso, and the ~/results/try-1/ located at ~/results/try-1/images/boot.iso, and the ~/results/try-1/
directory tree will also contain the vmlinuz, initrd, etc.</p> directory tree will also contain the vmlinuz, initrd, etc.</p>
</div> </section>
<div class="section" id="using-mock-and-qemu-to-create-images"> <section id="using-mock-and-qemu-to-create-images">
<h2>Using Mock and qemu to Create Images<a class="headerlink" href="#using-mock-and-qemu-to-create-images" title="Permalink to this headline"></a></h2> <h2>Using Mock and qemu to Create Images<a class="headerlink" href="#using-mock-and-qemu-to-create-images" title="Permalink to this headline"></a></h2>
<p>Version 25.0 of livemedia-creator switches to using qemu for virtualization. <p>Version 25.0 of livemedia-creator switches to using qemu for virtualization.
This allows creation of all image types, and use of the KVM on the host if This allows creation of all image types, and use of the KVM on the host if
@ -915,8 +826,8 @@ located at ~/results/try-1/images/boot.iso, and the ~/results/try-1/
directory tree will also contain the vmlinuz, initrd, etc.</p> directory tree will also contain the vmlinuz, initrd, etc.</p>
<p>This will run qemu without kvm support, which is going to be very slow. You can <p>This will run qemu without kvm support, which is going to be very slow. You can
add <code class="docutils literal notranslate"><span class="pre">mknod</span> <span class="pre">/dev/kvm</span> <span class="pre">c</span> <span class="pre">10</span> <span class="pre">232;</span></code> to create the device node before running lmc.</p> add <code class="docutils literal notranslate"><span class="pre">mknod</span> <span class="pre">/dev/kvm</span> <span class="pre">c</span> <span class="pre">10</span> <span class="pre">232;</span></code> to create the device node before running lmc.</p>
</div> </section>
<div class="section" id="openstack-image-creation"> <section id="openstack-image-creation">
<h2>OpenStack Image Creation<a class="headerlink" href="#openstack-image-creation" title="Permalink to this headline"></a></h2> <h2>OpenStack Image Creation<a class="headerlink" href="#openstack-image-creation" title="Permalink to this headline"></a></h2>
<p>OpenStack supports partitioned disk images so <code class="docutils literal notranslate"><span class="pre">--make-disk</span></code> can be used to <p>OpenStack supports partitioned disk images so <code class="docutils literal notranslate"><span class="pre">--make-disk</span></code> can be used to
create images for importing into glance, OpenStack's image storage component. create images for importing into glance, OpenStack's image storage component.
@ -940,8 +851,8 @@ cloud-utils-growpart will grow the image to fit the instance's disk size.</p>
</pre></div> </pre></div>
</div> </div>
<p>If qcow2 wasn't used then <code class="docutils literal notranslate"><span class="pre">--disk-format</span></code> should be set to raw.</p> <p>If qcow2 wasn't used then <code class="docutils literal notranslate"><span class="pre">--disk-format</span></code> should be set to raw.</p>
</div> </section>
<div class="section" id="docker-image-creation"> <section id="docker-image-creation">
<h2>Docker Image Creation<a class="headerlink" href="#docker-image-creation" title="Permalink to this headline"></a></h2> <h2>Docker Image Creation<a class="headerlink" href="#docker-image-creation" title="Permalink to this headline"></a></h2>
<p>Use lmc to create a tarfile as described in the <a class="reference internal" href="#tar-file-creation">TAR File Creation</a> section, but substitute the <p>Use lmc to create a tarfile as described in the <a class="reference internal" href="#tar-file-creation">TAR File Creation</a> section, but substitute the
fedora-docker.ks example kickstart which removes the requirement for core files and the kernel.</p> fedora-docker.ks example kickstart which removes the requirement for core files and the kernel.</p>
@ -953,8 +864,8 @@ fedora-docker.ks example kickstart which removes the requirement for core files
<blockquote> <blockquote>
<div><p><code class="docutils literal notranslate"><span class="pre">sudo</span> <span class="pre">docker</span> <span class="pre">run</span> <span class="pre">-i</span> <span class="pre">-t</span> <span class="pre">fedora-root</span> <span class="pre">/bin/bash</span></code></p> <div><p><code class="docutils literal notranslate"><span class="pre">sudo</span> <span class="pre">docker</span> <span class="pre">run</span> <span class="pre">-i</span> <span class="pre">-t</span> <span class="pre">fedora-root</span> <span class="pre">/bin/bash</span></code></p>
</div></blockquote> </div></blockquote>
</div> </section>
<div class="section" id="open-container-initiative-image-creation"> <section id="open-container-initiative-image-creation">
<h2>Open Container Initiative Image Creation<a class="headerlink" href="#open-container-initiative-image-creation" title="Permalink to this headline"></a></h2> <h2>Open Container Initiative Image Creation<a class="headerlink" href="#open-container-initiative-image-creation" title="Permalink to this headline"></a></h2>
<p>The OCI is a new specification that is still being worked on. You can read more about it at <p>The OCI is a new specification that is still being worked on. You can read more about it at
<a class="reference external" href="https://www.opencontainers.org/">the Open Container Initiative website</a>. You can create <a class="reference external" href="https://www.opencontainers.org/">the Open Container Initiative website</a>. You can create
@ -968,8 +879,8 @@ their specifications can be found <a class="reference external" href="https://gi
output will be in the results directory with a default name of bundle.tar.xz</p> output will be in the results directory with a default name of bundle.tar.xz</p>
<p>This will work with <code class="docutils literal notranslate"><span class="pre">--no-virt</span></code> and inside a mock since it doesn't use any <p>This will work with <code class="docutils literal notranslate"><span class="pre">--no-virt</span></code> and inside a mock since it doesn't use any
partitioned disk images.</p> partitioned disk images.</p>
</div> </section>
<div class="section" id="vagrant-image-creation"> <section id="vagrant-image-creation">
<h2>Vagrant Image Creation<a class="headerlink" href="#vagrant-image-creation" title="Permalink to this headline"></a></h2> <h2>Vagrant Image Creation<a class="headerlink" href="#vagrant-image-creation" title="Permalink to this headline"></a></h2>
<p><a class="reference external" href="https://www.vagrantup.com/">Vagrant</a> images can be created using the following command:</p> <p><a class="reference external" href="https://www.vagrantup.com/">Vagrant</a> images can be created using the following command:</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">vagrant</span> <span class="o">--</span><span class="n">vagrant</span><span class="o">-</span><span class="n">metadata</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">metadata</span><span class="o">.</span><span class="n">json</span> \ <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">livemedia</span><span class="o">-</span><span class="n">creator</span> <span class="o">--</span><span class="n">make</span><span class="o">-</span><span class="n">vagrant</span> <span class="o">--</span><span class="n">vagrant</span><span class="o">-</span><span class="n">metadata</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">metadata</span><span class="o">.</span><span class="n">json</span> \
@ -987,8 +898,8 @@ the vagrant user with the default insecure SSH pubkey and a few useful
utilities.</p> utilities.</p>
<p>This also works with <code class="docutils literal notranslate"><span class="pre">--no-virt</span></code>, but will not work inside a mock due to its <p>This also works with <code class="docutils literal notranslate"><span class="pre">--no-virt</span></code>, but will not work inside a mock due to its
use of partitioned disk images and qcow2.</p> use of partitioned disk images and qcow2.</p>
</div> </section>
<div class="section" id="creating-uefi-disk-images-with-virt"> <section id="creating-uefi-disk-images-with-virt">
<h2>Creating UEFI disk images with virt<a class="headerlink" href="#creating-uefi-disk-images-with-virt" title="Permalink to this headline"></a></h2> <h2>Creating UEFI disk images with virt<a class="headerlink" href="#creating-uefi-disk-images-with-virt" title="Permalink to this headline"></a></h2>
<p>Partitioned disk images can only be created for the same platform as the host system (BIOS or <p>Partitioned disk images can only be created for the same platform as the host system (BIOS or
UEFI). You can use virt to create BIOS images on UEFI systems, and it is also possible UEFI). You can use virt to create BIOS images on UEFI systems, and it is also possible
@ -1009,8 +920,8 @@ firmware files.</p>
<p class="admonition-title">Note</p> <p class="admonition-title">Note</p>
<p>The --virt-uefi method is currently only supported on the x86_64 architecture.</p> <p>The --virt-uefi method is currently only supported on the x86_64 architecture.</p>
</div> </div>
</div> </section>
<div class="section" id="debugging-problems"> <section id="debugging-problems">
<h2>Debugging problems<a class="headerlink" href="#debugging-problems" title="Permalink to this headline"></a></h2> <h2>Debugging problems<a class="headerlink" href="#debugging-problems" title="Permalink to this headline"></a></h2>
<p>Sometimes an installation will get stuck. When using qemu the logs will <p>Sometimes an installation will get stuck. When using qemu the logs will
be written to ./virt-install.log and most of the time any problems that happen be written to ./virt-install.log and most of the time any problems that happen
@ -1047,62 +958,45 @@ running the <code class="docutils literal notranslate"><span class="pre">anacond
multi-threaded and it can sometimes become stuck and refuse to exit. When this multi-threaded and it can sometimes become stuck and refuse to exit. When this
happens you can usually clean up by first killing the anaconda process then happens you can usually clean up by first killing the anaconda process then
running <code class="docutils literal notranslate"><span class="pre">anaconda-cleanup</span></code>.</p> running <code class="docutils literal notranslate"><span class="pre">anaconda-cleanup</span></code>.</p>
</div> </section>
<div class="section" id="hacking"> <section id="hacking">
<h2>Hacking<a class="headerlink" href="#hacking" title="Permalink to this headline"></a></h2> <h2>Hacking<a class="headerlink" href="#hacking" title="Permalink to this headline"></a></h2>
<p>Development on this will take place as part of the lorax project, and on the <p>Development on this will take place as part of the lorax project, and on the
anaconda-devel-list mailing list, and <a class="reference external" href="https://github.com/rhinstaller/lorax">on github</a></p> anaconda-devel-list mailing list, and <a class="reference external" href="https://github.com/rhinstaller/lorax">on github</a></p>
<p>Feedback, enhancements and bugs are welcome. You can use <a class="reference external" href="https://bugzilla.redhat.com/enter_bug.cgi?product=Fedora&amp;component=lorax">bugzilla</a> to <p>Feedback, enhancements and bugs are welcome. You can use <a class="reference external" href="https://bugzilla.redhat.com/enter_bug.cgi?product=Fedora&amp;component=lorax">bugzilla</a> to
report bugs against the lorax component.</p> report bugs against the lorax component.</p>
</div> </section>
</div> </section>
</div> </div>
</div> </div>
<footer> <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="mkksiso.html" class="btn btn-neutral float-right" title="mkksiso" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
<a href="lorax.html" class="btn btn-neutral float-left" title="Lorax" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> <a href="lorax.html" class="btn btn-neutral float-left" title="Lorax" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="mkksiso.html" class="btn btn-neutral float-right" title="mkksiso" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div> </div>
<hr/> <hr/>
<div role="contentinfo"> <div role="contentinfo">
<p> <p>&#169; Copyright 2018, Red Hat, Inc..</p>
&#169; Copyright 2018, Red Hat, Inc..
</p>
</div> </div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer> </footer>
</div> </div>
</div> </div>
</section> </section>
</div> </div>
<script>
<script type="text/javascript">
jQuery(function () { jQuery(function () {
SphinxRtdTheme.Navigation.enable(true); SphinxRtdTheme.Navigation.enable(true);
}); });
</script> </script>
</body> </body>
</html> </html>

View File

@ -1,71 +1,34 @@
<!DOCTYPE html> <!DOCTYPE html>
<html class="writer-html5" lang="en" > <html class="writer-html5" lang="en" >
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Lorax &mdash; Lorax 36.5 documentation</title>
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<title>Lorax &mdash; Lorax 34.9.0 documentation</title> <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script> <script src="_static/jquery.js"></script>
<script src="_static/underscore.js"></script> <script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></script> <script src="_static/doctools.js"></script>
<script src="_static/js/theme.js"></script>
<script type="text/javascript" src="_static/js/theme.js"></script>
<link rel="index" title="Index" href="genindex.html" /> <link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" /> <link rel="search" title="Search" href="search.html" />
<link rel="next" title="livemedia-creator" href="livemedia-creator.html" /> <link rel="next" title="livemedia-creator" href="livemedia-creator.html" />
<link rel="prev" title="Introduction to Lorax" href="intro.html" /> <link rel="prev" title="Introduction to Lorax" href="intro.html" />
</head> </head>
<body class="wy-body-for-nav"> <body class="wy-body-for-nav">
<div class="wy-grid-for-nav"> <div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side"> <nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll"> <div class="wy-side-scroll">
<div class="wy-side-nav-search" > <div class="wy-side-nav-search" >
<a href="index.html" class="icon icon-home"> Lorax <a href="index.html" class="icon icon-home"> Lorax
</a> </a>
<div class="version"> <div class="version">
34.9.0 36.5
</div> </div>
<div role="search"> <div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get"> <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" /> <input type="text" name="q" placeholder="Search docs" />
@ -73,27 +36,16 @@
<input type="hidden" name="area" value="default" /> <input type="hidden" name="area" value="default" />
</form> </form>
</div> </div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul class="current"> <ul class="current">
<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">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="intro.html#before-lorax">Before Lorax</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Lorax</a><ul> <li class="toctree-l1 current"><a class="current reference internal" href="#">Lorax</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#lorax-cmdline-arguments">lorax cmdline arguments</a><ul> <li class="toctree-l2"><a class="reference internal" href="#lorax-cmdline-arguments">lorax 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="#Positional Arguments">Positional Arguments</a></li>
<li class="toctree-l3"><a class="reference internal" href="#Named Arguments">Named Arguments</a></li> <li class="toctree-l3"><a class="reference internal" href="#options">options</a></li>
<li class="toctree-l3"><a class="reference internal" href="#required arguments">required arguments</a></li> <li class="toctree-l3"><a class="reference internal" href="#required arguments">required arguments</a></li>
<li class="toctree-l3"><a class="reference internal" href="#Named Arguments_repeat1">Named Arguments</a></li> <li class="toctree-l3"><a class="reference internal" href="#Named Arguments">Named Arguments</a></li>
<li class="toctree-l3"><a class="reference internal" href="#dracut arguments: (default: )">dracut arguments: (default: )</a></li> <li class="toctree-l3"><a class="reference internal" href="#dracut arguments: (default: )">dracut arguments: (default: )</a></li>
</ul> </ul>
</li> </li>
@ -118,75 +70,35 @@
<li class="toctree-l1"><a class="reference internal" href="livemedia-creator.html">livemedia-creator</a></li> <li class="toctree-l1"><a class="reference internal" href="livemedia-creator.html">livemedia-creator</a></li>
<li class="toctree-l1"><a class="reference internal" href="mkksiso.html">mkksiso</a></li> <li class="toctree-l1"><a class="reference internal" href="mkksiso.html">mkksiso</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="product-images.html">Product and Updates Images</a></li>
<li class="toctree-l1"><a class="reference internal" href="image-minimizer.html">image-minimizer</a></li>
<li class="toctree-l1"><a class="reference internal" href="modules.html">src</a></li> <li class="toctree-l1"><a class="reference internal" href="modules.html">src</a></li>
</ul> </ul>
</div> </div>
</div> </div>
</nav> </nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i> <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="index.html">Lorax</a> <a href="index.html">Lorax</a>
</nav> </nav>
<div class="wy-nav-content"> <div class="wy-nav-content">
<div class="rst-content"> <div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs"> <ul class="wy-breadcrumbs">
<li><a href="index.html" class="icon icon-home"></a> &raquo;</li> <li><a href="index.html" class="icon icon-home"></a> &raquo;</li>
<li>Lorax</li> <li>Lorax</li>
<li class="wy-breadcrumbs-aside"> <li class="wy-breadcrumbs-aside">
<a href="_sources/lorax.rst.txt" rel="nofollow"> View page source</a> <a href="_sources/lorax.rst.txt" rel="nofollow"> View page source</a>
</li> </li>
</ul> </ul>
<hr/> <hr/>
</div> </div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody"> <div itemprop="articleBody">
<div class="section" id="lorax"> <section id="lorax">
<h1>Lorax<a class="headerlink" href="#lorax" title="Permalink to this headline"></a></h1> <h1>Lorax<a class="headerlink" href="#lorax" title="Permalink to this headline"></a></h1>
<dl class="field-list simple"> <dl class="field-list simple">
<dt class="field-odd">Authors</dt> <dt class="field-odd">Authors</dt>
@ -202,7 +114,7 @@ environment. It is best to run lorax from the same release as is being targeted
because the templates may have release specific logic in them. eg. Use the because the templates may have release specific logic in them. eg. Use the
rawhide version to build the boot.iso for rawhide, along with the rawhide rawhide version to build the boot.iso for rawhide, along with the rawhide
repositories.</p> repositories.</p>
<div class="section" id="lorax-cmdline-arguments"> <section id="lorax-cmdline-arguments">
<h2>lorax cmdline arguments<a class="headerlink" href="#lorax-cmdline-arguments" title="Permalink to this headline"></a></h2> <h2>lorax cmdline arguments<a class="headerlink" href="#lorax-cmdline-arguments" title="Permalink to this headline"></a></h2>
<p><p>Create the Anaconda boot.iso</p> <p><p>Create the Anaconda boot.iso</p>
</p> </p>
@ -218,23 +130,23 @@ repositories.</p>
<span class="n">OUTPUTDIR</span> <span class="n">OUTPUTDIR</span>
</pre></div> </pre></div>
</div> </div>
<div class="section" id="Positional Arguments"> <section id="Positional Arguments">
<h3>Positional Arguments<a class="headerlink" href="#Positional Arguments" title="Permalink to this headline"></a></h3> <h3>Positional Arguments<a class="headerlink" href="#Positional Arguments" title="Permalink to this headline"></a></h3>
<dl class="option-list"> <dl class="option-list">
<dt><kbd>OUTPUTDIR</kbd></dt> <dt><kbd>OUTPUTDIR</kbd></dt>
<dd><p>Output directory</p> <dd><p>Output directory</p>
</dd> </dd>
</dl> </dl>
</div> </section>
<div class="section" id="Named Arguments"> <section id="options">
<h3>Named Arguments<a class="headerlink" href="#Named Arguments" title="Permalink to this headline"></a></h3> <h3>options<a class="headerlink" href="#options" title="Permalink to this headline"></a></h3>
<dl class="option-list"> <dl class="option-list">
<dt><kbd>-V</kbd></dt> <dt><kbd>-V</kbd></dt>
<dd><p>show program's version number and exit</p> <dd><p>show program's version number and exit</p>
</dd> </dd>
</dl> </dl>
</div> </section>
<div class="section" id="required arguments"> <section id="required arguments">
<h3>required arguments<a class="headerlink" href="#required arguments" title="Permalink to this headline"></a></h3> <h3>required arguments<a class="headerlink" href="#required arguments" title="Permalink to this headline"></a></h3>
<dl class="option-list"> <dl class="option-list">
<dt><kbd>-p, --product</kbd></dt> <dt><kbd>-p, --product</kbd></dt>
@ -255,9 +167,9 @@ repositories.</p>
<p>Default: []</p> <p>Default: []</p>
</dd> </dd>
</dl> </dl>
</div> </section>
<div class="section" id="Named Arguments_repeat1"> <section id="Named Arguments">
<h3>Named Arguments<a class="headerlink" href="#Named Arguments_repeat1" title="Permalink to this headline"></a></h3> <h3>Named Arguments<a class="headerlink" href="#Named Arguments" title="Permalink to this headline"></a></h3>
<dl class="option-list"> <dl class="option-list">
<dt><kbd>-m, --mirrorlist</kbd></dt> <dt><kbd>-m, --mirrorlist</kbd></dt>
<dd><p>mirrorlist repository (may be listed multiple times)</p> <dd><p>mirrorlist repository (may be listed multiple times)</p>
@ -356,8 +268,8 @@ repositories.</p>
<p>Default: []</p> <p>Default: []</p>
</dd> </dd>
<dt><kbd>--rootfs-size</kbd></dt> <dt><kbd>--rootfs-size</kbd></dt>
<dd><p>Size of root filesystem in GiB. Defaults to 3.</p> <dd><p>Size of root filesystem in GiB. Defaults to 2.</p>
<p>Default: 3</p> <p>Default: 2</p>
</dd> </dd>
<dt><kbd>--noverifyssl</kbd></dt> <dt><kbd>--noverifyssl</kbd></dt>
<dd><p>Do not verify SSL certificates</p> <dd><p>Do not verify SSL certificates</p>
@ -376,8 +288,8 @@ repositories.</p>
<p>Default: False</p> <p>Default: False</p>
</dd> </dd>
</dl> </dl>
</div> </section>
<div class="section" id="dracut arguments: (default: )"> <section id="dracut arguments: (default: )">
<h3>dracut arguments: (default: )<a class="headerlink" href="#dracut arguments: (default: )" title="Permalink to this headline"></a></h3> <h3>dracut arguments: (default: )<a class="headerlink" href="#dracut arguments: (default: )" title="Permalink to this headline"></a></h3>
<dl class="option-list"> <dl class="option-list">
<dt><kbd>--dracut-conf</kbd></dt> <dt><kbd>--dracut-conf</kbd></dt>
@ -387,9 +299,9 @@ repositories.</p>
<dd><p>Argument to pass to dracut when rebuilding the initramfs. Pass this once for each argument. NOTE: this overrides the defaults.</p> <dd><p>Argument to pass to dracut when rebuilding the initramfs. Pass this once for each argument. NOTE: this overrides the defaults.</p>
</dd> </dd>
</dl> </dl>
</div> </section>
</div> </section>
<div class="section" id="quickstart"> <section id="quickstart">
<h2>Quickstart<a class="headerlink" href="#quickstart" title="Permalink to this headline"></a></h2> <h2>Quickstart<a class="headerlink" href="#quickstart" title="Permalink to this headline"></a></h2>
<p>Run this as root to create a boot.iso in <code class="docutils literal notranslate"><span class="pre">./results/</span></code>:</p> <p>Run this as root to create a boot.iso in <code class="docutils literal notranslate"><span class="pre">./results/</span></code>:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">dnf</span> <span class="n">install</span> <span class="n">lorax</span> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">dnf</span> <span class="n">install</span> <span class="n">lorax</span>
@ -404,15 +316,15 @@ repositories.</p>
<p>You can add your own repos with <code class="docutils literal notranslate"><span class="pre">-s</span></code> and packages with higher NVRs will <p>You can add your own repos with <code class="docutils literal notranslate"><span class="pre">-s</span></code> and packages with higher NVRs will
override the ones in the distribution repositories.</p> override the ones in the distribution repositories.</p>
<p>Under <code class="docutils literal notranslate"><span class="pre">./results/</span></code> will be the release tree files: .discinfo, .treeinfo, everything that <p>Under <code class="docutils literal notranslate"><span class="pre">./results/</span></code> will be the release tree files: .discinfo, .treeinfo, everything that
goes onto the boot.iso, the pxeboot directory, and the boot.iso under <code class="docutils literal notranslate"><span class="pre">./images/</span></code>.</p> goes onto the boot.iso, the pxeboot directory, and the boot.iso under <code class="docutils literal notranslate"><span class="pre">./results/images/</span></code>.</p>
</div> </section>
<div class="section" id="branding"> <section id="branding">
<h2>Branding<a class="headerlink" href="#branding" title="Permalink to this headline"></a></h2> <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> <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 doesn't start with <code class="docutils literal notranslate"><span class="pre">generic-</span></code> and will install it. It then selects a that doesn't 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 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> 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="variants"> <section id="variants">
<h3>Variants<a class="headerlink" href="#variants" title="Permalink to this headline"></a></h3> <h3>Variants<a class="headerlink" href="#variants" title="Permalink to this headline"></a></h3>
<p>If a <code class="docutils literal notranslate"><span class="pre">variant</span></code> is passed to lorax it will select a <code class="docutils literal notranslate"><span class="pre">system-release</span></code> package that <p>If a <code class="docutils literal notranslate"><span class="pre">variant</span></code> is passed to lorax it will select a <code class="docutils literal notranslate"><span class="pre">system-release</span></code> package that
ends with the variant name. eg. Passing <code class="docutils literal notranslate"><span class="pre">--variant</span> <span class="pre">workstation</span></code> will select the ends with the variant name. eg. Passing <code class="docutils literal notranslate"><span class="pre">--variant</span> <span class="pre">workstation</span></code> will select the
@ -420,8 +332,8 @@ ends with the variant name. eg. Passing <code class="docutils literal notranslat
the same way it does for non-variants. eg. <code class="docutils literal notranslate"><span class="pre">fedora-logos</span></code>.</p> the same way it does for non-variants. eg. <code class="docutils literal notranslate"><span class="pre">fedora-logos</span></code>.</p>
<p>If there is no package ending with the variant name it will fall back to using the <p>If there is no package ending with the variant name it will fall back to using the
first non-generic package providing <code class="docutils literal notranslate"><span class="pre">system-release</span></code>.</p> first non-generic package providing <code class="docutils literal notranslate"><span class="pre">system-release</span></code>.</p>
</div> </section>
<div class="section" id="custom-branding"> <section id="custom-branding">
<h3>Custom Branding<a class="headerlink" href="#custom-branding" title="Permalink to this headline"></a></h3> <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 <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 <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
@ -432,9 +344,9 @@ and <code class="docutils literal notranslate"><span class="pre">fedora-logos</s
<p>Note that this does not prevent something else in the dependency tree from <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 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> are unexpectedly included.</p>
</div> </section>
</div> </section>
<div class="section" id="running-inside-of-mock"> <section id="running-inside-of-mock">
<h2>Running inside of mock<a class="headerlink" href="#running-inside-of-mock" title="Permalink to this headline"></a></h2> <h2>Running inside of mock<a class="headerlink" href="#running-inside-of-mock" title="Permalink to this headline"></a></h2>
<p>As of mock version 2.0 you no longer need to pass <code class="docutils literal notranslate"><span class="pre">--old-chroot</span></code>. You will, <p>As of mock version 2.0 you no longer need to pass <code class="docutils literal notranslate"><span class="pre">--old-chroot</span></code>. You will,
however, need to pass <code class="docutils literal notranslate"><span class="pre">--enable-network</span></code> so that the mock container can download however, need to pass <code class="docutils literal notranslate"><span class="pre">--enable-network</span></code> so that the mock container can download
@ -443,8 +355,8 @@ packages.</p>
to mock. These versions of mock default to using systemd-nspawn which cannot to mock. These versions of mock default 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 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> system where <code class="docutils literal notranslate"><span class="pre">/dev/loop*</span></code> is setup for you.</p>
</div> </section>
<div class="section" id="how-it-works"> <section id="how-it-works">
<h2>How it works<a class="headerlink" href="#how-it-works" title="Permalink to this headline"></a></h2> <h2>How it works<a class="headerlink" href="#how-it-works" title="Permalink to this headline"></a></h2>
<p>Lorax uses <a class="reference external" href="https://github.com/rpm-software-management/dnf">dnf</a> to install <p>Lorax uses <a class="reference external" href="https://github.com/rpm-software-management/dnf">dnf</a> to install
packages into a temporary directory, sets up configuration files, it then packages into a temporary directory, sets up configuration files, it then
@ -458,14 +370,14 @@ supports <code class="docutils literal notranslate"><span class="pre">%if/%endif
<span class="pre">%&gt;</span></code> tags and variable substitution with <code class="docutils literal notranslate"><span class="pre">${}</span></code>. The default templates are <span class="pre">%&gt;</span></code> tags and variable substitution with <code class="docutils literal notranslate"><span class="pre">${}</span></code>. The default templates are
shipped with lorax in <code class="docutils literal notranslate"><span class="pre">/usr/share/lorax/templates.d/99-generic/</span></code> and use the shipped with lorax in <code class="docutils literal notranslate"><span class="pre">/usr/share/lorax/templates.d/99-generic/</span></code> and use the
<code class="docutils literal notranslate"><span class="pre">.tmpl</span></code> extension.</p> <code class="docutils literal notranslate"><span class="pre">.tmpl</span></code> extension.</p>
<div class="section" id="runtime-install-tmpl"> <section id="runtime-install-tmpl">
<h3>runtime-install.tmpl<a class="headerlink" href="#runtime-install-tmpl" title="Permalink to this headline"></a></h3> <h3>runtime-install.tmpl<a class="headerlink" href="#runtime-install-tmpl" title="Permalink to this headline"></a></h3>
<p>The <code class="docutils literal notranslate"><span class="pre">runtime-install.tmpl</span></code> template lists packages to be installed using the <p>The <code class="docutils literal notranslate"><span class="pre">runtime-install.tmpl</span></code> template lists packages to be installed using the
<code class="docutils literal notranslate"><span class="pre">installpkg</span></code> command. This template is fairly simple, installing common packages and <code class="docutils literal notranslate"><span class="pre">installpkg</span></code> command. This template is fairly simple, installing common packages and
architecture specific packages. It must end with the <code class="docutils literal notranslate"><span class="pre">run_pkg_transaction</span></code> architecture specific packages. It must end with the <code class="docutils literal notranslate"><span class="pre">run_pkg_transaction</span></code>
command which tells dnf to download and install the packages.</p> command which tells dnf to download and install the packages.</p>
</div> </section>
<div class="section" id="runtime-postinstall-tmpl"> <section id="runtime-postinstall-tmpl">
<h3>runtime-postinstall.tmpl<a class="headerlink" href="#runtime-postinstall-tmpl" title="Permalink to this headline"></a></h3> <h3>runtime-postinstall.tmpl<a class="headerlink" href="#runtime-postinstall-tmpl" title="Permalink to this headline"></a></h3>
<p>The <code class="docutils literal notranslate"><span class="pre">runtime-postinstall.tmpl</span></code> template is where the system configuration <p>The <code class="docutils literal notranslate"><span class="pre">runtime-postinstall.tmpl</span></code> template is where the system configuration
happens. The installer environment is similar to a normal running system, but happens. The installer environment is similar to a normal running system, but
@ -485,8 +397,8 @@ installation. A number of template commands are used here:</p>
<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.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> <li><p><a class="reference internal" href="pylorax.html#pylorax.ltmpl.LoraxTemplateRunner.systemctl" title="pylorax.ltmpl.LoraxTemplateRunner.systemctl"><code class="xref py py-func docutils literal notranslate"><span class="pre">systemctl</span></code></a> runs systemctl in the installroot</p></li>
</ul> </ul>
</div> </section>
<div class="section" id="runtime-cleanup-tmpl"> <section id="runtime-cleanup-tmpl">
<h3>runtime-cleanup.tmpl<a class="headerlink" href="#runtime-cleanup-tmpl" title="Permalink to this headline"></a></h3> <h3>runtime-cleanup.tmpl<a class="headerlink" href="#runtime-cleanup-tmpl" title="Permalink to this headline"></a></h3>
<p>The <code class="docutils literal notranslate"><span class="pre">runtime-cleanup.tmpl</span></code> template is used to remove files that aren't strictly needed <p>The <code class="docutils literal notranslate"><span class="pre">runtime-cleanup.tmpl</span></code> template is used to remove files that aren't strictly needed
by the installation environment. In addition to the <code class="docutils literal notranslate"><span class="pre">remove</span></code> template command it uses:</p> by the installation environment. In addition to the <code class="docutils literal notranslate"><span class="pre">remove</span></code> template command it uses:</p>
@ -500,15 +412,15 @@ 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> <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> Removes kernel modules</p></li>
</ul> </ul>
</div> </section>
<div class="section" id="the-squashfs-filesystem"> <section id="the-squashfs-filesystem">
<h3>The squashfs filesystem<a class="headerlink" href="#the-squashfs-filesystem" title="Permalink to this headline"></a></h3> <h3>The squashfs filesystem<a class="headerlink" href="#the-squashfs-filesystem" title="Permalink to this headline"></a></h3>
<p>After <code class="docutils literal notranslate"><span class="pre">runtime-*.tmpl</span></code> templates have finished their work lorax creates an <p>After <code class="docutils literal notranslate"><span class="pre">runtime-*.tmpl</span></code> templates have finished their work lorax creates an
empty ext4 filesystem, copies the remaining files to it, and makes a squashfs empty ext4 filesystem, copies the remaining files to it, and makes a squashfs
filesystem of it. This file is the / of the boot.iso's installer environment filesystem of it. This file is the / of the boot.iso's installer environment
and is what is in the LiveOS/squashfs.img file on the iso.</p> and is what is in the LiveOS/squashfs.img file on the iso.</p>
</div> </section>
<div class="section" id="iso-creation"> <section id="iso-creation">
<h3>iso creation<a class="headerlink" href="#iso-creation" title="Permalink to this headline"></a></h3> <h3>iso creation<a class="headerlink" href="#iso-creation" title="Permalink to this headline"></a></h3>
<p>The iso creation is handled by another set of templates. The one used depends <p>The iso creation is handled by another set of templates. The one used depends
on the architecture that the iso is being created for. They are also stored in on the architecture that the iso is being created for. They are also stored in
@ -518,9 +430,9 @@ configuration template files, configuration variable substitution, treeinfo
metadata (via the <a class="reference internal" href="pylorax.html#pylorax.ltmpl.LoraxTemplateRunner.treeinfo" title="pylorax.ltmpl.LoraxTemplateRunner.treeinfo"><code class="xref py py-func docutils literal notranslate"><span class="pre">treeinfo</span></code></a> metadata (via the <a class="reference internal" href="pylorax.html#pylorax.ltmpl.LoraxTemplateRunner.treeinfo" title="pylorax.ltmpl.LoraxTemplateRunner.treeinfo"><code class="xref py py-func docutils literal notranslate"><span class="pre">treeinfo</span></code></a>
template command). Kernel and initrd are copied from the installroot to their template command). Kernel and initrd are copied from the installroot to their
final locations and then xorrisofs is run to create the boot.iso</p> final locations and then xorrisofs is run to create the boot.iso</p>
</div> </section>
</div> </section>
<div class="section" id="custom-templates"> <section id="custom-templates">
<h2>Custom Templates<a class="headerlink" href="#custom-templates" title="Permalink to this headline"></a></h2> <h2>Custom Templates<a class="headerlink" href="#custom-templates" title="Permalink to this headline"></a></h2>
<p>The default set of templates and configuration files from the lorax-generic-templates package <p>The default set of templates and configuration files from the lorax-generic-templates package
are shipped in the <code class="docutils literal notranslate"><span class="pre">/usr/share/lorax/templates.d/99-generic/</span></code> directory. You can are shipped in the <code class="docutils literal notranslate"><span class="pre">/usr/share/lorax/templates.d/99-generic/</span></code> directory. You can
@ -528,55 +440,38 @@ make a copy of them and place them into another directory under <code class="doc
and they will be used instead if their sort order is below all other directories. This and they will be used instead if their sort order is below all other directories. This
allows multiple packages to ship lorax templates without conflict. You can (and probably allows multiple packages to ship lorax templates without conflict. You can (and probably
should) select the specific template directory by passing <code class="docutils literal notranslate"><span class="pre">--sharedir</span></code> to lorax.</p> should) select the specific template directory by passing <code class="docutils literal notranslate"><span class="pre">--sharedir</span></code> to lorax.</p>
</div> </section>
</div> </section>
</div> </div>
</div> </div>
<footer> <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="livemedia-creator.html" class="btn btn-neutral float-right" title="livemedia-creator" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
<a href="intro.html" class="btn btn-neutral float-left" title="Introduction to Lorax" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> <a href="intro.html" class="btn btn-neutral float-left" title="Introduction to Lorax" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="livemedia-creator.html" class="btn btn-neutral float-right" title="livemedia-creator" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div> </div>
<hr/> <hr/>
<div role="contentinfo"> <div role="contentinfo">
<p> <p>&#169; Copyright 2018, Red Hat, Inc..</p>
&#169; Copyright 2018, Red Hat, Inc..
</p>
</div> </div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer> </footer>
</div> </div>
</div> </div>
</section> </section>
</div> </div>
<script>
<script type="text/javascript">
jQuery(function () { jQuery(function () {
SphinxRtdTheme.Navigation.enable(true); SphinxRtdTheme.Navigation.enable(true);
}); });
</script> </script>
</body> </body>
</html> </html>

View File

@ -1,71 +1,34 @@
<!DOCTYPE html> <!DOCTYPE html>
<html class="writer-html5" lang="en" > <html class="writer-html5" lang="en" >
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>mkksiso &mdash; Lorax 36.5 documentation</title>
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<title>mkksiso &mdash; Lorax 34.9.0 documentation</title> <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script> <script src="_static/jquery.js"></script>
<script src="_static/underscore.js"></script> <script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></script> <script src="_static/doctools.js"></script>
<script src="_static/js/theme.js"></script>
<script type="text/javascript" src="_static/js/theme.js"></script>
<link rel="index" title="Index" href="genindex.html" /> <link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" /> <link rel="search" title="Search" href="search.html" />
<link rel="next" title="Product and Updates Images" href="product-images.html" /> <link rel="next" title="Product and Updates Images" href="product-images.html" />
<link rel="prev" title="livemedia-creator" href="livemedia-creator.html" /> <link rel="prev" title="livemedia-creator" href="livemedia-creator.html" />
</head> </head>
<body class="wy-body-for-nav"> <body class="wy-body-for-nav">
<div class="wy-grid-for-nav"> <div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side"> <nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll"> <div class="wy-side-scroll">
<div class="wy-side-nav-search" > <div class="wy-side-nav-search" >
<a href="index.html" class="icon icon-home"> Lorax <a href="index.html" class="icon icon-home"> Lorax
</a> </a>
<div class="version"> <div class="version">
34.9.0 36.5
</div> </div>
<div role="search"> <div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get"> <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" /> <input type="text" name="q" placeholder="Search docs" />
@ -73,18 +36,7 @@
<input type="hidden" name="area" value="default" /> <input type="hidden" name="area" value="default" />
</form> </form>
</div> </div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul class="current"> <ul class="current">
<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">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="intro.html#before-lorax">Before Lorax</a></li>
@ -103,75 +55,35 @@
</ul> </ul>
</li> </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="product-images.html">Product and Updates Images</a></li>
<li class="toctree-l1"><a class="reference internal" href="image-minimizer.html">image-minimizer</a></li>
<li class="toctree-l1"><a class="reference internal" href="modules.html">src</a></li> <li class="toctree-l1"><a class="reference internal" href="modules.html">src</a></li>
</ul> </ul>
</div> </div>
</div> </div>
</nav> </nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i> <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="index.html">Lorax</a> <a href="index.html">Lorax</a>
</nav> </nav>
<div class="wy-nav-content"> <div class="wy-nav-content">
<div class="rst-content"> <div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs"> <ul class="wy-breadcrumbs">
<li><a href="index.html" class="icon icon-home"></a> &raquo;</li> <li><a href="index.html" class="icon icon-home"></a> &raquo;</li>
<li>mkksiso</li> <li>mkksiso</li>
<li class="wy-breadcrumbs-aside"> <li class="wy-breadcrumbs-aside">
<a href="_sources/mkksiso.rst.txt" rel="nofollow"> View page source</a> <a href="_sources/mkksiso.rst.txt" rel="nofollow"> View page source</a>
</li> </li>
</ul> </ul>
<hr/> <hr/>
</div> </div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody"> <div itemprop="articleBody">
<div class="section" id="mkksiso"> <section id="mkksiso">
<h1>mkksiso<a class="headerlink" href="#mkksiso" title="Permalink to this headline"></a></h1> <h1>mkksiso<a class="headerlink" href="#mkksiso" title="Permalink to this headline"></a></h1>
<dl class="field-list simple"> <dl class="field-list simple">
<dt class="field-odd">Authors</dt> <dt class="field-odd">Authors</dt>
@ -183,14 +95,16 @@ you can add a kickstart to a boot.iso and the kickstart will be executed when
the iso is booted. If the original iso was created with EFI and Mac support the the iso is booted. If the original iso was created with EFI and Mac support the
kickstart boot.iso will include this support as well.</p> kickstart boot.iso will include this support as well.</p>
<p><code class="docutils literal notranslate"><span class="pre">mkksiso</span></code> needs to be run as root, it depends on mounting the original iso <p><code class="docutils literal notranslate"><span class="pre">mkksiso</span></code> needs to be run as root, it depends on mounting the original iso
and you need to be root to be able to do that.</p> and you need to be root to be able to do that. The host system architecture
<div class="section" id="mkksiso-cmdline-arguments"> needs to match that of the iso. <code class="docutils literal notranslate"><span class="pre">mkksiso</span></code> will raise an error if it finds a
.discinfo on the iso with a mismatched arch.</p>
<section id="mkksiso-cmdline-arguments">
<h2>mkksiso cmdline arguments<a class="headerlink" href="#mkksiso-cmdline-arguments" title="Permalink to this headline"></a></h2> <h2>mkksiso cmdline arguments<a class="headerlink" href="#mkksiso-cmdline-arguments" title="Permalink to this headline"></a></h2>
<p>Add a kickstart and files to an iso</p> <p>Add a kickstart and files to an iso</p>
<blockquote> <blockquote>
<div><p><code class="docutils literal notranslate"><span class="pre">usage:</span> <span class="pre">mkksiso</span> <span class="pre">[-h]</span> <span class="pre">[-a</span> <span class="pre">ADD_PATHS]</span> <span class="pre">[-c</span> <span class="pre">CMDLINE]</span> <span class="pre">[--debug]</span> <span class="pre">ks</span> <span class="pre">input_iso</span> <span class="pre">output_iso</span></code></p> <div><p><code class="docutils literal notranslate"><span class="pre">usage:</span> <span class="pre">mkksiso</span> <span class="pre">[-h]</span> <span class="pre">[-a</span> <span class="pre">ADD_PATHS]</span> <span class="pre">[-c</span> <span class="pre">CMDLINE]</span> <span class="pre">[--debug]</span> <span class="pre">ks</span> <span class="pre">input_iso</span> <span class="pre">output_iso</span></code></p>
</div></blockquote> </div></blockquote>
<div class="section" id="optional-arguments"> <section id="optional-arguments">
<h3>Optional arguments<a class="headerlink" href="#optional-arguments" title="Permalink to this headline"></a></h3> <h3>Optional arguments<a class="headerlink" href="#optional-arguments" title="Permalink to this headline"></a></h3>
<blockquote> <blockquote>
<div><dl class="option-list"> <div><dl class="option-list">
@ -212,8 +126,8 @@ times)</p>
</dd> </dd>
</dl> </dl>
</div></blockquote> </div></blockquote>
</div> </section>
<div class="section" id="positional-arguments"> <section id="positional-arguments">
<h3>Positional arguments<a class="headerlink" href="#positional-arguments" title="Permalink to this headline"></a></h3> <h3>Positional arguments<a class="headerlink" href="#positional-arguments" title="Permalink to this headline"></a></h3>
<blockquote> <blockquote>
<div><dl class="field-list simple"> <div><dl class="field-list simple">
@ -228,9 +142,9 @@ times)</p>
</dd> </dd>
</dl> </dl>
</div></blockquote> </div></blockquote>
</div> </section>
</div> </section>
<div class="section" id="create-a-kickstart-boot-iso-or-dvd"> <section id="create-a-kickstart-boot-iso-or-dvd">
<h2>Create a kickstart boot.iso or DVD<a class="headerlink" href="#create-a-kickstart-boot-iso-or-dvd" title="Permalink to this headline"></a></h2> <h2>Create a kickstart boot.iso or DVD<a class="headerlink" href="#create-a-kickstart-boot-iso-or-dvd" title="Permalink to this headline"></a></h2>
<p>Create a kickstart like you normally would, kickstart documentation can be <p>Create a kickstart like you normally would, kickstart documentation can be
<a class="reference external" href="https://pykickstart.readthedocs.io/en/latest/">found here</a>, including the <a class="reference external" href="https://pykickstart.readthedocs.io/en/latest/">found here</a>, including the
@ -250,8 +164,8 @@ eg.:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">mkksiso</span> <span class="o">-</span><span class="n">V</span> <span class="s2">&quot;Test Only&quot;</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">KICKSTART</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">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">NEW</span><span class="o">-</span><span class="n">ISO</span> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">mkksiso</span> <span class="o">-</span><span class="n">V</span> <span class="s2">&quot;Test Only&quot;</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">KICKSTART</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">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">NEW</span><span class="o">-</span><span class="n">ISO</span>
</pre></div> </pre></div>
</div> </div>
</div> </section>
<div class="section" id="adding-package-repos-to-a-boot-iso"> <section id="adding-package-repos-to-a-boot-iso">
<h2>Adding package repos to a boot.iso<a class="headerlink" href="#adding-package-repos-to-a-boot-iso" title="Permalink to this headline"></a></h2> <h2>Adding package repos to a boot.iso<a class="headerlink" href="#adding-package-repos-to-a-boot-iso" title="Permalink to this headline"></a></h2>
<p>You can add repo directories to the iso using <code class="docutils literal notranslate"><span class="pre">--add</span> <span class="pre">/PATH/TO/REPO/</span></code>, make <p>You can add repo directories to the iso using <code class="docutils literal notranslate"><span class="pre">--add</span> <span class="pre">/PATH/TO/REPO/</span></code>, make
sure it contains the <code class="docutils literal notranslate"><span class="pre">repodata</span></code> directory by running <code class="docutils literal notranslate"><span class="pre">createrepo_c</span></code> on it sure it contains the <code class="docutils literal notranslate"><span class="pre">repodata</span></code> directory by running <code class="docutils literal notranslate"><span class="pre">createrepo_c</span></code> on it
@ -265,8 +179,8 @@ the kickstart like this:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">mkksiso</span> <span class="o">--</span><span class="n">add</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">REPO</span><span class="o">/</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">KICKSTART</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">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">NEW</span><span class="o">-</span><span class="n">ISO</span> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">mkksiso</span> <span class="o">--</span><span class="n">add</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">REPO</span><span class="o">/</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">KICKSTART</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">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">NEW</span><span class="o">-</span><span class="n">ISO</span>
</pre></div> </pre></div>
</div> </div>
</div> </section>
<div class="section" id="create-a-liveimg-boot-iso"> <section id="create-a-liveimg-boot-iso">
<h2>Create a liveimg boot.iso<a class="headerlink" href="#create-a-liveimg-boot-iso" title="Permalink to this headline"></a></h2> <h2>Create a liveimg boot.iso<a class="headerlink" href="#create-a-liveimg-boot-iso" title="Permalink to this headline"></a></h2>
<p>You can use the kickstart <a class="reference external" href="https://pykickstart.readthedocs.io/en/latest/kickstart-docs.html#liveimg">liveimg command</a>, <p>You can use the kickstart <a class="reference external" href="https://pykickstart.readthedocs.io/en/latest/kickstart-docs.html#liveimg">liveimg command</a>,
to install a pre-generated disk image or tar to the system the iso is booting to install a pre-generated disk image or tar to the system the iso is booting
@ -289,8 +203,8 @@ sure the file hasn't been corrupted:</p>
</div> </div>
<p>When this iso is booted it will execute the kickstart and install the liveimg <p>When this iso is booted it will execute the kickstart and install the liveimg
contents to the system without any prompting.</p> contents to the system without any prompting.</p>
</div> </section>
<div class="section" id="how-it-works"> <section id="how-it-works">
<h2>How it works<a class="headerlink" href="#how-it-works" title="Permalink to this headline"></a></h2> <h2>How it works<a class="headerlink" href="#how-it-works" title="Permalink to this headline"></a></h2>
<p><code class="docutils literal notranslate"><span class="pre">mkksiso</span></code> first examines the system to make sure the tools it needs are installed, <p><code class="docutils literal notranslate"><span class="pre">mkksiso</span></code> first examines the system to make sure the tools it needs are installed,
it will work with <code class="docutils literal notranslate"><span class="pre">xorrisofs</span></code> or <code class="docutils literal notranslate"><span class="pre">mkisofs</span></code> installed. It mounts the source iso, it will work with <code class="docutils literal notranslate"><span class="pre">xorrisofs</span></code> or <code class="docutils literal notranslate"><span class="pre">mkisofs</span></code> installed. It mounts the source iso,
@ -303,55 +217,38 @@ tool to add the new files and directories to the new iso. If the architecture is
stick (hybridiso).</p> stick (hybridiso).</p>
<p>The last step is to update the iso checksums so that booting with test enabled <p>The last step is to update the iso checksums so that booting with test enabled
will pass.</p> will pass.</p>
</div> </section>
</div> </section>
</div> </div>
</div> </div>
<footer> <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="product-images.html" class="btn btn-neutral float-right" title="Product and Updates Images" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
<a href="livemedia-creator.html" class="btn btn-neutral float-left" title="livemedia-creator" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> <a href="livemedia-creator.html" class="btn btn-neutral float-left" title="livemedia-creator" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="product-images.html" class="btn btn-neutral float-right" title="Product and Updates Images" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div> </div>
<hr/> <hr/>
<div role="contentinfo"> <div role="contentinfo">
<p> <p>&#169; Copyright 2018, Red Hat, Inc..</p>
&#169; Copyright 2018, Red Hat, Inc..
</p>
</div> </div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer> </footer>
</div> </div>
</div> </div>
</section> </section>
</div> </div>
<script>
<script type="text/javascript">
jQuery(function () { jQuery(function () {
SphinxRtdTheme.Navigation.enable(true); SphinxRtdTheme.Navigation.enable(true);
}); });
</script> </script>
</body> </body>
</html> </html>

View File

@ -1,71 +1,34 @@
<!DOCTYPE html> <!DOCTYPE html>
<html class="writer-html5" lang="en" > <html class="writer-html5" lang="en" >
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>src &mdash; Lorax 36.5 documentation</title>
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<title>src &mdash; Lorax 34.9.0 documentation</title> <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script> <script src="_static/jquery.js"></script>
<script src="_static/underscore.js"></script> <script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></script> <script src="_static/doctools.js"></script>
<script src="_static/js/theme.js"></script>
<script type="text/javascript" src="_static/js/theme.js"></script>
<link rel="index" title="Index" href="genindex.html" /> <link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" /> <link rel="search" title="Search" href="search.html" />
<link rel="next" title="pylorax package" href="pylorax.html" /> <link rel="next" title="pylorax package" href="pylorax.html" />
<link rel="prev" title="Product and Updates Images" href="product-images.html" /> <link rel="prev" title="image-minimizer" href="image-minimizer.html" />
</head> </head>
<body class="wy-body-for-nav"> <body class="wy-body-for-nav">
<div class="wy-grid-for-nav"> <div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side"> <nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll"> <div class="wy-side-scroll">
<div class="wy-side-nav-search" > <div class="wy-side-nav-search" >
<a href="index.html" class="icon icon-home"> Lorax <a href="index.html" class="icon icon-home"> Lorax
</a> </a>
<div class="version"> <div class="version">
34.9.0 36.5
</div> </div>
<div role="search"> <div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get"> <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" /> <input type="text" name="q" placeholder="Search docs" />
@ -73,18 +36,7 @@
<input type="hidden" name="area" value="default" /> <input type="hidden" name="area" value="default" />
</form> </form>
</div> </div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul class="current"> <ul class="current">
<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">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="intro.html#before-lorax">Before Lorax</a></li>
@ -92,78 +44,38 @@
<li class="toctree-l1"><a class="reference internal" href="livemedia-creator.html">livemedia-creator</a></li> <li class="toctree-l1"><a class="reference internal" href="livemedia-creator.html">livemedia-creator</a></li>
<li class="toctree-l1"><a class="reference internal" href="mkksiso.html">mkksiso</a></li> <li class="toctree-l1"><a class="reference internal" href="mkksiso.html">mkksiso</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="product-images.html">Product and Updates Images</a></li>
<li class="toctree-l1"><a class="reference internal" href="image-minimizer.html">image-minimizer</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">src</a><ul> <li class="toctree-l1 current"><a class="current reference internal" href="#">src</a><ul>
<li class="toctree-l2"><a class="reference internal" href="pylorax.html">pylorax package</a></li> <li class="toctree-l2"><a class="reference internal" href="pylorax.html">pylorax package</a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
</div> </div>
</div> </div>
</nav> </nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i> <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="index.html">Lorax</a> <a href="index.html">Lorax</a>
</nav> </nav>
<div class="wy-nav-content"> <div class="wy-nav-content">
<div class="rst-content"> <div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs"> <ul class="wy-breadcrumbs">
<li><a href="index.html" class="icon icon-home"></a> &raquo;</li> <li><a href="index.html" class="icon icon-home"></a> &raquo;</li>
<li>src</li> <li>src</li>
<li class="wy-breadcrumbs-aside"> <li class="wy-breadcrumbs-aside">
<a href="_sources/modules.rst.txt" rel="nofollow"> View page source</a> <a href="_sources/modules.rst.txt" rel="nofollow"> View page source</a>
</li> </li>
</ul> </ul>
<hr/> <hr/>
</div> </div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody"> <div itemprop="articleBody">
<div class="section" id="src"> <section id="src">
<h1>src<a class="headerlink" href="#src" title="Permalink to this headline"></a></h1> <h1>src<a class="headerlink" href="#src" title="Permalink to this headline"></a></h1>
<div class="toctree-wrapper compound"> <div class="toctree-wrapper compound">
<ul> <ul>
@ -192,54 +104,37 @@
</li> </li>
</ul> </ul>
</div> </div>
</div> </section>
</div> </div>
</div> </div>
<footer> <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation"> <a href="image-minimizer.html" class="btn btn-neutral float-left" title="image-minimizer" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="pylorax.html" class="btn btn-neutral float-right" title="pylorax package" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> <a href="pylorax.html" class="btn btn-neutral float-right" title="pylorax package" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
<a href="product-images.html" class="btn btn-neutral float-left" title="Product and Updates Images" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
</div> </div>
<hr/> <hr/>
<div role="contentinfo"> <div role="contentinfo">
<p> <p>&#169; Copyright 2018, Red Hat, Inc..</p>
&#169; Copyright 2018, Red Hat, Inc..
</p>
</div> </div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer> </footer>
</div> </div>
</div> </div>
</section> </section>
</div> </div>
<script>
<script type="text/javascript">
jQuery(function () { jQuery(function () {
SphinxRtdTheme.Navigation.enable(true); SphinxRtdTheme.Navigation.enable(true);
}); });
</script> </script>
</body> </body>
</html> </html>

Binary file not shown.

View File

@ -1,71 +1,34 @@
<!DOCTYPE html> <!DOCTYPE html>
<html class="writer-html5" lang="en" > <html class="writer-html5" lang="en" >
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Product and Updates Images &mdash; Lorax 36.5 documentation</title>
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<title>Product and Updates Images &mdash; Lorax 34.9.0 documentation</title> <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script> <script src="_static/jquery.js"></script>
<script src="_static/underscore.js"></script> <script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></script> <script src="_static/doctools.js"></script>
<script src="_static/js/theme.js"></script>
<script type="text/javascript" src="_static/js/theme.js"></script>
<link rel="index" title="Index" href="genindex.html" /> <link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" /> <link rel="search" title="Search" href="search.html" />
<link rel="next" title="src" href="modules.html" /> <link rel="next" title="image-minimizer" href="image-minimizer.html" />
<link rel="prev" title="mkksiso" href="mkksiso.html" /> <link rel="prev" title="mkksiso" href="mkksiso.html" />
</head> </head>
<body class="wy-body-for-nav"> <body class="wy-body-for-nav">
<div class="wy-grid-for-nav"> <div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side"> <nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll"> <div class="wy-side-scroll">
<div class="wy-side-nav-search" > <div class="wy-side-nav-search" >
<a href="index.html" class="icon icon-home"> Lorax <a href="index.html" class="icon icon-home"> Lorax
</a> </a>
<div class="version"> <div class="version">
34.9.0 36.5
</div> </div>
<div role="search"> <div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get"> <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" /> <input type="text" name="q" placeholder="Search docs" />
@ -73,18 +36,7 @@
<input type="hidden" name="area" value="default" /> <input type="hidden" name="area" value="default" />
</form> </form>
</div> </div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul class="current"> <ul class="current">
<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">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="intro.html#before-lorax">Before Lorax</a></li>
@ -92,75 +44,35 @@
<li class="toctree-l1"><a class="reference internal" href="livemedia-creator.html">livemedia-creator</a></li> <li class="toctree-l1"><a class="reference internal" href="livemedia-creator.html">livemedia-creator</a></li>
<li class="toctree-l1"><a class="reference internal" href="mkksiso.html">mkksiso</a></li> <li class="toctree-l1"><a class="reference internal" href="mkksiso.html">mkksiso</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Product and Updates Images</a></li> <li class="toctree-l1 current"><a class="current reference internal" href="#">Product and Updates Images</a></li>
<li class="toctree-l1"><a class="reference internal" href="image-minimizer.html">image-minimizer</a></li>
<li class="toctree-l1"><a class="reference internal" href="modules.html">src</a></li> <li class="toctree-l1"><a class="reference internal" href="modules.html">src</a></li>
</ul> </ul>
</div> </div>
</div> </div>
</nav> </nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i> <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="index.html">Lorax</a> <a href="index.html">Lorax</a>
</nav> </nav>
<div class="wy-nav-content"> <div class="wy-nav-content">
<div class="rst-content"> <div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs"> <ul class="wy-breadcrumbs">
<li><a href="index.html" class="icon icon-home"></a> &raquo;</li> <li><a href="index.html" class="icon icon-home"></a> &raquo;</li>
<li>Product and Updates Images</li> <li>Product and Updates Images</li>
<li class="wy-breadcrumbs-aside"> <li class="wy-breadcrumbs-aside">
<a href="_sources/product-images.rst.txt" rel="nofollow"> View page source</a> <a href="_sources/product-images.rst.txt" rel="nofollow"> View page source</a>
</li> </li>
</ul> </ul>
<hr/> <hr/>
</div> </div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody"> <div itemprop="articleBody">
<div class="section" id="product-and-updates-images"> <section id="product-and-updates-images">
<h1>Product and Updates Images<a class="headerlink" href="#product-and-updates-images" title="Permalink to this headline"></a></h1> <h1>Product and Updates Images<a class="headerlink" href="#product-and-updates-images" title="Permalink to this headline"></a></h1>
<p>Lorax now supports creation of product.img and updates.img as part of the build <p>Lorax now supports creation of product.img and updates.img as part of the build
process. This is implemented using the installimg template command which will process. This is implemented using the installimg template command which will
@ -182,54 +94,37 @@ you would put your custom class here:</p>
<p>If the packages containing the product/updates files are not included as part <p>If the packages containing the product/updates files are not included as part
of normal dependencies you can add specific packages with the <code class="docutils literal notranslate"><span class="pre">--installpkgs</span></code> of normal dependencies you can add specific packages with the <code class="docutils literal notranslate"><span class="pre">--installpkgs</span></code>
command or the installpkgs paramater of <a class="reference internal" href="pylorax.html#pylorax.treebuilder.RuntimeBuilder" title="pylorax.treebuilder.RuntimeBuilder"><code class="xref py py-class docutils literal notranslate"><span class="pre">pylorax.treebuilder.RuntimeBuilder</span></code></a></p> command or the installpkgs paramater of <a class="reference internal" href="pylorax.html#pylorax.treebuilder.RuntimeBuilder" title="pylorax.treebuilder.RuntimeBuilder"><code class="xref py py-class docutils literal notranslate"><span class="pre">pylorax.treebuilder.RuntimeBuilder</span></code></a></p>
</div> </section>
</div> </div>
</div> </div>
<footer> <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="modules.html" class="btn btn-neutral float-right" title="src" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
<a href="mkksiso.html" class="btn btn-neutral float-left" title="mkksiso" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> <a href="mkksiso.html" class="btn btn-neutral float-left" title="mkksiso" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="image-minimizer.html" class="btn btn-neutral float-right" title="image-minimizer" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div> </div>
<hr/> <hr/>
<div role="contentinfo"> <div role="contentinfo">
<p> <p>&#169; Copyright 2018, Red Hat, Inc..</p>
&#169; Copyright 2018, Red Hat, Inc..
</p>
</div> </div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer> </footer>
</div> </div>
</div> </div>
</section> </section>
</div> </div>
<script>
<script type="text/javascript">
jQuery(function () { jQuery(function () {
SphinxRtdTheme.Navigation.enable(true); SphinxRtdTheme.Navigation.enable(true);
}); });
</script> </script>
</body> </body>
</html> </html>

View File

@ -1,38 +1,17 @@
<!DOCTYPE html> <!DOCTYPE html>
<html class="writer-html5" lang="en" > <html class="writer-html5" lang="en" >
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Python Module Index &mdash; Lorax 36.5 documentation</title>
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<title>Python Module Index &mdash; Lorax 34.9.0 documentation</title> <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script> <script src="_static/jquery.js"></script>
<script src="_static/underscore.js"></script> <script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></script> <script src="_static/doctools.js"></script>
<script src="_static/js/theme.js"></script>
<script type="text/javascript" src="_static/js/theme.js"></script>
<link rel="index" title="Index" href="genindex.html" /> <link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" /> <link rel="search" title="Search" href="search.html" />
@ -40,33 +19,16 @@
</head> </head>
<body class="wy-body-for-nav"> <body class="wy-body-for-nav">
<div class="wy-grid-for-nav"> <div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side"> <nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll"> <div class="wy-side-scroll">
<div class="wy-side-nav-search" > <div class="wy-side-nav-search" >
<a href="index.html" class="icon icon-home"> Lorax <a href="index.html" class="icon icon-home"> Lorax
</a> </a>
<div class="version"> <div class="version">
34.9.0 36.5
</div> </div>
<div role="search"> <div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get"> <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" /> <input type="text" name="q" placeholder="Search docs" />
@ -74,18 +36,7 @@
<input type="hidden" name="area" value="default" /> <input type="hidden" name="area" value="default" />
</form> </form>
</div> </div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul> <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">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="intro.html#before-lorax">Before Lorax</a></li>
@ -93,70 +44,33 @@
<li class="toctree-l1"><a class="reference internal" href="livemedia-creator.html">livemedia-creator</a></li> <li class="toctree-l1"><a class="reference internal" href="livemedia-creator.html">livemedia-creator</a></li>
<li class="toctree-l1"><a class="reference internal" href="mkksiso.html">mkksiso</a></li> <li class="toctree-l1"><a class="reference internal" href="mkksiso.html">mkksiso</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="product-images.html">Product and Updates Images</a></li>
<li class="toctree-l1"><a class="reference internal" href="image-minimizer.html">image-minimizer</a></li>
<li class="toctree-l1"><a class="reference internal" href="modules.html">src</a></li> <li class="toctree-l1"><a class="reference internal" href="modules.html">src</a></li>
</ul> </ul>
</div> </div>
</div> </div>
</nav> </nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i> <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="index.html">Lorax</a> <a href="index.html">Lorax</a>
</nav> </nav>
<div class="wy-nav-content"> <div class="wy-nav-content">
<div class="rst-content"> <div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs"> <ul class="wy-breadcrumbs">
<li><a href="index.html" class="icon icon-home"></a> &raquo;</li> <li><a href="index.html" class="icon icon-home"></a> &raquo;</li>
<li>Python Module Index</li> <li>Python Module Index</li>
<li class="wy-breadcrumbs-aside"> <li class="wy-breadcrumbs-aside">
</li> </li>
</ul> </ul>
<hr/> <hr/>
</div> </div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody"> <div itemprop="articleBody">
<h1>Python Module Index</h1> <h1>Python Module Index</h1>
@ -268,46 +182,30 @@
</div> </div>
</div> </div>
<footer> <footer>
<hr/> <hr/>
<div role="contentinfo"> <div role="contentinfo">
<p> <p>&#169; Copyright 2018, Red Hat, Inc..</p>
&#169; Copyright 2018, Red Hat, Inc..
</p>
</div> </div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer> </footer>
</div> </div>
</div> </div>
</section> </section>
</div> </div>
<script>
<script type="text/javascript">
jQuery(function () { jQuery(function () {
SphinxRtdTheme.Navigation.enable(true); SphinxRtdTheme.Navigation.enable(true);
}); });
</script> </script>
</body> </body>
</html> </html>

File diff suppressed because it is too large Load Diff

View File

@ -1,72 +1,34 @@
<!DOCTYPE html> <!DOCTYPE html>
<html class="writer-html5" lang="en" > <html class="writer-html5" lang="en" >
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Search &mdash; Lorax 36.5 documentation</title>
<title>Search &mdash; Lorax 34.9.0 documentation</title> <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script> <script src="_static/jquery.js"></script>
<script src="_static/underscore.js"></script> <script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></script> <script src="_static/doctools.js"></script>
<script src="_static/js/theme.js"></script>
<script type="text/javascript" src="_static/js/theme.js"></script> <script src="_static/searchtools.js"></script>
<script src="_static/language_data.js"></script>
<script type="text/javascript" src="_static/searchtools.js"></script>
<script type="text/javascript" src="_static/language_data.js"></script>
<link rel="index" title="Index" href="genindex.html" /> <link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="#" /> <link rel="search" title="Search" href="#" />
</head> </head>
<body class="wy-body-for-nav"> <body class="wy-body-for-nav">
<div class="wy-grid-for-nav"> <div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side"> <nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll"> <div class="wy-side-scroll">
<div class="wy-side-nav-search" > <div class="wy-side-nav-search" >
<a href="index.html" class="icon icon-home"> Lorax <a href="index.html" class="icon icon-home"> Lorax
</a> </a>
<div class="version"> <div class="version">
34.9.0 36.5
</div> </div>
<div role="search"> <div role="search">
<form id="rtd-search-form" class="wy-form" action="#" method="get"> <form id="rtd-search-form" class="wy-form" action="#" method="get">
<input type="text" name="q" placeholder="Search docs" /> <input type="text" name="q" placeholder="Search docs" />
@ -74,18 +36,7 @@
<input type="hidden" name="area" value="default" /> <input type="hidden" name="area" value="default" />
</form> </form>
</div> </div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul> <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">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="intro.html#before-lorax">Before Lorax</a></li>
@ -93,70 +44,33 @@
<li class="toctree-l1"><a class="reference internal" href="livemedia-creator.html">livemedia-creator</a></li> <li class="toctree-l1"><a class="reference internal" href="livemedia-creator.html">livemedia-creator</a></li>
<li class="toctree-l1"><a class="reference internal" href="mkksiso.html">mkksiso</a></li> <li class="toctree-l1"><a class="reference internal" href="mkksiso.html">mkksiso</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="product-images.html">Product and Updates Images</a></li>
<li class="toctree-l1"><a class="reference internal" href="image-minimizer.html">image-minimizer</a></li>
<li class="toctree-l1"><a class="reference internal" href="modules.html">src</a></li> <li class="toctree-l1"><a class="reference internal" href="modules.html">src</a></li>
</ul> </ul>
</div> </div>
</div> </div>
</nav> </nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i> <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="index.html">Lorax</a> <a href="index.html">Lorax</a>
</nav> </nav>
<div class="wy-nav-content"> <div class="wy-nav-content">
<div class="rst-content"> <div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs"> <ul class="wy-breadcrumbs">
<li><a href="index.html" class="icon icon-home"></a> &raquo;</li> <li><a href="index.html" class="icon icon-home"></a> &raquo;</li>
<li>Search</li> <li>Search</li>
<li class="wy-breadcrumbs-aside"> <li class="wy-breadcrumbs-aside">
</li> </li>
</ul> </ul>
<hr/> <hr/>
</div> </div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody"> <div itemprop="articleBody">
<noscript> <noscript>
<div id="fallback" class="admonition warning"> <div id="fallback" class="admonition warning">
<p class="last"> <p class="last">
@ -171,51 +85,35 @@
</div> </div>
</div> </div>
</div> </div>
<footer> <footer>
<hr/> <hr/>
<div role="contentinfo"> <div role="contentinfo">
<p> <p>&#169; Copyright 2018, Red Hat, Inc..</p>
&#169; Copyright 2018, Red Hat, Inc..
</p>
</div> </div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer> </footer>
</div> </div>
</div> </div>
</section> </section>
</div> </div>
<script>
<script type="text/javascript">
jQuery(function () { jQuery(function () {
SphinxRtdTheme.Navigation.enable(true); SphinxRtdTheme.Navigation.enable(true);
}); });
</script> </script>
<script>
<script type="text/javascript">
jQuery(function() { Search.loadIndex("searchindex.js"); }); jQuery(function() { Search.loadIndex("searchindex.js"); });
</script> </script>
<script type="text/javascript" id="searchindexloader"></script> <script id="searchindexloader"></script>

File diff suppressed because one or more lines are too long

99
docs/image-minimizer.rst Normal file
View File

@ -0,0 +1,99 @@
image-minimizer
===============
:Authors:
Brian C. Lane <bcl@redhat.com>
`image-minimizer` is a script used as an interpreter for kickstart `%post`
sections. It is used to remove rpm packages and individual files from the
system that Anaconda has just installed.
It processes a list of commands that tell it which files or rpms to remove, and
which to keep.
image-minimizer cmdline arguments
---------------------------------
`usage: image-minimizer [-h] [-i STRING] [--dryrun] [-v] STRING`
Optional arguments
^^^^^^^^^^^^^^^^^^
-h, --help show this help message and exit
-i STRING, --installroot STRING
Root path to prepend to all file patterns and
installation root for RPM operations. Defaults to
INSTALL_ROOT or /mnt/sysimage/
--dryrun If set, no filesystem changes are made.
-v, --verbose Display every action as it is performed.
Positional arguments
^^^^^^^^^^^^^^^^^^^^
:STRING: Filename to process
NOTES
-----
You cannot pass any arguments to `image-minimizer` when using it from the
kickstart `%post`.
When using this from a kickstart the image-minimizer package needs to be available.
It is not included on the standard boot.iso, so you will need to include `lorax` in
the `%package` section. You can use `image-minimizer` to remove lorax from the install.
If you are using this with `livemedia-creator` it can be installed on the host
system so that `lorax` isn't needed in the `%package` list, and it doesn't need
to be removed.
commands
--------
Commands are listed one per line, followed by a space, and then by the
package, file, or glob. The globs used are Unix style pathname patterns using
`*`, `?`, and `[]` character ranges. globbing is implemented using the python
glob module.
* drop <PATTERN>
This will remove files from the installation.
* keep <PATTERN>
This will keep files, and should follow any `drop` commands including globs.
* droprpm <PATTERN>
Remove matching rpm packages. Dependencies are not remove, just individual
packages matching the glob.
* keeprpm <PATTERN>
Do not remove matching rpm packages, it should follow any `droprpm` commands
that include globs.
example
-------
Example Anaconda `%post` usage::
%post --interpreter=image-minimizer --nochroot
drop /lib/modules/*/kernel/fs
keep /lib/modules/*/kernel/fs/ext*
keep /lib/modules/*/kernel/fs/mbcache*
keep /lib/modules/*/kernel/fs/squashfs
droprpm make
droprpm mtools
droprpm mysql-libs
droprpm perl
droprpm perl-Pod-*
droprpm syslinux
keeprpm perl-Pod-Simple
# Not needed after image-minimizer is done
droprpm lorax
%end

View File

@ -16,15 +16,15 @@ Contents:
livemedia-creator livemedia-creator
mkksiso mkksiso
product-images product-images
image-minimizer
modules modules
Documentation for other Lorax Branches Documentation for other Lorax Branches
====================================== ======================================
* `Fedora 35 <f35-branch/>`_
* `Fedora 34 <f34-branch/>`_
* `Fedora 33 <f33-branch/>`_ * `Fedora 33 <f33-branch/>`_
* `Fedora 32 <f32-branch/>`_
* `Fedora 31 <f31-branch/>`_
* `Fedora 30 <f30-branch/>`_
* `RHEL8 lorax-composer <rhel8-branch/>`_ * `RHEL8 lorax-composer <rhel8-branch/>`_
* `RHEL7 lorax-composer <lorax-composer/>`_ * `RHEL7 lorax-composer <lorax-composer/>`_

View File

@ -171,7 +171,6 @@ changes. Here are the steps I used to convert the Fedora XFCE spin.
dracut-live dracut-live
-dracut-config-rescue -dracut-config-rescue
grub2-efi grub2-efi
memtest86+
syslinux syslinux
User created repositories User created repositories

View File

@ -51,7 +51,7 @@ You can add your own repos with ``-s`` and packages with higher NVRs will
override the ones in the distribution repositories. override the ones in the distribution repositories.
Under ``./results/`` will be the release tree files: .discinfo, .treeinfo, everything that Under ``./results/`` will be the release tree files: .discinfo, .treeinfo, everything that
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 ``./results/images/``.
Branding Branding

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

152
docs/man/image-minimizer.1 Normal file
View File

@ -0,0 +1,152 @@
.\" Man page generated from reStructuredText.
.
.
.nr rst2man-indent-level 0
.
.de1 rstReportMargin
\\$1 \\n[an-margin]
level \\n[rst2man-indent-level]
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
-
\\n[rst2man-indent0]
\\n[rst2man-indent1]
\\n[rst2man-indent2]
..
.de1 INDENT
.\" .rstReportMargin pre:
. RS \\$1
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
. nr rst2man-indent-level +1
.\" .rstReportMargin post:
..
.de UNINDENT
. RE
.\" indent \\n[an-margin]
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
.nr rst2man-indent-level -1
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "IMAGE-MINIMIZER" "1" "Dec 21, 2021" "36.5" "Lorax"
.SH NAME
image-minimizer \- Utility script to remove files and packages
.INDENT 0.0
.TP
.B Authors
Brian C. Lane <\fI\%bcl@redhat.com\fP>
.UNINDENT
.sp
\fIimage\-minimizer\fP is a script used as an interpreter for kickstart \fI%post\fP
sections. It is used to remove rpm packages and individual files from the
system that Anaconda has just installed.
.sp
It processes a list of commands that tell it which files or rpms to remove, and
which to keep.
.SH IMAGE-MINIMIZER CMDLINE ARGUMENTS
.INDENT 0.0
.INDENT 3.5
\fIusage: image\-minimizer [\-h] [\-i STRING] [\-\-dryrun] [\-v] STRING\fP
.UNINDENT
.UNINDENT
.SS Optional arguments
.INDENT 0.0
.INDENT 3.5
.INDENT 0.0
.TP
.B \-h\fP,\fB \-\-help
show this help message and exit
.TP
.BI \-i \ STRING\fR,\fB \ \-\-installroot \ STRING
Root path to prepend to all file patterns and
installation root for RPM operations. Defaults to
INSTALL_ROOT or /mnt/sysimage/
.TP
.B \-\-dryrun
If set, no filesystem changes are made.
.TP
.B \-v\fP,\fB \-\-verbose
Display every action as it is performed.
.UNINDENT
.UNINDENT
.UNINDENT
.SS Positional arguments
.INDENT 0.0
.INDENT 3.5
.INDENT 0.0
.TP
.B STRING
Filename to process
.UNINDENT
.UNINDENT
.UNINDENT
.SH NOTES
.sp
You cannot pass any arguments to \fIimage\-minimizer\fP when using it from the
kickstart \fI%post\fP\&.
.sp
When using this from a kickstart the image\-minimizer package needs to be available.
It is not included on the standard boot.iso, so you will need to include \fIlorax\fP in
the \fI%package\fP section. You can use \fIimage\-minimizer\fP to remove lorax from the install.
.sp
If you are using this with \fIlivemedia\-creator\fP it can be installed on the host
system so that \fIlorax\fP isn\(aqt needed in the \fI%package\fP list, and it doesn\(aqt need
to be removed.
.SH COMMANDS
.sp
Commands are listed one per line, followed by a space, and then by the
package, file, or glob. The globs used are Unix style pathname patterns using
\fI*\fP, \fI?\fP, and \fI[]\fP character ranges. globbing is implemented using the python
glob module.
.INDENT 0.0
.IP \(bu 2
drop <PATTERN>
This will remove files from the installation.
.IP \(bu 2
keep <PATTERN>
This will keep files, and should follow any \fIdrop\fP commands including globs.
.IP \(bu 2
droprpm <PATTERN>
Remove matching rpm packages. Dependencies are not remove, just individual
packages matching the glob.
.IP \(bu 2
keeprpm <PATTERN>
Do not remove matching rpm packages, it should follow any \fIdroprpm\fP commands
that include globs.
.UNINDENT
.SH EXAMPLE
.sp
Example Anaconda \fI%post\fP usage:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
%post \-\-interpreter=image\-minimizer \-\-nochroot
drop /lib/modules/*/kernel/fs
keep /lib/modules/*/kernel/fs/ext*
keep /lib/modules/*/kernel/fs/mbcache*
keep /lib/modules/*/kernel/fs/squashfs
droprpm make
droprpm mtools
droprpm mysql\-libs
droprpm perl
droprpm perl\-Pod\-*
droprpm syslinux
keeprpm perl\-Pod\-Simple
# Not needed after image\-minimizer is done
droprpm lorax
%end
.ft P
.fi
.UNINDENT
.UNINDENT
.SH AUTHOR
Weldr Team
.SH COPYRIGHT
2018, Red Hat, Inc.
.\" Generated by docutils manpage writer.
.

View File

@ -1,8 +1,5 @@
.\" Man page generated from reStructuredText. .\" Man page generated from reStructuredText.
. .
.TH "LIVEMEDIA-CREATOR" "1" "Apr 29, 2021" "34.9.0" "Lorax"
.SH NAME
livemedia-creator \- Live Media Creator Documentation
. .
.nr rst2man-indent-level 0 .nr rst2man-indent-level 0
. .
@ -30,6 +27,9 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u .in \\n[rst2man-indent\\n[rst2man-indent-level]]u
.. ..
.TH "LIVEMEDIA-CREATOR" "1" "Dec 21, 2021" "36.5" "Lorax"
.SH NAME
livemedia-creator \- Live Media Creator Documentation
.INDENT 0.0 .INDENT 0.0
.TP .TP
.B Authors .B Authors
@ -103,209 +103,209 @@ usage: livemedia\-creator [\-h]
.fi .fi
.UNINDENT .UNINDENT
.UNINDENT .UNINDENT
.SS Named Arguments .SS options
.INDENT 0.0 .INDENT 0.0
.TP .TP
.B\-\-make\-iso .B \-\-make\-iso
Build a live iso Build a live iso
.sp .sp
Default: False Default: False
.TP .TP
.B\-\-make\-disk .B \-\-make\-disk
Build a partitioned disk image Build a partitioned disk image
.sp .sp
Default: False Default: False
.TP .TP
.B\-\-make\-fsimage .B \-\-make\-fsimage
Build a filesystem image Build a filesystem image
.sp .sp
Default: False Default: False
.TP .TP
.B\-\-make\-appliance .B \-\-make\-appliance
Build an appliance image and XML description Build an appliance image and XML description
.sp .sp
Default: False Default: False
.TP .TP
.B\-\-make\-ami .B \-\-make\-ami
Build an ami image Build an ami image
.sp .sp
Default: False Default: False
.TP .TP
.B\-\-make\-tar .B \-\-make\-tar
Build a tar of the root filesystem Build a tar of the root filesystem
.sp .sp
Default: False Default: False
.TP .TP
.B\-\-make\-tar\-disk .B \-\-make\-tar\-disk
Build a tar of a partitioned disk image Build a tar of a partitioned disk image
.sp .sp
Default: False Default: False
.TP .TP
.B\-\-make\-pxe\-live .B \-\-make\-pxe\-live
Build a live pxe boot squashfs image Build a live pxe boot squashfs image
.sp .sp
Default: False Default: False
.TP .TP
.B\-\-make\-ostree\-live .B \-\-make\-ostree\-live
Build a live pxe boot squashfs image of Atomic Host Build a live pxe boot squashfs image of Atomic Host
.sp .sp
Default: False Default: False
.TP .TP
.B\-\-make\-oci .B \-\-make\-oci
Build an Open Container Initiative image Build an Open Container Initiative image
.sp .sp
Default: False Default: False
.TP .TP
.B\-\-make\-vagrant .B \-\-make\-vagrant
Build a Vagrant Box image Build a Vagrant Box image
.sp .sp
Default: False Default: False
.TP .TP
.B\-\-iso .B \-\-iso
Anaconda installation .iso path to use for qemu Anaconda installation .iso path to use for qemu
.TP .TP
.B\-\-iso\-only .B \-\-iso\-only
Remove all iso creation artifacts except the boot.iso, combine with \-\-iso\-name to rename the boot.iso Remove all iso creation artifacts except the boot.iso, combine with \-\-iso\-name to rename the boot.iso
.sp .sp
Default: False Default: False
.TP .TP
.B\-\-iso\-name .B \-\-iso\-name
Name of output iso file for \-\-iso\-only. Default is boot.iso Name of output iso file for \-\-iso\-only. Default is boot.iso
.TP .TP
.B\-\-ks .B \-\-ks
Kickstart file defining the install. Kickstart file defining the install.
.TP .TP
.B\-\-image\-only .B \-\-image\-only
Exit after creating fs/disk image. Exit after creating fs/disk image.
.sp .sp
Default: False Default: False
.TP .TP
.B\-\-no\-virt .B \-\-no\-virt
Run anaconda directly on host instead of using qemu Run anaconda directly on host instead of using qemu
.sp .sp
Default: False Default: False
.TP .TP
.B\-\-proxy .B \-\-proxy
proxy URL to use for the install proxy URL to use for the install
.TP .TP
.B\-\-anaconda\-arg .B \-\-anaconda\-arg
Additional argument to pass to anaconda (no\-virt mode). Pass once for each argument Additional argument to pass to anaconda (no\-virt mode). Pass once for each argument
.TP .TP
.B\-\-armplatform .B \-\-armplatform
the platform to use when creating images for ARM, i.e., highbank, mvebu, omap, tegra, etc. the platform to use when creating images for ARM, i.e., highbank, mvebu, omap, tegra, etc.
.TP .TP
.B\-\-location .B \-\-location
location of iso directory tree with initrd.img and vmlinuz. Used to run qemu with a newer initrd than the iso. location of iso directory tree with initrd.img and vmlinuz. Used to run qemu with a newer initrd than the iso.
.TP .TP
.B\-\-logfile .B \-\-logfile
Name and path for primary logfile, other logs will be created in the same directory. Name and path for primary logfile, other logs will be created in the same directory.
.sp .sp
Default: ./livemedia.log Default: ./livemedia.log
.TP .TP
.B\-\-lorax\-templates .B \-\-lorax\-templates
Path to mako templates for lorax Path to mako templates for lorax
.TP .TP
.B\-\-tmp .B \-\-tmp
Top level temporary directory Top level temporary directory
.sp .sp
Default: /var/tmp Default: /var/tmp
.TP .TP
.B\-\-resultdir .B \-\-resultdir
Directory to copy the resulting images and iso into. Defaults to the temporary working directory Directory to copy the resulting images and iso into. Defaults to the temporary working directory
.TP .TP
.B\-\-macboot .B \-\-macboot
Make the iso bootable on UEFI based Mac systems Make the iso bootable on UEFI based Mac systems
.sp .sp
Default: True Default: True
.TP .TP
.B\-\-nomacboot .B \-\-nomacboot
Do not create a Mac bootable iso Do not create a Mac bootable iso
.sp .sp
Default: False Default: False
.TP .TP
.B\-\-extra\-boot\-args .B \-\-extra\-boot\-args
Extra arguments to add to the bootloader kernel cmdline in the templates Extra arguments to add to the bootloader kernel cmdline in the templates
.sp .sp
Default: "" Default: ""
.TP .TP
.B\-\-project .B \-\-project
substituted for @PROJECT@ in bootloader config files substituted for @PROJECT@ in bootloader config files
.sp .sp
Default: "Linux" Default: "Linux"
.TP .TP
.B\-\-releasever .B \-\-releasever
substituted for @VERSION@ in bootloader config files substituted for @VERSION@ in bootloader config files
.sp .sp
Default: "34" Default: "36"
.TP .TP
.B\-\-volid .B \-\-volid
volume id volume id
.TP .TP
.B\-\-squashfs\-only .B \-\-squashfs\-only
Use a plain squashfs filesystem for the runtime. Use a plain squashfs filesystem for the runtime.
.sp .sp
Default: False Default: False
.TP .TP
.B\-\-timeout .B \-\-timeout
Cancel installer after X minutes Cancel installer after X minutes
.TP .TP
.B\-V .B \-V
show program\(aqs version number and exit show program\(aqs version number and exit
.UNINDENT .UNINDENT
.SS disk/fs image arguments .SS disk/fs image arguments
.INDENT 0.0 .INDENT 0.0
.TP .TP
.B\-\-disk\-image .B \-\-disk\-image
Path to existing disk image to use for creating final image. Path to existing disk image to use for creating final image.
.TP .TP
.B\-\-keep\-image .B \-\-keep\-image
Keep raw disk image after .iso creation Keep raw disk image after .iso creation
.sp .sp
Default: False Default: False
.TP .TP
.B\-\-fs\-image .B \-\-fs\-image
Path to existing filesystem image to use for creating final image. Path to existing filesystem image to use for creating final image.
.TP .TP
.B\-\-image\-name .B \-\-image\-name
Name of output file to create. Used for tar, fs and disk image. Default is a random name. Name of output file to create. Used for tar, fs and disk image. Default is a random name.
.TP .TP
.B\-\-tar\-disk\-name .B \-\-tar\-disk\-name
Name of the archive member for make\-tar\-disk. Name of the archive member for make\-tar\-disk.
.TP .TP
.B\-\-fs\-label .B \-\-fs\-label
Label to set on fsimage, default is \(aqAnaconda\(aq Label to set on fsimage, default is \(aqAnaconda\(aq
.sp .sp
Default: "Anaconda" Default: "Anaconda"
.TP .TP
.B\-\-image\-size\-align .B \-\-image\-size\-align
Create a disk image with a size that is a multiple of this value in MiB. Create a disk image with a size that is a multiple of this value in MiB.
.sp .sp
Default: 0 Default: 0
.TP .TP
.B\-\-image\-type .B \-\-image\-type
Create an image with qemu\-img. See qemu\-img \-\-help for supported formats. Create an image with qemu\-img. See qemu\-img \-\-help for supported formats.
.TP .TP
.B\-\-qemu\-arg .B \-\-qemu\-arg
Arguments to pass to qemu\-img. Pass once for each argument, they will be used for ALL calls to qemu\-img. Arguments to pass to qemu\-img. Pass once for each argument, they will be used for ALL calls to qemu\-img.
.sp .sp
Default: [] Default: []
.TP .TP
.B\-\-qcow2 .B \-\-qcow2
Create qcow2 image instead of raw sparse image when making disk images. Create qcow2 image instead of raw sparse image when making disk images.
.sp .sp
Default: False Default: False
.TP .TP
.B\-\-qcow2\-arg .B \-\-qcow2\-arg
Arguments to pass to qemu\-img. Pass once for each argument, they will be used for ALL calls to qemu\-img. Arguments to pass to qemu\-img. Pass once for each argument, they will be used for ALL calls to qemu\-img.
.sp .sp
Default: [] Default: []
.TP .TP
.B\-\-compression .B \-\-compression
Compression binary for make\-tar. xz, lzma, gzip, and bzip2 are supported. xz is the default. Compression binary for make\-tar. xz, lzma, gzip, and bzip2 are supported. xz is the default.
.sp .sp
Default: "xz" Default: "xz"
.TP .TP
.B\-\-compress\-arg .B \-\-compress\-arg
Arguments to pass to compression. Pass once for each argument Arguments to pass to compression. Pass once for each argument
.sp .sp
Default: [] Default: []
@ -313,13 +313,13 @@ Default: []
.SS appliance arguments .SS appliance arguments
.INDENT 0.0 .INDENT 0.0
.TP .TP
.B\-\-app\-name .B \-\-app\-name
Name of appliance to pass to template Name of appliance to pass to template
.TP .TP
.B\-\-app\-template .B \-\-app\-template
Path to template to use for appliance data. Path to template to use for appliance data.
.TP .TP
.B\-\-app\-file .B \-\-app\-file
Appliance template results file. Appliance template results file.
.sp .sp
Default: "appliance.xml" Default: "appliance.xml"
@ -327,39 +327,39 @@ Default: "appliance.xml"
.SS qemu arguments .SS qemu arguments
.INDENT 0.0 .INDENT 0.0
.TP .TP
.B\-\-ram .B \-\-ram
Memory to allocate for installer in megabytes. Memory to allocate for installer in megabytes.
.sp .sp
Default: 2048 Default: 2048
.TP .TP
.B\-\-vcpus .B \-\-vcpus
Passed to qemu \-smp command Passed to qemu \-smp command
.TP .TP
.B\-\-vnc .B \-\-vnc
Passed to qemu \-display command. eg. vnc=127.0.0.1:5, default is to choose the first unused vnc port. Passed to qemu \-display command. eg. vnc=127.0.0.1:5, default is to choose the first unused vnc port.
.TP .TP
.B\-\-arch .B \-\-arch
System arch to build for. Used to select qemu\-system\-* command. Defaults to qemu\-system\-<arch> System arch to build for. Used to select qemu\-system\-* command. Defaults to qemu\-system\-<arch>
.TP .TP
.B\-\-kernel\-args .B \-\-kernel\-args
Additional argument to pass to the installation kernel Additional argument to pass to the installation kernel
.TP .TP
.B\-\-ovmf\-path .B \-\-ovmf\-path
Path to OVMF firmware Path to OVMF firmware
.sp .sp
Default: "/usr/share/edk2/ovmf/" Default: "/usr/share/edk2/ovmf/"
.TP .TP
.B\-\-virt\-uefi .B \-\-virt\-uefi
Use OVMF firmware to boot the VM in UEFI mode Use OVMF firmware to boot the VM in UEFI mode
.sp .sp
Default: False Default: False
.TP .TP
.B\-\-no\-kvm .B \-\-no\-kvm
Skip using kvm with qemu even if it is available. Skip using kvm with qemu even if it is available.
.sp .sp
Default: False Default: False
.TP .TP
.B\-\-with\-rng .B \-\-with\-rng
RNG device for QEMU (none for no RNG) RNG device for QEMU (none for no RNG)
.sp .sp
Default: "/dev/random" Default: "/dev/random"
@ -367,21 +367,21 @@ Default: "/dev/random"
.SS dracut arguments: (default: ) .SS dracut arguments: (default: )
.INDENT 0.0 .INDENT 0.0
.TP .TP
.B\-\-dracut\-conf .B \-\-dracut\-conf
Path to a dracut.conf file to use instead of the default arguments. See the dracut.conf(5) manpage. Path to a dracut.conf file to use instead of the default arguments. See the dracut.conf(5) manpage.
.TP .TP
.B\-\-dracut\-arg .B \-\-dracut\-arg
Argument to pass to dracut when rebuilding the initramfs. Pass this once for each argument. NOTE: this overrides the defaults. Argument to pass to dracut when rebuilding the initramfs. Pass this once for each argument. NOTE: this overrides the defaults.
.UNINDENT .UNINDENT
.SS pxe to live arguments .SS pxe to live arguments
.INDENT 0.0 .INDENT 0.0
.TP .TP
.B\-\-live\-rootfs\-size .B \-\-live\-rootfs\-size
Size of root filesystem of live image in GiB Size of root filesystem of live image in GiB
.sp .sp
Default: 0 Default: 0
.TP .TP
.B\-\-live\-rootfs\-keep\-size .B \-\-live\-rootfs\-keep\-size
Keep the original size of root filesystem in live image Keep the original size of root filesystem in live image
.sp .sp
Default: False Default: False
@ -389,19 +389,19 @@ Default: False
.SS OCI arguments .SS OCI arguments
.INDENT 0.0 .INDENT 0.0
.TP .TP
.B\-\-oci\-config .B \-\-oci\-config
config.json OCI configuration file config.json OCI configuration file
.TP .TP
.B\-\-oci\-runtime .B \-\-oci\-runtime
runtime.json OCI configuration file runtime.json OCI configuration file
.UNINDENT .UNINDENT
.SS Vagrant arguments .SS Vagrant arguments
.INDENT 0.0 .INDENT 0.0
.TP .TP
.B\-\-vagrant\-metadata .B \-\-vagrant\-metadata
optional metadata.json file optional metadata.json file
.TP .TP
.B\-\-vagrantfile .B \-\-vagrantfile
optional vagrantfile optional vagrantfile
.UNINDENT .UNINDENT
.SH QUICKSTART .SH QUICKSTART
@ -553,7 +553,6 @@ dracut\-config\-generic
dracut\-live dracut\-live
\-dracut\-config\-rescue \-dracut\-config\-rescue
grub2\-efi grub2\-efi
memtest86+
syslinux syslinux
.UNINDENT .UNINDENT
.SS User created repositories .SS User created repositories

View File

@ -1,8 +1,5 @@
.\" Man page generated from reStructuredText. .\" Man page generated from reStructuredText.
. .
.TH "LORAX" "1" "Apr 29, 2021" "34.9.0" "Lorax"
.SH NAME
lorax \- Lorax Documentation
. .
.nr rst2man-indent-level 0 .nr rst2man-indent-level 0
. .
@ -30,6 +27,9 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u .in \\n[rst2man-indent\\n[rst2man-indent-level]]u
.. ..
.TH "LORAX" "1" "Dec 21, 2021" "36.5" "Lorax"
.SH NAME
lorax \- Lorax Documentation
.INDENT 0.0 .INDENT 0.0
.TP .TP
.B Authors .B Authors
@ -72,33 +72,33 @@ usage: lorax [\-h] \-p PRODUCT \-v VERSION \-r RELEASE [\-s REPOSITORY] [\-\-rep
.SS Positional Arguments .SS Positional Arguments
.INDENT 0.0 .INDENT 0.0
.TP .TP
.BOUTPUTDIR .B OUTPUTDIR
Output directory Output directory
.UNINDENT .UNINDENT
.SS Named Arguments .SS options
.INDENT 0.0 .INDENT 0.0
.TP .TP
.B\-V .B \-V
show program\(aqs version number and exit show program\(aqs version number and exit
.UNINDENT .UNINDENT
.SS required arguments .SS required arguments
.INDENT 0.0 .INDENT 0.0
.TP .TP
.B\-p, \-\-product .B \-p, \-\-product
product name product name
.TP .TP
.B\-v, \-\-version .B \-v, \-\-version
version identifier version identifier
.TP .TP
.B\-r, \-\-release .B \-r, \-\-release
release information release information
.TP .TP
.B\-s, \-\-source .B \-s, \-\-source
source repository (may be listed multiple times) source repository (may be listed multiple times)
.sp .sp
Default: [] Default: []
.TP .TP
.B\-\-repo .B \-\-repo
source dnf repository file source dnf repository file
.sp .sp
Default: [] Default: []
@ -106,141 +106,141 @@ Default: []
.SS Named Arguments .SS Named Arguments
.INDENT 0.0 .INDENT 0.0
.TP .TP
.B\-m, \-\-mirrorlist .B \-m, \-\-mirrorlist
mirrorlist repository (may be listed multiple times) mirrorlist repository (may be listed multiple times)
.sp .sp
Default: [] Default: []
.TP .TP
.B\-t, \-\-variant .B \-t, \-\-variant
variant name variant name
.sp .sp
Default: "" Default: ""
.TP .TP
.B\-b, \-\-bugurl .B \-b, \-\-bugurl
bug reporting URL for the product bug reporting URL for the product
.sp .sp
Default: "your distribution provided bug reporting tool" Default: "your distribution provided bug reporting tool"
.TP .TP
.B\-\-isfinal .B \-\-isfinal
Default: False Default: False
.TP .TP
.B\-c, \-\-config .B \-c, \-\-config
config file config file
.sp .sp
Default: "/etc/lorax/lorax.conf" Default: "/etc/lorax/lorax.conf"
.TP .TP
.B\-\-proxy .B \-\-proxy
repo proxy url:port repo proxy url:port
.TP .TP
.B\-i, \-\-installpkgs .B \-i, \-\-installpkgs
package glob to install before runtime\-install.tmpl runs. (may be listed multiple times) package glob to install before runtime\-install.tmpl runs. (may be listed multiple times)
.sp .sp
Default: [] Default: []
.TP .TP
.B\-e, \-\-excludepkgs .B \-e, \-\-excludepkgs
package glob to remove before runtime\-install.tmpl runs. (may be listed multiple times) package glob to remove before runtime\-install.tmpl runs. (may be listed multiple times)
.sp .sp
Default: [] Default: []
.TP .TP
.B\-\-buildarch .B \-\-buildarch
build architecture build architecture
.TP .TP
.B\-\-volid .B \-\-volid
volume id volume id
.TP .TP
.B\-\-macboot .B \-\-macboot
Make the iso bootable on UEFI based Mac systems Make the iso bootable on UEFI based Mac systems
.sp .sp
Default: True Default: True
.TP .TP
.B\-\-nomacboot .B \-\-nomacboot
Do not create a Mac bootable iso Do not create a Mac bootable iso
.sp .sp
Default: False Default: False
.TP .TP
.B\-\-noupgrade .B \-\-noupgrade
Default: True Default: True
.TP .TP
.B\-\-logfile .B \-\-logfile
Path to logfile Path to logfile
.sp .sp
Default: ./lorax.log Default: ./lorax.log
.TP .TP
.B\-\-tmp .B \-\-tmp
Top level temporary directory Top level temporary directory
.sp .sp
Default: "/var/tmp/lorax" Default: "/var/tmp/lorax"
.TP .TP
.B\-\-cachedir .B \-\-cachedir
DNF cache directory. Default is a temporary dir. DNF cache directory. Default is a temporary dir.
.TP .TP
.B\-\-workdir .B \-\-workdir
Work directory, overrides \-\-tmp. Default is a temporary dir under /var/tmp/lorax Work directory, overrides \-\-tmp. Default is a temporary dir under /var/tmp/lorax
.TP .TP
.B\-\-force .B \-\-force
Run even when the destination directory exists Run even when the destination directory exists
.sp .sp
Default: False Default: False
.TP .TP
.B\-\-add\-template .B \-\-add\-template
Additional template for runtime image Additional template for runtime image
.sp .sp
Default: [] Default: []
.TP .TP
.B\-\-add\-template\-var .B \-\-add\-template\-var
Set variable for runtime image template Set variable for runtime image template
.sp .sp
Default: [] Default: []
.TP .TP
.B\-\-add\-arch\-template .B \-\-add\-arch\-template
Additional template for architecture\-specific image Additional template for architecture\-specific image
.sp .sp
Default: [] Default: []
.TP .TP
.B\-\-add\-arch\-template\-var .B \-\-add\-arch\-template\-var
Set variable for architecture\-specific image Set variable for architecture\-specific image
.sp .sp
Default: [] Default: []
.TP .TP
.B\-\-noverify .B \-\-noverify
Do not verify the install root Do not verify the install root
.sp .sp
Default: True Default: True
.TP .TP
.B\-\-sharedir .B \-\-sharedir
Directory containing all the templates. Overrides config file sharedir Directory containing all the templates. Overrides config file sharedir
.TP .TP
.B\-\-enablerepo .B \-\-enablerepo
Names of repos to enable Names of repos to enable
.sp .sp
Default: [] Default: []
.TP .TP
.B\-\-disablerepo .B \-\-disablerepo
Names of repos to disable Names of repos to disable
.sp .sp
Default: [] Default: []
.TP .TP
.B\-\-rootfs\-size .B \-\-rootfs\-size
Size of root filesystem in GiB. Defaults to 3. Size of root filesystem in GiB. Defaults to 2.
.sp .sp
Default: 3 Default: 2
.TP .TP
.B\-\-noverifyssl .B \-\-noverifyssl
Do not verify SSL certificates Do not verify SSL certificates
.sp .sp
Default: False Default: False
.TP .TP
.B\-\-dnfplugin .B \-\-dnfplugin
Enable a DNF plugin by name/glob, or * to enable all of them. Enable a DNF plugin by name/glob, or * to enable all of them.
.sp .sp
Default: [] Default: []
.TP .TP
.B\-\-squashfs\-only .B \-\-squashfs\-only
Use a plain squashfs filesystem for the runtime. Use a plain squashfs filesystem for the runtime.
.sp .sp
Default: False Default: False
.TP .TP
.B\-\-skip\-branding .B \-\-skip\-branding
Disable automatic branding package selection. Use \-\-installpkgs to add custom branding. Disable automatic branding package selection. Use \-\-installpkgs to add custom branding.
.sp .sp
Default: False Default: False
@ -248,10 +248,10 @@ Default: False
.SS dracut arguments: (default: ) .SS dracut arguments: (default: )
.INDENT 0.0 .INDENT 0.0
.TP .TP
.B\-\-dracut\-conf .B \-\-dracut\-conf
Path to a dracut.conf file to use instead of the default arguments. See the dracut.conf(5) manpage. Path to a dracut.conf file to use instead of the default arguments. See the dracut.conf(5) manpage.
.TP .TP
.B\-\-dracut\-arg .B \-\-dracut\-arg
Argument to pass to dracut when rebuilding the initramfs. Pass this once for each argument. NOTE: this overrides the defaults. Argument to pass to dracut when rebuilding the initramfs. Pass this once for each argument. NOTE: this overrides the defaults.
.UNINDENT .UNINDENT
.SH QUICKSTART .SH QUICKSTART
@ -278,7 +278,7 @@ You can add your own repos with \fB\-s\fP and packages with higher NVRs will
override the ones in the distribution repositories. override the ones in the distribution repositories.
.sp .sp
Under \fB\&./results/\fP will be the release tree files: .discinfo, .treeinfo, everything that Under \fB\&./results/\fP will be the release tree files: .discinfo, .treeinfo, everything that
goes onto the boot.iso, the pxeboot directory, and the boot.iso under \fB\&./images/\fP\&. goes onto the boot.iso, the pxeboot directory, and the boot.iso under \fB\&./results/images/\fP\&.
.SH BRANDING .SH BRANDING
.sp .sp
By default lorax will search for the first package that provides \fBsystem\-release\fP By default lorax will search for the first package that provides \fBsystem\-release\fP

View File

@ -1,8 +1,5 @@
.\" Man page generated from reStructuredText. .\" Man page generated from reStructuredText.
. .
.TH "MKKSISO" "1" "Apr 29, 2021" "34.9.0" "Lorax"
.SH NAME
mkksiso \- Make Kickstart ISO Utility Documentation
. .
.nr rst2man-indent-level 0 .nr rst2man-indent-level 0
. .
@ -30,6 +27,9 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u .in \\n[rst2man-indent\\n[rst2man-indent-level]]u
.. ..
.TH "MKKSISO" "1" "Dec 21, 2021" "36.5" "Lorax"
.SH NAME
mkksiso \- Make Kickstart ISO Utility Documentation
.INDENT 0.0 .INDENT 0.0
.TP .TP
.B Authors .B Authors
@ -42,7 +42,9 @@ the iso is booted. If the original iso was created with EFI and Mac support the
kickstart boot.iso will include this support as well. kickstart boot.iso will include this support as well.
.sp .sp
\fBmkksiso\fP needs to be run as root, it depends on mounting the original iso \fBmkksiso\fP needs to be run as root, it depends on mounting the original iso
and you need to be root to be able to do that. and you need to be root to be able to do that. The host system architecture
needs to match that of the iso. \fBmkksiso\fP will raise an error if it finds a
\&.discinfo on the iso with a mismatched arch.
.SH MKKSISO CMDLINE ARGUMENTS .SH MKKSISO CMDLINE ARGUMENTS
.sp .sp
Add a kickstart and files to an iso Add a kickstart and files to an iso
@ -56,7 +58,7 @@ Add a kickstart and files to an iso
.INDENT 3.5 .INDENT 3.5
.INDENT 0.0 .INDENT 0.0
.TP .TP
.B \-h\fP,\fB \-\-help .B \-h\fP,\fB \-\-help
show this help message and exit show this help message and exit
.TP .TP
.BI \-a \ ADD_PATHS\fR,\fB \ \-\-add \ ADD_PATHS .BI \-a \ ADD_PATHS\fR,\fB \ \-\-add \ ADD_PATHS
@ -66,7 +68,7 @@ times)
.BI \-c \ CMDLINE\fR,\fB \ \-\-cmdline \ CMDLINE .BI \-c \ CMDLINE\fR,\fB \ \-\-cmdline \ CMDLINE
Arguments to add to kernel cmdline Arguments to add to kernel cmdline
.TP .TP
.B \-\-debug .B \-\-debug
print debugging info print debugging info
.TP .TP
.BI \-V \ VOLID\fR,\fB \ \-\-volid \ VOLID .BI \-V \ VOLID\fR,\fB \ \-\-volid \ VOLID

View File

@ -3,8 +3,8 @@
%define debug_package %{nil} %define debug_package %{nil}
Name: lorax Name: lorax
Version: 34.9.14 Version: 36.9
Release: 3%{?dist} Release: 1%{?dist}
Summary: Tool for creating the anaconda install images Summary: Tool for creating the anaconda install images
License: GPLv2+ License: GPLv2+
@ -20,9 +20,6 @@ BuildRequires: make
BuildRequires: systemd-rpm-macros BuildRequires: systemd-rpm-macros
Requires: lorax-templates Requires: lorax-templates
%if 0%{?rhel} >= 9
Requires: lorax-templates-rhel
%endif
Requires: cpio Requires: cpio
Requires: device-mapper Requires: device-mapper
@ -54,7 +51,7 @@ Requires: python3-mako
Requires: python3-kickstart >= 3.19 Requires: python3-kickstart >= 3.19
Requires: python3-dnf >= 3.2.0 Requires: python3-dnf >= 3.2.0
Requires: python3-librepo Requires: python3-librepo
Requires: python3-pycdlib Requires: python3-pycdio
%if 0%{?fedora} %if 0%{?fedora}
# Fedora specific deps # Fedora specific deps
@ -100,24 +97,19 @@ Requires: lorax = %{version}-%{release}
%description docs %description docs
Includes the full html documentation for lorax, livemedia-creator, and the pylorax library. Includes the full html documentation for lorax, livemedia-creator, and the pylorax library.
# ppc64le does not include qemu-kvm, skip building lmc-virt
%ifnarch ppc64le
%package lmc-virt %package lmc-virt
Summary: livemedia-creator libvirt dependencies Summary: livemedia-creator libvirt dependencies
Requires: lorax = %{version}-%{release} Requires: lorax = %{version}-%{release}
Requires: qemu-kvm Requires: qemu
# Fedora edk2 builds currently only support these arches # Fedora edk2 builds currently only support these arches
%ifarch %{ix86} x86_64 %ifarch %{ix86} x86_64 %{arm} aarch64
Requires: edk2-ovmf Requires: edk2-ovmf
%endif %endif
%ifarch aarch64 Recommends: qemu-kvm
Requires: edk2-aarch64
%endif
%description lmc-virt %description lmc-virt
Additional dependencies required by livemedia-creator when using it with qemu. Additional dependencies required by livemedia-creator when using it with qemu.
%endif
%package lmc-novirt %package lmc-novirt
Summary: livemedia-creator no-virt dependencies Summary: livemedia-creator no-virt dependencies
@ -142,7 +134,7 @@ Lorax templates for creating the boot.iso and live isos are placed in
/usr/share/lorax/templates.d/99-generic /usr/share/lorax/templates.d/99-generic
%prep %prep
%autosetup -n %{name}-%{version} -p1 %setup -q -n %{name}-%{version}
%build %build
@ -169,14 +161,13 @@ make DESTDIR=$RPM_BUILD_ROOT mandir=%{_mandir} install
%{_mandir}/man1/lorax.1* %{_mandir}/man1/lorax.1*
%{_mandir}/man1/livemedia-creator.1* %{_mandir}/man1/livemedia-creator.1*
%{_mandir}/man1/mkksiso.1* %{_mandir}/man1/mkksiso.1*
%{_mandir}/man1/image-minimizer.1*
%{_tmpfilesdir}/lorax.conf %{_tmpfilesdir}/lorax.conf
%files docs %files docs
%doc docs/html/* %doc docs/html/*
%ifnarch ppc64le
%files lmc-virt %files lmc-virt
%endif
%files lmc-novirt %files lmc-novirt
@ -185,138 +176,146 @@ make DESTDIR=$RPM_BUILD_ROOT mandir=%{_mandir} install
%{_datadir}/lorax/templates.d/* %{_datadir}/lorax/templates.d/*
%changelog %changelog
* Thu Apr 21 2022 stepan_oksanichenko <soksanichenko@cloudlinux.com> - 34.9.14-3 * Mon Feb 28 2022 Brian C. Lane <bcl@redhat.com> 36.9-1
- ALBS-173: Patch pungi/lorax for building AL9 - Don't move the restart-anaconda file (vponcova@redhat.com)
* Tue Mar 22 2022 stepan_oksanichenko <soksanichenko@cloudlinux.com> - 34.9.14-2 * Wed Feb 16 2022 Brian C. Lane <bcl@redhat.com> 36.8-1
- ALBS-226: Patch pungi/lorax for building AL9 - runtime-cleanup: Remove ncurses package (bcl@redhat.com)
* Wed Feb 16 2022 Brian C. Lane <bcl@redhat.com> 34.9.14-1 * Mon Feb 14 2022 Brian C. Lane <bcl@redhat.com> 36.7-1
- Keep nvram module (bcl@redhat.com) - postinstall: Restore reproducible build timestamps on /usr/share/fonts (bcl@redhat.com)
Resolves: rhbz#2050877 - tests: Fix the image minimizer test dnf usage (bcl@redhat.com)
- runtime-cleanup: drop kernel drivers/iio (awilliam@redhat.com)
- runtime-cleanup: drop gallium-pipe drivers from mesa-dri-drivers (awilliam@redhat.com)
- runtime-cleanup: drop yelp's local MathJax library copy (awilliam@redhat.com)
- runtime-cleanup: drop eapol_test from wpa_supplicant (awilliam@redhat.com)
- runtime-cleanup: drop /usr/bin/cyrusbdb2current (awilliam@redhat.com)
- runtime-cleanup: drop systemd-analyze (awilliam@redhat.com)
- runtime-cleanup: drop mtools and glibc-gconv-extra (awilliam@redhat.com)
- runtime-cleanup: drop guile22's ccache (awilliam@redhat.com)
- runtime-cleanup: fix warnings from old or changed packages (awilliam@redhat.com)
- runtime-cleanup: drop Italic from google-noto-sans-vf-fonts (awilliam@redhat.com)
- runtime-install: drop some unnecessary font packages (awilliam@redhat.com)
* Fri Feb 04 2022 Brian C. Lane <bcl@redhat.com> 34.9.13-1 * Fri Feb 04 2022 Brian C. Lane <bcl@redhat.com> 36.6-1
- mkksiso: Fix check for unsupported arch error (bcl@redhat.com) - mkksiso: Fix check for unsupported arch error (bcl@redhat.com)
Related: rhbz#2049192
* Thu Feb 03 2022 Brian C. Lane <bcl@redhat.com> 34.9.12-1 * Thu Feb 03 2022 Brian C. Lane <bcl@redhat.com> 36.5-1
- mkksiso: Improve debug message about unsupported arch (bcl@redhat.com) - mkksiso: Improve debug message about unsupported arch (bcl@redhat.com)
Related: rhbz#2049192 - mkksiso: Fix the order of the ppc mkisofs command (bcl@redhat.com)
- mkksiso: mkfsiso argument order matters (bcl@redhat.com)
- mkksiso: Add kickstart to s390x cdboot.prm (bcl@redhat.com) - mkksiso: Add kickstart to s390x cdboot.prm (bcl@redhat.com)
Resolves: rhbz#2049192 - cleanup: handle RPM database move to /usr (awilliam@redhat.com)
- Install the variable font of the Cantarell font (akira@tagoh.org)
* Thu Jan 20 2022 Brian C. Lane <bcl@redhat.com> 34.9.11-1 - Update the template for f36 Change proposal:
https://fedoraproject.org/wiki/Changes/DefaultToNotoFonts (akira@tagoh.org)
- Update Malayalam font to its new renamed package name rit-meera-new-fonts (pnemade@fedoraproject.org)
- Enable sftp when using inst.sshd (bcl@redhat.com) - Enable sftp when using inst.sshd (bcl@redhat.com)
Resolves: rhbz#2040770 - Add inst.rngd cmdline option (bcl@redhat.com)
- Drop ia32 uefi package installation (bcl@redhat.com) - docs: Update docs for image-minimizer (bcl@redhat.com)
Resolves: rhbz#2039035 - tests: Add tests for image-minimizer (bcl@redhat.com)
- Remove 32-bit UEFI packages from example kickstart (bcl@redhat.com) - image-minimizer: Check for missing root directory (bcl@redhat.com)
Related: rhbz#2039035 - image-minimizer: Fix utf8 error and add docs (bcl@redhat.com)
* Thu Dec 09 2021 Brian C. Lane <bcl@redhat.com> 34.9.10-1 * Tue Dec 14 2021 Brian C. Lane <bcl@redhat.com> 36.4-1
- cleanup: remove binaries from lilv (awilliam@redhat.com)
- runtime-cleanup: remove pipewire-related packages (awilliam@redhat.com)
- New lorax documentation - 36.3 (bcl@redhat.com)
* Thu Dec 09 2021 Brian C. Lane <bcl@redhat.com> 36.3-1
- mkksiso: Check the length of the filenames (bcl@redhat.com) - mkksiso: Check the length of the filenames (bcl@redhat.com)
Related: rhbz#2028104
- mkksiso: Check the iso's arch against the host's (bcl@redhat.com) - mkksiso: Check the iso's arch against the host's (bcl@redhat.com)
Related: rhbz#2028104
- mkksiso: Add missing implantisomd5 tool requirements (bcl@redhat.com) - mkksiso: Add missing implantisomd5 tool requirements (bcl@redhat.com)
Related: rhbz#2028104
- mkksiso: Raise error if no volume id is found (bcl@redhat.com) - mkksiso: Raise error if no volume id is found (bcl@redhat.com)
Related: rhbz#2028104
- mount: Add s390x support to IsoMountopoint (bcl@redhat.com) - mount: Add s390x support to IsoMountopoint (bcl@redhat.com)
Resolves: rhbz#2028104
- mkksiso: Skip mkefiboot for non-UEFI isos (bcl@redhat.com) - mkksiso: Skip mkefiboot for non-UEFI isos (bcl@redhat.com)
- mkksiso: Add -joliet-long (bcl@redhat.com) - mkksiso: Add -joliet-long (bcl@redhat.com)
Related: rhbz#2028104
- mkksiso: Return 1 on errors (bcl@redhat.com) - mkksiso: Return 1 on errors (bcl@redhat.com)
Related: rhbz#2028104 - Fix monitor problem with split UTF8 characters (bcl@redhat.com)
* Wed Nov 03 2021 Brian C. Lane <bcl@redhat.com> 34.9.9-1 * Wed Nov 10 2021 Brian C. Lane <bcl@redhat.com> 36.2-1
- Change macboot default to false (bcl@redhat.com) - Remove memtest86+ from example kickstarts (bcl@redhat.com)
Resolves: rhbz#2019512 - fedora-livemedia: Update example kickstart (bcl@redhat.com)
- livemedia-creator: Change defaults to Red Hat Enterprise Linux 9 (bcl@redhat.com) - mount: Switch to using pycdio instead of pycdlib (bcl@redhat.com)
Resolves: rhbz#2019133 - Move default releasever into pylorax DEFAULT_RELEASEVER (bcl@redhat.com)
- runtime-postinstall: Drop raidstart/stop stub code (bcl@redhat.com)
- runtime-install: Fix grub2 epoch, it is 1 not 0 (bcl@redhat.com)
- Update runtime-install/cleanup for Marvell Prestera fw split (awilliam@redhat.com)
* Fri Oct 29 2021 Brian C. Lane <bcl@redhat.com> 34.9.8-1 * Thu Oct 28 2021 Brian C. Lane <bcl@redhat.com> 36.1-1
- livemedia.ks: Drop unneeded commands (bcl@redhat.com) - dnfbase: Handle defaults better (bcl@redhat.com)
Related: rhbz#2017993 - ltmpl: Add version compare support to installpkg (bcl@redhat.com)
- livemedia.ks: Install workstation-product-environment (bcl@redhat.com)
Resolves: rhbz#2017993
- templates: Change nomodeset / basic graphics to use inst.text (bcl@redhat.com)
Related: rhbz#1961092
- templates: Drop nomodeset / basic graphics menu from live configs (bcl@redhat.com)
Related: rhbz#1961092
- livemedia.ks: Add isomd5sum for use with rd.live.check (bcl@redhat.com)
Resolves: rhbz#2015908
* Wed Oct 06 2021 Brian C. Lane <bcl@redhat.com> 34.9.7-1 * Mon Oct 11 2021 Brian C. Lane <bcl@redhat.com> 36.0-1
- runtime-cleanup: Remove dropped package from template (bcl@redhat.com) - New lorax documentation - 36.0 (bcl@redhat.com)
Related: rhbz#1991006 - docs: Remove logging command from examples (bcl@redhat.com)
- sshd_config: Update sshd options (bcl@redhat.com) - runtime-install: exclude liquidio and netronome firmwares (awilliam@redhat.com)
Related: rhbz#2007288 - runtime-cleanup: drop Marvell Prestera firmware files (awilliam@redhat.com)
- Install nvme-cli tool (bcl@redhat.com) - runtime-cleanup: drop some Qualcomm smartphone firmwares (awilliam@redhat.com)
Related: rhbz#2010254
- When running the tests in docker/podman use the Fedora 34 image (bcl@redhat.com)
Related: rhbz#2010542
- Fix pylint warnings about string formatting (bcl@redhat.com) - Fix pylint warnings about string formatting (bcl@redhat.com)
Related: rhbz#2010542
- tests: Ignore new pylint warnings (bcl@redhat.com) - tests: Ignore new pylint warnings (bcl@redhat.com)
Resolves: rhbz#2010542 - Add fstrim to disk and filesystem image creation (bcl@redhat.com)
* Thu Sep 09 2021 Brian C. Lane <bcl@redhat.com> 34.9.6-1 * Tue Sep 07 2021 Brian C. Lane <bcl@redhat.com> 35.7-1
- github: Run tests for rhel9-branch PRs (bcl@redhat.com) - templates: Remove memtest86+ (bcl@redhat.com)
Related: rhbz#2000439
* Thu Jul 08 2021 Brian C. Lane <bcl@redhat.com> 35.6-1
- Install unicode.pf2 from new directory (bcl@redhat.com) - Install unicode.pf2 from new directory (bcl@redhat.com)
Resolves: rhbz#2000439 - Makefile: Use sudo to fix ownership of docs (bcl@redhat.com)
- Makefile: Make sure container is built before docs (bcl@redhat.com)
* Thu Jul 15 2021 Brian C. Lane <bcl@redhat.com> 34.9.5-1 - Makefile: Add local-srpm target to create a .src.rpm from HEAD (bcl@redhat.com)
- Add a context manager for dracut (bcl@redhat.com)
Resolves: rhbz#1982271
- spec: Fix bug number for dropping gfs2-utils (bcl@redhat.com)
Related: rhbz#1975378
* Mon Jun 28 2021 Brian C. Lane <bcl@redhat.com> 34.9.4-1
- mkksiso: cmdline should default to empty string (bcl@redhat.com) - mkksiso: cmdline should default to empty string (bcl@redhat.com)
Related: rhbz#1975844
- runtime-install: Remove gfs2-utils (bcl@redhat.com) - runtime-install: Remove gfs2-utils (bcl@redhat.com)
Related: rhbz#1975378 - mount.py: Fix docstring (jkucera@redhat.com)
* Thu Jun 10 2021 Brian C. Lane <bcl@redhat.com> 34.9.3-1 * Fri Jun 11 2021 Brian C. Lane <bcl@redhat.com> 35.5-1
- pylorax: Fix mksparse ftruncate size handling (bcl@redhat.com)
* Thu Jun 10 2021 Brian C. Lane <bcl@redhat.com> 35.4-1
- livemedia-creator: Check for mkfs.hfsplus (bcl@redhat.com) - livemedia-creator: Check for mkfs.hfsplus (bcl@redhat.com)
- Drop retired icfg (zbyszek@in.waw.pl)
* Tue May 25 2021 Brian C. Lane <bcl@redhat.com> 34.9.2-1 * Tue May 25 2021 Brian C. Lane <bcl@redhat.com> 35.3-1
- Add prefixdevname to Anaconda initramfs (rvykydal@redhat.com) - Add a context manager for dracut (bcl@redhat.com)
Related: rhbz#1958173 Resolves: rhbz#1962975
- Replace metacity with gnome-kiosk (bcl@redhat.com) - Remove unneeded aajohan-comfortaa-fonts (bcl@redhat.com)
Related: rhbz#1961099
- runtime-install: Install ipcalc (bcl@redhat.com)
Related: rhbz#1958173
- spec: Update lorax-lmc-virt packages for rhel9 arches (bcl@redhat.com)
Related: rhbz#1955674
* Wed May 05 2021 Brian C. Lane <bcl@redhat.com> - 34.9.1-2
- qemu-kvm isn't available on ppc64le
- edk2-aarch64 has the UEFI firmware on aarch64
Related: rhbz#1955674
* Wed May 05 2021 Brian C. Lane <bcl@redhat.com> 34.9.1-1 * Wed May 05 2021 Brian C. Lane <bcl@redhat.com> 35.2-1
- livemedia-creator: Use inst.ks on cmdline for virt (bcl@redhat.com)
- image-minimizer: Fix decode() usage (bcl@redhat.com)
- docs: Update example kickstarts for RHEL/CentOS (bcl@redhat.com)
- livemedia-creator: RHEL9 only supports qemu-kvm (bcl@redhat.com)
- runtime-cleanup: Use branding package name instead of product.name (bcl@redhat.com) - runtime-cleanup: Use branding package name instead of product.name (bcl@redhat.com)
- treebuilder: Add branding package to template variables (bcl@redhat.com) - treebuilder: Add branding package to template variables (bcl@redhat.com)
- runtime-cleanup: Remove mcpp and libmcpp cleanup (bcl@redhat.com) - livemedia-creator: Use inst.ks on cmdline for virt (bcl@redhat.com)
- spec: Fix changelog for 34.9.0 (bcl@redhat.com) - docs: Remove composer-cli.1 (bcl@redhat.com)
* Thu Apr 29 2021 Brian C. Lane <bcl@redhat.com> 34.9.0-1 * Mon Apr 26 2021 Brian C. Lane <bcl@redhat.com> 35.1-1
- New lorax documentation - 34.9.0 (bcl@redhat.com) - New lorax documentation - 35.1 (bcl@redhat.com)
Related: rhbz#1952978 - Makefile: Use podman as a user for testing and docs (bcl@redhat.com)
- composer-cli: Remove all traces of composer-cli (bcl@redhat.com) - composer-cli: Remove all traces of composer-cli (bcl@redhat.com)
Resolves: rhbz#1952978 - livemedia-creator: Add rhgb to live iso cmdline (#1943312) (bcl@redhat.com)
- tests: Fix pocketlint use of removed pylint messages (bcl@redhat.com)
- Disable X11 forwarding from installation environment. (vslavik@redhat.com)
- Remove display-related packages (vslavik@redhat.com)
- Drop trying to install reiserfs-utils (kevin@scrye.com)
- test: Fix URL to bots testmap (martin@piware.de)
- Change khmeros-base-fonts to khmer-os-system-fonts. (pnemade@fedoraproject.org)
- Fix output path in docs (vslavik@redhat.com)
- runtime-cleanup: don't wipe /usr/bin/report-cli (#1937550) (awilliam@redhat.com)
- xorg-x11-font-utils is now four packages, remove all of them (peter.hutterer@who-t.net)
- xorg-x11-server-utils was split up in Fedora 34, so adjust templates (kevin@scrye.com)
* Wed Mar 03 2021 Brian C. Lane <bcl@redhat.com> 35.0-1
- New lorax documentation - 35.0 (bcl@redhat.com)
- Makefile: Add test-in-podman and docs-in-podman build targets (bcl@redhat.com)
- isolinux.cfg: Rename the 'vesa' menu entry to 'basic' (bcl@redhat.com)
- composer-cli: Add support for start-ostree --url URL (bcl@redhat.com)
* Wed Mar 03 2021 Brian C. Lane <bcl@redhat.com>
- New lorax documentation - 35.0 (bcl@redhat.com)
- Makefile: Add test-in-podman and docs-in-podman build targets (bcl@redhat.com)
- isolinux.cfg: Rename the 'vesa' menu entry to 'basic' (bcl@redhat.com)
- composer-cli: Add support for start-ostree --url URL (bcl@redhat.com)
* Mon Feb 15 2021 Brian C. Lane <bcl@redhat.com> 34.9-1 * Mon Feb 15 2021 Brian C. Lane <bcl@redhat.com> 34.9-1
- Use inst.rescue to trigger rescue mode (awilliam@redhat.com) - Use inst.rescue to trigger rescue mode (awilliam@redhat.com)
Resolves: rhbz#1928318 Resolves: rhbz#1928318
* Mon Feb 08 2021 Brian C. Lane <bcl@redhat.com> 34.8-1 * Mon Feb 08 2021 Brian C. Lane <bcl@redhat.com> 34.8-1
- Use image dependencies metapackage (vslavik@redhat.com) - Use image dependencies metapackage (vslavik@redhat.com)
- tests: Include the fedora-updates repo when testing boot.iso building (bcl@redhat.com) - tests: Include the fedora-updates repo when testing boot.iso building (bcl@redhat.com)
@ -345,22 +344,6 @@ make DESTDIR=$RPM_BUILD_ROOT mandir=%{_mandir} install
- sshd_config: Apply suggested changes (bcl@redhat.com) - sshd_config: Apply suggested changes (bcl@redhat.com)
- lorax.spec: Add BuildRequires on systemd-rpm-macros for tmpfilesdir macro (bcl@redhat.com) - lorax.spec: Add BuildRequires on systemd-rpm-macros for tmpfilesdir macro (bcl@redhat.com)
* Wed Dec 02 2020 Brian C. Lane <bcl@redhat.com> 34.3-4
- lorax.spec: Update for RHEL 9 Alpha changes (bcl@redhat.com)
- lorax: Strip ' from product cmdline argument (bcl@redhat.com)
- Change rootfs default size to 3GiB (sgallagh@redhat.com)
* Thu Oct 29 2020 Brian C. Lane <bcl@redhat.com> - 34.3-4
- Drop unused proc/mount patch
- lorax: Strip ' from product cmdline argument
temporary fix for pungi bug: https://pagure.io/pungi/pull-request/1463
* Wed Oct 28 2020 Stephen Gallagher <sgallagh@redhat.com> - 34.3-3
- Increase boot.iso rootfs to 3GiB
* Tue Oct 27 2020 Brian C. Lane <bcl@redhat.com> - 34.3-2
- Require lorax-templates-rhel for RHEL9
* Wed Oct 07 2020 Brian C. Lane <bcl@redhat.com> 34.3-1 * Wed Oct 07 2020 Brian C. Lane <bcl@redhat.com> 34.3-1
- composer: Fix open file warnings (bcl@redhat.com) - composer: Fix open file warnings (bcl@redhat.com)
- ltmpl: Fix deprecated escape in docstring (bcl@redhat.com) - ltmpl: Fix deprecated escape in docstring (bcl@redhat.com)
@ -393,79 +376,3 @@ make DESTDIR=$RPM_BUILD_ROOT mandir=%{_mandir} install
- runtime-install: exclude gnome-firmware and sigrok-firmware (awilliam@redhat.com) - runtime-install: exclude gnome-firmware and sigrok-firmware (awilliam@redhat.com)
- runtime-cleanup: Drop video playback acceleration drivers (awilliam@redhat.com) - runtime-cleanup: Drop video playback acceleration drivers (awilliam@redhat.com)
- runtime-install: don't install notification-daemon (awilliam@redhat.com) - runtime-install: don't install notification-daemon (awilliam@redhat.com)
* Tue Sep 08 2020 Brian C. Lane <bcl@redhat.com> 33.9-1
- config_files: Update aarch64, ppc, and sparc timeouts to 60s (bcl@redhat.com)
- templates: Ensure nano is installed for the runtime environment (ngompa13@gmail.com)
- tests: Ignore W0707 raise-missing-from warnings (bcl@redhat.com)
- Switch VMware testing env to improve stability results (chrobert@redhat.com)
- tests: Allow skipping image build in compose sanity test (atodorov@redhat.com)
* Thu Jul 23 2020 Brian C. Lane <bcl@redhat.com> 33.8-1
- composer-cli: Make start-ostree parent and ref optional (bcl@redhat.com)
- composer-cli: Add a get_arg function (bcl@redhat.com)
- Set BACKEND=osbuild-composer if running that test scenario (atodorov@redhat.com)
- tests: Don't check info after compose cancel with osbuild-composer (atodorov@redhat.com)
- tests: Compare blueprints as TOML objects, not strings (atodorov@redhat.com)
- tests: Remove lorax-composer specific checks (atodorov@redhat.com)
- tests: Remove compose after we're done (atodorov@redhat.com)
- tests: don't use beakerlib in blueprint (lars@karlitski.net)
- tests: don't depend on internal state of composer (lars@karlitski.net)
- tests: Do not rely on example blueprints (atodorov@redhat.com)
- tests: Special case compose types for osbuild-composer (atodorov@redhat.com)
- tests: Don't check example blueprints if we don't have to (atodorov@redhat.com)
- tests: Use BACKEND env variable instead of hard-coded values (atodorov@redhat.com)
- tests: Disable non-cli test scenarios b/c osbuild-composer (atodorov@redhat.com)
* Mon Jul 20 2020 Brian C. Lane <bcl@redhat.com> 33.7-1
- Add log entry about dracut and /proc (bcl@redhat.com)
- Skip creating empty /proc/modules for dracut (bcl@redhat.com)
- lorax: Install fcoe-utils (vponcova@redhat.com)
- lorax: Enable swap on zram (vponcova@redhat.com)
- Fix EFI booting for ISOs generated by `mkksiso` (michel@michel-slm.name)
- tests: Disable cloud-init status check (atodorov@redhat.com)
* Thu Jun 18 2020 Brian C. Lane <bcl@redhat.com> 33.6-1
- lorax.spec: Add psmisc for fuser debugging of failed umounts in pylorax.imgutils (bcl@redhat.com)
- composer-cli: Disable retry counter on connection timeout (bcl@redhat.com)
- composer-cli: Change timeout to 5 minutes (bcl@redhat.com)
* Thu Jun 11 2020 Brian C. Lane <bcl@redhat.com> 33.5-1
- lorax-composer: Add deprecation notice to documentation (bcl@redhat.com)
- composer-cli: Return a better error with no value (bcl@redhat.com)
- tests: Add tests for composer-cli compose start JSON POST (bcl@redhat.com)
- composer-cli: Update bash completion for start-ostree (bcl@redhat.com)
- composer-cli: Add new start-ostree command (bcl@redhat.com)
- composer-cli: Add support for --size to compose start (bcl@redhat.com)
- include generic.ins for s390 boot iso (dan@danny.cz)
- test: Put VM image overlay into /var/tmp (martin@piware.de)
* Mon Jun 01 2020 Brian C. Lane <bcl@redhat.com> 33.4-1
- Revert "lorax: Remove vmlinuz from install.img /boot" (bcl@redhat.com)
- composer-cli: Add osbuild-composer to connection failure message (bcl@redhat.com)
- composer-cli: Update docs to mention osbuild-composer and debug options (bcl@redhat.com)
- lorax-composer: Check compose/status for invalid characters (bcl@redhat.com)
- lorax-composer: deleting an unknown workspace should return an error (bcl@redhat.com)
- lorax-composer: Check for valid characters in the undo commit (bcl@redhat.com)
- drop 32-bit support from ppc live image grub.cfg (dan@danny.cz)
- mksquashfs: Catch errors with mksquashfs and report them (bcl@redhat.com)
* Tue May 05 2020 Brian C. Lane <bcl@redhat.com> 33.3-1
- Don't use f-string without interpolation (atodorov@redhat.com)
- lmc-no-virt: Add requirement on anaconda-install-env-deps (bcl@redhat.com)
- rsyslog: Disable journal ratelimits during install (bcl@redhat.com)
* Tue Apr 28 2020 Brian C. Lane <bcl@redhat.com> 33.2-1
- New lorax documentation - 33.2 (bcl@redhat.com)
- test: Work around invalid fedora baseurls (marusak.matej@gmail.com)
- lorax: Add --skip-branding cmdline argument (bcl@redhat.com)
- Update datastore for VMware testing (chrobert@redhat.com)
* Mon Mar 30 2020 Brian C. Lane <bcl@redhat.com> 33.1-1
- lorax: Remove vmlinuz from install.img /boot (bcl@redhat.com)
* Fri Mar 20 2020 Brian C. Lane <bcl@redhat.com> 33.0-1
- tests: Add tests for _install_branding with and without variant (bcl@redhat.com)
- lorax: Update how the release package is chosen (bcl@redhat.com)
- ltmpl: Fix package logging format (bcl@redhat.com)
Resolves: rhbz#1815000

View File

@ -1 +1 @@
34.9.14-2 ./ 36.9-1 ./

View File

@ -35,8 +35,8 @@ menuentry 'Test this media & install @PRODUCT@ @VERSION@' --class red --class gn
initrd @INITRDPATH@ initrd @INITRDPATH@
} }
submenu 'Troubleshooting -->' { submenu 'Troubleshooting -->' {
menuentry 'Install @PRODUCT@ @VERSION@ in text mode' --class red --class gnu-linux --class gnu --class os { menuentry 'Install @PRODUCT@ @VERSION@ in basic graphics mode' --class red --class gnu-linux --class gnu --class os {
linux @KERNELPATH@ @ROOT@ inst.text linux @KERNELPATH@ @ROOT@ nomodeset
initrd @INITRDPATH@ initrd @INITRDPATH@
} }
menuentry 'Rescue a @PRODUCT@ system' --class red --class gnu-linux --class gnu --class os { menuentry 'Rescue a @PRODUCT@ system' --class red --class gnu-linux --class gnu --class os {

View File

@ -0,0 +1,11 @@
[Unit]
Description=Hardware RNG Entropy Gatherer Daemon
ConditionVirtualization=!container
ConditionKernelCommandLine=|inst.rngd
ConditionKernelCommandLine=!inst.rngd=0
# The "-f" option is required for the systemd service rngd to work with Type=simple
[Service]
Type=simple
EnvironmentFile=/etc/sysconfig/rngd
ExecStart=/usr/sbin/rngd -f $RNGD_ARGS

View File

@ -1,7 +1,5 @@
PermitRootLogin yes PermitRootLogin yes
X11Forwarding yes PrintMotd yes
X11DisplayOffset 10
PrintMotd no
SyslogFacility AUTHPRIV SyslogFacility AUTHPRIV
PasswordAuthentication yes PasswordAuthentication yes
PermitEmptyPasswords yes PermitEmptyPasswords yes

View File

@ -29,8 +29,8 @@ menuentry 'Test this media & install @PRODUCT@ @VERSION@' --class fedora --class
initrdefi @INITRDPATH@ initrdefi @INITRDPATH@
} }
submenu 'Troubleshooting -->' { submenu 'Troubleshooting -->' {
menuentry 'Install @PRODUCT@ @VERSION@ in text mode' --class fedora --class gnu-linux --class gnu --class os { menuentry 'Install @PRODUCT@ @VERSION@ in basic graphics mode' --class fedora --class gnu-linux --class gnu --class os {
linuxefi @KERNELPATH@ @ROOT@ inst.text quiet linuxefi @KERNELPATH@ @ROOT@ nomodeset quiet
initrdefi @INITRDPATH@ initrdefi @INITRDPATH@
} }
menuentry 'Rescue a @PRODUCT@ system' --class fedora --class gnu-linux --class gnu --class os { menuentry 'Rescue a @PRODUCT@ system' --class fedora --class gnu-linux --class gnu --class os {

View File

@ -73,17 +73,17 @@ menu separator # insert an empty line
# utilities submenu # utilities submenu
menu begin ^Troubleshooting menu begin ^Troubleshooting
menu title Troubleshooting menu title Troubleshooting @PRODUCT@ @VERSION@
label text label basic
menu indent count 5 menu indent count 5
menu label Install @PRODUCT@ @VERSION@ using ^text mode menu label Install using ^basic graphics mode
text help text help
Try this option out if you're having trouble installing Try this option out if you're having trouble installing
@PRODUCT@ @VERSION@. @PRODUCT@ @VERSION@.
endtext endtext
kernel vmlinuz kernel vmlinuz
append initrd=initrd.img @ROOT@ inst.text quiet append initrd=initrd.img @ROOT@ nomodeset quiet
label rescue label rescue
menu indent count 5 menu indent count 5
@ -95,15 +95,6 @@ label rescue
kernel vmlinuz kernel vmlinuz
append initrd=initrd.img @ROOT@ inst.rescue quiet append initrd=initrd.img @ROOT@ inst.rescue quiet
label memtest
menu label Run a ^memory test
text help
If your system is having issues, a problem with your
system's memory may be the cause. Use this utility to
see if the memory is working correctly.
endtext
kernel memtest
menu separator # insert an empty line menu separator # insert an empty line
label local label local

Some files were not shown because too many files have changed in this diff Show More