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 9afc38e..8ec3f40 100644 --- a/WALinuxAgent.spec +++ b/WALinuxAgent.spec @@ -2,7 +2,7 @@ %global dracut_modname 97walinuxagent Name: WALinuxAgent -Version: 2.2.52 +Version: 2.5.0.2 Release: 1 Summary: The Microsoft Azure Linux Agent @@ -12,21 +12,14 @@ 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 BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-distro Requires: %name-udev = %version-%release -Requires: openssh -Requires: openssh-server -Requires: openssl -Requires: parted -Requires: python3-pyasn1 +Requires: openssh openssh-server openssl parted python3-pyasn1 iptables BuildRequires: systemd Requires(post): systemd Requires(preun): systemd @@ -57,9 +50,6 @@ Udev rules specific to Microsoft Azure Virtual Machines. %prep %setup -q %patch0 -p1 -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 %build %py3_build @@ -87,7 +77,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} @@ -101,11 +90,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 @@ -122,5 +110,8 @@ install -m0755 -D -t %{buildroot}%{_prefix}/lib/dracut/modules.d/%{dracut_modnam %endif %changelog +* Fri Jun 10 2022 fushanqing - 2.5.0.2-1 +- update to 2.5.0.2 + * Thu Feb 17 2022 fushanqing - 2.2.52-1 - Initial package \ No newline at end of file diff --git a/WALinuxAgent.yaml b/WALinuxAgent.yaml new file mode 100644 index 0000000..63a4b40 --- /dev/null +++ b/WALinuxAgent.yaml @@ -0,0 +1,4 @@ +version_control: github +src_repo: Azure/WALinuxAgent +tag_prefix: ^v +separator: . \ No newline at end of file diff --git a/v2.2.52.tar.gz b/v2.2.52.tar.gz deleted file mode 100644 index ca2db2d..0000000 Binary files a/v2.2.52.tar.gz and /dev/null differ diff --git a/v2.5.0.2.tar.gz b/v2.5.0.2.tar.gz new file mode 100644 index 0000000..347d5ea Binary files /dev/null and b/v2.5.0.2.tar.gz differ