Commit Graph

1081 Commits

Author SHA1 Message Date
soksanichenko e1e10b4fb0 ALBS-226: Patch pungi/lorax for building AL9
- Lorax fails if a mounted on tmpfs image is busy
  (should use python function umount instead Linux utility umount directly)
2022-03-18 23:17:33 +02:00
Brian C. Lane 66ce35d9b8 mkksiso: Fix check for unsupported arch error
An unsupported arch isn't an error, just skip running MdCdbootImg on
non-s390x systems.

Related: rhbz#2049192
2022-02-04 09:31:42 -08:00
Brian C. Lane 4634d16117 mkksiso: Improve debug message about unsupported arch
Related: rhbz#2049192
2022-02-03 16:32:47 -08:00
Brian C. Lane a9327d9f32 mkksiso: Add kickstart to s390x cdboot.prm
And regenerate the cdboot.img

Resolves: rhbz#2049192
2022-02-03 16:32:35 -08:00
Brian C. Lane ba872b915f 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#2028104
2021-12-09 09:38:06 -08:00
Brian C. Lane 1644a5db11 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#2028104
2021-12-09 09:38:06 -08:00
Brian C. Lane fc5efafe18 mkksiso: Add missing implantisomd5 tool requirements
Related: rhbz#2028104
2021-12-07 15:23:40 -08:00
Brian C. Lane deffaeea86 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#2028104
2021-12-07 15:23:33 -08:00
Brian C. Lane 7b93703568 mount: Add s390x support to IsoMountopoint
kernel and initrd are under images/ on the iso.

Resolves: rhbz#2028104
2021-12-07 15:23:21 -08:00
Brian C. Lane c5325eb010 mkksiso: Skip mkefiboot for non-UEFI isos
Related: rhbz#2028104
2021-12-07 15:23:09 -08:00
Brian C. Lane 0fa98f76ff mkksiso: Add -joliet-long
DVD's or user content may use filenames > 64 characters. This increases
the limit to 103.

Related: rhbz#2028104
2021-12-07 15:22:54 -08:00
Brian C. Lane 0ca53768e0 mkksiso: Return 1 on errors
Related: rhbz#2028104
2021-12-07 15:22:43 -08:00
Brian C. Lane d2beffc589 Change macboot default to false
With this change users no longer need to pass --nomacboot.

Resolves: rhbz#2019512
2021-11-02 13:45:01 -07:00
Brian C. Lane f320b3c8f4 livemedia-creator: Change defaults to Red Hat Enterprise Linux 9
This changes the releasever and project defaults to RHEL 9 values.

Resolves: rhbz#2019133
2021-11-02 11:22:02 -07:00
Brian C. Lane 3c9131bb35 Fix pylint warnings about string formatting
and one about unused exception value.

(cherry picked from commit f783ff77d4)

Related: rhbz#2010542
2021-10-05 10:41:07 -07:00
Brian C. Lane 0485ef22f2 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()

(cherry picked from commit 322a810403)

Resolves: rhbz#1982271
2021-07-14 11:40:00 -07:00
Brian C. Lane d70f0629f9 mkksiso: cmdline should default to empty string
Related: rhbz#1975844
2021-06-25 13:15:15 -07:00
Brian C. Lane 5fa949a423 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 11:13:48 -07:00
Radek Vykydal 17f4a79207 Add prefixdevname to Anaconda initramfs
Related: rhbz#1958173
2021-05-24 08:21:54 -07:00
Brian C. Lane 65cb81e7de livemedia-creator: Use inst.ks on cmdline for virt
Related: rhbz#1955674
2021-05-05 11:26:09 -07:00
Brian C. Lane 17cb4f879f image-minimizer: Fix decode() usage
Related: rhbz#1955674
2021-05-05 11:26:09 -07:00
Brian C. Lane b240c9bf1a livemedia-creator: RHEL9 only supports qemu-kvm
Return an error if --arch is passed, and drop the mapping to
qemu-system-<arch> from installer.py and replace it with
/usr/libexec/qemu-kvm

Resolves: rhbz#1955674
2021-05-05 11:26:09 -07:00
Brian C. Lane 980e628835 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:19:09 -07:00
Brian C. Lane d16e2579d5 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.

(cherry picked from commit b75b692607)

Resolves: rhbz#1952978
2021-04-29 11:13:51 -07:00
Brian C. Lane e1caa5624e Remove LD_PRELOAD libgomp.so.1 from lmc --no-virt
The libgomp bug rhbz#1722181 has been closed since August.

(cherry picked from commit b0318efead)
2021-02-08 11:00:23 -08:00
Brian C. Lane 929d2585eb 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
(cherry picked from commit a33efe7c51)
2021-02-08 11:00:23 -08:00
Brian C. Lane e6a2cc605c 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.

(cherry picked from commit 6400515880)
2021-02-08 11:00:23 -08:00
Vojtech Trefny d8c125fec2 Do not use '--loglevel' option when running Anaconda
This option has been removed, see https://github.com/rhinstaller/anaconda/pull/2864
2020-12-02 11:36:30 -08:00
Brian C. Lane eff7ab4009 Update the default release version to 34 2020-12-02 11:33:14 -08:00
Brian C. Lane 67d16ebc32 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-12-02 11:33:14 -08:00
Brian C. Lane 4d14c4bed0 lorax: Strip ' from product cmdline argument
Temporary work around pungi issue:
https://pagure.io/pungi/pull-request/1463
2020-12-02 11:11:12 -08:00
Stephen Gallagher c14e6b627c Change rootfs default size to 3GiB
Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
2020-12-02 11:11:02 -08:00
Brian C. Lane 46ab9e55f5 composer: Fix open file warnings 2020-10-07 10:51:41 -07:00
Brian C. Lane abbd86a2f6 ltmpl: Fix deprecated escape in docstring 2020-10-07 10:51:41 -07:00
Brian C. Lane c3c3605b70 Cleanup imgutil open files and processes
Because of the way that compress pipes things between processes it would
leave open file descriptors, and running processes around for a bit.
This waits for them to exit and closes the fds before returning.
2020-10-07 10:51:41 -07:00
Brian C. Lane 9d6211f1b3 Fix unclosed files
Python will eventually close open files, but it is recommended to
explicitly close them instead of waiting for the gc or program exit.

This fixes all the uses of open...read/write in the codebase, mostly in
tests.
2020-10-07 10:51:41 -07:00
Brian C. Lane e3e8ff884b doc: Add Blueprint documentation and example to composer-cli.rst 2020-10-01 15:06:14 -07:00
Brian C. Lane 7616a10373 Remove lorax-composer, it has been replaced by osbuild-composer
Remove the code, related files, and tests.
2020-09-30 15:42:46 -07:00
Brian C. Lane b7e69596e3 composer-cli: Make start-ostree parent and ref optional
This changes the start-ostree command to:

compose start-ostree [--size XXXX] [--parent PARENT] [--ref REF] <BLUEPRINT> <TYPE> [<IMAGE-NAME> <PROFILE.TOML>]

Both of them are optional, and if missing a "" is passed to
osbuild-composer. Also adds more tests for all the various possible
options and removes the provider and profile arguments.
2020-07-23 10:35:10 -07:00
Brian C. Lane d830829929 composer-cli: Add a get_arg function
This is in preperation for adding more optional arguments. Adds a
generic get_arg function, tests for it, and converts get_size to use it.
2020-07-23 10:35:10 -07:00
Brian C. Lane be2c9333fc Add log entry about dracut and /proc 2020-07-17 09:38:13 -07:00
Brian C. Lane 68c26bf87b Skip creating empty /proc/modules for dracut
Creating /proc/modules just quiets one dracut warning, it doesn't
actually effect the initrd that is created.

Now that mock is being run with netsharedpath set to exclude /proc is
causes problems for running lorax inside a mock, so just remove this to
prevent a crash when it doesn't exist.

Related: rhbz#1848201
2020-07-17 09:38:13 -07:00
Michel Alexandre Salim 0b9841d5f7 Fix EFI booting for ISOs generated by `mkksiso`
If the original ISO contains both `efiboot.img` and `macboot.img`,
the current `xorrisofs` invocation does not configure `efiboot.img`
to be bootable, only `macboot.img`.

This fix uses `>=` to compare `efimode` against `EFIBOOT`, since
`MACBOOT` implies `EFIBOOT` as well.

This is similar to the logic for `mkisofs`.

Fixes #1046.

Generated image confirmed to work, when comparing the reports:

  `xorriso -indev $PATH_TO_ISO -report_el_torito cmd`

```
❯ diff -u ~/xorriso-report-{orig,new}.log
--- /home/michel/xorriso-report-orig.log        2020-07-15 20:01:01.405289018 -0700
+++ /home/michel/xorriso-report-new.log 2020-07-15 20:01:19.183555423 -0700
@@ -1,6 +1,6 @@
--volid 'Fedora-S-dvd-x86_64-32'
--volume_date uuid '2020042219432600'
--boot_image isolinux system_area=--interval:imported_iso:0s-15s:zero_mbrpt,zero_gpt:'/home/michel/Downloads/Fedora-Server-netinst-x86_64-32-1.6.iso'
+-volid 'Fedora-32-btrfs'
+-volume_date uuid '2020071602410900'
+-boot_image isolinux system_area=--interval:imported_iso:0s-15s:zero_mbrpt,zero_gpt:'/home/michel/src/github/michel-slm/luks-kickstarts/iso/Fedora-32-WS-20200715-3.iso'
 -boot_image any partition_cyl_align=on
 -boot_image any partition_offset=0
 -boot_image any partition_hd_cyl=64
@@ -14,12 +14,6 @@
 -boot_image any load_size=2048
 -boot_image any boot_info_table=on
 -boot_image any next
--boot_image any efi_path='/images/efiboot.img'
--boot_image any platform_id=0xef
--boot_image any emul_type=no_emulation
--boot_image any load_size=11462656
--boot_image isolinux partition_entry=gpt_basdat
--boot_image any next
 -boot_image any efi_path='/images/macboot.img'
 -boot_image any platform_id=0xef
 -boot_image any emul_type=no_emulation
```

```
❯ diff -u ~/xorriso-report-{orig,new5}.log
--- /home/michel/xorriso-report-orig.log        2020-07-15 20:01:01.405289018 -0700
+++ /home/michel/xorriso-report-new5.log        2020-07-15 20:30:27.571644770 -0700
@@ -1,6 +1,6 @@
--volid 'Fedora-S-dvd-x86_64-32'
--volume_date uuid '2020042219432600'
--boot_image isolinux system_area=--interval:imported_iso:0s-15s:zero_mbrpt,zero_gpt:'/home/michel/Downloads/Fedora-Server-netinst-x86_64-32-1.6.iso'
+-volid 'Fedora-32-btrfs'
+-volume_date uuid '2020071603283100'
+-boot_image isolinux system_area=--interval:imported_iso:0s-15s:zero_mbrpt,zero_gpt:'./iso/Fedora-32-WS-20200715-5.iso'
 -boot_image any partition_cyl_align=on
 -boot_image any partition_offset=0
 -boot_image any partition_hd_cyl=64
@@ -17,7 +17,7 @@
 -boot_image any efi_path='/images/efiboot.img'
 -boot_image any platform_id=0xef
 -boot_image any emul_type=no_emulation
--boot_image any load_size=11462656
+-boot_image any load_size=11460608
 -boot_image isolinux partition_entry=gpt_basdat
 -boot_image any next
 -boot_image any efi_path='/images/macboot.img'
```

Signed-off-by: Michel Alexandre Salim <michel@michel-slm.name>
2020-07-16 08:48:58 -07:00
Brian C. Lane 03ff3bb53a composer-cli: Disable retry counter on connection timeout
urllib3 has a retry system that send the request again when the
connection fails, times out, is redircted, etc. This turns off retries,
which aren't very useful anyway.
2020-06-17 09:52:49 -07:00
Brian C. Lane 65d7397cf2 composer-cli: Change timeout to 5 minutes
In some cases osbuild-composer with an empty cache can take longer than
a minute to depsolve and start a compose.
2020-06-16 16:36:42 -07:00
Brian C. Lane bf1be846e5 composer-cli: Return a better error with no value
And add tests for the get_size function.
2020-06-11 09:36:32 -07:00
Brian C. Lane e9b088068c composer-cli: Add new start-ostree command
This is used to start an ostree build, it is only supported on
ostree-composer, and requires the ostree ref and parent. It may also
include --size and optionally be uploaded.
2020-06-11 09:36:32 -07:00
Brian C. Lane d97687a496 composer-cli: Add support for --size to compose start
osbuild-composer can support user specified image sizes, this adds an
optional argument, after start, to specify the size in MiB. eg.

    composer-cli compose start --size 2048 example-http-server qcow2

This only works when the backend is not 'lorax-composer', when it is the
user will get a warning that it will be ignored.
2020-06-11 09:36:32 -07:00
Brian C. Lane 4b1a4f8f16 composer-cli: Add osbuild-composer to connection failure message 2020-06-01 11:27:57 -07:00
Brian C. Lane 019cac8a7c lorax-composer: Check compose/status for invalid characters 2020-05-28 14:23:57 -07:00