Differences between revisions 1 and 6 (spanning 5 versions)
Revision 1 as of 2014-09-27 18:16:42
Size: 1355
Editor: GuillemJover
Comment: Initial summary of the remove bash from essential proposal
Revision 6 as of 2019-08-13 07:24:41
Size: 2076
Editor: PaulWise
Comment: mention binarycontrol search for bash
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
This proposal is about moving DebianPkg:bash out of the Essential:yes set. The initial discussion can be found in https://lists.debian.org/debian-devel/2011/04/msg00185.html. This proposal is about moving DebianPkg:bash out of the Essential:yes set. The initial discussion can be found at https://lists.debian.org/debian-devel/2011/04/msg00185.html. A subsequent discussion can be found at https://lists.debian.org/debian-devel/2014/09/msg00875.html.
Line 9: Line 9:
  * Check how many packages contain scripts and binaries using bash. Lars posted some [[https://lists.debian.org/debian-devel/2011/04/msg00264.html|scripts]] and [[https://lists.debian.org/debian-devel/2011/04/msg00379.html|numbers]] but only for scripts using bash in their shebang.

  * Turn the above into a lintian check.
  * Check how many packages contain scripts and binaries using bash.
    *
Lars posted some [[https://lists.debian.org/debian-devel/2011/04/msg00264.html|scripts]] and [[https://lists.debian.org/debian-devel/2011/04/msg00379.html|numbers]] but only for scripts using bash in their shebang.
    * Many packages [[https://binarycontrol.debian.net/?q=bash|reference bash]] in their binary package metadata and maintainer scripts
  * Turn the above into a lintian check. There is a request for this now at DebianBug:787009.
Line 15: Line 16:
    * Rewrite bash script to POSIX shell scripts.     * Rewrite bash script to POSIX shell scripts. There was a subsequent discussion where it was pointed that some of the bash features are hard to replicate using POSIX shell, so people might oppose to a conversion, see https://lists.debian.org/debian-devel/2014/09/msg00890.html.
Line 19: Line 20:
    * Change all shells to abort on removal when they are root's shell.     * Change all shell packages to abort on removal when they are any users' shell.
      * This will not work if restricted only to root. Many systems do not have a root login, and are administered using a normal user account and “sudo”. --mirabilos, guillem

This proposal is about moving bash out of the Essential:yes set. The initial discussion can be found at https://lists.debian.org/debian-devel/2011/04/msg00185.html. A subsequent discussion can be found at https://lists.debian.org/debian-devel/2014/09/msg00875.html.

TODO: Fill in the reasons, advantages and disadvantages here.

The following is a list of things (possibly non-exhaustive) that would need to be done before considering removing the Essential:yes field.

  • Check how many packages contain scripts and binaries using bash.
    • Lars posted some scripts and numbers but only for scripts using bash in their shebang.

    • Many packages reference bash in their binary package metadata and maintainer scripts

  • Turn the above into a lintian check. There is a request for this now at 787009.

  • Either:
    • Switch bash scripts that do not use any bashism to POSIX shell scripts.
    • Rewrite bash script to POSIX shell scripts. There was a subsequent discussion where it was pointed that some of the bash features are hard to replicate using POSIX shell, so people might oppose to a conversion, see https://lists.debian.org/debian-devel/2014/09/msg00890.html.

    • Switch implicit dependencies on bash to explicit ones.
  • Handle the login issue. 620898

    • Change all shell packages to abort on removal when they are any users' shell.
      • This will not work if restricted only to root. Many systems do not have a root login, and are administered using a normal user account and “sudo”. --mirabilos, guillem
    • Make sure login will fallback to /bin/sh if the user shell is not available. There's a patch in the bug report which should cover most of the issue.
  • Handle the loss of essentialness for root's shell when unpacking. Guarantee any shell package is always functional.