From nobody Mon Nov 25 04:51:10 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=1717661556; cv=none; d=zohomail.com; s=zohoarc; b=Da8XdM8zQJhuayWX7Z/BltNUJyqtHXVRa4ybjEyUcGUSw7QfH8BHYQ8q9YbXuTANvXHGxSPv/Vkygeho+hqIeiJrkB6XCP9A0WWWhZnOdJR3Pd5zd3eVkWoociwZzaz7nJwyv0AcahuupsJG5VrHAy6rUn+wAa9LPAKZhle87PE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1717661556; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=FA951BqnDnXSxnTsXK0JNsj4r4dzKXFOlCyH+TsIjwg=; b=ZP1daiRwEmBvTQG6RU0VuRb63q+r4Fl6IoO298xotqE4Tiihe5nEbvWO9XgcY1luiwKutfiCF4KSc1N5GRd7ZYFrHskAKyndTOEjpoLOrpkFEWkPABbDd970DSwG+7vBkuv1tOo/1fBX0sb0SThvVCPpxvZcq/NSozySFfD0c00= 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 1717661556027578.71815560543; Thu, 6 Jun 2024 01:12:36 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sF8EG-0007vs-1S; Thu, 06 Jun 2024 04:12:12 -0400 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 1sF8ED-0007vi-Ia for qemu-devel@nongnu.org; Thu, 06 Jun 2024 04:12:09 -0400 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 1sF8E9-0007vr-H8 for qemu-devel@nongnu.org; Thu, 06 Jun 2024 04:12:09 -0400 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_256_GCM_SHA384) id us-mta-612-9Y0muuZFP2WotbaoP4OXrw-1; Thu, 06 Jun 2024 04:12:01 -0400 Received: by mail-ed1-f70.google.com with SMTP id 4fb4d7f45d1cf-57a2fb28a23so451298a12.3 for ; Thu, 06 Jun 2024 01:12:01 -0700 (PDT) Received: from avogadro.local ([151.81.115.112]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-57aae2321e0sm666049a12.88.2024.06.06.01.11.57 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Jun 2024 01:11:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1717661524; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=FA951BqnDnXSxnTsXK0JNsj4r4dzKXFOlCyH+TsIjwg=; b=QyxUJfXjomhoGxehDyaKqJbcWWI6gPTuKBqNdUi/uNuMcmZACXbyc6B4K6SPRJz7eg2RvR DJWIzy4A9EnXa5SYPAazUniT4dLVAPes6kbpqwaCpPHsyRyx4M2+PpM6oJANKALeSEFXML ANdEz6JrZoegoUGPMhdmtG9Us1mpn+s= X-MC-Unique: 9Y0muuZFP2WotbaoP4OXrw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717661519; x=1718266319; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=FA951BqnDnXSxnTsXK0JNsj4r4dzKXFOlCyH+TsIjwg=; b=vxeKzZnaKwUBMaK7IOQ2Ril7FcB9aeWa2piOPtD7rOr4m4Htd8WU1hEkfx+S8I80eI 3ANjSRD38P0FL5ReGgfnjpGWKNw8354Z88OJjijvR35vyoTiDAqRlK2EKS7E4y87ww/i J1M3FAAtjLXr3s57JV3mWleIO9VBBKwl1GKTekS49H0Au+TIZDrWn/2fmZNS6NRfnSNu ecG22FXAbIh5mrK3kO/e3HNhLvG8s0meAwnbANq1cU0xKlN6N4UY4g5qpb57n8GQRvmD YloqHqi2eAFd5QiPtlbGbKprukCMRXHTMMYjLRfDCBqjDVO/nYuWC5AEC0EwUHzVqFXr HNhA== X-Gm-Message-State: AOJu0YzYhAufXKzGj0LVN0Ms4rW2lxdmO7DrhnlS/M0F48RTVRjg6Rb/ EZY+cYKB0+JipeT4SwB3uYe4Nx3BzUKsDRTqtvRKdKiXiS0QPpK8phNLuxyjGTuz7+yjGc+8kN4 vRVDRVBsLwhF19M+ZHs6QFhHcJlgaC7XuluLOV/A8zVQ+jIF8GxWSvrjYBy/hr+2Vco8CvrW1JE NIeT6sbeusJ+Pj4FpImg6kXCQTwUJNUnixlUgW X-Received: by 2002:a50:8d5a:0:b0:57a:2780:e679 with SMTP id 4fb4d7f45d1cf-57a8b6b1932mr2785513a12.16.1717661519276; Thu, 06 Jun 2024 01:11:59 -0700 (PDT) X-Google-Smtp-Source: AGHT+IER/kdVXrklftSZvXDEaWQcsTYR0eXqwonCsoqHKHK6AGxRTYISv4USEOTP0DUxyI/sK3dPGQ== X-Received: by 2002:a50:8d5a:0:b0:57a:2780:e679 with SMTP id 4fb4d7f45d1cf-57a8b6b1932mr2785489a12.16.1717661518500; Thu, 06 Jun 2024 01:11:58 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PATCH 1/2] Revert "python: use vendored tomli" Date: Thu, 6 Jun 2024 10:11:52 +0200 Message-ID: <20240606081153.2457559-2-pbonzini@redhat.com> X-Mailer: git-send-email 2.45.1 In-Reply-To: <20240606081153.2457559-1-pbonzini@redhat.com> References: <20240606081153.2457559-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_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , 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: 1717661557557100006 Content-Type: text/plain; charset="utf-8" Now that Ubuntu 20.04 is not included anymore, there is no need to ship it as part of QEMU; Ubuntu 22.04 includes it and Leap users anyway need to install all the required dependencies from PyPI. This mostly reverts commit ec77ee7634de123b7c899739711000fd21dab68b, with just some changes to the wording. Signed-off-by: Paolo Bonzini --- docs/devel/build-system.rst | 13 ++++++------- configure | 4 ---- python/scripts/vendor.py | 3 --- python/wheels/tomli-2.0.1-py3-none-any.whl | Bin 12757 -> 0 bytes 4 files changed, 6 insertions(+), 14 deletions(-) delete mode 100644 python/wheels/tomli-2.0.1-py3-none-any.whl diff --git a/docs/devel/build-system.rst b/docs/devel/build-system.rst index f00adad3181..e01896d01c1 100644 --- a/docs/devel/build-system.rst +++ b/docs/devel/build-system.rst @@ -185,14 +185,13 @@ Bundled Python packages =20 Python packages that are **mandatory** dependencies to build QEMU, but are not available in all supported distros, are bundled with the -QEMU sources. Currently this includes Meson (outdated in CentOS 8 -and derivatives, Ubuntu 20.04 and 22.04, and openSUSE Leap) and tomli -(absent in Ubuntu 20.04). +QEMU sources. The only one is currently Meson (outdated in Ubuntu +22.04 and openSUSE Leap). =20 -If you need to update these, please do so by modifying and rerunning -``python/scripts/vendor.py``. This script embeds the sha256 hash of -package sources and checks it. The pypi.org web site provides an easy -way to retrieve the sha256 hash of the sources. +In order to include a new or updated wheel, modify and rerun the +``python/scripts/vendor.py`` script. The script embeds the +sha256 hash of package sources and checks it. The pypi.org web site +provides an easy way to retrieve the sha256 hash of the sources. =20 =20 Stage 2: Meson diff --git a/configure b/configure index 34027e3ccef..2a4d898da12 100755 --- a/configure +++ b/configure @@ -955,10 +955,6 @@ mkvenv=3D"$python ${source_path}/python/scripts/mkvenv= .py" =20 # Finish preparing the virtual environment using vendored .whl files =20 -if $python -c 'import sys; sys.exit(sys.version_info >=3D (3,11))'; then - $mkvenv ensure --dir "${source_path}/python/wheels" \ - 'tomli>=3D1.2.0' || exit 1 -fi $mkvenv ensuregroup --dir "${source_path}/python/wheels" \ ${source_path}/pythondeps.toml meson || exit 1 =20 diff --git a/python/scripts/vendor.py b/python/scripts/vendor.py index 1038b14ae0c..07aff97ccad 100755 --- a/python/scripts/vendor.py +++ b/python/scripts/vendor.py @@ -43,9 +43,6 @@ def main() -> int: packages =3D { "meson=3D=3D1.2.3": "4533a43c34548edd1f63a276a42690fce15bde9409bcf20c4b8fa3d7e4d7cac1", - - "tomli=3D=3D2.0.1": - "939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc", } =20 vendor_dir =3D Path(__file__, "..", "..", "wheels").resolve() diff --git a/python/wheels/tomli-2.0.1-py3-none-any.whl b/python/wheels/tom= li-2.0.1-py3-none-any.whl deleted file mode 100644 index 29670b98d16e2bc770d4fea718582e1dc0dd8aca..000000000000000000000000000= 0000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12757 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
;mAt+>3ONjNe`6vX1b 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 --=20 2.45.1