diff --git a/.gitignore b/.gitignore index 4336e5e..a526c1d 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,6 @@ /WALinuxAgent-2.2.52.tar.gz /v2.2.52.tar.gz /module-setup.sh +/v2.2.54.2.tar.gz +/v2.3.0.2.tar.gz +/v2.3.1.1.tar.gz diff --git a/0001-Install-systemd-unit-for-default-OS.patch b/0001-Install-systemd-unit-for-default-OS.patch new file mode 100644 index 0000000..3561c77 --- /dev/null +++ b/0001-Install-systemd-unit-for-default-OS.patch @@ -0,0 +1,42 @@ +From 53a8080be30553ecbd9262d721c9d3374b8e48e5 Mon Sep 17 00:00:00 2001 +From: Vitaly Kuznetsov +Date: Thu, 3 Jun 2021 12:48:02 +0200 +Subject: [PATCH] Install systemd unit for 'default' OS + +Fedora is not in the list but uses systemd and not sysv. + +Signed-off-by: Vitaly Kuznetsov +--- + azurelinuxagent/common/osutil/default.py | 2 +- + setup.py | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/azurelinuxagent/common/osutil/default.py b/azurelinuxagent/common/osutil/default.py +index 066e143136d7..fcb7d9b857dd 100644 +--- a/azurelinuxagent/common/osutil/default.py ++++ b/azurelinuxagent/common/osutil/default.py +@@ -146,7 +146,7 @@ class DefaultOSUtil(object): + + @staticmethod + def get_systemd_unit_file_install_path(): +- return "/lib/systemd/system" ++ return "/usr/lib/systemd/system" + + @staticmethod + def get_agent_bin_path(): +diff --git a/setup.py b/setup.py +index c258e4b878cc..b2ed8f4cde36 100755 +--- a/setup.py ++++ b/setup.py +@@ -194,7 +194,7 @@ def get_data_files(name, version, fullname): # pylint: disable=R0912 + set_conf_files(data_files) + set_logrotate_files(data_files) + set_udev_files(data_files) +- set_sysv_files(data_files) ++ set_systemd_files(data_files, dest=systemd_dir_path) + return data_files + + +-- +2.31.1 + diff --git a/0001-update-array.tostring-and-json.loads-without-encodin.patch b/0001-update-array.tostring-and-json.loads-without-encodin.patch deleted file mode 100644 index d88c41c..0000000 --- a/0001-update-array.tostring-and-json.loads-without-encodin.patch +++ /dev/null @@ -1,72 +0,0 @@ -From cc9b7996e542640bb19365822344298a04b18e44 Mon Sep 17 00:00:00 2001 -From: Paula Gombar -Date: Wed, 18 Nov 2020 12:24:33 -0800 -Subject: [PATCH 1/3] update array.tostring() and json.loads without encoding - for py3.9 - ---- - azurelinuxagent/common/osutil/bigip.py | 7 ++++++- - azurelinuxagent/common/osutil/default.py | 6 +++++- - tests/protocol/test_imds.py | 4 ++-- - 3 files changed, 13 insertions(+), 4 deletions(-) - -diff --git a/azurelinuxagent/common/osutil/bigip.py b/azurelinuxagent/common/osutil/bigip.py -index 61d3c695f911..ceadf8ca2066 100644 ---- a/azurelinuxagent/common/osutil/bigip.py -+++ b/azurelinuxagent/common/osutil/bigip.py -@@ -280,7 +280,12 @@ class BigIpOSUtil(DefaultOSUtil): - if retsize == (expected * struct_size): - logger.warn(('SIOCGIFCONF returned more than {0} up ' - 'network interfaces.'), expected) -- sock = buff.tostring() -+ try: -+ # Python 3.9 removed the tostring() method on arrays, tobytes() is the new alias -+ sock = buff.tostring() -+ except AttributeError: -+ sock = buff.tobytes() -+ - for i in range(0, struct_size * expected, struct_size): - iface = self._format_single_interface_name(sock, i) - -diff --git a/azurelinuxagent/common/osutil/default.py b/azurelinuxagent/common/osutil/default.py -index 521776818e64..6179061756e3 100644 ---- a/azurelinuxagent/common/osutil/default.py -+++ b/azurelinuxagent/common/osutil/default.py -@@ -758,7 +758,11 @@ class DefaultOSUtil(object): - logger.warn(('SIOCGIFCONF returned more than {0} up ' - 'network interfaces.'), expected) - -- ifconf_buff = buff.tostring() -+ try: -+ # Python 3.9 removed the tostring() method on arrays, tobytes() is the new alias -+ ifconf_buff = buff.tostring() -+ except AttributeError: -+ ifconf_buff = buff.tobytes() - - ifaces = {} - for i in range(0, array_size, struct_size): -diff --git a/tests/protocol/test_imds.py b/tests/protocol/test_imds.py -index a730ded03525..47462fd25ac3 100644 ---- a/tests/protocol/test_imds.py -+++ b/tests/protocol/test_imds.py -@@ -109,7 +109,7 @@ class TestImds(AgentTestCase): - "zone": "In" - }''' - -- data = json.loads(s, encoding='utf-8') -+ data = json.loads(s) - - compute_info = imds.ComputeInfo() - set_properties("compute", compute_info, data) -@@ -258,7 +258,7 @@ class TestImds(AgentTestCase): - "version": "{3}" - }}'''.format(publisher, offer, sku, version) - -- data = json.loads(s, encoding='utf-8') -+ data = json.loads(s) - compute_info = imds.ComputeInfo() - set_properties("compute", compute_info, data) - --- -2.26.2 - diff --git a/0002-handle-py3.9-check-in-future.py.patch b/0002-handle-py3.9-check-in-future.py.patch deleted file mode 100644 index d7c563a..0000000 --- a/0002-handle-py3.9-check-in-future.py.patch +++ /dev/null @@ -1,90 +0,0 @@ -From 66f600ed3d9f22c2aa6790002507d0c821a7fd0c Mon Sep 17 00:00:00 2001 -From: Paula Gombar -Date: Tue, 8 Dec 2020 18:38:33 -0800 -Subject: [PATCH 2/3] handle py3.9 check in future.py - ---- - azurelinuxagent/common/future.py | 13 ++++++++++++- - azurelinuxagent/common/osutil/bigip.py | 8 +++----- - azurelinuxagent/common/osutil/default.py | 9 ++------- - 3 files changed, 17 insertions(+), 13 deletions(-) - -diff --git a/azurelinuxagent/common/future.py b/azurelinuxagent/common/future.py -index 577fb12e186e..0f76aceba786 100644 ---- a/azurelinuxagent/common/future.py -+++ b/azurelinuxagent/common/future.py -@@ -103,4 +103,15 @@ def get_openwrt_platform(): - elif product_matches: - if product_matches.group(1) == "OpenWrt": - result[0] = "openwrt" -- return result -\ No newline at end of file -+ return result -+ -+ -+def array_to_string_or_bytes(buffer): -+ # Python 3.9 removed the tostring() method on arrays, the new alias is tobytes() -+ if sys.version_info[0] == 2: -+ return buffer.tostring() -+ -+ if sys.version_info[0] == 3 and sys.version_info[1] <= 8: -+ return buffer.tostring() -+ -+ return buffer.tobytes() -diff --git a/azurelinuxagent/common/osutil/bigip.py b/azurelinuxagent/common/osutil/bigip.py -index ceadf8ca2066..cc1b64143c12 100644 ---- a/azurelinuxagent/common/osutil/bigip.py -+++ b/azurelinuxagent/common/osutil/bigip.py -@@ -24,6 +24,8 @@ import socket - import struct - import time - -+from azurelinuxagent.common.future import array_to_string_or_bytes -+ - try: - # WAAgent > 2.1.3 - import azurelinuxagent.common.logger as logger -@@ -280,12 +282,8 @@ class BigIpOSUtil(DefaultOSUtil): - if retsize == (expected * struct_size): - logger.warn(('SIOCGIFCONF returned more than {0} up ' - 'network interfaces.'), expected) -- try: -- # Python 3.9 removed the tostring() method on arrays, tobytes() is the new alias -- sock = buff.tostring() -- except AttributeError: -- sock = buff.tobytes() - -+ sock = array_to_string_or_bytes(buff) - for i in range(0, struct_size * expected, struct_size): - iface = self._format_single_interface_name(sock, i) - -diff --git a/azurelinuxagent/common/osutil/default.py b/azurelinuxagent/common/osutil/default.py -index 6179061756e3..c1ca15cf64ef 100644 ---- a/azurelinuxagent/common/osutil/default.py -+++ b/azurelinuxagent/common/osutil/default.py -@@ -41,7 +41,7 @@ import azurelinuxagent.common.utils.fileutil as fileutil - import azurelinuxagent.common.utils.shellutil as shellutil - import azurelinuxagent.common.utils.textutil as textutil - from azurelinuxagent.common.exception import OSUtilError --from azurelinuxagent.common.future import ustr -+from azurelinuxagent.common.future import ustr, array_to_string_or_bytes - from azurelinuxagent.common.utils.cryptutil import CryptUtil - from azurelinuxagent.common.utils.flexible_version import FlexibleVersion - from azurelinuxagent.common.utils.networkutil import RouteEntry, NetworkInterfaceCard -@@ -758,12 +758,7 @@ class DefaultOSUtil(object): - logger.warn(('SIOCGIFCONF returned more than {0} up ' - 'network interfaces.'), expected) - -- try: -- # Python 3.9 removed the tostring() method on arrays, tobytes() is the new alias -- ifconf_buff = buff.tostring() -- except AttributeError: -- ifconf_buff = buff.tobytes() -- -+ ifconf_buff = array_to_string_or_bytes(buff) - ifaces = {} - for i in range(0, array_size, struct_size): - iface = ifconf_buff[i:i+IFNAMSIZ].split(b'\0', 1)[0] --- -2.26.2 - diff --git a/0003-fix-pylint.patch b/0003-fix-pylint.patch deleted file mode 100644 index 03b887c..0000000 --- a/0003-fix-pylint.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 90f1a4862cf63df4a96ad912effcfb54192ad4d7 Mon Sep 17 00:00:00 2001 -From: Paula Gombar -Date: Tue, 8 Dec 2020 18:53:57 -0800 -Subject: [PATCH 3/3] fix pylint - ---- - azurelinuxagent/common/future.py | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/azurelinuxagent/common/future.py b/azurelinuxagent/common/future.py -index 0f76aceba786..a6796f19fec2 100644 ---- a/azurelinuxagent/common/future.py -+++ b/azurelinuxagent/common/future.py -@@ -106,12 +106,12 @@ def get_openwrt_platform(): - return result - - --def array_to_string_or_bytes(buffer): -+def array_to_string_or_bytes(buff): - # Python 3.9 removed the tostring() method on arrays, the new alias is tobytes() - if sys.version_info[0] == 2: -- return buffer.tostring() -+ return buff.tostring() - - if sys.version_info[0] == 3 and sys.version_info[1] <= 8: -- return buffer.tostring() -+ return buff.tostring() - -- return buffer.tobytes() -+ return buff.tobytes() --- -2.26.2 - diff --git a/0004-Fix-distro-resolution-for-RedHat-2083.patch b/0004-Fix-distro-resolution-for-RedHat-2083.patch deleted file mode 100644 index e0ce7b2..0000000 --- a/0004-Fix-distro-resolution-for-RedHat-2083.patch +++ /dev/null @@ -1,64 +0,0 @@ -From 3420fef144cf9a5be62cfae16f64c298ca397a17 Mon Sep 17 00:00:00 2001 -From: Paula Gombar -Date: Wed, 2 Dec 2020 21:36:41 -0800 -Subject: [PATCH] Fix distro resolution for RedHat (#2083) - -vkuznets: cherry-picking the primary change of the commit (adding 'rhel') -only, pylint changes require additional commits. - -Signed-off-by: Vitaly Kuznetsov ---- - azurelinuxagent/common/osutil/factory.py | 4 +--- - tests/common/osutil/test_factory.py | 14 ++++++++++++++ - 2 files changed, 15 insertions(+), 3 deletions(-) - -diff --git a/azurelinuxagent/common/osutil/factory.py b/azurelinuxagent/common/osutil/factory.py -index 69f8430052d5..caecaa0887e2 100644 ---- a/azurelinuxagent/common/osutil/factory.py -+++ b/azurelinuxagent/common/osutil/factory.py -@@ -97,9 +97,7 @@ def _get_osutil(distro_name, distro_code_name, distro_version, distro_full_name) - else: - return DebianOSBaseUtil() - -- if distro_name == "redhat" \ -- or distro_name == "centos" \ -- or distro_name == "oracle": -+ if distro_name in ("redhat", "rhel", "centos", "oracle"): - if Version(distro_version) < Version("7"): - return Redhat6xOSUtil() - else: -diff --git a/tests/common/osutil/test_factory.py b/tests/common/osutil/test_factory.py -index aa7daebcf25f..2ac0849f75c9 100644 ---- a/tests/common/osutil/test_factory.py -+++ b/tests/common/osutil/test_factory.py -@@ -188,6 +188,13 @@ class TestOsUtilFactory(AgentTestCase): - self.assertTrue(type(ret) == Redhat6xOSUtil) - self.assertEquals(ret.get_service_name(), "waagent") - -+ ret = _get_osutil(distro_name="rhel", -+ distro_code_name="", -+ distro_full_name="", -+ distro_version="6") -+ self.assertTrue(type(ret) == Redhat6xOSUtil) -+ self.assertEquals(ret.get_service_name(), "waagent") -+ - ret = _get_osutil(distro_name="centos", - distro_code_name="", - distro_full_name="", -@@ -209,6 +216,13 @@ class TestOsUtilFactory(AgentTestCase): - self.assertTrue(type(ret) == RedhatOSUtil) - self.assertEquals(ret.get_service_name(), "waagent") - -+ ret = _get_osutil(distro_name="rhel", -+ distro_code_name="", -+ distro_full_name="", -+ distro_version="7") -+ self.assertTrue(type(ret) == RedhatOSUtil) -+ self.assertEquals(ret.get_service_name(), "waagent") -+ - ret = _get_osutil(distro_name="centos", - distro_code_name="", - distro_full_name="", --- -2.29.2 - diff --git a/WALinuxAgent.spec b/WALinuxAgent.spec index 3461261..47f83c4 100644 --- a/WALinuxAgent.spec +++ b/WALinuxAgent.spec @@ -2,8 +2,8 @@ %global dracut_modname 97walinuxagent Name: WALinuxAgent -Version: 2.2.52 -Release: 4%{?dist} +Version: 2.3.1.1 +Release: 1%{?dist} Summary: The Microsoft Azure Linux Agent License: ASL 2.0 @@ -11,11 +11,7 @@ URL: https://github.com/Azure/%{name} Source0: https://github.com/Azure/%{name}/archive/v%{version}.tar.gz Source1: module-setup.sh -# Python3.9 fixes -Patch0: 0001-update-array.tostring-and-json.loads-without-encodin.patch -Patch1: 0002-handle-py3.9-check-in-future.py.patch -Patch2: 0003-fix-pylint.patch -Patch3: 0004-Fix-distro-resolution-for-RedHat-2083.patch +Patch0: 0001-Install-systemd-unit-for-default-OS.patch BuildArch: noarch @@ -23,12 +19,15 @@ BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-distro Requires: %name-udev = %version-%release +%if 0%{?fedora} Requires: ntfsprogs +%endif Requires: openssh Requires: openssh-server Requires: openssl Requires: parted Requires: python3-pyasn1 +Requires: iptables BuildRequires: systemd Requires(post): systemd @@ -60,9 +59,6 @@ Udev rules specific to Microsoft Azure Virtual Machines. %prep %setup -q %patch0 -p1 -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 %build %py3_build @@ -90,7 +86,6 @@ rm -f %{buildroot}%{_sbindir}/waagent2.0 sed -i 's,/usr/bin/python ,/usr/bin/python3 ,' %{buildroot}%{_unitdir}/waagent.service mv %{buildroot}%{_sysconfdir}/logrotate.d/waagent.logrotate %{buildroot}%{_sysconfdir}/logrotate.d/%{name} -mv %{buildroot}%{_sysconfdir}/logrotate.d/waagent-extn.logrotate %{buildroot}%{_sysconfdir}/logrotate.d/%{name}-extn install -m0755 -D -t %{buildroot}%{_prefix}/lib/dracut/modules.d/%{dracut_modname}/ %{SOURCE1} @@ -104,11 +99,10 @@ install -m0755 -D -t %{buildroot}%{_prefix}/lib/dracut/modules.d/%{dracut_modnam %systemd_postun_with_restart waagent.service %files -%doc Changelog LICENSE.txt NOTICE README.md +%doc LICENSE.txt NOTICE README.md %ghost %{_localstatedir}/log/waagent.log %dir %attr(0700, root, root) %{_sharedstatedir}/waagent %config(noreplace) %{_sysconfdir}/logrotate.d/%{name} -%config(noreplace) %{_sysconfdir}/logrotate.d/%{name}-extn %{_sbindir}/waagent %config(noreplace) %{_sysconfdir}/waagent.conf %{_unitdir}/waagent.service @@ -125,6 +119,19 @@ install -m0755 -D -t %{buildroot}%{_prefix}/lib/dracut/modules.d/%{dracut_modnam %endif %changelog +* Mon Jul 19 2021 Vitaly Kuznetsov - 2.3.1.1-1 +- Update to 2.3.1.1 (#1982512) +- Require iptables for setting up persistent firewall rules + +* Tue Jun 15 2021 Vitaly Kuznetsov - 2.3.0.2-1 +- Update to 2.3.0.2 (#1971116) + +* Fri May 21 2021 Vitaly Kuznetsov - 2.2.54.2-1 +- Update to 2.2.54.2 (#1916966) + +* Fri Feb 19 2021 Vitaly Kuznetsov - 2.2.52-5 +- Require ntfsprogs on Fedora only + * Tue Jan 26 2021 Vitaly Kuznetsov - 2.2.52-4 - Fix distro resolution for RedHat diff --git a/sources b/sources index 0a8ac9b..564548e 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (v2.2.52.tar.gz) = b8d71cb4873b7e9cf92c755884bb104e5e37f171fbdae3d702b2b005a461b8f5447c9dcc80037ff0bfe9950ffbcb901e023e0bda918f481f5336c8ecbaecbbcc +SHA512 (v2.3.1.1.tar.gz) = d68a622f0280d442e02b34ddac668f466252a7ed4581af63eb88df544ddb0808db04a3f35e24c1202c974ad6b7aa1e30ed1d4a3c14a3ba0a12de02fa3a5c4406 SHA512 (module-setup.sh) = c05ed7395006c78bae1a7727b64c4b00a14e2c37e0d8a6ae7c05905a86d4ba638a2b98e4642ecd9a98db38298ff99f4877f900965a97f933b9aa034488835394