commit:     5d643560ce412eeb1217d0e48642b71ad6e81b56
Author:     Haelwenn (lanodan) Monnier <contact <AT> hacktivis <DOT> me>
AuthorDate: Mon Nov 25 07:27:21 2019 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Dec  1 23:24:22 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5d643560

app-shells/mksh: Add USE=lksh

lksh is a variant of mksh intended for legacy scripts and strict
POSIX-compatibility

Signed-off-by: Haelwenn (lanodan) Monnier <contact <AT> hacktivis.me>
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 app-shells/mksh/metadata.xml      |  6 ++++++
 app-shells/mksh/mksh-57-r2.ebuild | 30 +++++++++++++++++++++++++++++-
 app-shells/mksh/mksh-9999.ebuild  | 30 +++++++++++++++++++++++++++++-
 3 files changed, 64 insertions(+), 2 deletions(-)

diff --git a/app-shells/mksh/metadata.xml b/app-shells/mksh/metadata.xml
index 9df017effeb..c22c0afc77d 100644
--- a/app-shells/mksh/metadata.xml
+++ b/app-shells/mksh/metadata.xml
@@ -9,4 +9,10 @@
                <email>[email protected]</email>
                <name>Proxy Maintainers</name>
        </maintainer>
+       <use>
+               <flag name="lksh">
+variant that uses POSIX-compliant arithmetics with the host “long” data type 
+and is automatically in POSIX mode when called as /bin/sh
+               </flag>
+       </use>
 </pkgmetadata>

diff --git a/app-shells/mksh/mksh-57-r2.ebuild 
b/app-shells/mksh/mksh-57-r2.ebuild
index b818b1caf1a..ff84abaff24 100644
--- a/app-shells/mksh/mksh-57-r2.ebuild
+++ b/app-shells/mksh/mksh-57-r2.ebuild
@@ -23,7 +23,7 @@ HOMEPAGE="http://mirbsd.de/mksh";
 
 LICENSE="BSD"
 SLOT="0"
-IUSE="static test"
+IUSE="lksh static test"
 RESTRICT="!test? ( test )"
 
 DEPEND="
@@ -35,10 +35,25 @@ DEPEND="
 
 S="${WORKDIR}/${PN}"
 
+src_prepare() {
+       default
+       if use lksh; then
+               cp -pr "${S}" "${S}"_lksh || die
+       fi
+}
+
 src_compile() {
        tc-export CC
        use static && export LDSTATIC="-static"
        export CPPFLAGS="${CPPFLAGS} 
-DMKSH_DEFAULT_PROFILEDIR=\\\"${EPREFIX}/etc\\\""
+
+       if use lksh; then
+               pushd "${S}"_lksh >/dev/null || die
+               CPPFLAGS="${CPPFLAGS} -DMKSH_BINSHPOSIX -DMKSH_BINSHREDUCED" \
+                       sh Build.sh -r -L || die
+               popd >/dev/null || die
+       fi
+
        sh Build.sh -r || die
 }
 
@@ -47,8 +62,21 @@ src_install() {
        dobin mksh
        doman mksh.1
        dodoc dot.mkshrc
+
+       if use lksh; then
+               dobin "${S}"_lksh/lksh
+               doman "${S}"_lksh/lksh.1
+       fi
 }
 
 src_test() {
+       einfo "Testing regular mksh."
        ./mksh test.sh -v || die
+
+       if use lksh; then
+               einfo "Testing lksh, POSIX long-bit mksh."
+               pushd "${S}"_lksh >/dev/null || die
+               ./lksh test.sh -v || die
+               popd >/dev/null || die
+       fi
 }

diff --git a/app-shells/mksh/mksh-9999.ebuild b/app-shells/mksh/mksh-9999.ebuild
index b818b1caf1a..ff84abaff24 100644
--- a/app-shells/mksh/mksh-9999.ebuild
+++ b/app-shells/mksh/mksh-9999.ebuild
@@ -23,7 +23,7 @@ HOMEPAGE="http://mirbsd.de/mksh";
 
 LICENSE="BSD"
 SLOT="0"
-IUSE="static test"
+IUSE="lksh static test"
 RESTRICT="!test? ( test )"
 
 DEPEND="
@@ -35,10 +35,25 @@ DEPEND="
 
 S="${WORKDIR}/${PN}"
 
+src_prepare() {
+       default
+       if use lksh; then
+               cp -pr "${S}" "${S}"_lksh || die
+       fi
+}
+
 src_compile() {
        tc-export CC
        use static && export LDSTATIC="-static"
        export CPPFLAGS="${CPPFLAGS} 
-DMKSH_DEFAULT_PROFILEDIR=\\\"${EPREFIX}/etc\\\""
+
+       if use lksh; then
+               pushd "${S}"_lksh >/dev/null || die
+               CPPFLAGS="${CPPFLAGS} -DMKSH_BINSHPOSIX -DMKSH_BINSHREDUCED" \
+                       sh Build.sh -r -L || die
+               popd >/dev/null || die
+       fi
+
        sh Build.sh -r || die
 }
 
@@ -47,8 +62,21 @@ src_install() {
        dobin mksh
        doman mksh.1
        dodoc dot.mkshrc
+
+       if use lksh; then
+               dobin "${S}"_lksh/lksh
+               doman "${S}"_lksh/lksh.1
+       fi
 }
 
 src_test() {
+       einfo "Testing regular mksh."
        ./mksh test.sh -v || die
+
+       if use lksh; then
+               einfo "Testing lksh, POSIX long-bit mksh."
+               pushd "${S}"_lksh >/dev/null || die
+               ./lksh test.sh -v || die
+               popd >/dev/null || die
+       fi
 }

Reply via email to