From 439a1740272cacc0dc365062b2200afaead592bd Mon Sep 17 00:00:00 2001 From: CentOS Buildsys Date: May 24 2013 14:39:07 +0000 Subject: import mksh-46-3.el7.src.rpm --- diff --git a/.mksh.metadata b/.mksh.metadata new file mode 100644 index 0000000..20542b8 --- /dev/null +++ b/.mksh.metadata @@ -0,0 +1 @@ +f86f4d567a06813bf4495ec5cc2aaac1d57d346a SOURCES/mksh-R46.tgz diff --git a/README.md b/README.md deleted file mode 100644 index 0e7897f..0000000 --- a/README.md +++ /dev/null @@ -1,5 +0,0 @@ -The master branch has no content - -Look at the c7 branch if you are working with CentOS-7, or the c4/c5/c6 branch for CentOS-4, 5 or 6 - -If you find this file in a distro specific branch, it means that no content has been checked in yet diff --git a/SOURCES/dot-mkshrc b/SOURCES/dot-mkshrc new file mode 100644 index 0000000..b5839c9 --- /dev/null +++ b/SOURCES/dot-mkshrc @@ -0,0 +1,8 @@ +# .mkshrc + +# Source global definitions +if [ -f /etc/mkshrc ]; then + . /etc/mkshrc +fi + +# User specific aliases and functions diff --git a/SOURCES/mksh-46-lksh.patch b/SOURCES/mksh-46-lksh.patch new file mode 100644 index 0000000..e146a69 --- /dev/null +++ b/SOURCES/mksh-46-lksh.patch @@ -0,0 +1,49 @@ +Index: Build.sh +=================================================================== +RCS file: /cvs/src/bin/mksh/Build.sh,v +retrieving revision 1.630 +retrieving revision 1.631 +diff -u -p -r1.630 -r1.631 +--- Build.sh 2 May 2013 21:59:44 -0000 1.630 ++++ Build.sh 5 May 2013 13:38:00 -0000 1.631 +@@ -63,7 +63,7 @@ vq() { + rmf() { + for _f in "$@"; do + case $_f in +- Build.sh|check.pl|check.t|dot.mkshrc|*.c|*.h|mksh.1) ;; ++ Build.sh|check.pl|check.t|dot.mkshrc|*.c|*.h|lksh.1|mksh.1) ;; + *) rm -f "$_f" ;; + esac + done +@@ -458,7 +458,7 @@ oswarn= + ccpc=-Wc, + ccpl=-Wl, + tsts= +-ccpr='|| for _f in ${tcfn}*; do case $_f in Build.sh|check.pl|check.t|dot.mkshrc|*.c|*.h|mksh.1) ;; *) rm -f "$_f" ;; esac; done' ++ccpr='|| for _f in ${tcfn}*; do case $_f in Build.sh|check.pl|check.t|dot.mkshrc|*.c|*.h|lksh.1|mksh.1) ;; *) rm -f "$_f" ;; esac; done' + + # Evil hack + if test x"$TARGET_OS" = x"Android"; then +@@ -2268,8 +2268,10 @@ test 1 = $eq && e=: + $e + $e Installing the shell: + $e "# $i -c -s -o root -g bin -m 555 $tfn /bin/$tfn" +-$e "# grep -x /bin/$tfn /etc/shells >/dev/null || echo /bin/$tfn >>/etc/shells" +-$e "# $i -c -o root -g bin -m 444 dot.mkshrc /usr/share/doc/mksh/examples/" ++if test $legacy = 0; then ++ $e "# grep -x /bin/$tfn /etc/shells >/dev/null || echo /bin/$tfn >>/etc/shells" ++ $e "# $i -c -o root -g bin -m 444 dot.mkshrc /usr/share/doc/mksh/examples/" ++fi + $e + $e Installing the manual: + if test -f $tfn.cat1; then +@@ -2277,7 +2279,7 @@ if test -f $tfn.cat1; then + "/usr/share/man/cat1/$tfn.0" + $e or + fi +-$e "# $i -c -o root -g bin -m 444 mksh.1 /usr/share/man/man1/$tfn.1" ++$e "# $i -c -o root -g bin -m 444 $tfn.1 /usr/share/man/man1/$tfn.1" + $e + $e Run the regression test suite: ./test.sh + $e Please also read the sample file dot.mkshrc and the fine manual. + diff --git a/SOURCES/rtchecks.expected b/SOURCES/rtchecks.expected new file mode 100644 index 0000000..56e47ca --- /dev/null +++ b/SOURCES/rtchecks.expected @@ -0,0 +1,10 @@ +0:0=0. +1:-1=4294967295. +2:2147483647=2147483647. +3:-2147483648=2147483648. +4:-1=4294967295. +5:0=0. +6:-2147483648=2147483648. +7:2147483647=2147483647. +8:-3=2147483645. +9:-2=4294967294. diff --git a/SPECS/mksh.spec b/SPECS/mksh.spec new file mode 100644 index 0000000..e5e0ba0 --- /dev/null +++ b/SPECS/mksh.spec @@ -0,0 +1,288 @@ +%define _bindir /bin +Summary: MirBSD enhanced version of the Korn Shell +Name: mksh +Version: 46 +Release: 3%{?dist} +# BSD (setmode.c), ISC (strlcpy.c), MirOS (the rest) +License: MirOS and ISC and BSD +Group: System Environment/Shells +URL: https://www.mirbsd.de/%{name}.htm +Source0: http://www.mirbsd.org/MirOS/dist/mir/%{name}/%{name}-R%{version}.tgz +Source1: dot-mkshrc +Source2: rtchecks.expected +Patch0: mksh-46-lksh.patch +Requires: chkconfig +Requires(post): grep, chkconfig +Requires(postun): sed +BuildRequires: util-linux, ed +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +#for usage of alternatives +Conflicts: ksh < 20120801-9 + +%description +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. It includes bug fixes and feature improvements in order to produce a +modern, robust shell good for interactive and especially script use, being a +bourne shell replacement, pdksh successor and an alternative to the C shell. + +%prep +%setup -q -n %{name} +%patch0 -p0 -b .lksh + +# we'll need this later +cat >rtchecks <<'EOF' +typeset -i sari=0 +typeset -Ui uari=0 +typeset -i x=0 +print -r -- $((x++)):$sari=$uari. #0 +let --sari --uari +print -r -- $((x++)):$sari=$uari. #1 +sari=2147483647 uari=2147483647 +print -r -- $((x++)):$sari=$uari. #2 +let ++sari ++uari +print -r -- $((x++)):$sari=$uari. #3 +let --sari --uari +let 'sari *= 2' 'uari *= 2' +let ++sari ++uari +print -r -- $((x++)):$sari=$uari. #4 +let ++sari ++uari +print -r -- $((x++)):$sari=$uari. #5 +sari=-2147483648 uari=-2147483648 +print -r -- $((x++)):$sari=$uari. #6 +let --sari --uari +print -r -- $((x++)):$sari=$uari. #7 +(( sari = -5 >> 1 )) +((# uari = -5 >> 1 )) +print -r -- $((x++)):$sari=$uari. #8 +(( sari = -2 )) +((# uari = sari )) +print -r -- $((x++)):$sari=$uari. #9 +EOF + +%build +# Work around RHBZ #922974 on Fedora 19 and later +%if 0%{?fedora} >= 19 || 0%{?rhel} > 6 +CFLAGS="$RPM_OPT_FLAGS -DMKSH_DISABLE_EXPERIMENTAL" sh Build.sh -r +%else +CFLAGS="$RPM_OPT_FLAGS -DMKSH_DISABLE_EXPERIMENTAL" sh Build.sh -r -c lto +%endif +cp test.sh test_mksh.sh +# Work around RHBZ #922974 on Fedora 19 and later +%if 0%{?fedora} >= 19 || 0%{?rhel} > 6 +CFLAGS="$RPM_OPT_FLAGS -DMKSH_DISABLE_EXPERIMENTAL" sh Build.sh -L -r +%else +CFLAGS="$RPM_OPT_FLAGS -DMKSH_DISABLE_EXPERIMENTAL" sh Build.sh -L -r -c lto +%endif +cp test.sh test_lksh.sh + +%install +rm -rf $RPM_BUILD_ROOT +install -D -m 755 %{name} $RPM_BUILD_ROOT%{_bindir}/%{name} +install -D -m 755 lksh $RPM_BUILD_ROOT%{_bindir}/lksh +install -D -m 644 %{name}.1 $RPM_BUILD_ROOT%{_mandir}/man1/%{name}.1 +install -D -m 644 lksh.1 $RPM_BUILD_ROOT%{_mandir}/man1/lksh.1 +install -D -p -m 644 dot.mkshrc $RPM_BUILD_ROOT%{_sysconfdir}/mkshrc +install -D -p -m 644 %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/skel/.mkshrc + +# fool rpmdiff about %ghost files +touch $RPM_BUILD_ROOT/bin/ksh +touch $RPM_BUILD_ROOT%{_mandir}/man1/ksh.1.gz + +%check +./mksh rtchecks >rtchecks.got 2>&1 +if ! cmp --quiet rtchecks.got %{SOURCE2} +then + echo "rtchecks failed" + diff -Naurp %{SOURCE2} rtchecks.got + exit 1 +fi + +for tf in test_mksh.sh test_lksh.sh +do + echo > test.wait + script -qc "./$tf"' -v; x=$?; rm -f test.wait; exit $x' + maxwait=0 + while test -e test.wait; do + sleep 1 + maxwait=$(expr $maxwait + 1) + test $maxwait -lt 900 || break + done +done + +%post +grep -q "^%{_bindir}/%{name}$" %{_sysconfdir}/shells 2>/dev/null || \ + echo "%{_bindir}/%{name}" >> %{_sysconfdir}/shells + +%{_sbindir}/alternatives --install /bin/ksh ksh \ + /bin/mksh 10 \ + --slave %{_mandir}/man1/ksh.1.gz ksh-man \ + %{_mandir}/man1/mksh.1.gz + +%preun +if [ $1 = 0 ]; then + %{_sbindir}/alternatives --remove ksh /bin/mksh +fi + +%postun +if [ ! -x %{_bindir}/%{name} ]; then + sed -e 's@^%{_bindir}/%{name}$@POSTUNREMOVE@' -e '/^POSTUNREMOVE$/d' -i %{_sysconfdir}/shells +fi + +%clean +rm -rf $RPM_BUILD_ROOT + +%files +%defattr(-,root,root,-) +%doc dot.mkshrc +%{_bindir}/%{name} +%ghost %{_bindir}/ksh +%ghost %{_mandir}/man1/ksh.1.gz +%{_bindir}/lksh +%config(noreplace) %{_sysconfdir}/mkshrc +%config(noreplace) %{_sysconfdir}/skel/.mkshrc +%{_mandir}/man1/%{name}.1* +%{_mandir}/man1/lksh.1* + +%changelog +* Fri May 24 2013 Michal Hlavinka - 46-3 +- add alternatives switching with ksh + +* Thu May 23 2013 Michal Hlavinka - 46-2 +- add workaround for broken gcc (#960113) + +* Fri May 03 2013 Thorsten Glaser 46-1 +- Upgrade mksh to R46 + +* Wed May 01 2013 Thorsten Glaser 45-1 +- Upgrade mksh to R45 and the other files to the accompanying versions +- Drop workaround for GCC PR55009 (no longer needed) +- Use https for homepage + +* Mon Mar 18 2013 Robert Scheck 44-1 +- Upgrade to 44 and work around bug in GCC 4.8 (#922974) + +* Thu Feb 14 2013 Fedora Release Engineering - 41-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Mon Dec 03 2012 Michal Hlavinka - 41-1 +- Upgrade to 41 + +* Fri Jul 20 2012 Michal Hlavinka - 40i-0.20120630 +- Upgrade to pre-release of 40i +- includes new legacy shell lksh for old scripts requiring pdksh or similar old + ksh-88 shell, see man lksh for differences + +* Fri Jul 20 2012 Fedora Release Engineering - 40d-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Fri Jan 13 2012 Fedora Release Engineering - 40d-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Sun Dec 11 2011 Robert Scheck 40d-1 +- Upgrade to 40d + +* Tue Nov 22 2011 Robert Scheck 40c-1 +- Upgrade to 40c + +* Thu Jul 28 2011 Robert Scheck 40b-2 +- Use new "Build.sh -r -c lto" rather "Build.sh -r -combine" + +* Thu Jul 28 2011 Robert Scheck 40b-1 +- Upgrade to 40b + +* Tue Feb 08 2011 Fedora Release Engineering - 39c-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Tue Jan 04 2011 Michal Hlavinka 39c-4 +- fix crash when bad substitution is used + +* Wed Jul 21 2010 Michal Hlavinka 39c-3 +- fix crash when alias contains alias +- fix crash when xtrace is enabled + +* Sun Jul 11 2010 Robert Scheck 39c-2 +- Added default configuration /etc/mkshrc & /etc/skel/.mkshrc + as default skel (like at bash; thanks to Michal Hlavinka) +- Corrected the license tag (thanks to Michal Hlavinka) +- Removed the arc4random.c file (upstream is phasing it out) + +* Sat Feb 27 2010 Robert Scheck 39c-1 +- Upgrade to 39c and updated arc4random.c file + +* Thu Aug 13 2009 Robert Scheck 39-1 +- Upgrade to 39 and updated arc4random.c file + +* Sat Jul 25 2009 Fedora Release Engineering - 38b-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Sun May 31 2009 Robert Scheck 38b-1 +- Upgrade to 38b + +* Sun May 31 2009 Robert Scheck 38-1 +- Upgrade to 38 and updated arc4random.c file +- Used -combine (-fwhole-program) rather the old -j switch + +* Sun Apr 05 2009 Robert Scheck 37b-1 +- Upgrade to 37b + +* Mon Feb 23 2009 Robert Scheck 36b-2 +- Rebuild against gcc 4.4 and rpm 4.6 + +* Sun Dec 14 2008 Robert Scheck 36b-1 +- Upgrade to 36b and updated arc4random.c file + +* Tue Dec 02 2008 Robert Scheck 36-2 +- Upstream patch for command hang/high cpu workload (#474115) + +* Sat Oct 25 2008 Robert Scheck 36-1 +- Upgrade to 36 + +* Sat Jul 19 2008 Robert Scheck 35b-1 +- Upgrade to 35b + +* Sun Jul 13 2008 Robert Scheck 35-1 +- Upgrade to 35 + +* Sat Apr 12 2008 Robert Scheck 33d-1 +- Upgrade to 33d + +* Fri Apr 04 2008 Robert Scheck 33c-1 +- Upgrade to 33c and updated arc4random.c file + +* Mon Mar 03 2008 Robert Scheck 33-1 +- Upgrade to 33 + +* Sun Feb 10 2008 Robert Scheck 32-2 +- Rebuild against gcc 4.3 + +* Sat Nov 10 2007 Robert Scheck 32-1 +- Upgrade to 32 +- Solved fork problems in %%check (thanks to Thorsten Glaser) + +* Mon Oct 15 2007 Robert Scheck 31d-1 +- Upgrade to 31d + +* Wed Sep 12 2007 Robert Scheck 31c-1 +- Upgrade to 31c +- Added a buildrequirement to ed, added arc4random.c file + +* Tue Sep 11 2007 Robert Scheck 31b-1 +- Upgrade to 31b +- Use script to get %%check happy (thanks to Thorsten Glaser) + +* Sat Sep 08 2007 Robert Scheck 31-1 +- Upgrade to 31 + +* Tue Aug 28 2007 Robert Scheck 30-2 +- Updated the license tag according to the guidelines + +* Sat Jul 28 2007 Robert Scheck 30-1 +- Upgrade to 30 + +* Sat Jul 14 2007 Robert Scheck 29g-1 +- Upgrade to 29g + +* Sun Jun 03 2007 Robert Scheck 29f-1 +- Upgrade to 29f +- Initial spec file for Fedora and Red Hat Enterprise Linux