#
# Conditional build:
+%bcond_with lto # enable link time optimisations (breaks tests)
%bcond_without static # static version of mksh
%bcond_without tests # rtchecks and test.sh checks
+%define vernr %(echo %{version} | tr -d 'a-z')
+
Summary: MirBSD Korn Shell
Summary(pl.UTF-8): Powłoka Korna z MirBSD
Name: mksh
-Version: 50d
-Release: 5
+Version: 59c
+Release: 3
License: BSD
Group: Applications/Shells
Source0: https://www.mirbsd.org/MirOS/dist/mir/mksh/%{name}-R%{version}.tgz
-# Source0-md5: 1c3882c07a760b23df1ad94ad0b4ed2e
+# Source0-md5: 99f8ac3c1d8a30b913d509f1969a4aaa
Source1: %{name}-mkshrc
Source2: get-source.sh
-Patch100: branch.diff
-# Patch100-md5: 224395dd29f7cd25ddcf7135f9e0e6fe
Patch0: %{name}-mkshrc_support.patch
Patch1: %{name}-circumflex.patch
-Patch2: %{name}-no_stop_alias.patch
-Patch3: %{name}-cmdline-length.patch
+Patch2: drop-builtins.patch
URL: https://www.mirbsd.org/mksh.htm
%if %{with tests}
BuildRequires: ed
%prep
%setup -qc
-mv mksh/* .; rmdir mksh
-%patch100 -p3
+%{__mv} mksh/* .; rmdir mksh
%patch0 -p1
%patch1 -p1
%patch2 -p1
-%patch3 -p1
+
+sed -i -e 's|fgrep|grep -F|g' check.t
# sed rules instead of patch (needed update for every release)
sed -i -e 's|\(#define.*MKSH_VERSION.*\)"|\1 @DISTRO@"|g' sh.h
-sed -i -e 's|\(@(#)MIRBSD KSH.*\)|\1 @DISTRO@|g' check.t
+sed -i -e 's|\(KSH R%{vernr}.*\)|\1 @DISTRO@|g' check.t
# fill distro
sed -i -e 's#@DISTRO@#PLD/Linux 3.0#g' check.t sh.h
CFLAGS="%{rpmcflags} -DMKSH_GCC55009" \
LDFLAGS="%{rpmldflags}" \
CPPFLAGS="%{rpmcppflags}" \
-sh ./Build.sh -Q -r -j -c lto
+sh ./Build.sh -Q -r -j %{?with_lto:-c lto}
# skip some tests if not on terminal
if ! tty -s; then
CFLAGS="%{rpmcflags} -DMKSH_GCC55009" \
LDFLAGS="%{rpmldflags} -static" \
CPPFLAGS="%{rpmcppflags}" \
-sh ./Build.sh -Q -r -j -c lto
+sh ./Build.sh -Q -r -j %{?with_lto:-c lto}
%if %{with tests}
./test.sh -v $skip_tests
%files
%defattr(644,root,root,755)
%doc dot.mkshrc
-%config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/mkshrc
+%config(noreplace) %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