4 Summary: MirBSD Korn Shell
5 Summary(pl.UTF-8): Powłoka Korna z MirBSD
10 Group: Applications/Shells
11 Source0: http://www.mirbsd.org/MirOS/dist/mir/mksh/%{name}-R%{version}.tgz
12 # Source0-md5: 70eca50d9340412714ef09b7060ebde9
13 Source1: %{name}-mkshrc
14 Patch0: %{name}-mkshrc_support.patch
15 Patch1: %{name}-circumflex.patch
16 Patch2: %{name}-no_stop_alias.patch
17 Patch3: %{name}-distro.patch
18 Patch4: %{name}-cmdline-length.patch
19 URL: https://www.mirbsd.org/mksh.htm
22 BuildRequires: perl-base
24 %{?with_static:BuildRequires: glibc-static}
25 BuildRequires: rpmbuild(macros) >= 1.462
26 # is needed for /etc directory existence
28 Requires: setup >= 2.4.6-2
30 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
35 mksh is the MirBSD enhanced version of the Public Domain Korn shell
36 (pdksh), a Bourne-compatible shell which is largely similar to the
37 original AT&T Korn shell. It includes bug fixes and feature
38 improvements in order to produce a modern, robust shell good for
39 interactive and especially script use. It has UTF-8 support in the
40 emacs command line editing mode; corresponds to OpenBSD 4.2-current
41 ksh sans GNU bash-like $PS1; the build environment requirements are
42 autoconfigured; throughout code simplification/bugfix/enhancement has
43 been done, and the shell has extended compatibility to other modern
46 %description -l pl.UTF-8
47 mksh to pochodząca z MirBSD rozszerzona wersja powłoki Public Domain
48 Korn Shell (pdksh) - kompatybilnej z powłoką Bourne'a, w większości
49 zbliżonej do oryginalnej powłoki Korna z AT&T. Zawiera poprawki błędów
50 i rozszerzenia mające na celu stworzenie współczesnej powłoki o
51 bogatych możliwościach do użytku interaktywnego i (zwłaszcza) w
52 skryptach. Ma obsługę UTF-8 w trybie edycji linii poleceń w stylu
53 emacsa; $PS1 odpowiada temu z ksh obecnym w OpenBSD 4.2-current;
54 środowisko budowania jest automatycznie konfigurowane; dzięki
55 wykonanym uproszczeniom kodu, poprawkom i rozszerzeniom powłoka ma
56 rozszerzoną kompatybilność z innymi współczesnymi powłokami.
59 Summary: Statically linked the MirBSD enhanced version of pdksh
60 Summary(pl.UTF-8): Skonsolidowana statycznie powłoka mksh
61 Group: Applications/Shells
62 # requires base for /etc/mkshrc?
63 Requires: %{name} = %{version}-%{release}
66 mksh is the MirBSD enhanced version of the Public Domain Korn shell
67 (pdksh), a Bourne-compatible shell which is largely similar to the
68 original AT&T Korn shell.
70 This packege contains statically linked version of mksh.
72 %description static -l pl.UTF-8
73 mksh to pochodząca z MirBSD rozszerzona wersja powłoki Public Domain
74 Korn Shell (pdksh) - kompatybilnej z powłoką Bourne'a, w większości
75 zbliżonej do oryginalnej powłoki Korna z AT&T.
77 W tym pakiecie jest mksh skonsolidowany statycznie.
81 gzip -dc %{SOURCE0} | cpio -mid
82 mv mksh/* .; rmdir mksh
90 sed -i -e 's#@DISTRO@#PLD/Linux 3.0#g' check.t sh.h
92 # we'll need this later due to -DMKSH_GCC55009
97 print -r -- $((x++)):$sari=$uari.
99 print -r -- $((x++)):$sari=$uari.
100 sari=2147483647 uari=2147483647
101 print -r -- $((x++)):$sari=$uari.
103 print -r -- $((x++)):$sari=$uari.
105 let 'sari *= 2' 'uari *= 2'
107 print -r -- $((x++)):$sari=$uari.
109 print -r -- $((x++)):$sari=$uari.
110 sari=-2147483648 uari=-2147483648
111 print -r -- $((x++)):$sari=$uari.
113 print -r -- $((x++)):$sari=$uari.
116 cat >rtchecks.expected <<'EOF'
119 2:2147483647=2147483647.
120 3:-2147483648=2147483648.
123 6:-2147483648=2147483648.
124 7:2147483647=2147483647.
131 CFLAGS="%{rpmcflags} -DMKSH_GCC55009" \
132 LDFLAGS="%{rpmldflags}" \
133 CPPFLAGS="%{rpmcppflags}" \
134 sh ./Build.sh -Q -r -j -c lto
136 # skip some tests if not on terminal
138 skip_tests="-C regress:no-ctty"
142 ./mksh rtchecks >rtchecks.got 2>&1
143 if ! cmp --quiet rtchecks.got rtchecks.expected ; then
144 echo "rtchecks failed"
145 diff -Naurp %{SOURCE3} rtchecks.got
148 ./test.sh -v $skip_tests
150 mv mksh out/mksh.dynamic
154 CFLAGS="%{rpmcflags} -DMKSH_GCC55009" \
155 LDFLAGS="%{rpmldflags} -static" \
156 CPPFLAGS="%{rpmcppflags}" \
157 sh ./Build.sh -Q -r -j -c lto
160 ./test.sh -v $skip_tests
161 ./mksh rtchecks >rtchecks.got 2>&1
162 if ! cmp --quiet rtchecks.got rtchecks.expected ; then
163 echo "rtchecks failed"
164 diff -Naurp %{SOURCE3} rtchecks.got
168 mv mksh out/mksh.static
172 rm -rf $RPM_BUILD_ROOT
173 install -d $RPM_BUILD_ROOT{%{_bindir},%{_mandir}/man1}
174 install -p out/mksh.dynamic $RPM_BUILD_ROOT%{_bindir}/mksh
175 %{?with_static:install -p out/mksh.static $RPM_BUILD_ROOT%{_bindir}/mksh.static}
177 cp -a mksh.1 $RPM_BUILD_ROOT%{_mandir}/man1/mksh.1
178 echo ".so mksh.1" > $RPM_BUILD_ROOT%{_mandir}/man1/sh.1
180 install -D %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/mkshrc
181 ln -sf mksh $RPM_BUILD_ROOT%{_bindir}/sh
183 # some pdksh scripts used that
184 ln -sf mksh $RPM_BUILD_ROOT%{_bindir}/ksh
187 rm -rf $RPM_BUILD_ROOT
189 %post -p %add_etc_shells -p /bin/sh /bin/ksh /bin/mksh
190 %preun -p %remove_etc_shells -p /bin/sh /bin/ksh /bin/mksh
192 %posttrans -p %add_etc_shells -p /bin/sh /bin/ksh
195 %post static -p %add_etc_shells -p /bin/mksh.static
196 %preun static -p %remove_etc_shells -p /bin/mksh.static
199 %defattr(644,root,root,755)
201 %config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/mkshrc
202 %attr(755,root,root) %{_bindir}/mksh
203 %attr(755,root,root) %{_bindir}/ksh
204 %attr(755,root,root) %{_bindir}/sh
205 %{_mandir}/man1/mksh.1*
206 %{_mandir}/man1/sh.1*
210 %defattr(644,root,root,755)
211 %attr(755,root,root) %{_bindir}/mksh.static