From 980f639f5972b767839ceced55d45e5cd6dab69d Mon Sep 17 00:00:00 2001 From: Neal Gompa Date: Nov 24 2018 00:34:44 +0000 Subject: Bump version to 26.0 (ngompa13) imgcreate/kickstart: Exclude /sys from SELinux labeling (ngompa13) imgcreate/live: Switch to single-step ISO hybridization by xorrisofs (ngompa13) Use xorrisofs instead of genisoimage (ngompa13) imgcreate/live: Drop UDF support (ngompa13) Fix excludeWeakdeps for older pykickstart versions (pablo) README: Update to include --flat-squashfs option. (fgrose) editliveos: Fix inconsistent ops argument. (fgrose) livecd-iso-to-disk: Accept both dracut 045-8 and 049+ for OverlayFS. (fgrose) README: Update to include liveimage-mount & editliveos tools. (fgrose) config/livecd-fedora-minimal.ks: Increase root partition size. (fgrose) Support a flattened squashfs.img & non-standard image & overlay paths. (fgrose) livecd-iso-to-disk: Support netinstall .iso (fgrose) edit-livecd: Delete unmaintained script superceded by editliveos. (fgrose) Handle dnf config option showing as tuple, not list, in DNF 3.6 (awilliam) live.py: Fix unreported logging.error (fgrose) livecd-iso-to-disk: Skip Multi Image query on --skipcopy condition. (fgrose) livecd-iso-to-disk: Tighten permissions on some files. (fgrose) DNF 3: workaround a bug with config values that are lists (awilliam) Add support for RISC-V (riscv64) (david.abdurachmanov) Revert "Use restorecon instead of setfiles for relabeling" (puiterwijk) imgcreate: Copy gcdia32.efi in __copy_efi_files if it exists (Kevin) Fix the io.open() and utf-8 problems in imgcreate/util.py (david.l.cantrell) Remove get_modules(). (david.l.cantrell) livecd-iso-to-disk: adjust efi boot configuration code. (fgrose) fs.py & editliveos: remove code glitches (fgrose) editliveos: Bind mount /etc/resolv.conf (fgrose) fs.py & editliveos: Fix overlay changing. (fgrose) util.py: Captured output from subprocesses should always be decoded. (scott) Update livecd-creator manpage with info about imcomplete options (zhang.xianwei8) livecd-iso-to-disk: Revert change that broke EFI/MBR hybrid booting (scott) livecd-iso-to-disk: Fix faulty --efi boot config code. (fgrose) livecd-iso-to-disk: Fix overlay size reporting & type testing. (fgrose) livecd-iso-to-disk: Accommodate multiple BOOT*.EFI files. (fgrose) --- diff --git a/.gitignore b/.gitignore index 7146af3..65ed29c 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,4 @@ /livecd-tools-24.3.tar.gz /livecd-tools-24.4.tar.gz /livecd-tools-25.0.tar.gz +/livecd-tools-26.0.tar.gz diff --git a/0001-DNF-3-workaround-a-bug-with-config-values-that-are-l.patch b/0001-DNF-3-workaround-a-bug-with-config-values-that-are-l.patch deleted file mode 100644 index 72093af..0000000 --- a/0001-DNF-3-workaround-a-bug-with-config-values-that-are-l.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 676b1e1261b442a80cdf2cbb96d192b1db02b894 Mon Sep 17 00:00:00 2001 -From: Adam Williamson -Date: Wed, 27 Jun 2018 11:51:50 -0700 -Subject: [PATCH] DNF 3: workaround a bug with config values that are lists - -There's a bug / overly-clever-design flaw in DNF 3 that prevents -us appending to config values that appear to be lists, even -though lists should be mutable objects and this *ought* to work -(and did work in DNF 2): - -https://bugzilla.redhat.com/show_bug.cgi?id=1595917 - -This works around it. - -Signed-off-by: Adam Williamson ---- - imgcreate/dnfinst.py | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/imgcreate/dnfinst.py b/imgcreate/dnfinst.py -index 8e28f34..a81f04b 100644 ---- a/imgcreate/dnfinst.py -+++ b/imgcreate/dnfinst.py -@@ -179,7 +179,10 @@ class DnfLiveCD(dnf.Base): - # dnf 1 - repo = dnf.repo.Repo(name, cachedir = self.conf.cachedir) - if url: -- repo.baseurl.append(_varSubstitute(url)) -+ # some overly clever trickery in dnf 3 prevents us just -+ # using repo.baseurl.append here: -+ # https://bugzilla.redhat.com/show_bug.cgi?id=1595917 -+ repo.baseurl = repo.baseurl + [_varSubstitute(url)] - if mirrorlist: - repo.mirrorlist = _varSubstitute(mirrorlist) - repo.enable() --- -2.18.0.rc2 - diff --git a/0001-Fix-excludeWeakdeps-for-older-pykickstart-versions.patch b/0001-Fix-excludeWeakdeps-for-older-pykickstart-versions.patch deleted file mode 100644 index c21e446..0000000 --- a/0001-Fix-excludeWeakdeps-for-older-pykickstart-versions.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 4412b55ed2eb6db1180933701b66d7ae4a7fcbd3 Mon Sep 17 00:00:00 2001 -From: Pablo Greco -Date: Thu, 22 Nov 2018 16:12:40 +0000 -Subject: [PATCH] Fix excludeWeakdeps for older pykickstart versions - ---- - imgcreate/kickstart.py | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/imgcreate/kickstart.py b/imgcreate/kickstart.py -index 1b8ac88..aa587b6 100644 ---- a/imgcreate/kickstart.py -+++ b/imgcreate/kickstart.py -@@ -614,7 +614,10 @@ def exclude_docs(ks): - return ks.handler.packages.excludeDocs - - def exclude_weakdeps(ks): -- return ks.handler.packages.excludeWeakdeps -+ if hasattr(ks.handler.packages, "excludeWeakdeps"): -+ if ks.handler.packages.excludeWeakdeps: -+ return ks.handler.packages.excludeWeakdeps -+ return None - - def nocore(ks): - return ks.handler.packages.nocore --- -2.17.2 - diff --git a/0001-Handle-dnf-config-option-showing-as-tuple-not-list-i.patch b/0001-Handle-dnf-config-option-showing-as-tuple-not-list-i.patch deleted file mode 100644 index 9d151a6..0000000 --- a/0001-Handle-dnf-config-option-showing-as-tuple-not-list-i.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 4354448197beb7c3d68c2bfc0d50d22b25822564 Mon Sep 17 00:00:00 2001 -From: Adam Williamson -Date: Wed, 26 Sep 2018 18:30:01 -0700 -Subject: [PATCH] Handle dnf config option showing as tuple, not list, in DNF - 3.6 - -See https://bugzilla.redhat.com/show_bug.cgi?id=1595917 again. -This is a follow-up to 2cbd239 - after I reported the bug, -upstream changed in DNF 3.6 to present these values as tuples -rather than lists, to indicate that they cannot be mutated. So -we can't add a list to the retrieved value, like we did before, -but using += (tuple) like this seems to work both in DNF 3.6 -and in older DNFs. - -Signed-off-by: Adam Williamson ---- - imgcreate/dnfinst.py | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/imgcreate/dnfinst.py b/imgcreate/dnfinst.py -index a81f04b..720dd7d 100644 ---- a/imgcreate/dnfinst.py -+++ b/imgcreate/dnfinst.py -@@ -182,7 +182,10 @@ class DnfLiveCD(dnf.Base): - # some overly clever trickery in dnf 3 prevents us just - # using repo.baseurl.append here: - # https://bugzilla.redhat.com/show_bug.cgi?id=1595917 -- repo.baseurl = repo.baseurl + [_varSubstitute(url)] -+ # with the change to representing it as a tuple in DNF 3.6 -+ # this '+= (tuple)' approach seems to work for DNF 2, -+ # 3.0-3.5 *and* 3.6 -+ repo.baseurl += (_varSubstitute(url),) - if mirrorlist: - repo.mirrorlist = _varSubstitute(mirrorlist) - repo.enable() --- -2.19.0 - diff --git a/491a49ff9aedf5197af3e4dcb0f50351db3cddf0.patch b/491a49ff9aedf5197af3e4dcb0f50351db3cddf0.patch deleted file mode 100644 index 61e1c54..0000000 --- a/491a49ff9aedf5197af3e4dcb0f50351db3cddf0.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 491a49ff9aedf5197af3e4dcb0f50351db3cddf0 Mon Sep 17 00:00:00 2001 -From: David Cantrell -Date: Thu, 18 Jan 2018 15:20:18 -0500 -Subject: [PATCH] Remove get_modules(). - -This kickstart command has been deprecated for a long time anyway and it -has been removed in pykickstart 3.9. ---- - imgcreate/kickstart.py | 15 --------------- - imgcreate/live.py | 1 - - 2 files changed, 16 deletions(-) - -diff --git a/imgcreate/kickstart.py b/imgcreate/kickstart.py -index e7997ca..7d92b5b 100644 ---- a/imgcreate/kickstart.py -+++ b/imgcreate/kickstart.py -@@ -533,21 +533,6 @@ def get_image_fstype(ks, default = None): - return p.fstype - return default - --def get_modules(ks): -- devices = [] -- if not hasattr(ks.handler.device, "deviceList"): -- devices.append(ks.handler.device) -- else: -- devices.extend(ks.handler.device.deviceList) -- -- modules = [] -- for device in devices: -- if not device.moduleName: -- continue -- modules.extend(device.moduleName.split(":")) -- -- return modules -- - def get_timeout(ks, default = None): - if not hasattr(ks.handler.bootloader, "timeout"): - return default -diff --git a/imgcreate/live.py b/imgcreate/live.py -index 1f332dd..b3da184 100755 ---- a/imgcreate/live.py -+++ b/imgcreate/live.py -@@ -90,7 +90,6 @@ def __init__(self, ks, name, fslabel=None, releasever=None, tmpdir="/tmp", - "=mmc", "=pcmcia", "mptsas", "udf", "virtio_blk", - "virtio_pci", "virtio_scsi", "virtio_net", "virtio_mmio", - "virtio_balloon", "virtio-rng"] -- self.__modules.extend(kickstart.get_modules(self.ks)) - - self._isofstype = "iso9660" - self.base_on = False diff --git a/livecd-tools-revert-restorecon.patch b/livecd-tools-revert-restorecon.patch deleted file mode 100644 index a431426..0000000 --- a/livecd-tools-revert-restorecon.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff -rup livecd-tools-25.0.orig/imgcreate/kickstart.py livecd-tools-25.0/imgcreate/kickstart.py ---- livecd-tools-25.0.orig/imgcreate/kickstart.py 2018-03-22 12:52:20.229454637 +0100 -+++ livecd-tools-25.0/imgcreate/kickstart.py 2018-03-22 14:12:41.619989962 +0100 -@@ -479,12 +479,12 @@ class SelinuxConfig(KickstartConfig): - return - - try: -- rc = subprocess.call(['restorecon', '-p', '-e', '/proc', '-e', -- '/sys', '-e', '/dev', '-F', '-R', '/'], -- preexec_fn=self.chroot) -+ rc = self.call(["/sbin/setfiles", "-p", "-e", "/proc", "-e", -+ "/sys", "-e", "/dev", -+ selinux.selinux_file_context_path(), "/"]) - except OSError as e: - if e.errno == errno.ENOENT: -- logging.info('The restorecon command is not available.') -+ logging.info('The fixfiles command is not available.') - return - if rc: - if ksselinux.selinux == ksconstants.SELINUX_ENFORCING: diff --git a/livecd-tools.spec b/livecd-tools.spec index ebf29f0..f644701 100644 --- a/livecd-tools.spec +++ b/livecd-tools.spec @@ -16,26 +16,14 @@ Summary: Tools for building live CDs Name: livecd-tools -Version: 25.0 -Release: 14%{?dist} +Version: 26.0 +Release: 1%{?dist} Epoch: 1 License: GPLv2 Group: System Environment/Base URL: https://github.com/livecd-tools/livecd-tools Source0: https://releases.pagure.org/%{name}/%{name}-%{version}.tar.gz -Patch0: https://github.com/livecd-tools/livecd-tools/commit/491a49ff9aedf5197af3e4dcb0f50351db3cddf0.patch -Patch1: livecd-tools-revert-restorecon.patch -# Workaround an issue in DNF 3: -# https://bugzilla.redhat.com/show_bug.cgi?id=1595917 -# https://github.com/livecd-tools/livecd-tools/pull/102 -Patch2: 0001-DNF-3-workaround-a-bug-with-config-values-that-are-l.patch -# Work around same issue again, for DNF 3.6 changes: -# https://github.com/livecd-tools/livecd-tools/pull/108 -Patch3: 0001-Handle-dnf-config-option-showing-as-tuple-not-list-i.patch -# Workaround lack of excludeWeakDeps with EL7 pykickstart -Patch4: 0001-Fix-excludeWeakdeps-for-older-pykickstart-versions.patch - %if %{with python2} BuildRequires: python2-devel %endif @@ -66,7 +54,7 @@ http://fedoraproject.org/wiki/FedoraLiveCD for more details. Summary: Common system dependencies for python-imgcreate Group: System Environment/Base Requires: coreutils -Requires: genisoimage +Requires: xorriso >= 1.4.8 Requires: isomd5sum Requires: parted Requires: util-linux @@ -74,17 +62,28 @@ Requires: dosfstools >= 2.11-8 Requires: e2fsprogs Requires: lorax >= 18.3 Requires: rsync + +# hfs+ support for Macs %ifarch %{ix86} x86_64 ppc ppc64 Requires: hfsplus-tools %endif + +# syslinux dependency %ifarch %{ix86} x86_64 +%if 0%{?rhel} && 0%{?rhel} < 8 +Requires: syslinux >= 4.05-13 +%else Requires: syslinux >= 6.02-4 Requires: syslinux-nonlinux >= 6.02-4 +%endif Requires: /sbin/extlinux %endif + +# For legacy ppc32 systems %ifarch ppc Requires: yaboot %endif + Requires: dumpet Requires: sssd-client Requires: cryptsetup @@ -93,6 +92,7 @@ Requires: policycoreutils Requires: selinux-policy-targeted # dracut 045+ required for overlayfs live media support Requires: dracut + %if ! %{with python2} Obsoletes: python2-imgcreate < 1:25.0-12 %endif @@ -150,9 +150,6 @@ like live image or appliances. Summary: Tools for installing ISOs to different mediums Group: System Environment/Base Requires: python-imgcreate-sysdeps%{?_isa} = %{epoch}:%{version}-%{release} -Requires: syslinux >= 6.02-4 -Requires: syslinux-nonlinux >= 6.02-4 -Requires: /sbin/extlinux Conflicts: livecd-tools < 25.0 %description -n livecd-iso-to-mediums @@ -196,7 +193,6 @@ rm -rfv %{buildroot}%{_mandir}/man8/livecd-iso-to-* %{_bindir}/livecd-creator %{_bindir}/image-creator %{_bindir}/liveimage-mount -%{_bindir}/edit-livecd %{_bindir}/editliveos %{_bindir}/mkbiarch @@ -226,6 +222,45 @@ rm -rfv %{buildroot}%{_mandir}/man8/livecd-iso-to-* %endif %changelog +* Fri Nov 23 2018 Neal Gompa - 1:26.0-1 +- Bump version to 26.0 (ngompa13) +- imgcreate/kickstart: Exclude /sys from SELinux labeling (ngompa13) +- imgcreate/live: Switch to single-step ISO hybridization by xorrisofs + (ngompa13) +- Use xorrisofs instead of genisoimage (ngompa13) +- imgcreate/live: Drop UDF support (ngompa13) +- Fix excludeWeakdeps for older pykickstart versions (pablo) +- README: Update to include --flat-squashfs option. (fgrose) +- editliveos: Fix inconsistent ops argument. (fgrose) +- livecd-iso-to-disk: Accept both dracut 045-8 and 049+ for OverlayFS. (fgrose) +- README: Update to include liveimage-mount & editliveos tools. (fgrose) +- config/livecd-fedora-minimal.ks: Increase root partition size. (fgrose) +- Support a flattened squashfs.img & non-standard image & overlay paths. + (fgrose) +- livecd-iso-to-disk: Support netinstall .iso (fgrose) +- edit-livecd: Delete unmaintained script superceded by editliveos. (fgrose) +- Handle dnf config option showing as tuple, not list, in DNF 3.6 (awilliam) +- live.py: Fix unreported logging.error (fgrose) +- livecd-iso-to-disk: Skip Multi Image query on --skipcopy condition. (fgrose) +- livecd-iso-to-disk: Tighten permissions on some files. (fgrose) +- DNF 3: workaround a bug with config values that are lists (awilliam) +- Add support for RISC-V (riscv64) (david.abdurachmanov) +- Revert "Use restorecon instead of setfiles for relabeling" (puiterwijk) +- imgcreate: Copy gcdia32.efi in __copy_efi_files if it exists (Kevin) +- Fix the io.open() and utf-8 problems in imgcreate/util.py (david.l.cantrell) +- Remove get_modules(). (david.l.cantrell) +- livecd-iso-to-disk: adjust efi boot configuration code. (fgrose) +- fs.py & editliveos: remove code glitches (fgrose) +- editliveos: Bind mount /etc/resolv.conf (fgrose) +- fs.py & editliveos: Fix overlay changing. (fgrose) +- util.py: Captured output from subprocesses should always be decoded. (scott) +- Update livecd-creator manpage with info about imcomplete options + (zhang.xianwei8) +- livecd-iso-to-disk: Revert change that broke EFI/MBR hybrid booting (scott) +- livecd-iso-to-disk: Fix faulty --efi boot config code. (fgrose) +- livecd-iso-to-disk: Fix overlay size reporting & type testing. (fgrose) +- livecd-iso-to-disk: Accommodate multiple BOOT*.EFI files. (fgrose) + * Thu Nov 22 2018 Neal Gompa - 1:25.0-14 - Backport workaround for lack of excludeWeakDeps with EL7 pykickstart diff --git a/sources b/sources index b054d8e..aeff9d3 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (livecd-tools-25.0.tar.gz) = 8b42fce8148d699e08611a8dcfa49a1f90c53f8df57d6debd1d873727ca8d097445c02b25a990f57e5778fb4e4235ea7a3cd2bf8af21d9431cad666b9823ef4d +SHA512 (livecd-tools-26.0.tar.gz) = b32c7de5570693a91aebc46e33b04f51b83ababe58614da9c8961267e0ba8120615ff76c4e612d6afce6da5e6f24fb494076044c7340e26b20c8177fe99f7c41