On 2016-05-11 14:06, Yaakov Selkowitz wrote: > On 2016-05-11 12:09, Andrew Schulman wrote: >>> Am 10.05.2016 um 20:19 schrieb Andrew Schulman: >>>> Achim, can you please add /bin/fish and /usr/bin/fish to /etc/shells in >>>> base-files? >>> >>> I seem to remember that this was discussed before. If you could perhaps >>> look up that discussion and fill me in what the conclusion was last time >>> around? >> >> Hm, you're right, it was discussed before: >> >> https://www.cygwin.com/ml/cygwin/2014-02/msg00696.html >> >> I don't know if there was consensus, but the last word there from CGF was >> that shell packages should run a postinstall step to add themselves to >> /etc/shells. > > While I'm always ready to reconsider previous decisions, this is how it > appears to be handled in Linux distros. The implication thereof is that > (once all packages have been adapted) the default /etc/shells should > only contain those shells available by default (namely, sh, bash, and > /sbin/nologin), e.g.: > > https://git.fedorahosted.org/cgit/setup.git/tree/shells > > (except that /sbin != /usr/sbin on Cygwin.) AFAICS this should be a two-step process. 1) base-files' default /etc/shells should contain only the shells in a Base install, namely: /bin/sh /bin/ash /bin/bash /bin/dash /usr/bin/sh /usr/bin/ash /usr/bin/bash /usr/bin/dash /sbin/nologin 2) Then all non-Base shells, namely: fish Andrew Schulman mksh Chris Sutcliffe posh Jari Aalto tcsh Corinna Vinschen zsh Peter A. Castro will bump release adding an update_etc_shells call, per the attached patch, with the path of their shell(s). >> That seems reasonable. There are questions about the right way to do it, >> but I'll ask those in a separate thread. > > Probably best if we have a cygport function for creating the necessary > postinstall and preremove commands. Attached. Any questions or comments before I make this official? Or, is this just not worth the trouble? What are the consequences of having shells listed in /etc/shells which aren't on the system? -- Yaakov