[1/2] python3: Expose PYTHON_BINABI in global config metadata

Message ID 20190904181009.8374-1-raj.khem@gmail.com
State New
Headers show
Series
  • [1/2] python3: Expose PYTHON_BINABI in global config metadata
Related show

Commit Message

Khem Raj Sept. 4, 2019, 6:10 p.m.
packages can use

find_package(PythonInterp REQUIRED)
find_package(PythonLibs REQUIRED)

while we control PYTHON pointing to native py3 the libs and include
directories will then point to build host version, which can result in
unexpected combination and if we are lucky we get errors if its quite
different e.g. py2 libs/includes and py3 executable

This variable can be then used to export PYTHON_LIBRARY and
PYTHON_INCLUDE_DIR so that above find_packages can work correctly

Signed-off-by: Khem Raj <raj.khem@gmail.com>

---
 meta/conf/distro/include/tcmode-default.inc   | 3 +++
 meta/recipes-devtools/python/python3_3.7.4.bb | 1 -
 2 files changed, 3 insertions(+), 1 deletion(-)

-- 
2.23.0

-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Comments

Alexander Kanavin Sept. 4, 2019, 6:14 p.m. | #1
On Wed, 4 Sep 2019 at 20:10, Khem Raj <raj.khem@gmail.com> wrote:

>  # llvm version being used, so always bump it with llvm recipe version bump

>  LLVMVERSION ?= "8.0.1"

>

> +# This should be bumped when python3 recipe's MIN_VER is bumped e.g. 3.7

> -> 3.8

> +PYTHON_BINABI = "3.7m"

> +

>


This is already set in python3-dir.bbclass, so please use the values from
there.

Alex
<div dir="ltr"><div dir="ltr"></div><div dir="ltr"><div dir="ltr">On Wed, 4 Sep 2019 at 20:10, Khem Raj &lt;<a href="mailto:raj.khem@gmail.com" target="_blank">raj.khem@gmail.com</a>&gt; wrote:<br></div><div dir="ltr"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"> # llvm version being used, so always bump it with llvm recipe version bump<br>
 LLVMVERSION ?= &quot;8.0.1&quot;<br>
<br>
+# This should be bumped when python3 recipe&#39;s MIN_VER is bumped e.g. 3.7 -&gt; 3.8<br>
+PYTHON_BINABI = &quot;3.7m&quot;<br>
+<br></blockquote><div><br></div><div>This is already set in python3-dir.bbclass, so please use the values from there.</div><div><br></div><div>Alex<br></div></div></div>
</div>
</div>
-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core
Khem Raj Sept. 4, 2019, 6:41 p.m. | #2
On Wed, Sep 4, 2019 at 11:15 AM Alexander Kanavin
<alex.kanavin@gmail.com> wrote:
>

> On Wed, 4 Sep 2019 at 20:10, Khem Raj <raj.khem@gmail.com> wrote:

>>

>>  # llvm version being used, so always bump it with llvm recipe version bump

>>  LLVMVERSION ?= "8.0.1"

>>

>> +# This should be bumped when python3 recipe's MIN_VER is bumped e.g. 3.7 -> 3.8

>> +PYTHON_BINABI = "3.7m"

>> +

>

>

> This is already set in python3-dir.bbclass, so please use the values from there.

>


hmm thanks somehow I missed it. I guess defining then in terms of the
values from python3-dir and python-dir should be good.

> Alex

-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core
Richard Purdie Sept. 4, 2019, 6:49 p.m. | #3
On Wed, 2019-09-04 at 11:10 -0700, Khem Raj wrote:
> packages can use

> 

> find_package(PythonInterp REQUIRED)

> find_package(PythonLibs REQUIRED)

> 

> while we control PYTHON pointing to native py3 the libs and include

> directories will then point to build host version, which can result

> in

> unexpected combination and if we are lucky we get errors if its quite

> different e.g. py2 libs/includes and py3 executable

> 

> This variable can be then used to export PYTHON_LIBRARY and

> PYTHON_INCLUDE_DIR so that above find_packages can work correctly

> 

> Signed-off-by: Khem Raj <raj.khem@gmail.com>

> ---

>  meta/conf/distro/include/tcmode-default.inc   | 3 +++

>  meta/recipes-devtools/python/python3_3.7.4.bb | 1 -

>  2 files changed, 3 insertions(+), 1 deletion(-)


Putting this into the global namespace seems like a really bad idea.
Can we not use a class like Alex mentions? I thought we already had
one?

Cheers,

Richard

-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core
Khem Raj Sept. 4, 2019, 6:50 p.m. | #4
On Wed, Sep 4, 2019 at 11:15 AM Alexander Kanavin
<alex.kanavin@gmail.com> wrote:
>

> On Wed, 4 Sep 2019 at 20:10, Khem Raj <raj.khem@gmail.com> wrote:

>>

>>  # llvm version being used, so always bump it with llvm recipe version bump

>>  LLVMVERSION ?= "8.0.1"

>>

>> +# This should be bumped when python3 recipe's MIN_VER is bumped e.g. 3.7 -> 3.8

>> +PYTHON_BINABI = "3.7m"

>> +

>

>

> This is already set in python3-dir.bbclass, so please use the values from there.

>


we can ignore this patch

> Alex

-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core
Khem Raj Sept. 4, 2019, 6:51 p.m. | #5
On Wed, Sep 4, 2019 at 11:49 AM Richard Purdie
<richard.purdie@linuxfoundation.org> wrote:
>

> On Wed, 2019-09-04 at 11:10 -0700, Khem Raj wrote:

> > packages can use

> >

> > find_package(PythonInterp REQUIRED)

> > find_package(PythonLibs REQUIRED)

> >

> > while we control PYTHON pointing to native py3 the libs and include

> > directories will then point to build host version, which can result

> > in

> > unexpected combination and if we are lucky we get errors if its quite

> > different e.g. py2 libs/includes and py3 executable

> >

> > This variable can be then used to export PYTHON_LIBRARY and

> > PYTHON_INCLUDE_DIR so that above find_packages can work correctly

> >

> > Signed-off-by: Khem Raj <raj.khem@gmail.com>

> > ---

> >  meta/conf/distro/include/tcmode-default.inc   | 3 +++

> >  meta/recipes-devtools/python/python3_3.7.4.bb | 1 -

> >  2 files changed, 3 insertions(+), 1 deletion(-)

>

> Putting this into the global namespace seems like a really bad idea.

> Can we not use a class like Alex mentions? I thought we already had

> one?

>


yeah I think we have what is needed to form the needed vars via PYTHON_DIR
I have sent a v2, this patch can be ignored

> Cheers,

>

> Richard

>

-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Patch

diff --git a/meta/conf/distro/include/tcmode-default.inc b/meta/conf/distro/include/tcmode-default.inc
index 5c28386c4f..bcc5a14d4a 100644
--- a/meta/conf/distro/include/tcmode-default.inc
+++ b/meta/conf/distro/include/tcmode-default.inc
@@ -30,6 +30,9 @@  GOVERSION ?= "1.12%"
 # llvm version being used, so always bump it with llvm recipe version bump
 LLVMVERSION ?= "8.0.1"
 
+# This should be bumped when python3 recipe's MIN_VER is bumped e.g. 3.7 -> 3.8
+PYTHON_BINABI = "3.7m"
+
 PREFERRED_VERSION_gcc ?= "${GCCVERSION}"
 PREFERRED_VERSION_gcc-cross-${TARGET_ARCH} ?= "${GCCVERSION}"
 PREFERRED_VERSION_gcc-cross-initial-${TARGET_ARCH} ?= "${GCCVERSION}"
diff --git a/meta/recipes-devtools/python/python3_3.7.4.bb b/meta/recipes-devtools/python/python3_3.7.4.bb
index 80c9b2919e..b2014e2bcf 100644
--- a/meta/recipes-devtools/python/python3_3.7.4.bb
+++ b/meta/recipes-devtools/python/python3_3.7.4.bb
@@ -47,7 +47,6 @@  UPSTREAM_CHECK_REGEX = "[Pp]ython-(?P<pver>\d+(\.\d+)+).tar"
 CVE_PRODUCT = "python"
 
 PYTHON_MAJMIN = "3.7"
-PYTHON_BINABI = "${PYTHON_MAJMIN}m"
 
 S = "${WORKDIR}/Python-${PV}"