# Conditional build:
%bcond_without ada # do not build Ada95 bindings
%bcond_without cxx # do not build C++ ncurses bindings and demo programs
-# # (this is neccessary to build ncurses linked with uClibc).
+# # (this is neccessary to build ncurses linked with uClibc).
%bcond_without gpm # build without (dynamically loadable) libgpm support
#
+%ifarch sparc64
+%undefine with_ada
+%endif
+
Summary: curses terminal control library
Summary(de.UTF-8): curses-Terminal-Control-Library
Summary(es.UTF-8): Biblioteca de control de terminal curses
Summary(tr.UTF-8): Terminal kontrol kitaplığı
Summary(uk.UTF-8): ncurses - нова бібліотека керування терміналами
Name: ncurses
-Version: 5.6
-Release: 5
+Version: 5.7
+Release: 23
License: distributable
Group: Libraries
Source0: ftp://dickey.his.com/ncurses/%{name}-%{version}.tar.gz
-# Source0-md5: b6593abe1089d6aab1551c105c9300e3
+# Source0-md5: cce05daf61a64501ef6cd8da1f727ec6
Source1: http://www.mif.pg.gda.pl/homepages/ankry/man-PLD/%{name}-non-english-man-pages.tar.bz2
# Source1-md5: 3b05ee835dc20c306e9af2a9d3fbf1f1
-# source: ftp://dickey.his.com/ncurses/5.6/
-Patch0: %{name}-5.6-20061223.patch.gz
-Patch1: %{name}-5.6-20061230.patch.gz
-Patch2: %{name}-5.6-20070106.patch.gz
-Patch3: %{name}-5.6-20070113.patch.gz
-Patch4: %{name}-5.6-20070120.patch.gz
-Patch5: %{name}-5.6-20070127.patch.gz
-Patch6: %{name}-5.6-20070128.patch.gz
-Patch7: %{name}-5.6-20070203.patch.gz
-Patch8: %{name}-5.6-20070210.patch.gz
-Patch9: %{name}-5.6-20070217.patch.gz
+# source: ftp://dickey.his.com/ncurses/5.7/
+Patch0: %{name}-5.7-20081115.patch.gz
+Patch1: %{name}-5.7-20081122.patch.gz
+Patch2: %{name}-5.7-20081129.patch.gz
+Patch3: %{name}-5.7-20081206.patch.gz
+Patch4: %{name}-5.7-20081213.patch.gz
+Patch5: %{name}-5.7-20081220.patch.gz
+Patch6: %{name}-5.7-20081227.patch.gz
+Patch7: %{name}-5.7-20090103.patch.gz
+Patch8: %{name}-5.7-20090104.patch.gz
+Patch9: %{name}-5.7-20090105.patch.gz
+Patch10: %{name}-5.7-20090110.patch.gz
+Patch11: %{name}-5.7-20090117.patch.gz
+Patch12: %{name}-5.7-20090124.patch.gz
+Patch13: %{name}-5.7-20090207.patch.gz
+Patch14: %{name}-5.7-20090214.patch.gz
+Patch15: %{name}-5.7-20090221.patch.gz
+Patch16: %{name}-5.7-20090228.patch.gz
+Patch17: %{name}-5.7-20090314.patch.gz
+Patch18: %{name}-5.7-20090321.patch.gz
+Patch19: %{name}-5.7-20090328.patch.gz
+Patch20: %{name}-5.7-20090404.patch.gz
+Patch21: %{name}-5.7-20090411.patch.gz
+Patch22: %{name}-5.7-20090418.patch.gz
+Patch23: %{name}-5.7-20090419.patch.gz
+Patch24: %{name}-5.7-20090425.patch.gz
+Patch25: %{name}-5.7-20090502.patch.gz
+Patch26: %{name}-5.7-20090510.patch.gz
+Patch27: %{name}-5.7-20090516.patch.gz
+Patch28: %{name}-5.7-20090523.patch.gz
+Patch29: %{name}-5.7-20090530.patch.gz
+Patch30: %{name}-5.7-20090606.patch.gz
+Patch31: %{name}-5.7-20090607.patch.gz
+Patch32: %{name}-5.7-20090613.patch.gz
+Patch33: %{name}-5.7-20090627.patch.gz
+Patch34: %{name}-5.7-20090704.patch.gz
+Patch35: %{name}-5.7-20090711.patch.gz
+Patch36: %{name}-5.7-20090718.patch.gz
+Patch37: %{name}-5.7-20090725.patch.gz
+Patch38: %{name}-5.7-20090728.patch.gz
+Patch39: %{name}-5.7-20090801.patch.gz
+Patch40: %{name}-5.7-20090803.patch.gz
+Patch41: %{name}-5.7-20090808.patch.gz
+Patch42: %{name}-5.7-20090815.patch.gz
+Patch43: %{name}-5.7-20090822.patch.gz
+Patch44: %{name}-5.7-20090829.patch.gz
+Patch45: %{name}-5.7-20090905.patch.gz
+Patch46: %{name}-5.7-20090906.patch.gz
+Patch47: %{name}-5.7-20090912.patch.gz
+Patch48: %{name}-5.7-20090919.patch.gz
+Patch49: %{name}-5.7-20090927.patch.gz
+Patch50: %{name}-5.7-20091003.patch.gz
+Patch51: %{name}-5.7-20091010.patch.gz
+Patch52: %{name}-5.7-20091017.patch.gz
+Patch53: %{name}-5.7-20091024.patch.gz
+Patch54: %{name}-5.7-20091031.patch.gz
+Patch55: %{name}-5.7-20091107.patch.gz
Patch100: %{name}-screen_hpa_fix.patch
Patch101: %{name}-xterm_hpa_fix.patch
Patch103: %{name}-xterm-home-end.patch
Patch104: %{name}-mouse_trafo-warning.patch
Patch105: %{name}-gnome-terminal.patch
-# not sure about this one, now all xterms have kbs defined (to ^H, not \177)
-# and only XTerm.ad.pl sets backspace to \177 instead of ^H
-Patch106: %{name}-xterm-kbs.patch
# disable rain demo; triggers gcc bug: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14998
Patch107: %{name}-no-rain-demo.patch
-Patch108: %{name}-linking.patch
URL: http://dickey.his.com/ncurses/ncurses.html
BuildRequires: automake
%{?with_ada:BuildRequires: gcc-ada}
%{?with_gpm:BuildRequires: gpm-devel}
%{?with_cxx:BuildRequires: libstdc++-devel}
+%{?with_ada:BuildRequires: m4}
+BuildRequires: pkgconfig
BuildRequires: sharutils
Obsoletes: libncurses5
Conflicts: terminfo < 5.4-0.6
Obsoletes: ncurses-extraterms
%description -n terminfo
-This package contains cmplet terminfo database. If you just use the
+This package contains complete terminfo database. If you just use the
Linux console, xterm and VT100, you probably will not need this this -
a minimal %{_datadir}/terminfo tree for these terminal is already
included in the ncurses package.
Summary(pl.UTF-8): Pliki nagłówkowe do biblioteki Ada95 ncurses
Group: Development/Libraries
Requires: %{name}-devel = %{version}-%{release}
-%requires_eq gcc-ada
+%{?with_ada:%requires_eq gcc-ada}
%description ada-devel
This package includes the header files and libraries necessary to
%patch7 -p1
%patch8 -p1
%patch9 -p1
+%patch10 -p1
+%patch11 -p1
+%patch12 -p1
+%patch13 -p1
+%patch14 -p1
+%patch15 -p1
+%patch16 -p1
+%patch17 -p1
+%patch18 -p1
+%patch19 -p1
+%patch20 -p1
+%patch21 -p1
+%patch22 -p1
+%patch23 -p1
+%patch24 -p1
+%patch25 -p1
+%patch26 -p1
+%patch27 -p1
+%patch28 -p1
+%patch29 -p1
+%patch30 -p1
+%patch31 -p1
+%patch32 -p1
+%patch33 -p1
+%patch34 -p1
+%patch35 -p1
+%patch36 -p1
+%patch37 -p1
+%patch38 -p1
+%patch39 -p1
+%patch40 -p1
+%patch41 -p1
+%patch42 -p1
+%patch43 -p1
+%patch44 -p1
+%patch45 -p1
+%patch46 -p1
+%patch47 -p1
+%patch48 -p1
+%patch49 -p1
+%patch50 -p1
+%patch51 -p1
+%patch52 -p1
+%patch53 -p1
+%patch54 -p1
+%patch55 -p1
+
%patch100 -p1
%patch101 -p1
%patch102 -p1
%patch103 -p1
%patch104 -p1
%patch105 -p1
-%patch106 -p1
%patch107 -p1
-%patch108 -p1
%build
unset TERMINFO || :
gcc_target=$(gcc -dumpmachine)
-gcc_version=$(gcc -dumpversion)
+gcc_version=%{cc_version}
CFLAGS="%{rpmcflags} -DPURE_TERMINFO -D_FILE_OFFSET_BITS=64"
+export PKG_CONFIG_LIBDIR=%{_libdir}/pkgconfig
cp -f /usr/share/automake/config.sub .
+
+%if "%{pld_release}" == "ti"
for t in narrowc widec; do
+%else
+for t in narrowc wideclowcolor widec; do
+%endif
install -d obj-$t
cd obj-$t
../%configure \
--with-termlib \
--with-largefile \
--disable-lp64 \
+ --enable-pc-files \
--with-chtype='long' \
--with-mmask-t='long' \
--with-manpage-aliases \
--without-manpage-symlinks \
--with-ada-include=%{_libdir}/gcc/$gcc_target/$gcc_version/adainclude/ \
--with-ada-objects=%{_libdir}/gcc/$gcc_target/$gcc_version/adalib/ \
+%if "%{pld_release}" == "ti"
`[ "$t" != "widec" ] && echo --with-termlib=tinfo` \
`[ "$t" = "widec" ] && echo --with-termlib=tinfow --enable-widec --includedir=%{_includedir}w`
-%{__make} \
- CC="%{__cc}"
+%else
+ `[ "$t" = "narrowc" ] && echo --with-termlib=tinfo` \
+ `[ "$t" = "wideclowcolor" ] && echo --with-termlib=tinfow --enable-widec --disable-ext-colors --includedir=%{_includedir}wlc` \
+ `[ "$t" = "widec" ] && echo --with-termlib=tinfow --enable-widec --enable-ext-colors --includedir=%{_includedir}w`
+%endif
+
+%{__make} -j1
+
cd ..
done
rm -rf $RPM_BUILD_ROOT
install -d $RPM_BUILD_ROOT{/%{_lib},%{_mandir}}
+%if "%{pld_release}" == "ti"
for t in widec narrowc; do
+%else
+for t in narrowc widec; do
+%endif
%{__make} -C obj-$t install \
INSTALL_PREFIX=$RPM_BUILD_ROOT
done
ln -sf ../l/linux $RPM_BUILD_ROOT%{_datadir}/terminfo/c/console
-mv -f $RPM_BUILD_ROOT%{_libdir}/libtinfo.so.*.* $RPM_BUILD_ROOT/%{_lib}
-mv -f $RPM_BUILD_ROOT%{_libdir}/libncurses.so.*.* $RPM_BUILD_ROOT/%{_lib}
-ln -sf /%{_lib}/`cd $RPM_BUILD_ROOT/%{_lib} ; echo libtinfo.so.*.*` $RPM_BUILD_ROOT%{_libdir}/libtinfo.so
-ln -sf /%{_lib}/`cd $RPM_BUILD_ROOT/%{_lib} ; echo libncurses.so.*.*` $RPM_BUILD_ROOT%{_libdir}/libcurses.so
-ln -sf /%{_lib}/`cd $RPM_BUILD_ROOT/%{_lib} ; echo libncurses.so.*.*` $RPM_BUILD_ROOT%{_libdir}/libncurses.so
+%if "%{pld_release}" != "ti"
+mv -f $RPM_BUILD_ROOT%{_libdir}/libtinfow.so.6* $RPM_BUILD_ROOT/%{_lib}
+mv -f $RPM_BUILD_ROOT%{_libdir}/libncursesw.so.6* $RPM_BUILD_ROOT/%{_lib}
+ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/libtinfow.so.6.*) $RPM_BUILD_ROOT%{_libdir}/libtinfow.so
+ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/libncursesw.so.6.*) $RPM_BUILD_ROOT%{_libdir}/libncursesw.so
+ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/libncursesw.so.6.*) $RPM_BUILD_ROOT%{_libdir}/libcursesw.so
+%else
+mv -f $RPM_BUILD_ROOT%{_libdir}/libtinfow.so.5* $RPM_BUILD_ROOT/%{_lib}
+mv -f $RPM_BUILD_ROOT%{_libdir}/libncursesw.so.5* $RPM_BUILD_ROOT/%{_lib}
+ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/libtinfow.so.5.*) $RPM_BUILD_ROOT%{_libdir}/libtinfow.so
+ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/libncursesw.so.5.*) $RPM_BUILD_ROOT%{_libdir}/libcursesw.so
+ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/libncursesw.so.5.*) $RPM_BUILD_ROOT%{_libdir}/libncursesw.so
+%endif
+mv -f $RPM_BUILD_ROOT%{_libdir}/libtinfo.so.* $RPM_BUILD_ROOT/%{_lib}
+mv -f $RPM_BUILD_ROOT%{_libdir}/libncurses.so.* $RPM_BUILD_ROOT/%{_lib}
+ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/libtinfo.so.*.*) $RPM_BUILD_ROOT%{_libdir}/libtinfo.so
+ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/libncurses.so.*.*) $RPM_BUILD_ROOT%{_libdir}/libcurses.so
+ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/libncurses.so.*.*) $RPM_BUILD_ROOT%{_libdir}/libncurses.so
+
+ln -sf libncursesw.a $RPM_BUILD_ROOT%{_libdir}/libcursesw.a
+
+%if "%{pld_release}" != "ti"
+cp -a obj-wideclowcolor/lib/lib*w.so.5* $RPM_BUILD_ROOT%{_libdir}
+%endif
bzip2 -dc %{SOURCE1} | tar xf - -C $RPM_BUILD_ROOT%{_mandir}
+rm $RPM_BUILD_ROOT%{_libdir}/libcurses.a
+rm $RPM_BUILD_ROOT%{_libdir}/libcursesw.a
+rm $RPM_BUILD_ROOT%{_mandir}/README.ncurses-non-english-man-pages
+
+# FIXME: should be fixed properly
+# fix too many w's
+sed -i -e 's/tinfoww/tinfow/' $RPM_BUILD_ROOT%{_bindir}/ncurses*-config $RPM_BUILD_ROOT%{_pkgconfigdir}/*.pc
+
%clean
rm -rf $RPM_BUILD_ROOT
%attr(755,root,root) %{_bindir}/infocmp
%attr(755,root,root) %{_bindir}/infotocap
%attr(755,root,root) %{_bindir}/reset
-%attr(755,root,root) %{_bindir}/tack
+%attr(755,root,root) %{_bindir}/tabs
%attr(755,root,root) %{_bindir}/tic
%attr(755,root,root) %{_bindir}/toe
%attr(755,root,root) %{_bindir}/tput
%attr(755,root,root) %{_bindir}/tset
-%attr(755,root,root) /%{_lib}/libncurses.so.*
-%attr(755,root,root) /%{_lib}/libtinfo.so.*
-%attr(755,root,root) %{_libdir}/libncursesw.so.*
-%attr(755,root,root) %{_libdir}/libtinfow.so.*
+%attr(755,root,root) /%{_lib}/libncurses.so.*.*
+%attr(755,root,root) %ghost /%{_lib}/libncurses.so.5
+%attr(755,root,root) /%{_lib}/libncursesw.so.*.*
+%if "%{pld_release}" != "ti"
+%attr(755,root,root) %ghost /%{_lib}/libncursesw.so.6
+%endif
+%attr(755,root,root) /%{_lib}/libtinfo.so.*.*
+%attr(755,root,root) %ghost /%{_lib}/libtinfo.so.5
+%attr(755,root,root) /%{_lib}/libtinfow.so.*.*
+%if "%{pld_release}" != "ti"
+%attr(755,root,root) %ghost /%{_lib}/libtinfow.so.6
+%attr(755,root,root) %{_libdir}/libncursesw.so.*.*
+%attr(755,root,root) %ghost %{_libdir}/libncursesw.so.5
+%attr(755,root,root) %{_libdir}/libtinfow.so.*.*
+%attr(755,root,root) %ghost %{_libdir}/libtinfow.so.5
+%else
+%attr(755,root,root) %ghost /%{_lib}/libtinfow.so.5
+%attr(755,root,root) %ghost /%{_lib}/libncursesw.so.5
+%endif
%{_datadir}/tabset
%dir %{_datadir}/terminfo
%{_datadir}/terminfo/E
-%dir %{_datadir}/terminfo/[dklsvx]
+%dir %{_datadir}/terminfo/[dgklprsvx]
%{_datadir}/terminfo/d/dumb
+%{_datadir}/terminfo/g/gnome*
%{_datadir}/terminfo/k/klone+color
+%{_datadir}/terminfo/k/konsole*
%{_datadir}/terminfo/l/linux*
+%{_datadir}/terminfo/p/putty*
+%{_datadir}/terminfo/r/rxvt*
%{_datadir}/terminfo/s/screen*
%{_datadir}/terminfo/v/vt100
%{_datadir}/terminfo/v/vt220
%{_datadir}/terminfo/[1-9ALMNPQXa-ce-jm-rt-uwz]
%{_datadir}/terminfo/[dklsvx]/*
%exclude %{_datadir}/terminfo/d/dumb
+%exclude %{_datadir}/terminfo/g/gnome*
%exclude %{_datadir}/terminfo/k/klone+color
+%exclude %{_datadir}/terminfo/k/konsole*
%exclude %{_datadir}/terminfo/l/linux*
+%exclude %{_datadir}/terminfo/p/putty*
+%exclude %{_datadir}/terminfo/r/rxvt*
%exclude %{_datadir}/terminfo/s/screen*
%exclude %{_datadir}/terminfo/v/vt100
%exclude %{_datadir}/terminfo/v/vt220
%defattr(644,root,root,755)
%doc doc/html/ncurses-intro.html
%attr(755,root,root) %{_bindir}/ncurses5-config
+%if "%{pld_release}" == "ti"
%attr(755,root,root) %{_bindir}/ncursesw5-config
+%else
+%attr(755,root,root) %{_bindir}/ncursesw6-config
+%endif
%attr(755,root,root) %{_libdir}/libcurses.so
%attr(755,root,root) %{_libdir}/libncurses.so
%attr(755,root,root) %{_libdir}/libtinfo.so
%{_includedir}w/termcap.h
%{_includedir}w/tic.h
%{_includedir}w/unctrl.h
+%{_pkgconfigdir}/*.pc
+
%{_mandir}/man3/*
%exclude %{_mandir}/man3/form*
%exclude %{_mandir}/man3/menu*
%files ext
%defattr(644,root,root,755)
+%if "%{pld_release}" == "ti"
%attr(755,root,root) %{_libdir}/libform.so.*
%attr(755,root,root) %{_libdir}/libmenu.so.*
%attr(755,root,root) %{_libdir}/libpanel.so.*
%attr(755,root,root) %{_libdir}/libformw.so.*
%attr(755,root,root) %{_libdir}/libmenuw.so.*
%attr(755,root,root) %{_libdir}/libpanelw.so.*
+%else
+%attr(755,root,root) %{_libdir}/libform.so.*.*
+%attr(755,root,root) %ghost %{_libdir}/libform.so.[56]
+%attr(755,root,root) %{_libdir}/libmenu.so.*.*
+%attr(755,root,root) %ghost %{_libdir}/libmenu.so.[56]
+%attr(755,root,root) %{_libdir}/libpanel.so.*.*
+%attr(755,root,root) %ghost %{_libdir}/libpanel.so.[56]
+%attr(755,root,root) %{_libdir}/libformw.so.*.*
+%attr(755,root,root) %ghost %{_libdir}/libformw.so.[56]
+%attr(755,root,root) %{_libdir}/libmenuw.so.*.*
+%attr(755,root,root) %ghost %{_libdir}/libmenuw.so.[56]
+%attr(755,root,root) %{_libdir}/libpanelw.so.*.*
+%attr(755,root,root) %ghost %{_libdir}/libpanelw.so.[56]
+%endif
%files ext-devel
%defattr(644,root,root,755)
%files ada-devel
%defattr(644,root,root,755)
%doc Ada95/{README,TODO}
+%attr(755,root,root) %{_bindir}/adacurses-config
+%attr(755,root,root) %{_bindir}/adacursesw-config
%{_libdir}/gcc/*/*/adainclude/*
%{_libdir}/gcc/*/*/adalib/*
%endif