File tcsh.spec of Package tcsh.12475

#
# spec file for package tcsh
#
# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via https://bugs.opensuse.org/
#


%bcond_with     sjis

Name:           tcsh
BuildRequires:  ncurses-devel
Url:            http://www.tcsh.org/
Requires:       gawk
Requires:       textutils
%if %suse_version > 1020
Recommends:     tcsh-lang = 6.18.00
%endif
Version:        6.18.01
Release:        0
Summary:        The C SHell
License:        BSD-3-Clause
Group:          System/Shells
Source:         ftp.astron.com:/pub/tcsh/tcsh-6.18.01.tar.gz
Source2:        bindkey.tcsh
Source3:        complete.tcsh
Patch:          tcsh-6.18.00.dif
Patch1:         tcsh-6.15.00-pipe.dif
Patch2:         tcsh-6.16.00-norm-cmd.dif
Patch3:         tcsh-6.15.00-blanks.dif
Patch4:         tcsh-6.17.03-colorls.dif
Patch5:         tcsh-6.17.06-dspmbyte.dif
Patch6:         tcsh-6.17.10-catalogs.dif
Patch7:         tcsh-6.18.01-blk_buf.patch
Patch8:         tcsh-6.18.01-metakey.patch
# PATCH-FIX-SUSE add history file locking (bsc#901076)
Patch9:         tcsh-6.18.00-history-file-locking.patch
Patch10:        tcsh-6.18.01-history-merge.dif
# PATCH-FIX-UPSTREAM do not close sockets which do not belong to it (bsc#1028864)
Patch11:        tcsh-closem.patch
# PATCH-FIX-SUSE Make a copy of the fd of the history file to unlock this file (bsc#992577)
Patch12:        tcsh-6.19.00-history-file-locking-order.patch
# PATCH-FIX-SUSE For FATE#324487 add support for broken Japanese locale Shift JIS
Patch42:        tcsh-6.18.01-SJIS.patch
BuildRoot:      %{_tmppath}/%{name}-%{version}-build

%description
Tcsh is an enhanced, but completely compatible, version of the Berkeley
UNIX C shell, csh(1). It is a command language interpreter usable as an
interactive login shell and a shell script command processor. It
includes a command-line editor, programmable word completion, spelling
correction, a history mechanism, job control, and a C-like syntax.



Authors:
--------
    Christos Zoulas <christos@deshaw.com>
    Scott Krotz <krotz@mot.com>

%package -n tcsh-lang
Summary:        Languages for package tcsh
Group:          System/Localization
Provides:       tcsh-lang = %{version}
Requires:       tcsh = %{version}

%description -n tcsh-lang
Provides translations to the package tcsh

%prep
%if %{with sjis}
echo -e '\033[1m\033[31mWarning: Shift JIS support is enabled\033[m'
%else
echo -e '\033[1m\032[31mShift JIS support disabled\033[m'
%endif
%setup
%patch1 -p0 -b .pipe
%patch2 -p0 -b .normcmd
### disabled for know, should work on os11.1 without
### %patch3 -p0 -b .blanks
%patch4 -p0 -b .colorls
%patch5 -p0 -b .dspmbyte
%patch6 -p0 -b .catalogs
%patch7 -p0 -b .blk_buf
%patch8 -p0 -b .metakey
%patch9 -p1 -b .histlock
%patch10 -p0 -b .histmerg
%patch11 -p0 -b .sockets
%patch12 -p0 -b .histlckord
%if %{with sjis}
%patch42 -p0 -b .sjis
%endif
%patch      -b .0

%build
    cflags ()
    {
	local flag=$1; shift
	local var=$1; shift
	test -n "${flag}" -a -n "${var}" || return
	case "${!var}" in
	*${flag}*) return
	esac
	set -o noclobber
	case "$flag" in
	-Wl,*)
	    if echo 'int main () { return 0; }' | \
	       ${CC:-gcc} -Werror $flag -o /dev/null -xc - > /dev/null 2>&1 ; then
		eval $var=\${$var:+\$$var\ }$flag
	    fi
	    ;;
	*)
	    if ${CC:-gcc} -Werror $flag -S -o /dev/null -xc /dev/null > /dev/null 2>&1 ; then
		eval $var=\${$var:+\$$var\ }$flag
	    fi
	    if ${CXX:-g++} -Werror $flag -S -o /dev/null -xc++ /dev/null > /dev/null 2>&1 ; then
		eval $var=\${$var:+\$$var\ }$flag
	    fi
	esac
	set +o noclobber
    }
    CC=gcc
    CFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE -DBUFSIZE=8192 -pipe"
    cflags -ftree-loop-linear      CFLAGS
    cflags -Wl,-O2                 LDFLAGS
    cflags -Wl,--as-needed         LDFLAGS
    cflags -Wl,--hash-size=16699   LDFLAGS
    export CC CFLAGS LDFLAGS
%ifarch %ix86
    CPU=i586
%else
    CPU=${RPM_ARCH}
%endif
    ./configure --build=${CPU}-suse-linux \
	--prefix=/usr			\
	--bindir=/bin			\
	--sysconfdir=/etc		\
	--localstatedir=/var		\
	--sharedstatedir=%_datadir	\
	--infodir=%_infodir		\
	--mandir=%_mandir		\
	--libexecdir=/usr/%{_lib}/tcsh	\
	--disable-rpath			\
	--with-gnu-ld
    make
#
# requires a working terminal on stdin
#   make check

%install
    rm -rf $RPM_BUILD_ROOT
    for nls in nls/*.cat ; do
	msg=$nls
	nls=${nls##*/}
	nls=${nls%%.*}
	case "${nls}" in
	fi*)	nls=fi		;;
	fr*)	nls=fr		;;
	ge*)	nls=de		;;
	gr*)	nls=el		;;
	it*)	nls=it		;;
	ru*)	nls=ru_RU	;;
	sp*)	nls=es		;;
	uk*)	nls=uk_UA	;;
	C)	continue	;;
	esac
	dir=$RPM_BUILD_ROOT/usr/share/locale/${nls}/LC_MESSAGES
	test ! -e ${dir}/tcsh || continue
	mkdir -p -m 0755 $dir
	install -m 0444 ${msg} ${dir}/tcsh
    done
    make DESTDIR=$RPM_BUILD_ROOT GENCAT='/usr/bin/gencat --new' install
    make DESTDIR=$RPM_BUILD_ROOT GENCAT='/usr/bin/gencat --new' install.man
    mkdir -p $RPM_BUILD_ROOT%{_docdir}/tcsh
    install -m 0644 FAQ       $RPM_BUILD_ROOT%{_docdir}/tcsh/FAQ.tcsh
    install -m 0644 Copyright $RPM_BUILD_ROOT%{_docdir}/tcsh/Copyright
    mkdir -p $RPM_BUILD_ROOT/etc/profile.d/
    mkdir -p $RPM_BUILD_ROOT/usr/bin
    install -m 644 $RPM_SOURCE_DIR/bindkey.tcsh  $RPM_BUILD_ROOT/etc/profile.d/
    install -m 644 $RPM_SOURCE_DIR/complete.tcsh $RPM_BUILD_ROOT/etc/profile.d/
    rm -f  $RPM_BUILD_ROOT/bin/csh
    rm -f  $RPM_BUILD_ROOT/usr/bin/csh
    rm -f  $RPM_BUILD_ROOT/usr/bin/tcsh
    rm -f  $RPM_BUILD_ROOT%{_mandir}/man1/csh.*
    rm -rf $RPM_BUILD_ROOT%{_datadir}/locale/C
    ln -sf tcsh           $RPM_BUILD_ROOT/bin/csh
    ln -sf tcsh.1.gz      $RPM_BUILD_ROOT%{_mandir}/man1/csh.1.gz
    ln -sf ../../bin/tcsh $RPM_BUILD_ROOT/usr/bin/csh
    ln -sf ../../bin/tcsh $RPM_BUILD_ROOT/usr/bin/tcsh

%clean
    rm -rf $RPM_BUILD_ROOT

%files
%defattr(-,root,root)
%dir %{_docdir}/tcsh
/bin/csh
/bin/tcsh
%config /etc/profile.d/bindkey.tcsh
%config /etc/profile.d/complete.tcsh
/usr/bin/csh
/usr/bin/tcsh
%doc %{_docdir}/tcsh/Copyright
%doc %{_docdir}/tcsh/FAQ.tcsh
%doc %{_mandir}/man1/csh.1.gz
%doc %{_mandir}/man1/tcsh.1.gz

%files -n tcsh-lang
%defattr(-,root,root)
%{_datadir}/locale/*/LC_MESSAGES/tcsh*

%changelog
openSUSE Build Service is sponsored by