summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXavier de Gaye <xdegaye@users.sourceforge.net>2016-12-13 15:32:21 (GMT)
committerXavier de Gaye <xdegaye@users.sourceforge.net>2016-12-13 15:32:21 (GMT)
commitb35fc626c1efe72cf5a0b3c8faf860830aab0a83 (patch)
tree1d3f5b0882d505342f85796474a66cab53f4d6d8
parentf191a9e8e4f3fbcf018fac4996d764c2b9d60800 (diff)
downloadcpython-b35fc626c1efe72cf5a0b3c8faf860830aab0a83.zip
cpython-b35fc626c1efe72cf5a0b3c8faf860830aab0a83.tar.gz
cpython-b35fc626c1efe72cf5a0b3c8faf860830aab0a83.tar.bz2
Issue #16255: subrocess.Popen uses /system/bin/sh on Android as the shell,
instead of /bin/sh.
-rw-r--r--Lib/subprocess.py5
-rw-r--r--Misc/NEWS3
2 files changed, 7 insertions, 1 deletions
diff --git a/Lib/subprocess.py b/Lib/subprocess.py
index c40f017..809e59f 100644
--- a/Lib/subprocess.py
+++ b/Lib/subprocess.py
@@ -1204,7 +1204,10 @@ class Popen(object):
args = list(args)
if shell:
- args = ["/bin/sh", "-c"] + args
+ # On Android the default shell is at '/system/bin/sh'.
+ unix_shell = ('/system/bin/sh' if
+ hasattr(sys, 'getandroidapilevel') else '/bin/sh')
+ args = [unix_shell, "-c"] + args
if executable:
args[0] = executable
diff --git a/Misc/NEWS b/Misc/NEWS
index fe9dc95..a06e3cb 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -177,6 +177,9 @@ Core and Builtins
Library
-------
+- Issue #16255: subrocess.Popen uses /system/bin/sh on Android as the shell,
+ instead of /bin/sh.
+
- Issue #28779: multiprocessing.set_forkserver_preload() would crash the
forkserver process if a preloaded module instantiated some
multiprocessing objects such as locks.