OVH Cloud OVH Cloud

Bug GNU tcsh (6.12.00) ?

4 réponses
Avatar
Marc Boyer
Bonjour,

je me demande si j'ai trouvé un bug dans ma version du GNU
tcsh (tcsh 6.12.00 (Astron)), en interraction avec le exec -l
de bash.

Soit le .login suivant:
echo "execution .login par "$$
echo \$0 = $0
echo \$\* = $*
ps -u ${LOGNAME} | grep $$

Sur une Sun/Solaris avec le bash GNU et le tcsh Sun:
bash-2.05$ echo $$
798
bash-2.05$ exec -l tcsh -c 'echo toto'
toto
zeus|~> echo $$
730
zeus|~> echo \$0=$0
$0=-tcsh
zeus|~> echo \$\*= $*
$*=

Sur un PC/Linux avec bash et tcsh GNU:
bash-2.05b$ echo $$
17480
bash-2.05b$ exec -l tcsh -c 'echo toto'
execution .login par 17480
$0 = -tcsh
$* =
17480 pts/7 00:00:00 tcsh
toto
tesa22-3|~> echo $$
17447

Donc, en fait, le tcsh de GNU se prend pour un shell de connexion,
mais pas celui de Sun.

Donc, est-ce toujours le cas avec une éventuelle version plus
récente du GNU tcsh, et est-ce un bug ou une 'feature' ?

Marc Boyer
--
La contractualisation de la recherche, c'est me donner de l'argent pour
faire ce que je ne sais pas faire, que je fais donc mal, pendant que ce
que je sais faire, je le fais sans moyens...

4 réponses

Avatar
Stephane Chazelas
2004-09-3, 09:12(+00), Marc Boyer:
je me demande si j'ai trouvé un bug dans ma version du GNU
tcsh (tcsh 6.12.00 (Astron)), en interraction avec le exec -l
de bash.

["-tcsh -c" qui lit ".login" en 6.12 (Linux) et pas en 6.11
(Sun)]


Il n'y a pas plus de "GNU tcsh" que de "tcsh Sun", il y a tcsh
compilé par les gens de Sun ou par les gens de Debian ou Redhat.
tcsh n'est pas un project GNU, il n'est pas meme sous GPL

Ca ressemble a un changement de comportement entre 6.11 et 6.12.
La doc dit qu'un shell lancé avec un argv[0] commencant par "-"
est un shell de login et que les shells de login lisent le
.login. Ca serait donc plutot la version 6.11 qui devrait etre
consideree comme bugguee.

D'ailleurs:
<<
25. V6.11.02 - 20020516
[...]
17. Make -shell invocations always treated as a login shell.




Note que la derniere version est la 6.13.

--
Stephane


Avatar
Marc Boyer
Stephane Chazelas wrote:
2004-09-3, 09:12(+00), Marc Boyer:
je me demande si j'ai trouvé un bug dans ma version du GNU
tcsh (tcsh 6.12.00 (Astron)), en interraction avec le exec -l
de bash.

["-tcsh -c" qui lit ".login" en 6.12 (Linux) et pas en 6.11
(Sun)]


Il n'y a pas plus de "GNU tcsh" que de "tcsh Sun", il y a tcsh
compilé par les gens de Sun ou par les gens de Debian ou Redhat.
tcsh n'est pas un project GNU, il n'est pas meme sous GPL


Ce qui explique pourquoi j'avais du mal à trouver sa
home-page chez GNU ;-)
Merci du renseignement.

D'ailleurs:
<<
25. V6.11.02 - 20020516
[...]
17. Make -shell invocations always treated as a login shell.





Par curiosité, et si je n'ai pas atteint les limites de ta
patience, d'ou est extrait cette citation ?

Note que la derniere version est la 6.13.


Je viens de voir ça sur leur site en effet.
Bon, il me reste à faire lire le .logout. Ca n'a pas
l'air gagné d'avance.

Merci pour tous ces renseignements,

Marc Boyer
--
La contractualisation de la recherche, c'est me donner de l'argent pour
faire ce que je ne sais pas faire, que je fais donc mal, pendant que ce
que je sais faire, je le fais sans moyens...



Avatar
Stephane Chazelas
2004-09-3, 12:01(+00), Marc Boyer:
[...]
17. Make -shell invocations always treated as a login shell.





Par curiosité, et si je n'ai pas atteint les limites de ta
patience, d'ou est extrait cette citation ?


Du fichier "Fixes" dans les sources.

http://www.opensource.apple.com/darwinsource/WWDC2004/tcsh-44/tcsh/Fixes

Bon, il me reste à faire lire le .logout. Ca n'a pas
l'air gagné d'avance.
[...]


Je viens de faire des tests avec le 6.13 sur Solaris,

Tu peux ajouter dans ton ~/.login:

alias '$SSHAGENT' 'la commande qui lance la session; logout'

"logout" a l'air de forcer la lecture de ~/.logout pour les
shells de login non-interactifs.

--
Stephane




Avatar
Marc Boyer
Stephane Chazelas wrote:
Par curiosité, et si je n'ai pas atteint les limites de ta
patience, d'ou est extrait cette citation ?


Du fichier "Fixes" dans les sources.

http://www.opensource.apple.com/darwinsource/WWDC2004/tcsh-44/tcsh/Fixes


OK, j'avais pas ose regarder les sources.

Bon, il me reste à faire lire le .logout. Ca n'a pas
l'air gagné d'avance.
[...]


Je viens de faire des tests avec le 6.13 sur Solaris,

Tu peux ajouter dans ton ~/.login:

alias '$SSHAGENT' 'la commande qui lance la session; logout'


alias '$SSHAGENT' 'la commande ... ; logout ; echo'

car sinon, mon logout se plaint d'avoir trop d'arguments

"logout" a l'air de forcer la lecture de ~/.logout pour les
shells de login non-interactifs.


Visiblement, oui.
Merci beaucoup pour le coup de main.
J'aurais jamais pense a ca tout seul.

Marc Boyer
--
La contractualisation de la recherche, c'est me donner de l'argent pour
faire ce que je ne sais pas faire, que je fais donc mal, pendant que ce
que je sais faire, je le fais sans moyens...