]> git.pld-linux.org Git - packages/mksh.git/blobdiff - mksh.spec
- up to 45
[packages/mksh.git] / mksh.spec
index 20ae3ab48ecb0ed0179eb15d0221bc6a40c0338c..dcb7768f6b01bdcbdcbcbc0e0ca48723b080d6b0 100644 (file)
--- a/mksh.spec
+++ b/mksh.spec
@@ -1,22 +1,23 @@
-%bcond_without static
-%bcond_without tests
+#
+# Conditional build:
+%bcond_without static  # static version of mksh
+%bcond_without tests   # rtchecks and test.sh checks
+#
 #
 Summary:       MirBSD Korn Shell
 Summary(pl.UTF-8):     Powłoka Korna z MirBSD
 Name:          mksh
-Version:       40e
+Version:       45
 Release:       1
 License:       BSD
 Group:         Applications/Shells
-Source0:       http://www.mirbsd.org/MirOS/dist/mir/mksh/%{name}-R%{version}.cpio.gz
-# Source0-md5: d9a2df50c09692fc24d52ee9cf3bb789
+Source0:       http://www.mirbsd.org/MirOS/dist/mir/mksh/%{name}-R%{version}.tgz
+# Source0-md5: d3d90973119ae689d5300b690600e1dc
 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
-Patch5:                %{name}-tty_close.patch
+Patch3:                %{name}-cmdline-length.patch
 URL:           https://www.mirbsd.org/mksh.htm
 %if %{with tests}
 BuildRequires: ed
@@ -86,16 +87,57 @@ mv mksh/* .; rmdir mksh
 %patch1 -p1
 %patch2 -p1
 %patch3 -p1
-%patch4 -p1
-%patch5 -p1
 
+# 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
+
+# fill distro
 sed -i -e 's#@DISTRO@#PLD/Linux 3.0#g' check.t sh.h
+# sanity checks
+grep PLD/Linux check.t || exit 1
+grep PLD/Linux sh.h || exit 1
+
+# we'll need this later due to -DMKSH_GCC55009
+cat >rtchecks <<'EOF'
+typeset -i sari=0
+typeset -Ui uari=0
+typeset -i x=0
+print -r -- $((x++)):$sari=$uari.
+let --sari --uari
+print -r -- $((x++)):$sari=$uari.
+sari=2147483647 uari=2147483647
+print -r -- $((x++)):$sari=$uari.
+let ++sari ++uari
+print -r -- $((x++)):$sari=$uari.
+let --sari --uari
+let 'sari *= 2' 'uari *= 2'
+let ++sari ++uari
+print -r -- $((x++)):$sari=$uari.
+let ++sari ++uari
+print -r -- $((x++)):$sari=$uari.
+sari=-2147483648 uari=-2147483648
+print -r -- $((x++)):$sari=$uari.
+let --sari --uari
+print -r -- $((x++)):$sari=$uari.
+EOF
+
+cat >rtchecks.expected <<'EOF'
+0:0=0.
+1:-1=4294967295.
+2:2147483647=2147483647.
+3:-2147483648=2147483648.
+4:-1=4294967295.
+5:0=0.
+6:-2147483648=2147483648.
+7:2147483647=2147483647.
+EOF
 
 %build
 install -d out
 
 CC="%{__cc}" \
-CFLAGS="%{rpmcflags}" \
+CFLAGS="%{rpmcflags} -DMKSH_GCC55009" \
 LDFLAGS="%{rpmldflags}" \
 CPPFLAGS="%{rpmcppflags}" \
 sh ./Build.sh -Q -r -j -c lto
@@ -105,17 +147,33 @@ if ! tty -s; then
        skip_tests="-C regress:no-ctty"
 fi
 
-%{?with_tests:./test.sh -v $skip_tests}
+%if %{with tests}
+./mksh rtchecks >rtchecks.got 2>&1
+if ! cmp --quiet rtchecks.got rtchecks.expected ; then
+       echo "rtchecks failed"
+       diff -Naurp %{SOURCE3} rtchecks.got
+       exit 1
+fi
+./test.sh -v $skip_tests
+%endif
 mv mksh out/mksh.dynamic
 
 %if %{with static}
 CC="%{__cc}" \
-CFLAGS="%{rpmcflags}" \
+CFLAGS="%{rpmcflags} -DMKSH_GCC55009" \
 LDFLAGS="%{rpmldflags} -static" \
 CPPFLAGS="%{rpmcppflags}" \
 sh ./Build.sh -Q -r -j -c lto
 
-%{?with_tests:./test.sh -v $skip_tests}
+%if %{with tests}
+./test.sh -v $skip_tests
+./mksh rtchecks >rtchecks.got 2>&1
+if ! cmp --quiet rtchecks.got rtchecks.expected ; then
+       echo "rtchecks failed"
+       diff -Naurp %{SOURCE3} rtchecks.got
+       exit 1
+fi
+%endif
 mv mksh out/mksh.static
 %endif
 
@@ -143,8 +201,8 @@ rm -rf $RPM_BUILD_ROOT
 %posttrans -p %add_etc_shells -p /bin/sh /bin/ksh
 
 
-%post static -p %add_etc_shells -p /bin/mksh.static
-%preun static -p %remove_etc_shells -p /bin/mksh.static
+%post  static -p %add_etc_shells -p /bin/mksh.static
+%preun static -p %remove_etc_shells -p /bin/mksh.static
 
 %files
 %defattr(644,root,root,755)
This page took 0.070463 seconds and 4 git commands to generate.