]> git.pld-linux.org Git - packages/mksh.git/blobdiff - mksh.spec
- enable lto
[packages/mksh.git] / mksh.spec
index 45be06198e6ea820c988af3852cf18484d714879..b9ef49d61de3306e4001f6c985a5b3ae8f78cec6 100644 (file)
--- a/mksh.spec
+++ b/mksh.spec
@@ -1,16 +1,31 @@
+%bcond_without static
 %bcond_without tests
+#
 Summary:       MirBSD Korn Shell
 Summary(pl.UTF-8):     Powłoka Korna z MirBSD
 Name:          mksh
-Version:       39c
-Release:       0.1
+Version:       40b
+Release:       1
 License:       BSD
 Group:         Applications/Shells
 Source0:       http://www.mirbsd.org/MirOS/dist/mir/mksh/%{name}-R%{version}.cpio.gz
-# Source0-md5: 0c3cd172b47eefcdf9a302baa42f5092
-Source1:       http://www.mirbsd.org/MirOS/dist/hosted/other/arc4random.c
-URL:           http://mirbsd.de/mksh
+# Source0-md5: afb08b65272ace550ec59b26a876a7de
+Source1:       %{name}-mkshrc
+Patch0:                %{name}-mkshrc_support.patch
+Patch1:                %{name}-circumflex.patch
+Patch2:                %{name}-no_stop_alias.patch
+Patch3:                %{name}-distro.patch
+URL:           https://www.mirbsd.org/mksh.htm
+%if %{with tests}
+BuildRequires: ed
+BuildRequires: perl-base
+%endif
+%{?with_static:BuildRequires:   glibc-static}
 BuildRequires: rpmbuild(macros) >= 1.462
+# is needed for /etc directory existence
+Requires(pre): FHS
+Requires:      setup >= 2.4.6-2
+Obsoletes:     pdksh
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
 %define                _bindir                 /bin
@@ -39,36 +54,104 @@ emacsa; $PS1 odpowiada temu z ksh obecnym w OpenBSD 4.2-current;
 wykonanym uproszczeniom kodu, poprawkom i rozszerzeniom powłoka ma
 rozszerzoną kompatybilność z innymi współczesnymi powłokami.
 
+%package static
+Summary:       Statically linked the MirBSD enhanced version of pdksh
+Summary(pl.UTF-8):     Skonsolidowana statycznie powłoka mksh
+Group:         Applications/Shells
+# requires base for /etc/mkshrc?
+Requires:      %{name} = %{version}-%{release}
+
+%description static
+mksh is the MirBSD enhanced version of the Public Domain Korn shell
+(pdksh), a Bourne-compatible shell which is largely similar to the
+original AT&T Korn shell.
+
+This packege contains statically linked version of mksh.
+
+%description static -l pl.UTF-8
+mksh to pochodząca z MirBSD rozszerzona wersja powłoki Public Domain
+Korn Shell (pdksh) - kompatybilnej z powłoką Bourne'a, w większości
+zbliżonej do oryginalnej powłoki Korna z AT&T.
+
+W tym pakiecie jest mksh skonsolidowany statycznie.
+
 %prep
 %setup -qcT
 gzip -dc %{SOURCE0} | cpio -mid
 mv mksh/* .; rmdir mksh
-cp -a %{SOURCE1} .
+
+%patch0 -p0
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+
+sed -i -e 's#@DISTRO@#PLD/Linux 3.0#g' check.t sh.h
 
 %build
-CC="%{__cc}" CFLAGS="%{rpmcppflags} %{rpmcflags}" sh ./Build.sh -Q -r -j
+install -d out
 
-%{?with_tests:./test.sh -v}
+CC="%{__cc}" \
+CFLAGS="%{rpmcppflags} %{rpmcflags}" \
+LDFLAGS="%{rpmldflags}" \
+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 $skip_tests}
+mv mksh out/mksh.dynamic
+
+%if %{with static}
+CC="%{__cc}" \
+CFLAGS="%{rpmcppflags} %{rpmcflags}" \
+LDFLAGS="%{rpmldflags} -static" \
+sh ./Build.sh -Q -r -j -c lto
+
+%{?with_tests:./test.sh -v $skip_tests}
+mv mksh out/mksh.static
+%endif
 
 %install
 rm -rf $RPM_BUILD_ROOT
 install -d $RPM_BUILD_ROOT{%{_bindir},%{_mandir}/man1}
-install -p mksh        $RPM_BUILD_ROOT%{_bindir}/mksh
+install -p out/mksh.dynamic $RPM_BUILD_ROOT%{_bindir}/mksh
+%{?with_static:install -p out/mksh.static $RPM_BUILD_ROOT%{_bindir}/mksh.static}
+
 cp -a mksh.1 $RPM_BUILD_ROOT%{_mandir}/man1/mksh.1
+echo ".so mksh.1" > $RPM_BUILD_ROOT%{_mandir}/man1/sh.1
+
+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 <lua>
-%lua_add_etc_shells %{_bindir}/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
+
 
-%preun -p <lua>
-if arg[2] == 0 then
-       %lua_remove_etc_shells  %{_bindir}/mksh
-end
+%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)
 %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*
+
+%if %{with static}
+%files static
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/mksh.static
+%endif
This page took 0.093291 seconds and 4 git commands to generate.