From: Samuel Martin <s.martin49@gmail.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH v4 1/2] dependencies: build a host python2 if no suitable one can be found
Date: Mon, 16 Jul 2012 23:38:05 +0200 [thread overview]
Message-ID: <1342474686-10167-1-git-send-email-s.martin49@gmail.com> (raw)
Some distros choose to change the /usr/bin/python binary, making 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; in such case, $(NEED_PYTHON2) should be added to the
dependency list. So, we can get rid of the python dependency check.
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
---
Changelog:
Changes since v3:
- minor fix
Changes since v2:
- misc. fixes and cleanup
Changes since v1:
- use support/dependency infrastructure
- rename some symbols
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..ddae701
--- /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
diff --git a/support/dependencies/dependencies.sh b/support/dependencies/dependencies.sh
index 9f0f6a9..ec175f5 100755
--- a/support/dependencies/dependencies.sh
+++ b/support/dependencies/dependencies.sh
@@ -131,7 +131,7 @@ if ! $SHELL --version 2>&1 | grep -q '^GNU bash'; then
fi;
# Check that a few mandatory programs are installed
-for prog in awk bison flex msgfmt makeinfo patch gzip bzip2 perl tar wget cpio python unzip rsync ${DL_TOOLS} ; do
+for prog in awk bison flex msgfmt makeinfo patch gzip bzip2 perl tar wget cpio unzip rsync ${DL_TOOLS} ; do
if ! which $prog > /dev/null ; then
/bin/echo -e "\nYou must install '$prog' on your build machine";
if test $prog = "makeinfo" ; then
--
1.7.11.2
next reply other threads:[~2012-07-16 21:38 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-16 21:38 Samuel Martin [this message]
2012-07-16 21:38 ` [Buildroot] [PATCH v4 2/2] libglib2: fix install even if the host python binary refers to python3 Samuel Martin
2012-10-21 21:04 ` [Buildroot] [PATCH v4 1/2] dependencies: build a host python2 if no suitable one can be found Samuel Martin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1342474686-10167-1-git-send-email-s.martin49@gmail.com \
--to=s.martin49@gmail.com \
--cc=buildroot@busybox.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox