canfestival: fix build failure
authorSamuel Martin <s.martin49@gmail.com>
Fri, 10 Oct 2014 22:25:47 +0000 (00:25 +0200)
committerPeter Korsgaard <peter@korsgaard.com>
Sat, 11 Oct 2014 13:30:30 +0000 (15:30 +0200)
Some canfestival python build scripts are not python2 compliant.
So, this patch add a patch allowing to set the python interperter and
set it in the make environment. This pulls a host-python dependency on
canfestival.

This patch has been sent upstream: [1].

Fixes:
  http://autobuild.buildroot.net/results/98d/98dce833dfa8255522af672d4f41c2504c00e64e/

[1] http://sourceforge.net/p/canfestival/mailman/message/32919038/

Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
package/canfestival/canfestival-0002-allow-to-set-python-interpreter.patch [new file with mode: 0644]
package/canfestival/canfestival.mk

diff --git a/package/canfestival/canfestival-0002-allow-to-set-python-interpreter.patch b/package/canfestival/canfestival-0002-allow-to-set-python-interpreter.patch
new file mode 100644 (file)
index 0000000..bb60316
--- /dev/null
@@ -0,0 +1,176 @@
+From s.martin49@gmail.com Fri Oct 10 23:43:32 2014
+Content-Type: text/plain; charset="us-ascii"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Subject: [PATCH] allow to set python interpreter
+X-Mercurial-Node: 4805f636c2317d989a5f704ba691369f41be6595
+X-Mercurial-Series-Index: 1
+X-Mercurial-Series-Total: 1
+Message-Id: <4805f636c2317d989a5f.1412977412@bobook>
+X-Mercurial-Series-Id: <4805f636c2317d989a5f.1412977412@bobook>
+User-Agent: Mercurial-patchbomb/3.1.2
+Date: Fri, 10 Oct 2014 23:43:32 +0200
+From: Samuel Martin <s.martin49@gmail.com>
+To: canfestival-devel@lists.sourceforge.net
+Cc: Samuel Martin <s.martin49@gmail.com>
+
+# HG changeset patch
+# User "Samuel Martin" <s.martin49@gmail.com>
+# Date 1412977082 -7200
+#      Fri Oct 10 23:38:02 2014 +0200
+# Node ID 4805f636c2317d989a5f704ba691369f41be6595
+# Parent  c408fdc77aa18fcda81db4f0d038e8a69ba84bb2
+allow to set python interpreter
+
+Canfestival python modules and scripts are not python3 compliant.
+
+Allow to pass the python interperter to be used to make.
+
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+
+diff --git a/Makefile.in b/Makefile.in
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -21,6 +21,9 @@
+ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ # 
++PYTHON ?= python
++export PYTHON
++
+ all: objdictedit canfestival examples
+ examples: canfestival driver
+diff --git a/doc/manual/en/manual.tex b/doc/manual/en/manual.tex
+--- a/doc/manual/en/manual.tex
++++ b/doc/manual/en/manual.tex
+@@ -1134,6 +1134,7 @@
+       python objdictedit.py [od files...]
+ \end{verbatim}
++Note that Gnosis modules only run with python2 as interpreter.
+ \subsubsection{Installation and usage on Windows}
+diff --git a/examples/CANOpenShell/Makefile.in b/examples/CANOpenShell/Makefile.in
+--- a/examples/CANOpenShell/Makefile.in
++++ b/examples/CANOpenShell/Makefile.in
+@@ -69,11 +69,11 @@
+       
+ CANOpenShellMasterOD.c: CANOpenShellMasterOD.od
+       $(MAKE) -C ../../objdictgen gnosis
+-      python ../../objdictgen/objdictgen.py CANOpenShellMasterOD.od CANOpenShellMasterOD.c
++      $(PYTHON) ../../objdictgen/objdictgen.py CANOpenShellMasterOD.od CANOpenShellMasterOD.c
+ CANOpenShellSlaveOD.c: CANOpenShellSlaveOD.od
+       $(MAKE) -C ../../objdictgen gnosis
+-      python ../../objdictgen/objdictgen.py CANOpenShellSlaveOD.od CANOpenShellSlaveOD.c
++      $(PYTHON) ../../objdictgen/objdictgen.py CANOpenShellSlaveOD.od CANOpenShellSlaveOD.c
+ %.o: %.c
+       $(CC) $(CFLAGS) $(PROG_CFLAGS) ${PROGDEFINES} $(INCLUDES) -o $@ -c $<
+diff --git a/examples/DS401_Master/Makefile.in b/examples/DS401_Master/Makefile.in
+--- a/examples/DS401_Master/Makefile.in
++++ b/examples/DS401_Master/Makefile.in
+@@ -53,7 +53,7 @@
+       
+ TestMaster.c: TestMaster.od
+       $(MAKE) -C ../../objdictgen gnosis
+-      python ../../objdictgen/objdictgen.py TestMaster.od TestMaster.c
++      $(PYTHON) ../../objdictgen/objdictgen.py TestMaster.od TestMaster.c
+ %.o: %.c
+       $(CC) $(CFLAGS) $(PROG_CFLAGS) ${PROGDEFINES} $(INCLUDES) -o $@ -c $<
+diff --git a/examples/DS401_Slave_Gui/Makefile.in b/examples/DS401_Slave_Gui/Makefile.in
+--- a/examples/DS401_Slave_Gui/Makefile.in
++++ b/examples/DS401_Slave_Gui/Makefile.in
+@@ -59,7 +59,7 @@
+ ObjDict.c: ObjDict.od
+       $(MAKE) -C ../../objdictgen gnosis
+-      python ../../objdictgen/objdictgen.py ObjDict.od ObjDict.c
++      $(PYTHON) ../../objdictgen/objdictgen.py ObjDict.od ObjDict.c
+ .cpp.o:
+       $(CXX) -c $(CFLAGS) $(PROG_CFLAGS) ${PROGDEFINES} $(INCLUDES) `wx-config --cxxflags` $< -o $@
+diff --git a/examples/SillySlave/Makefile.in b/examples/SillySlave/Makefile.in
+--- a/examples/SillySlave/Makefile.in
++++ b/examples/SillySlave/Makefile.in
+@@ -53,7 +53,7 @@
+       
+ SillySlave.c: SillySlave.od
+       $(MAKE) -C ../../objdictgen gnosis
+-      python ../../objdictgen/objdictgen.py SillySlave.od SillySlave.c
++      $(PYTHON) ../../objdictgen/objdictgen.py SillySlave.od SillySlave.c
+ %.o: %.c
+       $(CC) $(CFLAGS) $(PROG_CFLAGS) ${PROGDEFINES} $(INCLUDES) -o $@ -c $<
+diff --git a/examples/TestMasterMicroMod/Makefile.in b/examples/TestMasterMicroMod/Makefile.in
+--- a/examples/TestMasterMicroMod/Makefile.in
++++ b/examples/TestMasterMicroMod/Makefile.in
+@@ -61,7 +61,7 @@
+       
+ TestMaster.c: TestMaster.od
+       $(MAKE) -C ../../objdictgen gnosis
+-      python ../../objdictgen/objdictgen.py TestMaster.od TestMaster.c
++      $(PYTHON) ../../objdictgen/objdictgen.py TestMaster.od TestMaster.c
+ %.o: %.c
+       $(CC) $(CFLAGS) $(PROG_CFLAGS) ${PROGDEFINES} $(INCLUDES) -o $@ -c $<
+diff --git a/examples/TestMasterSlave/Makefile.in b/examples/TestMasterSlave/Makefile.in
+--- a/examples/TestMasterSlave/Makefile.in
++++ b/examples/TestMasterSlave/Makefile.in
+@@ -69,11 +69,11 @@
+       
+ TestSlave.c: TestSlave.od
+       $(MAKE) -C ../../objdictgen gnosis
+-      python ../../objdictgen/objdictgen.py TestSlave.od TestSlave.c
++      $(PYTHON) ../../objdictgen/objdictgen.py TestSlave.od TestSlave.c
+       
+ TestMaster.c: TestMaster.od
+       $(MAKE) -C ../../objdictgen gnosis
+-      python ../../objdictgen/objdictgen.py TestMaster.od TestMaster.c
++      $(PYTHON) ../../objdictgen/objdictgen.py TestMaster.od TestMaster.c
+ %.o: %.c
+       $(CC) $(CFLAGS) $(PROG_CFLAGS) ${PROGDEFINES} $(INCLUDES) -o $@ -c $<
+diff --git a/examples/TestMasterSlaveLSS/Makefile.in b/examples/TestMasterSlaveLSS/Makefile.in
+--- a/examples/TestMasterSlaveLSS/Makefile.in
++++ b/examples/TestMasterSlaveLSS/Makefile.in
+@@ -64,15 +64,15 @@
+       
+ TestSlaveA.c: TestSlaveA.od
+       $(MAKE) -C ../../objdictgen gnosis
+-      python ../../objdictgen/objdictgen.py TestSlaveA.od TestSlaveA.c
++      $(PYTHON) ../../objdictgen/objdictgen.py TestSlaveA.od TestSlaveA.c
+ TestSlaveB.c: TestSlaveB.od
+       $(MAKE) -C ../../objdictgen gnosis
+-      python ../../objdictgen/objdictgen.py TestSlaveB.od TestSlaveB.c
++      $(PYTHON) ../../objdictgen/objdictgen.py TestSlaveB.od TestSlaveB.c
+       
+ TestMaster.c: TestMaster.od
+       $(MAKE) -C ../../objdictgen gnosis
+-      python ../../objdictgen/objdictgen.py TestMaster.od TestMaster.c
++      $(PYTHON) ../../objdictgen/objdictgen.py TestMaster.od TestMaster.c
+ %.o: %.c
+       $(CC) $(CFLAGS) $(PROG_CFLAGS) ${PROGDEFINES} $(INCLUDES) -o $@ -c $<
+diff --git a/examples/kerneltest/Makefile.in b/examples/kerneltest/Makefile.in
+--- a/examples/kerneltest/Makefile.in
++++ b/examples/kerneltest/Makefile.in
+@@ -79,10 +79,10 @@
+ TestSlave.c: TestSlave.od
+       $(MAKE) -C ../../objdictgen gnosis
+-      python ../../objdictgen/objdictgen.py TestSlave.od TestSlave.c
++      $(PYTHON) ../../objdictgen/objdictgen.py TestSlave.od TestSlave.c
+ TestMaster.c: TestMaster.od
+       $(MAKE) -C ../../objdictgen gnosis
+-      python ../../objdictgen/objdictgen.py TestMaster.od TestMaster.c
++      $(PYTHON) ../../objdictgen/objdictgen.py TestMaster.od TestMaster.c
+       
+ #endif
+
+
index fb1787ece5780123c3183ed9591707b5c5634783..89e8be58e94d1a1faef3e1a5d446857f847eb0b4 100644 (file)
@@ -14,6 +14,10 @@ CANFESTIVAL_INSTALL_STAGING = YES
 CANFESTIVAL_INSTALLED-y = src drivers
 CANFESTIVAL_INSTALLED-$(BR2_PACKAGE_CANFESTIVAL_INSTALL_EXAMPLES) += examples
 
+# Canfestival provides and used some python modules and scripts only compliant
+# with python2.
+CANFESTIVAL_DEPENDENCIES = host-python
+
 # canfestival uses its own hand-written build-system. Though there is
 # a configure script, it does not use the autotools, so, we use the
 # generic-package infrastructure.
@@ -33,19 +37,22 @@ define CANFESTIVAL_CONFIGURE_CMDS
 endef
 
 define CANFESTIVAL_BUILD_CMDS
-       $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) all
+       $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) all \
+               PYTHON=$(HOST_DIR)/usr/bin/python2
 endef
 
 define CANFESTIVAL_INSTALL_TARGET_CMDS
        for d in $(CANFESTIVAL_INSTALLED-y) ; do \
                $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/$$d install \
-                        DESTDIR=$(TARGET_DIR) || exit 1 ; \
+                       PYTHON=$(HOST_DIR)/usr/bin/python2 \
+                       DESTDIR=$(TARGET_DIR) || exit 1 ; \
        done
 endef
 
 define CANFESTIVAL_INSTALL_STAGING_CMDS
        for d in $(CANFESTIVAL_INSTALLED-y) ; do \
                $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/$$d install \
+                       PYTHON=$(HOST_DIR)/usr/bin/python2 \
                        DESTDIR=$(STAGING_DIR) || exit 1 ; \
        done
 endef