itstool: rework native shebang and add class to make native itstool work

itstool was reworked in [1] to not use host's python. This patch introduced the
'-S' option for coreutils's env [2]. Unfortunately that option is relatively
young [3] and elder build-host don't support it [4].

The only way to get around this is:
* remove '-S' and -s' from native shebang
* add a class itstool.bbclass. This class depends itstool-native and creates a
  valid python3 runtime environment. Most notable in the environment is
  export PYTHONNOUSERSITE = "1"
  which does same as '-s' option: force python to avoid adding (host) user sites.

[1] http://cgit.openembedded.org/meta-openembedded/commit/meta-oe/recipes-support/itstool/itstool/0001-Don-t-use-build-time-hardcoded-python-binary-path.patch?id=e5ac325b7974a346b218d1f43b92d06f5b0dd078
[2] http://cgit.openembedded.org/meta-openembedded/tree/meta-oe/recipes-support/itstool/itstool/0001-Don-t-use-build-time-hardcoded-python-binary-path.patch
[3] 668306ed86 (diff-83d9d52b1f12ac589739ab1334ae4f30)
[4] https://errors.yoctoproject.org/Errors/Details/274743/

Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
Andreas Müller 2019-10-28 00:35:27 +01:00 committed by Khem Raj
parent 704c0bafd9
commit ccb810f34a
4 changed files with 44 additions and 2 deletions

View File

@ -0,0 +1,5 @@
# helper class to prepare correct environment for native itstool
inherit python3native
DEPENDS_append = " itstool-native"

View File

@ -0,0 +1,35 @@
From 335ef14fc801c9dfbe7e5692dc71cfbe72049d2b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
Date: Sun, 27 Oct 2019 16:38:52 +0100
Subject: [PATCH] Native: Don't use build time hardcoded python binary path.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This is same patch as used for target build except that we do not use the
'-S' and '-s' option because '-S' is relatively young [1] and elder build-host
don't support it [2]
[1] https://github.com/coreutils/coreutils/commit/668306ed86c8c79b0af0db8b9c882654ebb66db2#diff-83d9d52b1f12ac589739ab1334ae4f30
[2] https://errors.yoctoproject.org/Errors/Details/274743/
Upstream-Status: Inappropriate [OE specific]
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
itstool.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/itstool.in b/itstool.in
index e64cd34..05d264f 100755
--- a/itstool.in
+++ b/itstool.in
@@ -1,4 +1,4 @@
-#!@PYTHON@ -s
+#!/usr/bin/env python3
#
# Copyright (c) 2010-2018 Shaun McCance <shaunm@gnome.org>
#
--
2.21.0

View File

@ -7,8 +7,10 @@ inherit autotools python3native
DEPENDS = "libxml2-native"
SRC_URI = "http://files.itstool.org/${BPN}/${BPN}-${PV}.tar.bz2 \
file://0001-Don-t-use-build-time-hardcoded-python-binary-path.patch"
SRC_URI = "http://files.itstool.org/${BPN}/${BPN}-${PV}.tar.bz2"
SRC_URI_append_class-native = " file://0001-Native-Don-t-use-build-time-hardcoded-python-binary-.patch"
SRC_URI_append_class-target = " file://0002-Don-t-use-build-time-hardcoded-python-binary-path.patch"
SRC_URI[md5sum] = "4306eeba4f4aee6b393d14f9c3c57ca1"
SRC_URI[sha256sum] = "6233cc22726a9a5a83664bf67d1af79549a298c23185d926c3677afa917b92a9"