diff --git a/SOURCES/CentOS-atomic-branding.patch b/SOURCES/CentOS-atomic-branding.patch new file mode 100644 index 0000000..9d51cf2 --- /dev/null +++ b/SOURCES/CentOS-atomic-branding.patch @@ -0,0 +1,57 @@ +From 6b70a1867fef732cd75ef79782f71c13241622b7 Mon Sep 17 00:00:00 2001 +From: Colin Walters +Date: Fri, 12 Jun 2015 13:59:05 -0400 +Subject: [PATCH] Use CentOS branding, increase install priority for Atomic + +This is similar to the patch CentOS normally applies to Anaconda, +but updated for Atomic. +--- + pyanaconda/installclasses/rhel.py | 17 +++++++++++------ + 1 file changed, 11 insertions(+), 6 deletions(-) + +diff --git a/pyanaconda/installclasses/rhel.py b/pyanaconda/installclasses/rhel.py +index a9a99f6..b924cd2 100644 +--- a/pyanaconda/installclasses/rhel.py ++++ b/pyanaconda/installclasses/rhel.py +@@ -30,9 +30,9 @@ from blivet.platform import platform + from blivet.devicelibs import swap + + class RHELBaseInstallClass(BaseInstallClass): +- name = "Red Hat Enterprise Linux" ++ name = "CentOS Linux" + sortPriority = 20000 +- if not productName.startswith("Red Hat "): ++ if not productName.startswith("CentOS "): + hidden = True + defaultFS = "xfs" + +@@ -45,7 +45,7 @@ class RHELBaseInstallClass(BaseInstallClass): + + _l10n_domain = "comps" + +- efi_dir = "redhat" ++ efi_dir = "centos" + + def configure(self, anaconda): + BaseInstallClass.configure(self, anaconda) +@@ -90,9 +90,14 @@ class RHELBaseInstallClass(BaseInstallClass): + BaseInstallClass.__init__(self) + + class RHELAtomicInstallClass(RHELBaseInstallClass): +- name = "RHEL Atomic Host" +- if productName.startswith("RHEL Atomic"): +- hidden = False ++ name = "CentOS Atomic Host" ++ # We have to bump priority because RHEL upstream is relying on a ++ # side effect of the OS name starting with "RHEL" instead of "Red ++ # Hat" and thus the normal RHELBaseInstallClass above not ++ # matching. ++ sortPriority = 20001 ++ if not productName.startswith("CentOS "): ++ hidden = True + + def setDefaultPartitioning(self, storage): + autorequests = [PartSpec(mountpoint="/", fstype=storage.defaultFSType, +-- +1.8.3.1 + diff --git a/SOURCES/rpmostreepayload-Rework-remote-add-handling.patch b/SOURCES/rpmostreepayload-Rework-remote-add-handling.patch new file mode 100644 index 0000000..16b0660 --- /dev/null +++ b/SOURCES/rpmostreepayload-Rework-remote-add-handling.patch @@ -0,0 +1,116 @@ +From c72f979499f5af3091ad8f2017442b3728cdff2f Mon Sep 17 00:00:00 2001 +From: Colin Walters +Date: Tue, 16 Jun 2015 11:24:20 -0400 +Subject: [PATCH] Rebase + +--- + pyanaconda/packaging/rpmostreepayload.py | 67 ++++++++++++++++++++------------ + 1 file changed, 43 insertions(+), 24 deletions(-) + +diff --git a/pyanaconda/packaging/rpmostreepayload.py b/pyanaconda/packaging/rpmostreepayload.py +index 5eacd9f..f979c3e 100644 +--- a/pyanaconda/packaging/rpmostreepayload.py ++++ b/pyanaconda/packaging/rpmostreepayload.py +@@ -138,24 +138,25 @@ class RPMOSTreePayload(ArchivePayload): + ["admin", "--sysroot=" + iutil.getTargetPhysicalRoot(), + "init-fs", iutil.getTargetPhysicalRoot()]) + +- repo_arg = "--repo=" + iutil.getTargetPhysicalRoot() + '/ostree/repo' ++ self._sysroot_path = Gio.File.new_for_path(iutil.getTargetPhysicalRoot()) ++ sysroot = OSTree.Sysroot.new(self._sysroot_path) ++ sysroot.load(cancellable) ++ repo = sysroot.get_repo(None)[1] ++ # We don't support resuming from interrupted installs ++ repo.set_disable_fsync(True) + +- # Store this for use in postInstall too, where we need to +- # undo/redo this step. +- self._base_remote_args = ["remote", "add"] ++ self._remoteOptions = {} ++ ++ # Handle variations in pykickstart + if ((hasattr(ostreesetup, 'noGpg') and ostreesetup.noGpg) or + (hasattr(ostreesetup, 'nogpg') and ostreesetup.nogpg)): +- self._base_remote_args.append("--set=gpg-verify=false") +- self._base_remote_args.extend([ostreesetup.remote, +- ostreesetup.url]) +- self._safeExecWithRedirect("ostree", [repo_arg] + self._base_remote_args) ++ self._remoteOptions['gpg-verify'] = GLib.Variant('b', False) + +- self._sysroot_path = sysroot_path = Gio.File.new_for_path(iutil.getTargetPhysicalRoot()) +- sysroot = OSTree.Sysroot.new(sysroot_path) +- sysroot.load(cancellable) ++ repo.remote_change(None, OSTree.RepoRemoteChange.ADD_IF_NOT_EXISTS, ++ ostreesetup.remote, ostreesetup.url, ++ GLib.Variant('a{sv}', self._remoteOptions), ++ cancellable) + +- repo = sysroot.get_repo(None)[1] +- repo.set_disable_fsync(True) + progressQ.send_message(_("Starting pull of %(branchName)s from %(source)s") % \ + {"branchName": ostreesetup.ref, "source": ostreesetup.remote}) + +@@ -174,6 +175,14 @@ class RPMOSTreePayload(ArchivePayload): + + progressQ.send_message(_("Preparing deployment of %s") % (ostreesetup.ref, )) + ++ # Now that we have the data pulled, delete the remote for now. ++ # This will allow a remote configuration defined in the tree ++ # (if any) to override what's in the kickstart. Otherwise, ++ # we'll re-add it in post. Ideally, ostree would support a ++ # pull without adding a remote, but that would get quite ++ # complex. ++ repo.remote_delete(self.data.ostreesetup.remote, None) ++ + self._safeExecWithRedirect("ostree", + ["admin", "--sysroot=" + iutil.getTargetPhysicalRoot(), + "os-init", ostreesetup.osname]) +@@ -250,24 +259,34 @@ class RPMOSTreePayload(ArchivePayload): + + def postInstall(self): + super(RPMOSTreePayload, self).postInstall() +- ++ + from gi.repository import OSTree + cancellable = None + +- # Reload this data - we couldn't keep it open across +- # the remounts happening. + sysroot = OSTree.Sysroot.new(self._sysroot_path) + sysroot.load(cancellable) + repo = sysroot.get_repo(None)[1] + +- # This is an ugly hack - we didn't have /etc/ostree/remotes.d, +- # so the remote went into /ostree/repo/config. But we want it +- # in /etc, so delete that remote, then re-add it to +- # /etc/ostree/remotes.d, executing ostree inside the sysroot +- # so that it understands it's a "system repository" and should +- # modify /etc. +- repo.remote_delete(self.data.ostreesetup.remote, None) +- self._safeExecWithRedirect("ostree", self._base_remote_args, root=iutil.getSysroot()) ++ # CentOS specific patch (for now) - pull the remote config from usr/etc if it exists. ++ # The OSTree handling here was buggy in that it wasn't looking in the sysroot ++ # for existing remotes. ++ default_remote_path = iutil.getSysroot() + '/usr/etc/ostree/remotes.d/' + self.data.ostreesetup.osname + '.conf' ++ if os.path.isfile(default_remote_path): ++ destpath = iutil.getSysroot() + '/etc/ostree/remotes.d/' + os.path.basename(default_remote_path) ++ self._safeExecWithRedirect('cp', ['-r', '-p', default_remote_path, destpath]) ++ else: ++ # Following up on the "remote delete" above, we removed the ++ # remote from /ostree/repo/config. But we want it in /etc, so ++ # re-add it to /etc/ostree/remotes.d, using the sysroot path. ++ # ++ # However, we ignore the case where the remote already exists, ++ # which occurs when the content itself provides the remote ++ # config file. ++ repo.remote_change(Gio.File.new_for_path(iutil.getSysroot()), ++ OSTree.RepoRemoteChange.ADD_IF_NOT_EXISTS, ++ self.data.ostreesetup.remote, self.data.ostreesetup.url, ++ GLib.Variant('a{sv}', self._remoteOptions), ++ cancellable) + + boot = iutil.getSysroot() + '/boot' + +-- +1.8.3.1 + diff --git a/SPECS/anaconda.spec b/SPECS/anaconda.spec index 21f7d65..b69b765 100644 --- a/SPECS/anaconda.spec +++ b/SPECS/anaconda.spec @@ -17,6 +17,8 @@ Source0: %{name}-%{version}.tar.bz2 # backported for RHELAH 7.4.2 Patch0: 0001-rpmostreepayload-Rollup-backport-of-Fedora-patches.patch Patch1: 0001-installclasses-rhelah-Bump-default-to-15GB-max.patch +Patch2: rpmostreepayload-Rework-remote-add-handling.patch +Patch3: CentOS-atomic-branding.patch # Versions of required components (done so we make sure the buildrequires # match the requires versions of things). @@ -231,6 +233,8 @@ runtime on NFS/HTTP/FTP servers or local disks. %setup -q %patch0 -p1 %patch1 -p1 +%patch2 -p1 +%patch3 -p1 %build %configure --disable-static \ @@ -323,6 +327,10 @@ update-desktop-database &> /dev/null || : %{_prefix}/libexec/anaconda/dd_* %changelog +* Thu Oct 19 2017 CentOS Sources - 21.48.22.121-3.rhelah.0.el7.centos +- ostree remote repo url changes +- Add CentOS branding for installclass + * Mon Aug 21 2017 Colin Walters - 21.48.22.121-3.rhelah.0 - Backport patches for RHELAH /var and ISO default storage increase - Related: rhbz#1098303