From patchwork Sat Dec 7 18:18:11 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Cooper X-Patchwork-Id: 11277729 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 907DE138C for ; Sat, 7 Dec 2019 18:20:03 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 6A7A124670 for ; Sat, 7 Dec 2019 18:20:03 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=citrix.com header.i=@citrix.com header.b="BqCrqtDW" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6A7A124670 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=citrix.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1idef8-00084O-J4; Sat, 07 Dec 2019 18:18:38 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1idef7-00084G-Dv for xen-devel@lists.xenproject.org; Sat, 07 Dec 2019 18:18:37 +0000 X-Inumbo-ID: f9212b57-191d-11ea-85dd-12813bfff9fa Received: from esa3.hc3370-68.iphmx.com (unknown [216.71.145.155]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id f9212b57-191d-11ea-85dd-12813bfff9fa; Sat, 07 Dec 2019 18:18:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1575742712; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version; bh=3520/ESBLK4L06rTyx5p5Mu+JL92QIa+7XDyqJ/WxhM=; b=BqCrqtDWGZPVAI/J1WlKUVnLL6qsJe12Ph7m3FLZ4DXe5PpGFYb9JRIm bep/jXiz9ZVpKOQotWAAsT/Mm45JP+tLgFLX3y5FnMGxJA5Z5saf1qrMq ewWJI91Caec4ejCZ6CcV5cFC0s0Zv9Ov2eNjuJEWvXiKT8dBe7I9I3V3i E=; Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none; spf=None smtp.pra=andrew.cooper3@citrix.com; spf=Pass smtp.mailfrom=Andrew.Cooper3@citrix.com; spf=None smtp.helo=postmaster@mail.citrix.com Received-SPF: None (esa3.hc3370-68.iphmx.com: no sender authenticity information available from domain of andrew.cooper3@citrix.com) identity=pra; client-ip=162.221.158.21; receiver=esa3.hc3370-68.iphmx.com; envelope-from="Andrew.Cooper3@citrix.com"; x-sender="andrew.cooper3@citrix.com"; x-conformance=sidf_compatible Received-SPF: Pass (esa3.hc3370-68.iphmx.com: domain of Andrew.Cooper3@citrix.com designates 162.221.158.21 as permitted sender) identity=mailfrom; client-ip=162.221.158.21; receiver=esa3.hc3370-68.iphmx.com; envelope-from="Andrew.Cooper3@citrix.com"; x-sender="Andrew.Cooper3@citrix.com"; x-conformance=sidf_compatible; x-record-type="v=spf1"; x-record-text="v=spf1 ip4:209.167.231.154 ip4:178.63.86.133 ip4:195.66.111.40/30 ip4:85.115.9.32/28 ip4:199.102.83.4 ip4:192.28.146.160 ip4:192.28.146.107 ip4:216.52.6.88 ip4:216.52.6.188 ip4:162.221.158.21 ip4:162.221.156.83 ip4:168.245.78.127 ~all" Received-SPF: None (esa3.hc3370-68.iphmx.com: no sender authenticity information available from domain of postmaster@mail.citrix.com) identity=helo; client-ip=162.221.158.21; receiver=esa3.hc3370-68.iphmx.com; envelope-from="Andrew.Cooper3@citrix.com"; x-sender="postmaster@mail.citrix.com"; x-conformance=sidf_compatible IronPort-SDR: 4EoXKo3TshCIOjlsJ0GNW4sYYb2UsLiaxjl0ho916/jL6SpztubvaCE/+bbGadD+Sut0NjHd2W I+LzWKLYGt4f0iMsNeZJNM6m7weC4n/GcJrAmhqx3lkGmFiMP+TTXRUF3WkPBhQSx2n2+qxyYJ C8ReD29GVZEIYl1Ht6/FHNYgSbdOXCoCXwmXDiydaoBI1NCD8z0Ne38QwzQ3y6o+GvZARt/mzs wCuBt7yBTlgXWcg2e0J4IGIiZQ/ei/nrsq7uCcF874k6d7DpQB0axUwB/rlXZ9qTSAE0uJxzAl CB8= X-SBRS: 2.7 X-MesageID: 9350459 X-Ironport-Server: esa3.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED X-IronPort-AV: E=Sophos;i="5.69,289,1571716800"; d="scan'208";a="9350459" From: Andrew Cooper To: Xen-devel Date: Sat, 7 Dec 2019 18:18:11 +0000 Message-ID: <20191207181813.30176-2-andrew.cooper3@citrix.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20191207181813.30176-1-andrew.cooper3@citrix.com> References: <20191207181813.30176-1-andrew.cooper3@citrix.com> MIME-Version: 1.0 Subject: [Xen-devel] [PATCH v2 1/3] xen/flask: Drop the gen-policy.py script X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Juergen Gross , Andrew Cooper , Daniel De Graaf Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" The script is Python 2 specific, and fails with string/binary issues with Python 3: Traceback (most recent call last): File "gen-policy.py", line 14, in for char in sys.stdin.read(): File "/usr/lib/python3.5/codecs.py", line 321, in decode (result, consumed) = self._buffer_decode(data, self.errors, final) UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8c in position 0: invalid start byte Fixing the script to be compatible isn't hard, but using python here is wasteful. Drop the script entirely, and write a short flask-policy.S instead. Signed-off-by: Andrew Cooper --- CC: Daniel De Graaf CC: Juergen Gross v2: * Fix tabs vs spaces issues For 4.13. This is a blocker to our intent to by Py3-clean in this release. Discovered entirely accidently when testing the final patch. --- xen/xsm/flask/Makefile | 6 ++---- xen/xsm/flask/flask-policy.S | 20 ++++++++++++++++++++ xen/xsm/flask/gen-policy.py | 23 ----------------------- 3 files changed, 22 insertions(+), 27 deletions(-) create mode 100644 xen/xsm/flask/flask-policy.S delete mode 100644 xen/xsm/flask/gen-policy.py diff --git a/xen/xsm/flask/Makefile b/xen/xsm/flask/Makefile index f5ffab1226..7c3f381287 100644 --- a/xen/xsm/flask/Makefile +++ b/xen/xsm/flask/Makefile @@ -27,7 +27,8 @@ $(FLASK_H_FILES): $(FLASK_H_DEPEND) $(AV_H_FILES): $(AV_H_DEPEND) $(CONFIG_SHELL) policy/mkaccess_vector.sh $(AWK) $(AV_H_DEPEND) -obj-$(CONFIG_XSM_FLASK_POLICY) += policy.o +obj-bin-$(CONFIG_XSM_FLASK_POLICY) += flask-policy.o +flask-policy.o: policy.bin FLASK_BUILD_DIR := $(CURDIR) POLICY_SRC := $(FLASK_BUILD_DIR)/xenpolicy-$(XEN_FULLVERSION) @@ -36,9 +37,6 @@ policy.bin: FORCE $(MAKE) -f $(XEN_ROOT)/tools/flask/policy/Makefile.common -C $(XEN_ROOT)/tools/flask/policy FLASK_BUILD_DIR=$(FLASK_BUILD_DIR) cmp -s $(POLICY_SRC) $@ || cp $(POLICY_SRC) $@ -policy.c: policy.bin gen-policy.py - $(PYTHON) gen-policy.py < $< > $@ - .PHONY: clean clean:: rm -f $(ALL_H_FILES) *.o $(DEPS_RM) policy.* $(POLICY_SRC) diff --git a/xen/xsm/flask/flask-policy.S b/xen/xsm/flask/flask-policy.S new file mode 100644 index 0000000000..b63a14851d --- /dev/null +++ b/xen/xsm/flask/flask-policy.S @@ -0,0 +1,20 @@ + .section .init.rodata, "a", @progbits + +/* const unsigned char xsm_flask_init_policy[] __initconst */ + .align 4 + .global xsm_flask_init_policy +xsm_flask_init_policy: + .incbin "policy.bin" +.Lend: + + .type xsm_flask_init_policy, @object + .size xsm_flask_init_policy, . - xsm_flask_init_policy + +/* const unsigned int __initconst xsm_flask_init_policy_size */ + .align 4 + .global xsm_flask_init_policy_size +xsm_flask_init_policy_size: + .long .Lend - xsm_flask_init_policy + + .type xsm_flask_init_policy_size, @object + .size xsm_flask_init_policy_size, . - xsm_flask_init_policy_size diff --git a/xen/xsm/flask/gen-policy.py b/xen/xsm/flask/gen-policy.py deleted file mode 100644 index c7501e4614..0000000000 --- a/xen/xsm/flask/gen-policy.py +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env python -import sys - -policy_size = 0 - -sys.stdout.write(""" -/* This file is autogenerated by gen_policy.py */ -#include -#include - -const unsigned char xsm_flask_init_policy[] __initconst = { -""") - -for char in sys.stdin.read(): - sys.stdout.write(" 0x%02x," % ord(char)) - policy_size = policy_size + 1 - if policy_size % 13 == 0: - sys.stdout.write("\n") - -sys.stdout.write(""" -}; -const unsigned int __initconst xsm_flask_init_policy_size = %d; -""" % policy_size) From patchwork Sat Dec 7 18:18:12 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Cooper X-Patchwork-Id: 11277727 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 3887F13B6 for ; Sat, 7 Dec 2019 18:20:03 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 139F324670 for ; Sat, 7 Dec 2019 18:20:02 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=citrix.com header.i=@citrix.com header.b="UXgiI1Ot" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 139F324670 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=citrix.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1ideex-00083R-17; Sat, 07 Dec 2019 18:18:27 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1ideew-00083M-3y for xen-devel@lists.xenproject.org; Sat, 07 Dec 2019 18:18:26 +0000 X-Inumbo-ID: f1f0d8d6-191d-11ea-88e7-bc764e2007e4 Received: from esa5.hc3370-68.iphmx.com (unknown [216.71.155.168]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id f1f0d8d6-191d-11ea-88e7-bc764e2007e4; Sat, 07 Dec 2019 18:18:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1575742699; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version; bh=XlUQvWE3vE1jIDqriJtcbUN+LOYEupLYEpdkKyvokek=; b=UXgiI1OttBe28v6sxJttDOOo7WO2EusVUu3m/61kpD3tb0roy5i3tBke nEka7bMiAXrVY+IFatkw4tWd98cO0PYJltAE1w4VRD/+YmEHsF2SHwLPq bKAjD2M3aMHS+4MVOyii8YxfmlLyrrYAgd34Wa1j6i+iDrLAh0wMaOsnE I=; Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none; spf=None smtp.pra=andrew.cooper3@citrix.com; spf=Pass smtp.mailfrom=Andrew.Cooper3@citrix.com; spf=None smtp.helo=postmaster@mail.citrix.com Received-SPF: None (esa5.hc3370-68.iphmx.com: no sender authenticity information available from domain of andrew.cooper3@citrix.com) identity=pra; client-ip=162.221.158.21; receiver=esa5.hc3370-68.iphmx.com; envelope-from="Andrew.Cooper3@citrix.com"; x-sender="andrew.cooper3@citrix.com"; x-conformance=sidf_compatible Received-SPF: Pass (esa5.hc3370-68.iphmx.com: domain of Andrew.Cooper3@citrix.com designates 162.221.158.21 as permitted sender) identity=mailfrom; client-ip=162.221.158.21; receiver=esa5.hc3370-68.iphmx.com; envelope-from="Andrew.Cooper3@citrix.com"; x-sender="Andrew.Cooper3@citrix.com"; x-conformance=sidf_compatible; x-record-type="v=spf1"; x-record-text="v=spf1 ip4:209.167.231.154 ip4:178.63.86.133 ip4:195.66.111.40/30 ip4:85.115.9.32/28 ip4:199.102.83.4 ip4:192.28.146.160 ip4:192.28.146.107 ip4:216.52.6.88 ip4:216.52.6.188 ip4:162.221.158.21 ip4:162.221.156.83 ip4:168.245.78.127 ~all" Received-SPF: None (esa5.hc3370-68.iphmx.com: no sender authenticity information available from domain of postmaster@mail.citrix.com) identity=helo; client-ip=162.221.158.21; receiver=esa5.hc3370-68.iphmx.com; envelope-from="Andrew.Cooper3@citrix.com"; x-sender="postmaster@mail.citrix.com"; x-conformance=sidf_compatible IronPort-SDR: NyOsnJ7IflihsN/aJ5YxAqdAefA2y9paSYd0mInEqik9pyjrJNq3N8T+6ZZt7358GQ0RzFWXwo jgtAeFpSNNkpLYF+oI7eYexz+anjmDtXGxAEz8noM2CSOfLHXmnJpKPVX0aSui1FovZbKq/GuY inzAcZhRmY6gBVk2L1YegIKAR3dDzYeHhCbAMuyZfOMbZoYinpUEN3jMiskOywU3avfPb/EEOD fvtZhNZ6YuoW9atcIB3+teTom4If5vvBqHsTeznTIo3xO/uozhuXfx3RgQ3t7uU/IGyt2AKSpW 1PM= X-SBRS: 2.7 X-MesageID: 9705752 X-Ironport-Server: esa5.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED X-IronPort-AV: E=Sophos;i="5.69,289,1571716800"; d="scan'208";a="9705752" From: Andrew Cooper To: Xen-devel Date: Sat, 7 Dec 2019 18:18:12 +0000 Message-ID: <20191207181813.30176-3-andrew.cooper3@citrix.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20191207181813.30176-1-andrew.cooper3@citrix.com> References: <20191207181813.30176-1-andrew.cooper3@citrix.com> MIME-Version: 1.0 Subject: [Xen-devel] [PATCH v2 2/3] xen/banner: Drop the fig-to-oct.py script X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Juergen Gross , Stefano Stabellini , Julien Grall , Wei Liu , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Jan Beulich , Ian Jackson Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" The script is 664 rather than 775, so the banner conversion doesn't actually work if $(PYTHON) is empty: /bin/sh: tools/fig-to-oct.py: Permission denied make[3]: *** [include/xen/compile.h] Error 126 make[3]: Leaving directory `/builds/xen-project/people/andyhhp/xen/xen' Fixing this is easy, but using python here is wasteful. compile.h doesn't need XEN_BANNER rendering in octal, and text is much more simple to handle. Replace fig-to-oct.py with a sed oneliner. While changing this logic, take the opportunity to optimise the banner space (and time on the serial port) by dropping trailing whitespace, which is 84 characters for current staging. Signed-off-by: Andrew Cooper --- CC: George Dunlap CC: Ian Jackson CC: Jan Beulich CC: Konrad Rzeszutek Wilk CC: Stefano Stabellini CC: Wei Liu CC: Julien Grall CC: Juergen Gross v2: * New Spotted by Gitlab CI, caused by `which` not being present in some of the CentOS containers. While this is more of a container bug than anything else, it does highlight that the build ought to cope. --- xen/Makefile | 5 ++++- xen/tools/fig-to-oct.py | 18 ------------------ 2 files changed, 4 insertions(+), 19 deletions(-) delete mode 100644 xen/tools/fig-to-oct.py diff --git a/xen/Makefile b/xen/Makefile index 99701e3165..13ae1b6011 100644 --- a/xen/Makefile +++ b/xen/Makefile @@ -163,6 +163,9 @@ delete-unfresh-files: @mv -f $@.tmp $@ # compile.h contains dynamic build info. Rebuilt on every 'make' invocation. +# +# For .banner sed-ary, strip trailing whitespace, escape backslashes, and wrap +# each line in '"...\n" \' to become a valid C string include/xen/compile.h: include/xen/compile.h.in .banner @sed -e 's/@@date@@/$(XEN_BUILD_DATE)/g' \ -e 's/@@time@@/$(XEN_BUILD_TIME)/g' \ @@ -176,7 +179,7 @@ include/xen/compile.h: include/xen/compile.h.in .banner -e 's!@@changeset@@!$(shell tools/scmversion $(XEN_ROOT) || echo "unavailable")!g' \ < include/xen/compile.h.in > $@.new @cat .banner - @$(PYTHON) tools/fig-to-oct.py < .banner >> $@.new + @sed -e 's_[ ]*$$__' -e 's_\\_\\\\_g' -e 's_\(.*\)_"\1\\n" \\_' < .banner >> $@.new @mv -f $@.new $@ include/asm-$(TARGET_ARCH)/asm-offsets.h: arch/$(TARGET_ARCH)/asm-offsets.s diff --git a/xen/tools/fig-to-oct.py b/xen/tools/fig-to-oct.py deleted file mode 100644 index db4fd32159..0000000000 --- a/xen/tools/fig-to-oct.py +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/env python -import sys - -chars_per_line = 18 -chars_so_far = 0 - -sys.stdout.write('"') - -for char in sys.stdin.read(): - - sys.stdout.write("\\%03o" % ord(char)) - chars_so_far = chars_so_far + 1 - - if chars_so_far == chars_per_line: - chars_so_far = 0 - sys.stdout.write('" \\\n"') - -sys.stdout.write('"\n') From patchwork Sat Dec 7 18:18:13 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Cooper X-Patchwork-Id: 11277723 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id B2036138C for ; Sat, 7 Dec 2019 18:19:47 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 838C424670 for ; Sat, 7 Dec 2019 18:19:47 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=citrix.com header.i=@citrix.com header.b="gLT2OygX" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 838C424670 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=citrix.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1idees-00083G-Ow; Sat, 07 Dec 2019 18:18:22 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1ideer-00083B-7M for xen-devel@lists.xenproject.org; Sat, 07 Dec 2019 18:18:21 +0000 X-Inumbo-ID: f22fa25a-191d-11ea-a914-bc764e2007e4 Received: from esa4.hc3370-68.iphmx.com (unknown [216.71.155.144]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id f22fa25a-191d-11ea-a914-bc764e2007e4; Sat, 07 Dec 2019 18:18:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1575742699; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version; bh=lKsa37cBBmEzXkKR6QBZn8NlydatO/CmIMaDlkwtEkI=; b=gLT2OygX2MXepA+MlEKP1taCSlDX9h6m9tP63Z59emOrffIDcVdCrULC wuC8wAzuouZHsDDmsXARXP8iAAMsRzCVPv/AdC98BBN4bxWTxV+NgdKS0 dfGcVJB9wd7GnCMHuUeoN4QW6rJssI5YW5sWcKTsT7g2MmL9B+eR60eLj 8=; Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none; spf=None smtp.pra=andrew.cooper3@citrix.com; spf=Pass smtp.mailfrom=Andrew.Cooper3@citrix.com; spf=None smtp.helo=postmaster@mail.citrix.com Received-SPF: None (esa4.hc3370-68.iphmx.com: no sender authenticity information available from domain of andrew.cooper3@citrix.com) identity=pra; client-ip=162.221.158.21; receiver=esa4.hc3370-68.iphmx.com; envelope-from="Andrew.Cooper3@citrix.com"; x-sender="andrew.cooper3@citrix.com"; x-conformance=sidf_compatible Received-SPF: Pass (esa4.hc3370-68.iphmx.com: domain of Andrew.Cooper3@citrix.com designates 162.221.158.21 as permitted sender) identity=mailfrom; client-ip=162.221.158.21; receiver=esa4.hc3370-68.iphmx.com; envelope-from="Andrew.Cooper3@citrix.com"; x-sender="Andrew.Cooper3@citrix.com"; x-conformance=sidf_compatible; x-record-type="v=spf1"; x-record-text="v=spf1 ip4:209.167.231.154 ip4:178.63.86.133 ip4:195.66.111.40/30 ip4:85.115.9.32/28 ip4:199.102.83.4 ip4:192.28.146.160 ip4:192.28.146.107 ip4:216.52.6.88 ip4:216.52.6.188 ip4:162.221.158.21 ip4:162.221.156.83 ip4:168.245.78.127 ~all" Received-SPF: None (esa4.hc3370-68.iphmx.com: no sender authenticity information available from domain of postmaster@mail.citrix.com) identity=helo; client-ip=162.221.158.21; receiver=esa4.hc3370-68.iphmx.com; envelope-from="Andrew.Cooper3@citrix.com"; x-sender="postmaster@mail.citrix.com"; x-conformance=sidf_compatible IronPort-SDR: 2XgBhsiIXrmyezUEdD/tQTKpa7jjjuZg/vexxzKvUlwAP89b6Vj/TSy99hEuDILlyvwkrzSE4T yfIbxrYZB62jkEAeoMTu+ZAM3FxD+4HNktbtIITSFAdaVNFTD5urkk70tneVAKWUpQEGgn8173 RskQNY7t7uVY8lbIRrdgV1r8rfCIiL0K4DItadVaoS1VGB36zrPGnIEBI3JbWBEF8lOe2t6eKa ysoeLVM+P3Hk6GTj7yHBKBnqIkm+0VBm9IF+kuL52ZYz0SFfvfmFQg0t89Z7P7S/L7ZmBx5AOD WYA= X-SBRS: 2.7 X-MesageID: 9906132 X-Ironport-Server: esa4.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED X-IronPort-AV: E=Sophos;i="5.69,289,1571716800"; d="scan'208";a="9906132" From: Andrew Cooper To: Xen-devel Date: Sat, 7 Dec 2019 18:18:13 +0000 Message-ID: <20191207181813.30176-4-andrew.cooper3@citrix.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20191207181813.30176-1-andrew.cooper3@citrix.com> References: <20191207181813.30176-1-andrew.cooper3@citrix.com> MIME-Version: 1.0 Subject: [Xen-devel] [PATCH v2 3/3] xen/build: Automatically locate a suitable python interpreter X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Juergen Gross , Stefano Stabellini , Julien Grall , Wei Liu , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Steven Haigh , Jan Beulich , Ian Jackson Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" Needing to pass PYTHON=python3 into hypervisor builds is irritating and unnecessary. Locate a suitable interpreter automatically, defaulting to Py3 if it is available. Reported-by: Steven Haigh Signed-off-by: Andrew Cooper --- CC: George Dunlap CC: Ian Jackson CC: Jan Beulich CC: Konrad Rzeszutek Wilk CC: Stefano Stabellini CC: Wei Liu CC: Julien Grall CC: Steven Haigh CC: Juergen Gross v2: * Cope with `which` not being present in the system. * Only evaulate the shell command one, rather than once per $(PTHON) usage For 4.13. This is a very-nice-to-have WRT our Py3-clean intention. --- xen/Makefile | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/xen/Makefile b/xen/Makefile index 13ae1b6011..4f02aca3ac 100644 --- a/xen/Makefile +++ b/xen/Makefile @@ -13,6 +13,11 @@ export XEN_BUILD_TIME ?= $(shell LC_ALL=C date +%T) export XEN_BUILD_HOST ?= $(shell hostname) export XEN_CONFIG_EXPERT ?= n +# Best effort attempt to find a python interpreter, defaulting to Python 3 if +# available. Fall back to just `python` if `which` is nowhere to be found. +PYTHON_INTERPRETER := $(word 1,$(shell which python3 python python2 2>/dev/null) python) +export PYTHON ?= $(PYTHON_INTERPRETER) + export BASEDIR := $(CURDIR) export XEN_ROOT := $(BASEDIR)/..