Comment 7 for bug 1860369

Revision history for this message
Chris Patterson (cjp256) wrote : Re: Issue running Python daemons that have been built using entry points with the latest snapcraft (in a --classic snap)

I investigated further and there does indeed appear to be a bug with classic snaps, but appears to be on the snapd side of the house.

I expanded @petevg's test case:
https://github.com/cjp256/pedrolino

For the two apps in that snap that use the shell, PATHs appear to be updated to reflect `environment`. For the two apps that do not use the shell (python script and minimal gcc built binary), the PATHs are missing the updates. There is a reproducer.sh in there that's updated to build and run the commands using the snap(craft) try commands.

I think snapcraft triggered this bug for Microstack because it stopped creating the unnecessary wrapper for nginx app, which dropped the shell script usage, which had the correct behavior.

##########################################################################
##########################################################################

**********
[pedrolino]
/snap/pedrolino/x8/usr/bin/python3 /snap/pedrolino/x8/bin/pedrolino
PATH: /snap/pedrolino/x8/usr/bin:/home/chris/.local/bin:/home/chris/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/var/lib/snapd/snap/bin
hi
**********
[pedrolino.wrapper]
in shell script
/snap/pedrolino/x8/bin/pedrolino.wrapper
PATH: /snap/pedrolino/x8/usr/bin:/home/chris/.local/bin:/home/chris/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/var/lib/snapd/snap/bin
execing...
/snap/pedrolino/x8/usr/bin/python3 /snap/pedrolino/x8/bin/pedrolino
PATH: /snap/pedrolino/x8/usr/bin:/home/chris/.local/bin:/home/chris/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/var/lib/snapd/snap/bin
hi
**********
[pedrolino.sh]
/snap/pedrolino/x8/bin/test.sh
PATH: /snap/pedrolino/x8/usr/bin:/home/chris/.local/bin:/home/chris/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/var/lib/snapd/snap/bin
**********
[printpath]
/snap/pedrolino/x8/bin/printpath
PATH: /snap/pedrolino/x8/usr/bin:/home/chris/.local/bin:/home/chris/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/var/lib/snapd/snap/bin

##########################################################################
##########################################################################

Versus strict:
**********
[pedrolino]
/snap/pedrolino/x9/usr/bin/python3 /snap/pedrolino/x9/bin/pedrolino
PATH: /snap/pedrolino/x9/usr/sbin:/snap/pedrolino/x9/usr/bin:/snap/pedrolino/x9/sbin:/snap/pedrolino/x9/bin:/snap/pedrolino/x9/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
hi
**********
[pedrolino.wrapper]
in shell script
/snap/pedrolino/x9/bin/pedrolino.wrapper
PATH: /snap/pedrolino/x9/usr/sbin:/snap/pedrolino/x9/usr/bin:/snap/pedrolino/x9/sbin:/snap/pedrolino/x9/bin:/snap/pedrolino/x9/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
execing...
/snap/pedrolino/x9/usr/bin/python3 /snap/pedrolino/x9/bin/pedrolino
PATH: /snap/pedrolino/x9/usr/sbin:/snap/pedrolino/x9/usr/bin:/snap/pedrolino/x9/sbin:/snap/pedrolino/x9/bin:/snap/pedrolino/x9/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
hi
**********
[pedrolino.sh]
/snap/pedrolino/x9/bin/test.sh
PATH: /snap/pedrolino/x9/usr/sbin:/snap/pedrolino/x9/usr/bin:/snap/pedrolino/x9/sbin:/snap/pedrolino/x9/bin:/snap/pedrolino/x9/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
**********
[printpath]
/snap/pedrolino/x9/bin/printpath
PATH: /snap/pedrolino/x9/usr/sbin:/snap/pedrolino/x9/usr/bin:/snap/pedrolino/x9/sbin:/snap/pedrolino/x9/bin:/snap/pedrolino/x9/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games