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
}