Skip to contentSkip to conversation

gnuradio: needs host-python2

PATCH New Fabrice Fontaine 5 participants 14 messages Jun 26, 2018 – Aug 5, 2018

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 gnuradio: needs host-python2

gnuradio needs host-python2 however there is no way to enforce this so add a dependency on !BR2_PACKAGE_PYTHON3.
Indeed, if BR2_PACKAGE_PYTHON3 is selected, then buildroot will only build host-python3.
This issue was not raised in the previous version of gnuradio as host-python-cheetah was the only dependency and host-python-cheetah enforces python2 through HOST_PYTHON_CHEETAH_NEEDS_HOST_PYTHON however we now have host-python-six and host-python-mako dependencies and it does not seem right to enforces python2 on those packages

Fixes:
- http://autobuild.buildroot.net/results/a502fef3e2a40f38ca63332440b0b6bd2ed11d5a

---
 package/gnuradio/Config.in | 2 ++
 1 file changed, 2 insertions(+)
package/gnuradio/Config.in +2 -0
index f748b902a7..25131fb105 100644
@@ -1,5 +1,6 @@
 comment "gnuradio needs a toolchain w/ C++, NPTL, wchar, dynamic library"
 	depends on BR2_USE_MMU
+	depends on !BR2_PACKAGE_PYTHON3
 	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \
 		!BR2_TOOLCHAIN_HAS_THREADS_NPTL || BR2_STATIC_LIBS
 
@@ -10,6 +11,7 @@ config BR2_PACKAGE_GNURADIO
 	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
 	depends on BR2_USE_MMU # use fork()
 	depends on BR2_USE_WCHAR # boost
+	depends on !BR2_PACKAGE_PYTHON3
 	select BR2_PACKAGE_BOOST
 	select BR2_PACKAGE_BOOST_DATE_TIME
 	select BR2_PACKAGE_BOOST_FILESYSTEM
Signature · 1 line
2.14.1
#1 lore raw

PATCH 1/1 gnuradio: needs host-python2

Hi Fabrice,

Quoted 4 lines · Fabrice Fontaine

gnuradio needs host-python2 however there is no way to enforce this so add a dependency on !BR2_PACKAGE_PYTHON3.
Indeed, if BR2_PACKAGE_PYTHON3 is selected, then buildroot will only build host-python3.

Why not just add host-python to _DEPENDENCIES?

baruch

Quoted 33 lines

This issue was not raised in the previous version of gnuradio as host-python-cheetah was the only dependency and host-python-cheetah enforces python2 through HOST_PYTHON_CHEETAH_NEEDS_HOST_PYTHON however we now have host-python-six and host-python-mako dependencies and it does not seem right to enforces python2 on those packages

Fixes:
- http://autobuild.buildroot.net/results/a502fef3e2a40f38ca63332440b0b6bd2ed11d5a

---
 package/gnuradio/Config.in | 2 ++
 1 file changed, 2 insertions(+)
package/gnuradio/Config.in +2 -0
index f748b902a7..25131fb105 100644
@@ -1,5 +1,6 @@
 comment "gnuradio needs a toolchain w/ C++, NPTL, wchar, dynamic library"
 	depends on BR2_USE_MMU
+	depends on !BR2_PACKAGE_PYTHON3
 	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \
 		!BR2_TOOLCHAIN_HAS_THREADS_NPTL || BR2_STATIC_LIBS
 
@@ -10,6 +11,7 @@ config BR2_PACKAGE_GNURADIO
 	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
 	depends on BR2_USE_MMU # use fork()
 	depends on BR2_USE_WCHAR # boost
+	depends on !BR2_PACKAGE_PYTHON3
 	select BR2_PACKAGE_BOOST
 	select BR2_PACKAGE_BOOST_DATE_TIME
 	select BR2_PACKAGE_BOOST_FILESYSTEM
Signature · 3 lines
     http://baruch.siach.name/blog/                  ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -
#2 lore raw

PATCH 1/1 gnuradio: needs host-python2

Dear Baruch,

2018-06-27 5:36 GMT+02:00 Baruch Siach <[email protected]>:

Quoted 10 lines

Hi Fabrice,

Quoted 4 lines · Fabrice Fontaine

gnuradio needs host-python2 however there is no way to enforce this so add a dependency on !BR2_PACKAGE_PYTHON3.
Indeed, if BR2_PACKAGE_PYTHON3 is selected, then buildroot will only build host-python3.

Why not just add host-python to _DEPENDENCIES?

Indeed, I will update my patch. Thanks for your help.

Quoted 30 lines

baruch

Quoted 8 lines

This issue was not raised in the previous version of gnuradio as host-python-cheetah was the only dependency and host-python-cheetah enforces python2 through HOST_PYTHON_CHEETAH_NEEDS_HOST_PYTHON however we now have host-python-six and host-python-mako dependencies and it does not seem right to enforces python2 on those packages

Fixes:
- http://autobuild.buildroot.net/results/a502fef3e2a40f38ca63332440b0b6

bd2ed11d5a

package/gnuradio/Config.in line 1

Quoted 12 lines
---
 package/gnuradio/Config.in | 2 ++
 1 file changed, 2 insertions(+)
package/gnuradio/Config.in +0 -0
index f748b902a7..25131fb105 100644
@@ -1,5 +1,6 @@
 comment "gnuradio needs a toolchain w/ C++, NPTL, wchar, dynamic

library"

Quoted 5 lines
package/gnuradio/Config.in +1 -0
      depends on BR2_USE_MMU
+     depends on !BR2_PACKAGE_PYTHON3
      depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \
              !BR2_TOOLCHAIN_HAS_THREADS_NPTL || BR2_STATIC_LIBS
 
Quoted 16 lines

package/gnuradio/Config.in config BR2_PACKAGE_GNURADIO · line 17

Quoted 8 lines
package/gnuradio/Config.in +1 -0
@@ -10,6 +11,7 @@ config BR2_PACKAGE_GNURADIO
      depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
      depends on BR2_USE_MMU # use fork()
      depends on BR2_USE_WCHAR # boost
+     depends on !BR2_PACKAGE_PYTHON3
      select BR2_PACKAGE_BOOST
      select BR2_PACKAGE_BOOST_DATE_TIME
      select BR2_PACKAGE_BOOST_FILESYSTEM

--
http://baruch.siach.name/blog/ ~. .~ Tk Open
Systems =}------------------------------------------------ooO--U-- Ooo------------{=
- baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -

Best Regards,

Fabrice
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20180627/4a151f11/attachment.html>

#3 lore raw

PATCH 1/1 gnuradio: needs host-python2

Dear Baruch

2018-06-27 7:35 GMT+02:00 Fabrice Fontaine <[email protected]>:

Quoted 7 lines

Dear Baruch,

2018-06-27 5:36 GMT+02:00 Baruch Siach <[email protected]>:

Quoted 3 lines

Hi Fabrice,

On Tue, Jun 26, 2018 at 11:43:26PM +0200, Fabrice Fontaine wrote:

Quoted 9 lines
Quoted 7 lines
Quoted 4 lines

gnuradio needs host-python2 however there is no way to enforce this so add a dependency on !BR2_PACKAGE_PYTHON3.
Indeed, if BR2_PACKAGE_PYTHON3 is selected, then buildroot will only build host-python3.

Why not just add host-python to _DEPENDENCIES?

Indeed, I will update my patch. Thanks for your help.

After testing this option, this does not work. host-python2 is indeed built but host-python3 is also built.
As a result, host-python-mako and host-python-six are built only for host-python3 and not for host-python2. I don't know if this the expected behavior,perhaps buildroot should always build the python2 and python3 host packages?

Quoted 45 lines

baruch

Quoted 28 lines
Quoted 9 lines

This issue was not raised in the previous version of gnuradio as host-python-cheetah was the only dependency and host-python-cheetah enforces python2 through HOST_PYTHON_CHEETAH_NEEDS_HOST_PYTHON however we now have host-python-six and host-python-mako dependencies and it does not seem right to enforces python2 on those packages

Fixes:
- http://autobuild.buildroot.net/results/a502fef3e2a40f38ca633

32440b0b6bd2ed11d5a

package/gnuradio/Config.in line 1

Quoted 12 lines
---
 package/gnuradio/Config.in | 2 ++
 1 file changed, 2 insertions(+)
package/gnuradio/Config.in +0 -0
index f748b902a7..25131fb105 100644
@@ -1,5 +1,6 @@
 comment "gnuradio needs a toolchain w/ C++, NPTL, wchar, dynamic

library"

Quoted 5 lines
package/gnuradio/Config.in +1 -0
      depends on BR2_USE_MMU
+     depends on !BR2_PACKAGE_PYTHON3
      depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \
              !BR2_TOOLCHAIN_HAS_THREADS_NPTL || BR2_STATIC_LIBS
 
Quoted 16 lines

package/gnuradio/Config.in config BR2_PACKAGE_GNURADIO · line 17

Quoted 8 lines
package/gnuradio/Config.in +1 -0
@@ -10,6 +11,7 @@ config BR2_PACKAGE_GNURADIO
      depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
      depends on BR2_USE_MMU # use fork()
      depends on BR2_USE_WCHAR # boost
+     depends on !BR2_PACKAGE_PYTHON3
      select BR2_PACKAGE_BOOST
      select BR2_PACKAGE_BOOST_DATE_TIME
      select BR2_PACKAGE_BOOST_FILESYSTEM

--
http://baruch.siach.name/blog/ ~. .~ Tk Open
Systems =}------------------------------------------------ooO--U--Oo o------------{=
- baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -

Quoted 4 lines

Best Regards,

Fabrice

Best Regards,

Fabrice
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20180627/c7b36b0e/attachment.html>

#4 lore raw

PATCH 1/1 gnuradio: needs host-python2

Hi Fabrice,

Quoted 10 lines · Fabrice Fontaine

2018-06-27 7:35 GMT+02:00 Fabrice Fontaine <[email protected]>:

Quoted 9 lines

2018-06-27 5:36 GMT+02:00 Baruch Siach <[email protected]>:

Quoted 8 lines · Fabrice Fontaine
Quoted 4 lines

gnuradio needs host-python2 however there is no way to enforce this so add a dependency on !BR2_PACKAGE_PYTHON3.
Indeed, if BR2_PACKAGE_PYTHON3 is selected, then buildroot will only build host-python3.

Why not just add host-python to _DEPENDENCIES?

Quoted 8 lines
Quoted 1 line

Indeed, I will update my patch. Thanks for your help.

After testing this option, this does not work. host-python2 is indeed built but host-python3 is also built.
As a result, host-python-mako and host-python-six are built only for host-python3 and not for host-python2. I don't know if this the expected behavior,perhaps buildroot should always build the python2 and python3 host packages?

Not sure what the right solution here is.

Yegor, do you have an idea?

baruch

Quoted 35 lines
Quoted 35 lines
Quoted 35 lines
Quoted 8 lines

This issue was not raised in the previous version of gnuradio as host-python-cheetah was the only dependency and host-python-cheetah enforces python2 through HOST_PYTHON_CHEETAH_NEEDS_HOST_PYTHON however we now have host-python-six and host-python-mako dependencies and it does not seem right to enforces python2 on those packages

Fixes:
- http://autobuild.buildroot.net/results/a502fef3e2a40f38ca633

32440b0b6bd2ed11d5a

package/gnuradio/Config.in line 1

Quoted 12 lines
---
 package/gnuradio/Config.in | 2 ++
 1 file changed, 2 insertions(+)
package/gnuradio/Config.in +0 -0
index f748b902a7..25131fb105 100644
@@ -1,5 +1,6 @@
 comment "gnuradio needs a toolchain w/ C++, NPTL, wchar, dynamic

library"

Quoted 13 lines
package/gnuradio/Config.in +2 -0
      depends on BR2_USE_MMU
+     depends on !BR2_PACKAGE_PYTHON3
      depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \
              !BR2_TOOLCHAIN_HAS_THREADS_NPTL || BR2_STATIC_LIBS
 
@@ -10,6 +11,7 @@ config BR2_PACKAGE_GNURADIO
      depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
      depends on BR2_USE_MMU # use fork()
      depends on BR2_USE_WCHAR # boost
+     depends on !BR2_PACKAGE_PYTHON3
      select BR2_PACKAGE_BOOST
      select BR2_PACKAGE_BOOST_DATE_TIME
      select BR2_PACKAGE_BOOST_FILESYSTEM
Signature · 3 lines
     http://baruch.siach.name/blog/                  ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch at tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il -
#5 lore raw

PATCH 1/1 gnuradio: needs host-python2

Hi Fabrice, Baruch,

Quoted 22 lines · Baruch Siach

Hi Fabrice,

Quoted 10 lines · Fabrice Fontaine

2018-06-27 7:35 GMT+02:00 Fabrice Fontaine <[email protected]>:

Quoted 9 lines

2018-06-27 5:36 GMT+02:00 Baruch Siach <[email protected]>:

Quoted 8 lines · Fabrice Fontaine
Quoted 4 lines

gnuradio needs host-python2 however there is no way to enforce this so add a dependency on !BR2_PACKAGE_PYTHON3.
Indeed, if BR2_PACKAGE_PYTHON3 is selected, then buildroot will only build host-python3.

Why not just add host-python to _DEPENDENCIES?

Quoted 8 lines
Quoted 1 line

Indeed, I will update my patch. Thanks for your help.

After testing this option, this does not work. host-python2 is indeed built but host-python3 is also built.
As a result, host-python-mako and host-python-six are built only for host-python3 and not for host-python2. I don't know if this the expected behavior,perhaps buildroot should always build the python2 and python3 host packages?

Quoted 3 lines

Not sure what the right solution here is.

Yegor, do you have an idea?

This patch did it for me. I've made "make defconfig", select ARM for A8 series, Linaro toolchain and python 2. Then I've just selected gnuradio and its python support.

In this case no host-python3 will be built because we select general Python 2 support for the target (as gnuradio enforces) and hence only host-python will be built.

@Fabrice have you performed "make clean" after adding host-python to the dependencies?

package/gnuradio/gnuradio.mk +1 -0
index e79f848388..f2486a2fd2 100644
@@ -14,6 +14,7 @@ GNURADIO_SUPPORTS_IN_SOURCE_BUILD = NO
 # host-python-cheetah, host-python-mako and host-python-six are needed for volk
 # to compile
 GNURADIO_DEPENDENCIES = \
+       host-python \
        host-python-cheetah \
        host-python-mako \
        host-python-six \

Yegor

#6 lore raw

PATCH 1/1 gnuradio: needs host-python2

Hello Yegor,

Quoted 7 lines · Yegor Yefremov

This patch did it for me. I've made "make defconfig", select ARM for A8 series, Linaro toolchain and python 2. Then I've just selected gnuradio and its python support.

In this case no host-python3 will be built because we select general Python 2 support for the target (as gnuradio enforces) and hence only host-python will be built.

Did you test with python3 enabled for the target ?

Then you will see the problem that Fabrice is facing.

When python3 is enabled for the target, then the default host python version is python3. And due to this, all external host Python modules are installed for host python3, and not available for host python2.

Best regards,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com
#7 lore raw

PATCH 1/1 gnuradio: needs host-python2

Hi Thomas,

Quoted 12 lines · Thomas Petazzoni

Hello Yegor,

Quoted 7 lines · Yegor Yefremov

This patch did it for me. I've made "make defconfig", select ARM for A8 series, Linaro toolchain and python 2. Then I've just selected gnuradio and its python support.

In this case no host-python3 will be built because we select general Python 2 support for the target (as gnuradio enforces) and hence only host-python will be built.

Quoted 7 lines

Did you test with python3 enabled for the target ?

Then you will see the problem that Fabrice is facing.

When python3 is enabled for the target, then the default host python version is python3. And due to this, all external host Python modules are installed for host python3, and not available for host python2.

You're right. Then for now I see only one quick and dirty hack - install host versions of six and mako when installing host-python by default.

Yegor

#8 lore raw

PATCH 1/1 gnuradio: needs host-python2

Hello,

Quoted 7 lines · Yegor Yefremov
Quoted 3 lines

When python3 is enabled for the target, then the default host python version is python3. And due to this, all external host Python modules are installed for host python3, and not available for host python2.

You're right. Then for now I see only one quick and dirty hack - install host versions of six and mako when installing host-python by default.

We also need to take into account the requirements of:

http://patchwork.ozlabs.org/patch/906837/
http://patchwork.ozlabs.org/patch/906838/

when designing a solution to solve this problem.

Best regards,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com
#9 lore raw

PATCH 1/1 gnuradio: needs host-python2

Quoted 12 lines · Thomas Petazzoni

Hello,

Quoted 7 lines · Yegor Yefremov
Quoted 3 lines

When python3 is enabled for the target, then the default host python version is python3. And due to this, all external host Python modules are installed for host python3, and not available for host python2.

You're right. Then for now I see only one quick and dirty hack - install host versions of six and mako when installing host-python by default.

Quoted 6 lines

We also need to take into account the requirements of:

http://patchwork.ozlabs.org/patch/906837/
http://patchwork.ozlabs.org/patch/906838/

when designing a solution to solve this problem.

@Fabrice: could you try the latest next branch[1]? It has some Python 3 related fixes. Perhaps one doesn't need to enforce python 2 anymore?

[1] https://github.com/gnuradio/gnuradio/commits/next

Yegor

#10 lore raw

PATCH 1/1 gnuradio: needs host-python2

Dear Yegor,

2018-06-28 12:02 GMT+02:00 Yegor Yefremov <[email protected]>:

Quoted 19 lines
Quoted 17 lines · Thomas Petazzoni

Hello,

Quoted 7 lines · Yegor Yefremov
Quoted 3 lines

When python3 is enabled for the target, then the default host python version is python3. And due to this, all external host Python modules are installed for host python3, and not available for host python2.

You're right. Then for now I see only one quick and dirty hack - install host versions of six and mako when installing host-python by default.

We also need to take into account the requirements of:

http://patchwork.ozlabs.org/patch/906837/
http://patchwork.ozlabs.org/patch/906838/

Quoted 6 lines
Quoted 1 line

when designing a solution to solve this problem.

@Fabrice: could you try the latest next branch[1]? It has some Python 3 related fixes. Perhaps one doesn't need to enforce python 2 anymore?

[1] https://github.com/gnuradio/gnuradio/commits/next

Next branch builds fine however it seems there is outstanding issues:
https://github.com/gnuradio/gnuradio/issues/1842. What should we do until an official release is made with python3 support?

Quoted 4 lines

Yegor

Best Regards,

Fabrice
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20180628/36e258ed/attachment.html>

#11 lore raw

PATCH 1/1 gnuradio: needs host-python2

Hello,

Quoted 3 lines · Fabrice Fontaine

Next branch builds fine however it seems there is outstanding issues:
https://github.com/gnuradio/gnuradio/issues/1842. What should we do until an official release is made with python3 support?

In the mean time, I think I will just apply your patch that adds the "depends on !BR2_PACKAGE_PYTHON3". It's not great, but it's not the only simple approach to resolve the build failures.

In today's Buildroot, if a package needs host Python modules in the Python version which is not the default one, this is not supported, and it will be difficult to support this.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com
#12 lore raw

PATCH 1/1 gnuradio: needs host-python2

In reply to Baruch Siach
Quoted 31 lines · Baruch Siach

Hi Fabrice,

Quoted 17 lines · Fabrice Fontaine

2018-06-27 7:35 GMT+02:00 Fabrice Fontaine <fontaine.fabrice@gmail. com>:

Quoted 10 lines

2018-06-27 5:36 GMT+02:00 Baruch Siach <[email protected]>:

Quoted 9 lines
Quoted 6 lines · Fabrice Fontaine

gnuradio needs host-python2 however there is no way to enforce this so
add a dependency on !BR2_PACKAGE_PYTHON3.
Indeed, if BR2_PACKAGE_PYTHON3 is selected, then buildroot will only
build host-python3.

Quoted 4 lines
Quoted 2 lines

Why not just add host-python to _DEPENDENCIES?

Indeed, I will update my patch. Thanks for your help.

Quoted 10 lines

After testing this option, this does not work. host-python2 is indeed built
but host-python3 is also built.
As a result, host-python-mako and host-python-six are built only for
host-python3 and not for host-python2. I don't know if this the expected
behavior,perhaps buildroot should always build the python2 and python3 host
packages?

Quoted 3 lines

Not sure what the right solution here is.

Yegor, do you have an idea?

I sent a patch series out some time ago that allows selecting the host python version to be used for creating python packages.

It would allow selecting python2 to be used for host python packages, and still get the host-python3 *interpreter* built if something needs that too.

However, it does not allow:
Building host python packages for multiple python versions. Building host python packages for a different python version than is used on the target, if the target has python.

So if we start with the requirement that we must have host-python-mako for python2, then from that follows that host-python-six and host- python-etcetc must be for python2 as well. And if the target has python, it must also be python2.

Fixing this is hard to to do in buildroot. It ends up with the need to build a package twice, once for python2 and again for python3. Buildroot doesn't like two builds of the same package.

Maybe turn host python packages into two packages? host-python2-mako and host-python3-mako. eval host-python-package creates one or both packages. Maybe that could fit in.

Or maybe that's too complex. You get to pick one python version and all python packages are that version. If you want a python2 only package and a python3 only package, too bad. Port one of them to the other python version. As python3 support grows, this will be less and less of a problem.

#13 lore raw

PATCH 1/1 gnuradio: needs host-python2

In reply to Fabrice Fontaine

Hello,

Quoted 10 lines · Fabrice Fontaine

gnuradio needs host-python2 however there is no way to enforce this so add a dependency on !BR2_PACKAGE_PYTHON3.
Indeed, if BR2_PACKAGE_PYTHON3 is selected, then buildroot will only build host-python3.
This issue was not raised in the previous version of gnuradio as host-python-cheetah was the only dependency and host-python-cheetah enforces python2 through HOST_PYTHON_CHEETAH_NEEDS_HOST_PYTHON however we now have host-python-six and host-python-mako dependencies and it does not seem right to enforces python2 on those packages

Quoted 7 lines

Fixes:
- http://autobuild.buildroot.net/results/a502fef3e2a40f38ca63332440b0b6bd2ed11d5a

---
 package/gnuradio/Config.in | 2 ++
 1 file changed, 2 insertions(+)

Applied to master, thanks.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com