1 |
lksh is a variant of mksh intended for legacy scripts and strict |
2 |
POSIX-compatibility |
3 |
|
4 |
Signed-off-by: Haelwenn (lanodan) Monnier <contact@×××××××××.me> |
5 |
--- |
6 |
app-shells/mksh/metadata.xml | 6 ++++++ |
7 |
app-shells/mksh/mksh-57-r2.ebuild | 28 +++++++++++++++++++++++++++- |
8 |
app-shells/mksh/mksh-9999.ebuild | 28 +++++++++++++++++++++++++++- |
9 |
3 files changed, 60 insertions(+), 2 deletions(-) |
10 |
|
11 |
diff --git a/app-shells/mksh/metadata.xml b/app-shells/mksh/metadata.xml |
12 |
index 9df017effeb..c22c0afc77d 100644 |
13 |
--- a/app-shells/mksh/metadata.xml |
14 |
+++ b/app-shells/mksh/metadata.xml |
15 |
@@ -9,4 +9,10 @@ |
16 |
<email>proxy-maint@g.o</email> |
17 |
<name>Proxy Maintainers</name> |
18 |
</maintainer> |
19 |
+ <use> |
20 |
+ <flag name="lksh"> |
21 |
+variant that uses POSIX-compliant arithmetics with the host “long” data type |
22 |
+and is automatically in POSIX mode when called as /bin/sh |
23 |
+ </flag> |
24 |
+ </use> |
25 |
</pkgmetadata> |
26 |
diff --git a/app-shells/mksh/mksh-57-r2.ebuild b/app-shells/mksh/mksh-57-r2.ebuild |
27 |
index ae3367f2066..7d0ae08e130 100644 |
28 |
--- a/app-shells/mksh/mksh-57-r2.ebuild |
29 |
+++ b/app-shells/mksh/mksh-57-r2.ebuild |
30 |
@@ -22,7 +22,7 @@ HOMEPAGE="http://mirbsd.de/mksh" |
31 |
|
32 |
LICENSE="BSD" |
33 |
SLOT="0" |
34 |
-IUSE="static test" |
35 |
+IUSE="lksh static test" |
36 |
|
37 |
DEPEND=" |
38 |
test? ( |
39 |
@@ -33,10 +33,25 @@ DEPEND=" |
40 |
|
41 |
S="${WORKDIR}/${PN}" |
42 |
|
43 |
+src_prepare() { |
44 |
+ default |
45 |
+ if use lksh; then |
46 |
+ cp -pr "${S}" "${S}"_lksh || die |
47 |
+ fi |
48 |
+} |
49 |
+ |
50 |
src_compile() { |
51 |
tc-export CC |
52 |
use static && export LDSTATIC="-static" |
53 |
export CPPFLAGS="${CPPFLAGS} -DMKSH_DEFAULT_PROFILEDIR=\\\"${EPREFIX}/etc\\\"" |
54 |
+ |
55 |
+ if use lksh; then |
56 |
+ pushd "${S}"_lksh >/dev/null || die |
57 |
+ CPPFLAGS="${CPPFLAGS} -DMKSH_BINSHPOSIX -DMKSH_BINSHREDUCED" \ |
58 |
+ sh Build.sh -r -L || die |
59 |
+ popd >/dev/null || die |
60 |
+ fi |
61 |
+ |
62 |
sh Build.sh -r || die |
63 |
} |
64 |
|
65 |
@@ -45,8 +60,19 @@ src_install() { |
66 |
dobin mksh |
67 |
doman mksh.1 |
68 |
dodoc dot.mkshrc |
69 |
+ |
70 |
+ dobin "${S}"_lksh/lksh |
71 |
+ doman "${S}"_lksh/lksh.1 |
72 |
} |
73 |
|
74 |
src_test() { |
75 |
+ einfo "Testing regular mksh." |
76 |
sh test.sh -v || die |
77 |
+ |
78 |
+ if use lksh; then |
79 |
+ einfo "Testing lksh, POSIX long-bit mksh." |
80 |
+ pushd "${S}"_lksh >/dev/null || die |
81 |
+ ./test.sh -v || die |
82 |
+ popd >/dev/null || die |
83 |
+ fi |
84 |
} |
85 |
diff --git a/app-shells/mksh/mksh-9999.ebuild b/app-shells/mksh/mksh-9999.ebuild |
86 |
index ae3367f2066..7d0ae08e130 100644 |
87 |
--- a/app-shells/mksh/mksh-9999.ebuild |
88 |
+++ b/app-shells/mksh/mksh-9999.ebuild |
89 |
@@ -22,7 +22,7 @@ HOMEPAGE="http://mirbsd.de/mksh" |
90 |
|
91 |
LICENSE="BSD" |
92 |
SLOT="0" |
93 |
-IUSE="static test" |
94 |
+IUSE="lksh static test" |
95 |
|
96 |
DEPEND=" |
97 |
test? ( |
98 |
@@ -33,10 +33,25 @@ DEPEND=" |
99 |
|
100 |
S="${WORKDIR}/${PN}" |
101 |
|
102 |
+src_prepare() { |
103 |
+ default |
104 |
+ if use lksh; then |
105 |
+ cp -pr "${S}" "${S}"_lksh || die |
106 |
+ fi |
107 |
+} |
108 |
+ |
109 |
src_compile() { |
110 |
tc-export CC |
111 |
use static && export LDSTATIC="-static" |
112 |
export CPPFLAGS="${CPPFLAGS} -DMKSH_DEFAULT_PROFILEDIR=\\\"${EPREFIX}/etc\\\"" |
113 |
+ |
114 |
+ if use lksh; then |
115 |
+ pushd "${S}"_lksh >/dev/null || die |
116 |
+ CPPFLAGS="${CPPFLAGS} -DMKSH_BINSHPOSIX -DMKSH_BINSHREDUCED" \ |
117 |
+ sh Build.sh -r -L || die |
118 |
+ popd >/dev/null || die |
119 |
+ fi |
120 |
+ |
121 |
sh Build.sh -r || die |
122 |
} |
123 |
|
124 |
@@ -45,8 +60,19 @@ src_install() { |
125 |
dobin mksh |
126 |
doman mksh.1 |
127 |
dodoc dot.mkshrc |
128 |
+ |
129 |
+ dobin "${S}"_lksh/lksh |
130 |
+ doman "${S}"_lksh/lksh.1 |
131 |
} |
132 |
|
133 |
src_test() { |
134 |
+ einfo "Testing regular mksh." |
135 |
sh test.sh -v || die |
136 |
+ |
137 |
+ if use lksh; then |
138 |
+ einfo "Testing lksh, POSIX long-bit mksh." |
139 |
+ pushd "${S}"_lksh >/dev/null || die |
140 |
+ ./test.sh -v || die |
141 |
+ popd >/dev/null || die |
142 |
+ fi |
143 |
} |
144 |
-- |
145 |
2.23.0 |