From nobody Wed May 15 20:52:30 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1645654485363482.4717314171304; Wed, 23 Feb 2022 14:14:45 -0800 (PST) Received: from localhost ([::1]:37870 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nMzuG-0000iL-1T for importer@patchew.org; Wed, 23 Feb 2022 17:14:44 -0500 Received: from eggs.gnu.org ([209.51.188.92]:54828) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nMzp6-0000ul-39 for qemu-devel@nongnu.org; Wed, 23 Feb 2022 17:09:24 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:36305) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nMzp1-0005re-BX for qemu-devel@nongnu.org; Wed, 23 Feb 2022 17:09:23 -0500 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-408-zvQ4cMCtOFGxx82TbaMqdw-1; Wed, 23 Feb 2022 17:09:15 -0500 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 4CB25FC82; Wed, 23 Feb 2022 22:09:14 +0000 (UTC) Received: from scv.redhat.com (unknown [10.22.16.166]) by smtp.corp.redhat.com (Postfix) with ESMTP id 5613F709E6; Wed, 23 Feb 2022 22:09:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1645654158; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=9lizLbjnleLuPHba0e+r2oWDlL2Oo93AzdEmVEKdjiY=; b=YNiJx2vC1+Vi5uJ4mVoF+Lvj0syAsDeKTxFyAOHUDlXSL/gy4SbWaYnqLle6WwwJAJgdeh qTTZ/J0WGdQTsjgKUZIFExDw/nQ+BpBcAKjj9pdZZz7peBfNUx7kuFp9dVTOFuic+isyt1 X+s1YR+LwV1meZJegHq8BsPAN8sj1vs= X-MC-Unique: zvQ4cMCtOFGxx82TbaMqdw-1 From: John Snow To: qemu-devel@nongnu.org Subject: [PULL 1/6] python: introduce qmp-shell-wrap convenience tool Date: Wed, 23 Feb 2022 17:08:55 -0500 Message-Id: <20220223220900.2226630-2-jsnow@redhat.com> In-Reply-To: <20220223220900.2226630-1-jsnow@redhat.com> References: <20220223220900.2226630-1-jsnow@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=jsnow@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=jsnow@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -28 X-Spam_score: -2.9 X-Spam_bar: -- X-Spam_report: (-2.9 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.082, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , Peter Maydell , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Beraldo Leal , qemu-block@nongnu.org, Markus Armbruster , Eduardo Habkost , Hanna Reitz , Cleber Rosa , John Snow Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1645654487243100003 From: Daniel P. Berrang=C3=A9 With the current 'qmp-shell' tool developers must first spawn QEMU with a suitable -qmp arg and then spawn qmp-shell in a separate terminal pointing to the right socket. With 'qmp-shell-wrap' developers can ignore QMP sockets entirely and just pass the QEMU command and arguments they want. The program will listen on a UNIX socket and tell QEMU to connect QMP to that. For example, this: # qmp-shell-wrap -- qemu-system-x86_64 -display none Is roughly equivalent of running: # qemu-system-x86_64 -display none -qmp qmp-shell-1234 & # qmp-shell qmp-shell-1234 Except that 'qmp-shell-wrap' switches the socket peers around so that it is the UNIX socket server and QEMU is the socket client. This makes QEMU reliably go away when qmp-shell-wrap exits, closing the server socket. Signed-off-by: Daniel P. Berrang=C3=A9 Message-id: 20220128161157.36261-2-berrange@redhat.com [Edited for rebase. --js] Signed-off-by: John Snow --- python/qemu/aqmp/qmp_shell.py | 65 ++++++++++++++++++++++++++++++++--- python/setup.cfg | 1 + scripts/qmp/qmp-shell-wrap | 11 ++++++ 3 files changed, 73 insertions(+), 4 deletions(-) create mode 100755 scripts/qmp/qmp-shell-wrap diff --git a/python/qemu/aqmp/qmp_shell.py b/python/qemu/aqmp/qmp_shell.py index d11bf54b00..c60df787fc 100644 --- a/python/qemu/aqmp/qmp_shell.py +++ b/python/qemu/aqmp/qmp_shell.py @@ -86,6 +86,7 @@ import os import re import readline +from subprocess import Popen import sys from typing import ( Iterator, @@ -167,8 +168,10 @@ class QMPShell(QEMUMonitorProtocol): :param verbose: Echo outgoing QMP messages to console. """ def __init__(self, address: SocketAddrT, - pretty: bool =3D False, verbose: bool =3D False): - super().__init__(address) + pretty: bool =3D False, + verbose: bool =3D False, + server: bool =3D False): + super().__init__(address, server=3Dserver) self._greeting: Optional[QMPMessage] =3D None self._completer =3D QMPCompleter() self._transmode =3D False @@ -409,8 +412,10 @@ class HMPShell(QMPShell): :param verbose: Echo outgoing QMP messages to console. """ def __init__(self, address: SocketAddrT, - pretty: bool =3D False, verbose: bool =3D False): - super().__init__(address, pretty, verbose) + pretty: bool =3D False, + verbose: bool =3D False, + server: bool =3D False): + super().__init__(address, pretty, verbose, server) self._cpu_index =3D 0 =20 def _cmd_completion(self) -> None: @@ -533,5 +538,57 @@ def main() -> None: pass =20 =20 +def main_wrap() -> None: + """ + qmp-shell-wrap entry point: parse command line arguments and + start the REPL. + """ + parser =3D argparse.ArgumentParser() + parser.add_argument('-H', '--hmp', action=3D'store_true', + help=3D'Use HMP interface') + parser.add_argument('-v', '--verbose', action=3D'store_true', + help=3D'Verbose (echo commands sent and received)') + parser.add_argument('-p', '--pretty', action=3D'store_true', + help=3D'Pretty-print JSON') + + parser.add_argument('command', nargs=3Dargparse.REMAINDER, + help=3D'QEMU command line to invoke') + + args =3D parser.parse_args() + + cmd =3D args.command + if len(cmd) !=3D 0 and cmd[0] =3D=3D '--': + cmd =3D cmd[1:] + if len(cmd) =3D=3D 0: + cmd =3D ["qemu-system-x86_64"] + + sockpath =3D "qmp-shell-wrap-%d" % os.getpid() + cmd +=3D ["-qmp", "unix:%s" % sockpath] + + shell_class =3D HMPShell if args.hmp else QMPShell + + try: + address =3D shell_class.parse_address(sockpath) + except QMPBadPortError: + parser.error(f"Bad port number: {sockpath}") + return # pycharm doesn't know error() is noreturn + + try: + with shell_class(address, args.pretty, args.verbose, True) as qemu: + with Popen(cmd): + + try: + qemu.accept() + except ConnectError as err: + if isinstance(err.exc, OSError): + die(f"Couldn't connect to {args.qmp_server}: {err!= s}") + die(str(err)) + + for _ in qemu.repl(): + pass + finally: + os.unlink(sockpath) + + if __name__ =3D=3D '__main__': main() diff --git a/python/setup.cfg b/python/setup.cfg index 18aea2bab3..0959603238 100644 --- a/python/setup.cfg +++ b/python/setup.cfg @@ -68,6 +68,7 @@ console_scripts =3D qom-fuse =3D qemu.utils.qom_fuse:QOMFuse.entry_point [fuse] qemu-ga-client =3D qemu.utils.qemu_ga_client:main qmp-shell =3D qemu.aqmp.qmp_shell:main + qmp-shell-wrap =3D qemu.aqmp.qmp_shell:main_wrap aqmp-tui =3D qemu.aqmp.aqmp_tui:main [tui] =20 [flake8] diff --git a/scripts/qmp/qmp-shell-wrap b/scripts/qmp/qmp-shell-wrap new file mode 100755 index 0000000000..9e94da114f --- /dev/null +++ b/scripts/qmp/qmp-shell-wrap @@ -0,0 +1,11 @@ +#!/usr/bin/env python3 + +import os +import sys + +sys.path.append(os.path.join(os.path.dirname(__file__), '..', '..', 'pytho= n')) +from qemu.qmp import qmp_shell + + +if __name__ =3D=3D '__main__': + qmp_shell.main_wrap() --=20 2.34.1 From nobody Wed May 15 20:52:30 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1645654641224805.0869024617375; Wed, 23 Feb 2022 14:17:21 -0800 (PST) Received: from localhost ([::1]:43676 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nMzwm-0004hg-1Z for importer@patchew.org; Wed, 23 Feb 2022 17:17:20 -0500 Received: from eggs.gnu.org ([209.51.188.92]:54840) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nMzp6-0000wH-JU for qemu-devel@nongnu.org; Wed, 23 Feb 2022 17:09:24 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:37284) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nMzp2-0005ru-LV for qemu-devel@nongnu.org; Wed, 23 Feb 2022 17:09:24 -0500 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-26-f65Gn2ubOnSdOc6Zyn6WRA-1; Wed, 23 Feb 2022 17:09:17 -0500 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id CCBB81854E21; Wed, 23 Feb 2022 22:09:15 +0000 (UTC) Received: from scv.redhat.com (unknown [10.22.16.166]) by smtp.corp.redhat.com (Postfix) with ESMTP id 6EF6C709E5; Wed, 23 Feb 2022 22:09:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1645654160; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=witYTbxr9oKRoIKPRd/6sWMysbcp/swIQLQwQNY0iXU=; b=XsAa96EGkB1sx6rbV3JNytGPweOIR9kr43YTkSo+GdJouu9P3c35MzLMmxOpzEN7P41ioV 0EzokNBNjA3Ps63tBqq0L83mJkVzJft9XqoD+Z+JHBvXMtMn3qcYU069JsGHdpf9gVikZ8 hdHIosKttiqu+ipgwJzIBaeN8rgkif8= X-MC-Unique: f65Gn2ubOnSdOc6Zyn6WRA-1 From: John Snow To: qemu-devel@nongnu.org Subject: [PULL 2/6] python: support recording QMP session to a file Date: Wed, 23 Feb 2022 17:08:56 -0500 Message-Id: <20220223220900.2226630-3-jsnow@redhat.com> In-Reply-To: <20220223220900.2226630-1-jsnow@redhat.com> References: <20220223220900.2226630-1-jsnow@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=jsnow@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=jsnow@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -28 X-Spam_score: -2.9 X-Spam_bar: -- X-Spam_report: (-2.9 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.082, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , Peter Maydell , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Beraldo Leal , qemu-block@nongnu.org, Markus Armbruster , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Eduardo Habkost , Hanna Reitz , Cleber Rosa , John Snow Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1645654643842100001 From: Daniel P. Berrang=C3=A9 When running QMP commands with very large response payloads, it is often not easy to spot the info you want. If we can save the response to a file then tools like 'grep' or 'jq' can be used to extract information. For convenience of processing, we merge the QMP command and response dictionaries together: { "arguments": {}, "execute": "query-kvm", "return": { "enabled": false, "present": true } } Example usage $ ./scripts/qmp/qmp-shell-wrap -l q.log -p -- ./build/qemu-system-x86_64 = -display none Welcome to the QMP low-level shell! Connected (QEMU) query-kvm { "return": { "enabled": false, "present": true } } (QEMU) query-mice { "return": [ { "absolute": false, "current": true, "index": 2, "name": "QEMU PS/2 Mouse" } ] } $ jq --slurp '. | to_entries[] | select(.value.execute =3D=3D "query-kvm")= | .value.return.enabled' < q.log false Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Daniel P. Berrang=C3=A9 Message-id: 20220128161157.36261-3-berrange@redhat.com Signed-off-by: John Snow --- python/qemu/aqmp/qmp_shell.py | 29 ++++++++++++++++++++++------- python/setup.cfg | 3 +++ 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/python/qemu/aqmp/qmp_shell.py b/python/qemu/aqmp/qmp_shell.py index c60df787fc..35691494d0 100644 --- a/python/qemu/aqmp/qmp_shell.py +++ b/python/qemu/aqmp/qmp_shell.py @@ -89,6 +89,7 @@ from subprocess import Popen import sys from typing import ( + IO, Iterator, List, NoReturn, @@ -170,7 +171,8 @@ class QMPShell(QEMUMonitorProtocol): def __init__(self, address: SocketAddrT, pretty: bool =3D False, verbose: bool =3D False, - server: bool =3D False): + server: bool =3D False, + logfile: Optional[str] =3D None): super().__init__(address, server=3Dserver) self._greeting: Optional[QMPMessage] =3D None self._completer =3D QMPCompleter() @@ -180,6 +182,10 @@ def __init__(self, address: SocketAddrT, '.qmp-shell_history') self.pretty =3D pretty self.verbose =3D verbose + self.logfile =3D None + + if logfile is not None: + self.logfile =3D open(logfile, "w", encoding=3D'utf-8') =20 def close(self) -> None: # Hook into context manager of parent to save shell history. @@ -320,11 +326,11 @@ def _build_cmd(self, cmdline: str) -> Optional[QMPMes= sage]: self._cli_expr(cmdargs[1:], qmpcmd['arguments']) return qmpcmd =20 - def _print(self, qmp_message: object) -> None: + def _print(self, qmp_message: object, fh: IO[str] =3D sys.stdout) -> N= one: jsobj =3D json.dumps(qmp_message, indent=3D4 if self.pretty else None, sort_keys=3Dself.pretty) - print(str(jsobj)) + print(str(jsobj), file=3Dfh) =20 def _execute_cmd(self, cmdline: str) -> bool: try: @@ -347,6 +353,9 @@ def _execute_cmd(self, cmdline: str) -> bool: print('Disconnected') return False self._print(resp) + if self.logfile is not None: + cmd =3D {**qmpcmd, **resp} + self._print(cmd, fh=3Dself.logfile) return True =20 def connect(self, negotiate: bool =3D True) -> None: @@ -414,8 +423,9 @@ class HMPShell(QMPShell): def __init__(self, address: SocketAddrT, pretty: bool =3D False, verbose: bool =3D False, - server: bool =3D False): - super().__init__(address, pretty, verbose, server) + server: bool =3D False, + logfile: Optional[str] =3D None): + super().__init__(address, pretty, verbose, server, logfile) self._cpu_index =3D 0 =20 def _cmd_completion(self) -> None: @@ -508,6 +518,8 @@ def main() -> None: help=3D'Verbose (echo commands sent and received)') parser.add_argument('-p', '--pretty', action=3D'store_true', help=3D'Pretty-print JSON') + parser.add_argument('-l', '--logfile', + help=3D'Save log of all QMP messages to PATH') =20 default_server =3D os.environ.get('QMP_SOCKET') parser.add_argument('qmp_server', action=3D'store', @@ -526,7 +538,7 @@ def main() -> None: parser.error(f"Bad port number: {args.qmp_server}") return # pycharm doesn't know error() is noreturn =20 - with shell_class(address, args.pretty, args.verbose) as qemu: + with shell_class(address, args.pretty, args.verbose, args.logfile) as = qemu: try: qemu.connect(negotiate=3Dnot args.skip_negotiation) except ConnectError as err: @@ -550,6 +562,8 @@ def main_wrap() -> None: help=3D'Verbose (echo commands sent and received)') parser.add_argument('-p', '--pretty', action=3D'store_true', help=3D'Pretty-print JSON') + parser.add_argument('-l', '--logfile', + help=3D'Save log of all QMP messages to PATH') =20 parser.add_argument('command', nargs=3Dargparse.REMAINDER, help=3D'QEMU command line to invoke') @@ -574,7 +588,8 @@ def main_wrap() -> None: return # pycharm doesn't know error() is noreturn =20 try: - with shell_class(address, args.pretty, args.verbose, True) as qemu: + with shell_class(address, args.pretty, args.verbose, + True, args.logfile) as qemu: with Popen(cmd): =20 try: diff --git a/python/setup.cfg b/python/setup.cfg index 0959603238..9821db9880 100644 --- a/python/setup.cfg +++ b/python/setup.cfg @@ -114,7 +114,10 @@ ignore_missing_imports =3D True # no Warning level messages displayed, use "--disable=3Dall --enable=3Dcla= sses # --disable=3DW". disable=3Dconsider-using-f-string, + consider-using-with, + too-many-arguments, too-many-function-args, # mypy handles this with less false posit= ives. + too-many-instance-attributes, no-member, # mypy also handles this better. =20 [pylint.basic] --=20 2.34.1 From nobody Wed May 15 20:52:30 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1645654315796965.6492443233208; Wed, 23 Feb 2022 14:11:55 -0800 (PST) Received: from localhost ([::1]:58410 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nMzrW-00041T-U0 for importer@patchew.org; Wed, 23 Feb 2022 17:11:54 -0500 Received: from eggs.gnu.org ([209.51.188.92]:54896) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nMzp8-00010t-2X for qemu-devel@nongnu.org; Wed, 23 Feb 2022 17:09:26 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:52890) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nMzp5-0005sI-MQ for qemu-devel@nongnu.org; Wed, 23 Feb 2022 17:09:25 -0500 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-669-VDNx6z-bMhOu6gyCsWoyUg-1; Wed, 23 Feb 2022 17:09:18 -0500 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 06D568145F0; Wed, 23 Feb 2022 22:09:17 +0000 (UTC) Received: from scv.redhat.com (unknown [10.22.16.166]) by smtp.corp.redhat.com (Postfix) with ESMTP id F0AE8709E5; Wed, 23 Feb 2022 22:09:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1645654162; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=YWsFNrDith/OR/Vykh2sZYZFIHsfrC69qr+hpaSmqHE=; b=XsmbPd3U8LUmwWIj2VqaCmtMAOtQgOyOh/DeCyQX+IHBRVtLSlX2hYYcYcGOSe+tvqzaGK 8WY8kTkxhfqM26bNaVtOEZTc3jGFgqk/u/hn5NJ8chRHuw3RTqf6iYSYCRPAXcxUpZCBY2 MyDWvU5YITF2aBuwoTGrVsUTqDD1wj4= X-MC-Unique: VDNx6z-bMhOu6gyCsWoyUg-1 From: John Snow To: qemu-devel@nongnu.org Subject: [PULL 3/6] Python: discourage direct setup.py install Date: Wed, 23 Feb 2022 17:08:57 -0500 Message-Id: <20220223220900.2226630-4-jsnow@redhat.com> In-Reply-To: <20220223220900.2226630-1-jsnow@redhat.com> References: <20220223220900.2226630-1-jsnow@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=jsnow@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=jsnow@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -28 X-Spam_score: -2.9 X-Spam_bar: -- X-Spam_report: (-2.9 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.082, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , Peter Maydell , =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= , Beraldo Leal , qemu-block@nongnu.org, Markus Armbruster , Eduardo Habkost , Hanna Reitz , Cleber Rosa , John Snow Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1645654318024100001 When invoking setup.py directly, the default behavior for 'install' is to run the bdist_egg installation hook, which is ... actually deprecated by setuptools. It doesn't seem to work quite right anymore. By contrast, 'pip install' will invoke the bdist_wheel hook instead. This leads to differences in behavior for the two approaches. I advocate using pip in the documentation in this directory, but the 'setup.py' which has been used for quite a long time in the Python world may deceptively appear to work at first glance. Add an error message that will save a bit of time and frustration that points the user towards using the supported installation invocation. Reported-by: Daniel P. Berrang=C3=A9 Signed-off-by: John Snow Reviewed-by: Beraldo Leal Message-id: 20220207213039.2278569-1-jsnow@redhat.com Signed-off-by: John Snow --- python/setup.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/python/setup.py b/python/setup.py index 2014f81b75..c5bc45919a 100755 --- a/python/setup.py +++ b/python/setup.py @@ -5,9 +5,26 @@ """ =20 import setuptools +from setuptools.command import bdist_egg +import sys import pkg_resources =20 =20 +class bdist_egg_guard(bdist_egg.bdist_egg): + """ + Protect against bdist_egg from being executed + + This prevents calling 'setup.py install' directly, as the 'install' + CLI option will invoke the deprecated bdist_egg hook. "pip install" + calls the more modern bdist_wheel hook, which is what we want. + """ + def run(self): + sys.exit( + 'Installation directly via setup.py is not supported.\n' + 'Please use `pip install .` instead.' + ) + + def main(): """ QEMU tooling installer @@ -16,7 +33,7 @@ def main(): # https://medium.com/@daveshawley/safely-using-setup-cfg-for-metadata-= 1babbe54c108 pkg_resources.require('setuptools>=3D39.2') =20 - setuptools.setup() + setuptools.setup(cmdclass=3D{'bdist_egg': bdist_egg_guard}) =20 =20 if __name__ =3D=3D '__main__': --=20 2.34.1 From nobody Wed May 15 20:52:30 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1645654355211412.90419519661464; Wed, 23 Feb 2022 14:12:35 -0800 (PST) Received: from localhost ([::1]:60384 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nMzsA-0005Jl-5T for importer@patchew.org; Wed, 23 Feb 2022 17:12:34 -0500 Received: from eggs.gnu.org ([209.51.188.92]:54960) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nMzpB-0001Cd-4F for qemu-devel@nongnu.org; Wed, 23 Feb 2022 17:09:29 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:53307) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nMzp6-0005t7-U8 for qemu-devel@nongnu.org; Wed, 23 Feb 2022 17:09:28 -0500 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-111-e_tp3NoiOAqr1A5uMOba_g-1; Wed, 23 Feb 2022 17:09:19 -0500 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 2164B1854E26; Wed, 23 Feb 2022 22:09:18 +0000 (UTC) Received: from scv.redhat.com (unknown [10.22.16.166]) by smtp.corp.redhat.com (Postfix) with ESMTP id 2CC70709E5; Wed, 23 Feb 2022 22:09:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1645654164; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=9fhjKS2UF+cyeo0+YKfjJ73HBzQJshvaodgG4K0w0Fg=; b=eM/4pvZeo9TVOZb7NaMHDZN6E+yc8bFkfgHW/bks/l0/aXLhnmUenrM20yrsNEQD+roZRw OBIg18/5S+yQBDtZ92NpqMbLblEkOVN5Nspv/tQVtGHMv2UzsgeEGKmoZDPD5D9ec9R7da fKWT+yleKXMRJiukwQ8FLuR2JFqPr9Y= X-MC-Unique: e_tp3NoiOAqr1A5uMOba_g-1 From: John Snow To: qemu-devel@nongnu.org Subject: [PULL 4/6] Python: add setuptools v60.0 workaround Date: Wed, 23 Feb 2022 17:08:58 -0500 Message-Id: <20220223220900.2226630-5-jsnow@redhat.com> In-Reply-To: <20220223220900.2226630-1-jsnow@redhat.com> References: <20220223220900.2226630-1-jsnow@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=jsnow@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=jsnow@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -28 X-Spam_score: -2.9 X-Spam_bar: -- X-Spam_report: (-2.9 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.082, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , Peter Maydell , Beraldo Leal , qemu-block@nongnu.org, Markus Armbruster , Eduardo Habkost , Hanna Reitz , Cleber Rosa , John Snow Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1645654356238100001 Content-Type: text/plain; charset="utf-8" Setuptools v60 and later include a bundled version of distutils, a deprecated standard library scheduled for removal in future versions of Python. Setuptools v60 is only possible to install for Python 3.7 and later. Python has a distutils.sysconfig.get_python_lib() function that returns '/usr/lib/pythonX.Y' on posix systems. RPM-based systems actually use '/usr/lib64/pythonX.Y' instead, so Fedora patches stdlib distutils for Python 3.7 and Python 3.8 to return the correct value. Python 3.9 and later introduce a sys.platlibdir property, which returns the correct value on RPM-based systems. The change to a distutils package not provided by Fedora on Python 3.7 and 3.8 causes a regression in distutils.sysconfig.get_python_lib() that ultimately causes false positives to be emitted by pylint, because it can no longer find the system source libraries. Many Python tools are fairly aggressive about updating setuptools packages, and so even though this package is a fair bit newer than Python 3.7/3.8, it's not entirely unreasonable for a given user to have such a modern package with a fairly old Python interpreter. Updates to Python 3.7 and Python 3.8 are being produced for Fedora which will fix the problem on up-to-date systems. Until then, we can force the loading of platform-provided distutils when running the pylint test. This is the least-invasive yet most comprehensive fix. References: https://github.com/pypa/setuptools/pull/2896 https://github.com/PyCQA/pylint/issues/5704 https://github.com/pypa/distutils/issues/110 Signed-off-by: John Snow Message-id: 20220204221804.2047468-2-jsnow@redhat.com Signed-off-by: John Snow --- python/tests/iotests-pylint.sh | 3 ++- python/tests/pylint.sh | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/python/tests/iotests-pylint.sh b/python/tests/iotests-pylint.sh index 4cae03424b..33c5ae900a 100755 --- a/python/tests/iotests-pylint.sh +++ b/python/tests/iotests-pylint.sh @@ -1,4 +1,5 @@ #!/bin/sh -e =20 cd ../tests/qemu-iotests/ -python3 -m linters --pylint +# See commit message for environment variable explainer. +SETUPTOOLS_USE_DISTUTILS=3Dstdlib python3 -m linters --pylint diff --git a/python/tests/pylint.sh b/python/tests/pylint.sh index 4b10b34db7..03d64705a1 100755 --- a/python/tests/pylint.sh +++ b/python/tests/pylint.sh @@ -1,2 +1,3 @@ #!/bin/sh -e -python3 -m pylint qemu/ +# See commit message for environment variable explainer. +SETUPTOOLS_USE_DISTUTILS=3Dstdlib python3 -m pylint qemu/ --=20 2.34.1 From nobody Wed May 15 20:52:30 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1645654750937401.6680327178773; Wed, 23 Feb 2022 14:19:10 -0800 (PST) Received: from localhost ([::1]:46006 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nMzyX-0006I6-Ja for importer@patchew.org; Wed, 23 Feb 2022 17:19:09 -0500 Received: from eggs.gnu.org ([209.51.188.92]:54908) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nMzp8-00011W-Cw for qemu-devel@nongnu.org; Wed, 23 Feb 2022 17:09:26 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:45378) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nMzp5-0005sc-TI for qemu-devel@nongnu.org; Wed, 23 Feb 2022 17:09:26 -0500 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-515-XOT33M28POCx1VpU5tqzBA-1; Wed, 23 Feb 2022 17:09:20 -0500 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 3A10C1091DA0; Wed, 23 Feb 2022 22:09:19 +0000 (UTC) Received: from scv.redhat.com (unknown [10.22.16.166]) by smtp.corp.redhat.com (Postfix) with ESMTP id 46147709E5; Wed, 23 Feb 2022 22:09:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1645654163; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=e3lN8+dY7xBgn5nW4rElwR7WcrfT0+ajm1Qy8GbZ/3w=; b=PCAbpkXvudWGb+/eskB6icUzAFdXgnAmHUi/ie1UeOPBfT3KeE11T0WtrYrIbRrUTNnhYT D92QNY3l6g0E/SUSIz6iJlfehfnQAyQp8jDgrKukA92QQv8FtGLofZ9RBNqVR14GudPVhA p9XGPPsjwFo1r4q4qLNDY8iiKgNRa1A= X-MC-Unique: XOT33M28POCx1VpU5tqzBA-1 From: John Snow To: qemu-devel@nongnu.org Subject: [PULL 5/6] Revert "python: pin setuptools below v60.0.0" Date: Wed, 23 Feb 2022 17:08:59 -0500 Message-Id: <20220223220900.2226630-6-jsnow@redhat.com> In-Reply-To: <20220223220900.2226630-1-jsnow@redhat.com> References: <20220223220900.2226630-1-jsnow@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=jsnow@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=jsnow@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -28 X-Spam_score: -2.9 X-Spam_bar: -- X-Spam_report: (-2.9 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.082, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , Peter Maydell , Beraldo Leal , qemu-block@nongnu.org, Markus Armbruster , Eduardo Habkost , Hanna Reitz , Cleber Rosa , John Snow Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1645654752408100001 Content-Type: text/plain; charset="utf-8" This reverts commit 1e4d8b31be35e54b6429fea54f5ecaa0083f91e7. Signed-off-by: John Snow Message-id: 20220204221804.2047468-3-jsnow@redhat.com Signed-off-by: John Snow --- python/Makefile | 2 -- python/setup.cfg | 1 - 2 files changed, 3 deletions(-) diff --git a/python/Makefile b/python/Makefile index 949c472624..3334311362 100644 --- a/python/Makefile +++ b/python/Makefile @@ -68,8 +68,6 @@ $(QEMU_VENV_DIR) $(QEMU_VENV_DIR)/bin/activate: setup.cfg echo "ACTIVATE $(QEMU_VENV_DIR)"; \ . $(QEMU_VENV_DIR)/bin/activate; \ echo "INSTALL qemu[devel] $(QEMU_VENV_DIR)"; \ - pip install --disable-pip-version-check \ - "setuptools<60.0.0" 1>/dev/null; \ make develop 1>/dev/null; \ ) @touch $(QEMU_VENV_DIR) diff --git a/python/setup.cfg b/python/setup.cfg index 9821db9880..241f243e8b 100644 --- a/python/setup.cfg +++ b/python/setup.cfg @@ -167,7 +167,6 @@ deps =3D .[devel] .[fuse] # Workaround to trigger tox venv rebuild .[tui] # Workaround to trigger tox venv rebuild - setuptools < 60 # Workaround, please see commit msg. commands =3D make check =20 --=20 2.34.1 From nobody Wed May 15 20:52:30 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1645654892892233.22893839524647; Wed, 23 Feb 2022 14:21:32 -0800 (PST) Received: from localhost ([::1]:49896 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nN00p-0000X1-VU for importer@patchew.org; Wed, 23 Feb 2022 17:21:31 -0500 Received: from eggs.gnu.org ([209.51.188.92]:54956) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nMzpA-00019l-Er for qemu-devel@nongnu.org; Wed, 23 Feb 2022 17:09:28 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:23941) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nMzp7-0005tG-2s for qemu-devel@nongnu.org; Wed, 23 Feb 2022 17:09:28 -0500 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-628-an9j7q1WOnOxCAFk2PI33Q-1; Wed, 23 Feb 2022 17:09:21 -0500 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 771321854E26; Wed, 23 Feb 2022 22:09:20 +0000 (UTC) Received: from scv.redhat.com (unknown [10.22.16.166]) by smtp.corp.redhat.com (Postfix) with ESMTP id 71BD7709E5; Wed, 23 Feb 2022 22:09:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1645654164; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=aUmnzZkKV58ZBWtghCKNhrDKnNDeqKz8FA+X4A4me2s=; b=HdH9UqsyTDYJiVRppXbGkXYRyFt1iVsrYtZy0Tf76sNiLBSPkSFVHPBuSilWq8PAiad2pQ zUwVwXDe+aheMKkTzBxmzJP2HVjTEjkJNMSYB+FIJMbDLIHALatTnqXMiRRPP/odDEHDqV +DG51N/KCNuNQbH85l2/ag+TXRo5Fng= X-MC-Unique: an9j7q1WOnOxCAFk2PI33Q-1 From: John Snow To: qemu-devel@nongnu.org Subject: [PULL 6/6] MAINTAINERS: python - remove ehabkost and add bleal Date: Wed, 23 Feb 2022 17:09:00 -0500 Message-Id: <20220223220900.2226630-7-jsnow@redhat.com> In-Reply-To: <20220223220900.2226630-1-jsnow@redhat.com> References: <20220223220900.2226630-1-jsnow@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=jsnow@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=jsnow@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -28 X-Spam_score: -2.9 X-Spam_bar: -- X-Spam_report: (-2.9 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.082, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , Peter Maydell , Beraldo Leal , qemu-block@nongnu.org, Markus Armbruster , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Eduardo Habkost , Hanna Reitz , Cleber Rosa , John Snow Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1645654894455100001 Eduardo Habkost has left Red Hat and has other daily responsibilities to attend to. In order to stop spamming him on every series, remove him as "Reviewer" for the python/ library dir and add Beraldo Leal instead. For the "python scripts" stanza (which is separate due to level of support), replace Eduardo as maintainer with myself. (Thanks for all of your hard work, Eduardo!) Signed-off-by: John Snow Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Beraldo Leal Acked-by: Eduardo Habkost Message-id: 20220208000525.2601011-1-jsnow@redhat.com Signed-off-by: John Snow --- MAINTAINERS | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/MAINTAINERS b/MAINTAINERS index c3b500345c..62bc185d10 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -2747,13 +2747,13 @@ F: backends/cryptodev*.c Python library M: John Snow M: Cleber Rosa -R: Eduardo Habkost +R: Beraldo Leal S: Maintained F: python/ T: git https://gitlab.com/jsnow/qemu.git python =20 Python scripts -M: Eduardo Habkost +M: John Snow M: Cleber Rosa S: Odd Fixes F: scripts/*.py --=20 2.34.1