%define	_bindir	/bin

Summary: An enhanced version of csh, the C shell
Summary(ja): csh, Cシェルの進化バージョン
Name: tcsh
Version: 6.17
Release: 1%{?_dist_release}
License: BSD
URL: http://www.tcsh.org/
Group: System Environment/Shells

Source: ftp://ftp.astron.com/pub/tcsh/%{name}-%{version}.00.tar.gz
Patch1: tcsh-6.15.00-closem.patch
Patch2: tcsh-6.14.00-tinfo.patch
Patch3: tcsh-6.14.00-unprintable.patch
Patch4: tcsh-6.15.00-hist-sub.patch
Patch6: tcsh-6.15.00-ca-color.patch
Patch7: tcsh-6.14.00-set.patch
Patch8: tcsh-6.14.00-syntax.patch
Patch9: tcsh-6.13.00-memoryuse.patch
Patch11: tcsh-6.14.00-order.patch
Patch12: tcsh-6.15.00-rs-color.patch
Patch13: tcsh-6.17.00-mh-color.patch
# The idea is good, but the patch must be rewritten to be accepted by upstream
# (see tcsh mailing list for more information):
Patch14: tcsh-6.17.00-glob-automount.patch
# Accepted by upstream:
Patch15: tcsh-6.17.00-history.patch
# Accepted by upstream:
Patch16: tcsh-6.17.00-printexitvalue.patch
Patch17: tcsh-6.17.00-testsuite.patch
# Accepted by upstream:
Patch18: tcsh-6.17.00-extrafork.patch
# Accepted by upstream (tcsh-6.17.03b http://bugs.gw.com/view.php?id=109):
Patch19: tcsh-6.17.00-wait-intr.patch
# Accepted by upstream (tcsh-6.17.03b http://bugs.gw.com/view.php?id=112):
Patch21: tcsh-6.17.00-dont-set-empty-remotehost.patch
# Patch by upstream (tcsh-6.17.01b http://mx.gw.com/pipermail/tcsh-bugs/2010-May/000673.html):
Patch22: tcsh-6.17.00-dont-print-history-on-verbose.patch
# Accepted by upstream (tcsh-6.17.03b http://bugs.gw.com/view.php?id=113):
Patch23: tcsh-6.17.00-variable-names.patch
# Accepted by upstream (tcsh-6.17.05b http://mx.gw.com/pipermail/tcsh-bugs/2011-March/000727.html):
Patch24: tcsh-6.17.00-avoid-infinite-loop-pendjob-xprintf.patch

Provides: csh = %{version}
Requires(post): grep
Requires(postun): coreutils, grep

Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root
BuildRequires: autoconf, automake, ncurses-devel, gettext-devel

%description
Tcsh is an enhanced but completely compatible version of csh, the C
shell.  Tcsh is a command language interpreter which can be used both
as an interactive login shell and as a shell script command processor.
Tcsh includes a command line editor, programmable word completion,
spelling correction, a history mechanism, job control and a C language
like syntax.

%description -l ja
tcsh は、バークレイ版 UNIX の C シェル csh と完全に互換性があり、
さらに機能強化したシェルです。対話的なログインシェル、またシェルス
クリプトのコマンドプロセッサの両方の用途で使われるコマンドインタプ
リタです。
tcsh には、コマンド行編集機能や、プログラム可能な単語の補完機能、
スペル訂正、履歴、ジョブ制御、C 言語風の文法等が含まれます。

%prep
%setup -q -n %{name}-%{version}.00
%patch1 -p1 -b .closem
%patch2 -p1 -b .tinfo
%patch3 -p1 -b .unprintable
%patch4 -p1 -b .hist-sub
%patch6 -p1 -b .ca-color
%patch7 -p1 -b .set
%patch8 -p1 -b .syntax
%patch9 -p1 -b .memoryuse
%patch11 -p1 -b .order
%patch12 -p1 -b .rs-color
%patch13 -p1 -b .mh-color
%patch14 -p1 -b .glob-automount
%patch15 -p1 -b .history
%patch16 -p1 -b .printexitvalue
%patch17 -p1 -b .testsuite
%patch18 -p1 -b .extrafork
%patch19 -p1 -b .wait-intr
%patch21 -p1 -b .dont-set-empty-remotehost
%patch22 -p1 -b .dont-print-history-on-verbose
%patch23 -p1 -b .variable-names
%patch24 -p1 -b .avoid-infinite-loop-pendjob-xprintf

for i in Fixes WishList; do
 iconv -f iso-8859-1 -t utf-8 "$i" > "${i}_" && \
 touch -r "$i" "${i}_" && \
 mv "${i}_" "$i"
done

%build
# For tcsh-6.14.00-tinfo.patch
autoreconf
%configure --without-hesiod
make %{?_smp_mflags} all
make %{?_smp_mflags} -C nls catalogs

%install
rm -rf $RPM_BUILD_ROOT
mkdir -p ${RPM_BUILD_ROOT}%{_mandir}/man1 ${RPM_BUILD_ROOT}%{_bindir}
install -p -m 755 tcsh ${RPM_BUILD_ROOT}%{_bindir}/tcsh
install -p -m 644 tcsh.man ${RPM_BUILD_ROOT}%{_mandir}/man1/tcsh.1
ln -sf tcsh ${RPM_BUILD_ROOT}%{_bindir}/csh
ln -sf tcsh.1 ${RPM_BUILD_ROOT}%{_mandir}/man1/csh.1

while read lang language ; do
	dest=${RPM_BUILD_ROOT}%{_datadir}/locale/$lang/LC_MESSAGES
	if test -f tcsh.$language.cat ; then
		mkdir -p $dest
		install -p -m 644 tcsh.$language.cat $dest/tcsh
		echo "%lang($lang) %{_datadir}/locale/$lang/LC_MESSAGES/tcsh"
	fi
done > tcsh.lang << _EOF
de german
el greek
en C
es spanish
et et
fi finnish
fr french
it italian
ja ja
pl pl
ru russian
uk ukrainian
_EOF

%clean
rm -rf $RPM_BUILD_ROOT

%post
if [ ! -f /etc/shells ]; then
 echo "%{_bindir}/tcsh" >> /etc/shells
 echo "%{_bindir}/csh"	>> /etc/shells
else
 grep -q '^%{_bindir}/tcsh$' /etc/shells || \
 echo "%{_bindir}/tcsh" >> /etc/shells
 grep -q '^%{_bindir}/csh$'  /etc/shells || \
 echo "%{_bindir}/csh"	>> /etc/shells
fi

%postun
if [ ! -x %{_bindir}/tcsh ]; then
 grep -v '^%{_bindir}/tcsh$'  /etc/shells | \
 grep -v '^%{_bindir}/csh$' > /etc/shells.rpm && \
 mv /etc/shells.rpm /etc/shells
fi

%files -f tcsh.lang
%defattr(-,root,root,-)
%doc BUGS FAQ Fixes NewThings WishList complete.tcsh
%{_bindir}/tcsh
%{_bindir}/csh
%{_mandir}/man1/*.1*

%changelog
* Sun Jun 12 2011 IWAI, Masaharu <iwai@alib.jp> 6.17-1
- new upstream release
- drop wide str patch (Patch12): upstream fixed
- update ca-color patch (Patch6) from Fedora tcsh-6.17-15
- update syntax patch (Patch8) from Fedora tcsh-6.17-15
- update rs-color patch from Fedora tcsh-6.17-15
- resync with Fedora tcsh-6.17-15
 - change patch number Patch13 -> Patch12
 - add Patch13..24
  * Thu Mar 24 2011 Vojtech Vitek (V-Teq) <vvitek@redhat.com> - 6.17-15
  - Avoid infinite loop pendjob()-xprintf() when stdout is closed
    Resolves: #690356
  
  * Wed Feb 09 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 6.17-14
  - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
  
  * Fri Jan 28 2011 Vojtech Vitek (V-Teq) <vvitek@redhat.com> - 6.17-13
  - Modify verbose patch to match with upstream (don't print on history -S)
    Resolves: #672810
  
  * Wed Jan 26 2011 Vojtech Vitek (V-Teq) <vvitek@redhat.com> - 6.17-12
  - Fix error message on exit
    Resolves: #672810
  
  * Mon Jan 24 2011 Vojtech Vitek (V-Teq) <vvitek@redhat.com> - 6.17-11
  - Don't set $REMOTEHOST on the local machine
    Resolves: #669176
  - Don't print history in verbose mode
    Resolves: #583075, #658171
  - Don't allow illegal variable names to be set
    Resolves: #436901
  - Revert "Fix incorrect $status value of pipelined commands"
  
  * Tue Dec 21 2010 Vojtech Vitek (V-Teq) <vvitek@redhat.com> - 6.17-10
  - Make wait builtin command interruptible
    Resolves: #440465
  - Fix incorrect $status value of pipelined commands
    Resolves: #638955 (Patch by Tomas Smetana <tsmetana@redhat.com>)
  
  * Wed Oct  6 2010 Vitezslav Crhonek <vcrhonek@redhat.com> - 6.17-9
  - Remove fork when tcsh processes backquotes
  
  * Wed Apr 14 2010 Vitezslav Crhonek <vcrhonek@redhat.com> - 6.17-8
  - Fix testsuite
  
  * Mon Mar  1 2010 Vitezslav Crhonek <vcrhonek@redhat.com> - 6.17-7
  - Ship README file
  
  * Tue Dec 15 2009 Vitezslav Crhonek <vcrhonek@redhat.com> - 6.17-6
  - Fix tcsh obeys printexitvalue for back-ticks
  
  * Wed Nov  4 2009 Vitezslav Crhonek <vcrhonek@redhat.com> - 6.17-5
  - Fix few globbing problems
  
  * Mon Oct 19 2009 Vitezslav Crhonek <vcrhonek@redhat.com> - 6.17-4
  - Fix tcsh globbing causing bad automount
  - Fix truncated history file after network crash
  
  * Wed Aug 26 2009 Vitezslav Crhonek <vcrhonek@redhat.com> - 6.17-3
  - Add new colorls variable
    Resolves: #518808
  
  * Sun Jul 26 2009 Fedora Release Engineering <releng@lists.fedoraproject.org> - 6.17-2
  - Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
  
  * Mon Jul 20 2009 Vitezslav Crhonek <vcrhonek@redhat.com> - 6.17-1
  - Update to tcsh-6.17.00

* Sat Apr 16 2011 Ryoichi INAGAKI <ryo1@bc.wakwak.com> 6.16-2
- rebuilt with current VineSeed

* Wed Jul 15 2009 Daisuke SUZUKI <daisuke@linux.or.jp> 6.16-1
- new upstream release
- resync with 6.16-1(fc12)
- drop vine patch

* Fri Aug 15 2008 Shu KONNO <owa@bg.wakwak.com> 6.12-1vl5
- applied new versioning policy, spec in utf-8

* Wed Oct 18 2006 Kazutaka HARADA <kazutaka@dc4.so-net.ne.jp> 6.12-0vl6
- added patch11 from fedora 
  * Thu Mar 23 2006 Miloslav Trmac <mitr@redhat.com> - 6.14-8
  - Backport a patch to ignore LS_COLOR codes introduced in newer coreutils
    (#186037)
- added japanese description

* Thu Apr 02 2004 KOBAYASHI R. Taizo <tkoba@vinelinux.org> 6.12-0vl5
- added patch from fedora 
  * Tue Feb 10 2004 Nalin Dahyabhai <nalin@redhat.com> 6.12-7
  - remove declaration of setpgrp() which conflicts with libc's (#115185)

  * Fri Nov 21 2003 Nalin Dahyabhai <nalin@redhat.com> 6.12-6
  - add missing buildprereqs on groff, libtermcap-devel (#110599)

* Mon Oct 20 2003 Ryoichi INAGAKI <ryo1@bc.wakwak.com> 6.12-0vl4
- rebuild with new toolchains
- s/Copyright/License/
- fix spec file to build correctly (based on Rawhide spec file) 

* Tue Aug 06 2002 KOBAYASHI R. Taizo <tkoba@vinelinux.org> 6.12-0vl3
- "Re"-changed the way of fixing check locale from Patch8 to Patch9
  on ppc strlen() can not deal with 'short' variables

* Sat Aug 03 2002 Satoshi MACHINO <machino@vinelinux.org> 6.12-0vl2
- fixed changelog

* Thu Jul 25 2002 K. Nagasaka <nagasaka@math.tsukuba.ac.jp> 6.12-0vl1
- update

* Sun Apr 28 2002 NISHIMURA Daisuke <nishi@graco.c.u-tokyo.ac.jp> 6.11-0vl4
- change limit.patch

* Fri Apr 26 2002 Kosaku Nagasaka <nagasaka@math.tsukuba.ac.jp> 6.11-0vl3
- fixed limit by Patch10

* Sun Jan 27 2002 KOBAYASHI R. Taizo <tkoba@vinelinux.org> 6.11-0vl2
- changed the way of fixing check locale from Patch8 to Patch9
  on ppc strlen() can not deal with 'short' variables

* Mon Jan 21 2002 KOBAYASHI R. Taizo <tkoba@vinelinux.org> 6.11-0vl1
- update

* Thu Dec 28 2001 Satoshi MACHINO <machino@vinelinux.org> 6.10.02-0vl2
- fixed check locale
	- merged some patches from RHL-7.2

* Thu Aug 09 2001 <sagami@vinelinux.org>
- 6.10.02-0vl1

* Sun Jan  7 2001 Jun Nishii <jun@vinelinux.org>
- 6.10-1vl2
- build with gcc

* Mon Dec 11 2000 Yasuhide OOMORI <dasen@icntv.ne.jp>
- syncronized release tcsh based on a securty fix for RH6.2.

* Thu Nov 30 2000 Nalin Dahyabhai <nalin@redhat.com>
- update to 6.10.00 to fix here-script vulnerability

* Wed Sep 18 2000 Adrian Havill <havill@redhat.com>
- fix catalog locale dirname for Japanese

* Thu Jun 15 2000 Jeff Johnson <jbj@redhat.com>
- FHS packaging.
- add locale support (#10345).

* Tue Mar  7 2000 Jeff Johnson <jbj@redhat.com>
- rebuild for sparc baud rates > 38400.

* Mon Jan 31 2000 Cristian Gafton <gafton@redhat.com>
- rebuild to fix dependencies

* Thu Jan 27 2000 Jeff Johnson <jbj@redhat.com>
- append entries to spanking new /etc/shells.

* Mon Jan 10 2000 Jeff Johnson <jbj@redhat.com>
- update to 6.09.
- fix strcoll oddness (#6000, #6244, #6398).

* Sat Sep 25 1999 Michael K. Johnson <johnsonm@redhat.com>
- fix $shell by using --bindir

* Sun Mar 21 1999 Cristian Gafton <gafton@redhat.com> 
- auto rebuild in the new build environment (release 5)

* Wed Feb 24 1999 Cristian Gafton <gafton@redhat.com>
- patch for using PATH_MAX instead of some silly internal #defines for
  variables that handle filenames.

* Fri Nov  6 1998 Jeff Johnson <jbj@redhat.com>
- update to 6.08.00.

* Fri Oct 02 1998 Cristian Gafton <gafton@redhat.com>
- upgraded to 6.07.09 from the freebsd
- security fix

* Wed Aug  5 1998 Jeff Johnson <jbj@redhat.com>
- use -ltermcap so that /bin/tcsh can be used in single user mode w/o /usr.
- update url's

* Mon Apr 27 1998 Prospector System <bugs@redhat.com>
- translations modified for de, fr, tr

* Thu Oct 21 1997 Cristian Gafton <gafton@redhat.com>
- updated to 6.07; added BuildRoot
- cleaned up the spec file; fixed source url

* Wed Sep 03 1997 Erik Troan <ewt@redhat.com>
- added termios hacks for new glibc
- added /bin/csh to file list

* Fri Jun 13 1997 Erik Troan <ewt@redhat.com>
- built against glibc

* Fri Feb 07 1997 Erik Troan <ewt@redhat.com>
 - Provides csh, adds and removes /bin/csh from /etc/shells if csh package
isn't installed.
