All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH v3 1/2] dependencies: build a host python2 if no suitable one cane be found
@ 2012-06-02 22:08 Samuel Martin
  2012-06-02 22:08 ` [Buildroot] [PATCH v3 2/2] libglib2: fix install even if the host python binary refers to python3 Samuel Martin
                   ` (2 more replies)
  0 siblings, 3 replies; 11+ messages in thread
From: Samuel Martin @ 2012-06-02 22:08 UTC (permalink / raw)
  To: buildroot

Some distros choose to change the /usr/bin/python binary, make it pointed to
python3 instead of python2.

This may have some bad consequences for packages that uses some
non-python3-compliant python scripts in their build system (eg. in install or
post-install scripts).

This patch checks for a suitable python2 version (2.6 or 2.7) on the host
system, and declares the following variables:
- PYTHON2: pointing to the host python2 binary;
- NEED_PYTHON2: sets to "host-python" if no python2 binary has been found.

This way, a package using some python2 scripts must:
- adds $(NEED_PYTHON2) to its dependency list;
- sets $(PYTHON2) as the python binary to be used.

A side effect of this patch is getting rid of any host python. Buildroot can
runs on a host without python, or with a too old python2 version, or with only
python3.

Changes since v2:
- misc. fixes and cleanup

Changes since v1:
- use support/dependency infrastructure
- rename some symbols

Signed-off-by: Samuel Martin <s.martin49@gmail.com>

 create mode 100644 support/dependencies/check-host-python2.mk
 create mode 100755 support/dependencies/check-host-python2.sh

diff --git a/support/dependencies/check-host-python2.mk b/support/dependencies/check-host-python2.mk
new file mode 100644
index 0000000..3b66ffc
--- /dev/null
+++ b/support/dependencies/check-host-python2.mk
@@ -0,0 +1,6 @@
+PYTHON2 = $(call suitable-host-package,python2)
+
+ifeq (,$(PYTHON2))
+  NEED_PYTHON2 = host-python
+  PYTHON2 = $(HOST_DIR)/usr/bin/python
+endif
diff --git a/support/dependencies/check-host-python2.sh b/support/dependencies/check-host-python2.sh
new file mode 100755
index 0000000..6ad4b3a
--- /dev/null
+++ b/support/dependencies/check-host-python2.sh
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+candidates="python python2"
+
+for candidate in ${candidates} ; do
+  which ${candidate} &>/dev/null || continue
+  # restrict version of python2 to 2.6 or 2.7
+  if ${candidate} --version 2>&1 | grep -q 'Python 2\.[6-7].*' ; then
+    # found a valid candidate, so quit now
+    echo $(which ${candidate})
+    exit
+  fi
+done
--
1.7.10.3

^ permalink raw reply related	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2012-08-20 20:23 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-06-02 22:08 [Buildroot] [PATCH v3 1/2] dependencies: build a host python2 if no suitable one cane be found Samuel Martin
2012-06-02 22:08 ` [Buildroot] [PATCH v3 2/2] libglib2: fix install even if the host python binary refers to python3 Samuel Martin
2012-06-28 20:59   ` Samuel Martin
2012-07-15 11:50   ` Arnout Vandecappelle
2012-07-17  8:22   ` Thomas Petazzoni
2012-07-17  8:34     ` Samuel Martin
2012-08-18 12:06       ` Samuel Martin
2012-08-20 18:56         ` Thomas Petazzoni
2012-08-20 20:23           ` Samuel Martin
2012-06-28 20:58 ` [Buildroot] [PATCH v3 1/2] dependencies: build a host python2 if no suitable one cane be found Samuel Martin
2012-07-15 11:50 ` Arnout Vandecappelle

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.