Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)

Python: script names now include full path

Certain programs, like zim, calibre and now also apparently mercurial,
rely on sys.argv[0] providing not just the script name but the full
path.

The Python docs [1] state the following on the matter:

> argv[0] is the script name (it is operating system dependent whether
this is a full pathname or not).

Therefore, scripts should not expect to receive a full path.
Unfortunately some do. While this can be considered a bug, there doesn't
seem any reason not to provide the full path. Therefore we now provide
the full path.

[1]
https://docs.python.org/3.5/library/sys.html?highlight=sys.argv#sys.argv

+1 -1
+1 -1
pkgs/development/interpreters/python/wrap-python.nix
··· 35 import sys 36 import site 37 import functools 38 - sys.argv[0] = '"'$(basename "$f")'"' 39 functools.reduce(lambda k, p: site.addsitedir(p, k), ['"$([ -n "$program_PYTHONPATH" ] && (echo "'$program_PYTHONPATH'" | sed "s|:|','|g") || true)"'], site._init_pathinfo()) 40 ''; 41
··· 35 import sys 36 import site 37 import functools 38 + sys.argv[0] = '"'$(readlink -f "$f")'"' 39 functools.reduce(lambda k, p: site.addsitedir(p, k), ['"$([ -n "$program_PYTHONPATH" ] && (echo "'$program_PYTHONPATH'" | sed "s|:|','|g") || true)"'], site._init_pathinfo()) 40 ''; 41