diff options
author | Matthew T Hoare | 2017-12-10 02:10:11 +0000 |
---|---|---|
committer | Matthew T Hoare | 2017-12-10 02:10:11 +0000 |
commit | 270b8bdc29a33ced59729d40e74d4111f8c7cca8 (patch) | |
tree | 81c228b11fc61c164cf9357a5eee4a865bb3f248 | |
parent | 6e60949fc0f64afd5954b8fa74fbfb82c3d2cef6 (diff) | |
download | aur-270b8bdc29a33ced59729d40e74d4111f8c7cca8.tar.gz |
Fixed https://bugs.archlinux.org/task/56652
-rw-r--r-- | .SRCINFO | 4 | ||||
-rw-r--r-- | PKGBUILD | 2 | ||||
-rw-r--r-- | mksh.install | 37 |
3 files changed, 37 insertions, 6 deletions
@@ -1,9 +1,9 @@ # Generated by mksrcinfo v8 -# Wed Nov 1 17:09:37 UTC 2017 +# Sun Dec 10 02:10:03 UTC 2017 pkgbase = mksh-static-git pkgdesc = The MirBSD Korn Shell - an enhanced version of the public domain ksh (static build, linked with musl; development version) pkgver = 56.r3179.0e478dc - pkgrel = 1 + pkgrel = 2 url = https://www.mirbsd.org/mksh.htm install = mksh.install arch = i686 @@ -6,7 +6,7 @@ pkgname=mksh-static-git _pkgname=mksh _pkgver=R56b pkgver=56.r3179.0e478dc -pkgrel=1 +pkgrel=2 pkgdesc='The MirBSD Korn Shell - an enhanced version of the public domain ksh (static build, linked with musl; development version)' url='https://www.mirbsd.org/mksh.htm' license=('custom') diff --git a/mksh.install b/mksh.install index 20c2f51136de..4abd6346f6e3 100644 --- a/mksh.install +++ b/mksh.install @@ -1,14 +1,45 @@ +pre_install() { + : +} + post_install() { grep -x '/bin/mksh' /etc/shells 2>/dev/null || echo '/bin/mksh' >> /etc/shells + # need to also add /usr/bin/mksh to /etc/shells to avoid https://bugs.archlinux.org/task/55053 grep -x '/usr/bin/mksh' /etc/shells 2>/dev/null || echo '/usr/bin/mksh' >> /etc/shells } +pre_upgrade() { + : +} + post_upgrade() { post_install } -post_remove() { - sed -i -r '/^(\/usr)?\/bin\/mksh$/d' /etc/shells +pre_remove() { + # This is only necessary on alternate shells. sh and bash + # are at the base of Arch and cannot be removed. + # To test this you should have a spare root shell already open. + # Otherwise, if this doesn't work, you will need to learn how to bypass + # the default shell on login. + # http://stackoverflow.com/questions/11059067/what-is-the-nix-command-to-view-a-users-default-login-shell + if getent passwd root | cut -d: -f7 | grep -qle '/bin/mksh'; then + echo '**********************************************' + echo '*** Warning: ROOT HAS mksh as the login shell.' + echo '*** Shell changed to sh to prevent loss of root access.' + echo '**********************************************' + # sh is more likely to guarantee a login than bash because sh is typically + # unmodified. Crappy, but guaranteed. + chsh -s '/bin/sh' + fi + sed -i -r '/^(\/usr)?\/bin\/mksh$/d' '/etc/shells' } -# vim:set ts=2 sw=2 et: +post_remove() { + mandb -q + # /usr/bin/mksh is also detected + if getent passwd | cut -d: -f7 | grep -qle '/bin/mksh'; then + echo '*** Warning: Some users have mksh as their login shell.' + echo '*** Fix promptly to restore access.' + fi +} |