From nobody Tue May 14 21:04:33 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1677076778; cv=none; d=zohomail.com; s=zohoarc; b=gyAtTDGwWZgTHmbr+vPE0ZrdSVusPGHgJ2VpyN/99qo0NTKAPGmG7Rwp3RriQZVELFsxE/UcVP3RqZwaCRkTeeC1lK5+b39txlXspiwAaJHgr9OiTi42Q4jSIONHPYqHGDGhwVmmCGCe70w2gNH4F8VRSBhjiXvZGf2bKRApW4A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1677076778; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=IyMgEgsS8ZWrwTPqI4zuFDiG6fm8Va6b4gtWiE2/ZGs=; b=SM5fjqpYrvIdbxjdXgs4YNB7U9C/lFOMdpnjxr/PGl2pHEH9vfl3OXz4OHDNM9OirUZJKiSEkPFZixSYk4ERJvm6M3u2Oe/azd1LQrrxKZLBTVP2/BdylQ5Xsoj06bs/2o+dJMEis51WLrTLjp8cgNMNl+PjJj+WtmykDNVKMLo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1677076778611716.2859568191383; Wed, 22 Feb 2023 06:39:38 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUqG0-0004I2-UI; Wed, 22 Feb 2023 09:38:08 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUqFy-0004HO-E3 for qemu-devel@nongnu.org; Wed, 22 Feb 2023 09:38:06 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUqFu-0001Ee-OV for qemu-devel@nongnu.org; Wed, 22 Feb 2023 09:38:04 -0500 Received: from mail-ed1-f69.google.com (mail-ed1-f69.google.com [209.85.208.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-258-HVLIBYgpPs6N-BBuMQA8-Q-1; Wed, 22 Feb 2023 09:38:00 -0500 Received: by mail-ed1-f69.google.com with SMTP id c1-20020a0564021f8100b004acbe232c03so10750649edc.9 for ; Wed, 22 Feb 2023 06:38:00 -0800 (PST) Received: from avogadro.local ([2001:b07:6468:f312:9af8:e5f5:7516:fa89]) by smtp.gmail.com with ESMTPSA id x41-20020a50baac000000b004acbe8255f1sm2145757ede.86.2023.02.22.06.37.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Feb 2023 06:37:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1677076681; 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-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=IyMgEgsS8ZWrwTPqI4zuFDiG6fm8Va6b4gtWiE2/ZGs=; b=bJV2J+nyjygz+d5Am7+lwNet03D6iFNjzAGdJYbbZVvtRcrnXzopoms5t26d366z1PHM48 8Z3LLAgytCEKsxE7af/x04WsE8h/k+fgEYYVSWAMXJiUf2iTsmnaZvNLHiTT4U1xT6f+OB NrM2aQ2zp46uF/9RCuTywP+aKlmYhPg= X-MC-Unique: HVLIBYgpPs6N-BBuMQA8-Q-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=IyMgEgsS8ZWrwTPqI4zuFDiG6fm8Va6b4gtWiE2/ZGs=; b=VrOFVikLRcuyk0LUOr9e+VpQja8MkN9VdRuOK7IDie/V0sTfzTxXjry0lQaNYkZG+9 IhpHJI/a7eOdhKqU+OSPx0Eedq42MkZvOncsTb8PoeaWK5TP6O1LFA7TPuyWKsU3pbjf 0B1GsXTQWBffu7uk55fBfV1agF/dHDX51QOko6t7SsmX/zkVtYK9dprcpuo4zyRjIf8/ d3B11AZuW1vX+rSUYg5FamvZSmsHHhqMH+7BLZeNiX8CSFNsyvM3Xkwbey19xHUpGRUK 4rJzfN3TGDVJXn0GI+ZWP0n08lOEBxIDoOL8cSBRJOAI03FvVGGQg3+0saD5v18rzRqT SqDg== X-Gm-Message-State: AO0yUKVnwdf8NuEE4cpTHRFoJsueRVyRlaqwxvfAk70KlHJbTN0cUS1U g5XuhNlDMYyIKrjQ08Vxe94hpnUZAzsFBcg1Q114qR+sC7uHrvKPLLLfGX4/++HJoEcN3jkA6Mg XXiMm+1Gp8IcMNM6m4wwJVzt1GZHm1IcF7dOlgJc8nG00QQxo9DVncSEd7RiUReST/5ABWWMa X-Received: by 2002:a05:6402:1348:b0:4ab:554:37e9 with SMTP id y8-20020a056402134800b004ab055437e9mr8189202edw.41.1677076679185; Wed, 22 Feb 2023 06:37:59 -0800 (PST) X-Google-Smtp-Source: AK7set95+Rd+j1m5FwCEMKHkA0yccJb2pHZNR/KnZbsB0uk83iDRE4+inQi+F+xcN3kYrz0u8+R4OA== X-Received: by 2002:a05:6402:1348:b0:4ab:554:37e9 with SMTP id y8-20020a056402134800b004ab055437e9mr8189178edw.41.1677076678881; Wed, 22 Feb 2023 06:37:58 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: jsnow@redhat.com, peter.maydell@linaro.org, thuth@redhat.com, alex.bennee@linaro.org, armbru@redhat.com, berrange@redhat.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Beraldo Leal Subject: [PATCH 01/10] python: support pylint 2.16 Date: Wed, 22 Feb 2023 15:37:43 +0100 Message-Id: <20230222143752.466090-2-pbonzini@redhat.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230222143752.466090-1-pbonzini@redhat.com> References: <20230222143752.466090-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1677076779808100005 From: John Snow Pylint 2.16 adds a few new checks that cause the optional check-tox CI job to fail. 1. The superfluous-parens check seems to be a bit more aggressive, 2. broad-exception-raised is new; it discourages "raise Exception". Fix these minor issues and turn the lights green. Signed-off-by: John Snow Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Beraldo Leal Signed-off-by: Paolo Bonzini --- python/qemu/qmp/protocol.py | 2 +- python/qemu/qmp/qmp_client.py | 2 +- python/qemu/utils/qemu_ga_client.py | 6 +++--- tests/qemu-iotests/iotests.py | 4 ++-- tests/qemu-iotests/tests/migrate-bitmaps-postcopy-test | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/python/qemu/qmp/protocol.py b/python/qemu/qmp/protocol.py index 6d3d739daa76..22e60298d280 100644 --- a/python/qemu/qmp/protocol.py +++ b/python/qemu/qmp/protocol.py @@ -207,7 +207,7 @@ class AsyncProtocol(Generic[T]): logger =3D logging.getLogger(__name__) =20 # Maximum allowable size of read buffer - _limit =3D (64 * 1024) + _limit =3D 64 * 1024 =20 # ------------------------- # Section: Public interface diff --git a/python/qemu/qmp/qmp_client.py b/python/qemu/qmp/qmp_client.py index b5772e7f32b3..9d73ae6e7ada 100644 --- a/python/qemu/qmp/qmp_client.py +++ b/python/qemu/qmp/qmp_client.py @@ -198,7 +198,7 @@ async def run(self, address=3D'/tmp/qemu.socket'): logger =3D logging.getLogger(__name__) =20 # Read buffer limit; 10MB like libvirt default - _limit =3D (10 * 1024 * 1024) + _limit =3D 10 * 1024 * 1024 =20 # Type alias for pending execute() result items _PendingT =3D Union[Message, ExecInterruptedError] diff --git a/python/qemu/utils/qemu_ga_client.py b/python/qemu/utils/qemu_g= a_client.py index 8c38a7ac9c0e..d8411bb2d0b5 100644 --- a/python/qemu/utils/qemu_ga_client.py +++ b/python/qemu/utils/qemu_ga_client.py @@ -155,7 +155,7 @@ def ping(self, timeout: Optional[float]) -> bool: =20 def fsfreeze(self, cmd: str) -> object: if cmd not in ['status', 'freeze', 'thaw']: - raise Exception('Invalid command: ' + cmd) + raise ValueError('Invalid command: ' + cmd) # Can be int (freeze, thaw) or GuestFsfreezeStatus (status) return getattr(self.qga, 'fsfreeze' + '_' + cmd)() =20 @@ -167,7 +167,7 @@ def fstrim(self, minimum: int) -> Dict[str, object]: =20 def suspend(self, mode: str) -> None: if mode not in ['disk', 'ram', 'hybrid']: - raise Exception('Invalid mode: ' + mode) + raise ValueError('Invalid mode: ' + mode) =20 try: getattr(self.qga, 'suspend' + '_' + mode)() @@ -178,7 +178,7 @@ def suspend(self, mode: str) -> None: =20 def shutdown(self, mode: str =3D 'powerdown') -> None: if mode not in ['powerdown', 'halt', 'reboot']: - raise Exception('Invalid mode: ' + mode) + raise ValueError('Invalid mode: ' + mode) =20 try: self.qga.shutdown(mode=3Dmode) diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py index 94aeb3f3b200..3e82c634cfef 100644 --- a/tests/qemu-iotests/iotests.py +++ b/tests/qemu-iotests/iotests.py @@ -720,7 +720,7 @@ def __exit__(self, exc_type, value, traceback): signal.setitimer(signal.ITIMER_REAL, 0) return False def timeout(self, signum, frame): - raise Exception(self.errmsg) + raise TimeoutError(self.errmsg) =20 def file_pattern(name): return "{0}-{1}".format(os.getpid(), name) @@ -804,7 +804,7 @@ def remote_filename(path): elif imgproto =3D=3D 'ssh': return "ssh://%s@127.0.0.1:22%s" % (os.environ.get('USER'), path) else: - raise Exception("Protocol %s not supported" % (imgproto)) + raise ValueError("Protocol %s not supported" % (imgproto)) =20 class VM(qtest.QEMUQtestMachine): '''A QEMU VM''' diff --git a/tests/qemu-iotests/tests/migrate-bitmaps-postcopy-test b/tests= /qemu-iotests/tests/migrate-bitmaps-postcopy-test index fc9c4b4ef411..dda55fad2840 100755 --- a/tests/qemu-iotests/tests/migrate-bitmaps-postcopy-test +++ b/tests/qemu-iotests/tests/migrate-bitmaps-postcopy-test @@ -84,7 +84,7 @@ class TestDirtyBitmapPostcopyMigration(iotests.QMPTestCas= e): e['vm'] =3D 'SRC' for e in self.vm_b_events: e['vm'] =3D 'DST' - events =3D (self.vm_a_events + self.vm_b_events) + events =3D self.vm_a_events + self.vm_b_events events =3D [(e['timestamp']['seconds'], e['timestamp']['microseconds'], e['vm'], --=20 2.39.1 From nobody Tue May 14 21:04:33 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1677076782; cv=none; d=zohomail.com; s=zohoarc; b=eO7myAAZRRh6I1r7sGxfiNOpV/qIi5lTrw2qk6sc0AWIPOCxjoQS2NNGhXefHnQDHnBz94RwwAg19+1T8EkxltQ1KUBDNcas6pqA2HsR0zkuoAIWSRPCEI2o4XB9h1YkNFxdMI+ICiETwubypImYePb2EIKyMHgpwt0HRHEzF/w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1677076782; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=W88LE6gv2o/e3ChrYMKusuX6mB/IwW51MqejG4TrKYE=; b=HdmVDobNewznEba3WCpOJCPCIZdwZg7roZw5w4SyicOBsjDN97T+lgCSthGfFtVoCgHhYy7dF7BQ5dzWxO8m60278IvWSrhHXUt7+NQD1itFxV7wsXPD8GP9DnzWklRy1ILdRO6k9H9uAzgkn/2ssrtROzn7dgnynl3RaKaezIA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1677076782137527.5788975937819; Wed, 22 Feb 2023 06:39:42 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUqGJ-0004Su-F6; Wed, 22 Feb 2023 09:38:27 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUqG4-0004Ip-AG for qemu-devel@nongnu.org; Wed, 22 Feb 2023 09:38:12 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUqFz-0001FZ-P0 for qemu-devel@nongnu.org; Wed, 22 Feb 2023 09:38:11 -0500 Received: from mail-ed1-f69.google.com (mail-ed1-f69.google.com [209.85.208.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-562-bEZzb-W2Mim03uKTiMNuhA-1; Wed, 22 Feb 2023 09:38:05 -0500 Received: by mail-ed1-f69.google.com with SMTP id cz22-20020a0564021cb600b004a245f58006so11506966edb.12 for ; Wed, 22 Feb 2023 06:38:05 -0800 (PST) Received: from avogadro.local ([2001:b07:6468:f312:9af8:e5f5:7516:fa89]) by smtp.gmail.com with ESMTPSA id gw20-20020a170906f15400b008ea5f4fab5fsm244807ejb.145.2023.02.22.06.38.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Feb 2023 06:38:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1677076686; 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=W88LE6gv2o/e3ChrYMKusuX6mB/IwW51MqejG4TrKYE=; b=iA+oOHk/DM3k+krylK6IxWGBBX/2DOd3Vurokyl7C/BuGOMeKPveXxBXSrQGvSLkae9HWZ zoeR8w4wZgaHk6r9jTuyX2i694MIVPwfCRQigsozxdi+/FxgeMzhskFDeCI4KPEnsugAhq 0glXLDSRvCP2kOuzcujsZqpSzQysDrA= X-MC-Unique: bEZzb-W2Mim03uKTiMNuhA-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=W88LE6gv2o/e3ChrYMKusuX6mB/IwW51MqejG4TrKYE=; b=QS8dCt3AsGZWGHqd15intR0bsctIBYKAB8k83yUJyi1IOUg0qyaLitAcGgCwHPLcsR /ozG8rWflgPIu48YHps2A0iII6JBTjKjs1+nRFEq+YmLpRsp92gOSjoTCbf2hCepIM+R dtCRZxN4iEUq1fri28BPgwfBjiNmxPrGnyDPRIveBRkkmpnj/tJSHyfish5dVNkqjCV0 PR7JzZFlBnRHUc+7QCBHarwEzTHEQX1Pp4jUyfbeCTzcIUf5tcUEO6PYo25+QMOT/d3p bKdLfplWg3AUqmyQHanHUpTEvrXCBajxtiiEUrTq3SXwGiRBDa96MUezNDN761NdjNdf cqsg== X-Gm-Message-State: AO0yUKU8ya1/+r/KP277wueQk38iOQEr8PmnJ1Pll/yO5k8tc4g02hWs zWSDrCSYCDXBgm/lbkHFyFVQooTRsgY3uX6RwmZgwplSUswrpRI2Sy/mygzIUezdqFC0SgKo7qc WLHNbzSbZntgFPNbrkauY7IIH/tarmeB7bXvN/w3KVXN26cdLm7mQuLERrbXrv39cgf7DiTZk X-Received: by 2002:a17:906:7fd9:b0:8b1:a3c7:a9c9 with SMTP id r25-20020a1709067fd900b008b1a3c7a9c9mr18062637ejs.70.1677076682308; Wed, 22 Feb 2023 06:38:02 -0800 (PST) X-Google-Smtp-Source: AK7set8NnklSTAG8IRAr/BGEin5cVTGYn5h48vUVU20Zz5viMYnG71+HZcGpWsmSqWFRM3trBtGmDA== X-Received: by 2002:a17:906:7fd9:b0:8b1:a3c7:a9c9 with SMTP id r25-20020a1709067fd900b008b1a3c7a9c9mr18062593ejs.70.1677076681853; Wed, 22 Feb 2023 06:38:01 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: jsnow@redhat.com, peter.maydell@linaro.org, thuth@redhat.com, alex.bennee@linaro.org, armbru@redhat.com, berrange@redhat.com Subject: [PATCH 02/10] python: drop pipenv Date: Wed, 22 Feb 2023 15:37:44 +0100 Message-Id: <20230222143752.466090-3-pbonzini@redhat.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230222143752.466090-1-pbonzini@redhat.com> References: <20230222143752.466090-1-pbonzini@redhat.com> MIME-Version: 1.0 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=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1677076783833100011 Content-Type: text/plain; charset="utf-8" From: John Snow The pipenv tool was nice in theory, but in practice it's just too hard to update selectively, and it makes using it a pain. The qemu.qmp repo dropped pipenv support a while back and it's been functioning just fine, so I'm backporting that change here to qemu.git. Signed-off-by: John Snow Signed-off-by: Paolo Bonzini Acked-by: Philippe Mathieu-Daud=C3=A9 --- .gitlab-ci.d/static_checks.yml | 4 +- python/.gitignore | 4 +- python/Makefile | 53 ++-- python/Pipfile | 13 - python/Pipfile.lock | 347 ------------------------- python/README.rst | 3 - python/setup.cfg | 4 +- python/tests/minreqs.txt | 45 ++++ tests/docker/dockerfiles/python.docker | 1 - 9 files changed, 86 insertions(+), 388 deletions(-) delete mode 100644 python/Pipfile delete mode 100644 python/Pipfile.lock create mode 100644 python/tests/minreqs.txt diff --git a/.gitlab-ci.d/static_checks.yml b/.gitlab-ci.d/static_checks.yml index 289ad1359e3a..b4cbdbce2abf 100644 --- a/.gitlab-ci.d/static_checks.yml +++ b/.gitlab-ci.d/static_checks.yml @@ -23,12 +23,12 @@ check-dco: before_script: - apk -U add git =20 -check-python-pipenv: +check-python-minreqs: extends: .base_job_template stage: test image: $CI_REGISTRY_IMAGE/qemu/python:latest script: - - make -C python check-pipenv + - make -C python check-minreqs variables: GIT_DEPTH: 1 needs: diff --git a/python/.gitignore b/python/.gitignore index 904f324bb11a..c3ceb1ca0ab1 100644 --- a/python/.gitignore +++ b/python/.gitignore @@ -11,8 +11,8 @@ qemu.egg-info/ .idea/ .vscode/ =20 -# virtual environments (pipenv et al) -.venv/ +# virtual environments +.min-venv/ .tox/ .dev-venv/ =20 diff --git a/python/Makefile b/python/Makefile index b170708398ab..c5bd6ff83ac9 100644 --- a/python/Makefile +++ b/python/Makefile @@ -1,15 +1,16 @@ QEMU_VENV_DIR=3D.dev-venv +QEMU_MINVENV_DIR=3D.min-venv QEMU_TOX_EXTRA_ARGS ?=3D =20 .PHONY: help help: @echo "python packaging help:" @echo "" - @echo "make check-pipenv:" - @echo " Run tests in pipenv's virtual environment." + @echo "make check-minreqs:" + @echo " Run tests in the minreqs virtual environment." @echo " These tests use the oldest dependencies." - @echo " Requires: Python 3.6 and pipenv." - @echo " Hint (Fedora): 'sudo dnf install python3.6 pipenv'" + @echo " Requires: Python 3.6" + @echo " Hint (Fedora): 'sudo dnf install python3.6'" @echo "" @echo "make check-tox:" @echo " Run tests against multiple python versions." @@ -33,8 +34,8 @@ help: @echo " and install the qemu package in editable mode." @echo " (Can be used in or outside of a venv.)" @echo "" - @echo "make pipenv" - @echo " Creates pipenv's virtual environment (.venv)" + @echo "make min-venv" + @echo " Creates the minreqs virtual environment ($(QEMU_MINVENV_DIR))" @echo "" @echo "make dev-venv" @echo " Creates a simple venv for check-dev. ($(QEMU_VENV_DIR))" @@ -43,21 +44,38 @@ help: @echo " Remove package build output." @echo "" @echo "make distclean:" - @echo " remove pipenv/venv files, qemu package forwarder," + @echo " remove venv files, qemu package forwarder," @echo " built distribution files, and everything from 'make clean'." @echo "" @echo -e "Have a nice day ^_^\n" =20 -.PHONY: pipenv -pipenv: .venv -.venv: Pipfile.lock - @PIPENV_VENV_IN_PROJECT=3D1 pipenv sync --dev --keep-outdated - rm -f pyproject.toml - @touch .venv +.PHONY: pipenv check-pipenv +pipenv check-pipenv: + @echo "pipenv was dropped; try 'make check-minreqs' or 'make min-venv'" + @exit 1 =20 -.PHONY: check-pipenv -check-pipenv: pipenv - @pipenv run make check +.PHONY: min-venv +min-venv: $(QEMU_MINVENV_DIR) $(QEMU_MINVENV_DIR)/bin/activate +$(QEMU_MINVENV_DIR) $(QEMU_MINVENV_DIR)/bin/activate: setup.cfg tests/minr= eqs.txt + @echo "VENV $(QEMU_MINVENV_DIR)" + @python3.6 -m venv $(QEMU_MINVENV_DIR) + @( \ + echo "ACTIVATE $(QEMU_MINVENV_DIR)"; \ + . $(QEMU_MINVENV_DIR)/bin/activate; \ + echo "INSTALL -r tests/minreqs.txt $(QEMU_MINVENV_DIR)";\ + pip install -r tests/minreqs.txt 1>/dev/null; \ + echo "INSTALL -e qemu $(QEMU_MINVENV_DIR)"; \ + pip install -e . 1>/dev/null; \ + ) + @touch $(QEMU_MINVENV_DIR) + +.PHONY: check-minreqs +check-minreqs: min-venv + @( \ + echo "ACTIVATE $(QEMU_MINVENV_DIR)"; \ + . $(QEMU_MINVENV_DIR)/bin/activate; \ + make check; \ + ) =20 .PHONY: dev-venv dev-venv: $(QEMU_VENV_DIR) $(QEMU_VENV_DIR)/bin/activate @@ -106,6 +124,7 @@ clean: =20 .PHONY: distclean distclean: clean - rm -rf qemu.egg-info/ .venv/ .tox/ $(QEMU_VENV_DIR) dist/ + rm -rf qemu.egg-info/ .eggs/ dist/ + rm -rf $(QEMU_VENV_DIR) $(QEMU_MINVENV_DIR) .tox/ rm -f .coverage .coverage.* rm -rf htmlcov/ diff --git a/python/Pipfile b/python/Pipfile deleted file mode 100644 index e7acb8cefa4d..000000000000 --- a/python/Pipfile +++ /dev/null @@ -1,13 +0,0 @@ -[[source]] -name =3D "pypi" -url =3D "https://pypi.org/simple" -verify_ssl =3D true - -[dev-packages] -qemu =3D {editable =3D true, extras =3D ["devel"], path =3D "."} - -[packages] -qemu =3D {editable =3D true,path =3D "."} - -[requires] -python_version =3D "3.6" diff --git a/python/Pipfile.lock b/python/Pipfile.lock deleted file mode 100644 index ce46404ce084..000000000000 --- a/python/Pipfile.lock +++ /dev/null @@ -1,347 +0,0 @@ -{ - "_meta": { - "hash": { - "sha256": "f1a25654d884a5b450e38d78b1f2e3ebb9073e421cc4358d4bb= b83ac251a5670" - }, - "pipfile-spec": 6, - "requires": { - "python_version": "3.6" - }, - "sources": [ - { - "name": "pypi", - "url": "https://pypi.org/simple", - "verify_ssl": true - } - ] - }, - "default": { - "qemu": { - "editable": true, - "path": "." - } - }, - "develop": { - "appdirs": { - "hashes": [ - "sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d241510= 0fe26e27afdf41", - "sha256:a841dacd6b99318a741b166adb07e19ee71a274450e68237b4= 650ca1055ab128" - ], - "version": "=3D=3D1.4.4" - }, - "astroid": { - "hashes": [ - "sha256:09bdb456e02564731f8b5957cdd0c98a7f01d2db5e90eb1d79= 4c353c28bfd705", - "sha256:6a8a51f64dae307f6e0c9db752b66a7951e282389d8362cc1d= 39a56f3feeb31d" - ], - "index": "pypi", - "version": "=3D=3D2.6.0" - }, - "avocado-framework": { - "hashes": [ - "sha256:244cb569f8eb4e50a22ac82e1a2b2bba2458999f4281efbe26= 51bd415d59c65b", - "sha256:6f15998b67ecd0e7dde790c4de4dd249d6df52dfe6d5cc4e2d= d6596df51c3583" - ], - "index": "pypi", - "version": "=3D=3D90.0" - }, - "distlib": { - "hashes": [ - "sha256:106fef6dc37dd8c0e2c0a60d3fca3e77460a48907f335fa284= 20463a6f799736", - "sha256:23e223426b28491b1ced97dc3bbe183027419dfc7982b4fa2f= 05d5f3ff10711c" - ], - "index": "pypi", - "version": "=3D=3D0.3.2" - }, - "filelock": { - "hashes": [ - "sha256:18d82244ee114f543149c66a6e0c14e9c4f8a1044b5cdaadd0= f82159d6a6ff59", - "sha256:929b7d63ec5b7d6b71b0fa5ac14e030b3f70b75747cef1b10d= a9b879fef15836" - ], - "index": "pypi", - "version": "=3D=3D3.0.12" - }, - "flake8": { - "hashes": [ - "sha256:6a35f5b8761f45c5513e3405f110a86bea57982c3b75b766ce= 7b65217abe1670", - "sha256:c01f8a3963b3571a8e6bd7a4063359aff90749e160778e0381= 7cd9b71c9e07d2" - ], - "index": "pypi", - "version": "=3D=3D3.6.0" - }, - "fusepy": { - "hashes": [ - "sha256:10f5c7f5414241bffecdc333c4d3a725f1d6605cae6b4eaf86= a838ff49cdaf6c", - "sha256:a9f3a3699080ddcf0919fd1eb2cf743e1f5859ca54c2018632= f939bdfac269ee" - ], - "index": "pypi", - "version": "=3D=3D2.0.4" - }, - "importlib-metadata": { - "hashes": [ - "sha256:90bb658cdbbf6d1735b6341ce708fc7024a3e14e99ffdc5783= edea9f9b077f83", - "sha256:dc15b2969b4ce36305c51eebe62d418ac7791e9a157911d58b= fb1f9ccd8e2070" - ], - "markers": "python_version < '3.8'", - "version": "=3D=3D1.7.0" - }, - "importlib-resources": { - "hashes": [ - "sha256:54161657e8ffc76596c4ede7080ca68cb02962a2e074a2586b= 695a93a925d36e", - "sha256:e962bff7440364183203d179d7ae9ad90cb1f2b74dcb84300e= 88ecc42dca3351" - ], - "index": "pypi", - "version": "=3D=3D5.1.4" - }, - "isort": { - "hashes": [ - "sha256:408e4d75d84f51b64d0824894afee44469eba34a4caee621dc= 53799f80d71ccc", - "sha256:64022dea6a06badfa09b300b4dfe8ba968114a737919e8ed50= aea1c288f078aa" - ], - "index": "pypi", - "version": "=3D=3D5.1.2" - }, - "lazy-object-proxy": { - "hashes": [ - "sha256:17e0967ba374fc24141738c69736da90e94419338fd4c7c7be= f01ee26b339653", - "sha256:1fee665d2638491f4d6e55bd483e15ef21f6c8c2095f235fef= 72601021e64f61", - "sha256:22ddd618cefe54305df49e4c069fa65715be4ad0e78e8d252a= 33debf00f6ede2", - "sha256:24a5045889cc2729033b3e604d496c2b6f588c754f7a62027a= d4437a7ecc4837", - "sha256:410283732af311b51b837894fa2f24f2c0039aa7f220135192= b38fcc42bd43d3", - "sha256:4732c765372bd78a2d6b2150a6e99d00a78ec963375f236979= c0626b97ed8e43", - "sha256:489000d368377571c6f982fba6497f2aa13c6d1facc4066096= 3da62f5c379726", - "sha256:4f60460e9f1eb632584c9685bccea152f4ac2130e299784dba= f9fae9f49891b3", - "sha256:5743a5ab42ae40caa8421b320ebf3a998f89c85cdc8376d6b2= e00bd12bd1b587", - "sha256:85fb7608121fd5621cc4377a8961d0b32ccf84a7285b4f1d21= 988b2eae2868e8", - "sha256:9698110e36e2df951c7c36b6729e96429c9c32b3331989ef19= 976592c5f3c77a", - "sha256:9d397bf41caad3f489e10774667310d73cb9c4258e9aed94b9= ec734b34b495fd", - "sha256:b579f8acbf2bdd9ea200b1d5dea36abd93cabf56cf626ab9c7= 44a432e15c815f", - "sha256:b865b01a2e7f96db0c5d12cfea590f98d8c5ba64ad222300d9= 3ce6ff9138bcad", - "sha256:bf34e368e8dd976423396555078def5cfc3039ebc6fc06d1ae= 2c5a65eebbcde4", - "sha256:c6938967f8528b3668622a9ed3b31d145fab161a32f5891ea7= b84f6b790be05b", - "sha256:d1c2676e3d840852a2de7c7d5d76407c772927addff8d742b9= 808fe0afccebdf", - "sha256:d7124f52f3bd259f510651450e18e0fd081ed82f3c08541dff= c7b94b883aa981", - "sha256:d900d949b707778696fdf01036f58c9876a0d8bfe116e8d220= cfd4b15f14e741", - "sha256:ebfd274dcd5133e0afae738e6d9da4323c3eb021b3e13052d8= cbd0e457b1256e", - "sha256:ed361bb83436f117f9917d282a456f9e5009ea12fd6de8742d= 1a4752c3017e93", - "sha256:f5144c75445ae3ca2057faac03fda5a902eff196702b0a24da= f1d6ce0650514b" - ], - "index": "pypi", - "version": "=3D=3D1.6.0" - }, - "mccabe": { - "hashes": [ - "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d= 64e79735b80d42", - "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb= 0f125271b8831f" - ], - "version": "=3D=3D0.6.1" - }, - "mypy": { - "hashes": [ - "sha256:00cb1964a7476e871d6108341ac9c1a857d6bd20bf5877f477= 3ac5e9d92cd3cd", - "sha256:127de5a9b817a03a98c5ae8a0c46a20dc44442af6dcfa2ae7f= 96cb519b312efa", - "sha256:1f3976a945ad7f0a0727aafdc5651c2d3278e3c88dee94e2bf= 75cd3386b7b2f4", - "sha256:2f8c098f12b402c19b735aec724cc9105cc1a9eea405d08814= eb4b14a6fb1a41", - "sha256:4ef13b619a289aa025f2273e05e755f8049bb4eaba6d703a42= 5de37d495d178d", - "sha256:5d142f219bf8c7894dfa79ebfb7d352c4c63a325e75f10dfb4= c3db9417dcd135", - "sha256:62eb5dd4ea86bda8ce386f26684f7f26e4bfe6283c9f2b6ca6= d17faf704dcfad", - "sha256:64c36eb0936d0bfb7d8da49f92c18e312ad2e3ed46e5548ae4= ca997b0d33bd59", - "sha256:75eed74d2faf2759f79c5f56f17388defd2fc994222312ec54= ee921e37b31ad4", - "sha256:974bebe3699b9b46278a7f076635d219183da26e1a675c1f82= 43a69221758273", - "sha256:a5e5bb12b7982b179af513dddb06fca12285f0316d74f39640= 78acbfcf4c68f2", - "sha256:d31291df31bafb997952dc0a17ebb2737f802c754aed31dd15= 5a8bfe75112c57", - "sha256:d3b4941de44341227ece1caaf5b08b23e42ad4eeb8b603219a= fb11e9d4cfb437", - "sha256:eadb865126da4e3c4c95bdb47fe1bb087a3e3ea14d39a3b132= 24b8a4d9f9a102" - ], - "index": "pypi", - "version": "=3D=3D0.780" - }, - "mypy-extensions": { - "hashes": [ - "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a= 299250a846f15d", - "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5= 343488a6c604a8" - ], - "version": "=3D=3D0.4.3" - }, - "packaging": { - "hashes": [ - "sha256:5b327ac1320dc863dca72f4514ecc086f31186744b84a23037= 4cc1fd776feae5", - "sha256:67714da7f7bc052e064859c05c595155bd1ee9f69f76557e21= f051443c20947a" - ], - "index": "pypi", - "version": "=3D=3D20.9" - }, - "pluggy": { - "hashes": [ - "sha256:15b2acde666561e1298d71b523007ed7364de07029219b604c= f808bfa1c765b0", - "sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e= 9ca461a4081d2d" - ], - "index": "pypi", - "version": "=3D=3D0.13.1" - }, - "py": { - "hashes": [ - "sha256:21b81bda15b66ef5e1a777a21c4dcd9c20ad3efd0b3f817e7a= 809035269e1bd3", - "sha256:3b80836aa6d1feeaa108e046da6423ab8f6ceda6468545ae8d= 02d9d58d18818a" - ], - "index": "pypi", - "version": "=3D=3D1.10.0" - }, - "pycodestyle": { - "hashes": [ - "sha256:74abc4e221d393ea5ce1f129ea6903209940c1ecd29e002e8c= 6933c2b21026e0", - "sha256:cbc619d09254895b0d12c2c691e237b2e91e9b2ecf5e84c26b= 35400f93dcfb83", - "sha256:cbfca99bd594a10f674d0cd97a3d802a1fdef635d4361e1a26= 58de47ed261e3a" - ], - "version": "=3D=3D2.4.0" - }, - "pyflakes": { - "hashes": [ - "sha256:9a7662ec724d0120012f6e29d6248ae3727d821bba522a0e6b= 356eff19126a49", - "sha256:f661252913bc1dbe7fcfcbf0af0db3f42ab65aabd1a6ca68fe= 5d466bace94dae" - ], - "version": "=3D=3D2.0.0" - }, - "pygments": { - "hashes": [ - "sha256:a18f47b506a429f6f4b9df81bb02beab9ca21d0a5fee38ed15= aef65f0545519f", - "sha256:d66e804411278594d764fc69ec36ec13d9ae9147193a1740cd= 34d272ca383b8e" - ], - "index": "pypi", - "version": "=3D=3D2.9.0" - }, - "pylint": { - "hashes": [ - "sha256:082a6d461b54f90eea49ca90fff4ee8b6e45e8029e5dbd72f6= 107ef84f3779c0", - "sha256:a01cd675eccf6e25b3bdb42be184eb46aaf89187d612ba0fb5= f93328ed6b0fd5" - ], - "index": "pypi", - "version": "=3D=3D2.8.0" - }, - "pyparsing": { - "hashes": [ - "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ea= d507bc3246ecc1", - "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb124= 0a85b024efc88b" - ], - "index": "pypi", - "version": "=3D=3D2.4.7" - }, - "qemu": { - "editable": true, - "path": "." - }, - "setuptools": { - "hashes": [ - "sha256:22c7348c6d2976a52632c67f7ab0cdf40147db7789f9aed187= 34643fe9cf3373", - "sha256:4ce92f1e1f8f01233ee9952c04f6b81d1e02939d6e1b488428= 154974a4d0783e" - ], - "markers": "python_version >=3D '3.6'", - "version": "=3D=3D59.6.0" - }, - "six": { - "hashes": [ - "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e= 49de9c60c4c926", - "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771= 326f8aa26e0254" - ], - "markers": "python_version >=3D '2.7' and python_version not i= n '3.0, 3.1, 3.2, 3.3'", - "version": "=3D=3D1.16.0" - }, - "toml": { - "hashes": [ - "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894= a5f779cabb4f9b", - "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bd= ed2f839ccbe68f" - ], - "markers": "python_version >=3D '2.6' and python_version not i= n '3.0, 3.1, 3.2, 3.3'", - "version": "=3D=3D0.10.2" - }, - "tox": { - "hashes": [ - "sha256:c60692d92fe759f46c610ac04c03cf0169432d1ff8e981e8ae= 63e068d0954fc3", - "sha256:f179cb4043d7dc1339425dd49ab1dd8c916246b0d9173143c1= b0af7498a03ab0" - ], - "index": "pypi", - "version": "=3D=3D3.18.0" - }, - "typed-ast": { - "hashes": [ - "sha256:01ae5f73431d21eead5015997ab41afa53aa1fbe252f9da060= be5dad2c730ace", - "sha256:067a74454df670dcaa4e59349a2e5c81e567d8d65458d480a5= b3dfecec08c5ff", - "sha256:0fb71b8c643187d7492c1f8352f2c15b4c4af3f6338f21681d= 3681b3dc31a266", - "sha256:1b3ead4a96c9101bef08f9f7d1217c096f31667617b58de957= f690c92378b528", - "sha256:2068531575a125b87a41802130fa7e29f26c09a2833fea68d9= a40cf33902eba6", - "sha256:209596a4ec71d990d71d5e0d312ac935d86930e6eecff6ccc7= 007fe54d703808", - "sha256:2c726c276d09fc5c414693a2de063f521052d9ea7c240ce553= 316f70656c84d4", - "sha256:398e44cd480f4d2b7ee8d98385ca104e35c81525dd98c519ac= ff1b79bdaac363", - "sha256:52b1eb8c83f178ab787f3a4283f68258525f8d70f778a2f6dd= 54d3b5e5fb4341", - "sha256:5feca99c17af94057417d744607b82dd0a664fd5e4ca980614= 80fd8b14b18d04", - "sha256:7538e495704e2ccda9b234b82423a4038f324f3a10c43bc088= a1636180f11a41", - "sha256:760ad187b1041a154f0e4d0f6aae3e40fdb51d6de16e5c99ae= dadd9246450e9e", - "sha256:777a26c84bea6cd934422ac2e3b78863a37017618b6e5c08f9= 2ef69853e765d3", - "sha256:95431a26309a21874005845c21118c83991c63ea800dd44843= e42a916aec5899", - "sha256:9ad2c92ec681e02baf81fdfa056fe0d818645efa9af1f1cd5f= d6f1bd2bdfd805", - "sha256:9c6d1a54552b5330bc657b7ef0eae25d00ba7ffe85d9ea8ae6= 540d2197a3788c", - "sha256:aee0c1256be6c07bd3e1263ff920c325b59849dc95392a05f2= 58bb9b259cf39c", - "sha256:af3d4a73793725138d6b334d9d247ce7e5f084d96284ed23f2= 2ee626a7b88e39", - "sha256:b36b4f3920103a25e1d5d024d155c504080959582b928e91cb= 608a65c3a49e1a", - "sha256:b9574c6f03f685070d859e75c7f9eeca02d6933273b5e69572= e5ff9d5e3931c3", - "sha256:bff6ad71c81b3bba8fa35f0f1921fb24ff4476235a6e94a26a= da2e54370e6da7", - "sha256:c190f0899e9f9f8b6b7863debfb739abcb21a5c054f911ca35= 96d12b8a4c4c7f", - "sha256:c907f561b1e83e93fad565bac5ba9c22d96a54e7ea0267c708= bffe863cbe4075", - "sha256:cae53c389825d3b46fb37538441f75d6aecc4174f615d04832= 1b716df2757fb0", - "sha256:dd4a21253f42b8d2b48410cb31fe501d32f8b9fbeb1f55063a= d102fe9c425e40", - "sha256:dde816ca9dac1d9c01dd504ea5967821606f02e51043812009= 1b84e852367428", - "sha256:f2362f3cb0f3172c42938946dbc5b7843c2a28aec307c49100= c8b38764eb6927", - "sha256:f328adcfebed9f11301eaedfa48e15bdece9b519fb27e6a8c0= 1aa52a17ec31b3", - "sha256:f8afcf15cc511ada719a88e013cec87c11aff7b91f019295eb= 4530f96fe5ef2f", - "sha256:fb1bbeac803adea29cedd70781399c99138358c26d05fcbd23= c13016b7f5ec65" - ], - "markers": "python_version < '3.8' and implementation_name =3D= =3D 'cpython'", - "version": "=3D=3D1.4.3" - }, - "typing-extensions": { - "hashes": [ - "sha256:0ac0f89795dd19de6b97debb0c6af1c70987fd80a2d62d1958= f7e56fcc31b497", - "sha256:50b6f157849174217d0656f99dc82fe932884fb250826c1835= 0e159ec6cdf342", - "sha256:779383f6086d90c99ae41cf0ff39aac8a7937a9283ce0a414e= 5dd782f4c94a84" - ], - "index": "pypi", - "version": "=3D=3D3.10.0.0" - }, - "urwid": { - "hashes": [ - "sha256:588bee9c1cb208d0906a9f73c613d2bd32c3ed3702012f51ef= e318a3f2127eae" - ], - "index": "pypi", - "version": "=3D=3D2.1.2" - }, - "urwid-readline": { - "hashes": [ - "sha256:018020cbc864bb5ed87be17dc26b069eae2755cb29f3a9c569= aac3bded1efaf4" - ], - "index": "pypi", - "version": "=3D=3D0.13" - }, - "virtualenv": { - "hashes": [ - "sha256:14fdf849f80dbb29a4eb6caa9875d476ee2a5cf76a5f5415fa= 2f1606010ab467", - "sha256:2b0126166ea7c9c3661f5b8e06773d28f83322de7a3ff7d06f= 0aed18c9de6a76" - ], - "index": "pypi", - "version": "=3D=3D20.4.7" - }, - "wrapt": { - "hashes": [ - "sha256:b62ffa81fb85f4332a4f609cab4ac40709470da05643a082ec= 1eb88e6d9b97d7" - ], - "version": "=3D=3D1.12.1" - }, - "zipp": { - "hashes": [ - "sha256:3607921face881ba3e026887d8150cca609d517579abe052ac= 81fc5aeffdbd76", - "sha256:51cb66cc54621609dd593d1787f286ee42a5c0adbb4b29abea= 5a63edc3e03098" - ], - "index": "pypi", - "version": "=3D=3D3.4.1" - } - } -} diff --git a/python/README.rst b/python/README.rst index 9c1fceaee73b..d62e71528d24 100644 --- a/python/README.rst +++ b/python/README.rst @@ -77,9 +77,6 @@ Files in this directory - ``MANIFEST.in`` is read by python setuptools, it specifies additional fi= les that should be included by a source distribution. - ``PACKAGE.rst`` is used as the README file that is visible on PyPI.org. -- ``Pipfile`` is used by Pipenv to generate ``Pipfile.lock``. -- ``Pipfile.lock`` is a set of pinned package dependencies that this packa= ge - is tested under in our CI suite. It is used by ``make check-pipenv``. - ``README.rst`` you are here! - ``VERSION`` contains the PEP-440 compliant version used to describe this package; it is referenced by ``setup.cfg``. diff --git a/python/setup.cfg b/python/setup.cfg index 564181570654..9e923d97628f 100644 --- a/python/setup.cfg +++ b/python/setup.cfg @@ -33,9 +33,7 @@ packages =3D * =3D py.typed =20 [options.extras_require] -# For the devel group, When adding new dependencies or bumping the minimum -# version, use e.g. "pipenv install --dev pylint=3D=3D3.0.0". -# Subsequently, edit 'Pipfile' to remove e.g. 'pylint =3D "=3D=3D3.0.0'. +# Remember to update tests/minreqs.txt if changing anything below: devel =3D avocado-framework >=3D 90.0 flake8 >=3D 3.6.0 diff --git a/python/tests/minreqs.txt b/python/tests/minreqs.txt new file mode 100644 index 000000000000..dfb8abb155f4 --- /dev/null +++ b/python/tests/minreqs.txt @@ -0,0 +1,45 @@ +# This file lists the ***oldest possible dependencies*** needed to run +# "make check" successfully under ***Python 3.6***. It is used primarily +# by GitLab CI to ensure that our stated minimum versions in setup.cfg +# are truthful and regularly validated. +# +# This file should not contain any dependencies that are not expressed +# by the [devel] section of setup.cfg, except for transitive +# dependencies which must be enumerated here explicitly to eliminate +# dependency resolution ambiguity. +# +# When adding new dependencies, pin the very oldest non-yanked version +# on PyPI that allows the test suite to pass. + +# Dependencies for the TUI addon (Required for successful linting) +urwid=3D=3D2.1.2 +urwid-readline=3D=3D0.13 +Pygments=3D=3D2.9.0 + +# Dependencies for FUSE support for qom-fuse +fusepy=3D=3D2.0.4 + +# Test-runners, utilities, etc. +avocado-framework=3D=3D90.0 + +# Linters +flake8=3D=3D3.6.0 +isort=3D=3D5.1.2 +mypy=3D=3D0.780 +pylint=3D=3D2.8.0 + +# Transitive flake8 dependencies +mccabe=3D=3D0.6.0 +pycodestyle=3D=3D2.4.0 +pyflakes=3D=3D2.0.0 + +# Transitive mypy dependencies +mypy-extensions=3D=3D0.4.3 +typed-ast=3D=3D1.4.0 +typing-extensions=3D=3D3.7.4 + +# Transitive pylint dependencies +astroid=3D=3D2.5.4 +lazy-object-proxy=3D=3D1.4.0 +toml=3D=3D0.10.0 +wrapt=3D=3D1.12.1 diff --git a/tests/docker/dockerfiles/python.docker b/tests/docker/dockerfi= les/python.docker index 56d88417df4d..175c10a34e89 100644 --- a/tests/docker/dockerfiles/python.docker +++ b/tests/docker/dockerfiles/python.docker @@ -7,7 +7,6 @@ MAINTAINER John Snow ENV PACKAGES \ gcc \ make \ - pipenv \ python3 \ python3-pip \ python3-tox \ --=20 2.39.1 From nobody Tue May 14 21:04:33 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1677076736; cv=none; d=zohomail.com; s=zohoarc; b=n7tNxuxVfxM6+cNK9cQaqc4cXeehzw8q9eoZGiX7saUKN1ptvnzukBCy2yqGeG/z5e3Scw1ffNdaZOqLkQxkYSsBb0Lab9bD7ypyTyHt6mFQ093gE8PyOCLZRD8CyJIoj0qPxT4W0mjasqc4lOa1XmzAATHWVxqoKGZN82yaINs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1677076736; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=4T1EZdwlkFU19mhmamoCuqBhLorkYo5RbcMXE4vqj9I=; b=N6gHL6QjxdxDMrkjgrbjZ1Ge7c+qT7bPlm/yfK3Kyxqd+kXDYQepBqoFbRhVL9KEn8LZX0uwjuxgqrvSRrw/Ta/2tqZza7U0qMm6aD882L2zloPLndJ1hfrFrCHcnYr4O4TicJABmRWOSs/cguRlQKJh2lPxvp/w1vdVPFCDwok= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1677076736758227.1909102184817; Wed, 22 Feb 2023 06:38:56 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUqGD-0004LT-6C; Wed, 22 Feb 2023 09:38:22 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUqG4-0004Iq-At for qemu-devel@nongnu.org; Wed, 22 Feb 2023 09:38:12 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUqG2-0001Fi-U4 for qemu-devel@nongnu.org; Wed, 22 Feb 2023 09:38:12 -0500 Received: from mail-ed1-f71.google.com (mail-ed1-f71.google.com [209.85.208.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-170--_hCR5LdMkSAyKTcefdlMA-1; Wed, 22 Feb 2023 09:38:07 -0500 Received: by mail-ed1-f71.google.com with SMTP id fi8-20020a056402550800b004a26cc7f6cbso10941726edb.4 for ; Wed, 22 Feb 2023 06:38:06 -0800 (PST) Received: from avogadro.local ([2001:b07:6468:f312:9af8:e5f5:7516:fa89]) by smtp.gmail.com with ESMTPSA id br4-20020a170906d14400b008de729c8a03sm2279969ejb.38.2023.02.22.06.38.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Feb 2023 06:38:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1677076689; 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=4T1EZdwlkFU19mhmamoCuqBhLorkYo5RbcMXE4vqj9I=; b=BhIZxhDGg9uw+kvbKfSxsYYZSIHMcVBlVxkxOxymbPbaU6Wn8al1es/iI9CntvAaxjhL0u D8ujqhWXDJcgTHu7UO4qgW3m3STseDFguNMZ/8KSn3KREVEjwSTI+9HUQFj/5wIV7IBxFo pQAjs7+TRdcFH3GZLp8/bzzyDIGu5+w= X-MC-Unique: -_hCR5LdMkSAyKTcefdlMA-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=4T1EZdwlkFU19mhmamoCuqBhLorkYo5RbcMXE4vqj9I=; b=VolQiUExM8J7W0B9sNX7TtSGbaulS4L57qRZ2uzETnRAQ4NHiBEkvOmHVTnpAqCguu Qc/b0n0FpqyCGrl0XhTY5dcOSJqTVts+ZVNFjsPk5G7ECLn1gJfBG/FjHFxhm26NOf8R zmyS2e6ELCWFwyZ2YBFsEOefbi0Kxt9IHwBtUfs8Q9xqD9izjzobB49xwe8g3dMn71TE bP8KXjZqqg/OQasVluTjO+2VFjKcxoR53qLQuwvM6wNOmPx2v7Zd1cV5/FtK4DWrwzrm FD9zlVbylwL2oB5LgR0l9/vXZBUwy6yOHWPKMajHwdt8h6NtwOHZt/ldZn9mKUkSKa7z TzIQ== X-Gm-Message-State: AO0yUKX9M7GOXd5/Il4p5S9zcPOWZH7urrpsZlMh18mYTLcJU+eQbFXs 0Y/Muw+HeI/3FBhooHcNU7B54fdQPCXKLA9wUPJu9qDU+qyYapYoWR/rp1D4v0eIr8luv9xggjC 5ilRFG/kVystGZemnFQMX1176b6NxuivwSRutlpplyeosaR6jRBKFZ7lSGgFkNXhbmOOGAu3t X-Received: by 2002:a17:906:8419:b0:88a:1ea9:a5ea with SMTP id n25-20020a170906841900b0088a1ea9a5eamr13274212ejx.65.1677076685530; Wed, 22 Feb 2023 06:38:05 -0800 (PST) X-Google-Smtp-Source: AK7set/XFO1M2+MCEe6nlVrrHq8EjJlEqN9onBOwsFttLGkT6KhopgoPkELuesn/aUvNyYQZQNvkqw== X-Received: by 2002:a17:906:8419:b0:88a:1ea9:a5ea with SMTP id n25-20020a170906841900b0088a1ea9a5eamr13274190ejx.65.1677076685188; Wed, 22 Feb 2023 06:38:05 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: jsnow@redhat.com, peter.maydell@linaro.org, thuth@redhat.com, alex.bennee@linaro.org, armbru@redhat.com, berrange@redhat.com Subject: [PATCH 03/10] meson: prefer 'sphinx-build' to 'sphinx-build-3' Date: Wed, 22 Feb 2023 15:37:45 +0100 Message-Id: <20230222143752.466090-4-pbonzini@redhat.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230222143752.466090-1-pbonzini@redhat.com> References: <20230222143752.466090-1-pbonzini@redhat.com> MIME-Version: 1.0 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=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1677076737528100001 Content-Type: text/plain; charset="utf-8" From: John Snow Once upon a time, "sphinx-build" on certain RPM platforms invoked specifically a Python 2.x version, while "sphinx-build-3" was a distro shim for the Python 3.x version. These days, none of our supported platforms utilize a 2.x version, so it should be safe to search for 'sphinx-build' prior to 'sphinx-build-3', which will prefer pip/venv installed versions of sphinx if they're available. This adds an extremely convenient ability to test document building ability in QEMU across multiple versions of Sphinx for the purposes of compatibility testing. Signed-off-by: John Snow Message-Id: <20230221012456.2607692-6-jsnow@redhat.com> Signed-off-by: Paolo Bonzini --- docs/meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/meson.build b/docs/meson.build index 9136fed3b730..906034f9a87f 100644 --- a/docs/meson.build +++ b/docs/meson.build @@ -1,5 +1,5 @@ if get_option('sphinx_build') =3D=3D '' - sphinx_build =3D find_program(['sphinx-build-3', 'sphinx-build'], + sphinx_build =3D find_program(['sphinx-build', 'sphinx-build-3'], required: get_option('docs')) else sphinx_build =3D find_program(get_option('sphinx_build'), --=20 2.39.1 From nobody Tue May 14 21:04:33 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1677076812; cv=none; d=zohomail.com; s=zohoarc; b=PrsYfwGab2UM29dHxUbPp3rpvJsZ/CZGHreQPYmKC+ZvmH0kLsKAWhFcyCqK+qAq3T0hqZ1OWbwaFErjtsKwRBCvBAeFGbn8S+KXQPPhRAjKuuDhxp0jV88XBbjTKXD/m0nIEl4bABvaQ1LrHLxYRwcjV42oCp+aTffyVKzmms8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1677076812; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Aftz3yHMnfNpKwRJjaYwFZ+exMlDTS1Uqsu3tcf0utk=; b=TgseX/8YkBZkYfcSuOCcL+L+8mguVhKhfI8VrD5U0ELTsoNXFSNagZ8EuC2sB674b7wzC5TZuP8VBdnRJFEPWHdQP7EHcc976zvbdzMV+gMB5ex93kkpDqDIFXjUam1BzpYKFGFiDoQ+8YaIYTtuqdOm6rqYnRyH1YjX7V4UOVw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1677076812431713.092300410368; Wed, 22 Feb 2023 06:40:12 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUqGI-0004NO-Ha; Wed, 22 Feb 2023 09:38:26 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUqG6-0004J5-DP for qemu-devel@nongnu.org; Wed, 22 Feb 2023 09:38:14 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUqG4-0001Fv-Hu for qemu-devel@nongnu.org; Wed, 22 Feb 2023 09:38:13 -0500 Received: from mail-ed1-f70.google.com (mail-ed1-f70.google.com [209.85.208.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-654-tzSJrFqyOSqVx32vGoHnew-1; Wed, 22 Feb 2023 09:38:10 -0500 Received: by mail-ed1-f70.google.com with SMTP id cy28-20020a0564021c9c00b004acc6cf6322so11150913edb.18 for ; Wed, 22 Feb 2023 06:38:10 -0800 (PST) Received: from avogadro.local ([2001:b07:6468:f312:9af8:e5f5:7516:fa89]) by smtp.gmail.com with ESMTPSA id v20-20020a50d594000000b004ad7962d5bbsm3989480edi.42.2023.02.22.06.38.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Feb 2023 06:38:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1677076691; 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=Aftz3yHMnfNpKwRJjaYwFZ+exMlDTS1Uqsu3tcf0utk=; b=OGSJ1QmKLcKj6H9ZbgnKWe9yLlGBvCAzTCbZ+K0EiqJkjiPu415NL/78KwuDpFtkk8ljI0 3eH8Ru5vwBHfBC7RnfxQu9Nf/EAXoO+5TNRvYJjs+tQHZzSNMDLtXWhAyQHty34cVnU9fV adgE1Mod39D8Tp0SsbI6oDuKCkthFPU= X-MC-Unique: tzSJrFqyOSqVx32vGoHnew-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Aftz3yHMnfNpKwRJjaYwFZ+exMlDTS1Uqsu3tcf0utk=; b=b5rvtiuQIwLsQVBiQKKobQXBfGb0S1KjBbJQ2o1ylz4dFtlWzW/s0S33jv4ocnpM72 K1z2OY+fhS/KIcugRXrqcM4Z6mt5O+x5pjH9pFCu3jbdrqYHb4swxDBlI/Z1KzCpG9Y5 tjfh72KfxmHsT/uWyDP90q7F+hS0bRjo72GOfx/ZpoiYfa/jiIVzcSrujSUJbeO82qx9 dPC/hLbz1ekt1++kPgKmUYYN0ej7hxDmVFz2arL1Re/wI5AG5vrTNxSgrMaa6gSpKncC xbuStMKsIpmAEMv38o4NzEGCCz80BTcByXvC7QMsXdZ/DBczufCchFl6nlEQ8aYTZKFO 3zwQ== X-Gm-Message-State: AO0yUKVsS8G4uL8OgQ0U9RppJ5UspLpbkl1kuNSuT5Py9uBRScRJKkYq 8Eu9XTBb3ldKZFWQRGN2nH8D3XfjCBWCL1JzuXBTf7yWNXX0lFxrd3UhKnRkyp6CIx9udtYv+kb cILW3CUlJH7GvG5YdyDiszCw9Qo131+6nW6gk7gdxRQ/Fmeg548wkQUtrpbqlWiRnEbusTQ1Q X-Received: by 2002:a17:906:aac5:b0:8b1:7a83:1a33 with SMTP id kt5-20020a170906aac500b008b17a831a33mr17203417ejb.54.1677076688730; Wed, 22 Feb 2023 06:38:08 -0800 (PST) X-Google-Smtp-Source: AK7set8xnB9ldgrz14i5Vfq4Kh/PkF4s5nMloyBOM7fRsETAHvlosAaIzk3rCKnrl83xLP6L8b1Oew== X-Received: by 2002:a17:906:aac5:b0:8b1:7a83:1a33 with SMTP id kt5-20020a170906aac500b008b17a831a33mr17203397ejb.54.1677076688382; Wed, 22 Feb 2023 06:38:08 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: jsnow@redhat.com, peter.maydell@linaro.org, thuth@redhat.com, alex.bennee@linaro.org, armbru@redhat.com, berrange@redhat.com Subject: [PATCH 04/10] configure: protect against escaping venv when running Meson Date: Wed, 22 Feb 2023 15:37:46 +0100 Message-Id: <20230222143752.466090-5-pbonzini@redhat.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230222143752.466090-1-pbonzini@redhat.com> References: <20230222143752.466090-1-pbonzini@redhat.com> MIME-Version: 1.0 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=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1677076814021100001 Content-Type: text/plain; charset="utf-8" If neither --python nor --meson are specified, Meson's generated build.ninja will invoke Python script using the interpreter *that Meson itself is running under*; not the one identified by configure. This is only an issue if Meson's Python interpreter is not "the first one in the path", which is the one that is used if --python is not specified. A common case where this happen is when the "python3" binary comes from a virtual environment but Meson is not installed (with pip) in the virtual environment. In this case (presumably) whoever set up the venv wanted to use the venv's Python interpreter to build QEMU, while Meson might use a different one, for example an enterprise distro's older runtime. So, detect whether a virtual environment is setup, and if the virtual environment does not have Meson, use the meson submodule. Meson will then run under the virtual environment's Python interpreter. Reported-by: John Snow Signed-off-by: Paolo Bonzini --- configure | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/configure b/configure index 00415f0b48d7..4d66a958023e 100755 --- a/configure +++ b/configure @@ -1047,8 +1047,18 @@ fi # Suppress writing compiled files python=3D"$python -B" =20 +has_meson() { + if test "${VIRTUAL_ENV:+set}" =3D set; then + # Ensure that Meson and Python come from the same virtual environment + test -x "${VIRTUAL_ENV}/bin/meson" && + test "$(command -v meson)" -ef "${VIRTUAL_ENV}/bin/meson" + else + has meson + fi +} + if test -z "$meson"; then - if test "$explicit_python" =3D no && has meson && version_ge "$(meson = --version)" 0.61.5; then + if test "$explicit_python" =3D no && has_meson && version_ge "$(meson = --version)" 0.61.5; then meson=3Dmeson elif test "$git_submodules_action" !=3D 'ignore' ; then meson=3Dgit --=20 2.39.1 From nobody Tue May 14 21:04:33 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1677076772; cv=none; d=zohomail.com; s=zohoarc; b=CD6YKLO/3KTl5D1hIoyCOaeO5YHAQC9iQXzPw9PmR7UU2xLAtltGrEu6CMeHklbr/ls3hJ9DNuwk0WjFCCFHzjrn50JBzptMeEPrb33ARNQ6Zs8unim37QEH/6JHT3OzSVHiPYnDKwFu0mq44UKQnJ7dOGW/SwClBoPs850gkP8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1677076772; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=ETsEJY4w/A9iqDeSpNMSH24/Umn08dHdLv/hEqXfWD8=; b=c4Icx7Kgn4v25Cv6ABoAe+k9EmN0x6Uv4w5pCWaTCj0/EYmgyVQeWzUUc181ibSwaVAcj1k9RMhLrJPbtE+HZAGOGxwir3SoZGRTSZJ2SG+QPPKaF0LkawhQfUIY0kgamc0kEiuGoAr37A9FzgCrHKo3GOBXUmRlJ5R90KcDHvE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1677076772783355.6430435375322; Wed, 22 Feb 2023 06:39:32 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUqGK-0004VZ-4p; Wed, 22 Feb 2023 09:38:28 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUqG9-0004JN-V6 for qemu-devel@nongnu.org; Wed, 22 Feb 2023 09:38:18 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUqG8-0001GH-4j for qemu-devel@nongnu.org; Wed, 22 Feb 2023 09:38:17 -0500 Received: from mail-ed1-f70.google.com (mail-ed1-f70.google.com [209.85.208.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-614-Y3LarJYjP26Jc5ArV88eDg-1; Wed, 22 Feb 2023 09:38:13 -0500 Received: by mail-ed1-f70.google.com with SMTP id ee6-20020a056402290600b004ad51f8fc36so10906883edb.22 for ; Wed, 22 Feb 2023 06:38:12 -0800 (PST) Received: from avogadro.local ([2001:b07:6468:f312:9af8:e5f5:7516:fa89]) by smtp.gmail.com with ESMTPSA id x41-20020a50baac000000b004acbe8255f1sm2145998ede.86.2023.02.22.06.38.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Feb 2023 06:38:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1677076694; 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=ETsEJY4w/A9iqDeSpNMSH24/Umn08dHdLv/hEqXfWD8=; b=alqb2x28p1FmVFNu87dYl6X7avJxFPTURWIgWUGVqr+QJnSUZ9OIU6TBsKSrvKeNANWx+0 Vv4Yxfwm0ECJKeaX9/oiEL9ejSbszzTKYIeu/2RMkq1UmWhtVhSKMeYgziqz3dCWmD6HLW B8dHSSLSNakm+W9NmzGwowSIVyYhENs= X-MC-Unique: Y3LarJYjP26Jc5ArV88eDg-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ETsEJY4w/A9iqDeSpNMSH24/Umn08dHdLv/hEqXfWD8=; b=GF5WtYkETgEB2LulDO3YmURP6dWyr7sGvai3NPxeK5ZlyI4rnXpC5oXLDKm6teMndG LtzUBcPyT54aUU03UETjJc7WiN3pKnUVr5tFUx1sDfoJ13C5IQBdxGqJfr5fFHvrG1Pb 5zVdJHDAS3inTZZYJdW4SzG3SzWlYpP1fkIBPE4yv1fWaJQ0x7WbwT58u2NMow27jLNQ Zxj/eX0UFALHsAkGR34TeuXSguztDbASv6y03cYVpYLS0BnSjuoCQxBrJ5eYstMW/zcN 17tP2g1QEGI7sUNH0kJjr1QRBLWA+yU0tM3WyfX4ZTCXiyJke+IhW9am175qzgnDeDrm PjiQ== X-Gm-Message-State: AO0yUKU/RN75DG+dzl4sYWdG/IZ+eLtpTj21Kz196dfUcXgdGpzt/yRZ 1mJ4b6NYtLLRiOxtumiKoyZfR9NwQOD0M0PoNxcSI7HYnG5zVVrB9FFl2BYeD1N9B2IPi1XsSui Ju7t+QXsHUOnnYmaZggM1Bwt9qN/AxUfW/dEaqCLSDiXBmRz3VGuxQtKiWAf4AiEnfwSK/kN3 X-Received: by 2002:a17:907:f81:b0:877:a3c4:807b with SMTP id kb1-20020a1709070f8100b00877a3c4807bmr16963914ejc.68.1677076691719; Wed, 22 Feb 2023 06:38:11 -0800 (PST) X-Google-Smtp-Source: AK7set9xWcVu6PYlWGOj6VJP9tc+tS5bKSxjjxQVc4ovVDVLMnm12JY7zwepJcP4w0xzbSV46VrB5g== X-Received: by 2002:a17:907:f81:b0:877:a3c4:807b with SMTP id kb1-20020a1709070f8100b00877a3c4807bmr16963887ejc.68.1677076691417; Wed, 22 Feb 2023 06:38:11 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: jsnow@redhat.com, peter.maydell@linaro.org, thuth@redhat.com, alex.bennee@linaro.org, armbru@redhat.com, berrange@redhat.com Subject: [PATCH 05/10] configure: Look for auxiliary Python installations Date: Wed, 22 Feb 2023 15:37:47 +0100 Message-Id: <20230222143752.466090-6-pbonzini@redhat.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230222143752.466090-1-pbonzini@redhat.com> References: <20230222143752.466090-1-pbonzini@redhat.com> MIME-Version: 1.0 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=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1677076773833100001 Content-Type: text/plain; charset="utf-8" From: John Snow At the moment, we look for just "python3" and "python", which is good enough almost all of the time. But ... if you are on a platform that uses an older Python by default and only offers a newer Python as an option, you'll have to specify --python=3D/usr/bin/foo every time. We can be kind and instead make a cursory attempt to locate a suitable Python binary ourselves, looking for the remaining well-known binaries. This configure loop will use whatever is specified in $PYTHON or, if empty, will try the following in order: 1. python3 2. python 3. python3.11 down through python3.6 Notes: - Python virtual environment provides binaries for "python3", "python", and whichever version you used to create the venv, e.g. "python3.8". If configure is invoked from inside of a venv, this configure loop will not "break out" of that venv unless that venv is created using an explicitly non-suitable version of Python that we cannot use. - In the event that no suitable python is found, the first python found is the version used to generate the human-readable error message. - The error message isn't printed right away to allow later configuration code to pick up an explicitly configured python. Signed-off-by: John Snow Signed-off-by: Paolo Bonzini Reviewed-by: Daniel P. Berrang=C3=A9 --- configure | 63 ++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 46 insertions(+), 17 deletions(-) diff --git a/configure b/configure index 4d66a958023e..762b8397a7b7 100755 --- a/configure +++ b/configure @@ -592,20 +592,43 @@ esac =20 : ${make=3D${MAKE-make}} =20 -# We prefer python 3.x. A bare 'python' is traditionally -# python 2.x, but some distros have it as python 3.x, so -# we check that too -python=3D -explicit_python=3Dno -for binary in "${PYTHON-python3}" python -do - if has "$binary" - then - python=3D$(command -v "$binary") - break - fi -done =20 +check_py_version() { + # We require python >=3D 3.6. + # NB: a True python conditional creates a non-zero return code (Failur= e) + "$1" -c 'import sys; sys.exit(sys.version_info < (3,6))' +} + +python=3D +first_python=3D +if test -z "${PYTHON}"; then + explicit_python=3Dno + # A bare 'python' is traditionally python 2.x, but some distros + # have it as python 3.x, so check in both places. + for binary in python3 python python3.11 python3.10 python3.9 python3.8= python3.7 python3.6; do + if has "$binary"; then + python=3D$(command -v "$binary") + if check_py_version "$python"; then + # This one is good. + first_python=3D + break + else + first_python=3D$python + fi + fi + done +else + # Same as above, but only check the environment variable. + has "${PYTHON}" || error_exit "The PYTHON environment variable does no= t point to an executable" + python=3D$(command -v "$PYTHON") + explicit_python=3Dyes + if check_py_version "$python"; then + # This one is good. + first_python=3D + else + first_python=3D$first_python + fi +fi =20 # Check for ancillary tools used in testing genisoimage=3D @@ -1030,16 +1053,22 @@ rm -f ./*/config-devices.mak.d =20 if test -z "$python" then - error_exit "Python not found. Use --python=3D/path/to/python" + # If first_python is set, there was a binary somewhere even though + # it was not suitable. Use it for the error message. + if test -n "$first_python"; then + error_exit "Cannot use '$first_python', Python >=3D 3.6 is require= d." \ + "Use --python=3D/path/to/python to specify a supported Python." + else + error_exit "Python not found. Use --python=3D/path/to/python" + fi fi + if ! has "$make" then error_exit "GNU make ($make) not found" fi =20 -# Note that if the Python conditional here evaluates True we will exit -# with status 1 which is a shell 'false' value. -if ! $python -c 'import sys; sys.exit(sys.version_info < (3,6))'; then +if ! check_py_version "$python"; then error_exit "Cannot use '$python', Python >=3D 3.6 is required." \ "Use --python=3D/path/to/python to specify a supported Python." fi --=20 2.39.1 From nobody Tue May 14 21:04:33 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1677076804; cv=none; d=zohomail.com; s=zohoarc; b=VIN6QR7rU5dDlXay5TlLRlpHY/ONOsOjYEQtY/KmTx/6WNHJEOVqOf3TN6w5yQNT42rojSNPpf6eiJiht126hdqMSP+HvkY6iSQWEzGU3RjPcQFB3hffsnz5O7ht/QN395sPssXluH7EquDZxvbugPMtshSeI8Nui9LW8gEtA6M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1677076804; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Fquq5rmYRc2Q+vS1uFL1UeL36Rp+zoQi5qdIIdc5UMA=; b=dSowhSG/8C5d8Rhe+/6hYLWj8teTEHqjh3VXDldZyBKEiYxOGiypTQ52Pp/xcaZPkaVpelxQPlX01jyxionZH0jxvOGiH8318fxr5DzIaCiwJpL6nsgeegeT2pkDlCyApytdOEG01r7Lx4v5csLmm+42+rlxbTTslLK/6xJGEXo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1677076804045465.62443868837136; Wed, 22 Feb 2023 06:40:04 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUqGO-0004i6-5C; Wed, 22 Feb 2023 09:38:32 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUqGC-0004Mf-1p for qemu-devel@nongnu.org; Wed, 22 Feb 2023 09:38:21 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUqGA-0001Gs-Gh for qemu-devel@nongnu.org; Wed, 22 Feb 2023 09:38:19 -0500 Received: from mail-ed1-f70.google.com (mail-ed1-f70.google.com [209.85.208.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-28-9izwojO-O7Ox-82H4c5emQ-1; Wed, 22 Feb 2023 09:38:16 -0500 Received: by mail-ed1-f70.google.com with SMTP id t9-20020a056402524900b004af59c073abso5641762edd.6 for ; Wed, 22 Feb 2023 06:38:16 -0800 (PST) Received: from avogadro.local ([2001:b07:6468:f312:9af8:e5f5:7516:fa89]) by smtp.gmail.com with ESMTPSA id kd21-20020a17090798d500b008b980c3e013sm6427540ejc.179.2023.02.22.06.38.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Feb 2023 06:38:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1677076697; 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=Fquq5rmYRc2Q+vS1uFL1UeL36Rp+zoQi5qdIIdc5UMA=; b=SeLNnAlH3Wc+07VEf55tlY+bXhbAHntP9D+iXPq4n2fmsQSMq3GLmNcv7s+PQ0gFyqlWKq P0QN0ENQXqNBjquyG9MAI18gDp5Zv7HxeREqZMvwDwmjpLpcvHDMHQ5o0bGQjX/8v2fZz/ sHlTmA2fgbJ2MK9kYudCGt+9Y73bK88= X-MC-Unique: 9izwojO-O7Ox-82H4c5emQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Fquq5rmYRc2Q+vS1uFL1UeL36Rp+zoQi5qdIIdc5UMA=; b=MvDa++CxxK0VRZUOpsjJuZiFAp8GFuiMbF6ouGeygijxpmtjKGvQWuC1dm6MT5J4cQ zHurTbUaX6RRrqJ7joV0YMFzyBevH3QNKnEjCoOYIxN9QwaaXhlp9uOimE+nqoudNmPm 5AmQ40QBzjnsv+ohGVWkZlc7I71p4iRB47D1scYftteK7AhKg5aZyQqCG9/IwxfTE08S KhnRbLQg0el0mSgSpbfZDU0UgB8iXqhROM6DCQPfC0ofZeaq6B8HLs7s9gELOg9IJ64p KvCPGUMGkyWMZHRQRH/G1Ph4efj2i1w5RNIBx5kRX7H4/8YC46eIg3RdMHdPM5SZIJBB GANA== X-Gm-Message-State: AO0yUKW7tWHFskYjBeFM6Bktm1Mf0D9HEfWIscAGgWyRB/sOxqmTDgD0 WVWT7LxGkjo/tuMCez9+93jNdxztP9gFAjskEsqOtfHIepcmFgLLOu8VdLZA6OXLUt+RPgKDCYe aT8XbP0VHF3j17ay8lUfOK+1tzHF169mQXtdnRkfA+rgi+Znn/p+y2v+25jesV+78HRRyCUHd X-Received: by 2002:a17:907:6e8f:b0:878:4d11:f868 with SMTP id sh15-20020a1709076e8f00b008784d11f868mr24413185ejc.2.1677076694962; Wed, 22 Feb 2023 06:38:14 -0800 (PST) X-Google-Smtp-Source: AK7set8xCJBDEpXQmOpykS8/UJnyxboI1xK4SJGxKkm2YdDLQjpBZMTGL5X6wqZsUxZEbd1bes5TiA== X-Received: by 2002:a17:907:6e8f:b0:878:4d11:f868 with SMTP id sh15-20020a1709076e8f00b008784d11f868mr24413159ejc.2.1677076694717; Wed, 22 Feb 2023 06:38:14 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: jsnow@redhat.com, peter.maydell@linaro.org, thuth@redhat.com, alex.bennee@linaro.org, armbru@redhat.com, berrange@redhat.com Subject: [PATCH 06/10] lcitool: update submodule Date: Wed, 22 Feb 2023 15:37:48 +0100 Message-Id: <20230222143752.466090-7-pbonzini@redhat.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230222143752.466090-1-pbonzini@redhat.com> References: <20230222143752.466090-1-pbonzini@redhat.com> MIME-Version: 1.0 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=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1677076806003100003 Content-Type: text/plain; charset="utf-8" Signed-off-by: Paolo Bonzini Reviewed-by: Daniel P. Berrang=C3=A9 --- tests/docker/dockerfiles/alpine.docker | 2 +- tests/docker/dockerfiles/fedora-win32-cross.docker | 1 + tests/docker/dockerfiles/fedora-win64-cross.docker | 1 + tests/lcitool/libvirt-ci | 2 +- 4 files changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/docker/dockerfiles/alpine.docker b/tests/docker/dockerfi= les/alpine.docker index 4a569d82f64f..66c499c097ab 100644 --- a/tests/docker/dockerfiles/alpine.docker +++ b/tests/docker/dockerfiles/alpine.docker @@ -61,7 +61,7 @@ RUN apk update && \ liburing-dev \ libusb-dev \ linux-pam-dev \ - llvm11 \ + llvm \ lttng-ust-dev \ lzo-dev \ make \ diff --git a/tests/docker/dockerfiles/fedora-win32-cross.docker b/tests/doc= ker/dockerfiles/fedora-win32-cross.docker index b659c0b8a89d..41769fc94a8e 100644 --- a/tests/docker/dockerfiles/fedora-win32-cross.docker +++ b/tests/docker/dockerfiles/fedora-win32-cross.docker @@ -79,6 +79,7 @@ RUN nosync dnf install -y \ mingw32-glib2 \ mingw32-gnutls \ mingw32-gtk3 \ + mingw32-libepoxy \ mingw32-libgcrypt \ mingw32-libjpeg-turbo \ mingw32-libpng \ diff --git a/tests/docker/dockerfiles/fedora-win64-cross.docker b/tests/doc= ker/dockerfiles/fedora-win64-cross.docker index 0a404c15bfe4..46d5d05763a6 100644 --- a/tests/docker/dockerfiles/fedora-win64-cross.docker +++ b/tests/docker/dockerfiles/fedora-win64-cross.docker @@ -80,6 +80,7 @@ RUN nosync dnf install -y \ mingw64-glib2 \ mingw64-gnutls \ mingw64-gtk3 \ + mingw64-libepoxy \ mingw64-libgcrypt \ mingw64-libjpeg-turbo \ mingw64-libpng \ diff --git a/tests/lcitool/libvirt-ci b/tests/lcitool/libvirt-ci index 319a534c220f..1c3e16cae384 160000 --- a/tests/lcitool/libvirt-ci +++ b/tests/lcitool/libvirt-ci @@ -1 +1 @@ -Subproject commit 319a534c220f53fc8670254cac25d6f662c82112 +Subproject commit 1c3e16cae38407d0782dc94080d1104106456fa4 --=20 2.39.1 From nobody Tue May 14 21:04:33 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1677076786; cv=none; d=zohomail.com; s=zohoarc; b=G9RvgdP2nG+cljsaxTXPqqbgzoFzWB7WSwoGV4gMWBF3pgupWYPHbOgr6kREwXhzdrsCogoiO7ltq85iFcVrmsYlYCdExh082G/xhF0Xxigz7dBbG4HCerKeTC7PzASpC+ruAF7w2hmn+yG9dB2DdInB1ML8XAHNYdZOkgO6UcM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1677076786; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=GdgRe/0ubTalQGk7MlsIYFdtsI9zXNirHCIKNY7pxIo=; b=oCXf3ew5/tz/kRb2zkNmKaC/ocsxmevtaUy0lqLt+0v1hsCwtJgOBG5B7Jleys14vz2Pu281hk+vsaUSmL6V+9CBgA9gdwAa7dDIEfHGzc5Vph+P8Pd4Qldgv65XLXeQeVgsS+urdwo8qImuf7ehnMZc7uDlIkjlpq1/Wc9xPMc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1677076786845232.9656862110097; Wed, 22 Feb 2023 06:39:46 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUqGN-0004hj-WC; Wed, 22 Feb 2023 09:38:32 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUqGF-0004NN-PT for qemu-devel@nongnu.org; Wed, 22 Feb 2023 09:38:25 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUqGD-0001Ha-TT for qemu-devel@nongnu.org; Wed, 22 Feb 2023 09:38:23 -0500 Received: from mail-ed1-f70.google.com (mail-ed1-f70.google.com [209.85.208.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-261-79FjzuyoOwmVIhBiI9a1qA-1; Wed, 22 Feb 2023 09:38:20 -0500 Received: by mail-ed1-f70.google.com with SMTP id dm14-20020a05640222ce00b0046790cd9082so11477856edb.21 for ; Wed, 22 Feb 2023 06:38:19 -0800 (PST) Received: from avogadro.local ([2001:b07:6468:f312:9af8:e5f5:7516:fa89]) by smtp.gmail.com with ESMTPSA id c23-20020a50f617000000b004acde0a1ae5sm3592407edn.89.2023.02.22.06.38.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Feb 2023 06:38:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1677076701; 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=GdgRe/0ubTalQGk7MlsIYFdtsI9zXNirHCIKNY7pxIo=; b=Kncx7m/n62Ze7WLnxWG/tj09AHyruU/vR3sWBiFSx+VzBLjtqw3MO4E5rT/3Hgqb7dt94d dGFc46a7fUC8KHT5xuO1WhLbRiQqXgvYOcoc1Q3KOKhqCQKub+mo7InVR4yRdEAuH5P9uk HTaWsv6rRoDf1grz3hLM/az56VehKRw= X-MC-Unique: 79FjzuyoOwmVIhBiI9a1qA-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=GdgRe/0ubTalQGk7MlsIYFdtsI9zXNirHCIKNY7pxIo=; b=EPhasTbJ7dx2lXho1ogORtqAvxU4iG3bm4M/Ek9WXNqPJbT0i2jp+CXev+4ogRO3bX 55v4feBCEqtKxtQcPK4I07AreuO4CWlB7kEDsa2uebYpY0s3Egpe8opgRS6RgV1/OwPy Yoa1aZEUMOY9bTm6w8V3RjLdiC3s/wcc5ElPmYFsowDdOxIT6twMxMEoozZzFx6DQe+k tgaBmXW1DFjrpoziD2HJK+O2V4BfopjXTQr0vWMo+NlB7mgpt6VxJX3x2kG4xYWknVkl p/1xheYoDg4IBaKssaTQYm9AIYY1mZAHYAGQK2Dqu6FZV8ISA7ugfDdkTr1V13aNuPWR dSwQ== X-Gm-Message-State: AO0yUKXkvr+LtALiOmJdlYPvSFodq8nRbXDyp/InweyKfci/ah22lBWp XNl1DroNwsX4a4OK+/qGpEN9I6SEPzTUkCuhY0N++2e9XjuNwnhAJQztjwOIX9xron6kB/jlyDG TrftwBj2aC+YcToP8ucq4WV1BFnm6ilAwD8Ab4qyVEwH9kibY/SQqhBOYqmGFa9P4+IrBEKwc X-Received: by 2002:a05:6402:4d4:b0:4ac:c9ea:17b4 with SMTP id n20-20020a05640204d400b004acc9ea17b4mr7474533edw.41.1677076698195; Wed, 22 Feb 2023 06:38:18 -0800 (PST) X-Google-Smtp-Source: AK7set83bX57S86nMWAAAYGQ9+sw3mHEUPAxqdOx/VjFdxPt5xqLM/YdIgsb8yqSTcTMd2B+818GNA== X-Received: by 2002:a05:6402:4d4:b0:4ac:c9ea:17b4 with SMTP id n20-20020a05640204d400b004acc9ea17b4mr7474509edw.41.1677076697895; Wed, 22 Feb 2023 06:38:17 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: jsnow@redhat.com, peter.maydell@linaro.org, thuth@redhat.com, alex.bennee@linaro.org, armbru@redhat.com, berrange@redhat.com Subject: [PATCH 07/10] docs/devel: update and clarify lcitool instructions Date: Wed, 22 Feb 2023 15:37:49 +0100 Message-Id: <20230222143752.466090-8-pbonzini@redhat.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230222143752.466090-1-pbonzini@redhat.com> References: <20230222143752.466090-1-pbonzini@redhat.com> MIME-Version: 1.0 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=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1677076787898100001 Content-Type: text/plain; charset="utf-8" Shorten a bit the description of what libvirt-ci does, the name of the data files is not relevant at that point. However, the procedures to add new build prerequisites are lacking some information, particularly with respect to regenerating the output test files for lcitool's unit tests. While at it, also update the paths in the libvirt-ci repository. Signed-off-by: Paolo Bonzini Reviewed-by: Daniel P. Berrang=C3=A9 --- docs/devel/testing.rst | 72 ++++++++++++++++++++++++------------------ 1 file changed, 41 insertions(+), 31 deletions(-) diff --git a/docs/devel/testing.rst b/docs/devel/testing.rst index e10c47b5a7ca..648b7aa09137 100644 --- a/docs/devel/testing.rst +++ b/docs/devel/testing.rst @@ -429,49 +429,57 @@ using the ``lcitool`` program provided by the ``libvi= rt-ci`` project: =20 https://gitlab.com/libvirt/libvirt-ci =20 -In that project, there is a ``mappings.yml`` file defining the distro nati= ve -package names for a wide variety of third party projects. This is processed -in combination with a project defined list of build pre-requisites to dete= rmine -the list of native packages to install on each distribution. This can be u= sed -to generate dockerfiles, VM package lists and Cirrus CI variables needed to -setup build environments across OS distributions with a consistent set of -packages present. - -When preparing a patch series that adds a new build pre-requisite to QEMU, -updates to various lcitool data files may be required. +``libvirt-ci`` contains an ``lcitool`` program as well as a list of +mappings to distribution package names for a wide variety of third +party projects. ``lcitool`` applies the mappings to a list of build +pre-requisites in ``tests/lcitool/projects/qemu.yml``, determines the +list of native packages to install on each distribution, and uses them +to generate build environments (dockerfiles and Cirrus CI variable files) +that are consistent across OS distribution. =20 =20 Adding new build pre-requisites ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ =20 +When preparing a patch series that adds a new build +pre-requisite to QEMU, the prerequisites should to be added to +``tests/lcitool/projects/qemu.yml`` in order to make the dependency +available in the CI build environments. + In the simple case where the pre-requisite is already known to ``libvirt-c= i`` -the following steps are needed +the following steps are needed: =20 * Edit ``tests/lcitool/projects/qemu.yml`` and add the pre-requisite =20 * Run ``make lcitool-refresh`` to re-generate all relevant build environm= ent manifests =20 -In some cases ``libvirt-ci`` will not know about the build pre-requisite a= nd -thus some extra preparation steps will be required first +In some cases ``libvirt-ci`` will not know about the build +pre-requisite and thus some extra preparation steps will be required +first. Even though you can add the mappings for testing purposes to +``tests/lcitool/mappings.yml`` in the QEMU repository, please contribute +the mapping to the ``libvirt-ci`` project as well: =20 * Fork the ``libvirt-ci`` project on gitlab =20 - * Edit the ``mappings.yml`` change to add an entry for the new build - prerequisite, listing its native package name on as many OS distros - as practical. + * Add an entry for the new build prerequisite to + ``lcitool/facts/mappings.yml``, listing its native package name on as + many OS distros as practical. Run ``python -m pytest --regenerate-outp= ut`` + and check that the changes are correct. =20 - * Commit the ``mappings.yml`` change and submit a merge request to - the ``libvirt-ci`` project, noting in the description that this - is a new build pre-requisite desired for use with QEMU + * Commit the ``mappings.yml`` change together with the regenerated test + files, and submit a merge request to the ``libvirt-ci`` project. + Please note in the description that this is a new build pre-requisite + desired for use with QEMU =20 * CI pipeline will run to validate that the changes to ``mappings.yml`` are correct, by attempting to install the newly listed package on all OS distributions supported by ``libvirt-ci``. =20 * Once the merge request is accepted, go back to QEMU and update - the ``libvirt-ci`` submodule to point to a commit that contains - the ``mappings.yml`` update. + the ``tests/lcitool/libvirt-ci`` submodule to point to a commit that + contains the ``mappings.yml`` update. Then add the prerequisite and + run ``make lcitool-refresh``. =20 =20 Adding new OS distros @@ -498,18 +506,20 @@ Assuming there is agreement to add a new OS distro th= en =20 * Fork the ``libvirt-ci`` project on gitlab =20 - * Add metadata under ``guests/lcitool/lcitool/ansible/group_vars/`` - for the new OS distro. There might be code changes required if - the OS distro uses a package format not currently known. The - ``libvirt-ci`` maintainers can advise on this when the issue - is file. + * Add metadata under ``lcitool/facts/targets/`` for the new OS + distro. There might be code changes required if the OS distro + uses a package format not currently known. The ``libvirt-ci`` + maintainers can advise on this when the issue is filed. =20 - * Edit the ``mappings.yml`` change to update all the existing package - entries, providing details of the new OS distro + * Edit the ``lcitool/facts/mappings.yml`` change to add entries for + the new OS, listing the native package names for as many packages + as practical. Run ``python -m pytest --regenerate-output`` and + check that the changes are correct. =20 - * Commit the ``mappings.yml`` change and submit a merge request to - the ``libvirt-ci`` project, noting in the description that this - is a new build pre-requisite desired for use with QEMU + * Commit the changes to ``lcitool/facts`` and the regenerated test + files, and submit a merge request to the ``libvirt-ci`` project. + Please note in the description that this is a new build pre-requisite + desired for use with QEMU =20 * CI pipeline will run to validate that the changes to ``mappings.yml`` are correct, by attempting to install the newly listed package on --=20 2.39.1 From nobody Tue May 14 21:04:33 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1677076777; cv=none; d=zohomail.com; s=zohoarc; b=BAzYo9prJ/l2CHvWRoXL4+QPc/N8S1KT4inO9npKlqa5OSie5GogmvLOfEZEpGRediiEJa7wkOb2k1px7uQEiKWgiq58/qSQ2IPBBxek2RmZZ1hwfTBFkVJ0Y07tNXtJYYs2ztMx0UXrls6/AVBUQOlORXlWJ5EfErz3ypT0MbI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1677076777; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=RY0ZpVcRRQsFXNlFXYjvJpNBlhuzbkZXMUYKbkzlWvw=; b=bX5/ZbKs1iIyNJBpwOoGyKk9XSYDCJnBOv72L9DVaTS6/6y5kcmqs4HA87fpcZAC0DZrYyvUzz0qJtVkM0sTOHI5B+hw0gyihZEM/J1ZWwuqlGt9zctkNP6wEnBQwWZFC6lbqGALyS0WOlrMP+SReLdefr0mVWD012byCCyhT4w= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1677076777078595.8718636168526; Wed, 22 Feb 2023 06:39:37 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUqGM-0004Zg-7e; Wed, 22 Feb 2023 09:38:30 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUqGI-0004Sm-Uz for qemu-devel@nongnu.org; Wed, 22 Feb 2023 09:38:26 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUqGH-0001I6-4A for qemu-devel@nongnu.org; Wed, 22 Feb 2023 09:38:26 -0500 Received: from mail-ed1-f69.google.com (mail-ed1-f69.google.com [209.85.208.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-175-LeCBqR_YPd6AF3lum9Waww-1; Wed, 22 Feb 2023 09:38:23 -0500 Received: by mail-ed1-f69.google.com with SMTP id eg35-20020a05640228a300b004ad6e399b73so10179220edb.10 for ; Wed, 22 Feb 2023 06:38:23 -0800 (PST) Received: from avogadro.local ([2001:b07:6468:f312:9af8:e5f5:7516:fa89]) by smtp.gmail.com with ESMTPSA id c30-20020a50f61e000000b004aee4e2a56esm3990256edn.0.2023.02.22.06.38.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Feb 2023 06:38:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1677076704; 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=RY0ZpVcRRQsFXNlFXYjvJpNBlhuzbkZXMUYKbkzlWvw=; b=hwGDZzLZkoYa9Yq6kOGJuj+llYobmmG3PRrUx17Yu1OHCESHJ8Uadk5emyc6BBlv1FX7zF 0X1CehIgCBQWSCxVc36Xgzj7TckikwFz+sBpZI/xCopgLpmWvh/Yvpj6IZ+eTwLhhdJRBq zMzDSV+/14lN0/uY3ji0q/CQazsU/mY= X-MC-Unique: LeCBqR_YPd6AF3lum9Waww-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=RY0ZpVcRRQsFXNlFXYjvJpNBlhuzbkZXMUYKbkzlWvw=; b=MsZBXgUBAj6fhX6ag+0up9VyW1teuWJV9p0WUBF8SQVsH7/OKAIEGdGahmLWgBP6V0 mBXHyXDJLpVMmkaKfMWrtT3pPt//uBA3diFK7/ZBsIur6jy7Z5POcKvKczue8bnLMyKV ioK/AnVTThuabcJ4e2RTQGm4DJgawAubtZn0MF3MzaMoWxRHZxGP+wjb1kGYWOIzHKp4 ysekgEsbYZ62mzsPECv+M1lrXF5Q5dGHEd7OU1csJdsfYbBE+jQ0qFEdN5WUydOCnDj6 TcqnZVe0EUX36xCx4igXVPOhA3SMIN3xx4xZ3FVw1n2yAKgHcTkCYdojs6uq9VFIQPxl PdGQ== X-Gm-Message-State: AO0yUKWbRNel6dF6cRaPF+09NC2oSg7DqIjBOoxOuAvv7mTtsvf4U0IM 3+JrMvtt5/E5A8Zo1OTDmN0ToCjGlKnQaCaMv3KN5zmUG8+o+wKBBzUkrdcJpYRITVfiMcJMNY2 ADcelXnhjD12OltnDVPKIC7cqu5pkZL+rD8Cfn/fsUSrocFjQdDxOfuvh3uomio5fRtKBrWKQ X-Received: by 2002:a05:6402:657:b0:4ab:4641:55fb with SMTP id u23-20020a056402065700b004ab464155fbmr7069716edx.42.1677076701615; Wed, 22 Feb 2023 06:38:21 -0800 (PST) X-Google-Smtp-Source: AK7set9jZrN//lfihi+K+KdG3ZCJnUtagc75Yiq40zkVyNtvbkzikvxyeNBOjo7A2G1L+ShCVMeFkw== X-Received: by 2002:a05:6402:657:b0:4ab:4641:55fb with SMTP id u23-20020a056402065700b004ab464155fbmr7069699edx.42.1677076701386; Wed, 22 Feb 2023 06:38:21 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: jsnow@redhat.com, peter.maydell@linaro.org, thuth@redhat.com, alex.bennee@linaro.org, armbru@redhat.com, berrange@redhat.com Subject: [PATCH 08/10] ci, docker: update CentOS and OpenSUSE Python to non-EOL versions Date: Wed, 22 Feb 2023 15:37:50 +0100 Message-Id: <20230222143752.466090-9-pbonzini@redhat.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230222143752.466090-1-pbonzini@redhat.com> References: <20230222143752.466090-1-pbonzini@redhat.com> MIME-Version: 1.0 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=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1677076777837100001 Content-Type: text/plain; charset="utf-8" Python 3.6 is at end-of-life. libvirt-ci now supports overrides for targets and package mappings, therefore QEMU can use newer versions provided by CentOS 8 (Python 3.8) and OpenSUSE 15.3 (Python 3.9). Packages that the distro does not provide are included in the image via PyPI; lcitool knows how to do that whenever the rpm mapping is empty. Signed-off-by: Paolo Bonzini --- docs/devel/testing.rst | 6 ++ tests/docker/dockerfiles/centos8.docker | 22 +++--- tests/docker/dockerfiles/opensuse-leap.docker | 22 +++--- tests/docker/dockerfiles/ubuntu2004.docker | 2 +- tests/lcitool/mappings.yml | 77 +++++++++++++++++++ tests/lcitool/targets/centos-stream-8.yml | 3 + tests/lcitool/targets/opensuse-leap-153.yml | 3 + 7 files changed, 113 insertions(+), 22 deletions(-) create mode 100644 tests/lcitool/mappings.yml create mode 100644 tests/lcitool/targets/centos-stream-8.yml create mode 100644 tests/lcitool/targets/opensuse-leap-153.yml diff --git a/docs/devel/testing.rst b/docs/devel/testing.rst index 648b7aa09137..67798dc63def 100644 --- a/docs/devel/testing.rst +++ b/docs/devel/testing.rst @@ -481,6 +481,12 @@ the mapping to the ``libvirt-ci`` project as well: contains the ``mappings.yml`` update. Then add the prerequisite and run ``make lcitool-refresh``. =20 +For enterprise distros that default to old, end-of-life versions of the +Python runtime, QEMU uses a separate set of mappings that work with more +recent versions. These can be found in ``tests/lcitool/mappings.yml``. +These should not be a problem unless the dependencies you are adding +is a Python library. + =20 Adding new OS distros ^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/docker/dockerfiles/centos8.docker b/tests/docker/dockerf= iles/centos8.docker index fbc953c6dccc..3c74be09a693 100644 --- a/tests/docker/dockerfiles/centos8.docker +++ b/tests/docker/dockerfiles/centos8.docker @@ -82,7 +82,6 @@ RUN dnf distro-sync -y && \ lzo-devel \ make \ mesa-libgbm-devel \ - meson \ ncurses-devel \ nettle-devel \ ninja-build \ @@ -94,13 +93,12 @@ RUN dnf distro-sync -y && \ pixman-devel \ pkgconfig \ pulseaudio-libs-devel \ - python3 \ - python3-PyYAML \ - python3-numpy \ - python3-pillow \ - python3-pip \ - python3-sphinx \ - python3-sphinx_rtd_theme \ + python38 \ + python38-PyYAML \ + python38-numpy \ + python38-pip \ + python38-setuptools \ + python38-wheel \ rdma-core-devel \ rpm \ sed \ @@ -128,8 +126,14 @@ RUN dnf distro-sync -y && \ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/g++ && \ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc =20 +RUN /usr/bin/pip3.8 install \ + meson=3D=3D0.63.2 \ + pillow \ + sphinx \ + sphinx-rtd-theme + ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" ENV LANG "en_US.UTF-8" ENV MAKE "/usr/bin/make" ENV NINJA "/usr/bin/ninja" -ENV PYTHON "/usr/bin/python3" +ENV PYTHON "/usr/bin/python3.8" diff --git a/tests/docker/dockerfiles/opensuse-leap.docker b/tests/docker/d= ockerfiles/opensuse-leap.docker index 4b2c02d6abfb..5b8dbf2b83dd 100644 --- a/tests/docker/dockerfiles/opensuse-leap.docker +++ b/tests/docker/dockerfiles/opensuse-leap.docker @@ -89,16 +89,9 @@ RUN zypper update -y && \ pam-devel \ pcre-devel-static \ pkgconfig \ - python3-Pillow \ - python3-PyYAML \ - python3-Sphinx \ - python3-base \ - python3-numpy \ - python3-opencv \ - python3-pip \ - python3-setuptools \ - python3-sphinx_rtd_theme \ - python3-wheel \ + python39-base \ + python39-pip \ + python39-setuptools \ rdma-core-devel \ rpm \ sed \ @@ -129,10 +122,15 @@ RUN zypper update -y && \ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/g++ && \ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc =20 -RUN /usr/bin/pip3 install meson=3D=3D0.56.0 +RUN /usr/bin/pip3.9 install \ + PyYAML \ + meson=3D=3D0.63.2 \ + pillow \ + sphinx \ + sphinx-rtd-theme =20 ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" ENV LANG "en_US.UTF-8" ENV MAKE "/usr/bin/make" ENV NINJA "/usr/bin/ninja" -ENV PYTHON "/usr/bin/python3" +ENV PYTHON "/usr/bin/python3.9" diff --git a/tests/docker/dockerfiles/ubuntu2004.docker b/tests/docker/dock= erfiles/ubuntu2004.docker index 13ab0b688726..5b27b89f1c72 100644 --- a/tests/docker/dockerfiles/ubuntu2004.docker +++ b/tests/docker/dockerfiles/ubuntu2004.docker @@ -138,7 +138,7 @@ RUN export DEBIAN_FRONTEND=3Dnoninteractive && \ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/g++ && \ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc =20 -RUN /usr/bin/pip3 install meson=3D=3D0.56.0 +RUN /usr/bin/pip3 install meson=3D=3D0.63.2 =20 ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" ENV LANG "en_US.UTF-8" diff --git a/tests/lcitool/mappings.yml b/tests/lcitool/mappings.yml new file mode 100644 index 000000000000..e4719e45516c --- /dev/null +++ b/tests/lcitool/mappings.yml @@ -0,0 +1,77 @@ +mappings: + flake8: + CentOSStream8: + OpenSUSELeap153: + + meson: + CentOSStream8: + OpenSUSELeap153: + + python3: + CentOSStream8: python38 + OpenSUSELeap153: python39-base + + python3-PyYAML: + CentOSStream8: python38-PyYAML + OpenSUSELeap153: + + python3-devel: + CentOSStream8: python38-devel + OpenSUSELeap153: python39-devel + + python3-docutils: + CentOSStream8: + OpenSUSELeap153: + + python3-numpy: + CentOSStream8: python38-numpy + OpenSUSELeap153: + + python3-opencv: + CentOSStream8: + OpenSUSELeap153: + + python3-pillow: + CentOSStream8: + OpenSUSELeap153: + + python3-pip: + CentOSStream8: python38-pip + OpenSUSELeap153: python39-pip + + python3-pillow: + CentOSStream8: + OpenSUSELeap153: + + python3-selinux: + CentOSStream8: + OpenSUSELeap153: + + python3-setuptools: + CentOSStream8: python38-setuptools + OpenSUSELeap153: python39-setuptools + + python3-sphinx: + CentOSStream8: + OpenSUSELeap153: + + python3-sphinx-rtd-theme: + CentOSStream8: + OpenSUSELeap153: + + python3-venv: + CentOSStream8: python38 + OpenSUSELeap153: python39-base + + python3-wheel: + CentOSStream8: python38-wheel + OpenSUSELeap153: python39-pip + +pypi_mappings: + # Request more recent version + meson: + default: meson=3D=3D0.63.2 + + # Drop packages that need devel headers + python3-numpy: + OpenSUSELeap153: diff --git a/tests/lcitool/targets/centos-stream-8.yml b/tests/lcitool/targ= ets/centos-stream-8.yml new file mode 100644 index 000000000000..6b11160fd1dc --- /dev/null +++ b/tests/lcitool/targets/centos-stream-8.yml @@ -0,0 +1,3 @@ +paths: + pip3: /usr/bin/pip3.8 + python: /usr/bin/python3.8 diff --git a/tests/lcitool/targets/opensuse-leap-153.yml b/tests/lcitool/ta= rgets/opensuse-leap-153.yml new file mode 100644 index 000000000000..683016e0077a --- /dev/null +++ b/tests/lcitool/targets/opensuse-leap-153.yml @@ -0,0 +1,3 @@ +paths: + pip3: /usr/bin/pip3.9 + python: /usr/bin/python3.9 --=20 2.39.1 From nobody Tue May 14 21:04:34 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1677076781; cv=none; d=zohomail.com; s=zohoarc; b=c/t/SpoB5J2yoGFql+xYktjBzsEprYl9t/fvxtZ4aLofWtn364QxMxUdJMBSF5HDbcHMROIn7huFTPZCANdB/5exyJQ8XhwhgngmiYHhGvUg+aj+CFOv1VgEexZlrM45QDzP6NIaqpyLqAUvfV+8HzFmJByuuhSyP3aX2rASwRA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1677076781; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=ktJWINVO6a3JuNf/uK6KuVAN3NzxKGaINvKdsH7f4mw=; b=ObzCs9M0Gw/oP3wFFi50c3ejgueSc2eol77uYsaRlD5Hn08MeDNKqdfFUn1jZHhNdzLSZ9CWkxcL7RYkLnBA2oxWhg33CJzOK+CQGl7wpJpdKOMWZpvjdhAZm6Nd+dX3VVoQdUj3PvPGU9b7YMRN0LhxmHiISH7vfiIsiEUIRUU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1677076781031557.863592385008; Wed, 22 Feb 2023 06:39:41 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUqGO-0004jg-LY; Wed, 22 Feb 2023 09:38:32 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUqGM-0004b6-CA for qemu-devel@nongnu.org; Wed, 22 Feb 2023 09:38:30 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUqGK-0001IM-IE for qemu-devel@nongnu.org; Wed, 22 Feb 2023 09:38:30 -0500 Received: from mail-ed1-f71.google.com (mail-ed1-f71.google.com [209.85.208.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-333-htgnhDJRM5G3qq-rzLcQ5Q-1; Wed, 22 Feb 2023 09:38:26 -0500 Received: by mail-ed1-f71.google.com with SMTP id cy28-20020a0564021c9c00b004acc6cf6322so11151951edb.18 for ; Wed, 22 Feb 2023 06:38:26 -0800 (PST) Received: from avogadro.local ([2001:b07:6468:f312:9af8:e5f5:7516:fa89]) by smtp.gmail.com with ESMTPSA id t9-20020a1709063e4900b008e1509dde19sm1859879eji.205.2023.02.22.06.38.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Feb 2023 06:38:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1677076707; 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=ktJWINVO6a3JuNf/uK6KuVAN3NzxKGaINvKdsH7f4mw=; b=E33zgjUpk4adOZJKJQnRo3zH5jJrWJMD6sILyGep4O41wnBVemOZW0aLGTDsyqhR0HUUr3 MB8NJC5nAnTA+R4nXV384582hJ+ku0rb81Y+6+PdiovS04E7bEOZ9xxUn+DRE234EWyE57 PHweuv0k5XoGFWbQJ2KZklayZdlmekg= X-MC-Unique: htgnhDJRM5G3qq-rzLcQ5Q-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ktJWINVO6a3JuNf/uK6KuVAN3NzxKGaINvKdsH7f4mw=; b=4eTt8IZ7TcstsN7QZBMugo5dFzxAAE04OqFVOvrA9t85ltGLiEHFF4JR46pQkqROgw U0ofTf5BNYNJZIa3ZzI8FWTL1lTyXV8W8gs8artZv/nURkyJywEc1M+d7AIb6ixdLkYG gzwLs3FsCEXXvvYILoi9prF8gzYX2mFK/xsCHoJM9t3s6Eln51AN1AIHgdI3atTTlWLO bz7hmyEfnArghfWF/zeLFEnbgxnKn78vS+OrbQbxkCSpKmVEKZ3yRtir48qke7ZsyW0C 5iJvFaekLtA4XcqlgvZe6qTXES4EMbrcRWaUInA0+huU5qrVDF4HrVhitqmsTeYutRWF 9+Ww== X-Gm-Message-State: AO0yUKXYP/yaTfFGeiEXIuNtXleH1lgt1lLep2BQ5wSSQT0uUHh5ah9G wCCoYComi12NZiuTnUY0KLq/7SuJy5zWDFs1qWV8vMNu23N/A8Dg1tleqjEVVxq+QKpz/zabZV4 n1TyXIIak0YCgftZn77QtX7Y9+GnTlazla5XNqSie3HYaHnL6oBHlI/qqDzZAIaKm5r9ToGn5 X-Received: by 2002:a17:907:5c6:b0:8af:3b78:315d with SMTP id wg6-20020a17090705c600b008af3b78315dmr22071653ejb.23.1677076704643; Wed, 22 Feb 2023 06:38:24 -0800 (PST) X-Google-Smtp-Source: AK7set/ntYQqSEx8NT6wPm978reinv3gGTKxff9UQD8VecL9hqbC2qyslLmIL0/W8mO+HUp4yEiZfQ== X-Received: by 2002:a17:907:5c6:b0:8af:3b78:315d with SMTP id wg6-20020a17090705c600b008af3b78315dmr22071628ejb.23.1677076704380; Wed, 22 Feb 2023 06:38:24 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: jsnow@redhat.com, peter.maydell@linaro.org, thuth@redhat.com, alex.bennee@linaro.org, armbru@redhat.com, berrange@redhat.com Subject: [PATCH 09/10] Python: Drop support for Python 3.6 Date: Wed, 22 Feb 2023 15:37:51 +0100 Message-Id: <20230222143752.466090-10-pbonzini@redhat.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230222143752.466090-1-pbonzini@redhat.com> References: <20230222143752.466090-1-pbonzini@redhat.com> MIME-Version: 1.0 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=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1677076783845100012 Content-Type: text/plain; charset="utf-8" Python 3.6 was EOL 2021-12-31. Newer versions of upstream libraries have begun dropping support for this version and it is becoming more cumbersome to support. Avocado-framework and qemu.qmp each have their own reasons for wanting to drop Python 3.6, but won't until QEMU does. Versions of Python available in our supported build platforms as of today, with optional versions available in parentheses: openSUSE Leap 15.4: 3.6.15 (3.9.10, 3.10.2) CentOS Stream 8: 3.6.8 (3.8.13, 3.9.16) CentOS Stream 9: 3.9.13 Fedora 36: 3.10 Fedora 37: 3.11 Debian 11: 3.9.2 Alpine 3.14, 3.15: 3.9.16 Alpine 3.16, 3.17: 3.10.10 Ubuntu 20.04 LTS: 3.8.10 Ubuntu 22.04 LTS: 3.10.4 NetBSD 9.3: 3.9.13* FreeBSD 12.4: 3.9.16 FreeBSD 13.1: 3.9.16 OpenBSD 7.2: 3.9.16 Note: Our VM tests install 3.7 specifically for freebsd and netbsd; the default for "python" or "python3" in FreeBSD is 3.9.16. NetBSD does not appear to have a default meta-package, but offers several options, the lowest of which is 3.7.15. "python39" appears to be a pre-requisite to one of the other packages we request in tests/vm/netbsd. Since it is safe to under our supported platform policy, bump our minimum supported version of Python to 3.7. Signed-off-by: John Snow Signed-off-by: Paolo Bonzini Reviewed-by: Daniel P. Berrang=C3=A9 --- configure | 8 ++++---- python/Makefile | 10 +++++----- python/setup.cfg | 7 +++---- python/tests/minreqs.txt | 2 +- scripts/qapi/mypy.ini | 2 +- 5 files changed, 14 insertions(+), 15 deletions(-) diff --git a/configure b/configure index 762b8397a7b7..476d8a38b900 100755 --- a/configure +++ b/configure @@ -594,9 +594,9 @@ esac =20 =20 check_py_version() { - # We require python >=3D 3.6. + # We require python >=3D 3.7. # NB: a True python conditional creates a non-zero return code (Failur= e) - "$1" -c 'import sys; sys.exit(sys.version_info < (3,6))' + "$1" -c 'import sys; sys.exit(sys.version_info < (3,7))' } =20 python=3D @@ -605,7 +605,7 @@ if test -z "${PYTHON}"; then explicit_python=3Dno # A bare 'python' is traditionally python 2.x, but some distros # have it as python 3.x, so check in both places. - for binary in python3 python python3.11 python3.10 python3.9 python3.8= python3.7 python3.6; do + for binary in python3 python python3.11 python3.10 python3.9 python3.8= python3.7; do if has "$binary"; then python=3D$(command -v "$binary") if check_py_version "$python"; then @@ -1069,7 +1069,7 @@ then fi =20 if ! check_py_version "$python"; then - error_exit "Cannot use '$python', Python >=3D 3.6 is required." \ + error_exit "Cannot use '$python', Python >=3D 3.7 is required." \ "Use --python=3D/path/to/python to specify a supported Python." fi =20 diff --git a/python/Makefile b/python/Makefile index c5bd6ff83ac9..f660d9991437 100644 --- a/python/Makefile +++ b/python/Makefile @@ -9,14 +9,14 @@ help: @echo "make check-minreqs:" @echo " Run tests in the minreqs virtual environment." @echo " These tests use the oldest dependencies." - @echo " Requires: Python 3.6" - @echo " Hint (Fedora): 'sudo dnf install python3.6'" + @echo " Requires: Python 3.7" + @echo " Hint (Fedora): 'sudo dnf install python3.7'" @echo "" @echo "make check-tox:" @echo " Run tests against multiple python versions." @echo " These tests use the newest dependencies." - @echo " Requires: Python 3.6 - 3.10, and tox." - @echo " Hint (Fedora): 'sudo dnf install python3-tox python3.10'" + @echo " Requires: Python 3.7 - 3.11, and tox." + @echo " Hint (Fedora): 'sudo dnf install python3-tox python3.11'" @echo " The variable QEMU_TOX_EXTRA_ARGS can be use to pass extra" @echo " arguments to tox". @echo "" @@ -58,7 +58,7 @@ pipenv check-pipenv: min-venv: $(QEMU_MINVENV_DIR) $(QEMU_MINVENV_DIR)/bin/activate $(QEMU_MINVENV_DIR) $(QEMU_MINVENV_DIR)/bin/activate: setup.cfg tests/minr= eqs.txt @echo "VENV $(QEMU_MINVENV_DIR)" - @python3.6 -m venv $(QEMU_MINVENV_DIR) + @python3.7 -m venv $(QEMU_MINVENV_DIR) @( \ echo "ACTIVATE $(QEMU_MINVENV_DIR)"; \ . $(QEMU_MINVENV_DIR)/bin/activate; \ diff --git a/python/setup.cfg b/python/setup.cfg index 9e923d97628f..1e8392a045c3 100644 --- a/python/setup.cfg +++ b/python/setup.cfg @@ -14,7 +14,6 @@ classifiers =3D Natural Language :: English Operating System :: OS Independent Programming Language :: Python :: 3 :: Only - Programming Language :: Python :: 3.6 Programming Language :: Python :: 3.7 Programming Language :: Python :: 3.8 Programming Language :: Python :: 3.9 @@ -23,7 +22,7 @@ classifiers =3D Typing :: Typed =20 [options] -python_requires =3D >=3D 3.6 +python_requires =3D >=3D 3.7 packages =3D qemu.qmp qemu.machine @@ -76,7 +75,7 @@ exclude =3D __pycache__, =20 [mypy] strict =3D True -python_version =3D 3.6 +python_version =3D 3.7 warn_unused_configs =3D True namespace_packages =3D True warn_unused_ignores =3D False @@ -158,7 +157,7 @@ multi_line_output=3D3 # of python available on your system to run this test. =20 [tox:tox] -envlist =3D py36, py37, py38, py39, py310, py311 +envlist =3D py37, py38, py39, py310, py311 skip_missing_interpreters =3D true =20 [testenv] diff --git a/python/tests/minreqs.txt b/python/tests/minreqs.txt index dfb8abb155f4..55cc6b41d85b 100644 --- a/python/tests/minreqs.txt +++ b/python/tests/minreqs.txt @@ -1,5 +1,5 @@ # This file lists the ***oldest possible dependencies*** needed to run -# "make check" successfully under ***Python 3.6***. It is used primarily +# "make check" successfully under ***Python 3.7***. It is used primarily # by GitLab CI to ensure that our stated minimum versions in setup.cfg # are truthful and regularly validated. # diff --git a/scripts/qapi/mypy.ini b/scripts/qapi/mypy.ini index 662535642974..3463307ddc72 100644 --- a/scripts/qapi/mypy.ini +++ b/scripts/qapi/mypy.ini @@ -1,7 +1,7 @@ [mypy] strict =3D True disallow_untyped_calls =3D False -python_version =3D 3.6 +python_version =3D 3.7 =20 [mypy-qapi.schema] disallow_untyped_defs =3D False --=20 2.39.1 From nobody Tue May 14 21:04:34 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1677076792; cv=none; d=zohomail.com; s=zohoarc; b=LemrNkX4tf6UQtIxmkWETckI6+Rb5db3q3ecPflkshI6i3NC5Ygrvtws2qLzJRafV8zFtwDLCq/8bNWLtKq3uvbqM2fv/mvNZeFbrTtt2bFx2vjDJFTvGGEhRafGr99tXso5COAMvFD5KIkFoBN8bFMpFyyzwgDAyRH6D+TZNxM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1677076792; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=voGYHUqY1hoGfNH4kKgpNS0fmCCnJR+lfR7MiFf6yoU=; b=BicYzQtKd5+XrXTgYjOMOMloM4CiVDxbKPvhxBCLAsaTaTsIX08XpxmmyvpyGXJfKEdPqWI8a5gI2aE07BRDa1fdr3AVVql+Lan7lWYyJRxlmYiwQoOQzPSCzDPMcDkAF66PhZfL8mctSfvT7URSjEpSSSvWPEJa3MIZCoyAsOY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1677076792191867.6093546369077; Wed, 22 Feb 2023 06:39:52 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUqGP-0004kW-Pt; Wed, 22 Feb 2023 09:38:33 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUqGO-0004jQ-Hw for qemu-devel@nongnu.org; Wed, 22 Feb 2023 09:38:32 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUqGN-0001JP-1j for qemu-devel@nongnu.org; Wed, 22 Feb 2023 09:38:32 -0500 Received: from mail-ed1-f72.google.com (mail-ed1-f72.google.com [209.85.208.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-526-rD6Pbie9PtunupFBEf4MiA-1; Wed, 22 Feb 2023 09:38:29 -0500 Received: by mail-ed1-f72.google.com with SMTP id ec13-20020a0564020d4d00b004a621e993a8so10827399edb.13 for ; Wed, 22 Feb 2023 06:38:28 -0800 (PST) Received: from avogadro.local ([2001:b07:6468:f312:9af8:e5f5:7516:fa89]) by smtp.gmail.com with ESMTPSA id y17-20020aa7ccd1000000b004ab1f97ca2csm4215220edt.60.2023.02.22.06.38.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Feb 2023 06:38:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1677076710; 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-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=voGYHUqY1hoGfNH4kKgpNS0fmCCnJR+lfR7MiFf6yoU=; b=HOwMd7ktJEzxhd4zPYdSLlU1MbB6iSyOgVkQxdxyTiDxW3KCdUyesumyDhhb6KKYGofhkW xUeFHiqwwgeVa265am0AeSLuTciMy//344TRx4PEoiU7ZtkCIkpXNqlhJmekkO/FmuTA5Y fX1WcDRtWobl6ukQ7i0Jp9mX/AkkFVA= X-MC-Unique: rD6Pbie9PtunupFBEf4MiA-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=voGYHUqY1hoGfNH4kKgpNS0fmCCnJR+lfR7MiFf6yoU=; b=s57+kUGT1fwRCsZRN2Dih5JeELyUA5832Opzo4BW7EkucPv+gV+ZjtFG2FOg5lBtej ETu3t5qDvnA6a9hnZ8CivKArnPKGBbb0ATLcJcrEow1uv0lxPdOUA+Bw0v/Y4jkxF32n ssG+gQT+Py/8goww/rX+Zw7EgLRY7t70fmQaWMWGtqsMb2hsX6IZzFvy8ewHK1jQBxv6 yYqpPh7MPIM6jtnWzuBLcJsHXZBeik4A3qPXgRzIKcElQ0bi+xrogrZeVQvbxtvnBtkI 25fvjBfYLs9UFGD0bg07A10IoNKHaonBvs/HMoi/9IILae0NVcDtVtu1GjItEgbxSLn8 UNRg== X-Gm-Message-State: AO0yUKUXeKpvnbhhRffpq9tXRdcZVCfzE1FCCyEUCarE3LV2G8ESRTjk gnoRZWa/tlekl5Lxn9Pwl5jk3Xz9zOCP8yZRTIZUZJYekvabPJrN26ekisf4mEyEBdQP1tXO3Iv ILnj0lQtRfNFlFaPCY/4UblXFIjZ4ZGUwzfoVfvy6/7nh8murBrrR60lnkhSInlcMQGAwPn5X X-Received: by 2002:a05:6402:551b:b0:4ad:738b:6706 with SMTP id fi27-20020a056402551b00b004ad738b6706mr7215027edb.2.1677076707599; Wed, 22 Feb 2023 06:38:27 -0800 (PST) X-Google-Smtp-Source: AK7set+vm+dRXwCgXCY9An9SjeKVLUEwuUDQfXEdbWjdoOPjuR5wc69qcT7OfbTIJwhMb20aRoe1kw== X-Received: by 2002:a05:6402:551b:b0:4ad:738b:6706 with SMTP id fi27-20020a056402551b00b004ad738b6706mr7215010edb.2.1677076707386; Wed, 22 Feb 2023 06:38:27 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: jsnow@redhat.com, peter.maydell@linaro.org, thuth@redhat.com, alex.bennee@linaro.org, armbru@redhat.com, berrange@redhat.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH 10/10] configure: Add courtesy hint to Python version failure message Date: Wed, 22 Feb 2023 15:37:52 +0100 Message-Id: <20230222143752.466090-11-pbonzini@redhat.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230222143752.466090-1-pbonzini@redhat.com> References: <20230222143752.466090-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1677076793868100001 From: John Snow If we begin requiring Python 3.7+, a few platforms are going to need to install an additional Python interpreter package. As a courtesy to the user, suggest the optional package they might need to install. This will hopefully minimize any downtime caused by the change in Python dependency. Signed-off-by: John Snow Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20230221012456.2607692-3-jsnow@redhat.com> Signed-off-by: Paolo Bonzini --- configure | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/configure b/configure index 476d8a38b900..87d0b3ee817c 100755 --- a/configure +++ b/configure @@ -1070,7 +1070,10 @@ fi =20 if ! check_py_version "$python"; then error_exit "Cannot use '$python', Python >=3D 3.7 is required." \ - "Use --python=3D/path/to/python to specify a supported Python." + "Use --python=3D/path/to/python to specify a supported Python= ." \ + "Maybe try:" \ + " openSUSE Leap 15.3+: zypper install python39" \ + " CentOS 8: dnf install python38" fi =20 # Suppress writing compiled files --=20 2.39.1