Commit Graph

534 Commits

Author SHA1 Message Date
Brian C. Lane
d04a99e8f4 livemedia-creator: Add support for making tarfiles
This adds the --make-tar option which will produce a xz compressed tar
of the root filesystem. This works with either virt-install or no-virt
modes. Use --image-name to set the output filename.

--compression is used to set the compression type to use, which defaults
to xz. Supported types are xz, lzma, gzip and bzip2.

--compress-arg is used to pass arguments to the compression utility.
2014-04-07 10:58:32 -07:00
Mark Hamzy
cc2f98bfc5 support ppc64le in lorax
Add support for the ppc64le architecture in lorax.

Signed-off-by: Brian C. Lane <bcl@redhat.com>
2014-03-27 10:06:41 -07:00
Brian C. Lane
07d5cb176d Add support for creating qcow2 images 2014-03-13 09:10:24 -07:00
Brian C. Lane
c95cb07bc3 utf-8 encode yum actions before displaying them (#1072362)
Otherwise running lorax in other locales will crash.

Resolves: rhbz#1072362
2014-03-05 07:40:14 -08:00
Brian C. Lane
d89f01af21 Check initrd size on ppc64 and warn (#1060691)
ppc64 initrd cannot be larger than 32MiB, so log a warning if it is too
large.

Related: rhbz#1060691
2014-02-13 13:20:16 -08:00
Brian C. Lane
03217e4eee Remove drivers and modules on ppc64 (#1060691)
Remove more drivers and remove plymouth and drm dracut modules. Only on
PPC64 initrd, all other arches have the full set of drivers and modules.

Resolves: rhbz#1060691
2014-02-13 13:20:16 -08:00
Brian C. Lane
9c1372564c Remove floppy and scsi_debug from initrd (#1060691)
ppc64 can't PXE boot a initrd that is > 32M. This removes 2 drivers from
initrd creation to reduce the size.

Resolves: rhbz#1060691
2014-02-05 12:46:41 -08:00
Brian C. Lane
1f8aa84c5f flush data to disk after mkfsimage (#1052175)
Make sure the data is written before we do anything else with the disk
image. This shouldn't be needed, umount should take care of it, but it
also can't hurt.

Resolves: rhbz#1052175
2014-01-17 09:56:56 -08:00
d.marlin
f0d1c76ea4 Add initial 64-bit ARM (aarch64) support (#1034432)
Signed-off-by: Brian C. Lane <bcl@redhat.com>

Resolves: rhbz#1034432
2013-12-17 10:07:32 -08:00
Brian C. Lane
9e979f760b lorax: pass size from Lorax.run to create_runtime (#903385)
This allows Lorax class users to specify the image size when calling
run()
2013-11-19 10:23:12 -08:00
Vratislav Podzimek
1d7eb09a53 Run compressions in multiple threads
This speeds up compression a lot on multicore systems.
2013-11-14 08:46:01 +01:00
Dennis Gilmore
8d84e9d25a ARM: Don't install or deal with in templates, no longer existing kernels
remove no longer used kernel variants from templates
dont try to install no longer existing kernel-tegra variant
2013-10-16 18:06:20 -05:00
Dennis Gilmore
7d3fafedf3 kernel changed seperator for flavours from . to + update regular expression 2013-10-16 18:05:56 -05:00
Brian C. Lane
abf27add37 Bump image size up to 2G (#967556) 2013-05-28 16:29:48 -07:00
Dennis Gilmore
d751ac82db remove no longer supported arm kernel variants add the new lpae one 2013-04-17 16:21:23 -07:00
Mark Hamzy
52070f045c fix version query and add one to the log file
Fix "lorax -V" and add a "version is ???" to the log file so we can easily know
what version of lorax is used to build an iso.
Changed to try/import for versioning because the version file is autogenerated.
2013-04-03 15:43:09 -07:00
Will Woods
26c77b4fba Print & log messages on scriptlet/transaction errors
We should probably let the user know if something goes wrong with the
transaction or if a scriptlet fails. So: log the messages so we can find
(and, one hopes, fix) them later.
2013-03-19 15:03:49 -07:00
Will Woods
3a1e176cbb sysutils: add -x to cp in linktree
Since you can't make cross-device links, you'd think that cp -l (make
links) would imply -x (don't cross devices).

You'd be wrong.
2013-03-19 00:47:58 -04:00
Will Woods
ad3d1e6278 treebuilder: fix "Can't stat exclude path "/selinux"..." message
/selinux has been gone for *years*. Drop the exclude.
2013-03-19 00:47:58 -04:00
Brian C. Lane
93c4a8b830 Raise an error when there are no initrds 2013-03-12 15:39:25 -07:00
Dennis Gilmore
a4cf3c3c7c remove sparc support
Signed-off-by: Dennis Gilmore <dennis@ausil.us>
2013-03-04 14:18:45 +01:00
Brian C. Lane
bcdd43997b Remove some env variables (#907692)
Some package scripts may call utilities using dbus. Since this is just a
chroot that will fail. This unsets DESKTOP and DBUS_SESSION_BUS_ADDRESS
to keep them from crashing.
2013-02-15 05:47:11 -08:00
Brian C. Lane
d2ae92b4b3 yum changed the callback info
It used to give us (x/y) packagename, but now it only sends package
name. This was changed in yum commit 7e8c76173. For now default to
showing the zeros along with the package name so that it doesn't look
like an error.
2013-01-31 10:06:14 -08:00
Martin Gracik
62920272c7 Fix rexists 2012-12-19 12:39:39 +01:00
Martin Gracik
a0791d3074 Only run installupgradeinitrd if upgrade 2012-12-18 14:31:45 +01:00
Martin Gracik
263618e12a Add --noupgrade option 2012-12-18 12:04:03 +01:00
Brian C. Lane
665ee8be7e imgutils: use -s for kpartx, wait for device creation
kpartx can return before the devices are created. Use -s to wait.
Also remove -p p and let kpartx handle adding pX if needed, we use
whatever it outputs so there is no need to force a name.
2012-12-14 13:56:36 -08:00
Dennis Gilmore
78e3d0f115 add installupgradeinitrd function and use it to install the upgrade initrds 2012-11-30 13:28:38 -06:00
Will Woods
ff42fbd57e Add the 'fedup' plymouth theme if available 2012-11-30 13:28:38 -06:00
Will Woods
b5eb38ae97 build fedup upgrade.img
Use rebuild_initrds() with prefix='upgrade' to build upgrade.img with
the fedup "system-upgrade" module(s) inside.
2012-11-30 13:28:38 -06:00
Will Woods
1c91eab12b treebuilder: improve findkernels() initrd search
This makes findkernels() look for any image named something like:

  $PREFIX-$KERNELVER.img

and adds a corresponding entry to its returned data like:

  kernel.$PREFIX.path = [path]

As a special backwards-compatibility case we use 'initrd' for the
attribute name if $PREFIX is 'initramfs'.

This gives us any extra initramfs images that may have been built using
the 'prefix' argument to rebuild_initrds().
2012-11-30 13:28:38 -06:00
Will Woods
5b48574d5e treebuilder: add 'prefix' to rebuild_initrds()
If 'prefix' is passed to rebuild_initrds(), it will build a *new*
initramfs with a name like $PREFIX-$KERNELVER.img, rather than
overwriting the existing initramfs.
2012-11-30 13:28:38 -06:00
Martin Gracik
91afe5883f Set permissions on the initrd (#863018)
Dracut now makes the initrd with 600 permissions
for security reasons. These reasons do not apply
to install images, and we want the other tools
that use lorax to be able to read the initrd file.
2012-10-11 10:24:11 +02:00
Brian C. Lane
2b8075af3a use /var/tmp instead of /tmp
Also add a --tmp option so users can specify a top level tmp dir.
2012-10-02 11:35:16 -07:00
Brian C. Lane
a83c8c1df0 remove rv from unmount error log
You obviously cannot reference it when it hasn't been set.
2012-09-21 09:19:09 -07:00
Martin Gracik
fb69670ea8 There's no lang-table in anaconda anymore (#857925) 2012-09-17 11:41:39 -07:00
Brian C. Lane
43bd549480 add convienience functions for running commands
Adds runcmd() and runcmd_output() which set raise_err=True
2012-09-17 11:26:53 -07:00
Brian C. Lane
12ad7d0d99 restore CalledProcessError handling
When I switched execution over to execWith* functions I failed to
account for the use of CalledProcessError in various places. This
patch restores that behavior. All places that used check_call or
check_output now pass raise_err=True to the execWith* call.
2012-09-17 11:26:50 -07:00
Brian C. Lane
381c4276ba add CalledProcessError to execWith* functions
This adds a raise_err argument that when set to True will raise a
CalledProcessError if the process's returncode is not 0
2012-09-17 11:26:41 -07:00
Brian C. Lane
340349b763 imgutils: fix umount retry handling
When umount fails it doesn't throw an error, so retry when the rv is
non-zero instead.
2012-08-21 07:12:23 -07:00
Brian C. Lane
134eec24d5 clean up command execution
Switch to using execWith* so that the command and its output can be
logged. To capture the output setup a logger named "program"

livemedia-creator captures all of this into program.log
2012-07-30 09:22:10 -07:00
d.marlin
f170b6dc49 Add 'mvebu' to list of recognized ARM kernels.
Signed-off-by: David A. Marlin <dmarlin@redhat.com>
2012-07-25 12:43:23 +02:00
Will Woods
90ab7bfcfd Actually add plymouth to the initramfs
One more piece to get plymouth in place - we have to stop omitting it
from the initramfs so it's available at boot.
2012-07-06 00:19:48 -04:00
Will Woods
8e71bb045a don't use --prefix with dracut anymore
systemd in F18 doesn't work with --prefix anymore, so drop it.

(patch from haraldh - thanks Harald!)
2012-07-06 00:19:48 -04:00
Martin Gracik
30cb18a9ec Add initial support for ARM based systems (dmarlin) 2012-06-21 09:33:53 +02:00
Will Woods
3a75b2e07d add 'systemctl' command and use it in postinstall
The 'systemctl' command can be used to enable, disable, or mask systemd
units inside the runtime being modified. Modify runtime-postinstall.tmpl
to use the 'systemctl' command.

We also no longer remove quota*.service or kexec*.service, since
these aren't enabled by default. And systemd-remount-api-vfs.service
should work correctly now, so we can leave it alone as well.
2012-06-19 20:00:00 -04:00
Will Woods
3fda56b499 Add some documentation to LoraxTemplateRunner 2012-06-19 19:59:59 -04:00
Will Woods
daacb4465d fix '-runcmd' and improve logging
The '-cmd' functionality depends on the individual lorax template
commands raising errors, so they shouldn't do sys.exit().

Also, capture stderr along with stdout, and put both in the log.
2012-06-19 19:59:59 -04:00
Will Woods
1c2c8ec4a8 pylorax.imgutils: add retry loop and "lazy" to umount()
There's something strange going on where unmounting a hfsplus volume
immediately after mounting it will fail with EBUSY.

This makes the umount fail, which makes the rmdir fail, which causes a
traceback, which breaks mkefiboot --apple.

It works fine if you wait a second and retry.. so do that.

Also, add the "lazy" argument so you can do lazy unmounts if you like.
2012-06-19 19:59:59 -04:00
Will Woods
2aae30e691 pylorax.imgutils: add debug logging
Add some useful debug logging info to various functions in
pylorax.imgutils.
2012-06-19 19:59:59 -04:00
Will Woods
329432b58e pylorax: set up logging as recommended by logging module
Generally it's not a good idea for python libraries to set up loggers in
the body of the library.

Set up a NullHandler by default (as the logging module suggests), and
add a function to do the current logging setup during run().
2012-06-19 19:59:59 -04:00
Brian C. Lane
c143d5b72d Add pollcdrom module to dracut
From Harald Hoyer <harald@redhat.com>:

pollcdrom is used to poll for the install medium. A lot of CDROM drives
are not polled by the kernel correctly, so we have to actively poll for
the medium.
2012-06-11 10:31:57 -07:00
Martin Gracik
0123377d9b Check if selinux is enabled before getting the mode 2012-06-06 10:48:29 +02:00
Martin Gracik
2e907c072c Comment on why selinux needs to be in permissive or disabled 2012-06-04 16:14:38 +02:00
Martin Gracik
cbe001638e Verify the yum transaction
Check if all packages that were supposed to be installed,
ended up installed.
2012-06-04 16:14:38 +02:00
Martin Gracik
7446d0d1e2 Add a --required switch to installpkg
Some packages are critical to the compose. If --required
is specified in the template's installpkg command, lorax
will exit if the package is not available.
2012-06-04 16:14:38 +02:00
Martin Gracik
3ed82f3eb0 Fix the rpm call 2012-06-01 08:58:34 +02:00
Martin Gracik
bad0b469a5 Use selinux python module to get enforcing mode
No need to call getenforce via subprocess.
2012-06-01 08:42:13 +02:00
Martin Gracik
141a25801c Check if selinux is not in Enforcing mode (#824835)
Selinux causes problems for rpm scriptlets in the installroot.
2012-05-29 12:59:46 +02:00
Martin Gracik
a9e5630322 Remove hfsplus-tools dependency (#818913)
Mac boot images are optional. Don't require hfsplus-tools
by default, but warn the user that he needs to install them
if he wants to create mac boot images.
2012-05-29 12:59:46 +02:00
Dennis Gilmore
066b0d3780 add name field to .treeinfo its a concatination of family and version 2012-05-25 08:53:57 +02:00
Martin Gracik
910c54e394 Install proper branding packages from repo (#813969)
The product string is not the best source for package names.
2012-05-25 08:48:14 +02:00
Martin Gracik
6f3d8b55f3 Add --nomacboot option
Needed for systems without hfsplus support.
2012-05-25 08:47:52 +02:00
Brian C. Lane
eb82d0dccf livemedia-creator: cleanup after a crash
Make sure we don't leave any device-mapper or loop devices laying around
after a crash.
2012-05-14 15:08:59 -07:00
Will Woods
467847e095 reduce image size from 2GB to 1GB
It's a sparse file, so this really just changes the size of the
squashfs.img by about 100kb. But hey - 100kb!
2012-04-24 14:47:42 -04:00
Matthew Garrett
0ec326eb3c mkefiboot: Copy Mac bootloader, rather than linking it
The Mac firmware needs special-casing for hardlinked bootloaders, and
it's kind of awkward to handle that in python. Just copy them for now
instead.
2012-04-13 12:54:41 -07:00
Martin Gracik
366cd617b2 Remove workdir if it was created by lorax (#807964) 2012-04-13 10:44:15 +02:00
Martin Gracik
b61927badc Log all removed files
This makes finding what glob removed some file easier.
2012-04-12 08:28:58 -07:00
Will Woods
562be7eaec remove anaconda-copy-ks.sh
anaconda-copy-ks.sh is included in the 'anaconda' dracut module, so we
don't need to install it here anymore.
2012-03-30 13:22:48 -07:00
Will Woods
2d9a56a9ec add anaconda dracut module
Install the anaconda dracut module during 'install', use it when
rebuilding initramfs, and clean it up afterward.

Also install '.buildstamp' into the initramfs (the anconda module wants
it).
2012-03-30 13:22:48 -07:00
Martin Gracik
d81ef79ffd Log the output of mkfs (#769928) 2012-03-30 13:22:48 -07:00
Martin Gracik
524dfa28db Check if the volume id is not longer than 32 chars (#786832)
This is a requirement of mkisofs.
Try to check it as soon as possible.
2012-02-28 12:50:34 +01:00
Martin Gracik
20fa29b32b Add option to specify volume id on command line (#786834) 2012-02-28 12:50:34 +01:00
Martin Gracik
84c56294bf Change the locale to C (#786833) 2012-02-28 12:50:34 +01:00
Will Woods
dcc6a41a31 use --prefix=/run/initramfs when building initramfs
Having the initramfs at /run/initramfs means that it will be retained at
/run/initramfs once we switch to the root image. We want that.
2012-02-20 14:16:52 -08:00
Brian C. Lane
ac6512a531 Fix missing CalledProcessError import 2012-02-17 08:32:00 -08:00
Martin Gracik
d26c41fee6 Add runtime basename variable to the template
Related: rhbz#782108
2012-02-09 16:27:51 +01:00
Dan Horák
17179f2120 use internal implementation of the addrsize utility
Anaconda dropped the addrsize utility in F-16, so we need to implement
it directly in lorax.
2012-02-09 14:08:56 +01:00
Brian C. Lane
a09806f607 Add dracut convertfs module (#787893)
Fedora 17 changes top level directories like /bin, /lib, etc. to
symlinks to the corresponding dirs in /usr/

dracut can convert old systems to the new layout using its convertfs
module.
2012-02-08 14:55:40 -08:00
Tim Flink
504cc236b1 changing hfs to hfsplus so that the correct mkfs binary is called 2012-02-07 17:27:27 -05:00
Brian C. Lane
2af864c438 lorax: copy kickstarts into sysroot (#743135)
The installer no longer has access to the initrd's root. We need to
copy any needed files over to /sysroot before switching root. This
copies *.cfg and *.ks files.

It also adds the ability to add dracut hook scripts to the initramfs
from /usr/share/lorax/dracut_hooks/

This re-adds commit af6d4e2c50 which was
lost during the switch to the treebuilder branch.
2012-01-25 21:59:48 -08:00
Martin Gracik
681f67f954 Log output of failed command
If we run a command from template with runcmd,
log it's output if it exits with non-zero return code.
2012-01-19 18:13:03 +01:00
Martin Gracik
1bbc546147 Allow specifying buildarch on the command line (#771382)
Some repos may contain anaconda packages for more architectures,
so it's not possible to get the right buildarch.
This patch allows optional specifying of the buildarch on the
command line when running lorax.
If the buildarch is not specified manually, lorax tries to get
it from the anaconda package as before.
If there's no anaconda package in the repository, don't fallback
to the system architecture and continue, because this is pointless.
We need the anaconda package.
2012-01-10 09:34:01 +01:00
Will Woods
5e411b09c0 consider %ghost files part of the filelists in templates
When considering a package's filelist (e.g. for things like removefrom
--allbut), we might need to also include the %ghost files, so make
_filelist() add them to its returned list.
2012-01-05 16:15:54 -05:00
root
dc815d10fb better debug, handle relative output paths 2012-01-03 16:32:50 -08:00
Brian C. Lane
7d1b7b4cc8 Allow a None to be passed as size to create_runtime
This is so that imgutils.mkext4img can dynamically calculate the size of
the image.
2011-12-20 14:59:57 -08:00
Brian C. Lane
035d49628c Add execWith utils from anaconda
The anaconda execWithRedirect and execWithCapture functions are too
useful not to include. They also allow you to log all the execuatable's
output to a logfile. Added them under executils.py module which uses
the pylorax and a new program logger.
2011-12-20 14:59:57 -08:00
Brian C. Lane
d6280b9cf0 Changes needed for livecd creation
Allow passing of size to create_runtime, add PartitionMount context
to use kpartx to mount partitioned file images. Add resetting the
selinux context on the newly created rootfs.
2011-12-20 14:59:57 -08:00
Brian C. Lane
c089b479f1 dracut has moved to /usr/bin 2011-12-20 15:01:52 -05:00
Will Woods
c8f06bd8ff ltmpl: be more careful about checking command names 2011-11-04 13:41:10 -04:00
Will Woods
bcc6f91f73 imgutils: reduce default overhead to 128 blocks
generally we don't need ~4MB extra space.
2011-11-01 15:58:09 -04:00
Will Woods
dfa7742a6d default to fatalerrors=True in LoraxTemplateRunner
This means that any (non-ignored) command error will cause lorax to
exit.

Do note, however, that some commands (e.g. remove, installpkg) don't
raise exceptions and therefore will not cause lorax to exit.
2011-10-26 13:09:50 -04:00
Will Woods
0e64f08ff8 Add '-cmd' syntax to ignore errors, drop copyif/moveif
Makefile-style "-cmd" syntax lets us run a command and ignore any
resulting errors. This is a more general version of what copyif/moveif
were trying to accomplish, so we can drop those commands.
2011-10-26 13:08:39 -04:00
Will Woods
305476eefe add comment about symlink root-escape problem 2011-10-25 16:19:23 -04:00
Will Woods
cd1225c5fb minor comment cleanups 2011-10-24 16:27:36 -04:00
Martin Gracik
73fc20b165 Write the lorax verion in the .buildstamp (#689697)
(cherry picked from commit 4271e0fc02)

Conflicts:
	src/pylorax/buildstamp.py

Signed-off-by: Will Woods <wwoods@redhat.com>
2011-10-24 16:07:25 -04:00
Will Woods
55b4b06268 treebuilder cleanup: remove hack for Fedora <= 15 2011-10-12 20:24:21 -04:00
Will Woods
f640a2faab Use a predictable ISO Volume Label (#732298)
New images find their root device by looking at the CDLABEL. Since pungi
is building ISO images separately from lorax, if it uses a different ISO
Volume Label we'll end up with unbootable images.

This changes the volume labels to match what pungi uses, so both should
boot OK.
2011-10-12 20:21:06 -04:00
Will Woods
b7269da23a Fix is_beta -> isfinal and add [Compose] to .buildstamp 2011-09-21 23:46:48 -04:00
Will Woods
262a05e539 ltmpl: continue loop if installpkg can't find something
Otherwise, something like:
  installpkg missing-thingy kernel kernel-firmware
will leave you without a kernel.
2011-09-15 19:27:31 -04:00