* Thu Jun 23 2022 Jon Maloy <jmaloy@redhat.com> - 22.1-4
- ci-Honor-system-locale-for-RHEL-1355.patch [bz#2061604] - ci-cloud-init.spec-adjust-path-for-66-azure-ephemeral.r.patch [bz#2096270] - ci-setup.py-adjust-udev-rules-default-path-1513.patch [bz#2096270] - Resolves: bz#2061604 (cloud-config will change /etc/locale.conf back to en_US.UTF-8 on rhel-guest-image-9.0) - Resolves: bz#2096270 (Adjust udev/rules default path[rhel-9])
This commit is contained in:
		
							parent
							
								
									cb3148c268
								
							
						
					
					
						commit
						d43312c1e3
					
				
							
								
								
									
										135
									
								
								ci-Honor-system-locale-for-RHEL-1355.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										135
									
								
								ci-Honor-system-locale-for-RHEL-1355.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,135 @@ | |||||||
|  | From 53e3f8ab9008fec8400f96918c2129f7defe6a70 Mon Sep 17 00:00:00 2001 | ||||||
|  | From: Emanuele Giuseppe Esposito <eesposit@redhat.com> | ||||||
|  | Date: Fri, 10 Jun 2022 20:51:55 +0200 | ||||||
|  | Subject: [PATCH 1/3] Honor system locale for RHEL (#1355) | ||||||
|  | 
 | ||||||
|  | RH-Author: Emanuele Giuseppe Esposito <eesposit@redhat.com> | ||||||
|  | RH-MergeRequest: 29: Honor system locale for RHEL (#1355) | ||||||
|  | RH-Commit: [1/1] d571126fe6add8dc34a22c869d4e1a07a7373d8d (eesposit/cloud-init-centos-) | ||||||
|  | RH-Bugzilla: 2061604 | ||||||
|  | RH-Acked-by: Mohamed Gamal Morsy <mmorsy@redhat.com> | ||||||
|  | RH-Acked-by: Vitaly Kuznetsov <vkuznets@redhat.com> | ||||||
|  | 
 | ||||||
|  | commit 58da7d856274e9ca2b507128d6f186e0e6abfe06 | ||||||
|  | Author: Wei Shi <wshi@redhat.com> | ||||||
|  | Date:   Wed Mar 30 23:55:30 2022 +0800 | ||||||
|  | 
 | ||||||
|  |     Honor system locale for RHEL (#1355) | ||||||
|  | 
 | ||||||
|  |     Make sure to use system locale as default on RHEL if locale is not | ||||||
|  |     set in cloud-config. | ||||||
|  | 
 | ||||||
|  |     RHEL has a pre-installed cloud image using C.UTF-8 for system locale | ||||||
|  |     just like ubuntu-minimal cloud image, without this patch, locale | ||||||
|  |     module will set it to en_US.UTF-8 from ds default value during config | ||||||
|  |     stage. | ||||||
|  | 
 | ||||||
|  |     Authored-by: Wei Shi <shi2wei3@hotmail.com> | ||||||
|  | 
 | ||||||
|  | Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com> | ||||||
|  | ---
 | ||||||
|  |  cloudinit/distros/rhel.py               | 32 +++++++++++++++++++++++++ | ||||||
|  |  tests/unittests/distros/test_generic.py | 10 ++++---- | ||||||
|  |  tools/.github-cla-signers               |  1 + | ||||||
|  |  3 files changed, 39 insertions(+), 4 deletions(-) | ||||||
|  | 
 | ||||||
|  | diff --git a/cloudinit/distros/rhel.py b/cloudinit/distros/rhel.py
 | ||||||
|  | index 84744ece..320f4ba1 100644
 | ||||||
|  | --- a/cloudinit/distros/rhel.py
 | ||||||
|  | +++ b/cloudinit/distros/rhel.py
 | ||||||
|  | @@ -7,6 +7,7 @@
 | ||||||
|  |  # Author: Joshua Harlow <harlowja@yahoo-inc.com> | ||||||
|  |  # | ||||||
|  |  # This file is part of cloud-init. See LICENSE file for license information. | ||||||
|  | +import os
 | ||||||
|  |   | ||||||
|  |  from cloudinit import distros, helpers | ||||||
|  |  from cloudinit import log as logging | ||||||
|  | @@ -57,11 +58,25 @@ class Distro(distros.Distro):
 | ||||||
|  |          # should only happen say once per instance...) | ||||||
|  |          self._runner = helpers.Runners(paths) | ||||||
|  |          self.osfamily = "redhat" | ||||||
|  | +        self.default_locale = "en_US.UTF-8"
 | ||||||
|  | +        self.system_locale = None
 | ||||||
|  |          cfg["ssh_svcname"] = "sshd" | ||||||
|  |   | ||||||
|  |      def install_packages(self, pkglist): | ||||||
|  |          self.package_command("install", pkgs=pkglist) | ||||||
|  |   | ||||||
|  | +    def get_locale(self):
 | ||||||
|  | +        """Return the default locale if set, else use system locale"""
 | ||||||
|  | +
 | ||||||
|  | +        # read system locale value
 | ||||||
|  | +        if not self.system_locale:
 | ||||||
|  | +            self.system_locale = self._read_system_locale()
 | ||||||
|  | +
 | ||||||
|  | +        # Return system_locale setting if valid, else use default locale
 | ||||||
|  | +        return (
 | ||||||
|  | +            self.system_locale if self.system_locale else self.default_locale
 | ||||||
|  | +        )
 | ||||||
|  | +
 | ||||||
|  |      def apply_locale(self, locale, out_fn=None): | ||||||
|  |          if self.uses_systemd(): | ||||||
|  |              if not out_fn: | ||||||
|  | @@ -75,6 +90,23 @@ class Distro(distros.Distro):
 | ||||||
|  |          } | ||||||
|  |          rhel_util.update_sysconfig_file(out_fn, locale_cfg) | ||||||
|  |   | ||||||
|  | +    def _read_system_locale(self, keyname="LANG"):
 | ||||||
|  | +        """Read system default locale setting, if present"""
 | ||||||
|  | +        if self.uses_systemd():
 | ||||||
|  | +            locale_fn = self.systemd_locale_conf_fn
 | ||||||
|  | +        else:
 | ||||||
|  | +            locale_fn = self.locale_conf_fn
 | ||||||
|  | +
 | ||||||
|  | +        if not locale_fn:
 | ||||||
|  | +            raise ValueError("Invalid path: %s" % locale_fn)
 | ||||||
|  | +
 | ||||||
|  | +        if os.path.exists(locale_fn):
 | ||||||
|  | +            (_exists, contents) = rhel_util.read_sysconfig_file(locale_fn)
 | ||||||
|  | +            if keyname in contents:
 | ||||||
|  | +                return contents[keyname]
 | ||||||
|  | +            else:
 | ||||||
|  | +                return None
 | ||||||
|  | +
 | ||||||
|  |      def _write_hostname(self, hostname, filename): | ||||||
|  |          # systemd will never update previous-hostname for us, so | ||||||
|  |          # we need to do it ourselves | ||||||
|  | diff --git a/tests/unittests/distros/test_generic.py b/tests/unittests/distros/test_generic.py
 | ||||||
|  | index 93c5395c..fedc7300 100644
 | ||||||
|  | --- a/tests/unittests/distros/test_generic.py
 | ||||||
|  | +++ b/tests/unittests/distros/test_generic.py
 | ||||||
|  | @@ -187,12 +187,14 @@ class TestGenericDistro(helpers.FilesystemMockingTestCase):
 | ||||||
|  |          locale = d.get_locale() | ||||||
|  |          self.assertEqual("C.UTF-8", locale) | ||||||
|  |   | ||||||
|  | -    def test_get_locale_rhel(self):
 | ||||||
|  | -        """Test rhel distro returns NotImplementedError exception"""
 | ||||||
|  | +    @mock.patch("cloudinit.distros.rhel.Distro._read_system_locale")
 | ||||||
|  | +    def test_get_locale_rhel(self, m_locale):
 | ||||||
|  | +        """Test rhel distro returns locale set to C.UTF-8"""
 | ||||||
|  | +        m_locale.return_value = "C.UTF-8"
 | ||||||
|  |          cls = distros.fetch("rhel") | ||||||
|  |          d = cls("rhel", {}, None) | ||||||
|  | -        with self.assertRaises(NotImplementedError):
 | ||||||
|  | -            d.get_locale()
 | ||||||
|  | +        locale = d.get_locale()
 | ||||||
|  | +        self.assertEqual("C.UTF-8", locale)
 | ||||||
|  |   | ||||||
|  |      def test_expire_passwd_uses_chpasswd(self): | ||||||
|  |          """Test ubuntu.expire_passwd uses the passwd command.""" | ||||||
|  | diff --git a/tools/.github-cla-signers b/tools/.github-cla-signers
 | ||||||
|  | index 9f71ea0c..9eb2ae38 100644
 | ||||||
|  | --- a/tools/.github-cla-signers
 | ||||||
|  | +++ b/tools/.github-cla-signers
 | ||||||
|  | @@ -70,6 +70,7 @@ renanrodrigo
 | ||||||
|  |  rhansen | ||||||
|  |  riedel | ||||||
|  |  sarahwzadara | ||||||
|  | +shi2wei3
 | ||||||
|  |  slingamn | ||||||
|  |  slyon | ||||||
|  |  smoser | ||||||
|  | -- 
 | ||||||
|  | 2.35.1 | ||||||
|  | 
 | ||||||
							
								
								
									
										57
									
								
								ci-setup.py-adjust-udev-rules-default-path-1513.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								ci-setup.py-adjust-udev-rules-default-path-1513.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,57 @@ | |||||||
|  | From f771d841dbdef8fbb1c1a3d1b8d51ff101354502 Mon Sep 17 00:00:00 2001 | ||||||
|  | From: Emanuele Giuseppe Esposito <eesposit@redhat.com> | ||||||
|  | Date: Fri, 17 Jun 2022 09:41:23 +0200 | ||||||
|  | Subject: [PATCH 3/3] setup.py: adjust udev/rules default path (#1513) | ||||||
|  | 
 | ||||||
|  | RH-Author: Emanuele Giuseppe Esposito <eesposit@redhat.com> | ||||||
|  | RH-MergeRequest: 30: setup.py: adjust udev/rules default path (#1513) | ||||||
|  | RH-Commit: [2/2] b71362acefa15587b2c72e8981708065d2fcfa07 (eesposit/cloud-init-centos-) | ||||||
|  | RH-Bugzilla: 2096270 | ||||||
|  | RH-Acked-by: Mohamed Gamal Morsy <mmorsy@redhat.com> | ||||||
|  | RH-Acked-by: Vitaly Kuznetsov <vkuznets@redhat.com> | ||||||
|  | 
 | ||||||
|  | commit 70715125f3af118ae242770e61064c24f41e9a02 | ||||||
|  | Author: Emanuele Giuseppe Esposito <eesposit@redhat.com> | ||||||
|  | Date:   Thu Jun 16 20:39:42 2022 +0200 | ||||||
|  | 
 | ||||||
|  |     setup.py: adjust udev/rules default path (#1513) | ||||||
|  | 
 | ||||||
|  |     RHEL must put cloudinit .rules files in /usr/lib/udev/rules.d | ||||||
|  |     This place is a rhel standard and since it is used by all packages | ||||||
|  |     cannot be modified. | ||||||
|  | 
 | ||||||
|  |     Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com> | ||||||
|  | 
 | ||||||
|  | Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com> | ||||||
|  | ---
 | ||||||
|  |  setup.py | 7 ++++++- | ||||||
|  |  1 file changed, 6 insertions(+), 1 deletion(-) | ||||||
|  | 
 | ||||||
|  | diff --git a/setup.py b/setup.py
 | ||||||
|  | index a9132d2c..fdf27cd7 100755
 | ||||||
|  | --- a/setup.py
 | ||||||
|  | +++ b/setup.py
 | ||||||
|  | @@ -302,6 +302,11 @@ data_files = [
 | ||||||
|  |      ), | ||||||
|  |  ] | ||||||
|  |  if not platform.system().endswith("BSD"): | ||||||
|  | +
 | ||||||
|  | +    RULES_PATH = LIB
 | ||||||
|  | +    if os.path.isfile("/etc/redhat-release"):
 | ||||||
|  | +        RULES_PATH = "/usr/lib"
 | ||||||
|  | +
 | ||||||
|  |      data_files.extend( | ||||||
|  |          [ | ||||||
|  |              ( | ||||||
|  | @@ -309,7 +314,7 @@ if not platform.system().endswith("BSD"):
 | ||||||
|  |                  ["tools/hook-network-manager"], | ||||||
|  |              ), | ||||||
|  |              (ETC + "/dhcp/dhclient-exit-hooks.d/", ["tools/hook-dhclient"]), | ||||||
|  | -            (LIB + "/udev/rules.d", [f for f in glob("udev/*.rules")]),
 | ||||||
|  | +            (RULES_PATH + "/udev/rules.d", [f for f in glob("udev/*.rules")]),
 | ||||||
|  |              ( | ||||||
|  |                  ETC + "/systemd/system/sshd-keygen@.service.d/", | ||||||
|  |                  ["systemd/disable-sshd-keygen-if-cloud-init-active.conf"], | ||||||
|  | -- 
 | ||||||
|  | 2.35.1 | ||||||
|  | 
 | ||||||
| @ -1,6 +1,6 @@ | |||||||
| Name:           cloud-init | Name:           cloud-init | ||||||
| Version:        22.1 | Version:        22.1 | ||||||
| Release:        3%{?dist} | Release:        4%{?dist} | ||||||
| Summary:        Cloud instance init scripts | Summary:        Cloud instance init scripts | ||||||
| License:        ASL 2.0 or GPLv3 | License:        ASL 2.0 or GPLv3 | ||||||
| URL:            http://launchpad.net/cloud-init | URL:            http://launchpad.net/cloud-init | ||||||
| @ -27,6 +27,10 @@ Patch11: ci-Remove-rhel-specific-files.patch | |||||||
| Patch12: ci-Support-EC2-tags-in-instance-metadata-1309.patch | Patch12: ci-Support-EC2-tags-in-instance-metadata-1309.patch | ||||||
| # For bz#1980403 - [RHV] RHEL 9 VM with cloud-init without hostname set doesn't result in the FQDN as hostname | # For bz#1980403 - [RHV] RHEL 9 VM with cloud-init without hostname set doesn't result in the FQDN as hostname | ||||||
| Patch13: ci-cc_set_hostname-do-not-write-localhost-when-no-hostn.patch | Patch13: ci-cc_set_hostname-do-not-write-localhost-when-no-hostn.patch | ||||||
|  | # For bz#2061604 - cloud-config will change /etc/locale.conf back to en_US.UTF-8 on rhel-guest-image-9.0 | ||||||
|  | Patch14: ci-Honor-system-locale-for-RHEL-1355.patch | ||||||
|  | # For bz#2096270 - Adjust udev/rules default path[rhel-9] | ||||||
|  | Patch15: ci-setup.py-adjust-udev-rules-default-path-1513.patch | ||||||
| 
 | 
 | ||||||
| # Source-git patches | # Source-git patches | ||||||
| 
 | 
 | ||||||
| @ -207,7 +211,7 @@ fi | |||||||
| %dir /var/lib/cloud | %dir /var/lib/cloud | ||||||
| /etc/NetworkManager/dispatcher.d/cloud-init-azure-hook | /etc/NetworkManager/dispatcher.d/cloud-init-azure-hook | ||||||
| /etc/dhcp/dhclient-exit-hooks.d/hook-dhclient | /etc/dhcp/dhclient-exit-hooks.d/hook-dhclient | ||||||
| /lib/udev/rules.d/66-azure-ephemeral.rules | %{_udevrulesdir}/66-azure-ephemeral.rules | ||||||
| %{_datadir}/bash-completion/completions/cloud-init | %{_datadir}/bash-completion/completions/cloud-init | ||||||
| %{_bindir}/cloud-id | %{_bindir}/cloud-id | ||||||
| %{_systemdgeneratordir}/cloud-init-generator | %{_systemdgeneratordir}/cloud-init-generator | ||||||
| @ -217,6 +221,15 @@ fi | |||||||
| %config(noreplace) %{_sysconfdir}/rsyslog.d/21-cloudinit.conf | %config(noreplace) %{_sysconfdir}/rsyslog.d/21-cloudinit.conf | ||||||
| 
 | 
 | ||||||
| %changelog | %changelog | ||||||
|  | * Thu Jun 23 2022 Jon Maloy <jmaloy@redhat.com> - 22.1-4 | ||||||
|  | - ci-Honor-system-locale-for-RHEL-1355.patch [bz#2061604] | ||||||
|  | - ci-cloud-init.spec-adjust-path-for-66-azure-ephemeral.r.patch [bz#2096270] | ||||||
|  | - ci-setup.py-adjust-udev-rules-default-path-1513.patch [bz#2096270] | ||||||
|  | - Resolves: bz#2061604 | ||||||
|  |   (cloud-config will change /etc/locale.conf back to en_US.UTF-8 on rhel-guest-image-9.0) | ||||||
|  | - Resolves: bz#2096270 | ||||||
|  |   (Adjust udev/rules default path[rhel-9]) | ||||||
|  | 
 | ||||||
| * Wed Jun 08 2022 Miroslav Rezanina <mrezanin@redhat.com> - 22.1-3 | * Wed Jun 08 2022 Miroslav Rezanina <mrezanin@redhat.com> - 22.1-3 | ||||||
| - ci-Support-EC2-tags-in-instance-metadata-1309.patch [bz#2091640] | - ci-Support-EC2-tags-in-instance-metadata-1309.patch [bz#2091640] | ||||||
| - ci-cc_set_hostname-do-not-write-localhost-when-no-hostn.patch [bz#1980403] | - ci-cc_set_hostname-do-not-write-localhost-when-no-hostn.patch [bz#1980403] | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user