* [Buildroot] [PATCH 0/1] Build samba4 for a target that also needs Python3 @ 2017-10-18 14:03 Christian Kellermann 2017-10-18 14:03 ` [Buildroot] [PATCH 1/1] samba4: Make python2 dependency for waf explicit Christian Kellermann 0 siblings, 1 reply; 6+ messages in thread From: Christian Kellermann @ 2017-10-18 14:03 UTC (permalink / raw) To: buildroot This patch is necessary to build samba for a target that also needs Python 3. The python 3 installation overwrites the symbolic links for the python target and staging directories. The samba4 waf build tool cannot yet cope with python3. This patch is meant as a starting point for discussion as I am not sure whether this is the Right Way to do this. Hacking the waf script itself is rather ugly, I have not found a way to make env pick up any other hint to evaluate it as a python2 script. Same goes for the MAKE_ENV manipulation. Suggestions welcome as always. King regards, Christian Christian Kellermann (1): samba4: Make python2 dependency for waf explicit ...ake-python-2.7-dependency-in-waf-explicit.patch | 27 ++++++++++++++++++++++ package/samba4/samba4.mk | 5 +++- 2 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 package/samba4/0002-Make-python-2.7-dependency-in-waf-explicit.patch -- 2.12.1 ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH 1/1] samba4: Make python2 dependency for waf explicit 2017-10-18 14:03 [Buildroot] [PATCH 0/1] Build samba4 for a target that also needs Python3 Christian Kellermann @ 2017-10-18 14:03 ` Christian Kellermann 2017-10-18 15:37 ` Thomas Petazzoni 0 siblings, 1 reply; 6+ messages in thread From: Christian Kellermann @ 2017-10-18 14:03 UTC (permalink / raw) To: buildroot Without this patch the build environment will pick up python3 if it is a dependency for other packages. Currently waf does not support python3. Signed-off-by: Christian Kellermann <christian.kellermann@solectrix.de> --- ...ake-python-2.7-dependency-in-waf-explicit.patch | 27 ++++++++++++++++++++++ package/samba4/samba4.mk | 5 +++- 2 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 package/samba4/0002-Make-python-2.7-dependency-in-waf-explicit.patch diff --git a/package/samba4/0002-Make-python-2.7-dependency-in-waf-explicit.patch b/package/samba4/0002-Make-python-2.7-dependency-in-waf-explicit.patch new file mode 100644 index 0000000000..2a0d3696cd --- /dev/null +++ b/package/samba4/0002-Make-python-2.7-dependency-in-waf-explicit.patch @@ -0,0 +1,27 @@ +From f7295def3f04d8d8c2d62d9525c0f741ef2f964b Mon Sep 17 00:00:00 2001 +From: Christian Kellermann <christian.kellermann@solectrix.de> +Date: Wed, 18 Oct 2017 14:00:36 +0200 +Subject: [PATCH] Make python 2.7 dependency in waf explicit + +This prevents picking the wrong python during build as a Python3 +dependency will clobber the python symlink. Python3 is not +supported (yet) in the samba4 build system. + +Signed-off-by: Christian Kellermann <christian.kellermann@solectrix.de> +--- + buildtools/bin/waf | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/buildtools/bin/waf b/buildtools/bin/waf +index 1b0f4662a56..f66b992e78c 100755 +--- a/buildtools/bin/waf ++++ b/buildtools/bin/waf +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python2 + # encoding: ISO-8859-1 + # Thomas Nagy, 2005-2010 + +-- +2.12.1 + diff --git a/package/samba4/samba4.mk b/package/samba4/samba4.mk index f8001bbe7f..76d3e58e77 100644 --- a/package/samba4/samba4.mk +++ b/package/samba4/samba4.mk @@ -89,11 +89,12 @@ define SAMBA4_CONFIGURE_CMDS cp package/samba4/samba4-cache.txt $(@D)/cache.txt; echo 'Checking uname machine type: $(BR2_ARCH)' >>$(@D)/cache.txt; (cd $(@D); \ - PYTHON_CONFIG="$(STAGING_DIR)/usr/bin/python-config" \ + PYTHON_CONFIG="$(STAGING_DIR)/usr/bin/python2-config" \ python_LDFLAGS="" \ python_LIBDIR="" \ $(TARGET_CONFIGURE_OPTS) \ $(SAMBA4_CONF_ENV) \ + PYTHON=python2 \ ./buildtools/bin/waf configure \ --prefix=/usr \ --sysconfdir=/etc \ @@ -115,6 +116,8 @@ define SAMBA4_CONFIGURE_CMDS ) endef +TARGET_MAKE_ENV += PYTHON=python2 \ + define SAMBA4_BUILD_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) endef -- 2.12.1 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH 1/1] samba4: Make python2 dependency for waf explicit 2017-10-18 14:03 ` [Buildroot] [PATCH 1/1] samba4: Make python2 dependency for waf explicit Christian Kellermann @ 2017-10-18 15:37 ` Thomas Petazzoni 2017-10-24 9:22 ` [Buildroot] [PATCH v1] " Christian Kellermann [not found] ` <87zi8gnbgp.fsf@sx4173-linuxdev.solectrix.de> 0 siblings, 2 replies; 6+ messages in thread From: Thomas Petazzoni @ 2017-10-18 15:37 UTC (permalink / raw) To: buildroot Hello, On Wed, 18 Oct 2017 16:03:04 +0200, Christian Kellermann wrote: > Without this patch the build environment will pick up python3 if it is a > dependency for other packages. Currently waf does not support > python3. Are we talking about host python or target python here ? > +diff --git a/buildtools/bin/waf b/buildtools/bin/waf > +index 1b0f4662a56..f66b992e78c 100755 > +--- a/buildtools/bin/waf > ++++ b/buildtools/bin/waf > +@@ -1,4 +1,4 @@ > +-#!/usr/bin/env python > ++#!/usr/bin/env python2 This runs on the host, so this is about host python, and matches your description of "waf needs python2". > - PYTHON_CONFIG="$(STAGING_DIR)/usr/bin/python-config" \ > + PYTHON_CONFIG="$(STAGING_DIR)/usr/bin/python2-config" \ This is related to the *target* python, so how is this related to the waf problem ? > python_LDFLAGS="" \ > python_LIBDIR="" \ > $(TARGET_CONFIGURE_OPTS) \ > $(SAMBA4_CONF_ENV) \ > + PYTHON=python2 \ > ./buildtools/bin/waf configure \ > --prefix=/usr \ > --sysconfdir=/etc \ > @@ -115,6 +116,8 @@ define SAMBA4_CONFIGURE_CMDS > ) > endef > > +TARGET_MAKE_ENV += PYTHON=python2 \ Are all of these PYTHON=python2 necessary? Thanks! Thomas -- Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH v1] samba4: Make python2 dependency for waf explicit 2017-10-18 15:37 ` Thomas Petazzoni @ 2017-10-24 9:22 ` Christian Kellermann [not found] ` <87zi8gnbgp.fsf@sx4173-linuxdev.solectrix.de> 1 sibling, 0 replies; 6+ messages in thread From: Christian Kellermann @ 2017-10-24 9:22 UTC (permalink / raw) To: buildroot Without this patch the build environment will pick up host-python3 binaries if host-python3 is a dependency for other packages. Currently waf does not support python3. Signed-off-by: Christian Kellermann <christian.kellermann@solectrix.de> --- Changelog: v0 -> v1 - Patch samba Makefile to explicitly use python2 instead of patching samba4.mk --- ...ake-python-2.7-dependency-in-waf-explicit.patch | 27 +++++++++++++++++++++ .../samba4/0003-Force-python2-in-Makefile.patch | 28 ++++++++++++++++++++++ package/samba4/samba4.mk | 3 ++- 3 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 package/samba4/0002-Make-python-2.7-dependency-in-waf-explicit.patch create mode 100644 package/samba4/0003-Force-python2-in-Makefile.patch diff --git a/package/samba4/0002-Make-python-2.7-dependency-in-waf-explicit.patch b/package/samba4/0002-Make-python-2.7-dependency-in-waf-explicit.patch new file mode 100644 index 0000000000..2a0d3696cd --- /dev/null +++ b/package/samba4/0002-Make-python-2.7-dependency-in-waf-explicit.patch @@ -0,0 +1,27 @@ +From f7295def3f04d8d8c2d62d9525c0f741ef2f964b Mon Sep 17 00:00:00 2001 +From: Christian Kellermann <christian.kellermann@solectrix.de> +Date: Wed, 18 Oct 2017 14:00:36 +0200 +Subject: [PATCH] Make python 2.7 dependency in waf explicit + +This prevents picking the wrong python during build as a Python3 +dependency will clobber the python symlink. Python3 is not +supported (yet) in the samba4 build system. + +Signed-off-by: Christian Kellermann <christian.kellermann@solectrix.de> +--- + buildtools/bin/waf | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/buildtools/bin/waf b/buildtools/bin/waf +index 1b0f4662a56..f66b992e78c 100755 +--- a/buildtools/bin/waf ++++ b/buildtools/bin/waf +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python2 + # encoding: ISO-8859-1 + # Thomas Nagy, 2005-2010 + +-- +2.12.1 + diff --git a/package/samba4/0003-Force-python2-in-Makefile.patch b/package/samba4/0003-Force-python2-in-Makefile.patch new file mode 100644 index 0000000000..e68da98adb --- /dev/null +++ b/package/samba4/0003-Force-python2-in-Makefile.patch @@ -0,0 +1,28 @@ +From 716d7a780ba2403f84c6ea4220305d698c6a14f4 Mon Sep 17 00:00:00 2001 +From: Christian Kellermann <christian.kellermann@solectrix.de> +Date: Tue, 24 Oct 2017 10:19:01 +0200 +Subject: [PATCH] Force python2 in Makefile + +waf does not work with python3-host packages, so make it use python2 +explicitly. + +Signed-off-by: Christian Kellermann <christian.kellermann@solectrix.de> +--- + Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile b/Makefile +index 5cc90771000..1496918b6de 100644 +--- a/Makefile ++++ b/Makefile +@@ -1,6 +1,6 @@ + # simple makefile wrapper to run waf + +-PYTHON?=python ++PYTHON?=python2 + WAF_BINARY=$(PYTHON) ./buildtools/bin/waf + WAF=WAF_MAKE=1 $(WAF_BINARY) + +-- +2.12.1 + diff --git a/package/samba4/samba4.mk b/package/samba4/samba4.mk index f8001bbe7f..4b9cc64b4c 100644 --- a/package/samba4/samba4.mk +++ b/package/samba4/samba4.mk @@ -89,11 +89,12 @@ define SAMBA4_CONFIGURE_CMDS cp package/samba4/samba4-cache.txt $(@D)/cache.txt; echo 'Checking uname machine type: $(BR2_ARCH)' >>$(@D)/cache.txt; (cd $(@D); \ - PYTHON_CONFIG="$(STAGING_DIR)/usr/bin/python-config" \ + PYTHON_CONFIG="$(STAGING_DIR)/usr/bin/python2-config" \ python_LDFLAGS="" \ python_LIBDIR="" \ $(TARGET_CONFIGURE_OPTS) \ $(SAMBA4_CONF_ENV) \ + PYTHON=python2 \ ./buildtools/bin/waf configure \ --prefix=/usr \ --sysconfdir=/etc \ -- 2.12.1 ^ permalink raw reply related [flat|nested] 6+ messages in thread
[parent not found: <87zi8gnbgp.fsf@sx4173-linuxdev.solectrix.de>]
* [Buildroot] [PATCH 1/1] samba4: Make python2 dependency for waf explicit [not found] ` <87zi8gnbgp.fsf@sx4173-linuxdev.solectrix.de> @ 2017-10-26 11:47 ` Thomas Petazzoni 2018-01-01 12:35 ` Thomas Petazzoni 0 siblings, 1 reply; 6+ messages in thread From: Thomas Petazzoni @ 2017-10-26 11:47 UTC (permalink / raw) To: buildroot Hello, Please don't reply to me only, keep the mailing list in Cc so that everybody can participate to the discussion. On Tue, 24 Oct 2017 11:26:14 +0200, Christian Kellermann wrote: > Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes: > > On Wed, 18 Oct 2017 16:03:04 +0200, Christian Kellermann wrote: > >> Without this patch the build environment will pick up python3 if it is a > >> dependency for other packages. Currently waf does not support > >> python3. > > > > Are we talking about host python or target python here ? > > host-python, sorry for being imprecise. OK. > >> - PYTHON_CONFIG="$(STAGING_DIR)/usr/bin/python-config" \ > >> + PYTHON_CONFIG="$(STAGING_DIR)/usr/bin/python2-config" \ > > > > This is related to the *target* python, so how is this related to the > > waf problem ? > > It needs to pick up the python headers. Without this I get the error: > ?Could not find the python development headers? I don't see how this modification changes anything. BR2_PACKAGE_SAMBA4 selects BR2_PACKAGE_PYTHON, and BR2_PACKAGE_PYTHON3 depends on !BR2_PACKAGE_PYTHON. So if you have samba4 enabled, the python version enabled for the target is always Python 2.x, and therefore python-config and python2-config in staging should be the same thing. So we need to understand if this change is really necessary, and if it is, why is it that it creates a difference. Thanks! Thomas -- Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH 1/1] samba4: Make python2 dependency for waf explicit 2017-10-26 11:47 ` [Buildroot] [PATCH 1/1] " Thomas Petazzoni @ 2018-01-01 12:35 ` Thomas Petazzoni 0 siblings, 0 replies; 6+ messages in thread From: Thomas Petazzoni @ 2018-01-01 12:35 UTC (permalink / raw) To: buildroot Hello, On Thu, 26 Oct 2017 13:47:01 +0200, Thomas Petazzoni wrote: > > >> - PYTHON_CONFIG="$(STAGING_DIR)/usr/bin/python-config" \ > > >> + PYTHON_CONFIG="$(STAGING_DIR)/usr/bin/python2-config" \ > > > > > > This is related to the *target* python, so how is this related to the > > > waf problem ? > > > > It needs to pick up the python headers. Without this I get the error: > > ?Could not find the python development headers? > > I don't see how this modification changes anything. BR2_PACKAGE_SAMBA4 > selects BR2_PACKAGE_PYTHON, and BR2_PACKAGE_PYTHON3 depends > on !BR2_PACKAGE_PYTHON. > > So if you have samba4 enabled, the python version enabled for the > target is always Python 2.x, and therefore python-config and > python2-config in staging should be the same thing. > > So we need to understand if this change is really necessary, and if it > is, why is it that it creates a difference. Since you did not give further feedback, and I still don't understand what problem this patch is solving, I've marked your patch as Rejected in our patch tracking system. Do not hesitate to send an updated version with an improved explanation (for example with a defconfig that allows to reproduce the problem, and some answers to the questions I've asked). Thanks a lot! Thomas -- Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2018-01-01 12:35 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-10-18 14:03 [Buildroot] [PATCH 0/1] Build samba4 for a target that also needs Python3 Christian Kellermann
2017-10-18 14:03 ` [Buildroot] [PATCH 1/1] samba4: Make python2 dependency for waf explicit Christian Kellermann
2017-10-18 15:37 ` Thomas Petazzoni
2017-10-24 9:22 ` [Buildroot] [PATCH v1] " Christian Kellermann
[not found] ` <87zi8gnbgp.fsf@sx4173-linuxdev.solectrix.de>
2017-10-26 11:47 ` [Buildroot] [PATCH 1/1] " Thomas Petazzoni
2018-01-01 12:35 ` Thomas Petazzoni
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox