This is the mail archive of the cygwin-apps mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[RFC] /etc/shells management (fish, mksh, posh, tcsh, zsh)


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

Attachment: 0002-Add-update_etc_shells-for-etc-shells-management.patch
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]