• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

.copr/H08-Feb-2020-4421

.github/ISSUE_TEMPLATE/H08-Feb-2020-2714

bin/H08-Feb-2020-554351

etc/H08-Feb-2020-518480

features/H08-Feb-2020-1,045880

lib/package/H08-Feb-2020-13,19612,862

packaging/H08-Feb-2020-496336

scripts/H03-May-2022-450258

src/H08-Feb-2020-203,370166,562

.clang-formatH A D08-Feb-2020604 2016

.clang-tidyH A D08-Feb-202093 43

.cppcheck.rulesH A D08-Feb-2020792 2724

.cppcheck.suppressionsH A D08-Feb-20201.4 KiB2726

.editorconfigH A D08-Feb-2020207 1411

.gitignoreH A D08-Feb-2020635 3936

.oclintH A D08-Feb-20205.4 KiB131123

.travis.ymlH A D08-Feb-20204.2 KiB9985

CHANGELOG.mdH A D08-Feb-202015.9 KiB295268

CONTRIBUTING.mdH A D08-Feb-202016.5 KiB496362

LICENSEH A D08-Feb-202011 KiB8844

README.mdH A D08-Feb-20208.1 KiB229164

app-compat-travis.ymlH A D08-Feb-20201 KiB3327

config_ast.h.inH A D08-Feb-202011.5 KiB324294

coverity-travis.ymlH A D08-Feb-20201.4 KiB4234

meson.buildH A D08-Feb-202013 KiB311275

README.md

1# This branch is not supported
2
3This branch contains the **ksh2020** version of the AST tools, from January
42020, which primarily written and maintained by @krader1961 and @siteshwar.
5
6This branch is not supported or maintained by AT&T; the repo at
7https://github.com/att/ast only officially hosts ksh93u+ and the experimental
8ksh93v- branch.
9
10See [#1464](https://github.com/att/ast/issues/1464) and
11[#1466](https://github.com/att/ast/issues/1466) for discussion and history of
12this decision.
13
14Please search for forks of this repo if you are looking for ksh2020.
15
16
17# KSH93
18
19This repository contains the AT&T Software Technology (AST) toolkit
20from AT&T Research.  As of November 2017 the development focus has
21been shifted to the `ksh` (or `ksh93`) command and supporting code required
22to build it.
23
24The non-ksh code of the AST project is no longer being actively
25maintained. If you are interested in the non-ksh code see below for
26details on which branches contain the full AST code base.
27
28The project only supports systems where the compiler and underlying
29hardware is ASCII compatible. This includes Linux on IBM zSeries but not
30z/OS. The nascent, incomplete, support for EBCDIC has been removed. See
31[issue #742](https://github.com/att/ast/issues/742).
32
33## Building Korn shell
34
35Building ksh requires the [Meson](http://mesonbuild.com/) build system. To
36build ksh execute these commands from the project root directory:
37
38```
39meson build
40ninja -C build
41```
42
43You can add a `--prefix` flag followed by a path to the `meson build` command
44to specify where the binaries and libraries are installed. The default is
45*/usr/local*.
46
47## Installing
48
49The `ksh` executable, helper libraries and man page can be installed with:
50
51```
52ninja -C build install
53```
54
55## Getting KornShell
56
57### Linux
58Latest builds for Red Hat Enterprise Linux (CentOS) and Fedora can be found in
59[Copr](https://copr.fedorainfracloud.org/coprs/g/ksh/latest/).
60
61Latest builds for openSUSE and Ubuntu can be found in
62[OBS](https://build.opensuse.org/project/show/shells:ksh:new:latest).
63
64See [full list](https://github.com/att/ast/wiki/Packages-for-Linux) of distros
65that ship packages for current development version.
66
67### Windows
68TBD
69
70### macOS
71Using [MacPorts](https://www.macports.org), the latest stable version can be installed using:
72
73```
74sudo port install ksh
75```
76
77Alternately, a development version can be installed using:
78
79```
80sudo port install ksh-devel
81```
82
83## Versioning
84
85We have switched from the legacy versioning scheme to
86[semantic versioning](https://github.com/att/ast/issues/335). The first
87release after the last stable, ksh93u+, release is version 2020.0.0 which has
88numeric version number 20200000. This means you can still evaluate
89`$KSH_VERSION` or `${.sh.version}` in numeric context to determine if the
90current shell is older or newer than a specific release (e.g., 20120801 for
91the ksh93u+ release).
92
93If the shell is built without Git metadata a hardcoded value is used. That
94value will be one of two things. If building from a stable release branch
95it will be whatever value was assigned to that branch; e.g., 2020.0.1.
96If building from the master, experimental, branch it will be the most
97recent major release number and 99 for the minor and patch levels; e.g.,
982020.99.99. This should serve as a warning that you don't really know
99what commit was used when building ksh.
100
101## Contributing changes to the source code
102
103See the
104[contributing guidelines](https://github.com/att/ast/blob/master/CONTRIBUTING.md)
105for information about code style, unit tests, and other topics of interest
106to anyone who wants to modify the source.
107
108## Guidelines for Packagers
109
110See the guidelines for downstream package maintainers [here](https://github.com/att/ast/wiki/Guidelines-for-Packagers).
111
112## Coverity Scan
113
114Latest results of coverity scan can be viewed [here](https://scan.coverity.com/projects/ksh).
115
116## Test Coverage
117
118A code coverage report can be viewed
119[here](http://situ.im/ast/coveragereport/) for GCC on Linux, and
120[here](https://www.skepticism.us/ast/coveragereport/) for LLVM/clang on macOS.
121
122## Working with the full AST source
123
124Warning: Running test cases through the legacy test script may wipe out your home directory
125([See #477](https://github.com/att/ast/issues/477)). This has been fixed in current
126development version.
127
128Full AST source code is available under the `2012-08-01-master` and
129`2016-01-10-beta` branches (see below for more details). Bug fixes to
130these branches are welcome but they are otherwise under low maintenance.
131
132The full AST code includes many tools and libraries, like KSH, NMAKE, SFIO,
133VMALLOC, VCODEX, etc. It also includes efficient replacements for a
134lot of the POSIX tools.  It was designed to be portable across many UNIX
135systems and also works under UWIN on Microsoft Windows (see UWIN repo on
136GitHub under att/uwin).
137
138This software is used to build itself, using NMAKE.
139After cloning this repo, cd to the top directory of it and run:
140
141```
142./bin/package make
143```
144
145__NOTE__: That build command only applies to the legacy branches that include
146the entire AST source. It does not apply to the current `master` branch that
147is focused solely on the `ksh` command and uses the Meson build system.
148
149
150Almost all the tools in this package (including the bin/package script) are
151self-documenting; run <tool> --man (or --html) for the man page for the tool.
152
153(If you were used to the old AST packaging mechanism, on www.research.att.com,
154this repo is equivalent to downloading the INIT and ast-open packages and
155running: ./bin/package read on them).
156
157## Branches
158
159The `master` [branch](https://github.com/att/ast/commits/master) contains
160the current development version of ksh93. It only contains source code
161for ksh93 and the libraries required to build it.
162
163The [2012-08-01-master branch](https://github.com/att/ast/commits/2012-08-01-master)
164contains the last stable release, ksh93u+,
165of full AST source code. It contains one cherry-picked
166[change](https://github.com/att/ast/commit/e79c29295092fe2b2282d134e2b7cce32ec9dcac)
167to allow building on Linux.
168
169The [2016-01-10-beta branch](https://github.com/att/ast/commits/2016-01-10-beta) contains
170the last beta release, ksh93v-, of full AST source code plus a number of patches
171that were later added on top of it. Changes for the legacy AST project are
172normally merged to this branch.
173
174The [gh-pages branch](https://github.com/att/ast/commits/gh-pages)
175will probably be removed. It contains files needed to generate the static
176[AST project page](https://att.github.io/ast/) hosted by GitHub. See
177https://help.github.com/articles/what-is-github-pages/ for more info.
178
179## Licensing
180
181This section needs more detail and clarity. The original `README` document
182said the following:
183
184> Each package is covered by one of the license files
185>
186>   lib/package/LICENSES/<license>
187>
188> where <license> is the license type for the package.  At the top
189> of each license file is a URL; the license covers all software that
190> refers to this URL. For details run
191>
192>   bin/package license [<package>]
193>
194> Any archives, distributions or packages made from source or
195> binaries covered by license(s) must contain the corresponding
196> license file(s).
197
198## Contact Us
199
200The primary mechanism for interacting with this project is the [GitHub
201project](https://github.com/att/ast/) by opening issues and pull-requests
202and watching the project.
203
204### IRC
205
206Use `#ksh` channel on freenode to discuss about AT&T KornShell and related variants.
207
208### Gitter
209
210[ksh93/users](https://gitter.im/ksh93/users) is the Gitter chatroom for
211AT&T KornShell users.
212
213### Mailing lists
214
215You can track announcements and ask question or
216report problems at korn-shell@googlegroups.com or
217https://groups.google.com/d/forum/korn-shell as an alternative to watching
218this Github project.
219
220Archives of the AST mailing lists (which is mostly about ksh) are available at:
221https://marc.info/?l=ast-developers and https://marc.info/?l=ast-users.
222
223__As of 2018-11-01 the AT&T hosted mailing lists no longer respond to
224email.__ Note that the precise date the mailing lists stopped working
225is unknown. That was simply the date it came to our attention. The last
226known message to both mailing lists was sent on 2018-03-15. Ironically,
227since you can't unsubscribe, they still send monthly reminders that you
228are subscribed.
229