Hi, This is a bit old, but this is apparently a Termux specific issue, which has just been fixed (but the fix isn't available yet, so that I couldn't test).
On 2023-11-20 03:43:31 +0900, Yasuhito FUTATSUKI wrote: > Hello, > > On 2023/11/19 11:34, Vincent Lefevre wrote: > > I've reported the following bug on > > > > https://github.com/termux/termux-packages/issues/18537 > > > > Since this is specific to svn, I'm reporting it here too. > > In particular, I'm wondering what special thing svn does > > to trigger the failure compared to the shell. > > > > With "svn diff", I use the --diff-cmd option with my own diff utility, > > which is a script that runs an interpreter using /usr/bin/env. I use > > this config on various machines, including on my Android phones in > > Termux. After the upgrade to Android 14, this is no longer working. > > "svn diff --diff-cmd ..." on Unix platforms uses execvp(3) through > svn_io_run_diff2(), svn_io_run_cmd() (inherit == TRUE), > svn_io_start_cmd3(), and apr_proc_create(), and no special > treatment about environment variables. The execvp() function wasn't wrapped by Termux to fix paths. It seems that the issue is that /usr/bin/env doesn't exist, hence the need for a wrapper to use the actual pathname. However, this doesn't explain why the standard execvp() was working with Android 13. > [[[ > #!/bin/sh > if [ ! -n ${ZSH_VERSION} ]; then > exec zsh "$0" "$@" > fi > ... > ]]] I'm currently using #!/bin/sh [ -n "$ZSH_VERSION" ] || exec zsh -f -- "$0" ${1+"$@"} -- Vincent Lefèvre <vinc...@vinc17.net> - Web: <https://www.vinc17.net/> 100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/> Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)