Summary: MirBSD Korn Shell
Summary(pl.UTF-8): Powłoka Korna z MirBSD
Name: mksh
-Version: 40
-Release: 1
+Version: 40d
+Release: 2
License: BSD
Group: Applications/Shells
Source0: http://www.mirbsd.org/MirOS/dist/mir/mksh/%{name}-R%{version}.cpio.gz
-# Source0-md5: 395a6c5f39c7e2afd8f6504d90ca90bd
+# Source0-md5: c6428401103367730a95b99284bf47dc
Source1: %{name}-mkshrc
Patch0: %{name}-mkshrc_support.patch
+Patch1: %{name}-circumflex.patch
+Patch2: %{name}-no_stop_alias.patch
+Patch3: %{name}-distro.patch
+Patch4: %{name}-cmdline-length.patch
URL: https://www.mirbsd.org/mksh.htm
%if %{with tests}
BuildRequires: ed
mv mksh/* .; rmdir mksh
%patch0 -p0
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
+
+sed -i -e 's#@DISTRO@#PLD/Linux 3.0#g' check.t sh.h
%build
install -d out
CC="%{__cc}" \
-CFLAGS="%{rpmcppflags} %{rpmcflags}" \
+CFLAGS="%{rpmcflags}" \
LDFLAGS="%{rpmldflags}" \
-sh ./Build.sh -Q -r -j
+CPPFLAGS="-DMKSH_BINSHREDUCED=1 %{rpmcppflags}" \
+sh ./Build.sh -Q -r -j -c lto
+
+# skip some tests if not on terminal
+if ! tty -s; then
+ skip_tests="-C regress:no-ctty"
+fi
-%{?with_tests:./test.sh -v}
+%{?with_tests:./test.sh -v $skip_tests}
mv mksh out/mksh.dynamic
%if %{with static}
CC="%{__cc}" \
-CFLAGS="%{rpmcppflags} %{rpmcflags}" \
+CFLAGS="%{rpmcflags}" \
LDFLAGS="%{rpmldflags} -static" \
-sh ./Build.sh -Q -r -j
+CPPFLAGS="-DMKSH_BINSHREDUCED=1 %{rpmcppflags}" \
+sh ./Build.sh -Q -r -j -c lto
-%{?with_tests:./test.sh -v}
+%{?with_tests:./test.sh -v $skip_tests}
mv mksh out/mksh.static
%endif
install -D %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/mkshrc
ln -sf mksh $RPM_BUILD_ROOT%{_bindir}/sh
+# some pdksh scripts used that
+ln -sf mksh $RPM_BUILD_ROOT%{_bindir}/ksh
+
%clean
rm -rf $RPM_BUILD_ROOT
-%post -p %add_etc_shells -p /bin/sh /bin/mksh
-%preun -p %remove_etc_shells -p /bin/sh /bin/mksh
+%post -p %add_etc_shells -p /bin/sh /bin/ksh /bin/mksh
+%preun -p %remove_etc_shells -p /bin/sh /bin/ksh /bin/mksh
+
+%posttrans -p %add_etc_shells -p /bin/sh /bin/ksh
-%posttrans -p %add_etc_shells -p /bin/sh
%post static -p %add_etc_shells -p /bin/mksh.static
%preun static -p %remove_etc_shells -p /bin/mksh.static
%doc dot.mkshrc
%config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/mkshrc
%attr(755,root,root) %{_bindir}/mksh
+%attr(755,root,root) %{_bindir}/ksh
%attr(755,root,root) %{_bindir}/sh
%{_mandir}/man1/mksh.1*
%{_mandir}/man1/sh.1*