Python: script names now include full path #21568

Closed
wants to merge 1 commit into
from

Projects

None yet

4 participants

@FRidh
Member
FRidh commented Jan 1, 2017

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

Things done
  • Tested using sandboxing
    (nix.useSandbox on NixOS,
    or option build-use-sandbox in nix.conf
    on non-NixOS)
  • Built on platform(s)
    • NixOS
    • macOS
    • Linux
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Fits CONTRIBUTING.md.

@FRidh FRidh 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
0d65684
@mention-bot

@FRidh, thanks for your PR! By analyzing the history of the files in this pull request, we identified @FRidh to be a potential reviewer.

@FRidh FRidh self-assigned this Jan 1, 2017
@volth
Contributor
volth commented Jan 1, 2017 edited

Did CI fail or was it killed by the timer?
I run build at home and it is still compiling, almost 2 hours

@Mic92
Mic92 approved these changes Jan 2, 2017 View changes
@FRidh
Member
FRidh commented Jan 2, 2017

As far as I can tell all Python packages still function (https://headcounter.org/hydra/eval/344688) with this change.

I've pushed d68aba4 and a zim fix 21f6cb7.

@FRidh FRidh closed this Jan 2, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment