diff options
author | Matthew T Hoare | 2017-12-17 22:57:03 +0000 |
---|---|---|
committer | Matthew T Hoare | 2017-12-17 22:57:03 +0000 |
commit | ade4d1a8bf93d8df62bc76ff81c81d2466efaca0 (patch) | |
tree | 215cd904cee8c25ebb7c7ddd7aba53c25f6cb59f | |
download | aur-ade4d1a8bf93d8df62bc76ff81c81d2466efaca0.tar.gz |
ksh93-git: first commit
-rw-r--r-- | .SRCINFO | 28 | ||||
-rw-r--r-- | LICENSE | 203 | ||||
-rw-r--r-- | PKGBUILD | 68 | ||||
-rw-r--r-- | ksh93.install | 34 | ||||
-rw-r--r-- | sample.kshrc | 91 |
5 files changed, 424 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..c5cd9949ca16 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,28 @@ +# Generated by mksrcinfo v8 +# Sun Dec 17 22:56:07 UTC 2017 +pkgbase = ksh93-git + pkgdesc = AT&T's KornShell (ksh93) from ast-base, Meson Build + pkgver = r271.6aa47e0 + pkgrel = 1 + url = http://kornshell.org/ + install = ksh93.install + arch = x86_64 + license = EPL + license = CPL + makedepends = binutils + makedepends = gcc + makedepends = git + makedepends = meson + depends = glibc + provides = ksh + conflicts = ksh + conflicts = ksh93 + source = ksh93::git+http://github.com/att/ast#branch=master + source = sample.kshrc + source = LICENSE + sha512sums = SKIP + sha512sums = aeb54cb5ec944628ab64a692d364cab14bbc312c1a892b3692058f7f7b1cf72c95a6bfb4a95ffc3c4ddfb8f8ca4d17707023108d5504f912cb3ceb9e8d4da6b3 + sha512sums = 917ae643f241741919eb7f4633ec7b3cd58fb0d19150a017773562c36b15812bcf5f680024994d546ef18d771ab25aefc4bfe57ebd0c08043c9ad17e9cd7e076 + +pkgname = ksh93-git + diff --git a/LICENSE b/LICENSE new file mode 100644 index 000000000000..f735bee0e8d1 --- /dev/null +++ b/LICENSE @@ -0,0 +1,203 @@ +Eclipse Public License - v 1.0 + +THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC +LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM +CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + +1. DEFINITIONS + +"Contribution" means: + +a) in the case of the initial Contributor, the initial code and documentation + distributed under this Agreement, and +b) in the case of each subsequent Contributor: + i) changes to the Program, and + ii) additions to the Program; + + where such changes and/or additions to the Program originate from and are + distributed by that particular Contributor. A Contribution 'originates' + from a Contributor if it was added to the Program by such Contributor + itself or anyone acting on such Contributor's behalf. Contributions do not + include additions to the Program which: (i) are separate modules of + software distributed in conjunction with the Program under their own + license agreement, and (ii) are not derivative works of the Program. + +"Contributor" means any person or entity that distributes the Program. + +"Licensed Patents" mean patent claims licensable by a Contributor which are +necessarily infringed by the use or sale of its Contribution alone or when +combined with the Program. + +"Program" means the Contributions distributed in accordance with this +Agreement. + +"Recipient" means anyone who receives the Program under this Agreement, +including all Contributors. + +2. GRANT OF RIGHTS + a) Subject to the terms of this Agreement, each Contributor hereby grants + Recipient a non-exclusive, worldwide, royalty-free copyright license to + reproduce, prepare derivative works of, publicly display, publicly + perform, distribute and sublicense the Contribution of such Contributor, + if any, and such derivative works, in source code and object code form. + b) Subject to the terms of this Agreement, each Contributor hereby grants + Recipient a non-exclusive, worldwide, royalty-free patent license under + Licensed Patents to make, use, sell, offer to sell, import and otherwise + transfer the Contribution of such Contributor, if any, in source code and + object code form. This patent license shall apply to the combination of + the Contribution and the Program if, at the time the Contribution is + added by the Contributor, such addition of the Contribution causes such + combination to be covered by the Licensed Patents. The patent license + shall not apply to any other combinations which include the Contribution. + No hardware per se is licensed hereunder. + c) Recipient understands that although each Contributor grants the licenses + to its Contributions set forth herein, no assurances are provided by any + Contributor that the Program does not infringe the patent or other + intellectual property rights of any other entity. Each Contributor + disclaims any liability to Recipient for claims brought by any other + entity based on infringement of intellectual property rights or + otherwise. As a condition to exercising the rights and licenses granted + hereunder, each Recipient hereby assumes sole responsibility to secure + any other intellectual property rights needed, if any. For example, if a + third party patent license is required to allow Recipient to distribute + the Program, it is Recipient's responsibility to acquire that license + before distributing the Program. + d) Each Contributor represents that to its knowledge it has sufficient + copyright rights in its Contribution, if any, to grant the copyright + license set forth in this Agreement. + +3. REQUIREMENTS + +A Contributor may choose to distribute the Program in object code form under +its own license agreement, provided that: + + a) it complies with the terms and conditions of this Agreement; and + b) its license agreement: + i) effectively disclaims on behalf of all Contributors all warranties + and conditions, express and implied, including warranties or + conditions of title and non-infringement, and implied warranties or + conditions of merchantability and fitness for a particular purpose; + ii) effectively excludes on behalf of all Contributors all liability for + damages, including direct, indirect, special, incidental and + consequential damages, such as lost profits; + iii) states that any provisions which differ from this Agreement are + offered by that Contributor alone and not by any other party; and + iv) states that source code for the Program is available from such + Contributor, and informs licensees how to obtain it in a reasonable + manner on or through a medium customarily used for software exchange. + +When the Program is made available in source code form: + + a) it must be made available under this Agreement; and + b) a copy of this Agreement must be included with each copy of the Program. + Contributors may not remove or alter any copyright notices contained + within the Program. + +Each Contributor must identify itself as the originator of its Contribution, +if +any, in a manner that reasonably allows subsequent Recipients to identify the +originator of the Contribution. + +4. COMMERCIAL DISTRIBUTION + +Commercial distributors of software may accept certain responsibilities with +respect to end users, business partners and the like. While this license is +intended to facilitate the commercial use of the Program, the Contributor who +includes the Program in a commercial product offering should do so in a manner +which does not create potential liability for other Contributors. Therefore, +if a Contributor includes the Program in a commercial product offering, such +Contributor ("Commercial Contributor") hereby agrees to defend and indemnify +every other Contributor ("Indemnified Contributor") against any losses, +damages and costs (collectively "Losses") arising from claims, lawsuits and +other legal actions brought by a third party against the Indemnified +Contributor to the extent caused by the acts or omissions of such Commercial +Contributor in connection with its distribution of the Program in a commercial +product offering. The obligations in this section do not apply to any claims +or Losses relating to any actual or alleged intellectual property +infringement. In order to qualify, an Indemnified Contributor must: +a) promptly notify the Commercial Contributor in writing of such claim, and +b) allow the Commercial Contributor to control, and cooperate with the +Commercial Contributor in, the defense and any related settlement +negotiations. The Indemnified Contributor may participate in any such claim at +its own expense. + +For example, a Contributor might include the Program in a commercial product +offering, Product X. That Contributor is then a Commercial Contributor. If +that Commercial Contributor then makes performance claims, or offers +warranties related to Product X, those performance claims and warranties are +such Commercial Contributor's responsibility alone. Under this section, the +Commercial Contributor would have to defend claims against the other +Contributors related to those performance claims and warranties, and if a +court requires any other Contributor to pay any damages as a result, the +Commercial Contributor must pay those damages. + +5. NO WARRANTY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR +IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, +NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each +Recipient is solely responsible for determining the appropriateness of using +and distributing the Program and assumes all risks associated with its +exercise of rights under this Agreement , including but not limited to the +risks and costs of program errors, compliance with applicable laws, damage to +or loss of data, programs or equipment, and unavailability or interruption of +operations. + +6. DISCLAIMER OF LIABILITY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY +CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION +LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE +EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY +OF SUCH DAMAGES. + +7. GENERAL + +If any provision of this Agreement is invalid or unenforceable under +applicable law, it shall not affect the validity or enforceability of the +remainder of the terms of this Agreement, and without further action by the +parties hereto, such provision shall be reformed to the minimum extent +necessary to make such provision valid and enforceable. + +If Recipient institutes patent litigation against any entity (including a +cross-claim or counterclaim in a lawsuit) alleging that the Program itself +(excluding combinations of the Program with other software or hardware) +infringes such Recipient's patent(s), then such Recipient's rights granted +under Section 2(b) shall terminate as of the date such litigation is filed. + +All Recipient's rights under this Agreement shall terminate if it fails to +comply with any of the material terms or conditions of this Agreement and does +not cure such failure in a reasonable period of time after becoming aware of +such noncompliance. If all Recipient's rights under this Agreement terminate, +Recipient agrees to cease use and distribution of the Program as soon as +reasonably practicable. However, Recipient's obligations under this Agreement +and any licenses granted by Recipient relating to the Program shall continue +and survive. + +Everyone is permitted to copy and distribute copies of this Agreement, but in +order to avoid inconsistency the Agreement is copyrighted and may only be +modified in the following manner. The Agreement Steward reserves the right to +publish new versions (including revisions) of this Agreement from time to +time. No one other than the Agreement Steward has the right to modify this +Agreement. The Eclipse Foundation is the initial Agreement Steward. The +Eclipse Foundation may assign the responsibility to serve as the Agreement +Steward to a suitable separate entity. Each new version of the Agreement will +be given a distinguishing version number. The Program (including +Contributions) may always be distributed subject to the version of the +Agreement under which it was received. In addition, after a new version of the +Agreement is published, Contributor may elect to distribute the Program +(including its Contributions) under the new version. Except as expressly +stated in Sections 2(a) and 2(b) above, Recipient receives no rights or +licenses to the intellectual property of any Contributor under this Agreement, +whether expressly, by implication, estoppel or otherwise. All rights in the +Program not expressly granted under this Agreement are reserved. + +This Agreement is governed by the laws of the State of New York and the +intellectual property laws of the United States of America. No party to this +Agreement will bring a legal action under this Agreement more than one year +after the cause of action arose. Each party waives its rights to a jury trial in +any resulting litigation. diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..f2c2b5035759 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,68 @@ +# Maintainer: Head_on_a_Stick <matthew.t.hoare dot gmail at com> + +_pkgname='ksh93' +pkgname="${_pkgname}-git" +pkgver=r271.6aa47e0 +pkgrel=1 +pkgdesc="AT&T's KornShell (${_pkgname}) from ast-base, Meson Build" +arch=('x86_64') +url='http://kornshell.org/' +license=('EPL' 'CPL') +depends=('glibc') +makedepends=('binutils' 'gcc' 'git' 'meson') +conflicts=('ksh' 'ksh93') +provides=('ksh') +install='ksh93.install' +source=("${_pkgname}::git+http://github.com/att/ast#branch=master" +'sample.kshrc' +'LICENSE') +sha512sums=('SKIP' +'aeb54cb5ec944628ab64a692d364cab14bbc312c1a892b3692058f7f7b1cf72c95a6bfb4a95ffc3c4ddfb8f8ca4d17707023108d5504f912cb3ceb9e8d4da6b3' +'917ae643f241741919eb7f4633ec7b3cd58fb0d19150a017773562c36b15812bcf5f680024994d546ef18d771ab25aefc4bfe57ebd0c08043c9ad17e9cd7e076') + +pkgver() { + cd "${_pkgname}" + printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" +} + +build() { + cd "${srcdir}/${_pkgname}" + meson build + ninja -C build +} + +package() { + cd "$srcdir" + install -dm 755 "${pkgdir}/usr/share/ksh" + install -dm 755 "${pkgdir}/usr/share/ksh/functions" + install -dm 755 "${pkgdir}/usr/share/doc/ksh" + install -dm 755 "${pkgdir}/usr/share/licenses/ksh" + install -Dm 644 LICENSE "${pkgdir}/usr/share/licenses/ksh/LICENCE" + install -Dm 644 sample.kshrc "${pkgdir}/etc/skel/.kshrc" + cd "${srcdir}/$_pkgname" + install -Dm 644 "src/cmd/${_pkgname}/nval.3" "${pkgdir}/usr/share/man/man3/nval.3" + install -Dm 644 "src/cmd/${_pkgname}/shell.3" "${pkgdir}/usr/share/man/man3/shell.3" + install -Dm 644 "src/cmd/${_pkgname}/ksh.1" "${pkgdir}/usr/share/man/man1/ksh.1" + local _man + for _man in 'ksh93' 'rksh' 'rksh93'; do + ln -sf 'ksh.1' "${pkgdir}/usr/share/man/man1/${_man}.1" + done + local _fun + for _fun in 'dirs' 'popd' 'pushd'; do + install -Dm 644 "src/cmd/${_pkgname}/fun/${_fun}" "${pkgdir}/usr/share/ksh/functions/${_fun}" + done + local _dox + for _dox in 'builtins.mm' 'COMPATIBILITY' 'DESIGN' 'OBSOLETE' 'PROMO.mm' 'README' 'RELEASE' 'RELEASE88' 'RELEASE93' 'TYPES'; do + install -Dm 644 "src/cmd/${_pkgname}/${_dox}" "${pkgdir}/usr/share/doc/ksh/${_dox}" + done + install -Dm 755 "build/src/cmd/${_pkgname}/ksh" "${pkgdir}/usr/bin/ksh" + local _exe + for _exe in 'ksh93' 'rksh' 'rksh93'; do + ln -sf 'ksh' "${pkgdir}/usr/bin/${_exe}" + done + install -Dm 755 "build/src/cmd/${_pkgname}/shcomp" "${pkgdir}/usr/bin/shcomp" + local _lib + for _lib in 'libast' 'libcmd' 'libcoshell'; do + install -Dm 755 "build/src/lib/${_lib}/${_lib}.so" "${pkgdir}/usr/lib/${_lib}.so" + done +} diff --git a/ksh93.install b/ksh93.install new file mode 100644 index 000000000000..2f098b9162ef --- /dev/null +++ b/ksh93.install @@ -0,0 +1,34 @@ +pre_install() { + : +} + +post_install() { + grep -qle '/bin/ksh$' '/etc/shells' || echo $'/usr/bin/ksh\n/bin/ksh' >> '/etc/shells' +} + +pre_upgrade() { + : +} + +post_upgrade() { + post_install +} + +pre_remove() { + if getent passwd root | cut -d: -f7 | grep -qle '/bin/ksh'; then + echo '**************************************************' + echo '*** Warning: root has ksh as the login shell.' + echo '*** Shell changed to sh to prevent loss of access.' + echo '**************************************************' + chsh -s '/bin/sh' + fi + sed -i -e '/^\/bin\/ksh$/d' -e '/^\/usr\/bin\/ksh$/d' '/etc/shells' +} + +post_remove() { + # /usr/bin/ksh is also detected + if getent passwd | cut -d: -f7 | grep -qle '/bin/ksh'; then + echo '*** Warning: Some users have ksh as their login shell.' + echo '*** Fix promptly to restore access.' + fi +} diff --git a/sample.kshrc b/sample.kshrc new file mode 100644 index 000000000000..ae6834b370d9 --- /dev/null +++ b/sample.kshrc @@ -0,0 +1,91 @@ +# This file contains examples of some of the things you may want to +# include in a user startup file. + +# skip this setup for non-interactive shells +[[ -o interactive && -t 0 ]] || return + +# disable core dumps +ulimit -c 0 + +# Environment variables. These could go in .profile if you prefer +export VISUAL=vi +export EDITOR=$VISUAL +export PAGER=less +export GZIP=-9 + +# set some shell options +set -o emacs -o trackall -o globstar + +# specify search path for autoloadable functions +FPATH=/usr/share/ksh/functions:~/.func + +# avoid certain file types in completion +FIGNORE='@(*.o|~*)' + +# save more commands in history +HISTSIZE=500 +HISTEDIT=$EDITOR + +# aliases for various command shortcuts +alias ll='ls -lFb' +alias la='ls -LaFb' +alias pu='ps -fu $USER' +alias md=mkdir +alias rd=rmdir + +# avoid problems with long argument lists for some commands (like xargs) +alias cp='command -x cp' mv='command -x mv' grep='command -x grep' + +# some short functions + +# empty line +empty() { echo $'\e[3J'; } + +# man page viewer +mere() { nroff -man -Tman $1 | ${MANPAGER:-less}; } + +# view/manipulate and export environment variables +setenv() { + case $# in + 0) export ;; + 1) export "$1"= ;; + *) export "$1"="$2" ;; + esac + } + +# Use keyboard trap to map keys to other keys +# note that escape sequences vary for different terminals so these +# may not work for you +trap '.sh.edchar=${keymap[${.sh.edchar}]:-${.sh.edchar}}' KEYBD +keymap=( + [$'\eOD']=$'\eb' # Ctrl-Left -> move word left + [$'\eOC']=$'\ef' # Ctrl-Right -> move word right + [$'\e[3~']=$'\cd' # Delete -> delete to right + [$'\e[1~']=$'\ca' # Home -> move to beginning of line + [$'\e[4~']=$'\ce' # End -> move to end of line +) + +# keep a shortened version of the current directory for the prompt +function _cd { + typeset -n dir=HOME + + "cd" "$@" + + if [[ $PWD = $HOME* && $HOME != / ]]; then + _pwd=\~${PWD#$HOME} + return + fi + + for dir in JAVA_HOME GNOMEDIR; do + if [[ -n $dir && $PWD = $dir* ]]; then + _pwd="\$${!dir}${PWD#$dir}" + return + fi + done + _pwd="$PWD" +} +alias cd=_cd +_cd . + +# put the current directory and history number in the prompt +PS1='$_pwd [!]\$ ' |