Skip to content

multishell/multishell-scripts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Multishell

This repository contains the build scripts and tools that are necessary to build the Multishell Docker Image.

Available Versions

  • apple-bash
    • 23, 25, 29, 30, 44.2, 44.3, 44.4, 44.5, 76.1, 76.2, 80, 84, 84.1.2, 86.1, 86.1.2, 92, 92.1.2, 94.1.2, 97, 99, 103, 103.50.1, 106, 106.201.1, 106.220.2
  • apple-ksh93
    • 4, 13, 16.1, 18, 20, 23, 25
  • bash
    • 2.x series
      • 2.02.0, 2.02.1, 2.03.0, 2.04.0, 2.05a.0, 2.05b.0, 2.05.0
    • 3.00.x series
      • 3.00.0, 3.00.1, 3.00.2, 3.00.10, 3.00.11, 3.00.12, 3.00.13, 3.00.14, 3.00.15, 3.00.16, 3.00.17, 3.00.18, 3.00.19, 3.00.20, 3.00.21, 3.00.22, 3.00.23
    • 3.1.x series
      • 3.1.0, 3.1.1, 3.1.2, 3.1.3, 3.1.4, 3.1.5, 3.1.6, 3.1.7, 3.1.8, 3.1.9, 3.1.10, 3.1.11, 3.1.12, 3.1.13, 3.1.14, 3.1.15, 3.1.16, 3.1.17, 3.1.18, 3.1.19, 3.1.20, 3.1.21, 3.1.22, 3.1.23
    • 3.2.x series
      • 3.2.0, 3.2.1, 3.2.2, 3.2.3, 3.2.4, 3.2.5, 3.2.6, 3.2.7, 3.2.8, 3.2.9, 3.2.10, 3.2.11, 3.2.12, 3.2.13, 3.2.14, 3.2.15, 3.2.16, 3.2.17, 3.2.18, 3.2.19, 3.2.20, 3.2.21, 3.2.22, 3.2.23, 3.2.24, 3.2.25, 3.2.26, 3.2.27, 3.2.28, 3.2.29, 3.2.30, 3.2.31, 3.2.32, 3.2.33, 3.2.34, 3.2.35, 3.2.36, 3.2.37, 3.2.38, 3.2.39, 3.2.40, 3.2.41, 3.2.42, 3.2.43, 3.2.44, 3.2.45, 3.2.46, 3.2.47, 3.2.48, 3.2.49, 3.2.50, 3.2.51, 3.2.52, 3.2.53, 3.2.54, 3.2.55, 3.2.56, 3.2.57
    • 4.0.x series
      • 4.0.0, 4.0.0-rc1, 4.0.1, 4.0.2, 4.0.3, 4.0.4, 4.0.5, 4.0.6, 4.0.7, 4.0.8, 4.0.9, 4.0.10, 4.0.11, 4.0.12, 4.0.13, 4.0.14, 4.0.15, 4.0.16, 4.0.17, 4.0.18, 4.0.19, 4.0.20, 4.0.21, 4.0.22, 4.0.23, 4.0.24, 4.0.25, 4.0.26, 4.0.27, 4.0.28, 4.0.29, 4.0.30, 4.0.31, 4.0.32, 4.0.33, 4.0.34, 4.0.35, 4.0.36, 4.0.37, 4.0.38, 4.0.39, 4.0.40, 4.0.41, 4.0.42, 4.0.43, 4.0.44
    • 4.1.x series
      • 4.1.0, 4.1.1, 4.1.2, 4.1.3, 4.1.4, 4.1.5, 4.1.6, 4.1.7, 4.1.8, 4.1.9, 4.1.10, 4.1.11, 4.1.12, 4.1.13, 4.1.14, 4.1.15, 4.1.16, 4.1.17
    • 4.2.x series
      • 4.2.0, 4.2.1, 4.2.2, 4.2.3, 4.2.4, 4.2.5, 4.2.6, 4.2.7, 4.2.8, 4.2.9, 4.2.10, 4.2.11, 4.2.12, 4.2.13, 4.2.14, 4.2.15, 4.2.16, 4.2.17, 4.2.18, 4.2.19, 4.2.20, 4.2.21, 4.2.22, 4.2.23, 4.2.24, 4.2.25, 4.2.26, 4.2.27, 4.2.28, 4.2.29, 4.2.30, 4.2.31, 4.2.32, 4.2.33, 4.2.34, 4.2.35, 4.2.36, 4.2.37, 4.2.38, 4.2.39, 4.2.40, 4.2.41, 4.2.42, 4.2.43, 4.2.44, 4.2.45, 4.2.46, 4.2.47, 4.2.48, 4.2.49, 4.2.50, 4.2.51, 4.2.52, 4.2.53
    • 4.3.x series
      • 4.3.0, 4.3.1, 4.3.2, 4.3.3, 4.3.4, 4.3.5, 4.3.6, 4.3.7, 4.3.8, 4.3.9, 4.3.10, 4.3.11, 4.3.12, 4.3.13, 4.3.14, 4.3.15, 4.3.16, 4.3.17, 4.3.18, 4.3.19, 4.3.20, 4.3.21, 4.3.22, 4.3.23, 4.3.24, 4.3.25, 4.3.26, 4.3.27, 4.3.28, 4.3.29, 4.3.30, 4.3.31, 4.3.32, 4.3.33, 4.3.34, 4.3.35, 4.3.36, 4.3.37, 4.3.38, 4.3.39, 4.3.40, 4.3.41, 4.3.42, 4.3.43, 4.3.44, 4.3.45, 4.3.46, 4.3.47, 4.3.48
    • 4.4.x series
      • 4.4.0, 4.4.0-beta, 4.4.0-beta2, 4.4.0-rc1, 4.4.0-rc2, 4.4.1, 4.4.2, 4.4.3, 4.4.4, 4.4.5, 4.4.6, 4.4.7, 4.4.8, 4.4.9, 4.4.10, 4.4.11, 4.4.12, 4.4.13, 4.4.14, 4.4.15, 4.4.16, 4.4.17, 4.4.18, 4.4.19, 4.4.20, 4.4.21, 4.4.22, 4.4.23
    • 5.0.x series
      • 5.0.0, 5.0.0-alpha, 5.0.0-beta, 5.0.0-beta2, 5.0.0-rc1, 5.0.1, 5.0.2
  • dash
    • 0.5.2, 0.5.3, 0.5.4, 0.5.5, 0.5.5.1, 0.5.6, 0.5.6.1, 0.5.7, 0.5.8, 0.5.9, 0.5.9.1, 0.5.10, 0.5.10.1, 0.5.10.2
  • fish
    • 1.x series
      • 1.16.0, 1.16.1, 1.16.2, 1.17.0, 1.18.0, 1.18.1, 1.19.0, 1.20.0, 1.20.1, 1.20.2, 1.21.0, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 1.21.12, 1.22.0, 1.22.1, 1.22.3, 1.23.0, 1.23.1
    • 2.x series
      • 2.0.0, 2.1.0, 2.1.1, 2.1.2, 2.2b1, 2.2.0, 2.3b1, 2.3b2, 2.3.0, 2.3.1, 2.4b1, 2.4.0, 2.5b1, 2.5.0, 2.6b1, 2.6.0, 2.7b1, 2.7.0, 2.7.1
    • 3.x series
      • 3.0b1, 3.0.0, 3.0.1, 3.0.2
  • ksh93
    • 2002-06-28, 2004-02-29, 2004-12-25, 2005-02-02, 2006-01-24, 2006-02-14, 2007-01-11, 2007-03-28, 2007-06-28, 2007-11-05, 2008-02-02, 2008-07-25, 2008-11-04, 2008-12-12, 2009-05-01, 2009-05-05, 2009-06-30, 2009-10-21, 2009-11-30, 2009-12-06, 2009-12-11, 2009-12-24, 2010-02-02, 2010-03-09, 2010-05-27, 2010-06-21, 2010-07-01, 2010-08-11, 2010-08-26, 2010-09-24, 2010-10-10, 2010-10-26, 2010-11-22, 2010-12-01, 2010-12-12, 2010-12-21, 2011-01-04, 2011-01-18, 2011-01-27, 2011-01-31, 2011-02-02, 2011-02-08, 2011-04-15, 2011-04-28, 2011-05-05, 2011-06-30, 2012-01-01, 2012-02-02, 2012-02-14, 2012-02-29, 2012-05-18, 2012-05-31, 2012-06-12, 2012-06-20, 2012-06-26, 2012-06-28, 2012-07-27, 2012-08-01
  • sash
    • 3.4, 3.4-fmb, 3.5, 3.5-fmb, 3.6, 3.6-fb, 3.7, 3.7-fb, 3.8
  • tcsh
    • 6.00.00, 6.00.01, 6.00.02, 6.00.03, 6.01.00, 6.02.00, 6.03.00, 6.04.00, 6.05.00, 6.06.00, 6.06.01, 6.06.02, 6.06.03, 6.06.04, 6.07.00, 6.07.01, 6.07.02, 6.07.03, 6.07.04, 6.07.05, 6.07.06, 6.07.07, 6.07.08, 6.07.09, 6.07.10, 6.07.12, 6.07.13, 6.08.00, 6.08.01, 6.08.02, 6.08.03, 6.08.04, 6.08.05, 6.08.06, 6.08.07, 6.09.00, 6.09.01, 6.09.02, 6.09.03, 6.09.04, 6.10.00, 6.10.01, 6.10.02, 6.11.00, 6.11.01, 6.11.03, 6.11.04, 6.11.05, 6.12.00, 6.12.01, 6.12.02, 6.12.03, 6.13.00, 6.13.01, 6.13.02, 6.13.03, 6.13.04, 6.13.05, 6.13.06, 6.13.07, 6.13.08, 6.13.09, 6.13.10, 6.14.00, 6.14.01, 6.14.02, 6.14.03, 6.14.04, 6.14.05, 6.14.06, 6.14.07, 6.15.00, 6.15.01, 6.15.02, 6.16.00, 6.16.01, 6.17.00, 6.17.01, 6.17.02, 6.17.03, 6.17.04, 6.17.05, 6.17.06, 6.17.07, 6.17.08, 6.17.09, 6.17.10, 6.18.00, 6.18.01, 6.18.02, 6.18.03, 6.18.04, 6.18.05, 6.19.00, 6.19.01, 6.20.00
  • zsh
    • 3.x series
      • 3.0.8, 3.1.7, 3.1.8, 3.1.9
    • 4.x series
      • 4.0.1, 4.0.2, 4.0.4, 4.0.6, 4.0.7, 4.0.9, 4.2.0, 4.2.1, 4.2.3, 4.2.4, 4.2.5, 4.2.6, 4.2.7
    • 5.x series
      • 5.0.0, 5.0.1, 5.0.2, 5.0.4, 5.0.5, 5.0.6, 5.0.7, 5.0.8, 5.1, 5.1.1, 5.2, 5.3, 5.3.1, 5.4.1, 5.4.2, 5.5, 5.5.1, 5.6, 5.6.1, 5.6.2, 5.7, 5.7.1

Version Numbers

I've attempted to publish as many versions of the shells as I was able to find. Each version is represented as a branch in the git repository, with a tag pointing to the files as they were retrieved from their original source. Any later commits to that branch were done to aid in compilation.

The all-versions file lists every version that would compile. It corresponds to tag names, and you can prefix the version with ms_ to get the branch name. They do not represent the final version number and possibly not the command that's built. In some cases, such as with Bash, the branch might be "4.0" but the final version number is "4.0.0". In other cases, such as with Apple's version of Bash, the branch name is their internal version number and that does correspond to the built binary, but the apple-bash-92 program will report "Bash version 3.2.51(2)" as its version number.

Sorry for the confusion. Here's a few examples.

Shell Tag Branch Command Internal version
Apple Bash 103.50.1 ms_103.50.1 apple-bash-103.50.1 3.2.57(2)-release
Apple Bash 97 ms_97 apple-bash-97 3.2.57(2)-release
Bash 3.0.12 ms_3.0.12 bash-3.00.12 3.00.12(2)-release
Bash 3.2 ms_3.2 bash-3.2.0 3.2.0(2)-release
Bash 4.4.1 ms_4.4.1 bash-4.4.1 4.4.1(1)-release
Dash 0.5.6.1 ms_0.5.6.1 dash-0.5.6.1 none
Fish 2.7.0 ms_2.7.0 fish-2.7.0 2.7.0
Fish 2.7b1 ms_2.7b1 fish-2.7b1 2.7b1
Ksh93 2012-01-01 ms_2012-01-01 ksh93-2012-01-01 JM 93u+ 2012-01-01
Sash 3.7 ms_3.7 sash-3.7 3.7
Sash (plus patches) 3.7-fmb ms_3.7-fmb sash-3.7-fmb 3.7-fmb
Tcsh 6.06 ms_6.06 tcsh-6.06.00 6.06.00
Tcsh 6.20.00 ms_6.20.00 tcsh-6.20.00 6.20.00
Zsh 5.3 ms_5.3 zsh-5.3 5.3
Zsh 5.3.1 ms_5.3.1 zsh-5.3.1 5.3.1
  • Shell: The name of the type of shell that was compiled.
  • Tag: The tag name in our version of the source repository for the original source before any necessary modifications were made. This version number matches the version number of the source distribution.
  • Branch: The branch name in our version of the source repository. This contains additional commits in order to make the source code compile. This version number matches the version number of the source distribution.
  • Command: The executable's name when it is installed to /usr/local/bin/. This version number can be different and matches the internal version where applicable. Notibaly, you can see this more with Apple's Bash and some of the Bash releases, such as "3.2" in the above list.
  • Internal version: What the shell reports as its version. Dash doesn't seem to have this set anywhere. Apple's Bash is especially unhelpful because it reports a version but you can't really use it for determining what version of Bash is running.

In addition to the many executables, there's symlinks to get the most recent version of a particular release. So, running bash-3.2 would actually run bash-3.2.57.

Apple Bash: This has a funky versioning scheme, so use the full version number there when you care about which one you get. You can't run the shell and get the version number because it often reports 3.2.57(2). The symbolic links are created, but are essentially useless.

Dash: There's no way to double-check the version number of the binary beyond feature/bug detection.

Tcsh: I used tar files for the early releases and git tags for later versions, which is why the version number scheme differs.

Zsh: The symbolic links don't work well because the version number doesn't include the patch level if it's zero. Thus, running zsh-5.6 will not run the newest in the 5.6.x series. Instead, you must specify the version number yourself; zsh-5.6.2, zsh-5.6.1, and zsh-5.6 are all different commands. The symlink will exist for zsh-5, which would run the newest in the 5.x series.

Changes To The Shells

Most builds needed changes in order to work within the Docker container. The patches are aimed to be as minimal as possible. All of the source repositories are hosted on GitHub.

About

Scripts and tools to build Multishell Docker image.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published